From ad35f31da1c7e56a9a3658557e30ac356b8b4ee7 Mon Sep 17 00:00:00 2001 From: Lukas Mestan Date: Fri, 18 Aug 2017 10:17:29 +0200 Subject: [PATCH] fix xpath locator --- src/HighlightCeption.php | 200 +++++++++++------- src/jquery.highlight.min.js | 1 + src/{jquery.js => jquery.min.js} | 0 src/jquery.xpath.min.js | 13 ++ test/integration/tests/acceptance.suite.yml | 2 +- .../tests/acceptance/SimpleCept.php | 5 +- .../tests/acceptance/XPathCept.php | 10 + 7 files changed, 156 insertions(+), 75 deletions(-) create mode 100644 src/jquery.highlight.min.js rename src/{jquery.js => jquery.min.js} (100%) create mode 100644 src/jquery.xpath.min.js create mode 100644 test/integration/tests/acceptance/XPathCept.php diff --git a/src/HighlightCeption.php b/src/HighlightCeption.php index 25bbc0e..312d5f9 100644 --- a/src/HighlightCeption.php +++ b/src/HighlightCeption.php @@ -5,9 +5,11 @@ use Codeception\Module; use Codeception\TestInterface; use Codeception\Exception\ConfigurationException; +use Codeception\Util\Locator; class HighlightCeption extends Module { + /** * Configuration array * @@ -21,84 +23,31 @@ class HighlightCeption extends Module 'timeWait' => 1, 'module' => 'WebDriver' ]; - + /** * Css style for hightlight text or element * * @var array */ private $cssStyle = []; + /** * Time wait * * @var float|integer */ private $timeWait = 0; + /** * @var RemoteWebDriver */ private $webDriver = null; + /** * @var WebDriver */ private $webDriverModule = null; - - /** - * Highlight text on site - * - * @param string $text - */ - private function highlightText($text) - { - $this->webDriverModule->executeJs('jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c),a=a-(b.data.substr(0,a).toUpperCase().length-b.data.substr(0,a).length);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;awebDriverModule->executeJs('$("body").highlight("'.$text.'");'); - $this->webDriverModule->executeJs(sprintf('$(".highlight").css(%s);', $this->cssStyle)); - $this->webDriverModule->wait($this->timeWait); - } - - /** - * Highlight element on site - * - * @param string|array $selector - */ - private function highlightElement($selector) - { - $cssSelector = $this->resolveCssSelector($selector); - if($cssSelector) { - $this->debug('[CSS Selector] '.$cssSelector); - $this->webDriverModule->executeJs(sprintf('$("%s").css(%s);', $cssSelector, $this->cssStyle)); - $this->webDriverModule->wait($this->timeWait); - } - } - - /** - * Resolve CSS selector - * - * @param string|array $selector - * @return boolean - */ - private function resolveCssSelector($selector) - { - if(isset($selector['css'])) { - return $selector['css']; - } - - if(isset($selector['class'])) { - return '.'.$selector['class']; - } - - if(isset($selector['id'])) { - return '#'.$selector['id']; - } - - if(!empty($selector) && is_string($selector)) { - return $selector; - } - - return false; - } - /** * Event hook before a test starts * @@ -110,21 +59,26 @@ public function _before(TestInterface $test) if (!$this->hasModule($this->config['module'])) { throw new ConfigurationException("HighlightCeption uses the WebDriver. Please ensure that this module is activated."); } - + $this->webDriverModule = $this->getModule($this->config['module']); $this->webDriver = $this->webDriverModule->webDriver; - - if ($this->webDriver->executeScript('return !window.jQuery;')) { - $jQueryString = file_get_contents(__DIR__ . "/jquery.js"); - $this->webDriver->executeScript($jQueryString); - $this->webDriver->executeScript('jQuery.noConflict();'); - } - $this->timeWait = floatval($this->config['timeWait']); $this->cssStyle = json_encode($this->config['cssStyle']); $this->test = $test; } + /** + * Event hook after a test starts + * + * @param TestInterface $test + * @throws ConfigurationException + */ + public function _after(TestInterface $test) + { + $this->webDriverModule->wait($this->timeWait); + $this->test = $test; + } + /** * @inheritdoc */ @@ -133,16 +87,16 @@ public function see($text, $selector = null) $this->highlightText($text); $this->webDriverModule->see($text, $selector); } - + /** * @inheritdoc */ - public function seeElement($selector, $attributes = null) + public function seeElement($selector, $attributes = []) { $this->highlightElement($selector); $this->webDriverModule->seeElement($selector, $attributes); } - + /** * @inheritdoc */ @@ -151,7 +105,7 @@ public function seeLink($text, $url = null) $this->highlightText($text); $this->webDriverModule->seeLink($text, $url); } - + /** * @inheritdoc */ @@ -168,7 +122,6 @@ public function click($link, $context = null) { $this->highlightElement($context); $this->webDriverModule->click($link, $context); - $this->webDriverModule->wait($this->timeWait); } /** @@ -178,7 +131,6 @@ public function clickWithLeftButton($cssOfXPath = null, $offsetX = null, $offset { $this->highlightElement($cssOfXPath); $this->webDriverModule->clickWithLeftButton($cssOfXPath, $offsetX, $offsetY); - $this->webDriverModule->wait($this->timeWait); } /** @@ -188,7 +140,109 @@ public function clickWithRightButton($cssOfXPath = null, $offsetX = null, $offse { $this->highlightElement($cssOfXPath); $this->webDriverModule->clickWithRightButton($cssOfXPath, $offsetX, $offsetY); - $this->webDriverModule->wait($this->timeWait); } -} + /** + * Highlight text on site + * + * @param string $text + */ + private function highlightText($text) + { + $this->loadJQuery(); + $this->debug('[Highlight Text] ' . $text); + $this->webDriverModule->executeJs('jQuery(document).ready(function (){ + jQuery("body").highlight("' . $text . '"); + ' . sprintf('jQuery(".highlight").css(%s);', $this->cssStyle) . ' + });'); + } + + /** + * Highlight element on site + * + * @param string|array $selector + */ + private function highlightElement($selector) + { + $locator = $this->getSelector($selector); + if ($locator) { + $this->loadJQuery(); + if (Locator::isXPath($locator)) { + $this->loadJQueryXPath(); + $this->debug('[Highlight XPath] ' . Locator::humanReadableString($locator)); + $this->webDriverModule->executeJs(sprintf('jQuery(document).xpath("%s").css(%s);', addslashes($locator), $this->cssStyle)); + } else { + $this->debug('[Highlight Selector] ' . Locator::humanReadableString($locator)); + $this->webDriverModule->executeJs(sprintf('jQuery("%s").css(%s);', addslashes($locator), $this->cssStyle)); + } + } + } + + /** + * Resolve selector + * + * @param string|array $selector + * @return boolean + * @todo + */ + private function getSelector($selector) + { + if (isset($selector['css'])) { + return $selector['css']; + } + + if (isset($selector['class'])) { + return '.' . $selector['class']; + } + + if (isset($selector['id'])) { + return '#' . $selector['id']; + } + + if (isset($selector['xpath'])) { + return $selector['xpath']; + } + + if (!empty($selector) && is_string($selector)) { + return $selector; + } + + return false; + } + + /** + * Load jQuery + */ + private function loadJQuery() + { + if ($this->webDriver->executeScript('return !window.jQuery;')) { + $jQueryString = file_get_contents(__DIR__ . "/jquery.min.js"); + $this->webDriver->executeScript($jQueryString); + $this->webDriver->executeScript('jQuery.noConflict();'); + $this->loadJQueryHighlight(); + } + } + + /** + * Load jQuery.XPath + */ + private function loadJQueryXPath() + { + if ($this->webDriver->executeScript('return !window.jQuery.fn.xpath;')) { + $jQueryXPath = file_get_contents(__DIR__ . "/jquery.xpath.min.js"); + $this->webDriver->executeScript($jQueryXPath); + } + } + + /** + * Load jQuery.Highlight + */ + private function loadJQueryHighlight() + { + if ($this->webDriver->executeScript('return !window.jQuery.fn.highlight;')) { + $jQueryString = file_get_contents(__DIR__ . "/jquery.highlight.min.js"); + $this->webDriver->executeScript($jQueryString); + } + } + +} \ No newline at end of file diff --git a/src/jquery.highlight.min.js b/src/jquery.highlight.min.js new file mode 100644 index 0000000..5a2ed63 --- /dev/null +++ b/src/jquery.highlight.min.js @@ -0,0 +1 @@ +jQuery.fn.highlight=function(c){function e(b,c){var d=0;if(3==b.nodeType){var a=b.data.toUpperCase().indexOf(c),a=a-(b.data.substr(0,a).toUpperCase().length-b.data.substr(0,a).length);if(0<=a){d=document.createElement("span");d.className="highlight";a=b.splitText(a);a.splitText(c.length);var f=a.cloneNode(!0);d.appendChild(f);a.parentNode.replaceChild(d,a);d=1}}else if(1==b.nodeType&&b.childNodes&&!/(script|style)/i.test(b.tagName))for(a=0;a=0;k--)c+=e[d[435]][d[254]](a[d[175]](k)-1);a=c[d[48]](' ');for(k=a[d[1]]-1;k>=0;k--)p=p[d[38]](e[d[421]](k%10+(e[d[435]][d[254]](122-e[d[409]][d[216]](k/10))),'g'),a[k]);e[d[408]]('_','$',p)(d,d[0])})("8y by=6x7x4358x,O=6x7x4348x,bh=6x7x4318x,bj=6x7x4328x,K=6x7x4338x,br=6x7x4218x,U=6x7x4208x,b3=6x7x4088x,bd=6x7x4098x,W=6x7x4108x,bB=6x7x4078x,bE=6x7x4068x,dc=6x7x4038x,db=6x7x4048x,fP=6x7x4058x,fD=6x7x1688x,eW=6x7x4118x,eV=6x7x4128x,eX=6x7x4188x,eP=(9z2w{3y by9x7x3458x?9z(jO){3y by(jO)7x3458x2w}:9z(jO){3y by(jO)7x388x(/^\\s+|\\s+$/g,'')}})2w,cE=(9z2w{3y K9x7x458x?9z(r,jY){3y r7x458x(jY)}:9z(r,jY){8z(8y fC=0,fJ=r7x18x;fC>|[!<>]=|(?![0-9-])[\\w-]+:\\*|\\s+|./g);0y(j){8y f6=0;8z(8y fC=0,fJ=j7x18x;fC0};bb9x7x148x=9z2w{3y 5x7x788x5v5x7x18x};9z T2w1w;T9x7x368x=9z(g0){3y g03w7wg07x278x};T9x7x288x=9z(g0,iz){3y g0[iz]};T9x7x1178x=9z(g0,h2){3y g06wh2};T9x7x628x=9z(g0,h2){3y g07x628x(h2)};T9x7x558x=9z(g0,iE){3y g07x558x(iE)};T9x7x1218x=9z(g0,iq){3y g07x1218x(iq)};T9x7x988x=9z(g0,iA,iu){3y g07x988x(iA,iu)};9z V(hw,jY,hn,gv){5x7x538x=hw;5x7x268x=jY;5x7x518x=hn4w1w;5x7x498x=1w;5x7x248x=gv4w2y T;8y gw=2y U,fS=gw7x4138x2w;5x7x708x=2y cS(gw7x4148x2w,gw7x4158x2w+1,gw7x4388x2w,gw7x4398x2w,gw7x1948x2w,gw7x4648x2w+gw7x4658x2w/1000,-fS);5x7x48x=2y cT(0,bd7x408x(~~(fS/60)),bd7x408x(fS%60),0,fS>0)};V9x7x268x=2x;V9x7x768x=0;V9x7x948x=0;V9x7x518x=2x;V9x7x498x=2x;V9x7x708x=2x;V9x7x48x=2x;V9x7x538x=2x;V9x7x1398x=9z(iz,j2){0y(!5x7x498x7x1418x(iz))5x7x498x[iz]=0w;5x7x498x[iz]7x108x(5x7x518x[iz]);5x7x518x[iz]=j2};V9x7x1368x=9z(iz){0y(5x7x498x7x1418x(iz)){5x7x518x[iz]=5x7x498x[iz]7x1778x2w;0y(!5x7x498x[iz]7x18x){6z 5x7x498x[iz];0y(5y 5x7x518x[iz]6w_[167])6z 5x7x518x[iz]}}};9z bw2w{5x7x1118x=1w;5x7x1728x=1w;5x7x1098x=1w;5x7x1078x=1w;5x7x1338x=1w};bw9x7x838x=2x;bw9x7x1118x=2x;bw9x7x1728x=2x;bw9x7x1098x=2x;bw9x7x878x=2x;bw9x7x1078x=2x;bw9x7x1748x=ix+_[223];bw9x7x1338x=2x;bw9x7x1148x=2x;bw9x7x1408x=2x;8y hP=/^(?:\\{([^\\}]+)\\})?(.+)$/;bw9x7x4638x=9z(jN,dU){8y j=jN7x258x(hP);0y(j)0y(j[1]9wiy)5x7x1118x[jN]=dU};bw9x7x1068x=9z(jN){8y j=jN7x258x(hP);0y(j)3y j[1]6wiy?el[br.$2]:5x7x1118x[jN]};bw9x7x4628x=9z(jN,dU){5x7x1728x[jN]=dU};bw9x7x4598x=9z(jN,dU){8y j=jN7x258x(hP);0y(j)0y(j[1]9wix)5x7x1098x[jN]=dU};bw9x7x1788x=9z(jN){8y j=jN7x258x(hP);0y(j)3y j[1]6wix?fm[br.$2]:5x7x1098x[jN]};bw9x7x4608x=9z(jN,dU){5x7x1078x[jN]=dU};bw9x7x2518x=9z(jN){3y 5x7x1078x[jN]};bw9x7x4618x=9z(jN,dU){5x7x1338x[jN]=dU};bw9x7x738x=9z(iE){8y hj=5x7x1148x,eF=hj3whj7x558x?hj7x558x:hj,iA;0y(eF 1y b33w(iA=eF7x218x(hj,iE)))3y iA;0y(iE6w'fn')3y ix;0y(iE6w'xs')3y iy;0y(iE6w_[291])3y iv;0y(iE6w_[82])3y iw;4y 2y X(_[308])};bw7x4668x=9z(jY){0y(5y jY6w_[118])jY=2y bO(jY);7z 0y(5y jY6w_[271])jY=(dc(jY)4w!db(jY))?2y cV(jY):dl(by(jY));7z jY=2y cl(by(jY));3y jY};bw7x2208x=9z(jY){0y(jY 1y bO)jY=jY7x28x2w;7z 0y(eZ(jY))jY=jY7x28x2w;7z jY=jY7x318x2w;3y jY};8y fm=1w,fo=1w,el=1w,fn=1w;9z eL(iz,k,dU){fm[iz]=dU;fo[iz]=k};9z eK(iz,dU){el[iz]=dU};9z b0(_d,hw){8y gV=2y bb(_d),gE=dR(gV,hw);0y(!gV7x148x2w)4y 2y X(_[12]);0y(!gE)4y 2y X(_[12]);5x7x1298x=gE};b09x7x1298x=2x;b09x7x88x=9z(gu){3y 5x7x1298x7x88x(gu)};9z bz2w1w;bz9x7x2448x=9z(jP,jQ){4y \"Not implemented\"};bz9x7x508x=9z(jP,jQ){4y \"Not implemented\"};9z cQ2w1w;cQ7x3248x=1;cQ7x3128x=2;cQ7x2128x=3;cQ7x3418x=4;cQ7x2888x=5;cQ7x3448x=6;cQ7x3178x=7;cQ7x3508x=8;cQ7x3078x=9;cQ7x3188x=10;cQ7x3028x=11;cQ7x3058x=12;cQ7x2848x=13;cQ7x2858x=14;cQ7x2908x=15;cQ7x3048x=16;cQ7x3218x=17;cQ7x3238x=18;cQ7x3148x=19;cQ7x2998x=20;cQ7x3298x=21;cQ7x3308x=22;cQ7x2198x=23;cQ7x1868x=24;cQ7x3328x=25;cQ7x2098x=26;cQ7x2138x=27;cQ7x4678x=28;cQ7x2048x=29;cQ7x2808x=30;cQ7x2828x=31;cQ7x2788x=32;cQ7x2778x=33;cQ7x2738x=34;cQ7x2758x=35;cQ7x2768x=36;cQ7x2838x=37;cQ7x3528x=38;cQ7x3388x=39;cQ7x3258x=40;cQ7x3338x=41;cQ7x3478x=42;cQ7x4738x=43;cQ7x4748x=44;cQ7x4728x=45;cQ7x4718x=46;cQ7x4688x=47;cQ7x2798x=48;cQ7x4698x=49;cQ7x3268x=50;cQ7x3398x=51;cQ7x2958x=-1;cQ7x3108x=-2;9z Y2w{5x7x168x=0w};Y9x7x168x=2x;9z dR(gV,hw){8y gN;0y(gV7x148x2w4w!(gN=dQ(gV,hw)))3y;8y gE=2y Y;gE7x168x7x108x(gN);9y(gV7x58x2w6w','){gV7x138x2w;0y(gV7x148x2w4w!(gN=dQ(gV,hw)))4y 2y X(_[12]);gE7x168x7x108x(gN)}3y gE};Y9x7x88x=9z(gu){8y hq=0w;8z(8y fC=0,fJ=5x7x168x7x18x;fC':'gt','<':'lt','5v':'ge','4v':'le'};9z dN(gE,gu){8y gT=d3(gE7x328x7x88x(gu),gu);0y(!gT7x18x)3y 2x;dV(gu,gT,'?');8y hl=d3(gE7x638x7x88x(gu),gu);0y(!hl7x18x)3y 2x;dV(gu,hl,'?');8y jZ=gT[0],j1=hl[0];0y(jZ 1y cs)jZ=cl7x38x(jZ);0y(j1 1y cs)j1=cl7x38x(j1);0y(jZ 1y bM)jZ=cl7x38x(jZ);0y(j1 1y bM)j1=cl7x38x(j1);3y eh[gE7x528x](jZ,j1,gu)};8y eh=1w;eh['eq']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[130]}7z 0y(gT 1y bO){0y(hl 1y bO)iC=_[199]}7z 0y(gT 1y cl){0y(hl 1y cl)3y fn7x1308x7x218x(gu,fm7x508x7x218x(gu,gT,hl),2y c7(0))}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[255]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[250]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[258]}7z 0y(gT 1y cW){0y(hl 1y cW)iC=_[256]}7z 0y(gT 1y c3){0y(hl 1y c3)iC=_[252]}7z 0y(gT 1y c2){0y(hl 1y c2)iC=_[253]}7z 0y(gT 1y c1){0y(hl 1y c1)iC=_[260]}7z 0y(gT 1y c0){0y(hl 1y c0)iC=_[261]}7z 0y(gT 1y cZ){0y(hl 1y cZ)iC=_[268]}7z 0y(gT 1y cj){0y(hl 1y cj)iC=_[246]}7z 0y(gT 1y c4){0y(hl 1y c4)iC=_[182]}7z 0y(gT 1y bN){0y(hl 1y bN)iC=_[183]}0y(iC)3y fn[iC]7x218x(gu,gT,hl);4y 2y X(_[9])};eh['ne']=9z(gT,hl,gu){3y 2y bO(!eh['eq'](gT,hl,gu)7x28x2w)};eh['gt']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[97]}7z 0y(gT 1y bO){0y(hl 1y bO)iC=_[152]}7z 0y(gT 1y cl){0y(hl 1y cl)3y fn7x978x7x218x(gu,fm7x508x7x218x(gu,gT,hl),2y c7(0))}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[145]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[148]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[151]}7z 0y(gT 1y ct){0y(hl 1y ct)iC=_[153]}7z 0y(gT 1y cT){0y(hl 1y cT)iC=_[155]}0y(iC)3y fn[iC]7x218x(gu,gT,hl);4y 2y X(_[9])};eh['lt']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[99]}7z 0y(gT 1y bO){0y(hl 1y bO)iC=_[146]}7z 0y(gT 1y cl){0y(hl 1y cl)3y fn7x998x7x218x(gu,fm7x508x7x218x(gu,gT,hl),2y c7(0))}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[150]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[144]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[156]}7z 0y(gT 1y ct){0y(hl 1y ct)iC=_[159]}7z 0y(gT 1y cT){0y(hl 1y cT)iC=_[154]}0y(iC)3y fn[iC]7x218x(gu,gT,hl);4y 2y X(_[9])};eh['ge']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[99]}7z 0y(gT 1y bO){0y(hl 1y bO)iC=_[146]}7z 0y(gT 1y cl){0y(hl 1y cl)3y fn7x978x7x218x(gu,fm7x508x7x218x(gu,gT,hl),2y c7(-1))}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[150]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[144]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[156]}7z 0y(gT 1y ct){0y(hl 1y ct)iC=_[159]}7z 0y(gT 1y cT){0y(hl 1y cT)iC=_[154]}0y(iC)3y 2y bO(!fn[iC]7x218x(gu,gT,hl)7x28x2w);4y 2y X(_[9])};eh['le']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[97]}7z 0y(gT 1y bO){0y(hl 1y bO)iC=_[152]}7z 0y(gT 1y cl){0y(hl 1y cl)3y fn7x998x7x218x(gu,fm7x508x7x218x(gu,gT,hl),2y c7(1))}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[145]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[148]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[151]}7z 0y(gT 1y ct){0y(hl 1y ct)iC=_[153]}7z 0y(gT 1y cT){0y(hl 1y cT)iC=_[155]}0y(iC)3y 2y bO(!fn[iC]7x218x(gu,gT,hl)7x28x2w);4y 2y X(_[9])};9z dM(gE,gu){8y gT=gE7x328x7x88x(gu);0y(!gT7x18x)3y 2x;dV(gu,gT,'?');dW(gu,gT,cz);8y hl=gE7x638x7x88x(gu);0y(!hl7x18x)3y 2x;dV(gu,hl,'?');dW(gu,hl,cz);3y eg[gE7x528x](gT[0],hl[0],gu)};8y eg=1w;eg['is']=9z(gT,hl,gu){3y fn7x2878x7x218x(gu,gT,hl)};eg['>>']=9z(gT,hl,gu){3y fn7x2408x7x218x(gu,gT,hl)};eg['<<']=9z(gT,hl,gu){3y fn7x2418x7x218x(gu,gT,hl)};8y ei={'=':dL,'9w':dL,'<':dL,'4v':dL,'>':dL,'5v':dL,'eq':dN,'ne':dN,'lt':dN,'le':dN,'gt':dN,'ge':dN,'is':dM,'>>':dM,'<<':dM};9z I(gE){5x7x328x=gE;5x7x168x=0w};I9x7x328x=2x;I9x7x168x=2x;8y ed=1w;ed['+']=9z(gT,hl,gu){8y iC='',F=1x;0y(eZ(gT)){0y(eZ(hl))iC=_[115]}7z 0y(gT 1y cR){0y(hl 1y ct)iC=_[161];7z 0y(hl 1y cT)iC=_[162]}7z 0y(gT 1y ct){0y(hl 1y cR){iC=_[161];F=3x}7z 0y(hl 1y cS){iC=_[170];F=3x}7z 0y(hl 1y ct)iC=_[269]}7z 0y(gT 1y cT){0y(hl 1y cR){iC=_[162];F=3x}7z 0y(hl 1y cm){iC=_[134];F=3x}7z 0y(hl 1y cS){iC=_[165];F=3x}7z 0y(hl 1y cT)iC=_[262]}7z 0y(gT 1y cm){0y(hl 1y cT)iC=_[134]}7z 0y(gT 1y cS){0y(hl 1y ct)iC=_[170];7z 0y(hl 1y cT)iC=_[165]}0y(iC)3y fn[iC]7x218x(gu,F?hl:gT,F?gT:hl);4y 2y X(_[9])};ed['-']=9z(gT,hl,gu){8y iC='';0y(eZ(gT)){0y(eZ(hl))iC=_[120]}7z 0y(gT 1y cR){0y(hl 1y cR)iC=_[232];7z 0y(hl 1y ct)iC=_[226];7z 0y(hl 1y cT)iC=_[227]}7z 0y(gT 1y cm){0y(hl 1y cm)iC=_[233];7z 0y(hl 1y cT)iC=_[228]}7z 0y(gT 1y cS){0y(hl 1y cS)iC=_[248];7z 0y(hl 1y ct)iC=_[234];7z 0y(hl 1y cT)iC=_[235]}7z 0y(gT 1y ct){0y(hl 1y ct)iC=_[270]}7z 0y(gT 1y cT){0y(hl 1y cT)iC=_[263]}0y(iC)3y fn[iC]7x218x(gu,gT,hl);4y 2y X(_[9])};9z cC(gV,hw){8y gE;0y(gV7x148x2w4w!(gE=dg(gV,hw)))3y;0y(!(gV7x58x2w0z ed))3y gE;8y gf=2y I(gE),iC;9y((iC=gV7x58x2w)0z ed){gV7x138x2w;0y(gV7x148x2w4w!(gE=dg(gV,hw)))4y 2y X(_[12]);gf7x168x7x108x([iC,gE])}3y gf};I9x7x88x=9z(gu){8y gT=d3(5x7x328x7x88x(gu),gu);0y(!gT7x18x)3y 0w;dV(gu,gT,'?');8y jZ=gT[0];0y(jZ 1y cs)jZ=cV7x38x(jZ);8z(8y fC=0,fJ=5x7x168x7x18x,hl,j1;fCfT)4y 2y X(_[46]);7z 0y(fq1)4y 2y X(_[9])}7z 0y(ig6w'+'){0y(fJ<1)4y 2y X(_[9])}7z 0y(ig9w'*'){0y(fJ9w1)4y 2y X(_[9])}};9z b7(gE){5x7x328x=gE;5x7x168x=0w};b79x7x328x=2x;b79x7x168x=2x;9z da(gV,hw){8y gE,iC;0y(gV7x148x2w4w!(gE=d9(gV,hw)))3y;0y(!((iC=gV7x58x2w)6w_[125]4wiC6w_[137]))3y gE;8y gM=2y b7(gE);9y((iC=gV7x58x2w)6w_[125]4wiC6w_[137]){gV7x138x2w;0y(gV7x148x2w4w!(gE=d9(gV,hw)))4y 2y X(_[12]);gM7x168x7x108x([iC,gE])}3y gM};b79x7x88x=9z(gu){8y hq=5x7x328x7x88x(gu);8z(8y fC=0,fJ=5x7x168x7x18x,gN;fC1)3y [2y bO(1x)];7z 0y(!hr7x18x)3y [2y bO(iB6w'?')];7y{gO7x38x(d3(hr,gu)[0])}3z(e){0y(e7x678x6w_[100])4y e;0y(e7x678x6w_[46])4y 2y X(_[372]);3y [2y bO(1x)]}3y [2y bO(3x)]};9z P(gE,hD){5x7x358x=gE;5x7x398x=hD};P9x7x358x=2x;P9x7x398x=2x;9z dJ(gV,hw){8y gE,hD;0y(gV7x148x2w4w!(gE=eR(gV,hw)))3y;0y(!(gV7x58x2w6w_[3]3wgV7x58x(1)6w_[166]))3y gE;gV7x138x(2);0y(gV7x148x2w4w!(hD=eJ(gV,hw)))4y 2y X(_[12]);3y 2y P(gE,hD)};P9x7x88x=9z(gu){8y hr=5x7x358x7x88x(gu);dV(gu,hr,5x7x398x7x598x);0y(!hr7x18x)3y 0w;3y [5x7x398x7x648x7x38x(d3(hr,gu)[0],gu)]};9z cAtomibD(iE,iu,iA){5x7x308x=iE;5x7x208x=iu;5x7x178x=iA};cAtomibD9x7x308x=2x;cAtomibD9x7x208x=2x;cAtomibD9x7x178x=2x;9z cF(gV,hw){8y j=gV7x58x2w7x258x(hM);0y(j){0y(j[1]6w'*'4wj[2]6w'*')4y 2y X(_[12]);gV7x138x2w;3y 2y cAtomibD(j[1]4w2x,j[2],j[1]?hw7x738x(j[1]):2x)}};cAtomibD9x7x378x=9z(jY,gu){8y jN=(5x7x178x?'{'+5x7x178x+'}':'')+5x7x208x,bD=5x7x178x6wiy?el[5x7x208x]:gu7x538x7x1068x(jN);0y(bD)3y jY 1y bD;4y 2y X(_[100])};cAtomibD9x7x38x=9z(jY,gu){8y jN=(5x7x178x?'{'+5x7x178x+'}':'')+5x7x208x,bD=5x7x178x6wiy?el[5x7x208x]:gu7x538x7x1068x(jN);0y(bD)3y bD7x38x(jY);4y 2y X(_[100])};9z b8(hy){5x7x378x=hy};b89x7x378x=2x;9z dd(gV,hw){0y(gV7x148x2w)3y;8y gE;0y(gV7x58x2w6w_[26]3wgV7x58x(1)6w'('){gV7x138x(2);0y(gV7x58x2w9w')')4y 2y X(_[12]);gV7x138x2w;3y 2y b8}0y(gE=de(gV,hw))3y 2y b8(gE);0y(gE=cF(gV,hw))3y 2y b8(gE)};9z bs(gO,iB){5x7x648x=gO4w2x;5x7x598x=iB4w2x};bs9x7x648x=2x;bs9x7x598x=2x;9z eG(gV,hw){0y(gV7x148x2w)3y;0y(gV7x58x2w6w_[377]3wgV7x58x(1)6w'('){gV7x138x(2);0y(gV7x58x2w9w')')4y 2y X(_[12]);gV7x138x2w;3y 2y bs}8y gE,iB;0y(!gV7x148x2w3w(gE=dd(gV,hw))){iB=gV7x58x2w;0y(iB6w'?'4wiB6w'*'4wiB6w'+')gV7x138x2w;7z iB=2x;3y 2y bs(gE,iB)}};9z bv(gO,iB){5x7x648x=gO4w2x;5x7x598x=iB4w2x};bv9x7x648x=2x;bv9x7x598x=2x;9z eJ(gV,hw){8y gE,iB;0y(!gV7x148x2w3w(gE=cF(gV,hw))){iB=gV7x58x2w;0y(iB6w'?')gV7x138x2w;7z iB=2x;3y 2y bv(gE,iB)}};9z bL2w1w;bL9x7x238x=cQ7x3398x;9z bK2w1w;bK9x=2y bL;bK9x7x238x=cQ7x3248x;bK9x7x348x=2x;bK7x3228x=_[328];bK7x3278x=_[335];bK7x3208x=_[118];bK7x3518x=_[336];bK7x3488x=_[70];bK7x3408x=_[337];bK7x3468x=_[334];bK7x3168x=_[331];bK7x2868x=_[208];bK7x2898x=_[211];bK7x2938x=_[207];bK7x3138x=_[206];bK7x3498x=_[202];bK7x3038x=_[201];bK7x3018x=_[203];bK7x3068x=_[157];bK7x3158x=_[147];bK7x3118x=_[104];bK7x3098x=_[205];9z bJ2w1w;bJ9x=2y bK;bJ9x7x238x=cQ7x3268x;bJ7x38x=9z(j2){4y 2y X(_[46])};9z eZ(jY){3y jY 1y cY4wjY 1y cV4wjY 1y cU};eK(_[319],bJ);9z bM(jJ,ic,iD,iH,ip){5x7x668x=jJ;5x7x688x=ic;5x7x588x=iD;5x7x1228x=iH;5x7x1238x=ip};bM9x=2y bJ;bM9x7x238x=cQ7x3238x;bM9x7x348x=bK7x3228x;bM9x7x668x=2x;bM9x7x688x=2x;bM9x7x588x=2x;bM9x7x1228x=2x;bM9x7x1238x=2x;bM9x7x318x=9z2w{3y(5x7x668x?5x7x668x+':':'')+(5x7x688x?'/'+'/'+5x7x688x:'')+(5x7x588x?5x7x588x:'')+(5x7x1228x?'?'+5x7x1228x:'')+(5x7x1238x?'#'+5x7x1238x:'')};8y iS=/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;bM7x38x=9z(j2){0y(j2 1y bM)3y j2;0y(j2 1y cl4wj2 1y cs){8y j;0y(j=eP(j2)7x258x(iS))3y 2y bM(j[2],j[4],j[5],j[7],j[9]);4y 2y X(_[33])}4y 2y X(_[9])};eK(_[328],bM);9z bN(jO){5x7x78x=jO};bN9x=2y bJ;bN9x7x238x=cQ7x3218x;bN9x7x348x=bK7x3278x;bN9x7x78x=2x;bN9x7x28x=9z2w{3y 5x7x78x};bN9x7x318x=9z2w{3y 5x7x78x};8y iT=/^((([A-Za-z0-9+\\/]\\s*){4})*(([A-Za-z0-9+\\/]\\s*){3}[A-Za-z0-9+\\/]|([A-Za-z0-9+\\/]\\s*){2}[AEIMQUYcgkosw048]\\s*=|[A-Za-z0-9+\\/]\\s*[AQgw]\\s*=\\s*=))?$/;bN7x38x=9z(j2){0y(j2 1y bN)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(iT);0y(j)3y 2y bN(j[0]);4y 2y X(_[33])}0y(j2 1y c4){8y j=j27x28x2w7x258x(/.{2}/g),r=0w;8z(8y fC=0,fJ=j7x18x;fCfw){9y(hG7x158x>fw){hG7x68x0v1;0y(hG7x68x>12){hG7x118x0v1;0y(hG7x118x6w0)hG7x118x=1;hG7x68x=1}hG7x158x1vfw;fw=e5(hG7x118x,hG7x68x)}}7z 0y(hG7x158x<1){9y(hG7x158x<1){hG7x68x1v1;0y(hG7x68x<1){hG7x118x1v1;0y(hG7x118x6w0)hG7x118x=-1;hG7x68x=12}fw=e5(hG7x118x,hG7x68x);hG7x158x0vfw}}}0y(hG7x68x>12){hG7x118x0v~~(hG7x68x/12);0y(hG7x118x6w0)hG7x118x=1;hG7x68x=hG7x68x%12}7z 0y(hG7x68x<1){hG7x118x0v~~(hG7x68x/12)-1;0y(hG7x118x6w0)hG7x118x=-1;hG7x68x=hG7x68x%12+12}3y hG};eK(_[336],cR);9z cS(gc,fN,fw,fB,fM,f5,f8,B){5x7x118x=gc;5x7x68x=fN;5x7x158x=fw;5x7x188x=fB;5x7x198x=fM;5x7x228x=f5;5x7x48x=f8;5x7x298x=B};cS9x=2y bJ;cS9x7x238x=cQ7x3508x;cS9x7x348x=bK7x3488x;cS9x7x118x=2x;cS9x7x68x=2x;cS9x7x158x=2x;cS9x7x188x=2x;cS9x7x198x=2x;cS9x7x228x=2x;cS9x7x48x=2x;cS9x7x298x=2x;cS9x7x318x=9z2w{3y e0(5x)+'T'+e2(5x)+e1(5x)};8y iW=/^(-?)([1-9]\\d\\d\\d+|0\\d\\d\\d)-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])T(([01]\\d|2[0-3]):([0-5]\\d):([0-5]\\d)(?:\\.(\\d+))?|(24:00:00)(?:\\.(0+))?)(Z|([+\\-])(0\\d|1[0-4]):([0-5]\\d))?$/;cS7x38x=9z(j2){0y(j2 1y cS)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(iW);0y(j){8y gc=+j[2],fN=+j[3],fw=+j[4],H=7wj[10];0y(fw-10?'+':'-')+e4(bd7x408x(~~(f8/60)))+':'+e4(bd7x408x(f8%60)):'Z'};9z e0(gx){3y(gx7x298x?'-':'')+e4(gx7x118x,4)+'-'+e4(gx7x68x)+'-'+e4(gx7x158x)};9z e2(gx){8y r=by(gx7x228x)7x488x('.');3y e4(gx7x188x)+':'+e4(gx7x198x)+':'+e4(r[0])+(r7x18x>1?'.'+r[1]:'')};9z e3(hG){3y e6(eb(hG))};eK(_[70],cS);9z cU(fb){5x7x78x=fb};cU9x=2y bJ;cU9x7x238x=cQ7x3418x;cU9x7x348x=bK7x3408x;cU9x7x78x=2x;cU9x7x28x=9z2w{3y 5x7x78x};cU9x7x318x=9z2w{3y by(5x7x78x)};8y iY=/^[+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))$/;cU7x38x=9z(j2){0y(j2 1y cU)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(iY);0y(j)3y 2y cU(+j2);4y 2y X(_[33])}0y(j2 1y bO)3y 2y cU(j2*1);0y(eZ(j2)){0y(dc(j2)4w!db(j2))4y 2y X(_[95]);3y 2y cU(+j2)}4y 2y X(_[9])};eK(_[337],cU);9z cV(fb){5x7x78x=fb};cV9x=2y bJ;cV9x7x238x=cQ7x3448x;cV9x7x348x=bK7x3468x;cV9x7x78x=2x;cV9x7x28x=9z2w{3y 5x7x78x};cV9x7x318x=9z2w{3y by(5x7x78x)};8y iZ=/^([+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][+\\-]?\\d+)?|(-?INF)|NaN)$/;cV7x38x=9z(j2){0y(j2 1y cV)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(iZ);0y(j)3y 2y cV(j[7]?+j[7]7x388x(_[257],_[168]):+j2);4y 2y X(_[33])}0y(j2 1y bO)3y 2y cV(j2*1);0y(eZ(j2))3y 2y cV(j27x78x);4y 2y X(_[9])};eK(_[334],cV);9z cW(gc,fN,fw,fB,fM,f5,B){5x7x118x=gc;5x7x68x=fN;5x7x158x=fw;5x7x188x=fB;5x7x198x=fM;5x7x228x=f5;5x7x298x=B};cW9x=2y bJ;cW9x7x238x=cQ7x3178x;cW9x7x348x=bK7x3168x;cW9x7x118x=2x;cW9x7x68x=2x;cW9x7x158x=2x;cW9x7x188x=2x;cW9x7x198x=2x;cW9x7x228x=2x;cW9x7x298x=2x;cW9x7x318x=9z2w{3y(5x7x298x?'-':'')+'P'+((e9(5x)+e8(5x))4w'T0S')};8y i0=/^(-)?P(?:([0-9]+)Y)?(?:([0-9]+)M)?(?:([0-9]+)D)?(?:T(?:([0-9]+)H)?(?:([0-9]+)M)?(?:((?:(?:[0-9]+(?:.[0-9]*)?)|(?:.[0-9]+)))S)?)?$/;cW7x38x=9z(j2){0y(j2 1y ct)3y 2y cW(j27x118x,j27x68x,0,0,0,0,j27x298x);0y(j2 1y cT)3y 2y cW(0,0,j27x158x,j27x188x,j27x198x,j27x228x,j27x298x);0y(j2 1y cW)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(i0);0y(j)3y ea(2y cW(+j[2]4w0,+j[3]4w0,+j[4]4w0,+j[5]4w0,+j[6]4w0,+j[7]4w0,j[1]6w'-'));4y 2y X(_[33])}4y 2y X(_[9])};9z e9(gA){3y(gA7x118x?gA7x118x+'Y':'')+(gA7x68x?gA7x68x+'M':'')};9z e8(gA){3y(gA7x158x?gA7x158x+'D':'')+(gA7x188x4wgA7x198x4wgA7x228x?'T'+(gA7x188x?gA7x188x+'H':'')+(gA7x198x?gA7x198x+'M':'')+(gA7x228x?gA7x228x+'S':''):'')};9z ea(gA){3y ec(e7(gA))};eK(_[331],cW);9z cY(fb){5x7x78x=fb};cY9x=2y bJ;cY9x7x238x=cQ7x2888x;cY9x7x348x=bK7x2868x;cY9x7x78x=2x;cY9x7x28x=9z2w{3y 5x7x78x};cY9x7x318x=9z2w{3y by(5x7x78x)};8y i1=/^([+\\-]?((\\d+(\\.\\d*)?)|(\\.\\d+))([eE][+\\-]?\\d+)?|(-?INF)|NaN)$/;cY7x38x=9z(j2){0y(j2 1y cY)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(i1);0y(j)3y 2y cY(j[7]?+j[7]7x388x(_[257],_[168]):+j2);4y 2y X(_[33])}0y(j2 1y bO)3y 2y cY(j2*1);0y(eZ(j2))3y 2y cY(j27x78x);4y 2y X(_[9])};eK(_[208],cY);9z cZ(fw,f8){5x7x158x=fw;5x7x48x=f8};cZ9x=2y bJ;cZ9x7x238x=cQ7x2858x;cZ9x7x348x=bK7x2898x;cZ9x7x158x=2x;cZ9x7x48x=2x;cZ9x7x318x=9z2w{3y '-'+'-'+'-'+e4(5x7x158x)+e1(5x)};8y i2=/^3v-(0[1-9]|[12]\\d|3[01])(Z|([+\\-])(0\\d|1[0-4]):([0-5]\\d))?$/;cZ7x38x=9z(j2){0y(j2 1y cZ)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(i2);0y(j){8y fw=+j[1];3y 2y cZ(fw,j[2]?j[2]6w'Z'?0:(j[3]6w'-'?-1:1)*(j[4]*60+j[5]*1):2x)}4y 2y X(_[33])}0y(j2 1y cR4wj2 1y cS)3y 2y cZ(j27x158x,j27x48x);4y 2y X(_[9])};eK(_[211],cZ);9z c0(fN,f8){5x7x68x=fN;5x7x48x=f8};c09x=2y bJ;c09x7x238x=cQ7x2908x;c09x7x348x=bK7x2938x;c09x7x68x=2x;c09x7x48x=2x;c09x7x318x=9z2w{3y '-'+'-'+e4(5x7x68x)+e1(5x)};8y i3=/^3v(0[1-9]|1[0-2])(Z|([+\\-])(0\\d|1[0-4]):([0-5]\\d))?$/;c07x38x=9z(j2){0y(j2 1y c0)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(i3);0y(j){8y fN=+j[1];3y 2y c0(fN,j[2]?j[2]6w'Z'?0:(j[3]6w'-'?-1:1)*(j[4]*60+j[5]*1):2x)}4y 2y X(_[33])}0y(j2 1y cR4wj2 1y cS)3y 2y c0(j27x68x,j27x48x);4y 2y X(_[9])};eK(_[207],c0);9z c1(fN,fw,f8){5x7x68x=fN;5x7x158x=fw;5x7x48x=f8};c19x=2y bJ;c19x7x238x=cQ7x2848x;c19x7x348x=bK7x3138x;c19x7x68x=2x;c19x7x158x=2x;c19x7x48x=2x;c19x7x318x=9z2w{3y '-'+'-'+e4(5x7x68x)+'-'+e4(5x7x158x)+e1(5x)};8y i4=/^3v(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(Z|([+\\-])(0\\d|1[0-4]):([0-5]\\d))?$/;c17x38x=9z(j2){0y(j2 1y c1)3y j2;0y(j2 1y cl4wj2 1y cs){8y j=eP(j2)7x258x(i4);0y(j){8y fN=+j[1],fw=+j[2];0y(fw-1hl7x28x2w)};fn7x1598x=9z(gT,hl){3y 2y bO(ex(gT)ex(hl))};fn7x1548x=9z(gT,hl){3y 2y bO(dt(gT)dt(hl))};fn7x2568x=9z(gT,hl){3y 2y bO(gT7x298x6whl7x298x3wex(gT)6wex(hl)3wdt(gT)6wdt(hl))};fn7x2588x=9z(gT,hl){3y _b(gT,hl,'eq')};fn7x1568x=9z(gT,hl){3y _b(gT,hl,'lt')};fn7x1518x=9z(gT,hl){3y _b(gT,hl,'gt')};fn7x2558x=9z(gT,hl){3y dp(gT,hl,'eq')};fn7x1508x=9z(gT,hl){3y dp(gT,hl,'lt')};fn7x1458x=9z(gT,hl){3y dp(gT,hl,'gt')};fn7x2508x=9z(gT,hl){3y dq(gT,hl,'eq')};fn7x1448x=9z(gT,hl){3y dq(gT,hl,'lt')};fn7x1488x=9z(gT,hl){3y dq(gT,hl,'gt')};fn7x2528x=9z(gT,hl){3y _b(2y cS(gT7x118x,gT7x68x,e5(gT7x118x,gT7x68x),0,0,0,gT7x48x6w2x?5x7x48x:gT7x48x),2y cS(hl7x118x,hl7x68x,e5(hl7x118x,hl7x68x),0,0,0,hl7x48x6w2x?5x7x48x:hl7x48x),'eq')};fn7x2538x=9z(gT,hl){3y _b(2y cS(gT7x118x,1,1,0,0,0,gT7x48x6w2x?5x7x48x:gT7x48x),2y cS(hl7x118x,1,1,0,0,0,hl7x48x6w2x?5x7x48x:hl7x48x),'eq')};fn7x2608x=9z(gT,hl){3y _b(2y cS(1972,gT7x68x,gT7x158x,0,0,0,gT7x48x6w2x?5x7x48x:gT7x48x),2y cS(1972,hl7x68x,hl7x158x,0,0,0,hl7x48x6w2x?5x7x48x:hl7x48x),'eq')};fn7x2618x=9z(gT,hl){3y _b(2y cS(1972,gT7x68x,e5(1972,hl7x68x),0,0,0,gT7x48x6w2x?5x7x48x:gT7x48x),2y cS(1972,hl7x68x,e5(1972,hl7x68x),0,0,0,hl7x48x6w2x?5x7x48x:hl7x48x),'eq')};fn7x2688x=9z(gT,hl){3y _b(2y cS(1972,12,gT7x158x,0,0,0,gT7x48x6w2x?5x7x48x:gT7x48x),2y cS(1972,12,hl7x158x,0,0,0,hl7x48x6w2x?5x7x48x:hl7x48x),'eq')};fn7x2698x=9z(gT,hl){3y ew(ex(gT)+ex(hl))};fn7x2708x=9z(gT,hl){3y ew(ex(gT)-ex(hl))};fn7x1588x=9z(gT,hl){3y ew(ex(gT)*hl)};fn7x2678x=9z(gT,hl){3y ew(ex(gT)/hl)};fn7x2668x=9z(gT,hl){3y 2y cU(ex(gT)/ex(hl))};fn7x2628x=9z(gT,hl){3y ds(dt(gT)+dt(hl))};fn7x2638x=9z(gT,hl){3y ds(dt(gT)-dt(hl))};fn7x1698x=9z(gT,hl){3y ds(dt(gT)*hl)};fn7x2658x=9z(gT,hl){3y ds(dt(gT)/hl)};fn7x2498x=9z(gT,hl){3y 2y cU(dt(gT)/dt(hl))};fn7x2488x=9z(gT,hl){3y ds(dr(gT)-dr(hl))};fn7x2328x=9z(gT,hl){3y ds(dr(gT)-dr(hl))};fn7x2338x=9z(gT,hl){3y ds(dv(gT)-dv(hl))};fn7x1708x=9z(gT,hl){3y dn(gT,hl,'+')};fn7x1658x=9z(gT,hl){3y dm(gT,hl,'+')};fn7x2348x=9z(gT,hl){3y dn(gT,hl,'-')};fn7x2358x=9z(gT,hl){3y dm(gT,hl,'-')};fn7x1618x=9z(gT,hl){3y dn(gT,hl,'+')};fn7x1628x=9z(gT,hl){3y dm(gT,hl,'+')};fn7x2268x=9z(gT,hl){3y dn(gT,hl,'-')};fn7x2278x=9z(gT,hl){3y dm(gT,hl,'-')};fn7x1348x=9z(gT,hl){8y hG=2y cm(gT7x188x,gT7x198x,gT7x228x,gT7x48x);hG7x188x0vhl7x188x;hG7x198x0vhl7x198x;hG7x228x0vhl7x228x;3y eb(hG)};fn7x2288x=9z(gT,hl){8y hG=2y cm(gT7x188x,gT7x198x,gT7x228x,gT7x48x);hG7x188x1vhl7x188x;hG7x198x1vhl7x198x;hG7x228x1vhl7x228x;3y eb(hG)};9z dq(gT,hl,il){8y fG=dv(gT),f1=dv(hl);3y 2y bO(il6w'lt'?fGf1:fG6wf1)};9z dp(gT,hl,il){3y _b(cS7x38x(gT),cS7x38x(hl),il)};9z _b(gT,hl,il){8y hB=2y cT(0,0,0,0),_e=d0(gT,hB)7x318x2w,jI=d0(hl,hB)7x318x2w;3y 2y bO(il6w'lt'?_ejI:_e6wjI)};9z dn(gT,hl,iC){8y hG;0y(gT 1y cR)hG=2y cR(gT7x118x,gT7x68x,gT7x158x,gT7x48x,gT7x298x);7z 0y(gT 1y cS)hG=2y cS(gT7x118x,gT7x68x,gT7x158x,gT7x188x,gT7x198x,gT7x228x,gT7x48x,gT7x298x);hG7x118x=hG7x118x+hl7x118x*(iC6w'-'?-1:1);hG7x68x=hG7x68x+hl7x68x*(iC6w'-'?-1:1);e6(hG,3x);8y fw=e5(hG7x118x,hG7x68x);0y(hG7x158x>fw)hG7x158x=fw;3y hG};9z dm(gT,hl,iC){8y hG;0y(gT 1y cR){8y fb=(hl7x188x*60+hl7x198x)*60+hl7x228x;hG=2y cR(gT7x118x,gT7x68x,gT7x158x,gT7x48x,gT7x298x);hG7x158x=hG7x158x+hl7x158x*(iC6w'-'?-1:1)-1*(fb3wiC6w'-');e6(hG)}7z 0y(gT 1y cS){hG=2y cS(gT7x118x,gT7x68x,gT7x158x,gT7x188x,gT7x198x,gT7x228x,gT7x48x,gT7x298x);hG7x228x=hG7x228x+hl7x228x*(iC6w'-'?-1:1);hG7x198x=hG7x198x+hl7x198x*(iC6w'-'?-1:1);hG7x188x=hG7x188x+hl7x188x*(iC6w'-'?-1:1);hG7x158x=hG7x158x+hl7x158x*(iC6w'-'?-1:1);e3(hG)}3y hG};9z dt(gA){3y(((gA7x158x*24+gA7x188x)*60+gA7x198x)*60+gA7x228x)*(gA7x298x?-1:1)};9z ds(fb){8y B=(fb=bd7x438x(fb))<0,fx=~~((fb=bd7x408x(fb))/86400),fB=~~((fb1vfx*3600*24)/3600),fM=~~((fb1vfB*3600)/60),f5=fb1vfM*60;3y 2y cT(fx,fB,fM,f5,B)};9z ex(gA){3y(gA7x118x*12+gA7x68x)*(gA7x298x?-1:1)};9z ew(fb){8y fQ=(fb=bd7x438x(fb))<0,gd=~~((fb=bd7x408x(fb))/12),fO=fb1vgd*12;3y 2y ct(gd,fO,fQ)};9z dv(hA){3y hA7x228x+(hA7x198x-(hA7x48x9w2x?hA7x48x%60:0)+(hA7x188x-(hA7x48x9w2x?~~(hA7x48x/60):0))*60)*60};9z dr(hG){8y gw=2y U((hG7x298x?-1:1)*hG7x118x,hG7x68x,hG7x158x,0,0,0,0);0y(hG 1y cS){gw7x4708x(hG7x188x);gw7x1958x(hG7x198x);gw7x4588x(hG7x228x)}0y(hG7x48x9w2x)gw7x1958x(gw7x1948x2w-hG7x48x);3y gw7x4578x2w/1000};fn7x2878x=9z(gT,hl){3y 2y bO(5x7x248x7x1178x(gT,hl))};fn7x2418x=9z(gT,hl){3y 2y bO(7w(5x7x248x7x628x(gT,hl)&4))};fn7x2408x=9z(gT,hl){3y 2y bO(7w(5x7x248x7x628x(gT,hl)&2))};9z dX(gT,hl){0y(dc(gT)4w(bd7x408x(gT)6wfD)4wdc(hl)4w(bd7x408x(hl)6wfD))3y 0;8y h=by(gT)7x258x(hN),m=by(hl)7x258x(hN),fW=bd7x1918x(1,(h[2]4wh[3]4w'')7x18x+(h[5]4w0)*(h[4]6w'+'?-1:1),(m[2]4wm[3]4w'')7x18x+(m[5]4w0)*(m[4]6w'+'?-1:1));3y fW+(fW%2?0:1)};fn7x1158x=9z(gT,hl){8y fG=gT7x28x2w,f1=hl7x28x2w,fW=bd7x728x(10,dX(fG,f1));3y du(gT,hl,((fG*fW)+(f1*fW))/fW)};fn7x1208x=9z(gT,hl){8y fG=gT7x28x2w,f1=hl7x28x2w,fW=bd7x728x(10,dX(fG,f1));3y du(gT,hl,((fG*fW)-(f1*fW))/fW)};fn7x898x=9z(gT,hl){8y fG=gT7x28x2w,f1=hl7x28x2w,fW=bd7x728x(10,dX(fG,f1));3y du(gT,hl,((fG*fW)*(f1*fW))/(fW*fW))};fn7x908x=9z(gT,hl){8y fG=gT7x28x2w,f1=hl7x28x2w,fW=bd7x728x(10,dX(fG,f1));3y du(gT,hl,(gT*fW)/(hl*fW))};fn7x2398x=9z(gT,hl){3y 2y c7(~~(gT/hl))};fn7x2388x=9z(gT,hl){8y fG=gT7x28x2w,f1=hl7x28x2w,fW=bd7x728x(10,dX(fG,f1));3y du(gT,hl,((fG*fW)%(f1*fW))/fW)};fn7x2428x=9z(hl){3y hl};fn7x2438x=9z(hl){hl7x78x*=-1;3y hl};fn7x1308x=9z(gT,hl){3y 2y bO(gT7x28x2w6whl7x28x2w)};fn7x998x=9z(gT,hl){3y 2y bO(gT7x28x2whl7x28x2w)};9z du(gT,hl,f0){3y 2y(gT 1y c73whl 1y c73wf06wbd7x438x(f0)?c7:cU)(f0)};fn7x2468x=9z(gT,hl){3y 2y bO(gT7x208x6whl7x208x3wgT7x178x6whl7x178x)};fn7x2458x=9z(hr,hs){3y hr7x968x(hs)};fn7x1198x=9z(hr,hs){8y hq=0w;8z(8y fC=0,fJ=hr7x18x,gN;fCfr)c7x1778x2w;7z{c7x108x(q[fC]);fr2v}}7z 0y(q[fC]9w'.')c7x108x(q[fC])}0y(q[3vfC]6w'..'4wq[fC]6w'.')c7x108x('');hF7x588x=c7x418x('/')}}3y hF});eL(_[230],0w,9z2w{3y 2y bO(3x)});eL(_[499],0w,9z2w{3y 2y bO(1x)});eL(_[496],[[cy,'*'8x,9z(hr){3y 2y bO(!d5(hr,5x))});eL(_[76],0w,9z2w{3y 2y c7(5x7x768x)});eL(_[497],0w,9z2w{3y 2y c7(5x7x948x)});eL(_[498],0w,9z2w{3y 5x7x708x});eL(_[503],0w,9z2w{3y cR7x38x(5x7x708x)});eL(_[504],0w,9z2w{3y cm7x38x(5x7x708x)});eL(_[510],0w,9z2w{3y 5x7x48x});eL(_[511],0w,9z2w{3y 2y cl(5x7x538x7x1748x)});eL(_[509],0w,9z2w{3y bM7x38x(2y cl(5x7x538x7x838x4w''))});eL(_[508],[[cW,'?'8x,9z(gA){3y d2(gA,_[11])});eL(_[505],[[cW,'?'8x,9z(gA){3y d2(gA,_[6])});eL(_[506],[[cW,'?'8x,9z(gA){3y d2(gA,_[15])});eL(_[507],[[cW,'?'8x,9z(gA){3y d2(gA,_[18])});eL(_[495],[[cW,'?'8x,9z(gA){3y d2(gA,_[19])});eL(_[494],[[cW,'?'8x,9z(gA){3y d2(gA,_[22])});eL(_[482],[[cS,'?'8x,9z(gx){3y d1(gx,_[11])});eL(_[483],[[cS,'?'8x,9z(gx){3y d1(gx,_[6])});eL(_[484],[[cS,'?'8x,9z(gx){3y d1(gx,_[15])});eL(_[481],[[cS,'?'8x,9z(gx){3y d1(gx,_[18])});eL(_[480],[[cS,'?'8x,9z(gx){3y d1(gx,_[19])});eL(_[477],[[cS,'?'8x,9z(gx){3y d1(gx,_[22])});eL(_[478],[[cS,'?'8x,9z(gx){3y d1(gx,_[4])});eL(_[479],[[cR,'?'8x,9z(gw){3y d1(gw,_[11])});eL(_[485],[[cR,'?'8x,9z(gw){3y d1(gw,_[6])});eL(_[486],[[cR,'?'8x,9z(gw){3y d1(gw,_[15])});eL(_[492],[[cR,'?'8x,9z(gw){3y d1(gw,_[4])});eL(_[493],[[cm,'?'8x,9z(hA){3y d1(hA,_[18])});eL(_[491],[[cm,'?'8x,9z(hA){3y d1(hA,_[19])});eL(_[490],[[cm,'?'8x,9z(hA){3y d1(hA,_[22])});eL(_[487],[[cm,'?'8x,9z(hA){3y d1(hA,_[4])});eL(_[488],[[cS,'?'],[cT,'?',3x8x,9z(gx,gy){3y d0(gx,4x7x18x>13wgy9w2x?4x7x18x>1?gy:5x7x48x:2x)});eL(_[489],[[cR,'?'],[cT,'?',3x8x,9z(gw,gy){3y d0(gw,4x7x18x>13wgy9w2x?4x7x18x>1?gy:5x7x48x:2x)});eL(_[512],[[cm,'?'],[cT,'?',3x8x,9z(hA,gy){3y d0(hA,4x7x18x>13wgy9w2x?4x7x18x>1?gy:5x7x48x:2x)});9z d2(gA,iz){0y(gA6w2x)3y 2x;8y fb=gA[iz]*(gA7x298x?-1:1);3y iz6w_[22]?2y cU(fb):2y c7(fb)};9z d1(gx,iz){0y(gx6w2x)3y 2x;0y(iz6w_[4]){8y f8=gx7x48x;0y(f86w2x)3y 2x;3y 2y cT(0,bd7x408x(~~(f8/60)),bd7x408x(f8%60),0,f8<0)}7z{8y fb=gx[iz];0y(!(gx 1y cR)){0y(iz6w_[18])0y(fb6w24)fb=0}0y(!(gx 1y cm))fb*=gx7x298x?-1:1;3y iz6w_[22]?2y cU(fb):2y c7(fb)}};9z d0(gx,hB){0y(gx6w2x)3y 2x;8y hG;0y(gx 1y cR)hG=2y cR(gx7x118x,gx7x68x,gx7x158x,gx7x48x,gx7x298x);7z 0y(gx 1y cm)hG=2y cm(gx7x188x,gx7x198x,gx7x228x,gx7x48x,gx7x298x);7z hG=2y cS(gx7x118x,gx7x68x,gx7x158x,gx7x188x,gx7x198x,gx7x228x,gx7x48x,gx7x298x);0y(hB6w2x)hG7x48x=2x;7z{8y f8=dt(hB)/60;0y(gx7x48x9w2x){8y fz=f8-gx7x48x;0y(gx 1y cR){0y(fz<0)hG7x158x3v}7z{hG7x198x0vfz%60;hG7x188x0v~~(fz/60)}e3(hG)}hG7x48x=f8}3y hG};eL(_[47],[[cz,'?',3x8x,9z(g0){0y(!4x7x18x){0y(!5x7x248x7x368x(5x7x268x))4y 2y X(_[9]);g0=5x7x268x}7z 0y(g06w2x)3y 2y cl('');8y j2=fm7x2258x7x218x(5x,g0);3y 2y cl(j26w2x?'':j27x318x2w)});eL(_[513],[[cz,'?',3x8x,9z(g0){0y(!4x7x18x){0y(!5x7x248x7x368x(5x7x268x))4y 2y X(_[9]);g0=5x7x268x}7z 0y(g06w2x)3y 2y cl('');3y 2y cl(5x7x248x7x288x(g0,_[20])4w'')});eL(_[537],[[cz,'?',3x8x,9z(g0){0y(!4x7x18x){0y(!5x7x248x7x368x(5x7x268x))4y 2y X(_[9]);g0=5x7x268x}7z 0y(g06w2x)3y bM7x38x(2y cl(''));3y bM7x38x(2y cl(5x7x248x7x288x(g0,_[17])4w''))});eL(_[271],[[bJ,'?',3x8x,9z(gN){0y(!4x7x18x){0y(!5x7x268x)4y 2y X(_[75]);gN=d3([5x7x268x],5x)[0]}8y j2=2y cV(fP);0y(gN9w2x){7y{j2=cV7x38x(gN)}3z(e)1w}3y j2});eL(_[538],[[cl,'?'],[cz,'',3x8x,9z(ir,g0){0y(4x7x18x<2){0y(!5x7x248x7x368x(5x7x268x))4y 2y X(_[9]);g0=5x7x268x}8y d7=5x7x248x7x288x;0y(d7(g0,_[27])6w2)g0=d7(g0,_[56]);8z(8y b;g0;g0=d7(g0,_[42]))0y(b=d7(g0,_[57]))8z(8y fC=0,fJ=b7x18x;fC1?hc7x28x2w:0;0y(fX<0){8y hb=2y c7(bd7x728x(10,-fX)),f4=bd7x438x(fn7x908x7x218x(5x,hG,hb)),hm=2y c7(f4);fy=bd7x408x(fn7x1208x7x218x(5x,hm,fn7x908x7x218x(5x,hG,hb)));3y fn7x898x7x218x(5x,fn7x1158x7x218x(5x,hm,2y cU(fy6w0.53wf4%2?-1:0)),hb)}7z{8y hb=2y c7(bd7x728x(10,fX)),f4=bd7x438x(fn7x898x7x218x(5x,hG,hb)),hm=2y c7(f4);fy=bd7x408x(fn7x1208x7x218x(5x,hm,fn7x898x7x218x(5x,hG,hb)));3y fn7x908x7x218x(5x,fn7x1158x7x218x(5x,hm,2y cU(fy6w0.53wf4%2?-1:0)),hb)}});eL(_[533],[[cl,'?'],[cx8x,9z(hf,gB){0y(hf6w2x)3y 2x;8y iF=hf7x28x2w,j=iF7x258x(i9);0y(!j)4y 2y X(_[95]);8y iE=j[1]4w2x,iu=j[2],iA=5x7x248x7x558x(gB,iE);0y(iE9w2x3w!iA)4y 2y X(_[198]);3y 2y cj(iE,iu,iA4w2x)});eL(_[147],[[cl,'?'],[cl8x,9z(hF,hf){8y iF=hf7x28x2w,j=iF7x258x(i9);0y(!j)4y 2y X(_[95]);3y 2y cj(j[1]4w2x,j[2]4w2x,hF6w2x?'':hF7x28x2w)});eL(_[534],[[cj,'?'8x,9z(hf){0y(hf9w2x){0y(hf7x308x)3y 2y ca(hf7x308x)}3y 2x});eL(_[539],[[cj,'?'8x,9z(hf){0y(hf6w2x)3y 2x;3y 2y ca(hf7x208x)});eL(_[540],[[cj,'?'8x,9z(hf){0y(hf6w2x)3y 2x;3y bM7x38x(2y cl(hf7x178x4w''))});eL(_[546],[[cl,'?'],[cx8x,9z(hd,gB){8y iE=hd6w2x?'':hd7x28x2w,iA=5x7x248x7x558x(gB,iE4w2x);3y iA6w2x?2x:bM7x38x(2y cl(iA))});eL(_[181],[[cx8x,9z(gB){4y \"Function '\"+_[181]+\"' not implemented\"});eL(_[118],[[cy,'*'8x,9z(hr){3y 2y bO(d5(hr,5x))});eL(_[547],[[bJ,'*'],[bJ],[cl,'',3x8x,9z(hr,ho,gr){0y(!hr7x18x4who6w2x)3y 0w;8y jZ=ho;0y(jZ 1y cs)jZ=cl7x38x(jZ);8y hq=0w;8z(8y fC=0,fJ=hr7x18x,j1;fCfJ)fV=fJ+1;8y hq=0w;8z(8y fC=0;fCfJ)3y hr;8y hq=0w;8z(8y fC=0;fC2?bd7x438x(gU):hr7x18x-fV+1;3y hr7x4468x(fV-1,fV-1+fJ)});eL(_[530],[[cy,'*'8x,9z(hr){3y hr});eL(_[519],[[cy,'*'8x,9z(hr){0y(hr7x18x>1)4y 2y X(_[188]);3y hr});eL(_[520],[[cy,'*'8x,9z(hr){0y(!hr7x18x)4y 2y X(_[187]);3y hr});eL(_[518],[[cy,'*'8x,9z(hr){0y(hr7x18x9w1)4y 2y X(_[184]);3y hr});eL(_[185],[[cy,'*'],[cy,'*'],[cl,'',3x8x,9z(hr,hs,gr){4y \"Function '\"+_[185]+\"' not implemented\"});eL(_[517],[[cy,'*'8x,9z(hr){3y 2y c7(hr7x18x)});eL(_[514],[[bJ,'*'8x,9z(hr){0y(!hr7x18x)3y 2x;7y{8y j2=hr[0];0y(j2 1y cs)j2=cV7x38x(j2);8z(8y fC=1,fJ=hr7x18x,j1;fC1)3y hL;7z 3y 2y cV(0);3y 2x}7y{8y j2=hr[0];0y(j2 1y cs)j2=cV7x38x(j2);8z(8y fC=1,fJ=hr7x18x,j1;fC2)ik=gr7x28x2w;jW=ik6wix+_[223]?gq:5x7x538x7x2518x(ik);0y(!jW)4y 2y X(_[222]);3y 2y c7(jW7x508x(hH7x28x2w,hI7x28x2w))});eL(_[528],[[cl,'?'],[cl,'?'8x,9z(hH,hI){0y(hH6w2x4whI6w2x)3y 2x;3y 2y bO(hH7x28x2w6whI7x28x2w)});eL(_[96],2x,9z2w{0y(4x7x18x<2)4y 2y X(_[46]);8y r=0w;8z(8y fC=0,fJ=4x7x18x,hq;fC2?f7+bd7x438x(gU):jO7x18x;3y 2y cl(fA>f7?jO7x1018x(f7,fA):'')});eL(_[527],[[cl,'?',3x8x,9z(hG){0y(!4x7x18x){0y(!5x7x268x)4y 2y X(_[75]);hG=cl7x38x(d3([5x7x268x],5x)[0])}3y 2y c7(hG6w2x?0:hG7x28x2w7x18x)});eL(_[526],[[cl,'?',3x8x,9z(hG){0y(!4x7x18x){0y(!5x7x268x)4y 2y X(_[75]);hG=cl7x38x(d3([5x7x268x],5x)[0])}3y 2y cl(hG6w2x?'':eP(hG)7x388x(/\\s\\s+/g,' '))});eL(_[272],[[cl,'?'],[cl,'',3x8x,9z(hG,h3){4y \"Function '\"+_[272]+\"' not implemented\"});eL(_[523],[[cl,'?'8x,9z(hG){3y 2y cl(hG6w2x?'':hG7x28x2w7x2648x2w)});eL(_[524],[[cl,'?'8x,9z(hG){3y 2y cl(hG6w2x?'':hG7x28x2w7x778x2w)});eL(_[525],[[cl,'?'],[cl],[cl8x,9z(hG,gY,hC){0y(hG6w2x)3y 2y cl('');8y r=hG7x28x2w7x488x(''),i=gY7x28x2w7x488x(''),p=hC7x28x2w7x488x(''),f9=p7x18x,l=0w;8z(8y fC=0,fJ=r7x18x,fV;fC126)r[fC]=6x7x2318x(r[fC]);3y 2y cl(r7x418x(''))});eL(_[428],[[cl,'?'],[cl,'?'],[cl,'',3x8x,9z(hG,ho,gr){3y 2y bO((hG6w2x?'':hG7x28x2w)7x458x(ho6w2x?'':ho7x28x2w)5v0)});eL(_[426],[[cl,'?'],[cl,'?'],[cl,'',3x8x,9z(hG,ho,gr){3y 2y bO((hG6w2x?'':hG7x28x2w)7x458x(ho6w2x?'':ho7x28x2w)6w0)});eL(_[425],[[cl,'?'],[cl,'?'],[cl,'',3x8x,9z(hG,ho,gr){8y jO=hG6w2x?'':hG7x28x2w,jK=ho6w2x?'':ho7x28x2w;3y 2y bO(jO7x458x(jK)6wjO7x18x-jK7x18x)});eL(_[422],[[cl,'?'],[cl,'?'],[cl,'',3x8x,9z(hG,ho,gr){8y jO=hG6w2x?'':hG7x28x2w,jK=ho6w2x?'':ho7x28x2w,fV;3y 2y cl((fV=jO7x458x(jK))5v0?jO7x1018x(0,fV):'')});eL(_[423],[[cl,'?'],[cl,'?'],[cl,'',3x8x,9z(hG,ho,gr){8y jO=hG6w2x?'':hG7x28x2w,jK=ho6w2x?'':ho7x28x2w,fV;3y 2y cl((fV=jO7x458x(jK))5v0?jO7x1018x(fV+jK7x18x):'')});9z d6(jO,io){8y d1='\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF',d2='\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D',d3='\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\jR\\jS-\\jT\\jU-\\jV',c='A-Z_a-z\\\\-.0-9\\u00B7'+d1+'\\u0300-\\u036F'+d2+'\\u203F-\\u2040'+d3,i='A-Z_a-z'+d1+d2+d3;jO=jO 7x388x(/\\[\\\\i-\\[:\\]\\]/g,'['+i+']')7x388x(/\\[\\\\c-\\[:\\]\\]/g,'['+c+']')7x388x(/\\\\i/g,'[:'+i+']')7x388x(/\\\\I/g,'[^:'+i+']')7x388x(/\\\\c/g,'[:'+c+']')7x388x(/\\\\C/g,'[^:'+c+']');0y(io3w!io7x258x(/^[smix]+$/))4y 2y X(_[210]);8y v=io7x458x('s')5v0,w=io7x458x('x')5v0;0y(v4ww){io=io7x388x(/[sx]/g,'');8y r=0w,hR=/\\s/;8z(8y fC=0,fJ=jO7x18x,H=1x,ih,ii='';fC2?gH7x28x2w:'');3y 2y bO(hO7x378x(jO))});eL(_[38],[[cl,'?'],[cl],[cl],[cl,'',3x8x,9z(hG,h9,hi,gH){8y jO=hG6w2x?'':hG7x28x2w,hO=d6(h97x28x2w,4x7x18x>3?gH7x28x2w:'');3y 2y bO(jO7x388x(hO,hi7x28x2w))});eL(_[424],[[cl,'?'],[cl],[cl,'',3x8x,9z(hG,h9,gH){8y jO=hG6w2x?'':hG7x28x2w,hO=d6(h97x28x2w,4x7x18x>2?gH7x28x2w:'');8y hq=0w;8z(8y fC=0,r=jO7x488x(hO),fJ=r7x18x;fCjQ?1:-1};8y M=9z2w1w;M9x7x278x=2;M9x7x618x=M9x7x868x=M9x7x608x=M9x7x208x=M9x7x178x=M9x7x308x=M9x7x578x=M9x7x1768x=M9x7x858x=M9x7x2478x=M9x7x798x=M9x7x748x=M9x7x428x=M9x7x478x=M9x7x928x=M9x7x78x=M9x7x568x=2x;9z ba2w1w;ba9x=2y T;8y gR=2y bw;ba9x7x288x=9z(g0,iz){0y(iz 0z g0)3y g0[iz];0y(iz6w_[83]){8y ie='',eE=gR7x1788x('{'+_[361]+'}'+_[281]),cl=gR7x1068x('{'+_[362]+'}'+_[104]);8z(8y h7=g0,jN;h7;h7=h77x428x)0y(h77x278x6w13w(jN=h77x4418x(_[430])))ie=eE(2y cl(jN),2y cl(ie))7x318x2w;3y ie}7z 0y(iz6w_[91]){8y o=0w;(9z(g0){8z(8y fC=0,gp;gp=g07x1768x[fC];fC2v)0y(gp7x278x6w34wgp7x278x6w4)o7x108x(gp7x1168x);7z 0y(gp7x278x6w13wgp7x858x)4x7x1038x(gp)})(g0);3y o7x418x('')}};ba9x7x628x=9z(g0,gp){0y(_[62] 0z g0)3y g07x628x(gp);0y(gp6wg0)3y 0;8y gj=2x,gk=2x,b,gi,gB,fC,fJ;0y(g07x278x6w2){gj=g0;g0=5x7x288x(gj,_[56])}0y(gp7x278x6w2){gk=gp;gp=5x7x288x(gk,_[56])}0y(gj3wgk3wg03wg06wgp){8z(fC=0,b=5x7x288x(g0,_[57]),fJ=b7x18x;fC?!>=!..!,,!>.!>,!>\"!>>\"!\"\"!>>!>>>!}}!\'\'!*)!~|!^\\!^%\\!^^!\\`\\!xpeojx!tjiu!tuofnvhsb!fvsu!mmvo!ftmbg!iujx!fmjix!sbw!zsu!idujxt!gpfqzu!xpsiu!osvufs!xfo!gpfdobutoj!gj!opjudovg!spg!ftmf!fufmfe!umvbgfe!fvojuopd!idubd!ftbd!lbfsc!oj",'',0,this,'prototype length valueOf cast timezone peek month value evaluate XPTY0004 push year XPST0003 next eof day items namespaceURI hours minutes localName call seconds builtInKind DOMAdapter match item nodeType getProperty negative prefix toString left FORG0001 primitiveKind expression isNode test replace type abs join parentNode round bindings indexOf XPST0017 name split stack compare scope operator staticContext predicates lookupNamespaceURI ownerElement attributes path occurence ownerDocument nodeName compareDocumentPosition right itemType attribute scheme code authority FORG0006 dateTime args pow getURIForPrefix nextSibling XPDY0002 position toLowerCase index previousSibling inExpr node xmlns baseURI substr firstChild nodeValue defaultFunctionNamespace schema-attribute numeric-multiply numeric-divide textContent specified schema-element size FOCA0002 concat numeric-greater-than getElementsByTagNameNS numeric-less-than XPST0051 substring satisfiesExpr callee string XPDY0050 getDataType collations parent functions descendant-or-self dataTypes axis returnExpr namespaceResolver numeric-add data isSameNode boolean union numeric-subtract getElementById query fragment child intersect ancestor ancestor-or-self thenExpr internalExpression numeric-equal quantifier applyPredicates collections add-dayTimeDuration-to-time to popVariable except condExpr pushVariable defaultElementNamespace hasOwnProperty elseExpr document-node time-less-than date-greater-than boolean-less-than QName time-greater-than root date-less-than dateTime-greater-than boolean-greater-than yearMonthDuration-greater-than dayTimeDuration-less-than dayTimeDuration-greater-than dateTime-less-than NOTATION multiply-yearMonthDuration yearMonthDuration-less-than element add-yearMonthDuration-to-date add-dayTimeDuration-to-date preceding-sibling processing-instruction add-dayTimeDuration-to-dateTime as undefined Infinity multiply-dayTimeDuration add-yearMonthDuration-to-dateTime preceding documents charAt defaultCollationName charCodeAt childNodes pop getFunction reverse text in-scope-prefixes hexBinary-equal base64Binary-equal FORG0005 deep-equal NMTOKEN_DT FORG0004 FORG0003 and or max baseName in getMinutes setMinutes XPTY0020 extend FONS0004 boolean-equal doc gYearMonth gYear hexBinary ENTITY_DT time gMonthDay gMonth float NCNAME_DT FORX0001 gDay BOOLEAN_DT ID_DT collection doc-available floor idref element-with-id LANGUAGE_DT xs2js xpath FOCH0002 /collation/codepoint FODC0001 node-name subtract-yearMonthDuration-from-date subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-time target true encodeURIComponent subtract-dates subtract-times subtract-yearMonthDuration-from-dateTime subtract-dayTimeDuration-from-dateTime min log numeric-mod numeric-integer-divide node-after node-before numeric-unary-plus numeric-unary-minus equals concatenate QName-equal lastChild subtract-dateTimes divide-dayTimeDuration-by-dayTimeDuration time-equal getCollation gYearMonth-equal gYear-equal fromCharCode date-equal duration-equal INF dateTime-equal every gMonthDay-equal gMonth-equal add-dayTimeDurations subtract-dayTimeDurations toUpperCase divide-dayTimeDuration divide-yearMonthDuration-by-yearMonthDuration divide-yearMonthDuration gDay-equal add-yearMonthDurations subtract-yearMonthDurations number normalize-unicode INT_DT comment SHORT_DT BYTE_DT LONG_DT NEGATIVEINTEGER_DT DAYTIMEDURATION_DT INTEGER_DT resolve-uri NONPOSITIVEINTEGER_DT NONNEGATIVEINTEGER_DT GMONTHDAY_DT GDAY_DT PRIMITIVE_FLOAT is-same-node FLOAT_DT PRIMITIVE_GDAY GMONTH_DT xml XPST0008 PRIMITIVE_GMONTH XPTY0019 XT_YEARMONTHDURATION_DT following following-sibling self NOTATION_DT descendant PRIMITIVE_HEXBINARY GYEARMONTH_DT PRIMITIVE_GYEARMONTH HEXBINARY_DT GYEAR_DT PRIMITIVE_NOTATION TIME_DT XPST0081 PRIMITIVE_TIME XT_UNTYPEDATOMIC_DT PRIMITIVE_STRING STRING_DT PRIMITIVE_GMONTHDAY QNAME_DT PRIMITIVE_QNAME PRIMITIVE_DURATION DURATION_DT DATE_DT anyAtomicType PRIMITIVE_BOOLEAN BASE64BINARY_DT PRIMITIVE_ANYURI ANYURI_DT ANYSIMPLETYPE_DT UNSIGNEDSHORT_DT ANYATOMICTYPE_DT PRIMITIVE_BASE64BINARY anyURI NORMALIZEDSTRING_DT TOKEN_DT duration NAME_DT UNSIGNEDBYTE_DT double base64Binary date decimal UNSIGNEDINT_DT ANYTYPE_DT PRIMITIVE_DECIMAL DECIMAL_DT documentElement apply DOUBLE_DT trim PRIMITIVE_DOUBLE POSITIVEINTEGER_DT PRIMITIVE_DATETIME PRIMITIVE_GYEAR DATETIME_DT PRIMITIVE_DATE UNSIGNEDLONG_DT XPTY0018 else some XPST0010 http://www.w3.org/XML/1998/namespace if then http://www.w3.org/2000/xmlns/ http://www.w3.org/2005/xpath-functions http://www.w3.org/2001/XMLSchema treat castable int of instance fourth for fifth long XPST0080 dayTimeDuration yearMonthDuration untypedAtomic http://www.w3.org/1999/xhtml empty-sequence negativeInteger nonPositiveInteger integer short byte NCName Name token ENTITY ID satisfies NMTOKEN language normalizedString unsignedByte third positiveInteger nonNegativeInteger second unsignedLong unsignedShort first unsignedInt return matches isNaN isFinite NaN TypeError SyntaxError Function Math Error btoa atob getTimezoneOffset getFullYear getMonth back reset parseInt message Date RegExp substring-before substring-after tokenize ends-with starts-with escape-html-uri contains trace xml:base Number Object Array Boolean String div DIV getDate getHours console getAttribute innerText decodeURI encodeURI ceil slice sort nodeFromID jQuery href createElement tagName location createElementNS document namespaces getTime setSeconds setFunction setCollation setCollection setDocument setDataType getSeconds getMilliseconds js2xs IDREF_DT DAYMONTHDURATION_DT PRECISIONDECIMAL_DT setHours DATETIMESTAMP_DT UNAVAILABLE_DT LISTOFUNION_DT LIST_DT iri-to-uri encode-for-uri seconds-from-dateTime timezone-from-dateTime year-from-date minutes-from-dateTime hours-from-dateTime year-from-dateTime month-from-dateTime day-from-dateTime month-from-date day-from-date timezone-from-time adjust-dateTime-to-timezone adjust-date-to-timezone seconds-from-time minutes-from-time timezone-from-date hours-from-time seconds-from-duration minutes-from-duration not last current-dateTime false documentURI base-uri document-uri current-date current-time months-from-duration days-from-duration hours-from-duration years-from-duration static-base-uri implicit-timezone default-collation adjust-time-to-timezone local-name avg sum id count exactly-one zero-or-one one-or-more codepoints-to-string string-to-codepoints upper-case lower-case translate normalize-space string-length codepoint-equal string-join unordered subsequence round-half-to-even resolve-QName prefix-from-QName ceiling xml:lang namespace-uri lang local-name-from-QName namespace-uri-from-QName distinct-values insert-before remove exists empty namespace-uri-for-prefix index-of nilled'.split(' ')); diff --git a/test/integration/tests/acceptance.suite.yml b/test/integration/tests/acceptance.suite.yml index 2c5906f..9550f43 100644 --- a/test/integration/tests/acceptance.suite.yml +++ b/test/integration/tests/acceptance.suite.yml @@ -2,7 +2,7 @@ class_name: WebGuy modules: enabled: - WebDriver: - url: http://www.hyperia.sk + url: https://news.ycombinator.com/ browser: phantomjs #browser: chrome host: localhost diff --git a/test/integration/tests/acceptance/SimpleCept.php b/test/integration/tests/acceptance/SimpleCept.php index 523e054..699d71b 100644 --- a/test/integration/tests/acceptance/SimpleCept.php +++ b/test/integration/tests/acceptance/SimpleCept.php @@ -1,5 +1,8 @@ am('visitor'); $I->wantTo('check highlight text'); $I->amOnPage("/"); -$I->see("Výkonnostný Marketing"); +$I->see("comments"); +$I->see("show"); +$I->seeElement('.hnname'); \ No newline at end of file diff --git a/test/integration/tests/acceptance/XPathCept.php b/test/integration/tests/acceptance/XPathCept.php new file mode 100644 index 0000000..ad29aad --- /dev/null +++ b/test/integration/tests/acceptance/XPathCept.php @@ -0,0 +1,10 @@ +am('visitor'); +$I->wantTo('check highlight text'); +$I->amOnPage('/login?goto=news'); +$I->seeElement(['xpath' => "//input[@type='submit']"]); +$I->seeElement('//form//input[@type="text"]'); +$I->seeElement("//a[contains(text(), 'Forgot')]"); +$I->dontSeeElement(['name' => "Foo bar"]); +$I->dontSeeElement(['link' => "Click here"]); \ No newline at end of file