Having problems with Appium executing perform()

Hey guys, there’s no need to say that I’m new to Appium and mobile testing. Let me just say what the problem is…
The task is simple - find how many context the app has, switch to WEBVIEW , find a button and click it. Turns out it’s not that simple … because when I say
WebElement connectBtn = driver.findElement(By.id(“connect_btn”));
TouchAction ta = new TouchAction(driver).tap(connectBtn).perform();
both appium server and test log are complaining.

The test log says:
org.openqa.selenium.UnsupportedCommandException: unknown command: session/eb39f980a1db8bb9282f23a4b00da73e/touch/perform
Command duration or timeout: 11 milliseconds
Build info: version: ‘2.42.2’, revision: ‘6a6995d31c7c56c340d6f45a76976d43506cd6cc’, time: ‘2014-06-03 10:52:47’
System info: host: ‘elenadoncheva’, ip: ‘192.168.2.76’, os.name: ‘Windows 8.1’, os.arch: ‘amd64’, os.version: ‘6.3’, java.version: ‘1.7.0_60-ea’
Session ID: f8f1f522-d1b0-46fe-85a1-47ff9f5fefeb
Driver info: io.appium.java_client.AppiumDriver
Capabilities [{automationName=Appium, platform=WINDOWS, app=C:\Users\edoncheva\AppData\Local\Android\android-sdk\build-tools\android-4.3\android.apk, javascriptEnabled=true, browserName=, networkConnectionEnabled=true, desired={automationName=Appium, platform=WINDOWS, app=C:\Users\edoncheva\AppData\Local\Android\android-sdk\build-tools\android-4.3\android.apk, deviceName=Galaxy S4, platformName=Android, browserName=, app-package=com.cayetano.ppsocial, device=Android, app-activity=PPSocialMobile, version=4.4.2}, locationContextEnabled=false, version=4.4.2, platformVersion=4.1, databaseEnabled=false, platformName=Android, deviceName=Galaxy S4, app-package=com.cayetano.ppsocial, webStorageEnabled=false, device=Android, app-activity=PPSocialMobile, warnings={}, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:95)
at io.appium.java_client.AppiumDriver.performTouchAction(AppiumDriver.java:273)
at io.appium.java_client.TouchAction.perform(TouchAction.java:253)
at cayetano.pplive.tests.bdd.scenarios.Test.TestScenario.when(TestScenario.java:84)

and the appium log says:
-> POST /wd/hub/session/f8f1f522-d1b0-46fe-85a1-47ff9f5fefeb/touch/perform {“actions”:[{“action”:“tap”,“options”:{“element”:“0.04784036451019347-1”}}]}
debug] Proxying command to 127.0.0.1:9515
debug] Making http request with opts: {“url”:“http://127.0.0.1:9515/wd/hub/session/eb39f980a1db8bb9282f23a4b00da73e/touch/perform",“method”:“POST”,“json”:{“actions”:[{“action”:“tap”,“options”:{“element”:"0.04784036451019347-1”}}]}}
debug] Proxied response received with status 404: “unknown command: session/eb39f980a1db8bb9282f23a4b00da73e/touch/perform”
– POST /wd/hub/session/f8f1f522-d1b0-46fe-85a1-47ff9f5fefeb/touch/perform 404 5.858 ms - 71
debug] Didn’t get a new command in 60 secs, shutting down…
hutting down appium session
debug] Pressing the HOME button

What am I missing? If we skip the perform() then the test is passing but for the hell of me IT IS NOT PRESSING THE BUTTON. Please help me out… I think I’ve read all possible tutorials and forums about that appium and still can’t figure out what to do…

1 Like

I think you are using the Selenium TouchAction api, which is getting updated in the next version of selenium.

Appium is already using the new TouchAction api.
http://appium.io/slate/en/master/?java#automating-mobile-gestures

But I’m using the public class TouchAction from the package io.appium.java_client… But still the error is from the org.openqa.selenium. Not sure where that comes from and hoe to bypass it. Any ideas ?

And just so you know (if that is any help) -
selenium version - 2.42.2
appium version - 1.2.2
IntelliJ IDEA version - 13.1.4
appium java-client version - 1.6.2

After some google search and a lot of thinking we decided to try the selenium 3 beta … did not help at all!

Very curious, I ran a sample test an it worked fine…
does button.click() work?
What about action.press(button).perform()?

no, button.click() does nothing … the test passes, but i can see nothing done on the device. And definitely .perform() does not work.

We finally did it… with javascrip executor…

Hmm, you shouldn’t have to do it that way, but I’m glad it worked. I wonder what is going wrong.

hi,
actually in my case click() is working well but its not working with press(…).perform();
its asking for mobiledriver
and i am using appiumdriver so is there any need of such

Thanks

its saying that perform is not implemented yet…

Can you post your test code and logs?

hi,

this is my java testcase :-
appiumDriver.findElementById(“lst-ib”).sendKeys(“Sas R & D”);
element=appiumDriver.findElement(By.className(“lsb”));
TouchAction touchAction=new TouchAction(appiumDriver);
touchAction.press(element).perform();

Here is the log generated:-
“Unknown type: “+typeof b);}}var rg={’”’:’\\”’,"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},sg=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;\nfunction qg(a,b){b.push(’"’,a.replace(sg,function(a){if(a in rg)return rg[a];var b=a.charCodeAt(0),e="\\u";16>b?e+=“000”:256>b?e+=“00”:4096>b&&(e+=“0”);return rg[a]=e+b.toString(16)}),’"’)};B||w||z&&S(3.5)||y&&S(8);function tg(a){switch(ca(a)){case “string”:case “number”:case “boolean”:return a;case “function”:return a.toString();case “array”:return va(a,tg);case “object”:if(“nodeType"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=ug(a);return b}if(“document"in a)return b={},b.WINDOW=ug(a),b;if(da(a))return va(a,tg);a=pb(a,function(a,b){return ea(b)||p(b)});return qb(a,tg);default:return null}}\nfunction vg(a,b){return"array”==ca(a)?va(a,function(a){return vg(a,b)}):ga(a)?“function”==typeof a?a:“ELEMENT"in a?wg(a.ELEMENT,b):“WINDOW"in a?wg(a.WINDOW,b):qb(a,function(a){return vg(a,b)}):a}function xg(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.ga=na());b.ga||(b.ga=na());return b}function ug(a){var b=xg(a.ownerDocument),c=sb(b,function(b){return b==a});c||(c=”:wdc:”+b.ga++,b[c]=a);return c}\nfunction wg(a,b){a=decodeURIComponent(a);var c=b||document,d=xg©;if(!(a in d))throw new v(10,“Element does not exist in cache”);var e=d[a];if(“setInterval"in e){if(e.closed)throw delete d[a],new v(23,“Window has been closed.”);return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete d[a];throw new v(10,“Element is no longer attached to the DOM”);};function yg(a,b,c){a=[a,b];b=$;var d;try{var e=c?wg(c.WINDOW):window,f=vg(a,e.document),g=b.apply(null,f);d={status:0,value:tg(g)}}catch(k){d={status:“code"in k?k.code:13,value:{message:k.message}}}c=[];pg(new og,d,c);return c.join(””)}var zg=[”"],Ag=m;zg[0]in Ag||!Ag.execScript||Ag.execScript("var "+zg[0]);for(var Bg;zg.length&&(Bg=zg.shift());)zg.length||void 0===yg?Ag=Ag[Bg]?Ag[Bg]:Ag[Bg]={}:Ag[Bg]=yg;; return this..apply(null,arguments);}.apply({navigator:typeof window!=undefined?window.navigator:null,document:typeof window!=undefined?window.document:null}, arguments);}\n)({“ELEMENT”:":wdc:1413195670121"},“Sas R & D”)",“returnByValue”:true},“id”:9}]
debug: Responding to client with success: {“status”:0,“value”:null,“sessionId”:“3ba12112-fe64-4530-8d00-f18965dce5b4”}
debug: [REMOTE] Executing ‘find_element’ atom in default context
debug: [REMOTE] Sending javascript command
debug: [REMOTE] Remote debugger data sent [{“method”:“Runtime.evaluate”,“params”:{“objectGroup”:“console”,“includeCommandLineAPI”:true,“doNotPauseOnExceptionsAndMuteConsole”:true,“expression”:"(function(){return function(){function h(a){return function(){return this[a]}}function n(a){return function(){return a}}var q=this;\nfunction aa(a){var b=typeof a;if(“object”==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||“number”==typeof a.length&&“undefined”!=typeof a.splice&&“undefined”!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(“splice”))return"array";if("[object Function]"==c||“undefined”!=typeof a.call&&“undefined”!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(“call”))return"function"}else return"null";\nelse if(“function”==b&&“undefined”==typeof a.call)return"object";return b}function ba(a){var b=aa(a);return"array"==b||“object”==b&&“number”==typeof a.length}function r(a){return"string"==typeof a}function ca(a){return"function"==aa(a)}function da(a){var b=typeof a;return"object"==b&&null!=a||“function”==b}function ea(a,b,c){return a.call.apply(a.bind,arguments)}\nfunction fa(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype
info: <-- POST /wd/hub/session/3ba12112-fe64-4530-8d00-f18965dce5b4/element 200 331.320 ms - 90 {“status”:0,“value”:{“ELEMENT”:“5002”},“sessionId”:“3ba12112-fe64-4530-8d00-f18965dce5b4”}
info: --> POST /wd/hub/session/3ba12112-fe64-4530-8d00-f18965dce5b4/touch/perform {“actions”:[{“action”:“press”,“options”:{“element”:“5002”}}]}

.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function ga(a,b,c){ga=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(“native code”)?ea:fa;return ga.apply(null,arguments)}\nfunction ha(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.unshift.apply(b,c);return a.apply(this,b)}}var ia=Date.now||function(){return+new Date};function s(a,b){function c(){}c.prototype=b.prototype;a.ra=b.prototype;a.prototype=new c};var ja=window;function ka(a){var b=a.length-1;return 0<=b&&a.indexOf(" “,b)==b}function la(a){return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g,”")}\nfunction ma(a,b){for(var c=0,d=la(String(a)).split("."),e=la(String(b)).split("."),f=Math.max(d.length,e.length),g=0;0==c&&g<f;g++){var m=d[g]||"",t=e[g]||"",v=RegExp("(\\d*)(\\D*)",“g”),p=RegExp("(\\d*)(\\D*)",“g”);do{var k=v.exec(m)||["","",""],l=p.exec(t)||["","",""];if(0==k[0].length&&0==l[0].length)break;c=((0==k[1].length?0:parseInt(k[1],10))<(0==l[1].length?0:parseInt(l[1],10))?-1:(0==k[1].length?0:parseInt(k[1],10))>(0==l[1].length?0:parseInt(l[1],10))?1:0)||((0==k[2].length)<(0==l[2].length)?\n-1:(0==k[2].length)>(0==l[2].length)?1:0)||(k[2]<l[2]?-1:k[2]>l[2]?1:0)}while(0==c)}return c}function na(a){return String(a).replace(/\-([a-z])/g,function(a,c){return c.toUpperCase()})};var oa=Array.prototype;function u(a,b){for(var c=a.length,d=r(a)?a.split(""):a,e=0;e<c;e++)e in d&&b.call(void 0,d[e],e,a)}function pa(a,b){for(var c=a.length,d=[],e=0,f=r(a)?a.split(""):a,g=0;g<c;g++)if(g in f){var m=f[g];b.call(void 0,m,g,a)&&(d[e++]=m)}return d}function qa(a,b){for(var c=a.length,d=Array©,e=r(a)?a.split(""):a,f=0;f<c;f++)f in e&&(d[f]=b.call(void 0,e[f],f,a));return d}\nfunction ra(a,b,c){if(a.reduce)return a.reduce(b,c);var d=c;u(a,function(c,f){d=b.call(void 0,d,c,f,a)});return d}function sa(a,b){for(var c=a.length,d=r(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1}function ta(a,b){for(var c=a.length,d=r(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&!b.call(void 0,d[e],e,a))return!1;return!0}\nfunction ua(a,b){var c;a:{c=a.length;for(var d=r(a)?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){c=e;break a}c=-1}return 0>c?null:r(a)?a.charAt©:a[c]}function va(a,b){var c;a:if(r(a))c=r(b)&&1==b.length?a.indexOf(b,0):-1;else{for(c=0;c<a.length;c++)if(c in a&&a[c]===b)break a;c=-1}return 0<=c}function wa(a){return oa.concat.apply(oa,arguments)}function xa(a,b,c){return 2>=arguments.length?oa.slice.call(a,b):oa.slice.call(a,b,c)};var ya,za,Aa,Ba;function Ca(){return q.navigator?q.navigator.userAgent:null}Ba=Aa=za=ya=!1;var Da;if(Da=Ca()){var Ea=q.navigator;ya=0==Da.indexOf(“Opera”);za=!ya&&-1!=Da.indexOf(“MSIE”);Aa=!ya&&-1!=Da.indexOf(“WebKit”);Ba=!ya&&!Aa&&“Gecko”==Ea.product}var Ka=ya,w=za,La=Ba,Ma=Aa;function Na(){var a=q.document;return a?a.documentMode:void 0}var Oa;\na:{var Pa="",Qa;if(Ka&&q.opera)var Ra=q.opera.version,Pa=“function”==typeof Ra?Ra():Ra;else if(La?Qa=/rv\:([^\);]+)(\)|;)/:w?Qa=/MSIE\s+([^\);]+)(\)|;)/:Ma&&(Qa=/WebKit\/(\S+)/),Qa)var Sa=Qa.exec(Ca()),Pa=Sa?Sa[1]:"";if(w){var Ta=Na();if(Ta>parseFloat(Pa)){Oa=String(Ta);break a}}Oa=Pa}var Ua={};function Va(a){return Ua[a]||(Ua[a]=0<=ma(Oa,a))}var Wa=q.document,x=Wa&&w?Na()||(“CSS1Compat”==Wa.compatMode?parseInt(Oa,10):5):void 0;var Xa;!La&&!w||w&&w&&9<=x||La&&Va(“1.9.1”);w&&Va(“9”);function Ya(a,b){this.x=void 0!==a?a:0;this.y=void 0!==b?b:0}Ya.prototype.toString=function(){return"("+this.x+", “+this.y+”)"};Ya.prototype.ceil=function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this};Ya.prototype.floor=function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this};Ya.prototype.round=function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this};function Za(a,b){this.width=a;this.height=b}Za.prototype.toString=fu
nction(){return"("+this.width+" x “+this.height+”)"};Za.prototype.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};Za.prototype.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};Za.prototype.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function $a(a,b){var c={},d;for(d in a)b.call(void 0,a[d],d,a)&&(c[d]=a[d]);return c}function ab(a){var b=bb,c={},d;for(d in a)c[d]=b.call(void 0,a[d],d,a);return c}function cb(a,b){for(var c in a)if(b.call(void 0,a[c],c,a))return c};var db=3;function y(a){return a?new eb(z(a)):Xa||(Xa=new eb)}function fb(a){a=a.document;a=“CSS1Compat”==a.compatMode?a.documentElement:a.body;return new Za(a.clientWidth,a.clientHeight)}function gb(a){for(;a&&1!=a.nodeType;)a=a.previousSibling;return a}function hb(a,b){if(a.contains&&1==b.nodeType)return a==b||a.contains(b);if(“undefined”!=typeof a.compareDocumentPosition)return a==b||Boolean(a.compareDocumentPosition(b)&16);for(;b&&a!=b;)b=b.parentNode;return b==a}\nfunction ib(a,b){if(a==b)return 0;if(a.compareDocumentPosition)return a.compareDocumentPosition(b)&2?1:-1;if(w&&!(w&&9<=x)){if(9==a.nodeType)return-1;if(9==b.nodeType)return 1}if(“sourceIndex"in a||a.parentNode&&“sourceIndex"in a.parentNode){var c=1==a.nodeType,d=1==b.nodeType;if(c&&d)return a.sourceIndex-b.sourceIndex;var e=a.parentNode,f=b.parentNode;return e==f?jb(a,b):!c&&hb(e,b)?-1kb(a,b):!d&&hb(f,a)?kb(b,a):(c?a.sourceIndex:e.sourceIndex)-(d?b.sourceIndex:f.sourceIndex)}d=z(a);c=d.createRange();\nc.selectNode(a);c.collapse(!0);d=d.createRange();d.selectNode(b);d.collapse(!0);return c.compareBoundaryPoints(q.Range.START_TO_END,d)}function kb(a,b){var c=a.parentNode;if(c==b)return-1;for(var d=b;d.parentNode!=c;)d=d.parentNode;return jb(d,a)}function jb(a,b){for(var c=b;c=c.previousSibling;)if(c==a)return-1;return 1}function z(a){return 9==a.nodeType?a:a.ownerDocument||a.document}function lb(a,b){a=a.parentNode;for(var c=0;a;){if(b(a))return a;a=a.parentNode;c++}return null}\nfunction eb(a){this.K=a||q.document||document}\nfunction A(a,b,c,d){a=d||a.K;b=b&&"”!=b?b.toUpperCase():”";if(a.querySelectorAll&&a.querySelector&&(b||c))c=a.querySelectorAll(b+(c?"."+c:""));else if(c&&a.getElementsByClassName)if(a=a.getElementsByClassName©,b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g.nodeName&&(d[e++]=g);d.length=e;c=d}else c=a;else if(a=a.getElementsByTagName(b||""),c){d={};for(f=e=0;g=a[f];f++)b=g.className,“function”==typeof b.split&&va(b.split(/\s+/),c)&&(d[e++]=g);d.length=e;c=d}else c=a;return c}eb.prototype.contains=hb;var mb={R:function(a){return!(!a.querySelectorAll||!a.querySelector)},n:function(a,b){if(!a)throw Error(“No class name specified”);a=la(a);if(1<a.split(/\s+/).length)throw Error(“Compound class names not permitted”);if(mb.R(b))return b.querySelector("."+a.replace(/\./g,"\\."))||null;var c=A(y(b),"",a,b);return c.length?c[0]:null},o:function(a,b){if(!a)throw Error(“No class name specified”);a=la(a);if(1<a.split(/\s+/).length)throw Error(“Compound class names not permitted”);return mb.R(b)?b.querySelectorAll("."+\na.replace(/\./g,"\\.")):A(y(b),"",a,b)}};var nb,ob,pb,qb,rb,sb,tb;tb=sb=rb=qb=pb=ob=nb=!1;var B=Ca();B&&(-1!=B.indexOf(“Firefox”)?nb=!0:-1!=B.indexOf(“Camino”)?ob=!0:-1!=B.indexOf(“iPhone”)||-1!=B.indexOf(“iPod”)?pb=!0:-1!=B.indexOf(“iPad”)?qb=!0:-1!=B.indexOf(“Android”)?rb=!0:-1!=B.indexOf(“Chrome”)?sb=!0:-1!=B.indexOf(“Safari”)&&(tb=!0));var ub=nb,vb=ob,wb=pb,xb=qb,yb=rb,zb=sb,Ab=tb;function Bb(a){return(a=a.exec(Ca()))?a[1]:""}var Cb=function(){if(ub)return Bb(/Firefox\/([0-9.]+)/);if(w||Ka)return Oa;if(zb)return Bb(/Chrome\/([0-9.]+)/);if(Ab)return Bb(/Version\/([0-9.]+)/);if(wb||xb){var a=/Version\/(\S+).Mobile\/(\S+)/.exec(Ca());if(a)return a[1]+"."+a[2]}else{if(yb)return(a=Bb(/Android\s+([0-9.]+)/))?a:Bb(/Version\/([0-9.]+)/);if(vb)return Bb(/Camino\/([0-9.]+)/)}return""}();var Db,Eb;function Fb(a){return Gb?Db(a):w?0<=ma(x,a):
Va(a)}function Hb(a){Gb?Eb(a):yb?ma(Ib,a):ma(Cb,a)}\nvar Gb=function(){if(!La)return!1;var a=q.Components;if(!a)return!1;try{if(!a.classes)return!1}catch(b){return!1}var c=a.classes,a=a.interfaces,d=c["@mozilla.org/xpcom/version-comparator;1"].getService(a.nsIVersionComparator),c=c["@mozilla.org/xre/app-info;1"].getService(a.nsIXULAppInfo),e=c.platformVersion,f=c.version;Db=function(a){return 0<=d.ha(e,""+a)};Eb=function(a){d.ha(f,""+a)};return!0}(),Jb;if(yb){var Kb=/Android\s+([0-9\.]+)/.exec(Ca());Jb=Kb?Kb[1]:“0”}else Jb=“0”;\nvar Ib=Jb,Lb=w&&!(w&&8<=x),Mb=w&&!(w&&9<=x),Nb=w&&!(w&&10<=x);yb&&Hb(2.3);yb&&Hb(4);Ab&&Hb(6);var Ob={n:function(a,b){if(!ca(b.querySelector)&&w&&Fb(8)&&!da(b.querySelector))throw Error(“CSS selection is not supported”);if(!a)throw Error(“No selector specified”);a=la(a);var c=b.querySelector(a);return c&&1==c.nodeType?c:null},o:function(a,b){if(!ca(b.querySelectorAll)&&w&&Fb(8)&&!da(b.querySelector))throw Error(“CSS selection is not supported”);if(!a)throw Error(“No selector specified”);a=la(a);return b.querySelectorAll(a)}};var Pb={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",\ndarkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",\nghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",\nlightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",\nmoccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",\nseashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelbl
ue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};var Qb=“backgroundColor borderTopColor borderRightColor borderBottomColor borderLeftColor color outlineColor”.split(" "),Rb=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/,Sb=/^#(?:[0-9a-f]{3}){1,2}$/i,Tb=/^(?:rgba)?\((\d{1,3}),\s?(\d{1,3}),\s?(\d{1,3}),\s?(0|1|0\.\d
)\)$/i,Ub=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function Vb(a,b){this.code=a;this.state=Wb[a]||Xb;this.message=b||"";var c=this.state.replace(/((?:^|\s+)[a-z])/g,function(a){return a.toUpperCase().replace(/^[\s\xa0]+/g,"")}),d=c.length-5;if(0>d||c.indexOf(“Error”,d)!=d)c+=“Error”;this.name=c;c=Error(this.message);c.name=this.name;this.stack=c.stack||""}s(Vb,Error);\nvar Xb=“unknown error”,Wb={15:“element not selectable”,11:“element not visible”,31:“ime engine activation failed”,30:“ime not available”,24:“invalid cookie domain”,29:“invalid element coordinates”,12:“invalid element state”,32:“invalid selector”,51:“invalid selector”,52:“invalid selector”,17:“javascript error”,405:“unsupported operation”,34:“move target out of bounds”,27:“no such alert”,7:“no such element”,8:“no such frame”,23:“no such window”,28:“script timeout”,33:“session not created”,10:“stale element reference”,\n0:“success”,21:“timeout”,25:“unable to set cookie”,26:“unexpected alert open”};Wb[13]=Xb;Wb[9]=“unknown command”;Vb.prototype.toString=function(){return this.name+": “+this.message};function Yb(a,b,c){this.c=a;this.oa=b||1;this.j=c||1};var C=w&&!(w&&9<=x),Zb=w&&!(w&&8<=x);function $b(a,b,c,d,e){this.c=a;this.nodeName=c;this.nodeValue=d;this.nodeType=2;this.ownerElement=b;this.qa=e;this.parentNode=b}function ac(a,b,c){var d=Zb&&“href”==b.nodeName?a.getAttribute(b.nodeName,2):b.nodeValue;return new $b(b,a,b.nodeName,d,c)};function bc(a){this.Q=a;this.C=0}function cc(a){a=a.match(dc);for(var b=0;b<a.length;b++)ec.test(a[b])&&a.splice(b,1);return new bc(a)}var dc=RegExp(”\\$?(?:(?![0-9-])[\\w-]+:)?(?![0-9-])[\\w-]+|\\/\\/|\\.\\.|::|\\d+(?:\\.\\d
)?|\\.\\d+|\"[^\"]\"|’[^’]’|[!<>]=|\\s+|.",“g”),ec=/^\s/;function D(a,b){return a.Q[a.C+(b||0)]}bc.prototype.next=function(){return this.Q[this.C++]};bc.prototype.back=function(){this.C–};bc.prototype.empty=function(){return this.Q.length<=this.C};function E(a){var b=null,c=a.nodeType;1==c&&(b=a.textContent,b=void 0==b||null==b?a.innerText:b,b=void 0==b||null==b?"":b);if(“string”!=typeof b)if(C&&“title”==a.nodeName.toLowerCase()&&1==c)b=a.text;else if(9==c||1==c){a=9==c?a.documentElement:a.firstChild;for(var c=0,d=[],b="";a;){do 1!=a.nodeType&&(b+=a.nodeValue),C&&“title”==a.nodeName.toLowerCase()&&(b+=a.text),d[c++]=a;while(a=a.firstChild);for(;c&&!(a=d[–c].nextSibling););}}else b=a.nodeValue;return""+b}\nfunction F(a,b,c){if(null===b)return!0;try{if(!a.getAttribute)return!1}catch(d){return!1}Zb&&“class”==b&&(b=“className”);return null==c?!!a.getAttribute(b):a.getAttribute(b,2)==c}function fc(a,b,c,d,e){return(C?gc:hc).call(null,a,b,r©?c:null,r(d)?d:null,e||new G)}\nfunction gc(a,b,c,d,e){if(a instanceof ic||8==a.i||c&&null===a.i){var f=b.all;if(!f)return e;a=jc(a);if(""!=a&&(f=b.getElementsByTagName(a),!f))return e;if©{for(var g=[],m=0;b=f[m++];)F(b,c,d)&&g.push(b);f=g}for(m=0;b=f[m++];)""==a&&"!"==b.tagName||e.add(b);return e}kc(a,b,c,d,e);return e}\nfunction hc(a,b,c,d,e){b.getElementsByName&&d&&“name”==c&&!w?(b=b.getElementsByName(d),u(b,function(b){a.matches(b)&&e.add(b)})):b.getElementsByClassName&&d&&“class”==c?(b=b.getElementsByClassName(d),u(b,function(b){b.className==d&&a.matches(b)&&e.add(b)})):a instanceof H?kc(a,b,c,d,e):b.getElementsByTagName&&(b=b.getElementsByTagName(a.getName()),u(b,function(a){F(a,c,d)&&e.add(a)}));return e}\nfunction lc(a,b,c,d,e){var f;if((a instanceof ic||8==a.i||c&&null===a.i)&&(f=b.childNo
des)){var g=jc(a);if(""!=g&&(f=pa(f,function(a){return a.tagName&&a.tagName.toLowerCase()==g}),!f))return e;c&&(f=pa(f,function(a){return F(a,c,d)}));u(f,function(a){""==g&&("!"==a.tagName||""==g&&1!=a.nodeType)||e.add(a)});return e}return mc(a,b,c,d,e)}function mc(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)F(b,c,d)&&a.matches(b)&&e.add(b);return e}\nfunction kc(a,b,c,d,e){for(b=b.firstChild;b;b=b.nextSibling)F(b,c,d)&&a.matches(b)&&e.add(b),kc(a,b,c,d,e)}function jc(a){if(a instanceof H){if(8==a.i)return"!";if(null===a.i)return""}return a.getName()};function G(){this.j=this.f=null;this.v=0}function nc(a){this.m=a;this.next=this.s=null}function oc(a,b){if(!a.f)return b;if(!b.f)return a;for(var c=a.f,d=b.f,e=null,f=null,g=0;c&&d;)c.m==d.m||c.m instanceof $b&&d.m instanceof $b&&c.m.c==d.m.c?(f=c,c=c.next,d=d.next):0<ib(c.m,d.m)?(f=d,d=d.next):(f=c,c=c.next),(f.s=e)?e.next=f:a.f=f,e=f,g++;for(f=c||d;f;)f.s=e,e=e.next=f,g++,f=f.next;a.j=e;a.v=g;return a}\nG.prototype.unshift=function(a){a=new nc(a);a.next=this.f;this.j?this.f.s=a:this.f=this.j=a;this.f=a;this.v++};G.prototype.add=function(a){a=new nc(a);a.s=this.j;this.f?this.j.next=a:this.f=this.j=a;this.j=a;this.v++};function pc(a){return(a=a.f)?a.m:null}G.prototype.l=h(“v”);function qc(a){return(a=pc(a))?E(a):""}function I(a,b){return new rc(a,!!b)}function rc(a,b){this.ka=a;this.S=(this.t=b)?a.j:a.f;this.L=null}\nrc.prototype.next=function(){var a=this.S;if(null==a)return null;var b=this.L=a;this.S=this.t?a.s:a.next;return b.m};rc.prototype.remove=function(){var a=this.ka,b=this.L;if(!b)throw Error(“Next must be called at least once before remove.”);var c=b.s,b=b.next;c?c.next=b:a.f=b;b?b.s=c:a.j=c;a.v–;this.L=null};function J(a){this.e=a;this.g=this.p=!1;this.w=null}function K(a){return"\n “+a.toString().split(”\n").join("\n “)}J.prototype.d=h(“p”);function sc(a,b){a.p=b}function tc(a,b){a.g=b}J.prototype.r=h(“w”);function L(a,b){var c=a.evaluate(b);return c instanceof G?+qc©:+c}function M(a,b){var c=a.evaluate(b);return c instanceof G?qc©:”"+c}function uc(a,b){var c=a.evaluate(b);return c instanceof G?!!c.l():!!c};function vc(a,b,c){J.call(this,a.e);this.P=a;this.W=b;this.ba=c;this.p=b.d()||c.d();this.g=b.g||c.g;this.P==wc&&(c.g||c.d()||4==c.e||0==c.e||!b.r()?b.g||(b.d()||4==b.e||0==b.e||!c.r())||(this.w={name:c.r().name,u:b}):this.w={name:b.r().name,u:c})}s(vc,J);\nfunction xc(a,b,c,d,e){b=b.evaluate(d);c=c.evaluate(d);var f;if(b instanceof G&&c instanceof G){e=I(b);for(d=e.next();d;d=e.next())for(b=I©,f=b.next();f;f=b.next())if(a(E(d),E(f)))return!0;return!1}if(b instanceof G||c instanceof G){b instanceof G?e=b:(e=c,c=b);e=I(e);b=typeof c;for(d=e.next();d;d=e.next()){switch(b){case “number”:d=+E(d);break;case “boolean”:d=!!E(d);break;case “string”:d=E(d);break;default:throw Error(“Illegal primitive type for comparison.”);}if(a(d,c))return!0}return!1}return e?\n"boolean"==typeof b||“boolean”==typeof c?a(!!b,!!c):“number”==typeof b||“number”==typeof c?a(+b,+c):a(b,c):a(+b,+c)}vc.prototype.evaluate=function(a){return this.P.k(this.W,this.ba,a)};vc.prototype.toString=function(){var a=“Binary Expression: “+this.P,a=a+K(this.W);return a+=K(this.ba)};function yc(a,b,c,d){this.na=a;this.$=b;this.e=c;this.k=d}yc.prototype.toString=h(“na”);var zc={};\nfunction N(a,b,c,d){if(zc.hasOwnProperty(a))throw Error(“Binary operator already created: “+a);a=new yc(a,b,c,d);return zc[a.toString()]=a}N(“div”,6,1,function(a,b,c){return L(a,c)/L(b,c)});N(“mod”,6,1,function(a,b,c){return L(a,c)%L(b,c)});N(”",6,1,function(a,b,c){return L(a,c)L(b,c)});N("+",5,1,function(a,b,c){return L(a,c)+L(b,c)});N("-",5,1,function(a,b,c){return L(a,c)-L(b,c)});N("<",4,2,function(a,b,c){return xc(function(a,b){return a<b},a,b,c)});\nN(">",4,2,function(a,b,c){return xc(function(a,b){return a>b},a,b,c)});N("<=",4,2,function(a,b,c){return xc(function(a,b){return a<=b},a,b,c)});N(">=",4,2,function(a,b,c){return xc(function(a,b){return a>=b},a,b,c)});var wc=N("=",3,2,function(a,b,c){return xc(function(a,b){return a==b},
a,b,c,!0)});N("!=",3,2,function(a,b,c){return xc(function(a,b){return a!=b},a,b,c,!0)});N(“and”,2,2,function(a,b,c){return uc(a,c)&&uc(b,c)});N(“or”,1,2,function(a,b,c){return uc(a,c)||uc(b,c)});function Ac(a,b){if(b.l()&&4!=a.e)throw Error(“Primary expression must evaluate to nodeset if filter has predicate(s).”);J.call(this,a.e);this.aa=a;this.b=b;this.p=a.d();this.g=a.g}s(Ac,J);Ac.prototype.evaluate=function(a){a=this.aa.evaluate(a);return Bc(this.b,a)};Ac.prototype.toString=function(){var a;a=“Filter:”+K(this.aa);return a+=K(this.b)};function Cc(a,b){if(b.length<a.Z)throw Error(“Function “+a.h+” expects at least”+a.Z+" arguments, “+b.length+” given");if(null!==a.M&&b.length>a.M)throw Error(“Function “+a.h+” expects at most “+a.M+” arguments, “+b.length+” given”);a.la&&u(b,function(b,d){if(4!=b.e)throw Error(“Argument “+d+” to function “+a.h+” is not of type Nodeset: “+b);});J.call(this,a.e);this.B=a;this.H=b;sc(this,a.p||sa(b,function(a){return a.d()}));tc(this,a.ja&&!b.length||a.ia&&!!b.length||sa(b,function(a){return a.g}))}\ns(Cc,J);Cc.prototype.evaluate=function(a){return this.B.k.apply(null,wa(a,this.H))};Cc.prototype.toString=function(){var a=“Function: “+this.B;if(this.H.length)var b=ra(this.H,function(a,b){return a+K(b)},“Arguments:”),a=a+K(b);return a};function Dc(a,b,c,d,e,f,g,m,t){this.h=a;this.e=b;this.p=c;this.ja=d;this.ia=e;this.k=f;this.Z=g;this.M=void 0!==m?m:g;this.la=!!t}Dc.prototype.toString=h(“h”);var Ec={};\nfunction O(a,b,c,d,e,f,g,m){if(Ec.hasOwnProperty(a))throw Error(“Function already created: “+a+”.”);Ec[a]=new Dc(a,b,c,d,!1,e,f,g,m)}O(“boolean”,2,!1,!1,function(a,b){return uc(b,a)},1);O(“ceiling”,1,!1,!1,function(a,b){return Math.ceil(L(b,a))},1);O(“concat”,3,!1,!1,function(a,b){var c=xa(arguments,1);return ra(c,function(b,c){return b+M(c,a)},””)},2,null);O(“contains”,2,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);return-1!=b.indexOf(a)},2);\nO(“count”,1,!1,!1,function(a,b){return b.evaluate(a).l()},1,1,!0);O(“false”,2,!1,!1,n(!1),0);O(“floor”,1,!1,!1,function(a,b){return Math.floor(L(b,a))},1);\nO(“id”,4,!1,!1,function(a,b){function c(a){if©{var b=e.all[a];if(b){if(b.nodeType&&a==b.id)return b;if(b.length)return ua(b,function(b){return a==b.id})}return null}return e.getElementById(a)}var d=a.c,e=9==d.nodeType?d:d.ownerDocument,d=M(b,a).split(/\s+/),f=[];u(d,function(a){(a=c(a))&&!va(f,a)&&f.push(a)});f.sort(ib);var g=new G;u(f,function(a){g.add(a)});return g},1);O(“lang”,2,!1,!1,n(!1),1);\nO(“last”,1,!0,!1,function(a){if(1!=arguments.length)throw Error(“Function last expects ()”);return a.j},0);O(“local-name”,3,!1,!0,function(a,b){var c=b?pc(b.evaluate(a)):a.c;return c?c.nodeName.toLowerCase():””},0,1,!0);O(“name”,3,!1,!0,function(a,b){var c=b?pc(b.evaluate(a)):a.c;return c?c.nodeName.toLowerCase():""},0,1,!0);O(“namespace-uri”,3,!0,!1,n(""),0,1,!0);O(“normalize-space”,3,!1,!0,function(a,b){return(b?M(b,a):E(a.c)).replace(/[\s\xa0]+/g," “).replace(/^\s+|\s+$/g,”")},0,1);\nO(“not”,2,!1,!1,function(a,b){return!uc(b,a)},1);O(“number”,1,!1,!0,function(a,b){return b?L(b,a):+E(a.c)},0,1);O(“position”,1,!0,!1,function(a){return a.oa},0);O(“round”,1,!1,!1,function(a,b){return Math.round(L(b,a))},1);O(“starts-with”,2,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);return 0==b.lastIndexOf(a,0)},2);O(“string”,3,!1,!0,function(a,b){return b?M(b,a):E(a.c)},0,1);O(“string-length”,1,!1,!0,function(a,b){return(b?M(b,a):E(a.c)).length},0,1);\nO(“substring”,3,!1,!1,function(a,b,c,d){c=L(c,a);if(isNaN©||Infinity==c||-Infinity==c)return"";d=d?L(d,a):Infinity;if(isNaN(d)||-Infinity===d)return"";c=Math.round©-1;var e=Math.max(c,0);a=M(b,a);if(Infinity==d)return a.substring(e);b=Math.round(d);return a.substring(e,c+b)},2,3);O(“substring-after”,3,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);c=b.indexOf(a);return-1==c?"":b.substring(c+a.length)},2);\nO(“substring-before”,3,!1,!1,function(a,b,c){b=M(b,a);a=M(c,a);a=b.indexOf(a);return-1==a?"":b.substring(0,a)},2);O(“sum”,1,!1,!1,function(a,b){for(var c=I(b.eva
luate(a)),d=0,e=c.next();e;e=c.next())d+=+E(e);return d},1,1,!0);O(“translate”,3,!1,!1,function(a,b,c,d){b=M(b,a);c=M(c,a);var e=M(d,a);a=[];for(d=0;d<c.length;d++){var f=c.charAt(d);f in a||(a[f]=e.charAt(d))}c="";for(d=0;d<b.length;d++)f=b.charAt(d),c+=f in a?a[f]:f;return c},3);O(“true”,2,!1,!1,n(!0),0);function H(a,b){this.ea=a;this.X=void 0!==b?b:null;this.i=null;switch(a){case “comment”:this.i=8;break;case “text”:this.i=db;break;case “processing-instruction”:this.i=7;break;case “node”:break;default:throw Error(“Unexpected argument”);}}function Fc(a){return"comment"==a||“text”==a||“processing-instruction”==a||“node”==a}H.prototype.matches=function(a){return null===this.i||this.i==a.nodeType};H.prototype.getName=h(“ea”);\nH.prototype.toString=function(){var a="Kind Test: "+this.ea;null===this.X||(a+=K(this.X));return a};function Gc(a){J.call(this,3);this.da=a.substring(1,a.length-1)}s(Gc,J);Gc.prototype.evaluate=h(“da”);Gc.prototype.toString=function(){return"Literal: “+this.da};function ic(a,b){this.h=a.toLowerCase();this.N=b?b.toLowerCase():“http://www.w3.org/1999/xhtml”}ic.prototype.matches=function(a){var b=a.nodeType;return 1!=b&&2!=b?!1:”
"!=this.h&&this.h!=a.nodeName.toLowerCase()?!1:this.N==(a.namespaceURI?a.namespaceURI.toLowerCase():"http://www.w3.org/1999/xhtml")};ic.prototype.getName=h(“h”);ic.prototype.toString=function(){return"Name Test: "+(“http://www.w3.org/1999/xhtml"==this.N?"":this.N+":”)+this.h};function Hc(a){J.call(this,1);this.fa=a}s(Hc,J);Hc.prototype.evaluate=h(“fa”);Hc.prototype.toString=function(){return"Number: “+this.fa};function Ic(a,b){J.call(this,a.e);this.U=a;this.A=b;this.p=a.d();this.g=a.g;if(1==this.A.length){var c=this.A[0];c.J||c.q!=Jc||(c=c.G,”
”!=c.getName()&&(this.w={name:c.getName(),u:null}))}}s(Ic,J);function Kc(){J.call(this,4)}s(Kc,J);Kc.prototype.evaluate=function(a){var b=new G;a=a.c;9==a.nodeType?b.add(a):b.add(a.ownerDocument);return b};Kc.prototype.toString=n(“Root Helper Expression”);function Lc(){J.call(this,4)}s(Lc,J);Lc.prototype.evaluate=function(a){var b=new G;b.add(a.c);return b};\nLc.prototype.toString=n(“Context Helper Expression”);\nIc.prototype.evaluate=function(a){var b=this.U.evaluate(a);if(!(b instanceof G))throw Error(“Filter expression must evaluate to nodeset.”);a=this.A;for(var c=0,d=a.length;c<d&&b.l();c++){var e=a[c],f=I(b,e.q.t),g;if(e.d()||e.q!=Mc)if(e.d()||e.q!=Nc)for(g=f.next(),b=e.evaluate(new Yb(g));null!=(g=f.next());)g=e.evaluate(new Yb(g)),b=oc(b,g);else g=f.next(),b=e.evaluate(new Yb(g));else{for(g=f.next();(b=f.next())&&(!g.contains||g.contains(b))&&b.compareDocumentPosition(g)&8;g=b);b=e.evaluate(new Yb(g))}}return b};\nIc.prototype.toString=function(){var a;a=“Path Expression:”+K(this.U);if(this.A.length){var b=ra(this.A,function(a,b){return a+K(b)},“Steps:”);a+=K(b)}return a};function Oc(a,b){this.b=a;this.t=!!b}function Bc(a,b,c){for(c=c||0;c<a.b.length;c++)for(var d=a.b[c],e=I(b),f=b.l(),g,m=0;g=e.next();m++){var t=a.t?f-m:m+1;g=d.evaluate(new Yb(g,t,f));if(“number”==typeof g)t=t==g;else if(“string”==typeof g||“boolean”==typeof g)t=!!g;else if(g instanceof G)t=0<g.l();else throw Error(“Predicate.evaluate returned an unexpected type.”);t||e.remove()}return b}Oc.prototype.r=function(){return 0<this.b.length?this.b[0].r():null};\nOc.prototype.d=function(){for(var a=0;a<this.b.length;a++){var b=this.b[a];if(b.d()||1==b.e||0==b.e)return!0}return!1};Oc.prototype.l=function(){return this.b.length};Oc.prototype.toString=function(){return ra(this.b,function(a,b){return a+K(b)},“Predicates:”)};function Q(a,b,c,d){J.call(this,4);this.q=a;this.G=b;this.b=c||new Oc([]);this.J=!!d;b=this.b.r();a.pa&&b&&(a=b.name,a=C?a.toLowerCase():a,this.w={name:a,u:b.u});this.p=this.b.d()}s(Q,J);\nQ.prototype.evaluate=function(a){var b=a.c,c=null,c=this.r(),d=null,e=null,f=0;c&&(d=c.name,e=c.u?M(c.u,a):null,f=1);if(this.J)if(this.d()||this.q!=Pc)if(a=I((new Q(Qc,new H(“node”))).evaluate(a)),b=a.next())for(c=this.k(b,d,e,f);null!=(b=a.next());)c=oc(c,this.k(b,d,e,f));else c=new G;else c
=fc(this.G,b,d,e),c=Bc(this.b,c,f);else c=this.k(a.c,d,e,f);return c};Q.prototype.k=function(a,b,c,d){a=this.q.B(this.G,a,b,c);return a=Bc(this.b,a,d)};\nQ.prototype.toString=function(){var a;a=“Step:”+K(“Operator: “+(this.J?”//”:”/”));this.q.h&&(a+=K(“Axis: “+this.q));a+=K(this.G);if(this.b.l()){var b=ra(this.b.b,function(a,b){return a+K(b)},“Predicates:”);a+=K(b)}return a};function Rc(a,b,c,d){this.h=a;this.B=b;this.t=c;this.pa=d}Rc.prototype.toString=h(“h”);var Sc={};function R(a,b,c,d){if(Sc.hasOwnProperty(a))throw Error(“Axis already created: “+a);b=new Rc(a,b,c,!!d);return Sc[a]=b}\nR(“ancestor”,function(a,b){for(var c=new G,d=b;d=d.parentNode;)a.matches(d)&&c.unshift(d);return c},!0);R(“ancestor-or-self”,function(a,b){var c=new G,d=b;do a.matches(d)&&c.unshift(d);while(d=d.parentNode);return c},!0);\nvar Jc=R(“attribute”,function(a,b){var c=new G,d=a.getName();if(“style”==d&&b.style&&C)return c.add(new $b(b.style,b,“style”,b.style.cssText,b.sourceIndex)),c;var e=b.attributes;if(e)if(a instanceof H&&null===a.i||”"==d)for(var d=b.sourceIndex,f=0,g;g=e[f];f++)C?g.nodeValue&&c.add(ac(b,g,d)):c.add(g);else(g=e.getNamedItem(d))&&(C?g.nodeValue&&c.add(ac(b,g,b.sourceIndex)):c.add(g));return c},!1),Pc=R(“child”,function(a,b,c,d,e){return(C?lc:mc).call(null,a,b,r©?c:null,r(d)?d:null,e||new G)},!1,!0);\nR(“descendant”,fc,!1,!0);var Qc=R(“descendant-or-self”,function(a,b,c,d){var e=new G;F(b,c,d)&&a.matches(b)&&e.add(b);return fc(a,b,c,d,e)},!1,!0),Mc=R(“following”,function(a,b,c,d){var e=new G;do for(var f=b;f=f.nextSibling;)F(f,c,d)&&a.matches(f)&&e.add(f),e=fc(a,f,c,d,e);while(b=b.parentNode);return e},!1,!0);R(“following-sibling”,function(a,b){for(var c=new G,d=b;d=d.nextSibling;)a.matches(d)&&c.add(d);return c},!1);R(“namespace”,function(){return new G},!1);\nvar Tc=R(“parent”,function(a,b){var c=new G;if(9==b.nodeType)return c;if(2==b.nodeType)return c.add(b.ownerElement),c;var d=b.parentNode;a.matches(d)&&c.add(d);return c},!1),Nc=R(“preceding”,function(a,b,c,d){var e=new G,f=[];do f.unshift(b);while(b=b.parentNode);for(var g=1,m=f.length;g<m;g++){var t=[];for(b=f[g];b=b.previousSibling;)t.unshift(b);for(var v=0,p=t.length;v<p;v++)b=t[v],F(b,c,d)&&a.matches(b)&&e.add(b),e=fc(a,b,c,d,e)}return e},!0,!0);\nR(“preceding-sibling”,function(a,b){for(var c=new G,d=b;d=d.previousSibling;)a.matches(d)&&c.unshift(d);return c},!0);var Uc=R(“self”,function(a,b){var c=new G;a.matches(b)&&c.add(b);return c},!1);function Vc(a){J.call(this,1);this.T=a;this.p=a.d();this.g=a.g}s(Vc,J);Vc.prototype.evaluate=function(a){return-L(this.T,a)};Vc.prototype.toString=function(){return"Unary Expression: -"+K(this.T)};function Wc(a){J.call(this,4);this.D=a;sc(this,sa(this.D,function(a){return a.d()}));tc(this,sa(this.D,function(a){return a.g}))}s(Wc,J);Wc.prototype.evaluate=function(a){var b=new G;u(this.D,function©{c=c.evaluate(a);if(!(c instanceof G))throw Error(“Path expression must evaluate to NodeSet.”);b=oc(b,c)});return b};Wc.prototype.toString=function(){return ra(this.D,function(a,b){return a+K(b)},“Union Expression:”)};function Xc(a,b){this.a=a;this.ma=b}function Yc(a){for(var b,c=[];;){S(a,“Missing right hand side of binary expression.”);b=Zc(a);var d=a.a.next();if(!d)break;var e=(d=zc[d]||null)&&d.$;if(!e){a.a.back();break}for(;c.length&&e<=c[c.length-1].$;)b=new vc(c.pop(),c.pop(),b);c.push(b,d)}for(;c.length;)b=new vc(c.pop(),c.pop(),b);return b}function S(a,b){if(a.a.empty())throw Error(b);}function $c(a,b){var c=a.a.next();if(c!=b)throw Error(“Bad token, expected: “+b+” got: “+c);}\nfunction ad(a){a=a.a.next();if(”)”!=a)throw Error(“Bad token: “+a);}function bd(a){a=a.a.next();if(2>a.length)throw Error(“Unclosed literal string”);return new Gc(a)}function cd(a){var b=a.a.next(),c=b.indexOf(”:”);if(-1==c)return new ic(b);var d=b.substring(0,c);a=a.ma(d);if(!a)throw Error(“Namespace prefix not declared: “+d);b=b.substr(c+1);return new ic(b,a)}\nfunction dd(a){var b,c=[],d;if(”/”==D(a.a)||"//"==D(a.a)){b=a.a.next();d=D(a.a);if("/"==b&&(a.a.empty()||"."
!=d&&"…"!=d&&"@"!=d&&"
”!=d&&!/(?![0-9])[\w]/.test(d)))return new Kc;d=new Kc;S(a,“Missing next location step.”);b=ed(a,b);c.push(b)}else{a:{b=D(a.a);d=b.charAt(0);switch(d){case “$”:throw Error(“Variable reference not allowed in HTML XPath”);case “(”:a.a.next();b=Yc(a);S(a,‘unclosed “(”’);$c(a,”)”);break;case ‘"’:case “’”:b=bd(a);break;default:if(isNaN(+b))if(!Fc(b)&&/(?![0-9])[\w]/.test(d)&&\n"("==D(a.a,1)){b=a.a.next();b=Ec[b]||null;a.a.next();for(d=[];")"!=D(a.a);){S(a,“Missing function argument list.”);d.push(Yc(a));if(","!=D(a.a))break;a.a.next()}S(a,“Unclosed function argument list.”);ad(a);b=new Cc(b,d)}else{b=null;break a}else b=new Hc(+a.a.next())}"["==D(a.a)&&(d=new Oc(fd(a)),b=new Ac(b,d))}if(b)if("/"==D(a.a)||"//"==D(a.a))d=b;else return b;else b=ed(a,"/"),d=new Lc,c.push(b)}for(;"/"==D(a.a)||"//"==D(a.a);)b=a.a.next(),S(a,“Missing next location step.”),b=ed(a,b),c.push(b);\nreturn new Ic(d,c)}\nfunction ed(a,b){var c,d,e;if("/"!=b&&"//"!=b)throw Error(‘Step op should be “/” or “//”’);if("."==D(a.a))return d=new Q(Uc,new H(“node”)),a.a.next(),d;if("…"==D(a.a))return d=new Q(Tc,new H(“node”)),a.a.next(),d;var f;if("@"==D(a.a))f=Jc,a.a.next(),S(a,“Missing attribute name”);else if("::"==D(a.a,1)){if(!/(?![0-9])[\w]/.test(D(a.a).charAt(0)))throw Error(“Bad token: “+a.a.next());c=a.a.next();f=Sc[c]||null;if(!f)throw Error(“No axis with name: “+c);a.a.next();S(a,“Missing node name”)}else f=Pc;\nc=D(a.a);if(/(?![0-9])[\w]/.test(c.charAt(0)))if(”(”==D(a.a,1)){if(!Fc©)throw Error(“Invalid node type: “+c);c=a.a.next();if(!Fc©)throw Error(“Invalid type name: “+c);$c(a,”(”);S(a,“Bad nodetype”);e=D(a.a).charAt(0);var g=null;if(’”’==e||”’”==e)g=bd(a);S(a,“Bad nodetype”);ad(a);c=new H(c,g)}else c=cd(a);else if(”"==c)c=cd(a);else throw Error(“Bad token: “+a.a.next());e=new Oc(fd(a),f.t);return d||new Q(f,c,e,”//”==b)}\nfunction fd(a){for(var b=[];"["==D(a.a);){a.a.next();S(a,“Missing predicate expression.”);var c=Yc(a);b.push©;S(a,“Unclosed predicate expression.”);$c(a,"]")}return b}function Zc(a){if("-"==D(a.a))return a.a.next(),new Vc(Zc(a));var b=dd(a);if("|"!=D(a.a))a=b;else{for(b=[b];"|"==a.a.next();)S(a,“Missing next union location path.”),b.push(dd(a));a.a.back();a=new Wc(b)}return a};function gd(a){switch(a.nodeType){case 1:return ha(hd,a);case 9:return gd(a.documentElement);case 2:return a.ownerElement?gd(a.ownerElement):id;case 11:case 10:case 6:case 12:return id;default:return a.parentNode?gd(a.parentNode):id}}function id(){return null}function hd(a,b){if(a.prefix==b)return a.namespaceURI||“http://www.w3.org/1999/xhtml”;var c=a.getAttributeNode(“xmlns:”+b);return c&&c.specified?c.value||null:a.parentNode&&9!=a.parentNode.nodeType?hd(a.parentNode,b):null};function jd(a,b){if(!a.length)throw Error(“Empty XPath expression.”);var c=cc(a);if(c.empty())throw Error(“Invalid XPath expression.”);b?ca(b)||(b=ga(b.lookupNamespaceURI,b)):b=n(null);var d=Yc(new Xc(c,b));if(!c.empty())throw Error(“Bad token: “+c.next());this.evaluate=function(a,b){var c=d.evaluate(new Yb(a));return new T(c,b)}}\nfunction T(a,b){if(0==b)if(a instanceof G)b=4;else if(“string”==typeof a)b=2;else if(“number”==typeof a)b=1;else if(“boolean”==typeof a)b=3;else throw Error(“Unexpected evaluation result.”);if(2!=b&&1!=b&&3!=b&&!(a instanceof G))throw Error(“value could not be converted to the specified type”);this.resultType=b;var c;switch(b){case 2:this.stringValue=a instanceof G?qc(a):””+a;break;case 1:this.numberValue=a instanceof G?+qc(a):+a;break;case 3:this.booleanValue=a instanceof G?0<a.l():!!a;break;case 4:case 5:case 6:case 7:var d=\nI(a);c=[];for(var e=d.next();e;e=d.next())c.push(e instanceof $b?e.c:e);this.snapshotLength=a.l();this.invalidIteratorState=!1;break;case 8:case 9:d=pc(a);this.singleNodeValue=d instanceof $b?d.c:d;break;default:throw Error(“Unknown XPathResult type.”);}var f=0;this.iterateNext=function(){if(4!=b&&5!=b)throw Error(“iterateNext called with wrong result type”);return
f>=c.length?null:c[f++]};this.snapshotItem=function(a){if(6!=b&&7!=b)throw Error(“snapshotItem called with wrong result type”);return a>=\nc.length||0>a?null:c[a]}}T.ANY_TYPE=0;T.NUMBER_TYPE=1;T.STRING_TYPE=2;T.BOOLEAN_TYPE=3;T.UNORDERED_NODE_ITERATOR_TYPE=4;T.ORDERED_NODE_ITERATOR_TYPE=5;T.UNORDERED_NODE_SNAPSHOT_TYPE=6;T.ORDERED_NODE_SNAPSHOT_TYPE=7;T.ANY_UNORDERED_NODE_TYPE=8;T.FIRST_ORDERED_NODE_TYPE=9;function kd(a){this.lookupNamespaceURI=gd(a)}\nfunction ld(a){a=a||q;var b=a.document;b.evaluate||(a.XPathResult=T,b.evaluate=function(a,b,e,f){return(new jd(a,e)).evaluate(b,f)},b.createExpression=function(a,b){return new jd(a,b)},b.createNSResolver=function(a){return new kd(a)})};var U={};U.ga=function(){var a={sa:“http://www.w3.org/2000/svg”};return function(b){return a[b]||null}}();U.k=function(a,b,c){var d=z(a);(w||yb)&&ld(d?d.parentWindow||d.defaultView:window);try{var e=d.createNSResolver?d.createNSResolver(d.documentElement):U.ga;return w&&!Va(7)?d.evaluate.call(d,b,a,e,c,null):d.evaluate(b,a,e,c,null)}catch(f){if(!La||“NS_ERROR_ILLEGAL_VALUE”!=f.name)throw new Vb(32,“Unable to locate an element with the xpath expression “+b+” because of the following error:\n”+f);}};\nU.I=function(a,b){if(!a||1!=a.nodeType)throw new Vb(32,‘The result of the xpath expression "’+b+’" is: '+a+". It should be an element.");};U.n=function(a,b){var c=function(){var c=U.k(b,a,9);return c?(c=c.singleNodeValue,Ka?c:c||null):b.selectSingleNode?(c=z(b),c.setProperty&&c.setProperty(“SelectionLanguage”,“XPath”),b.selectSingleNode(a)):null}();null===c||U.I(c,a);return c};\nU.o=function(a,b){var c=function(){var c=U.k(b,a,7);if©{var e=c.snapshotLength;Ka&&void 0===e&&U.I(null,a);for(var f=[],g=0;g<e;++g)f.push(c.snapshotItem(g));return f}return b.selectNodes?(c=z(b),c.setProperty&&c.setProperty(“SelectionLanguage”,“XPath”),b.selectNodes(a)):[]}();u(c,function(b){U.I(b,a)});return c};function md(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d}md.prototype.toString=function(){return"("+this.top+"t, "+this.right+"r, “+this.bottom+“b, “+this.left+“l)”};md.prototype.contains=function(a){return this&&a?a instanceof md?a.left>=this.left&&a.right<=this.right&&a.top>=this.top&&a.bottom<=this.bottom:a.x>=this.left&&a.x<=this.right&&a.y>=this.top&&a.y<=this.bottom:!1};\nmd.prototype.ceil=function(){this.top=Math.ceil(this.top);this.right=Math.ceil(this.right);this.bottom=Math.ceil(this.bottom);this.left=Math.ceil(this.left);return this};md.prototype.floor=function(){this.top=Math.floor(this.top);this.right=Math.floor(this.right);this.bottom=Math.floor(this.bottom);this.left=Math.floor(this.left);return this};\nmd.prototype.round=function(){this.top=Math.round(this.top);this.right=Math.round(this.right);this.bottom=Math.round(this.bottom);this.left=Math.round(this.left);return this};function V(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}V.prototype.toString=function(){return”(”+this.left+”, “+this.top+” - "+this.width+"w x “+this.height+“h)”};V.prototype.contains=function(a){return a instanceof V?this.left<=a.left&&this.left+this.width>=a.left+a.width&&this.top<=a.top&&this.top+this.height>=a.top+a.height:a.x>=this.left&&a.x<=this.left+this.width&&a.y>=this.top&&a.y<=this.top+this.height};\nV.prototype.ceil=function(){this.left=Math.ceil(this.left);this.top=Math.ceil(this.top);this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};V.prototype.floor=function(){this.left=Math.floor(this.left);this.top=Math.floor(this.top);this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};\nV.prototype.round=function(){this.left=Math.round(this.left);this.top=Math.round(this.top);this.width=Math.round(this.width);this.height=Math.round(this.height);return this};function W(a,b){return!!a&&1==a.nodeType&&(!b||a.tagName.toUpperCase()==b)}var nd=/[;]+(?=(?:(?:[^”]
"){2})[^"]$)(?=(?:(?:[^’]’){2})[^’]$)(?=(?:[^()]\([^()]\))[^()]$)/;function od(a){var b=[];u(a.split(nd),function(a){var d=a.indexOf(":");0<d&&(a=[a.slice(0,d),a.slice(d+1)
],2==a.length&&b.push(a[0].toLowerCase(),":",a[1],";"))});b=b.join("");b=";"==b.charAt(b.length-1)?b:b+";";return Ka?b.replace(/\w+:;/g,""):b}\nfunction pd(a,b){b=b.toLowerCase();if(“style”==b)return od(a.style.cssText);if(Lb&&“value”==b&&W(a,“INPUT”))return a.value;if(Mb&&!0===a[b])return String(a.getAttribute(b));var c=a.getAttributeNode(b);return c&&c.specified?c.value:null}function qd(a){for(a=a.parentNode;a&&1!=a.nodeType&&9!=a.nodeType&&11!=a.nodeType;)a=a.parentNode;return W(a)?a:null}\nfunction X(a,b){var c=na(b);if(“float”==c||“cssFloat”==c||“styleFloat”==c)c=Mb?“styleFloat”:“cssFloat”;var d;a:{d=c;var e=z(a);if(e.defaultView&&e.defaultView.getComputedStyle&&(e=e.defaultView.getComputedStyle(a,null))){d=e[d]||e.getPropertyValue(d)||"";break a}d=""}d=d||rd(a,c);if(null===d)d=null;else if(va(Qb,c)){b:{var f=d.match(Tb);if(f){var c=Number(f[1]),e=Number(f[2]),g=Number(f[3]),f=Number(f[4]);if(0<=c&&255>=c&&0<=e&&255>=e&&0<=g&&255>=g&&0<=f&&1>=f){c=[c,e,g,f];break b}}c=null}if(!c){b:{if(g=\nd.match(Ub))if(c=Number(g[1]),e=Number(g[2]),g=Number(g[3]),0<=c&&255>=c&&0<=e&&255>=e&&0<=g&&255>=g){c=[c,e,g,1];break b}c=null}if(!c)b:{c=d.toLowerCase();e=Pb[c.toLowerCase()];if(!e&&(e="#"==c.charAt(0)?c:"#"+c,4==e.length&&(e=e.replace(Rb,"#$1$1$2$2$3$3")),!Sb.test(e))){c=null;break b}c=[parseInt(e.substr(1,2),16),parseInt(e.substr(3,2),16),parseInt(e.substr(5,2),16),1]}}d=c?“rgba(”+c.join(", “)+”)":d}return d}\nfunction rd(a,b){var c=a.currentStyle||a.style,d=c[b];void 0===d&&ca(c.getPropertyValue)&&(d=c.getPropertyValue(b));return"inherit"!=d?void 0!==d?d:null:(c=qd(a))?rd(c,b):null}\nfunction sd(a,b){function c(a){if(“none”==X(a,“display”))return!1;a=qd(a);return!a||c(a)}function d(a){var b=td(a);return 0<b.height&&0<b.width?!0:W(a,“PATH”)&&(0<b.height||0<b.width)?(a=X(a,“stroke-width”),!!a&&0<parseInt(a,10)):“hidden”!=X(a,“overflow”)&&sa(a.childNodes,function(a){return a.nodeType==db||W(a)&&d(a)})}function e(a){return ud(a)==Y&&ta(a.childNodes,function(a){return!W(a)||e(a)})}if(!W(a))throw Error(“Argument to isShown must be of type Element”);if(W(a,“OPTION”)||W(a,“OPTGROUP”)){var f=\nlb(a,function(a){return W(a,“SELECT”)});return!!f&&sd(f,!0)}return(f=vd(a))?!!f.V&&0<f.rect.width&&0<f.rect.height&&sd(f.V,b):W(a,“INPUT”)&&“hidden”==a.type.toLowerCase()||W(a,“NOSCRIPT”)||“hidden”==X(a,“visibility”)||!c(a)||!b&&0==wd(a)||!d(a)?!1:!e(a)}var Y=“hidden”;\nfunction ud(a){function b(a){var b=X(a,“position”);if(“fixed”==b)return v=!0,a==g?null:g;for(a=qd(a);a&&a!=g&&(0==X(a,“display”).lastIndexOf(“inline”,0)||“absolute”==b&&“static”==X(a,“position”));)a=qd(a);return a}function c(a){var b=a;if(“visible”==t)if(a==g&&m)b=m;else if(a==m)return{x:“visible”,y:“visible”};b={x:X(b,“overflow-x”),y:X(b,“overflow-y”)};a==g&&(b.x=“visible”==b.x?“auto”:b.x,b.y=“visible”==b.y?“auto”:b.y);return b}function d(a){if(a==g){var b=(new eb(f)).K;a=Ma||“CSS1Compat”!=b.compatMode?\nb.body||b.documentElement:b.documentElement;b=b.parentWindow||b.defaultView;a=w&&Va(“10”)&&b.pageYOffset!=a.scrollTop?new Ya(a.scrollLeft,a.scrollTop):new Ya(b.pageXOffset||a.scrollLeft,b.pageYOffset||a.scrollTop)}else a=new Ya(a.scrollLeft,a.scrollTop);return a}var e=xd(a),f=z(a),g=f.documentElement,m=f.body,t=X(g,“overflow”),v;for(a=b(a);a;a=b(a)){var p=c(a);if(“visible”!=p.x||“visible”!=p.y){var k=td(a);if(0==k.width||0==k.height)return Y;var l=e.right<k.left,P=e.bottom<k.top;if(l&&“hidden”==p.x||\nP&&“hidden”==p.y)return Y;if(l&&“visible”!=p.x||P&&“visible”!=p.y){l=d(a);P=e.bottom<k.top-l.y;if(e.right<k.left-l.x&&“visible”!=p.x||P&&“visible”!=p.x)return Y;e=ud(a);return e==Y?Y:“scroll”}l=e.left>=k.left+k.width;k=e.top>=k.top+k.height;if(l&&“hidden”==p.x||k&&“hidden”==p.y)return Y;if(l&&“visible”!=p.x||k&&“visible”!=p.y){if(v&&(p=d(a),e.left>=g.scrollWidth-p.x||e.right>=g.scrollHeight-p.y))return Y;e=ud(a);return e==Y?Y:“scroll”}}}return"none"}var yd=RegExp(“matrix\\(([\\d\\.\\-]+), ([\\d\\.\\-]+), ([\\d\\.\\-
]+), ([\\d\\.\\-]+), ([\\d\\.\\-]+)(?:px)?, ([\\d\\.\\-]+)(?:px)?\\)”);\nfunction td(a){function b(a){var c=(z(a)?z(a).parentWindow||z(a).defaultView:window).getComputedStyle(a,null).MozTransform.match(yd);if©{var d=parseFloat(c[1]),e=parseFloat(c[2]),p=parseFloat(c[3]),k=parseFloat(c[4]),l=parseFloat(c[5]),c=parseFloat(c[6]),P=f.left+f.width,Fa=f.top+f.height,Ga=f.left
d,d=Pd,Ha=f.lefte,e=Pe,Ia=f.topp,p=Fap,Ja=f.topk,P=Fak,Fa=Ga+Ia+l,k=Ha+Ja+c,Ia=d+Ia+l,Ja=e+Ja+c,Ga=Ga+p+l,Ha=Ha+P+c,l=d+p+l,c=e+P+c;f.left=Math.min(Fa,Ia,Ga,l);f.top=Math.min(k,Ja,Ha,c);l=Math.max(Fa,\nIa,Ga,l);c=Math.max(k,Ja,Ha,c);f.width=l-f.left;f.height=c-f.top}(a=qd(a))&&b(a)}var c=vd(a);if©return c.rect;if(W(a,“HTML”))return c=z(a),a=fb((c?c.parentWindow||c.defaultView:window)||window),new V(0,0,a.width,a.height);var d;try{d=a.getBoundingClientRect()}catch(e){return new V(0,0,0,0)}var f=new V(d.left,d.top,d.right-d.left,d.bottom-d.top);w&&a.ownerDocument.body&&(c=z(a),f.left-=c.documentElement.clientLeft+c.body.clientLeft,f.top-=c.documentElement.clientTop+c.body.clientTop);Ka&&(0==f.width&&\n0<a.offsetWidth&&(f.width=a.offsetWidth),0==f.height&&0<a.offsetHeight&&(f.height=a.offsetHeight));La&&!Fb(12)&&b(a);return f}\nfunction vd(a){var b=W(a,“MAP”);if(!b&&!W(a,“AREA”))return null;var c=b?a:W(a.parentNode,“MAP”)?a.parentNode:null,d=null,e=null;if(c&&c.name&&(d=U.n(’/descendant::[@usemap = “#’+c.name+’”]’,z©))&&(e=td(d),!b&&“default”!=a.shape.toLowerCase())){var f=zd(a);a=Math.min(Math.max(f.left,0),e.width);b=Math.min(Math.max(f.top,0),e.height);c=Math.min(f.width,e.width-a);f=Math.min(f.height,e.height-b);e=new V(a+e.left,b+e.top,c,f)}return{V:d,rect:e||new V(0,0,0,0)}}\nfunction zd(a){var b=a.shape.toLowerCase();a=a.coords.split(",");if(“rect”==b&&4==a.length){var b=a[0],c=a[1];return new V(b,c,a[2]-b,a[3]-c)}if(“circle”==b&&3==a.length)return b=a[2],new V(a[0]-b,a[1]-b,2b,2b);if(“poly”==b&&2<a.length){for(var b=a[0],c=a[1],d=b,e=c,f=2;f+1<a.length;f+=2)b=Math.min(b,a[f]),d=Math.max(d,a[f]),c=Math.min(c,a[f+1]),e=Math.max(e,a[f+1]);return new V(b,c,d-b,e-c)}return new V(0,0,0,0)}function xd(a){a=td(a);return new md(a.top,a.left+a.width,a.top+a.height,a.left)}\nfunction Ad(a){return a.replace(/^[^\S\xa0]+|[^\S\xa0]+$/g,"")}function Bd(a){var b=[];Cd(a,b);b=qa(b,Ad);return Ad(b.join("\n")).replace(/\xa0/g," “)}\nfunction Cd(a,b){if(W(a,“BR”))b.push(”");else{var c=W(a,“TD”),d=X(a,“display”),e=!c&&!va(Dd,d),f=void 0!=a.previousElementSibling?a.previousElementSibling:gb(a.previousSibling),f=f?X(f,“display”):"",g=X(a,“float”)||X(a,“cssFloat”)||X(a,“styleFloat”);!e||(“run-in”==f&&“none”==g||/^[\s\xa0]$/.test(b[b.length-1]||""))||b.push("");var m=sd(a),t=null,v=null;m&&(t=X(a,“white-space”),v=X(a,“text-transform”));u(a.childNodes,function(a){a.nodeType==db&&m?Ed(a,b,t,v):W(a)&&Cd(a,b)});f=b[b.length-1]||"";!c&&\n"table-cell"!=d||(!f||ka(f))||(b[b.length-1]+=" ");e&&(“run-in”!=d&&!/^[\s\xa0]$/.test(f))&&b.push("")}}var Dd=“inline inline-block inline-table none table-cell table-column table-column-group”.split(" “);\nfunction Ed(a,b,c,d){a=a.nodeValue.replace(/[\u200b\u200e\u200f]/g,”");a=a.replace(/(\r\n|\r|\n)/g,"\n");if(“normal”==c||“nowrap”==c)a=a.replace(/\n/g," “);a=“pre”==c||“pre-wrap”==c?a.replace(/[ \f\t\v\u2028\u2029]/g,”\u00a0"):a.replace(/[\ \f\t\v\u2028\u2029]+/g," “);“capitalize”==d?a=a.replace(/(^|\s)(\S)/g,function(a,b,c){return b+c.toUpperCase()}):“uppercase”==d?a=a.toUpperCase():“lowercase”==d&&(a=a.toLowerCase());c=b.pop()||”";ka©&&0==a.lastIndexOf(" “,0)&&(a=a.substr(1));b.push(c+a)}\nfunction wd(a){if(Nb){if(“relative”==X(a,“position”))return 1;a=X(a,“filter”);return(a=a.match(/^alpha\(opacity=(\d*)\)/)||a.match(/^progid:DXImageTransform.Microsoft.Alpha\(Opacity=(\d*)\)/))?Number(a[1])/100:1}return Fd(a)}function Fd(a){var b=1,c=X(a,“opacity”);c&&(b=Number©);(a=qd(a))&&(b*=Fd(a));return b};var Z={},Gd={};Z.ca=function(a,b,c){var d;try{d=Ob.o(“a”,b)}
catch(e){d=A(y(b),“A”,null,b)}return ua(d,function(b){b=Bd(b);return c&&-1!=b.indexOf(a)||b==a})};Z.Y=function(a,b,c){var d;try{d=Ob.o(“a”,b)}catch(e){d=A(y(b),“A”,null,b)}return pa(d,function(b){b=Bd(b);return c&&-1!=b.indexOf(a)||b==a})};Z.n=function(a,b){return Z.ca(a,b,!1)};Z.o=function(a,b){return Z.Y(a,b,!1)};Gd.n=function(a,b){return Z.ca(a,b,!0)};Gd.o=function(a,b){return Z.Y(a,b,!0)};var Hd={n:function(a,b){return b.getElementsByTagName(a)[0]||null},o:function(a,b){return b.getElementsByTagName(a)}};var Id={className:mb,“class name”:mb,css:Ob,“css selector”:Ob,id:{n:function(a,b){var c=y(b),d=r(a)?c.K.getElementById(a):a;if(!d)return null;if(pd(d,“id”)==a&&hb(b,d))return d;c=A(c,”");return ua(c,function©{return pd(c,“id”)==a&&hb(b,c)})},o:function(a,b){var c=A(y(b),"",null,b);return pa(c,function(b){return pd(b,“id”)==a})}},linkText:Z,“link text”:Z,name:{n:function(a,b){var c=A(y(b),"",null,b);return ua(c,function(b){return pd(b,“name”)==a})},o:function(a,b){var c=A(y(b),"",null,b);return pa(c,\nfunction(b){return pd(b,“name”)==a})}},partialLinkText:Gd,“partial link text”:Gd,tagName:Hd,“tag name”:Hd,xpath:U};function Jd(){this.F=void 0}\nfunction Kd(a,b,c){switch(typeof b){case “string”:Ld(b,c);break;case “number”:c.push(isFinite(b)&&!isNaN(b)?b:“null”);break;case “boolean”:c.push(b);break;case “undefined”:c.push(“null”);break;case “object”:if(null==b){c.push(“null”);break}if(“array”==aa(b)){var d=b.length;c.push("[");for(var e="",f=0;f<d;f++)c.push(e),e=b[f],Kd(a,a.F?a.F.call(b,String(f),e):e,c),e=",";c.push("]");break}c.push("{");d="";for(f in b)Object.prototype.hasOwnProperty.call(b,f)&&(e=b[f],“function”!=typeof e&&(c.push(d),\nLd(f,c),c.push(":"),Kd(a,a.F?a.F.call(b,f,e):e,c),d=","));c.push("}");break;case “function”:break;default:throw Error(“Unknown type: “+typeof b);}}var Md={’”’:’\\”’,"\\":"\\\\","/":"\\/","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\x0B":"\\u000b"},Nd=/\uffff/.test("\uffff")?/[\\\"\x00-\x1f\x7f-\uffff]/g:/[\\\"\x00-\x1f\x7f-\xff]/g;\nfunction Ld(a,b){b.push(’"’,a.replace(Nd,function(a){if(a in Md)return Md[a];var b=a.charCodeAt(0),e="\\u";16>b?e+=“000”:256>b?e+=“00”:4096>b&&(e+=“0”);return Md[a]=e+b.toString(16)}),’"’)};Ma||Ka||La&&Fb(3.5)||w&&Fb(8);function bb(a){switch(aa(a)){case “string”:case “number”:case “boolean”:return a;case “function”:return a.toString();case “array”:return qa(a,bb);case “object”:if(“nodeType"in a&&(1==a.nodeType||9==a.nodeType)){var b={};b.ELEMENT=Od(a);return b}if(“document"in a)return b={},b.WINDOW=Od(a),b;if(ba(a))return qa(a,bb);a=$a(a,function(a,b){return"number”==typeof b||r(b)});return ab(a);default:return null}}function Pd(a){a=a||document;var b=a.$wdc_;b||(b=a.$wdc_={},b.O=ia());b.O||(b.O=ia());return b}\nfunction Od(a){var b=Pd(a.ownerDocument),c=cb(b,function(b){return b==a});c||(c=”:wdc:"+b.O++,b[c]=a);return c}function Qd(a,b){a=decodeURIComponent(a);var c=b||document,d=Pd©;if(!(a in d))throw new Vb(10,“Element does not exist in cache”);var e=d[a];if(“setInterval"in e){if(e.closed)throw delete d[a],new Vb(23,“Window has been closed.”);return e}for(var f=e;f;){if(f==c.documentElement)return e;f=f.parentNode}delete d[a];throw new Vb(10,“Element is no longer attached to the DOM”);};function Rd(a,b,c,d){var e={};e[a]=b;var f;try{var g=d?Qd(d.WINDOW):window,m;a:{var t=c?Qd(c.ELEMENT,g.document):g.document,v;b:{for(var p in e)if(e.hasOwnProperty§){v=p;break b}v=null}if(v){var k=Id[v];if(k&&ca(k.n)){m=k.n(e[v],t||ja.document);break a}}throw Error(“Unsupported locator strategy: “+v);}f={status:0,value:bb(m)}}catch(l){f={status:“code"in l?l.code:13,value:{message:l.message}}}a=[];Kd(new Jd,f,a);return a.join(””)}var Sd=[”"],$=q;Sd[0]in $||!$.execScript||$.execScript("var "+Sd[0]);\nfor(var Td;Sd.length&&(Td=Sd.shift());)Sd.length||void 0===Rd?$=$[Td]?$[Td]:$[Td]={}:$[Td]=Rd;; return this..apply(null,arguments);}.apply({navigat
or:typeof window!=undefined?window.navigator:null,document:typeof window!=undefined?window.document:null}, arguments);}\n)(“class name”,“lsb”,null)”,“returnByValue”:true},“id”:10}]
debug: Responding to client with success: {“status”:0,“value”:{“ELEMENT”:“5002”},“sessionId”:“3ba12112-fe64-4530-8d00-f18965dce5b4”}
error: ##############Sarfaraz################
error: ##############Momin################
debug: Pushing command to appium work queue: “au.getElement(‘5002’).rect()”
debug: Sending command to instruments: au.getElement(‘5002’).rect()
debug: [INST] 2014-10-13 10:21:13 +0000 Debug: Got new command 3 from instruments: au.getElement(‘5002’).rect()

debug: [INST] 2014-10-13 10:21:13 +0000 Debug: evaluating au.getElement(‘5002’).rect()

debug: [INST] 2014-10-13 10:21:13 +0000 Error: TypeError: ‘null’ is not an object (evaluating ‘au.getElement(‘5002’).rect’)

Some part of log were missed -
debug: Responding to client with success: {“status”:0,“value”:{“ELEMENT”:“5000”},“sessionId”:“bacab50c-ae9b-4aa7-bd80-9f705fe830f6”}

debug: Pushing command to appium work queue: “au.getElement(‘5000’).rect()”
debug: Sending command to instruments: au.getElement(‘5000’).rect()

debug: [INST] 2014-10-14 06:43:21 +0000 Debug: Got new command 2 from instruments: au.getElement(‘5000’).rect()

debug: [INST] 2014-10-14 06:43:21 +0000 Debug: evaluating au.getElement(‘5000’).rect()

debug: [INST] 2014-10-14 06:43:21 +0000 Error: TypeError: ‘null’ is not an object (evaluating ‘au.getElement(‘5000’).rect’)

debug: Socket data received (91 bytes)

debug: Socket data being routed.
debug: Got result from instruments: {“status”:17,“value”:"‘null’ is not an object (evaluating ‘au.getElement(‘5000’).rect’)"}

error: uncaughtException: Cannot read property ‘x’ of undefined date=Tue Oct 14 2014 12:13:23 GMT+0530 (IST), pid=1677, uid=502, gid=20, cwd=/Applications/Appium.app/Contents/Resources/node_modules/appium, execPath=/Applications/Appium.app/Contents/Resources/node/bin/node, version=v0.10.31, argv=[/Applications/Appium.app/Contents/Resources/node/bin/node, /Applications/Appium.app/Contents/Resources/node_modules/appium/lib/server/main.js, --command-timeout, 7200, --safari, --browser-name, Safari, --udid, 71025dee76d37d3fb8be2475f2b89705f80096d5, --device-name, iPad, --launch-timeout, 90000], rss=74637312, heapTotal=61307648, heapUsed=36827968, loadavg=[0.560546875, 0.65966796875, 0.5849609375], uptime=86025, trace=[column=36, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js, function=, line=2106, method=null, native=false, column=43, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/async/lib/async.js, function=next, line=801, method=null, native=false, column=16, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/async/lib/async.js, function=null, line=32, method=null, native=false, column=9, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js, function=exports.respond, line=28, method=respond, native=false, column=18, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios.js, function=, line=1395, method=null, native=false, column=20, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/lib/command-proxy.js, function=getResultAndSendNext, line=134, method=null, native=false, column=7, file=/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/lib/command-proxy.js, function=, line=88, method=null, native=false, column=20, file=events.js, function=Socket.emit, line=117, method=emit, native=false, column=16, file=_stream_readable.js, function=null, line=943, method=null, native=false, column=13, file=node.js, function=process._tickDomainCallback, line=463, method=_tickDomainCallback, native=false], stack=[TypeError: Cannot read property ‘x’ of undefined, at null. (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios-controller.js:2106:36), at next (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/async/lib/async.js:801:43), at /Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/async/lib/async.js:32:16, at exports.respond (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/common.js:28:9), at null. (/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios.js:1395:18), at getResultAndSendNext (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/lib/command-proxy.js:134:20), at Socket. (/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-uiauto/lib/command-proxy.js:88:7), at Socket.emit (events.js:117:20), at _stream_readable.js:943:16, at process._tickDomainCallback (node.js:463:13)]

This is console log of intelliJ

Exception in thread “main” org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: ‘2.42.2’, revision: ‘6a6995d’, time: ‘2014-06-03 17:42:30’
System info: host: ‘dsinsfmina4’, ip: ‘172.26.74.122’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.7.0_67’
Driver info: driver.version: AppiumDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:95)
at io.appium.java_client.AppiumDriver.performTouchAction(AppiumDriver.java:273)
at io.appium.java_client.TouchAction.perform(TouchAction.java:253)
at TouchDemos.main(TouchDemos.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to 172.26.77.183:4723 [/172.26.77.183] failed: Connection refused: connect
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:140)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:222)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:173)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
… 9 more
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)

Uhh. Sorry to be a pain, but could you post a link to a github gist? That would make it easier to read.

hi jonahss,

please check above github gist link -
i have posted full log of appium which is generating while runnig perform() of touchaction

Please reply i am stuck with this problem

Thanks

Hmmm. @bootstraponline any ideas?

The context switching is completely busted for me. It probably has something to do with the active context. I think the new version of appium allows touch actions in either context though.

In terms of getting this resolved, my advice is to create a reduced test case using a sample app. If a dev can reproduce the problem then it’ll get fixed.

hi,

i have tried with one way and its worked for me.
i’ve taken cordinates of specific component (in my case button) and call method as longPress(x1,y1).waitaction(300).perform() and its work for me
but if i pass any component like longPress(button).waitaction(300).perform() its saying Error: this has not yet implemented.

Note:

  1. it does not take exact y coordinate so i have to add some pixel in my case , i think it may be because of the bar present in webpage.

  2. (x1,y1) - co-ordinate of button

plz let me know if you can contribute to this

thanks for your valuable guidance.

Hello @Elena_D , could you please share you solution ?

I’ve been trying everything (have the same issue) but nothing works for me so far (jsexecutor as well)
Thanks