{"version":3,"file":"scripts.7e5e1d95ca412ff4.js","mappings":"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,qCAIA,OACA9Y,iDACAA,kDACAA,iDACAA,kDACAA,iDACAA,iDACAA,iDACAA,iDACAA,iDACAA,gDACAA,iDACAA,kDACAA,iDACAA,kDACAA,kDACAA,+CACAA,gDACAA,kDACAA,kDACAA,iDACAA,kDACAA,iDACAA,kDACAA,gDACAA,gDACAA,gDACAA,iDACAA,kDACAA,kDACAA,iDACAA,iDACAA,kDACAA,iDACAA,kDACAA,gDACAA,+CACAA,+CACAA,iDACAA,kDACAA,kDAIA2V,MACA,WACA,YAAyBkD,KAAQA,IACjClD,SAFA,GASA,0BACAiJ,oBACAjY,wBACA,sEACA,sEACA,qEACA,uEAIAkY,8BAiDA,QA/CAhhB,mBAEAC,OACAC,OACA+X,OACAvW,OACAmW,OACAW,OACAnY,OACA6W,QAEAoB,UACAqB,SACAvS,UACAC,SACAkS,UACAS,SACAR,UACAM,SACAqE,UACAhE,SACAF,UACAJ,SACAD,UACAM,QACAT,WACAY,UAGA+G,KACArH,MACAsH,MACAtW,MACAd,MACAqX,MACAC,MACAC,MACApX,MACAF,MACAY,MACAL,MACAgX,MACAjX,KACAkX,MACAC,MAGAC,KAA6BA,MAAQA,MACrC,OACArW,GAGAsW,SAGA,SACAtW,uBACAuW,4BACmB,CAEnB,gBACAnW,WACAoW,UAEAC,mDAGApW,WACAqW,WACAC,UAEAC,oDAGArW,WAIAC,WAEAqW,QASAP,QAFAtW,IAFAA,IAFAA,KApBAI,uCAYAG,UAOAgW,MANAhW,UAOA,iBAbAmW,0CAcAH,UACA,eANA/V,SAOA+V,SACA,aAGAD,UAGA,IAqBAQ,GArBAC,gBACAC,gBACAC,mBAIAC,gDAKAC,SAEAC,UAGAC,QATAxY,oDAQAiY,QAPAnY,qDAQA,cASA4D,OAtBAiM,mBA0BA2H,MACAC,MACAF,MACAjX,MACAM,MACAL,MAEAL,OAdAwY,IAFAA,IAFAA,WADAP,UACA,eANAK,UAOAL,UACA,eAEA9W,KADA8W,UACA,iBAaAnY,cACA,gBACAqX,MACAC,MACAvX,MACAqX,MACAD,KACAtW,MAEAqW,QAvCAA,6CAqBAoB,0BA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MADA1R,4CACA,UACA4T,oBACA5I,mBACApS,QAGA6X,GAGAA,oBACAW,YAHAX,OA1CA,GAmDA,qCAKA3X,oBACA6gB,oBAIA,mDAiBA,SAZArf,gCACAmW,UACAW,eAMAtB,OAHApO,mBAGA,GAGAwP,wBACAqB,KAAiCA,MAAgBA,KACjDA,KACArB,cAEAL,WAEA0B,KASuBnB,eAEvBP,iEANAA,MAHAA,iBAGA,sDAGAA,kBAMAK,mBAMA,QADAlR,2BACAC,KAAoCA,MAAmBA,MAGvD,GAFAsS,SAEAtS,KACA,kBAEA4Q,WAIA7Q,OADAC,YACA4Q,EAEAa,gCACA1G,iCAKA6S,2BACAnc,sDAGAoc,2BAEA,aACAjN,cACAA,SAEAnP,wDAGA+O,SACAI,cACAA,UAGAkN,2CAcA,QAZA/d,iBAGAC,aACAkS,eACAS,eACAR,eAGAM,KAGAqE,KAAiCA,MAAiBA,MAElD,mEACAlE,+DACAJ,+DACAD,+DAGAvS,MACAkS,MACAS,MACAR,MAIAW,8EACAF,8EACAJ,8EACAD,8EAGA3B,QACAA,UACAA,UACAA,WAGAiL,YAWArjB,0BApNA,GAwNA,WAEA,SACAyd,SACA/W,gBACA0Q,kBACAsG,UAGAzd,IACA,sBACA,uBACA,uBACA,wBACA,uBACA,uBACA,uBAIAmb,GACA,gBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,mBAIA9Y,+CAGApC,GACA,CACA,UACA,gBACA,kBACA,YACA,eACA,mBACA,mBACA,mBACA,eACA,mBACA,iBACA,mBACA,iBACA,mBACA,aACA,iBACA,YACA,kBACA,gBACA,gBACA,mBACA,eACA,mBACA,aACA,mBACA,iBACA,mBACA,mBACA,mBACA,iBACA,eACA,mBACA,QACA,YACA,kBACA,kBACA,mBACA,iBACA,eACA,mBACA,mBACA,mBACA,mBACA,iBACA,eACA,mBACA,iBACA,aACA,kBACA,kBACA,kBACA,cACA,iBACA,mBACA,aACA,iBACA,iBACA,mBACA,eACA,mBACA,mBACA,aACA,iBACA,oBAEA,CACA,aACA,eACA,gBACA,oBACA,oBACA,oBACA,qBACA,aACA,iBACA,qBACA,qBACA,iBACA,iBACA,YACA,gBACA,qBACA,mBACA,gBACA,YACA,oBACA,oBACA,oBACA,iBACA,qBACA,iBACA,YACA,gBACA,qBACA,qBACA,iBACA,qBACA,gBACA,YACA,qBACA,qBACA,qBACA,qBACA,aACA,iBACA,gBACA,gBACA,iBACA,iBACA,qBACA,iBACA,qBACA,qBACA,qBACA,iBACA,iBACA,qBACA,gBACA,qBACA,qBACA,aACA,qBACA,qBACA,qBACA,qBACA,iBACA,YACA,gBACA,qBACA,kBAEA,CACA,MACA,UACA,iBACA,cACA,cACA,iBACA,iBACA,iBACA,iBACA,iBACA,eACA,kBACA,kBACA,eACA,WACA,aACA,gBACA,iBACA,UACA,iBACA,iBACA,cACA,cACA,YACA,UACA,YACA,kBACA,eACA,eACA,kBACA,kBACA,kBACA,kBACA,eACA,eACA,kBACA,aACA,kBACA,kBACA,WACA,kBACA,kBACA,WACA,eACA,kBACA,aACA,eACA,kBACA,kBACA,aACA,kBACA,WACA,eACA,kBACA,aACA,kBACA,eACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBAEA,CACA,aACA,iBACA,eACA,kBACA,SACA,eACA,kBACA,eACA,kBACA,eACA,UACA,kBACA,kBACA,YACA,YACA,kBACA,iBACA,SACA,kBACA,kBACA,eACA,kBACA,SACA,kBACA,YACA,kBACA,eACA,YACA,kBACA,eACA,eACA,mBACA,gBACA,gBACA,mBACA,UACA,aACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,gBACA,mBACA,gBACA,WACA,aACA,mBACA,mBACA,UACA,gBACA,gBACA,mBACA,mBACA,WACA,mBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,iBAEA,CACA,MACA,cACA,YACA,gBACA,gBACA,eACA,gBACA,aACA,eACA,gBACA,gBACA,gBACA,gBACA,QACA,eACA,gBACA,cACA,eACA,UACA,eACA,aACA,gBACA,gBACA,gBACA,gBACA,QACA,gBACA,eACA,gBACA,gBACA,eACA,aACA,aACA,UACA,gBACA,gBACA,eACA,gBACA,gBACA,eACA,gBACA,iBACA,gBACA,iBACA,cACA,iBACA,SACA,gBACA,gBACA,eACA,eACA,gBACA,gBACA,eACA,UACA,gBACA,cACA,iBACA,SACA,iBACA,gBACA,cACA,iBACA,kBAEA,CACA,YACA,SACA,cACA,cACA,eACA,aACA,aACA,eACA,OACA,eACA,aACA,OACA,eACA,aACA,UACA,eACA,cACA,cACA,MACA,YACA,aACA,eACA,eACA,UACA,aACA,UACA,eACA,eACA,OACA,eACA,aACA,eACA,eACA,eACA,eACA,UACA,aACA,eACA,eACA,aACA,aACA,OACA,OACA,eACA,UACA,eACA,eACA,aACA,OACA,aACA,aACA,eACA,eACA,UACA,eACA,eACA,eACA,eACA,UACA,aACA,aACA,OACA,eACA,gBAEA,CACA,UACA,YACA,QACA,WACA,YACA,KACA,KACA,aACA,aACA,YACA,aACA,aACA,aACA,SACA,YACA,aACA,WACA,KACA,YACA,YACA,WACA,YACA,aACA,SACA,YACA,aACA,aACA,YACA,SACA,aACA,MACA,YACA,aACA,YACA,aACA,aACA,YACA,aACA,aACA,YACA,SACA,aACA,YACA,MACA,MACA,aACA,aACA,SACA,YACA,aACA,aACA,MACA,aACA,YACA,SACA,aACA,aACA,aACA,MACA,aACA,YACA,SACA,aACA,aAEA,CACA,YACA,SACA,YACA,KACA,SACA,YACA,YACA,OACA,YACA,YACA,UACA,aACA,QACA,KACA,aACA,UACA,gBACA,qBACA,qBACA,qBACA,qBACA,kBACA,kBACA,cACA,qBACA,gBACA,kBACA,qBACA,aACA,qBACA,qBACA,kBACA,UACA,aACA,MACA,QACA,aACA,aACA,aACA,UACA,KACA,UACA,aACA,aACA,aACA,UACA,QACA,aACA,kBACA,gBACA,qBACA,kBACA,cACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,aACA,k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A,IACxCD,eAKAihB,8BAEA,cAGAjhB,aAGAwd,8BACAA,8BACAA,8BACAA,8BAEA,YAA6BnL,IAAOA,IAEpCmL,qCACA,iCAGAzF,eAIAmI,YAEAyD,WAGA,aAMA,QAJA5L,UACAgB,UAGAkC,IAAyBA,IAAOA,IAChClb,WAeA,IAXAgZ,+BACAA,gDACAA,+CACAA,gDACAA,gDACAA,+CACAA,gDACAA,gDACAhQ,+BAGAkS,IAAyBA,IAAOA,KAChC,gBAGAhb,UACAC,SAOAgb,OAJAjb,0BACA,kCAGA,CAIA8X,sDACAA,qCACAA,sDACAA,qCACAA,sDACAA,qCACAA,sDACAA,qCAWAjY,mCAxKA,GA4KA,WAEA,SAEA0G,GADA1G,MACAmlB,YAGA,MAGAllB,IACA,wCACA,0CACA,0CACA,4CACA,uBAGAmb,GACA,4CACA,4CACA,0CACA,4CACA,2CACA,2CACA,2CACA,4CACA,4CACA,4CACA,0CACA,4CACA,2CACA,2CACA,2CACA,4CACA,4CACA,0CACA,2CACA,2CACA,4CACA,2CACA,2CACA,2CACA,4CACA,0CACA,2CACA,0CACA,0CACA,2CACA,0CACA,4CACA,2CACA,4CACA,2CACA,4CACA,2CACA,2CACA,2CACA,2CACA,4CACA,0CACA,4CACA,4CACA,0CACA,4CACA,4CACA,4CACA,4CACA,2CACA,2CACA,4CACA,0CACA,4CACA,4CACA,uCACA,2CACA,yCACA,2CACA,2CACA,2CACA,0CACA,4CACA,4CACA,6CACA,0CACA,4CACA,2CACA,4CACA,4CACA,0CACA,2CACA,4CACA,4CACA,0CACA,2CACA,2CACA,0CACA,2CACA,0CACA,4CACA,0CACA,4CACA,2CACA,4CACA,4CACA,0CACA,yCACA,2CACA,0CACA,2CACA,4CACA,2CACA,2CACA,2CACA,yCACA,4CACA,0CACA,4CACA,2CACA,0CACA,yCACA,4CACA,4CACA,2CACA,2CACA,4CACA,0CACA,2CACA,0CACA,4CACA,2CACA,2CACA,4CACA,4CACA,4CACA,4CACA,4CACA,yCACA,yCACA,2CACA,4CACA,2CACA,4CACA,2CACA,2CACA,4CACA,4CACA,6CACA,4CACA,2CACA,0CACA,4CACA,yCACA,4CACA,0CACA,2CACA,4CACA,4CACA,0CACA,0CACA,2CACA,4CACA,2CACA,4CACA,4CACA,wCACA,4CACA,2CACA,2CACA,0CACA,yCACA,0CACA,2CACA,4CACA,4CACA,0CACA,4CACA,2CACA,4CACA,4CACA,4CACA,2CACA,2CACA,2CACA,0CACA,2CACA,4CACA,4CACA,4CACA,4CACA,4CACA,4CACA,4CACA,4CACA,2CACA,2CACA,4CACA,0CACA,yCACA,4CACA,2CACA,4CACA,wCACA,0CACA,4CACA,2CACA,2CACA,2CACA,2CACA,2CACA,6CACA,4CACA,4CACA,4CACA,2CACA,4CACA,4CACA,2CACA,4CACA,4CACA,4CACA,2CACA,4CACA,2CACA,yCACA,0CACA,2CACA,4CACA,2CACA,4CACA,uCACA,4CACA,yCACA,0CACA,2CACA,0CACA,4CACA,4CACA,2CACA,2CACA,2CACA,2CACA,4CACA,4CACA,4CACA,yCACA,0CACA,wCACA,2CACA,2CACA,4CACA,2CACA,0CACA,2CACA,0CACA,2CACA,2CACA,0CACA,4CACA,2CACA,2CACA,2CACA,2CACA,4CACA,4CACA,4CACA,2CACA,2CACA,4CACA,yCACA,2CACA,4CACA,uCACA,4CACA,6CAGA,OACAwK,QACAC,SAGA,gBACA,IAKAlN,YALAvY,WAKAD,UAJAC,WAKA,oBAJAA,UAKAuY,aAJA,OAMAA,EAGA,kBACA,IAEAX,EAFAI,IACAvW,IAGA,YAAwB8W,EArSxB,KAqS+BA,EAC/BP,aACAvW,WAEAmW,IACAI,IACAvW,IAGA,WACAuW,IACAvW,IAEAA,UAlTA,IAmTAuW,cAEA,CAAiB0N,gBA0FjB,MAjZA9lB,OAiZA+lB,oBACA7E,oBAEA,mCAKA,sCA5DA,kBAEA,YAA0B1gB,IAASA,IACnC,CACAL,aACA,aAA8BkX,OAAWA,KAEzClX,uBAIA,QACA,YAA4BK,KAAeA,IAE3CL,qBACAiY,IACAA,OAEAA,KAIA,QACAJ,IAC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","names":["q","lt","T","F","U","K","type","f","x","jquery","get","pushStack","each","map","slice","first","last","even","odd","eq","end","push","st","B","expando","noop","isPlainObject","isEmptyObject","globalEval","Y","nonce","C","makeArray","inArray","merge","grep","W","guid","E","da","hasOwnProperty","ut","ia","Le","ID","za","Na","Ba","Da","Mt","ja","dir","gi","O","apply","$i","Rt","at","Pe","Zt","Se","yi","Hi","ie","ft","Gt","le","De","ui","he","qi","pe","ha","Ft","si","cacheLength","find","relative","preFilter","ATTR","CHILD","PSEUDO","filter","TAG","CLASS","Ye","_i","ki","Ne","Li","pseudos","not","has","contains","lang","target","root","focus","enabled","selected","empty","parent","header","input","button","text","gt","radio","submit","ta","oi","value","replace","Ii","wi","rt","wa","et","r","Kt","Ut","u","is","prototype","children","closest","index","add","addBack","parents","parentsUntil","next","prev","nextAll","prevAll","nextUntil","prevUntil","siblings","firstChild","contents","match","pt","jt","arguments","remove","this","disable","disabled","lock","locked","fireWith","fire","fired","Deferred","state","always","catch","pipe","Bt","promise","then","Ti","when","isReady","Yt","xe","cache","Ie","set","access","hasData","ve","Qt","data","removeData","_data","_removeData","Jt","dt","queue","dequeue","_queueHooks","clearQueue","X","Ki","composed","li","show","hide","toggle","Oi","Wi","thead","Ai","y","namespace","delegateType","global","dispatch","handle","handlers","elem","addProp","Object","enumerable","fix","special","load","noBubble","click","setup","trigger","_default","beforeunload","postDispatch","constructor","stopPropagation","stopImmediatePropagation","altKey","mouseenter","on","one","off","htmlPrefilter","clone","re","cleanData","detach","append","prepend","before","after","html","nodeType","replaceWith","appendTo","e","a","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","position","b","letterSpacing","cssHooks","opacity","cssNumber","animationIterationCount","cssProps","style","css","marginLeft","margin","expand","cur","run","init","scrollTop","linear","swing","Z","w","height","specialEasing","easing","stop","tweeners","tweener","prefilters","ye","display","prefilter","complete","fadeTo","animate","finish","slideDown","fadeOut","fadeToggle","slow","G","attr","removeAttr","attrHooks","Ct","It","prop","removeProp","propHooks","tabIndex","propFix","for","P","addClass","removeClass","toggleClass","hasClass","val","valHooks","option","select","simulate","triggerHandler","teardown","Je","serialize","serializeArray","name","te","Be","mi","active","etag","ajaxSettings","url","accepts","xml","responseFields","converters","flatOptions","ajaxSetup","ajaxPrefilter","Ri","ni","readyState","pi","getAllResponseHeaders","setRequestHeader","overrideMimeType","statusCode","abort","Qe","Ee","Vi","Ci","ei","Mi","Xi","ua","Ni","fa","getJSON","getScript","dataFilter","wrapAll","wrapInner","wrap","unwrap","ze","send","binary","script","charset","jsonp","done","length","setOffset","offset","top","pageYOffset","offsetParent","scrollLeft","Height","padding","bind","unbind","delegate","undelegate","hover","Wt","tt","nojQuery","stoppedDuringStartRequest","invalidStartResponse","protocolIncompatible","aspnetCoreSignalrServer","longPollFailed","pingServerFailed","pingServerFailedParse","reconnectWindowTimeout","jsonpNotSupportedWithAccessToken","R","j","onStart","oldState","L","defaultContentType","ieVersion","error","transportError","wt","format","N","firefoxMajorVersion","configurePingInterval","processData","connecting","start","Q","keepAliveData","connectingMessageBuffer","lastMessageAt","_parseResponse","json","_originalJson","ajaxDataType","logging","Tt","Pt","Ht","pingInterval","Lt","At","be","Et","it","St","de","V","oe","success","mt","Authorization","starting","received","stateChanged","disconnected","connectionSlow","reconnecting","reconnected","log","window","k","M","initReceived","transportFailed","ajax","xhrFields","withCredentials","contentType","pingServer","prepareQueryString","addQs","getUrl","maximizePersistentResponse","MessageId","updateGroups","stringifySend","ajaxSend","ajaxAbort","method","ajaxStart","tryAbortStartRequest","tryInitialize","triggerReceived","processMessages","monitorKeepAlive","stopMonitoringKeepAlive","startHeartbeat","markLastMessage","markActive","isConnectedOrReconnecting","ensureReconnectingState","clearReconnectTimeout","verifyLastActive","reconnect","handleParseFailure","initHandler","foreverFrame","count","vt","ot","lostConnection","timeOut","prevent","cancel","iframeClearThreshold","receive","document","getConnection","started","reconnectDelay","onprogress","ce","Math","qs","callbackMap","invoke","H","scope","_maximizeHubResponse","State","Id","Hub","signalR","module","define","extend","create","mixIn","toString","concat","clamp","random","stringify","parse","reset","_append","_process","_minBufferSize","cfg","update","finalize","blockSize","_createHelper","_createHmacHelper","lib","Base","x64","Word","toX32","WordArray","enc","Base64","_map","Base64url","_safe_map","_doReset","_doProcessBlock","_doFinalize","SHA1","Hasher","I","bt","Ot","ge","fe","He","Fi","Pi","$e","Yi","ri","je","Zi","Di","Ge","fi","z","ti","yt","Nt","$t","We","Ue","Ve","ai","outputLength","high","Utf8","algo","HMAC","keySize","hasher","iterations","compute","EvpKDF","createEncryptor","createDecryptor","process","ivSize","_ENC_XFORM_MODE","_DEC_XFORM_MODE","encrypt","decrypt","processBlock","Pkcs7","pad","unpad","mode","OpenSSL","ciphertext","key","iv","algorithm","formatter","_parse","execute","kdf","Encryptor","CipherParams","Hex","BlockCipher","encryptBlock","decryptBlock","_doCryptBlock","words","StreamCipher","drop","Rabbit","RabbitLegacy","pbox","sbox","left","Blowfish","_","Me","innerHTML","solid","passive","preventDefault","willReadFrequently","WebkitUserSelect","cursor","isNaN","_isPlaceholder","x1","Chart","width","title","toolbar","Title","maxWidth","options","Subtitle","Toolbar","itemBackgroundColor","itemBackgroundColorOnHover","Legend","ToolTip","fontWeight","Axis","minimum","lineColor","StripLine","labelMaxWidth","ScaleBreaks","autoCalculate","lineThickness","Break","startValue","Crosshair","thickness","DataSeries","xValueType","toolTipContent","TextBlock","CultureInfo","decimalSeparator","zoomText","en","colorSet1","colorSet","fontFamily","subtitles","fontColor","indexLabelFontFamily","axisX","titleFontFamily","titleFontColor","labelFontSize","labelFontWeight","tickThickness","labelFontFamily","crosshair","color","scaleBreaks","axisX2","axisY","axisY2","legend","fontSize","toolTip","verticalAlign","tickColor","titleFontSize","labelBackgroundColor","labelFontColor","spacing","indexLabelFontWeight","light1","indexLabelFontSize","theme1","numberDuration","yearDuration","sCH","_t","me","Oe","split","t","na","offsetX","image","pan","zoom","menu","context","lines","measureText","addTheme","addColorSet","addCultureInfo","formatNumber","formatDate","s","canvas","right","i","o","g","l","m","c","h","id","min","viewportMaximum","parseFloat","vi","borderRight","navigator","WebkitFilter","backgroundColor","chart","stockChart","transition","axisPlacement","plotInfo","outline","source","p","d","n","plotType","D","xt","ct","v","kt","J","diff","S","A","time","viewportMinimum","clearTimeout","axesWithValidRange","val1","isValid","percent","Vt","objectType","chartType","direction","dataPointIndex","isFinite","qe","easingFunction","dataPoint","ht","nt","dataPoints","size","animationBase","Fe","parseInt","Number","$","dataSeries","save","we","fillStyle","indexLabelTextBlock","Ce","ne","Ae","ke","Qi","ci","clearRect","Xe","Xt","Ze","Te","ue","zt","la","se","di","_e","qt","x2","Ke","ee","Re","bi","Bi","Dt","textBlock","event","toDataURL","setTimeout","markerType","items","distance","y1","labelPlacement","cornerRadius","ae","pixelPerUnit","y2","yPercent","cumulativeY","axis","entries","xValue","hi","eventParameter","mouseout","startTime","yScaleAnimation","xScaleAnimation","xClipAnimation","fadeInAnimation","easeOutQuad","easeOutQuart","easeInQuad","easeInQuart","drawMarker","drawMarkers","charAt","sort","createElement","init_","initElement","aliceblue","bisque","darksalmon","ivory","mediumblue","peachpuff","butt","INDEX_SIZE_ERR","G_vmlCanvasManager","CanvasRenderingContext2D","CanvasGradient","CanvasPattern","DOMException"],"sourceRoot":"webpack:///","sources":["node_modules\\jquery\\dist\\jquery.min.js","node_modules\\signalr\\jquery.signalR.min.js","node_modules\\crypto-js\\crypto-js.js","node_modules\\@canvasjs\\charts\\canvasjs.min.js"],"sourcesContent":["/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */\n!function(e,t){\"use strict\";\"object\"==typeof module&&\"object\"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error(\"jQuery requires a window with a document\");return t(e)}:t(e)}(\"undefined\"!=typeof window?window:this,function(C,e){\"use strict\";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return\"function\"==typeof e&&\"number\"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement(\"script\");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+\"\":\"object\"==typeof e||\"function\"==typeof e?n[o.call(e)]||\"object\":typeof e}var f=\"3.5.1\",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&\"length\"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&(\"array\"===n||0===t||\"number\"==typeof t&&0+~]|\"+M+\")\"+M+\"*\"),U=new RegExp(M+\"|>\"),X=new RegExp(F),V=new RegExp(\"^\"+I+\"$\"),G={ID:new RegExp(\"^#(\"+I+\")\"),CLASS:new RegExp(\"^\\\\.(\"+I+\")\"),TAG:new RegExp(\"^(\"+I+\"|[*])\"),ATTR:new RegExp(\"^\"+W),PSEUDO:new RegExp(\"^\"+F),CHILD:new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\"+M+\"*(even|odd|(([+-]|)(\\\\d*)n|)\"+M+\"*(?:([+-]|)\"+M+\"*(\\\\d+)|))\"+M+\"*\\\\)|)\",\"i\"),bool:new RegExp(\"^(?:\"+R+\")$\",\"i\"),needsContext:new RegExp(\"^\"+M+\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\"+M+\"*((?:-\\\\d)?\\\\d*)\"+M+\"*\\\\)|)(?=[^-]|$)\",\"i\")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\\d$/i,K=/^[^{]+\\{\\s*\\[native \\w/,Z=/^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,ee=/[+~]/,te=new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\"+M+\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\",\"g\"),ne=function(e,t){var n=\"0x\"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,ie=function(e,t){return t?\"\\0\"===e?\"\\ufffd\":e.slice(0,-1)+\"\\\\\"+e.charCodeAt(e.length-1).toString(16)+\" \":\"\\\\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&\"fieldset\"===e.nodeName.toLowerCase()},{dir:\"parentNode\",next:\"legend\"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],\"string\"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+\" \"]&&(!v||!v.test(t))&&(1!==p||\"object\"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute(\"id\"))?s=s.replace(re,ie):e.setAttribute(\"id\",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?\"#\"+s:\":scope\")+\" \"+xe(l[o]);c=l.join(\",\")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute(\"id\")}}}return g(t.replace($,\"$1\"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+\" \")>b.cacheLength&&delete e[r.shift()],e[t+\" \"]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement(\"fieldset\");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split(\"|\"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return\"input\"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return(\"input\"===t||\"button\"===t)&&e.type===n}}function ge(t){return function(e){return\"form\"in e?e.parentNode&&!1===e.disabled?\"label\"in e?\"label\"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:\"label\"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&\"undefined\"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||\"HTML\")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener(\"unload\",oe,!1):n.attachEvent&&n.attachEvent(\"onunload\",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement(\"div\")),\"undefined\"!=typeof e.querySelectorAll&&!e.querySelectorAll(\":scope fieldset div\").length}),d.attributes=ce(function(e){return e.className=\"i\",!e.getAttribute(\"className\")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment(\"\")),!e.getElementsByTagName(\"*\").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute(\"id\")===t}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t=\"undefined\"!=typeof e.getAttributeNode&&e.getAttributeNode(\"id\");return t&&t.value===n}},b.find.ID=function(e,t){if(\"undefined\"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode(\"id\"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return\"undefined\"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if(\"*\"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if(\"undefined\"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=\"\",e.querySelectorAll(\"[msallowcapture^='']\").length&&v.push(\"[*^$]=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\"[selected]\").length||v.push(\"\\\\[\"+M+\"*(?:value|\"+R+\")\"),e.querySelectorAll(\"[id~=\"+S+\"-]\").length||v.push(\"~=\"),(t=C.createElement(\"input\")).setAttribute(\"name\",\"\"),e.appendChild(t),e.querySelectorAll(\"[name='']\").length||v.push(\"\\\\[\"+M+\"*name\"+M+\"*=\"+M+\"*(?:''|\\\"\\\")\"),e.querySelectorAll(\":checked\").length||v.push(\":checked\"),e.querySelectorAll(\"a#\"+S+\"+*\").length||v.push(\".#.+[+~]\"),e.querySelectorAll(\"\\\\\\f\"),v.push(\"[\\\\r\\\\n\\\\f]\")}),ce(function(e){e.innerHTML=\"\";var t=C.createElement(\"input\");t.setAttribute(\"type\",\"hidden\"),e.appendChild(t).setAttribute(\"name\",\"D\"),e.querySelectorAll(\"[name=d]\").length&&v.push(\"name\"+M+\"*[*^$|!~]?=\"),2!==e.querySelectorAll(\":enabled\").length&&v.push(\":enabled\",\":disabled\"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(\":disabled\").length&&v.push(\":enabled\",\":disabled\"),e.querySelectorAll(\"*,:x\"),v.push(\",.*:\")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,\"*\"),c.call(e,\"[s!='']:x\"),s.push(\"!=\",F)}),v=v.length&&new RegExp(v.join(\"|\")),s=s.length&&new RegExp(s.join(\"|\")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+\" \"]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0\":{dir:\"parentNode\",first:!0},\" \":{dir:\"parentNode\"},\"+\":{dir:\"previousSibling\",first:!0},\"~\":{dir:\"previousSibling\"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||\"\").replace(te,ne),\"~=\"===e[2]&&(e[3]=\" \"+e[3]+\" \"),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),\"nth\"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*(\"even\"===e[3]||\"odd\"===e[3])),e[5]=+(e[7]+e[8]||\"odd\"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||\"\":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(\")\",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return\"*\"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+\" \"];return t||(t=new RegExp(\"(^|\"+M+\")\"+e+\"(\"+M+\"|$)\"))&&m(e,function(e){return t.test(\"string\"==typeof e.className&&e.className||\"undefined\"!=typeof e.getAttribute&&e.getAttribute(\"class\")||\"\")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?\"!=\"===r:!r||(t+=\"\",\"=\"===r?t===i:\"!=\"===r?t!==i:\"^=\"===r?i&&0===t.indexOf(i):\"*=\"===r?i&&-1\",\"#\"===e.firstChild.getAttribute(\"href\")})||fe(\"type|href|height|width\",function(e,t,n){if(!n)return e.getAttribute(t,\"type\"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML=\"\",e.firstChild.setAttribute(\"value\",\"\"),\"\"===e.firstChild.getAttribute(\"value\")})||fe(\"value\",function(e,t,n){if(!n&&\"input\"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute(\"disabled\")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[\":\"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):\"string\"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,\"string\"==typeof e){if(!(r=\"<\"===e[0]&&\">\"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\\x20\\t\\r\\n\\f]*)/i,he=/^$|^module$|\\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement(\"div\")),(fe=E.createElement(\"input\")).setAttribute(\"type\",\"radio\"),fe.setAttribute(\"checked\",\"checked\"),fe.setAttribute(\"name\",\"t\"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML=\"\",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=\"\",y.option=!!ce.lastChild;var ge={thead:[1,\"\",\"
\"],col:[2,\"\",\"
\"],tr:[2,\"\",\"
\"],td:[3,\"\",\"
\"],_default:[0,\"\",\"\"]};function ve(e,t){var n;return n=\"undefined\"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||\"*\"):\"undefined\"!=typeof e.querySelectorAll?e.querySelectorAll(t||\"*\"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n\",\"\"]);var me=/<|&#?\\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\\s*$/g;function qe(e,t){return A(e,\"table\")&&A(11!==t.nodeType?t:t.firstChild,\"tr\")&&S(e).children(\"tbody\")[0]||e}function Le(e){return e.type=(null!==e.getAttribute(\"type\"))+\"/\"+e.type,e}function He(e){return\"true/\"===(e.type||\"\").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute(\"type\"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,\"handle events\"),s)for(n=0,r=s[i].length;n\").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on(\"load error\",i=function(e){r.remove(),i=null,e&&t(\"error\"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\\?(?=&|$)|\\?\\?/;S.ajaxSetup({jsonp:\"callback\",jsonpCallback:function(){var e=Xt.pop()||S.expando+\"_\"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter(\"json jsonp\",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?\"url\":\"string\"==typeof e.data&&0===(e.contentType||\"\").indexOf(\"application/x-www-form-urlencoded\")&&Vt.test(e.data)&&\"data\");if(a||\"jsonp\"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,\"$1\"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?\"&\":\"?\")+e.jsonp+\"=\"+r),e.converters[\"script json\"]=function(){return o||S.error(r+\" was not called\"),o[0]},e.dataTypes[0]=\"json\",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),\"script\"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument(\"\").body).innerHTML=\"
\",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return\"string\"!=typeof e?[]:(\"boolean\"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument(\"\")).createElement(\"base\")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(\" \");return-1\").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,\"position\"),c=S(e),f={};\"static\"===l&&(e.style.position=\"relative\"),s=c.offset(),o=S.css(e,\"top\"),u=S.css(e,\"left\"),(\"absolute\"===l||\"fixed\"===l)&&-1<(o+u).indexOf(\"auto\")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),\"using\"in t?t.using.call(e,f):(\"number\"==typeof f.top&&(f.top+=\"px\"),\"number\"==typeof f.left&&(f.left+=\"px\"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if(\"fixed\"===S.css(r,\"position\"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&\"static\"===S.css(e,\"position\"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,\"borderTopWidth\",!0),i.left+=S.css(e,\"borderLeftWidth\",!0))}return{top:t.top-i.top-S.css(r,\"marginTop\",!0),left:t.left-i.left-S.css(r,\"marginLeft\",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&\"static\"===S.css(e,\"position\"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:\"pageXOffset\",scrollTop:\"pageYOffset\"},function(t,i){var o=\"pageYOffset\"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each([\"top\",\"left\"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+\"px\":t})}),S.each({Height:\"height\",Width:\"width\"},function(a,s){S.each({padding:\"inner\"+a,content:s,\"\":\"outer\"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||\"boolean\"!=typeof e),i=r||(!0===e||!0===t?\"margin\":\"border\");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf(\"outer\")?e[\"inner\"+a]:e.document.documentElement[\"client\"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body[\"scroll\"+a],r[\"scroll\"+a],e.body[\"offset\"+a],r[\"offset\"+a],r[\"client\"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each([\"ajaxStart\",\"ajaxStop\",\"ajaxComplete\",\"ajaxError\",\"ajaxSuccess\",\"ajaxSend\"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,\"**\"):this.off(t,e||\"**\",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each(\"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu\".split(\" \"),function(e,n){S.fn[n]=function(e,t){return 0=0;u--)f=t[u],n.type(f)===\"string\"&&r.transports[f]||(i.log(\"Invalid transport: \"+f+\", removing it from the transports list.\"),t.splice(u,1));t.length===0&&(i.log(\"No transports remain within the specified transport array.\"),t=null)}else if(r.transports[t]||t===\"auto\"){if(t===\"auto\"&&r._.ieVersion<=8)return[\"longPolling\"]}else i.log(\"Invalid transport: \"+t.toString()+\".\"),t=null;return t}function b(n){return n===\"http:\"?80:n===\"https:\"?443:void 0}function a(n,t){return t.match(/:\\d+$/)?t:t+\":\"+b(n)}function k(t,i){var u=this,r=[];u.tryBuffer=function(i){return t.state===n.signalR.connectionState.connecting?(r.push(i),!0):!1};u.drain=function(){if(t.state===n.signalR.connectionState.connected)while(r.length>0)i(r.shift())};u.clear=function(){r=[]}}var f={nojQuery:\"jQuery was not found. Please ensure jQuery is referenced before the SignalR client JavaScript file.\",noTransportOnInit:\"No transport could be initialized successfully. Try specifying a different transport or none at all for auto initialization.\",errorOnNegotiate:\"Error during negotiation request.\",stoppedWhileLoading:\"The connection was stopped during page load.\",stoppedWhileNegotiating:\"The connection was stopped during the negotiate request.\",errorParsingNegotiateResponse:\"Error parsing negotiate response.\",errorRedirectionExceedsLimit:\"Negotiate redirection limit exceeded.\",errorDuringStartRequest:\"Error during start request. Stopping the connection.\",errorFromServer:\"Error message received from the server: '{0}'.\",stoppedDuringStartRequest:\"The connection was stopped during the start request.\",errorParsingStartResponse:\"Error parsing start response: '{0}'. Stopping the connection.\",invalidStartResponse:\"Invalid start response: '{0}'. Stopping the connection.\",protocolIncompatible:\"You are using a version of the client that isn't compatible with the server. Client version {0}, server version {1}.\",aspnetCoreSignalrServer:\"Detected a connection attempt to an ASP.NET Core SignalR Server. This client only supports connecting to an ASP.NET SignalR Server. See https://aka.ms/signalr-core-differences for details.\",sendFailed:\"Send failed.\",parseFailed:\"Failed at parsing response: {0}\",longPollFailed:\"Long polling request failed.\",eventSourceFailedToConnect:\"EventSource failed to connect.\",eventSourceError:\"Error raised by EventSource\",webSocketClosed:\"WebSocket closed.\",pingServerFailedInvalidResponse:\"Invalid ping response when pinging server: '{0}'.\",pingServerFailed:\"Failed to ping server.\",pingServerFailedStatusCode:\"Failed to ping server. Server responded with status code {0}, stopping the connection.\",pingServerFailedParse:\"Failed to parse ping server response, stopping the connection.\",noConnectionTransport:\"Connection is in an invalid state, there is no transport active.\",webSocketsInvalidState:\"The Web Socket transport is in an invalid state, transitioning into reconnecting.\",reconnectTimeout:\"Couldn't reconnect within the configured timeout of {0} ms, disconnecting.\",reconnectWindowTimeout:\"The client has been inactive since {0} and it has exceeded the inactivity timeout of {1} ms. Stopping the connection.\",jsonpNotSupportedWithAccessToken:\"The JSONP protocol does not support connections that require a Bearer token to connect, such as the Azure SignalR Service.\"};if(typeof n!=\"function\")throw new Error(f.nojQuery);var r,h,o=t.document.readyState===\"complete\",e=n(t),c=\"__Negotiate Aborted__\",u={onStart:\"onStart\",onStarting:\"onStarting\",onReceived:\"onReceived\",onError:\"onError\",onConnectionSlow:\"onConnectionSlow\",onReconnecting:\"onReconnecting\",onReconnect:\"onReconnect\",onStateChanged:\"onStateChanged\",onDisconnect:\"onDisconnect\"},v=function(n,i){if(i!==!1){var r;typeof t.console!=\"undefined\"&&(r=\"[\"+(new Date).toTimeString()+\"] SignalR: \"+n,t.console.debug?t.console.debug(r):t.console.log&&t.console.log(r))}},s=function(t,i,r){return i===t.state?(t.state=r,n(t).triggerHandler(u.onStateChanged,[{oldState:i,newState:r}]),!0):!1},y=function(n){return n.state===r.connectionState.disconnected},l=function(n){return n._.keepAliveData.activated&&n.transport.supportsKeepAlive(n)},p=function(i){var f,e;i._.configuredStopReconnectingTimeout||(e=function(t){var i=r._.format(r.resources.reconnectTimeout,t.disconnectTimeout);t.log(i);n(t).triggerHandler(u.onError,[r._.error(i,\"TimeoutException\")]);t.stop(!1,!1)},i.reconnecting(function(){var n=this;n.state===r.connectionState.reconnecting&&(f=t.setTimeout(function(){e(n)},n.disconnectTimeout))}),i.stateChanged(function(n){n.oldState===r.connectionState.reconnecting&&t.clearTimeout(f)}),i._.configuredStopReconnectingTimeout=!0)};if(r=function(n,t,i){return new r.fn.init(n,t,i)},r._={defaultContentType:\"application/x-www-form-urlencoded; charset=UTF-8\",ieVersion:function(){var i,n;return t.navigator.appName===\"Microsoft Internet Explorer\"&&(n=/MSIE ([0-9]+\\.[0-9]+)/.exec(t.navigator.userAgent),n&&(i=t.parseFloat(n[1]))),i}(),error:function(n,t,i){var r=new Error(n);return r.source=t,typeof i!=\"undefined\"&&(r.context=i),r},transportError:function(n,t,r,u){var f=this.error(n,r,u);return f.transport=t?t.name:i,f},format:function(){for(var t=arguments[0],n=0;n<\\/script>.\");}},typeof e.on==\"function\")e.on(\"load\",function(){o=!0});else e.load(function(){o=!0});r.fn=r.prototype={init:function(t,i,r){var f=n(this);this.url=t;this.qs=i;this.lastError=null;this._={keepAliveData:{},connectingMessageBuffer:new k(this,function(n){f.triggerHandler(u.onReceived,[n])}),lastMessageAt:(new Date).getTime(),lastActiveAt:(new Date).getTime(),beatInterval:5e3,beatHandle:null,totalTransportConnectTimeout:0,redirectQs:null};typeof r==\"boolean\"&&(this.logging=r)},_parseResponse:function(n){var t=this;return n?typeof n==\"string\"?t.json.parse(n):n:n},_originalJson:t.JSON,json:t.JSON,isCrossDomain:function(i,r){var u;return(i=n.trim(i),r=r||t.location,i.indexOf(\"http\")!==0)?!1:(u=t.document.createElement(\"a\"),u.href=i,u.protocol+a(u.protocol,u.host)!==r.protocol+a(r.protocol,r.host))},ajaxDataType:\"text\",contentType:\"application/json; charset=UTF-8\",logging:!1,state:r.connectionState.disconnected,clientProtocol:\"2.1\",supportedProtocols:[\"1.5\",\"2.0\",\"2.1\"],negotiateRedirectSupportedProtocols:[\"2.0\",\"2.1\"],reconnectDelay:2e3,transportConnectTimeout:0,disconnectTimeout:3e4,reconnectWindow:3e4,keepAliveWarnAt:2/3,start:function(i,h){var a=this,v={pingInterval:3e5,waitForPageLoad:!0,transport:\"auto\",jsonp:!1},g,y=a._deferral||n.Deferred(),b=t.document.createElement(\"a\"),nt=function(i,u){i.url===u&&i.baseUrl||(i.url=u,b.href=i.url,b.protocol&&b.protocol!==\":\"?(i.protocol=b.protocol,i.host=b.host):(i.protocol=t.document.location.protocol,i.host=b.host||t.document.location.host),i.baseUrl=i.protocol+\"//\"+i.host,i.wsProtocol=i.protocol===\"https:\"?\"wss://\":\"ws://\",i.url.indexOf(\"//\")===0&&(i.url=t.location.protocol+i.url,i.log(\"Protocol relative URL detected, normalizing it to '\"+i.url+\"'.\")),i.isCrossDomain(i.url)&&(i.log(\"Auto detected cross domain url.\"),v.transport===\"auto\"&&(v.transport=[\"webSockets\",\"serverSentEvents\",\"longPolling\"]),typeof i.withCredentials==\"undefined\"&&(i.withCredentials=!0),n.support.cors||(i.ajaxDataType=\"jsonp\",i.log(\"Using jsonp because this browser doesn't support CORS.\")),i.contentType=r._.defaultContentType))},d,k;if(a.lastError=null,a._deferral=y,!a.json)throw new Error(\"SignalR: No JSON parser found. Please ensure json2.js is referenced before the SignalR.js file if you need to support clients without native JSON parsing support, e.g. IE<8.\");if(n.type(i)===\"function\"?h=i:n.type(i)===\"object\"&&(n.extend(v,i),n.type(v.callback)===\"function\"&&(h=v.callback)),v.transport=w(v.transport,a),!v.transport)throw new Error(\"SignalR: Invalid transport(s) specified, aborting start.\");return(a._.config=v,!o&&v.waitForPageLoad===!0)?(a._.deferredStartHandler=function(){a.start(i,h)},e.bind(\"load\",a._.deferredStartHandler),y.promise()):a.state===r.connectionState.connecting?y.promise():s(a,r.connectionState.disconnected,r.connectionState.connecting)===!1?(y.resolve(a),y.promise()):(p(a),v.transport===\"auto\"&&v.jsonp===!0&&(v.transport=\"longPolling\"),a.withCredentials=v.withCredentials,a._originalUrl=a.url,a.ajaxDataType=v.jsonp?\"jsonp\":\"text\",nt(a,a.url),n(a).bind(u.onStart,function(){n.type(h)===\"function\"&&h.call(a);y.resolve(a)}),a._.initHandler=r.transports._logic.initHandler(a),g=function(i,o){var c=r._.error(f.noTransportOnInit);if(o=o||0,o>=i.length){o===0?a.log(\"No transports supported by the server were selected.\"):o===1?a.log(\"No fallback transports were selected.\"):a.log(\"Fallback transports exhausted.\");n(a).triggerHandler(u.onError,[c]);y.reject(c);a.stop();return}if(a.state!==r.connectionState.disconnected){var p=i[o],h=r.transports[p],v=function(){g(i,o+1)};a.transport=h;try{a._.initHandler.start(h,function(){var f=r._.firefoxMajorVersion(t.navigator.userAgent)>=11,i=!0;a.log(\"The start request succeeded. Transitioning to the connected state.\");l(a)&&r.transports._logic.monitorKeepAlive(a);a._.keepAliveData.activated&&r.transports._logic.startHeartbeat(a);r._.configurePingInterval(a);s(a,r.connectionState.connecting,r.connectionState.connected)||a.log(\"WARNING! The connection was not in the connecting state.\");a._.connectingMessageBuffer.drain();n(a).triggerHandler(u.onStart);e.bind(\"unload\",function(){a.log(\"Window unloading, stopping the connection.\");a.stop(i)});f&&e.bind(\"beforeunload\",function(){t.setTimeout(function(){a.stop(i)},0)})},v)}catch(w){a.log(h.name+\" transport threw '\"+w.message+\"' when attempting to start.\");v()}}},d=a.url+\"/negotiate\",k=function(t,i){var e=r._.error(f.errorOnNegotiate,t,i._.negotiateRequest);n(i).triggerHandler(u.onError,e);y.reject(e);i.stop()},n(a).triggerHandler(u.onStarting),d=r.transports._logic.prepareQueryString(a,d),a.log(\"Negotiating with '\"+d+\"'.\"),a._.negotiateRequest=function(){var t,h=0,w=100,i,e,o=[],s=[],l=function(n,t){var u=r.transports._logic.prepareQueryString(n,n.url+\"/negotiate\"),i;return n.log(\"Negotiating with '\"+u+\"'.\"),i={url:u,error:function(t,i){i!==c?k(t,n):y.reject(r._.error(f.stoppedWhileNegotiating,null,n._.negotiateRequest))},success:t},n.accessToken&&(i.headers={Authorization:\"Bearer \"+n.accessToken}),r.transports._logic.ajax(n,i)},p=function(c){try{t=a._parseResponse(c)}catch(d){k(r._.error(f.errorParsingNegotiateResponse,d),a);return}if(t.availableTransports){e=r._.error(f.aspnetCoreSignalrServer);n(a).triggerHandler(u.onError,[e]);y.reject(e);return}if(!t.ProtocolVersion||a.supportedProtocols.indexOf(t.ProtocolVersion)===-1){e=r._.error(r._.format(f.protocolIncompatible,a.clientProtocol,t.ProtocolVersion));n(a).triggerHandler(u.onError,[e]);y.reject(e);return}if(a.negotiateRedirectSupportedProtocols.indexOf(t.ProtocolVersion)!==-1){if(t.Error){e=r._.error(r._.format(f.errorFromServer,t.Error));n(a).triggerHandler(u.onError,[e]);y.reject(e);return}if(t.RedirectUrl){if(h===w){k(r._.error(f.errorRedirectionExceedsLimit),a);return}v.transport===\"auto\"&&(v.transport=[\"webSockets\",\"serverSentEvents\",\"longPolling\"]);a.log(\"Received redirect to: \"+t.RedirectUrl);a.accessToken=t.AccessToken;var b=t.RedirectUrl.split(\"?\",2);if(nt(a,b[0]),a._.redirectQs=b.length===2?b[1]:null,a.ajaxDataType===\"jsonp\"&&a.accessToken){k(r._.error(f.jsonpNotSupportedWithAccessToken),a);return}h++;l(a,p);return}}i=a._.keepAliveData;a.appRelativeUrl=t.Url;a.id=t.ConnectionId;a.token=t.ConnectionToken;a.webSocketServerUrl=t.WebSocketServerUrl;a._.pollTimeout=t.ConnectionTimeout*1e3+1e4;a.disconnectTimeout=t.DisconnectTimeout*1e3;a._.totalTransportConnectTimeout=a.transportConnectTimeout+t.TransportConnectTimeout*1e3;t.KeepAliveTimeout?(i.activated=!0,i.timeout=t.KeepAliveTimeout*1e3,i.timeoutWarning=i.timeout*a.keepAliveWarnAt,a._.beatInterval=(i.timeout-i.timeoutWarning)/3):i.activated=!1;a.reconnectWindow=a.disconnectTimeout+(i.timeout||0);n.each(r.transports,function(n){if(n.indexOf(\"_\")===0||n===\"webSockets\"&&!t.TryWebSockets)return!0;s.push(n)});n.isArray(v.transport)?n.each(v.transport,function(t,i){n.inArray(i,s)>=0&&o.push(i)}):v.transport===\"auto\"?o=s:n.inArray(v.transport,s)>=0&&o.push(v.transport);g(o)};return l(a,p)}(),y.promise())},starting:function(t){var i=this;return n(i).bind(u.onStarting,function(){t.call(i)}),i},send:function(n){var t=this;if(t.state===r.connectionState.disconnected)throw new Error(\"SignalR: Connection must be started before data can be sent. Call .start() before .send()\");if(t.state===r.connectionState.connecting)throw new Error(\"SignalR: Connection has not been fully initialized. Use .start().done() or .start().fail() to run logic after the connection has started.\");return t.transport.send(t,n),t},received:function(t){var i=this;return n(i).bind(u.onReceived,function(n,r){t.call(i,r)}),i},stateChanged:function(t){var i=this;return n(i).bind(u.onStateChanged,function(n,r){t.call(i,r)}),i},error:function(t){var i=this;return n(i).bind(u.onError,function(n,r,u){i.lastError=r;t.call(i,r,u)}),i},disconnected:function(t){var i=this;return n(i).bind(u.onDisconnect,function(){t.call(i)}),i},connectionSlow:function(t){var i=this;return n(i).bind(u.onConnectionSlow,function(){t.call(i)}),i},reconnecting:function(t){var i=this;return n(i).bind(u.onReconnecting,function(){t.call(i)}),i},reconnected:function(t){var i=this;return n(i).bind(u.onReconnect,function(){t.call(i)}),i},stop:function(i,h){var a=this,v=a._deferral;if(a._.deferredStartHandler&&e.unbind(\"load\",a._.deferredStartHandler),delete a._.config,delete a._.deferredStartHandler,!o&&(!a._.config||a._.config.waitForPageLoad===!0)){a.log(\"Stopping connection prior to negotiate.\");v&&v.reject(r._.error(f.stoppedWhileLoading));return}if(a.state!==r.connectionState.disconnected)return a.log(\"Stopping connection.\"),t.clearTimeout(a._.beatHandle),t.clearInterval(a._.pingIntervalId),a.transport&&(a.transport.stop(a),h!==!1&&a.transport.abort(a,i),l(a)&&r.transports._logic.stopMonitoringKeepAlive(a),a.transport=null),a._.negotiateRequest&&(a._.negotiateRequest.abort(c),delete a._.negotiateRequest),a._.initHandler&&a._.initHandler.stop(),delete a._deferral,delete a.messageId,delete a.groupsToken,delete a.id,delete a._.pingIntervalId,delete a._.lastMessageAt,delete a._.lastActiveAt,a._.connectingMessageBuffer.clear(),n(a).unbind(u.onStart),delete a.accessToken,delete a.protocol,delete a.host,delete a.baseUrl,delete a.wsProtocol,delete a.contentType,a.url=a._originalUrl,a._.redirectQs=null,s(a,a.state,r.connectionState.disconnected),n(a).triggerHandler(u.onDisconnect),a},log:function(n){v(n,this.logging)}};r.fn.init.prototype=r.fn;r.noConflict=function(){return n.connection===r&&(n.connection=h),r};n.connection&&(h=n.connection);n.connection=n.signalR=r})(window.jQuery,window),function(n,t,i){function s(n){n._.keepAliveData.monitoring&&l(n);u.markActive(n)&&(n._.beatHandle=t.setTimeout(function(){s(n)},n._.beatInterval))}function l(t){var i=t._.keepAliveData,u;t.state===r.connectionState.connected&&(u=(new Date).getTime()-t._.lastMessageAt,u>=i.timeout?(t.log(\"Keep alive timed out. Notifying transport that connection has been lost.\"),t.transport.lostConnection(t)):u>=i.timeoutWarning?i.userNotified||(t.log(\"Keep alive has been missed, connection may be dead/slow.\"),n(t).triggerHandler(f.onConnectionSlow),i.userNotified=!0):i.userNotified=!1)}function e(n,t){var i=n.url+t;return n.transport&&(i+=\"?transport=\"+n.transport.name),u.prepareQueryString(n,i)}function h(n){this.connection=n;this.startRequested=!1;this.startCompleted=!1;this.connectionStopped=!1}var r=n.signalR,f=n.signalR.events,c=n.signalR.changeState,o=\"__Start Aborted__\",u;r.transports={};h.prototype={start:function(n,r,u){var f=this,e=f.connection,o=!1;if(f.startRequested||f.connectionStopped){e.log(\"WARNING! \"+n.name+\" transport cannot be started. Initialization ongoing or completed.\");return}e.log(n.name+\" transport starting.\");n.start(e,function(){o||f.initReceived(n,r)},function(t){return o||(o=!0,f.transportFailed(n,t,u)),!f.startCompleted||f.connectionStopped});f.transportTimeoutHandle=t.setTimeout(function(){o||(o=!0,e.log(n.name+\" transport timed out when trying to connect.\"),f.transportFailed(n,i,u))},e._.totalTransportConnectTimeout)},stop:function(){this.connectionStopped=!0;t.clearTimeout(this.transportTimeoutHandle);r.transports._logic.tryAbortStartRequest(this.connection)},initReceived:function(n,i){var u=this,f=u.connection;if(u.startRequested){f.log(\"WARNING! The client received multiple init messages.\");return}u.connectionStopped||(u.startRequested=!0,t.clearTimeout(u.transportTimeoutHandle),f.log(n.name+\" transport connected. Initiating start request.\"),r.transports._logic.ajaxStart(f,function(){u.startCompleted=!0;i()}))},transportFailed:function(i,u,e){var o=this.connection,h=o._deferral,s;this.connectionStopped||(t.clearTimeout(this.transportTimeoutHandle),this.startRequested?this.startCompleted||(s=r._.error(r.resources.errorDuringStartRequest,u),o.log(i.name+\" transport failed during the start request. Stopping the connection.\"),n(o).triggerHandler(f.onError,[s]),h&&h.reject(s),o.stop()):(i.stop(o),o.log(i.name+\" transport failed to connect. Attempting to fall back.\"),e()))}};u=r.transports._logic={ajax:function(t,i){return n.ajax(n.extend(!0,{},n.signalR.ajaxDefaults,{type:\"GET\",data:{},xhrFields:{withCredentials:t.withCredentials},contentType:t.contentType,dataType:t.ajaxDataType},i))},pingServer:function(t){var e,f,i=n.Deferred();return t.transport?(e=t.url+\"/ping\",e=u.addQs(e,t.qs),f=u.ajax(t,{url:e,headers:t.accessToken?{Authorization:\"Bearer \"+t.accessToken}:{},success:function(n){var u;try{u=t._parseResponse(n)}catch(e){i.reject(r._.transportError(r.resources.pingServerFailedParse,t.transport,e,f));t.stop();return}u.Response===\"pong\"?i.resolve():i.reject(r._.transportError(r._.format(r.resources.pingServerFailedInvalidResponse,n),t.transport,null,f))},error:function(n){n.status===401||n.status===403?(i.reject(r._.transportError(r._.format(r.resources.pingServerFailedStatusCode,n.status),t.transport,n,f)),t.stop()):i.reject(r._.transportError(r.resources.pingServerFailed,t.transport,n,f))}})):i.reject(r._.transportError(r.resources.noConnectionTransport,t.transport)),i.promise()},prepareQueryString:function(n,i){var r;return r=u.addQs(i,\"clientProtocol=\"+n.clientProtocol),r=typeof n._.redirectQs==\"string\"?u.addQs(r,n._.redirectQs):u.addQs(r,n.qs),n.token&&(r+=\"&connectionToken=\"+t.encodeURIComponent(n.token)),n.data&&(r+=\"&connectionData=\"+t.encodeURIComponent(n.data)),r},addQs:function(t,i){var r=t.indexOf(\"?\")!==-1?\"&\":\"?\",u;if(!i)return t;if(typeof i==\"object\")return t+r+n.param(i);if(typeof i==\"string\")return u=i.charAt(0),(u===\"?\"||u===\"&\")&&(r=\"\"),t+r+i;throw new Error(\"Query string property must be either a string or object.\");},getUrl:function(n,i,r,f,e){var h=i===\"webSockets\"?\"\":n.baseUrl,o=h+n.appRelativeUrl,s=\"transport=\"+i;return!e&&n.groupsToken&&(s+=\"&groupsToken=\"+t.encodeURIComponent(n.groupsToken)),r?(o+=f?\"/poll\":\"/reconnect\",!e&&n.messageId&&(s+=\"&messageId=\"+t.encodeURIComponent(n.messageId))):o+=\"/connect\",o+=\"?\"+s,o=u.prepareQueryString(n,o),n.transport&&n.accessToken&&(n.transport.name===\"serverSentEvents\"||n.transport.name===\"webSockets\")&&(o+=\"&access_token=\"+t.encodeURIComponent(n.accessToken)),e||(o+=\"&tid=\"+Math.floor(Math.random()*11)),o},maximizePersistentResponse:function(n){return{MessageId:n.C,Messages:n.M,Initialized:typeof n.S!=\"undefined\"?!0:!1,ShouldReconnect:typeof n.T!=\"undefined\"?!0:!1,LongPollDelay:n.L,GroupsToken:n.G,Error:n.E}},updateGroups:function(n,t){t&&(n.groupsToken=t)},stringifySend:function(n,t){return typeof t==\"string\"||typeof t==\"undefined\"||t===null?t:n.json.stringify(t)},ajaxSend:function(t,i){var h=u.stringifySend(t,i),c=e(t,\"/send\"),o,s=function(t,u){n(u).triggerHandler(f.onError,[r._.transportError(r.resources.sendFailed,u.transport,t,o),i])};return o=u.ajax(t,{url:c,type:t.ajaxDataType===\"jsonp\"?\"GET\":\"POST\",contentType:r._.defaultContentType,headers:t.accessToken?{Authorization:\"Bearer \"+t.accessToken}:{},data:{data:h},success:function(n){var i;if(n){try{i=t._parseResponse(n)}catch(r){s(r,t);t.stop();return}u.triggerReceived(t,i)}},error:function(n,i){i!==\"abort\"&&i!==\"parsererror\"&&s(n,t)}})},ajaxAbort:function(n,i){if(typeof n.transport!=\"undefined\"){i=typeof i==\"undefined\"?!0:i;var r=e(n,\"/abort\"),f=n.accessToken?{Authorization:\"Bearer \"+n.accessToken}:{};t.fetch?t.fetch(r,{method:\"POST\",keepalive:!0,headers:f}):u.ajax(n,{url:r,async:i,timeout:1e3,type:\"POST\",headers:f,dataType:\"text\"});n.log(\"Fired ajax abort async = \"+i+\".\")}},ajaxStart:function(t,i){var h=function(n){var i=t._deferral;i&&i.reject(n)},s=function(i){t.log(\"The start request failed. Stopping the connection.\");n(t).triggerHandler(f.onError,[i]);h(i);t.stop()};t._.startRequest=u.ajax(t,{url:e(t,\"/start\"),headers:t.accessToken?{Authorization:\"Bearer \"+t.accessToken}:{},success:function(n,u,f){var e;try{e=t._parseResponse(n)}catch(o){s(r._.error(r._.format(r.resources.errorParsingStartResponse,n),o,f));return}e.Response===\"started\"?i():s(r._.error(r._.format(r.resources.invalidStartResponse,n),null,f))},error:function(n,i,u){i!==o?s(r._.error(r.resources.errorDuringStartRequest,u,n)):(t.log(\"The start request aborted because connection.stop() was called.\"),h(r._.error(r.resources.stoppedDuringStartRequest,null,n)))}})},tryAbortStartRequest:function(n){n._.startRequest&&(n._.startRequest.abort(o),delete n._.startRequest)},tryInitialize:function(n,t,i){t.Initialized&&i?i():t.Initialized&&n.log(\"WARNING! The client received an init message after reconnecting.\")},triggerReceived:function(t,i){t._.connectingMessageBuffer.tryBuffer(i)||n(t).triggerHandler(f.onReceived,[i])},processMessages:function(t,i,f){var e;if(i&&typeof i.I!=\"undefined\"){u.triggerReceived(t,i);return}if(u.markLastMessage(t),i){if(e=u.maximizePersistentResponse(i),e.Error){t.log(\"Received an error message from the server: \"+i.E);n(t).triggerHandler(r.events.onError,[r._.error(i.E,\"ServerError\")]);t.stop(!1,!1);return}u.updateGroups(t,e.GroupsToken);e.MessageId&&(t.messageId=e.MessageId);e.Messages&&(n.each(e.Messages,function(n,i){u.triggerReceived(t,i)}),u.tryInitialize(t,e,f))}},monitorKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring?t.log(\"Tried to monitor keep alive but it's already being monitored.\"):(i.monitoring=!0,u.markLastMessage(t),t._.keepAliveData.reconnectKeepAliveUpdate=function(){u.markLastMessage(t)},n(t).bind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t.log(\"Now monitoring keep alive with a warning timeout of \"+i.timeoutWarning+\", keep alive timeout of \"+i.timeout+\" and disconnecting timeout of \"+t.disconnectTimeout))},stopMonitoringKeepAlive:function(t){var i=t._.keepAliveData;i.monitoring&&(i.monitoring=!1,n(t).unbind(f.onReconnect,t._.keepAliveData.reconnectKeepAliveUpdate),t._.keepAliveData={},t.log(\"Stopping the monitoring of the keep alive.\"))},startHeartbeat:function(n){n._.lastActiveAt=(new Date).getTime();s(n)},markLastMessage:function(n){n._.lastMessageAt=(new Date).getTime();n._.lastActiveAt=n._.lastMessageAt},markActive:function(n){return u.verifyLastActive(n)?(n._.lastActiveAt=(new Date).getTime(),!0):!1},isConnectedOrReconnecting:function(n){return n.state===r.connectionState.connected||n.state===r.connectionState.reconnecting},ensureReconnectingState:function(t){return c(t,r.connectionState.connected,r.connectionState.reconnecting)===!0&&n(t).triggerHandler(f.onReconnecting),t.state===r.connectionState.reconnecting},clearReconnectTimeout:function(n){n&&n._.reconnectTimeout&&(t.clearTimeout(n._.reconnectTimeout),delete n._.reconnectTimeout)},verifyLastActive:function(t){if(!t._.keepAliveData.activated||(new Date).getTime()-t._.lastActiveAt0&&n--}}}();r.transports.foreverFrame={name:\"foreverFrame\",supportsKeepAlive:function(){return!0},iframeClearThreshold:50,start:function(n,r,e){if(n.accessToken){e&&(n.log(\"Forever Frame does not support connections that require a Bearer token to connect, such as the Azure SignalR Service.\"),e());return}var l=this,s=i.foreverFrame.count+=1,h,o=u(),c=function(){n.log(\"Forever frame iframe finished loading and is no longer receiving messages.\");e&&e()||l.reconnect(n)};if(t.EventSource){e&&(n.log(\"Forever Frame is not supported by SignalR on browsers with SSE support.\"),e());return}o.setAttribute(\"data-signalr-connection-id\",n.id);f.prevent();h=i.getUrl(n,this.name);h+=\"&frameId=\"+s;t.document.documentElement.appendChild(o);n.log(\"Binding to iframe's load event.\");o.addEventListener?o.addEventListener(\"load\",c,!1):o.attachEvent&&o.attachEvent(\"onload\",c);o.src=h;i.foreverFrame.connections[s]=n;n.frame=o;n.frameId=s;r&&(n.onSuccess=function(){n.log(\"Iframe transport started.\");r()})},reconnect:function(n){var r=this;i.isConnectedOrReconnecting(n)&&i.verifyLastActive(n)&&t.setTimeout(function(){if(i.verifyLastActive(n)&&n.frame&&i.ensureReconnectingState(n)){var u=n.frame,t=i.getUrl(n,r.name,!0)+\"&frameId=\"+n.frameId;n.log(\"Updating iframe src to '\"+t+\"'.\");u.src=t}},n.reconnectDelay)},lostConnection:function(n){this.reconnect(n)},send:function(n,t){i.ajaxSend(n,t)},receive:function(t,u){var f,e,o;if(t.json!==t._originalJson&&(u=t._originalJson.stringify(u)),o=t._parseResponse(u),i.processMessages(t,o,t.onSuccess),t.state===n.signalR.connectionState.connected&&(t.frameMessageCount=(t.frameMessageCount||0)+1,t.frameMessageCount>r.transports.foreverFrame.iframeClearThreshold&&(t.frameMessageCount=0,f=t.frame.contentWindow||t.frame.contentDocument,f&&f.document&&f.document.body)))for(e=f.document.body;e.firstChild;)e.removeChild(e.firstChild)},stop:function(n){var r=null;if(f.cancel(),n.frame){if(n.frame.stop)n.frame.stop();else try{r=n.frame.contentWindow||n.frame.contentDocument;r.document&&r.document.execCommand&&r.document.execCommand(\"Stop\")}catch(u){n.log(\"Error occurred when stopping foreverFrame transport. Message = \"+u.message+\".\")}n.frame.parentNode===t.document.documentElement&&t.document.documentElement.removeChild(n.frame);delete i.foreverFrame.connections[n.frameId];n.frame=null;n.frameId=null;delete n.frame;delete n.frameId;delete n.onSuccess;delete n.frameMessageCount;n.log(\"Stopping forever frame.\")}},abort:function(n,t){i.ajaxAbort(n,t)},getConnection:function(n){return i.foreverFrame.connections[n]},started:function(t){o(t,r.connectionState.reconnecting,r.connectionState.connected)===!0&&n(t).triggerHandler(e.onReconnect)}}}(window.jQuery,window),function(n,t){var r=n.signalR,u=n.signalR.events,e=n.signalR.changeState,f=n.signalR.isDisconnecting,i=r.transports._logic;r.transports.longPolling={name:\"longPolling\",supportsKeepAlive:function(){return!1},reconnectDelay:3e3,start:function(o,s,h){var a=this,v=function(){v=n.noop;o.log(\"LongPolling connected.\");s?s():o.log(\"WARNING! The client received an init message after reconnecting.\")},y=function(n){return h(n)?(o.log(\"LongPolling failed to connect.\"),!0):!1},c=o._,l=0,p=function(i){t.clearTimeout(c.reconnectTimeoutId);c.reconnectTimeoutId=null;e(i,r.connectionState.reconnecting,r.connectionState.connected)===!0&&(i.log(\"Raising the reconnect event\"),n(i).triggerHandler(u.onReconnect))},w=36e5;o.pollXhr&&(o.log(\"Polling xhr requests already exists, aborting.\"),o.stop());o.messageId=null;c.reconnectTimeoutId=null;c.pollTimeoutId=t.setTimeout(function(){(function e(s,h){var g=s.messageId,nt=g===null,k=!nt,tt=!h,d=i.getUrl(s,a.name,k,tt,!0),b={};(s.messageId&&(b.messageId=s.messageId),s.groupsToken&&(b.groupsToken=s.groupsToken),f(s)!==!0)&&(o.log(\"Opening long polling request to '\"+d+\"'.\"),s.pollXhr=i.ajax(o,{xhrFields:{onprogress:function(){i.markLastMessage(o)}},url:d,type:\"POST\",contentType:r._.defaultContentType,data:b,timeout:o._.pollTimeout,headers:o.accessToken?{Authorization:\"Bearer \"+o.accessToken}:{},success:function(r){var h,w=0,u,a;o.log(\"Long poll complete.\");l=0;try{h=o._parseResponse(r)}catch(b){i.handleParseFailure(s,r,b,y,s.pollXhr);return}(c.reconnectTimeoutId!==null&&p(s),h&&(u=i.maximizePersistentResponse(h)),i.processMessages(s,h,v),u&&n.type(u.LongPollDelay)===\"number\"&&(w=u.LongPollDelay),f(s)!==!0)&&(a=u&&u.ShouldReconnect,!a||i.ensureReconnectingState(s))&&(w>0?c.pollTimeoutId=t.setTimeout(function(){e(s,a)},w):e(s,a))},error:function(f,h){var v=r._.transportError(r.resources.longPollFailed,o.transport,f,s.pollXhr);if(t.clearTimeout(c.reconnectTimeoutId),c.reconnectTimeoutId=null,h===\"abort\"){o.log(\"Aborted xhr request.\");return}if(!y(v)){if(l++,o.state!==r.connectionState.reconnecting&&(o.log(\"An error occurred using longPolling. Status = \"+h+\". Response = \"+f.responseText+\".\"),n(s).triggerHandler(u.onError,[v])),(o.state===r.connectionState.connected||o.state===r.connectionState.reconnecting)&&!i.verifyLastActive(o))return;if(!i.ensureReconnectingState(s))return;c.pollTimeoutId=t.setTimeout(function(){e(s,!0)},a.reconnectDelay)}}}),k&&h===!0&&(c.reconnectTimeoutId=t.setTimeout(function(){p(s)},Math.min(1e3*(Math.pow(2,l)-1),w))))})(o)},250)},lostConnection:function(n){n.pollXhr&&n.pollXhr.abort(\"lostConnection\")},send:function(n,t){i.ajaxSend(n,t)},stop:function(n){t.clearTimeout(n._.pollTimeoutId);t.clearTimeout(n._.reconnectTimeoutId);delete n._.pollTimeoutId;delete n._.reconnectTimeoutId;n.pollXhr&&(n.pollXhr.abort(),n.pollXhr=null,delete n.pollXhr)},abort:function(n,t){i.ajaxAbort(n,t)}}}(window.jQuery,window),function(n){function r(n){return n+s}function c(n,t,i){for(var f=n.length,u=[],r=0;r=0}function i(n,t){return new i.fn.init(n,t)}function t(i,r){var u={qs:null,logging:!1,useDefaultPath:!0};return n.extend(u,r),(!i||u.useDefaultPath)&&(i=(i||\"\")+\"/signalr\"),new t.fn.init(i,u)}var o=0,s=\".hubProxy\",h=n.signalR;i.fn=i.prototype={init:function(n,t){this.state={};this.connection=n;this.hubName=t;this._={callbackMap:{}}},constructor:i,hasSubscriptions:function(){return u(this._.callbackMap)},on:function(t,i,u){var c=this,l=c._.callbackMap,v=!u&&e(i),f,h,s,a;for(u=u||i,u._signalRGuid||(u._signalRGuid=o++),t=t.toLowerCase(),f=l[t],f||(f=[],l[t]=f),s=0;s>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","/* \r\n CanvasJS Chart - v3.8.8 GA - https://canvasjs.com/ \r\n Copyright 2024 fenopix\r\n\r\n --------------------- License Information --------------------\r\n CanvasJS Chart is a commercial product which requires purchase of license. Without a commercial license you can use it for evaluation purposes for upto 30 days. Please refer to the following link for further details.\r\n https://canvasjs.com/license/\r\n\r\n\r\n ---------------------Free for Non-Commercial Use--------------------\r\n \r\n For non-commercial purposes you can use the software for free under Creative Commons Attribution-NonCommercial 3.0 License.\r\n A credit Link is added to the chart which should be preserved. Refer to the following link for further details on the same.\r\n https://creativecommons.org/licenses/by-nc/3.0/deed.en_US\r\n */\r\n\r\n/*tslint:disable*/\r\n/*eslint-disable*/\r\n/*jshint ignore:start*/\r\n(function(){function qa(d,l){d.prototype=eb(l.prototype);d.prototype.constructor=d;d.base=l.prototype}function eb(d){function l(){}l.prototype=d;return new l}function Za(d,l,S){\"millisecond\"===S?d.setMilliseconds(d.getMilliseconds()+1*l):\"second\"===S?d.setSeconds(d.getSeconds()+1*l):\"minute\"===S?d.setMinutes(d.getMinutes()+1*l):\"hour\"===S?d.setHours(d.getHours()+1*l):\"day\"===S?d.setDate(d.getDate()+1*l):\"week\"===S?d.setDate(d.getDate()+7*l):\"month\"===S?d.setMonth(d.getMonth()+1*l):\"year\"===S&&d.setFullYear(d.getFullYear()+\n1*l);return d}function da(d,l){var S=!1;0>d&&(S=!0,d*=-1);d=\"\"+d;for(l=l?l:1;d.length>16).toString(16),S=((d&65280)>>8).toString(16);d=((d&255)>>0).toString(16);l=2>l.length?\"0\"+l:l;S=2>S.length?\"0\"+S:S;d=2>d.length?\"0\"+d:d;return\"#\"+l+S+d}function fb(d,l){var S=this.length>>>0,n=Number(l)||0,n=0>n?Math.ceil(n):\nMath.floor(n);for(0>n&&(n+=S);n=navigator.userAgent.search(\"MSIE\")&&d._menuButton.childNodes[0]&&L(d._menuButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"})):xa(d._menuButton);else if(d.exportEnabled&&v){var l=!1;d._menuButton=document.createElement(\"button\");ta(d,d._menuButton,\"menu\");d._toolBar.appendChild(d._menuButton);\nJ(d._menuButton,\"touchstart\",function(d){l=!0},d.allDOMEventHandlers);J(d._menuButton,\"click\",function(){\"none\"!==d._dropdownMenu.style.display||d._dropDownCloseTime&&500>=(new Date).getTime()-d._dropDownCloseTime.getTime()||(d._dropdownMenu.style.display=\"block\",d._menuButton.blur(),d._dropdownMenu.focus())},d.allDOMEventHandlers,!0);J(d._menuButton,\"mousemove\",function(){l||(L(d._menuButton,{backgroundColor:d.toolbar.itemBackgroundColorOnHover,color:d.toolbar.fontColorOnHover}),0>=navigator.userAgent.search(\"MSIE\")&&\nL(d._menuButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},d.allDOMEventHandlers,!0);J(d._menuButton,\"mouseout\",function(){l||(L(d._menuButton,{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor}),0>=navigator.userAgent.search(\"MSIE\")&&L(d._menuButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},d.allDOMEventHandlers,!0)}if(d.exportEnabled&&d._dropdownMenu){var n=d.theme&&-1!==d.theme.indexOf(\"dark\")?\"black\":\"#888888\";L(d._dropdownMenu,\n{backgroundColor:d.toolbar.itemBackgroundColor,color:d.toolbar.fontColor,boxShadow:\"2px 2px 10px \"+n});for(var n=d._dropdownMenu.childNodes,V=[d._cultureInfo.printText,d._cultureInfo.saveJPGText,d._cultureInfo.savePNGText],$=0;$n;n++)if(d[n]!==d[n+4]|d[n]!==d[n+8]|d[n]!==d[n+12]){l=!1;break}return l?d[0]<<16|d[1]<<8|d[2]:0}function na(d,l,n){return d in l?l[d]:n[d]}function Na(d,l,S,V){v&&cb?(V=!n(V)&&V?d.getContext(\"2d\",{willReadFrequently:!0}):d.getContext(\"2d\"),\nOa=V.webkitBackingStorePixelRatio||V.mozBackingStorePixelRatio||V.msBackingStorePixelRatio||V.oBackingStorePixelRatio||V.backingStorePixelRatio||1,ma=Ua/Oa,d.width=l*ma,d.height=S*ma,Ua!==Oa&&(d.style.width=l+\"px\",d.style.height=S+\"px\",V.scale(ma,ma))):(d.width=l,d.height=S)}function jb(d){if(!kb){var l=!1,n=!1;\"undefined\"===typeof ra.Chart.creditHref?(d.creditHref=ja(\"iuuqr;..b`ow`rkr/bnl.\"),d.creditText=ja(\"B`ow`rKR/bnl\")):(l=d.updateOption(\"creditText\"),n=d.updateOption(\"creditHref\"));if(d.creditHref&&\nd.creditText){d._creditLink||(d._creditLink=document.createElement(\"a\"),d._creditLink.setAttribute(\"class\",\"canvasjs-chart-credit\"),d._creditLink.setAttribute(\"title\",\"JavaScript Charts\"),L(d._creditLink,{outline:\"none\",margin:\"0px\",position:\"absolute\",right:\"2px\",top:d.height-14+\"px\",color:\"dimgrey\",textDecoration:\"none\",fontSize:\"11px\",fontFamily:\"Calibri, Lucida Grande, Lucida Sans Unicode, Arial, sans-serif\"}),d._creditLink.setAttribute(\"tabIndex\",-1),d._creditLink.setAttribute(\"target\",\"_blank\"));\nif(0===d.renderCount||l||n)d._creditLink.setAttribute(\"href\",d.creditHref),d._creditLink.innerHTML=d.creditText;d._creditLink&&d.creditHref&&d.creditText?(d._creditLink.parentElement||d._canvasJSContainer.appendChild(d._creditLink),d._creditLink.style.top=d.height-14+\"px\"):d._creditLink.parentElement&&d._canvasJSContainer.removeChild(d._creditLink)}}}function va(d,l,n){Ia&&(this.canvasCount|=0,window.console.log(++this.canvasCount));var V=document.createElement(\"canvas\");V.setAttribute(\"class\",\"canvasjs-chart-canvas\");\nNa(V,d,l,n);v||\"undefined\"===typeof G_vmlCanvasManager||G_vmlCanvasManager.initElement(V);return V}function L(d,l){for(var n in l)d.style[n]=l[n]}function ta(d,l,n){l.getAttribute(\"state\")||(l.style.backgroundColor=d.toolbar.itemBackgroundColor,l.style.color=d.toolbar.fontColor,l.style.border=\"none\",L(l,{WebkitUserSelect:\"none\",MozUserSelect:\"none\",msUserSelect:\"none\",userSelect:\"none\"}));l.getAttribute(\"state\")!==n&&(l.setAttribute(\"state\",n),l.setAttribute(\"type\",\"button\"),L(l,{padding:\"5px 12px\",\ncursor:\"pointer\",\"float\":\"left\",width:\"40px\",height:\"25px\",outline:\"0px\",verticalAlign:\"baseline\",lineHeight:\"0\"}),l.innerHTML=\"\"+d._cultureInfo[n+\"Text\"]+\"\",L(l.childNodes[0],{height:\"95%\",pointerEvents:\"none\"}));l.setAttribute(\"title\",d._cultureInfo[n+\"Text\"])}function Ma(){for(var d=null,l=0;lg?\"a\":\"p\";case \"tt\":return 12>g?\"am\":\"pm\";case \"T\":return 12>g?\"A\":\"P\";case \"TT\":return 12>g?\"AM\":\"PM\";case \"K\":return L?\"UTC\":(String(A).match(t)||\n[\"\"]).pop().replace(D,\"\");case \"z\":return(0d;if(1>Math.abs(d)){var n=parseInt(d.toString().split(\"e-\")[1]);n&&(d=(l?-1*d:d)*Math.pow(10,n-1),d=\"0.\"+Array(n).join(\"0\")+d.toString().substring(2),d=l?\"-\"+d:d)}else n=parseInt(d.toString().split(\"+\")[1]),\n20d?!0:!1;v&&(d*=-1);var $=n?n.decimalSeparator:\".\",t=n?n.digitGroupSeparator:\",\",D=\"\";l=String(l);var D=1,A=n=\"\",H=-1,P=[],R=[],O=0,L=0,J=0,T=!1,Z=0,A=l.match(/\"[^\"]*\"|'[^']*'|[eE][+-]*[0]+|[,]+[.]|\\u2030|./g);l=null;for(var N=0;A&&NH)H=N;else{if(\"%\"===l)D*=100;else if(\"\\u2030\"===l){D*=1E3;continue}else if(\",\"===\nl[0]&&\".\"===l[l.length-1]){D/=Math.pow(1E3,l.length-1);H=N+l.length-1;continue}else\"E\"!==l[0]&&\"e\"!==l[0]||\"0\"!==l[l.length-1]||(T=!0);0>H?(P.push(l),\"#\"===l||\"0\"===l?O++:\",\"===l&&J++):(R.push(l),\"#\"!==l&&\"0\"!==l||L++)}T&&(l=Math.floor(d),A=-Math.floor(Math.log(d)/Math.LN10+1),Z=0===d?0:0===l?-(O+A):ob(l).length-O,D/=Math.pow(10,Z));0>H&&(H=N);D=(d*D).toFixed(L);l=D.split(\".\");D=(l[0]+\"\").split(\"\");d=(l[1]+\"\").split(\"\");D&&\"0\"===D[0]&&D.shift();for(T=A=N=L=H=0;0Z?l.replace(\"+\",\n\"\").replace(\"-\",\"\"):l.replace(\"-\",\"\"),n+=l.replace(/[0]+/,function(a){return da(Z,a.length)}));t=\"\";for(P=!1;0Z?l.replace(\"+\",\"\").replace(\"-\",\"\"):l.replace(\"-\",\"\"),t+=l.replace(/[0]+/,function(a){return da(Z,\na.length)}));n+=(P?$:\"\")+t;return v?\"-\"+n:n},Qa=function(d){var l=0,n=0;d=d||window.event;d.offsetX||0===d.offsetX?(l=d.offsetX,n=d.offsetY):d.layerX||0==d.layerX?(l=d.layerX,n=d.layerY):(l=d.pageX-d.target.offsetLeft,n=d.pageY-d.target.offsetTop);return{x:l,y:n}},cb=!0,Ua=window.devicePixelRatio||1,Oa=1,ma=cb?Ua/Oa:1,ba=function(d,l,n,v,t,A,D,H,T,P,O,R,L){\"undefined\"===typeof L&&(L=1);D=D||0;H=H||\"black\";var J=15n)A=H-1;else break}v>n&&1H&&(D=n.pop(),t-=D.height,A=J)}this._wrappedText={lines:n,width:A,height:t};this.width=A+(this.leftPadding+this.rightPadding);\nthis.height=t+(this.topPadding+this.bottomPadding);this.ctx.font=v};ka.prototype._getFontString=function(){var d;d=\"\"+(this.fontStyle?this.fontStyle+\" \":\"\");d+=this.fontWeight?this.fontWeight+\" \":\"\";d+=this.fontSize?this.fontSize+\"px \":\"\";var n=this.fontFamily?this.fontFamily+\"\":\"\";!v&&n&&(n=n.split(\",\")[0],\"'\"!==n[0]&&'\"'!==n[0]&&(n=\"'\"+n+\"'\"));return d+=n};qa(Wa,Z);qa(Ba,Z);Ba.prototype.setLayout=function(){if(this.text){var d=this.dockInsidePlotArea?this.chart.plotArea:this.chart,l=d.layoutManager.getFreeSpace(),\nv=l.x1,t=l.y1,A=0,H=0,D=this.chart._menuButton&&this.chart.exportEnabled&&\"top\"===this.verticalAlign?40:0,J,L;\"top\"===this.verticalAlign||\"bottom\"===this.verticalAlign?(null===this.maxWidth&&(this.maxWidth=l.width-4-D*(\"center\"===this.horizontalAlign?2:1)),H=0.5*l.height-this.margin-2,A=0):\"center\"===this.verticalAlign&&(\"left\"===this.horizontalAlign||\"right\"===this.horizontalAlign?(null===this.maxWidth&&(this.maxWidth=l.height-4),H=0.5*l.width-this.margin-2):\"center\"===this.horizontalAlign&&(null===\nthis.maxWidth&&(this.maxWidth=l.width-4),H=0.5*l.height-4));var P;n(this.padding)||\"number\"!==typeof this.padding?n(this.padding)||\"object\"!==typeof this.padding||(P=this.padding.top?this.padding.top:this.padding.bottom?this.padding.bottom:0,P+=this.padding.bottom?this.padding.bottom:this.padding.top?this.padding.top:0):P=2*this.padding;this.wrap||(H=Math.min(H,1.5*this.fontSize+P));H=new ka(this.ctx,{fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor,fontStyle:this.fontStyle,\nfontWeight:this.fontWeight,horizontalAlign:this.horizontalAlign,textAlign:this.horizontalAlign,verticalAlign:this.verticalAlign,borderColor:this.borderColor,borderThickness:this.borderThickness,backgroundColor:this.backgroundColor,maxWidth:this.maxWidth,maxHeight:H,cornerRadius:this.cornerRadius,text:this.text,padding:this.padding,textBaseline:\"middle\"});P=H.measureText();\"top\"===this.verticalAlign||\"bottom\"===this.verticalAlign?(\"top\"===this.verticalAlign?(t=l.y1+2+this.fontSize/2+4,L=\"top\"):\"bottom\"===\nthis.verticalAlign&&(t=l.y2-2-P.height+this.fontSize/2+4,L=\"bottom\"),\"left\"===this.horizontalAlign?v=l.x1+2:\"center\"===this.horizontalAlign?v=l.x1+l.width/2-P.width/2:\"right\"===this.horizontalAlign&&(v=l.x2-2-P.width-D),J=this.horizontalAlign,this.width=P.width,this.height=P.height):\"center\"===this.verticalAlign&&(\"left\"===this.horizontalAlign?(v=l.x1+2+(this.fontSize/2+4),t=l.y2-2-(this.maxWidth/2-P.width/2),A=-90,L=\"left\",this.width=P.height,this.height=P.width):\"right\"===this.horizontalAlign?(v=\nl.x2-2-(this.fontSize/2+4),t=l.y1+2+(this.maxWidth/2-P.width/2),A=90,L=\"right\",this.width=P.height,this.height=P.width):\"center\"===this.horizontalAlign&&(t=d.y1+(d.height/2-P.height/2)+this.fontSize/2+4,v=d.x1+(d.width/2-P.width/2),L=\"center\",this.width=P.width,this.height=P.height),J=\"center\");H.x=v;H.y=t;H.angle=A;H.horizontalAlign=J;this._textBlock=H;d.layoutManager.registerSpace(L,{width:this.width+(\"left\"===L||\"right\"===L?this.margin+2:0),height:this.height+(\"top\"===L||\"bottom\"===L?this.margin+\n2:0)});this.bounds={x1:v,y1:t,x2:v+this.width,y2:t+this.height};this.ctx.textBaseline=\"top\"}};Ba.prototype.render=function(){this._textBlock&&this._textBlock.render(!0)};qa(Ja,Z);Ja.prototype.setLayout=Ba.prototype.setLayout;Ja.prototype.render=Ba.prototype.render;Xa.prototype.get=function(d,n){var v=null;0a[h].x&&0I?{x:a[x].x+I/3,y:a[x].y+b/3}:{x:a[x].x,y:a[x].y+(1===c.length?0:b/9)};x=e;h=0===x?0:x-1;r=x===a.length-1?x:x+1;b=Math.abs((a[r].x-a[h].x)/(0===a[x].x-a[h].x?0.01:a[x].x-a[h].x))*(g-1)/2+1;I=(a[r].x-a[h].x)/b;b=(a[r].y-a[h].y)/b;\nc[c.length]=a[x].x>a[h].x&&0I?{x:a[x].x-I/3,y:a[x].y-b/3}:{x:a[x].x,y:a[x].y-b/9};c[c.length]=a[e]}return c}function A(a,g,c,b,e,h,r,x,I,k){var m=0;k?(r.color=h,x.color=h):k=1;m=I?Math.abs(e-c):Math.abs(b-g);m=0this.labelAngle?this.labelAngle-=\n180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360);this.options.scaleBreaks&&(this.scaleBreaks=new ea(this.chart,this.options.scaleBreaks,++this.chart._eventManager.lastObjectId,this));this.stripLines=[];if(this.options.stripLines&&0=this._appliedBreaks[a+1].startValue&&(this._appliedBreaks[a].endValue=Math.max(this._appliedBreaks[a].endValue,this._appliedBreaks[a+1].endValue),window.console&&window.console.log(\"CanvasJS Error: Breaks \"+a+\" and \"+(a+1)+\" are overlapping.\"),\nthis._appliedBreaks.splice(a,2),a--)}}function ca(a,g,c,b,e,h){ca.base.constructor.call(this,\"Break\",g,c,b,h);this.id=e;this.chart=a;this.ctx=this.chart.ctx;this.scaleBreaks=h;this.optionsName=g;this.isOptionsInArray=!0;this.type=c.type?this.type:h.type;this.fillOpacity=n(c.fillOpacity)?h.fillOpacity:this.fillOpacity;this.lineThickness=n(c.lineThickness)?h.lineThickness:this.lineThickness;this.color=c.color?this.color:h.color;this.lineColor=c.lineColor?this.lineColor:h.lineColor;this.lineDashType=\nc.lineDashType?this.lineDashType:h.lineDashType;!n(this.startValue)&&this.startValue.getTime&&(this.startValue=this.startValue.getTime());!n(this.endValue)&&this.endValue.getTime&&(this.endValue=this.endValue.getTime());\"number\"===typeof this.startValue&&(\"number\"===typeof this.endValue&&this.endValue=\nnavigator.userAgent.search(\"MSIE\")&&this._zoomButton.childNodes[0]&&L(this._zoomButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"});else{var g=!1;xa(this._zoomButton=document.createElement(\"button\"));ta(this,this._zoomButton,\"pan\");this._toolBar.appendChild(this._zoomButton);this._zoomButton.style.borderRight=this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor;J(this._zoomButton,\"touchstart\",function(a){g=!0},this.allDOMEventHandlers);J(this._zoomButton,\n\"click\",function(){a.zoomEnabled?(a.zoomEnabled=!1,a.panEnabled=!0,ta(a,a._zoomButton,\"zoom\")):(a.zoomEnabled=!0,a.panEnabled=!1,ta(a,a._zoomButton,\"pan\"));a.render()},this.allDOMEventHandlers);J(this._zoomButton,\"mousemove\",function(){g?g=!1:(L(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&L(a._zoomButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},\nthis.allDOMEventHandlers);J(this._zoomButton,\"mouseout\",function(){g||(L(a._zoomButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&L(a._zoomButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},this.allDOMEventHandlers)}this._resetButton?(L(this._resetButton,{borderRight:this.toolbar.buttonBorderThickness+\"px solid \"+this.toolbar.buttonBorderColor,backgroundColor:a.toolbar.itemBackgroundColor,\ncolor:a.toolbar.fontColor}),0>=navigator.userAgent.search(\"MSIE\")&&this._resetButton.childNodes[0]&&L(this._resetButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}),this._resetButton.title=this._cultureInfo.resetText):(g=!1,xa(this._resetButton=document.createElement(\"button\")),ta(this,this._resetButton,\"reset\"),this._resetButton.style.borderRight=(this.exportEnabled?this.toolbar.buttonBorderThickness:0)+\"px solid \"+this.toolbar.buttonBorderColor,this._toolBar.appendChild(this._resetButton),\nJ(this._resetButton,\"touchstart\",function(a){g=!0},this.allDOMEventHandlers),J(this._resetButton,\"click\",function(){a.toolTip.hide();a.toolTip&&a.toolTip.enabled&&a.toolTip.dispatchEvent(\"hidden\",{chart:a,toolTip:a.toolTip},a.toolTip);a.zoomEnabled||a.panEnabled?(a.zoomEnabled=!0,a.panEnabled=!1,ta(a,a._zoomButton,\"pan\"),a._defaultCursor=\"default\",a.overlaidCanvas.style.cursor=a._defaultCursor):(a.zoomEnabled=!1,a.panEnabled=!1);if(a.sessionVariables.axisX)for(var b=0;b=navigator.userAgent.search(\"MSIE\")&&L(a._resetButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"});xa(a._zoomButton,a._resetButton);a.stockChart&&(a.stockChart._rangeEventParameter={stockChart:a.stockChart,source:\"chart\",index:a.stockChart.charts.indexOf(a),minimum:null,maximum:null});a._dispatchRangeEvent(\"rangeChanging\",\"reset\");a.stockChart&&(a.stockChart._rangeEventParameter.type=\"rangeChanging\",\na.stockChart.dispatchEvent(\"rangeChanging\",a.stockChart._rangeEventParameter,a.stockChart));a.render();a.syncCharts&&a.syncCharts(null,null);a._dispatchRangeEvent(\"rangeChanged\",\"reset\");a.stockChart&&(a.stockChart._rangeEventParameter.type=\"rangeChanged\",a.stockChart.dispatchEvent(\"rangeChanged\",a.stockChart._rangeEventParameter,a.stockChart))},this.allDOMEventHandlers),J(this._resetButton,\"mousemove\",function(){g||(L(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColorOnHover,color:a.toolbar.fontColorOnHover,\ntransition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&L(a._resetButton.childNodes[0],{WebkitFilter:\"invert(100%)\",filter:\"invert(100%)\"}))},this.allDOMEventHandlers),J(this._resetButton,\"mouseout\",function(){g||(L(a._resetButton,{backgroundColor:a.toolbar.itemBackgroundColor,color:a.toolbar.fontColor,transition:\"0.4s\",WebkitTransition:\"0.4s\"}),0>=navigator.userAgent.search(\"MSIE\")&&L(a._resetButton.childNodes[0],{WebkitFilter:\"invert(0%)\",filter:\"invert(0%)\"}))},this.allDOMEventHandlers),\nthis.overlaidCanvas.style.cursor=a._defaultCursor);this.zoomEnabled||this.panEnabled||(this._zoomButton?(a._zoomButton.getAttribute(\"state\")===a._cultureInfo.zoomText?(this.panEnabled=!0,this.zoomEnabled=!1):(this.zoomEnabled=!0,this.panEnabled=!1),Ma(a._zoomButton,a._resetButton)):(this.zoomEnabled=!0,this.panEnabled=!1))}else this.panEnabled=this.zoomEnabled=!1;ib(this);\"none\"!==this._toolBar.style.display&&this._zoomButton&&(this.panEnabled?ta(a,a._zoomButton,\"zoom\"):ta(a,a._zoomButton,\"pan\"),\na._resetButton.getAttribute(\"state\")!==a._cultureInfo.resetText&&ta(a,a._resetButton,\"reset\"));this.options.toolTip&&this.toolTip.options!==this.options.toolTip&&(this.toolTip.options=this.options.toolTip);for(var c in this.toolTip.options)this.toolTip.options.hasOwnProperty(c)&&this.toolTip.updateOption(c)};l.prototype._updateSize=function(){var a;a=[this.canvas,this.overlaidCanvas,this._eventManager.ghostCanvas];var g=0,c=0;this.options.width?g=this.width:this.width=g=0b.linkedDataSeriesIndex||b.linkedDataSeriesIndex>=this.options.data.length||\"number\"!==typeof b.linkedDataSeriesIndex||\"error\"===this.options.data[b.linkedDataSeriesIndex].type)&&\n(b.linkedDataSeriesIndex=null);null===b.name&&(b.name=\"DataSeries \"+a);null===b.color?1a&&\"undefined\"!==typeof I.startTimePercent?a>=I.startTimePercent&&I.animationCallback(I.easingFunction(a-I.startTimePercent,0,1,1-I.startTimePercent),\nI):I.animationCallback(I.easingFunction(a,0,1,1),I);m.dispatchEvent(\"dataAnimationIterationEnd\",{chart:m})},function(){c=[];for(var a=0;aa.dataSeriesIndexes.length))for(var g=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,r=0;rc.max&&(c.max=b);eg.max&&\"number\"===typeof e&&(g.max=e);if(0d&&(d=1/d);c.minDiff>d&&1!==d&&(c.minDiff=d)}else d=b-x.dataPoints[I-1].x,0>d&&(d*=-1),c.minDiff>d&&0!==d&&(c.minDiff=d);null!==e&&null!==x.dataPoints[I-1].y&&(a.axisY.logarithmic?(d=e/x.dataPoints[I-1].y,1>d&&(d=1/d),g.minDiff>d&&1!==d&&(g.minDiff=d)):(d=e-x.dataPoints[I-1].y,0>d&&\n(d*=-1),g.minDiff>d&&0!==d&&(g.minDiff=d)))}if(bf&&!m)m=!0;else if(b>f&&m)continue;x.dataPoints[I].label&&(a.axisX.labels[b]=x.dataPoints[I].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&pg.viewPortMax&&\"number\"===typeof e&&(g.viewPortMax=e))}}x.axisX.valueType=x.xValueType=h?\"dateTime\":\"number\"}};\nl.prototype._processStackedPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var g=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,r=[],x=[],I=Infinity,k=-Infinity,m={},p=0;pc.max&&(c.max=b);if(0u&&(u=1/u);c.minDiff>u&&1!==u&&(c.minDiff=u)}else u=b-q.dataPoints[f-1].x,0>u&&(u*=-1),c.minDiff>u&&0!==u&&(c.minDiff=u);null!==e&&null!==q.dataPoints[f-1].y&&(a.axisY.logarithmic?0u&&(u=1/u),g.minDiff>u&&1!==u&&(g.minDiff=u)):(u=e-q.dataPoints[f-\n1].y,0>u&&(u*=-1),g.minDiff>u&&0!==u&&(g.minDiff=u)))}if(bz&&!w)w=!0;else if(b>z&&w)continue;q.dataPoints[f].label&&(a.axisX.labels[b]=q.dataPoints[f].label);bc.viewPortMax&&(c.viewPortMax=b);null===q.dataPoints[f].y?c.viewPortMin===b&&yg.max&&(g.max=a),fc.viewPortMax||(ag.viewPortMax&&(g.viewPortMax=a)));for(f in x)x.hasOwnProperty(f)&&!isNaN(f)&&(a=x[f],ag.max&&(g.max=Math.max(a,k)),fc.viewPortMax||(ag.viewPortMax&&(g.viewPortMax=Math.max(a,k))))}};l.prototype._processStacked100PlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){for(var g=\na.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h=!1,r=!1,x=!1,I={},k=[],m=0;mc.max&&(c.max=b);if(0z&&(z=1/z);c.minDiff>z&&1!==z&&(c.minDiff=z)}else z=b-p.dataPoints[q-1].x,0>z&&(z*=-1),c.minDiff>z&&0!==z&&(c.minDiff=z);n(e)||null===p.dataPoints[q-1].y||(a.axisY.logarithmic?0z&&(z=1/z),g.minDiff>z&&1!==z&&(g.minDiff=z)):(z=e-p.dataPoints[q-1].y,0>z&&(z*=-1),g.minDiff>z&&0!==z&&(g.minDiff=z)))}if(bs&&!d)d=!0;else if(b>s&&d)continue;p.dataPoints[q].label&&(a.axisX.labels[b]=p.dataPoints[q].label);bc.viewPortMax&&(c.viewPortMax=b);null===e?c.viewPortMin===b&&we&&(x=!0),k[b]=k[b]?k[b]+Math.abs(e):Math.abs(e))}}p.axisX.valueType=p.xValueType=\nh?\"dateTime\":\"number\"}a.axisY.logarithmic?(g.max=n(g.viewPortMax)?99*Math.pow(a.axisY.logarithmBase,-0.05):Math.max(g.viewPortMax,99*Math.pow(a.axisY.logarithmBase,-0.05)),g.min=n(g.viewPortMin)?1:Math.min(g.viewPortMin,1)):r&&!x?(g.max=n(g.viewPortMax)?99:Math.max(g.viewPortMax,99),g.min=n(g.viewPortMin)?1:Math.min(g.viewPortMin,1)):r&&x?(g.max=n(g.viewPortMax)?99:Math.max(g.viewPortMax,99),g.min=n(g.viewPortMin)?-99:Math.min(g.viewPortMin,-99)):!r&&x&&(g.max=n(g.viewPortMax)?-1:Math.max(g.viewPortMax,\n-1),g.min=n(g.viewPortMin)?-99:Math.min(g.viewPortMin,-99));g.viewPortMin=g.min;g.viewPortMax=g.max;a.dataPointYSums=k}};l.prototype._processMultiYPlotUnit=function(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var g=a.axisY.dataInfo,c=a.axisX.dataInfo,b,e,h,r,x=!1,I=0;Ic.max&&(c.max=b);hg.max&&(g.max=r);0d&&(d=1/d),\nc.minDiff>d&&1!==d&&(c.minDiff=d)):(d=b-k.dataPoints[m-1].x,0>d&&(d*=-1),c.minDiff>d&&0!==d&&(c.minDiff=d)),e&&(null!==e[0]&&k.dataPoints[m-1].y&&null!==k.dataPoints[m-1].y[0])&&(a.axisY.logarithmic?(d=e[0]/k.dataPoints[m-1].y[0],1>d&&(d=1/d),g.minDiff>d&&1!==d&&(g.minDiff=d)):(d=e[0]-k.dataPoints[m-1].y[0],0>d&&(d*=-1),g.minDiff>d&&0!==d&&(g.minDiff=d))));if(!(bs&&!q)q=!0;else if(b>s&&q)continue;k.dataPoints[m].label&&(a.axisX.labels[b]=k.dataPoints[m].label);\nbc.viewPortMax&&(c.viewPortMax=b);if(c.viewPortMin===b&&e)for(z=0;zg.viewPortMax&&(g.viewPortMax=r))}}k.axisX.valueType=k.xValueType=x?\"dateTime\":\"number\"}};l.prototype._processSpecificPlotUnit=function(a){if(\"waterfall\"===a.type&&a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length))for(var g=a.axisY.dataInfo,c=a.axisX.dataInfo,\nb,e,h=!1,r=0;rc.max&&(c.max=b),x.dataPointEOs[d].cumulativeSumg.max&&(g.max=x.dataPointEOs[d].cumulativeSum),0p&&(p=1/p),c.minDiff>p&&1!==p&&(c.minDiff=p)):(p=b-x.dataPoints[d-1].x,0>p&&(p*=-1),c.minDiff>p&&0!==p&&(c.minDiff=p)),null!==e&&null!==x.dataPoints[d-1].y&&(a.axisY.logarithmic?(e=x.dataPointEOs[d].cumulativeSum/x.dataPointEOs[d-1].cumulativeSum,1>e&&(e=1/e),g.minDiff>e&&1!==e&&(g.minDiff=e)):(e=x.dataPointEOs[d].cumulativeSum-x.dataPointEOs[d-1].cumulativeSum,0>e&&(e*=-1),g.minDiff>e&&0!==e&&(g.minDiff=e)))),!(bf&&!m)m=!0;else if(b>\nf&&m)continue;x.dataPoints[d].label&&(a.axisX.labels[b]=x.dataPoints[d].label);bc.viewPortMax&&(c.viewPortMax=b);0g.viewPortMax&&(g.viewPortMax=x.dataPointEOs[d-1].cumulativeSum));x.dataPointEOs[d].cumulativeSumg.viewPortMax&&(g.viewPortMax=\nx.dataPointEOs[d].cumulativeSum)}x.axisX.valueType=x.xValueType=h?\"dateTime\":\"number\"}};l.prototype.calculateAutoBreaks=function(){function a(a,b,c,e){if(e)return c=Math.pow(Math.min(c*a/b,b/a),0.2),1>=c&&(c=Math.pow(1>a?1/a:Math.min(b/a,a),0.25)),{startValue:a*c,endValue:b/c};c=0.2*Math.min(c-b+a,b-a);0>=c&&(c=0.25*Math.min(b-a,Math.abs(a)));return{startValue:a+c,endValue:b-c}}function g(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)){var b=a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&\n1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks,c=a.axisY.scaleBreaks&&a.axisY.scaleBreaks.autoCalculate&&1<=a.axisY.scaleBreaks.maxNumberOfAutoBreaks;if(b||c)for(var f=a.axisY.dataInfo,g=a.axisX.dataInfo,h,r=g.min,k=g.max,m=f.min,p=f.max,g=g._dataRanges,f=f._dataRanges,q,x=0,d=0;dI.dataPoints.length))for(x=0;xg[q].max&&(g[q].max=h)),c){var v=(p+1-m)*Math.max(parseFloat(a.axisY.scaleBreaks.collapsibleThreshold)||10,10)/100;if((h=\"waterfall\"===a.type?I.dataPointEOs[x].cumulativeSum:I.dataPoints[x].y)&&h.length)for(var l=0;lf[q].max&&(f[q].max=h[l]);else n(h)||(q=Math.floor((h-m)/v),h\nf[q].max&&(f[q].max=h))}}}}function c(a){if(a.dataSeriesIndexes&&!(1>a.dataSeriesIndexes.length)&&a.axisX.scaleBreaks&&a.axisX.scaleBreaks.autoCalculate&&1<=a.axisX.scaleBreaks.maxNumberOfAutoBreaks)for(var b=a.axisX.dataInfo,c=b.min,f=b.max,g=b._dataRanges,h,r=0,k=0;km.dataPoints.length))for(r=0;rg[h].max&&(g[h].max=b)}}for(var b,e=this,h=!1,r=0;rm[f].max&&(m[f].max=p)}delete this._axes[r].dataInfo.dataPointYPositiveSums}if(this._axes[r].dataInfo.dataPointYNegativeSums){q=this._axes[r].dataInfo.dataPointYNegativeSums;m=k;for(x in q)q.hasOwnProperty(x)&&!isNaN(x)&&(p=-1*q[x],n(p)||(f=Math.floor((p-d)/b),pm[f].max&&(m[f].max=p)));delete this._axes[r].dataInfo.dataPointYNegativeSums}for(x=0;xb&&h.push({diff:p,start:m,end:d});break}else x++;if(this._axes[r].scaleBreaks.customBreaks)for(x=0;x=e.x1&&(a<=e.x2&&g>=e.y1&&g<=e.y2)&&(b=e.id)}return b};l.prototype.getAutoFontSize=nb;l.prototype.resetOverlayedCanvas=function(){this.overlaidCanvasCtx.clearRect(0,0,this.width,this.height)};l.prototype.clearCanvas=mb;l.prototype.attachEvent=function(a){this._events.push(a)};l.prototype._touchEventHandler=function(a){if(a.changedTouches&&this.interactivityEnabled){var g=[],c=\na.changedTouches,b=c?c[0]:a,e=null;switch(a.type){case \"touchstart\":case \"MSPointerDown\":g=[\"mousemove\",\"mousedown\"];this._lastTouchData=Qa(b);this._lastTouchData.time=new Date;break;case \"touchmove\":case \"MSPointerMove\":g=[\"mousemove\"];break;case \"touchend\":case \"MSPointerUp\":var h=this._lastTouchData&&this._lastTouchData.time?new Date-this._lastTouchData.time:0,g=\"touchstart\"===this._lastTouchEventType||\"MSPointerDown\"===this._lastTouchEventType||300>h?[\"mouseup\",\"click\"]:[\"mouseup\"];break;default:return}if(!(c&&\n1h)this._lastTouchData.scroll=!0}catch(x){}this._lastTouchEventType=a.type;if(this._lastTouchData.scroll&&this.zoomEnabled)this.isDrag&&this.resetOverlayedCanvas(),this.isDrag=!1;else for(c=0;c=r.x1&&c.x<=r.x2&&c.y>=r.y1&&c.y<=r.y2){e[b].call(e.context,c.x,c.y);\"mousedown\"===b&&!0===e.capture?(l.capturedEventParam=e,this.overlaidCanvas.setCapture?this.overlaidCanvas.setCapture():document.documentElement.addEventListener(\"mouseup\",this._mouseEventHandler,!1)):\"mouseup\"===b&&(e.chart.overlaidCanvas.releaseCapture?e.chart.overlaidCanvas.releaseCapture():document.documentElement.removeEventListener(\"mouseup\",this._mouseEventHandler,!1));break}else e=null;a.target.style.cursor=\ne&&e.cursor?e.cursor:this._defaultCursor}h=this.plotArea;if(c.xh.x2||c.yh.y2){this.toolTip&&this.toolTip.enabled?(this.toolTip.hide(),this.toolTip.dispatchEvent(\"hidden\",{chart:this,toolTip:this.toolTip},this.toolTip)):this.resetOverlayedCanvas();for(h=0;hc.maximum&&(h=c.viewportMaximum/c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum/h,c.sessionVariables.newViewportMaximum=c.viewportMaximum/h,r=!0):c.viewportMinimumc.maximum&&(h=c.viewportMaximum-c.maximum,c.sessionVariables.newViewportMinimum=c.viewportMinimum-h,c.sessionVariables.newViewportMaximum=\nc.viewportMaximum-h,r=!0);else if((!e||2Math.abs(c)&&(this.panEnabled||this.zoomEnabled)){this.toolTip.hide();this.toolTip&&this.toolTip.enabled&&this.toolTip.dispatchEvent(\"hidden\",{chart:this,toolTip:this.toolTip},this.toolTip);for(var x=0;xf)var n=f,f=q,q=n;if(p.scaleBreaks)for(n=0;!h&&n=f;if(isFinite(p.dataInfo.minDiff))if(n=p.getApparentDifference(q,f,null,!0),!(h||!(this.panEnabled&&p.scaleBreaks&&p.scaleBreaks._appliedBreaks.length)&&(p.logarithmic&&np.maximum))d.push(p),m.push({val1:q,val2:f}),\nx=!0;else if(!e){x=!1;break}}return{isValid:x,axesWithValidRange:d,axesRanges:m}};l.prototype.preparePlotArea=function(){var a=this.plotArea;!v&&(0c.lineCoordinates.x2?g.x2:c.lineCoordinates.x2;a.y2=g.y1>c.lineCoordinates.y2?g.y1:c.lineCoordinates.y2;a.width=a.x2-a.x1;a.height=a.y2-a.y1}this.axisY2&&0c.lineCoordinates.x2?g.x2:c.lineCoordinates.x2,a.y2=g.y2>c.lineCoordinates.y2?g.y2:c.lineCoordinates.y2,a.width=a.x2-a.x1,a.height=a.y2-a.y1)}else g=this.layoutManager.getFreeSpace(),\na.x1=g.x1,a.x2=g.x2,a.y1=g.y1,a.y2=g.y2,a.width=g.width,a.height=g.height;v||(a.canvas.width=a.width,a.canvas.height=a.height,a.canvas.style.left=a.x1+\"px\",a.canvas.style.top=a.y1+\"px\",(0c.x2||m.point.yc.y2+1)continue}else if(\"rangearea\"===p||\"rangesplinearea\"===p){if(m.dataPoint.xe.viewportMaximum||Math.max.apply(null,m.dataPoint.y)r.viewportMaximum)continue}else if(0<=p.indexOf(\"line\")||0<=p.indexOf(\"area\")||0<=p.indexOf(\"bubble\")||0<=p.indexOf(\"scatter\")){if(m.dataPoint.x<\ne.viewportMinimum||m.dataPoint.x>e.viewportMaximum||m.dataPoint.yr.viewportMaximum)continue}else if(0<=p.indexOf(\"column\")||\"waterfall\"===p||\"error\"===p&&!m.axisSwapped){if(m.dataPoint.xe.viewportMaximum||m.bounds.y1>c.y2||m.bounds.y2e.viewportMaximum||m.bounds.x1>c.x2||m.bounds.x2e.viewportMaximum||Math.max.apply(null,m.dataPoint.y)r.viewportMaximum)continue}else if(m.dataPoint.xe.viewportMaximum)continue;r=x=2;\"horizontal\"===l?(d=w.width,k=w.height):(k=w.width,d=w.height);if(\"normal\"===this.plotInfo.axisPlacement){if(0<=p.indexOf(\"line\")||0<=p.indexOf(\"area\"))u=\"auto\",x=4;else if(0<=p.indexOf(\"stacked\"))\"auto\"===u&&(u=\"inside\");else if(\"bubble\"===\np||\"scatter\"===p)u=\"inside\";q=m.point.x-d/2+(\"horizontal\"===l?0:w._lineHeight/2);if(\"inside\"!==u)e=c.y1,h=c.y2,0m.point.y,!A||(0<=p.indexOf(\"line\")||0<=p.indexOf(\"area\"))||(f-=b))):(f=m.point.y+w._lineHeight/2+x+b,f>h-k+w._lineHeight/2-x&&(f=\"auto\"===u?Math.min(m.point.y,h)+w._lineHeight/2-k-x-b:h+w._lineHeight/2-k-x-b,A=f-(\"horizontal\"===\nl?w._lineHeight/2:k)m.bounds.y2-m.bounds.y1&&(f-=k/2+x),0>f-w._lineHeight/\n2&&(f+=Math.abs(f-w._lineHeight/2)<=(m.bounds.y2-m.bounds.y1)/2+x?Math.abs(f-w._lineHeight/2):(m.bounds.y2-m.bounds.y1)/2+x)}else f=Math.min(m.point.y,b),f>h-k-x&&(\"bubble\"===p||\"scatter\"===p)&&(f=Math.min(m.point.y+x,c.y2-k-x));f=Math.min(f,h)}}else 0<=p.indexOf(\"line\")||0<=p.indexOf(\"area\")||0<=p.indexOf(\"scatter\")?(u=\"auto\",r=4):0<=p.indexOf(\"stacked\")?\"auto\"===u&&(u=\"inside\"):\"bubble\"===p&&(u=\"inside\"),f=m.point.y+w._lineHeight/2-k/2,\"inside\"!==u?(h=c.x1,e=c.x2,0>t?(q=m.point.x-d+(\"horizontal\"===\nl?0:w._lineHeight/2)-r-b,(\"horizontal\"===l?q:q-w._lineHeight/2)m.point.x)&&(q-=b))):(q=m.point.x+(\"horizontal\"===l?0:w._lineHeight/2)+r+b,(\"horizontal\"===l?q:q-w._lineHeight/2)>e-d-r-b&&(q=\"auto\"===u?Math.min(m.point.x,e)-(\"horizontal\"===l?d:d-w._lineHeight/2)-r-b:e-d-r+(\"horizontal\"===l?0:w._lineHeight/2),(A=q-(\"horizontal\"===l?0:w._lineHeight/\n2)t?Math.max(m.bounds.x1,c.x1):Math.min(m.bounds.x2,c.x2)-d-r+(\"horizontal\"===l?0:w._lineHeight/2):(Math.max(m.bounds.x1,c.x1)+Math.min(m.bounds.x2,c.x2))/2-d/2+(\"horizontal\"===l?0:w._lineHeight/2),q=0>t?b:Math.min(m.point.x,b),q=Math.max(q,h+(\"horizontal\"===l?0:w._lineHeight/2+x)));\"vertical\"===l&&(f+=k-w._lineHeight/2,0<=\"ohlc candlestick boxandwhisker column rangecolumn stackedcolumn stackedcolumn100 error\".split(\" \").indexOf(p)&&\n(A=0m.point.y:f-(\"horizontal\"===l?w._lineHeight/2:k)p.indexOf(\"bar\")&&(\"error\"!==p||!m.axisSwapped)&&m.point.x>c.x1&&m.point.xc.y1&&m.point.yt&&f-k>m.point.y?f-k:m.point.y:0t&&f-w._lineHeight/2>m.point.y?f-w._lineHeight/2:m.point.y):g.lineTo(q+d/2-(\"horizontal\"===l?0:w._lineHeight/2),f+(\"vertical\"===l?f-k=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var h=[],r,x=0;xa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!E)))if(\"number\"!==typeof m[s].y)0m[s].y===a.axisY.reversed?1:-1,color:n})}c.stroke();v&&b.stroke()}}Y.drawMarkers(h);v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:g,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStepLine=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx;c.save();var e=this.plotArea;c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();for(var h=\n[],r,x=0;xa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!E)))if(\"number\"!==typeof m[s].y)0m[s].y===a.axisY.reversed?1:-1,color:n})}c.stroke();v&&b.stroke()}}Y.drawMarkers(h);v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),\na.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),b.beginPath());c.restore();c.beginPath();return{source:g,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderSpline=function(a){function g(a){a=t(a,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx;b.save();var h=this.plotArea;b.beginPath();b.rect(h.x1,h.y1,h.width,h.height);b.clip();for(var r=[],x=0;xa.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!z)))if(\"number\"!==typeof m[l].y)0m[l].y===a.axisY.reversed?1:-1,color:n});z=!1}g(u)}Y.drawMarkers(r);v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&\nb.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(h.x1,h.y1,h.width,h.height),e.beginPath());b.restore();b.beginPath();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderColumn=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=\nnull,e=this.plotArea,h=0,r,x,d,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.dataPointWidth=this.options.dataPointWidth?\nthis.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>m&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(p=m);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);\nc.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(m=0;ma.axisX.dataInfo.viewPortMax)&&\"number\"===typeof n[h].y){r=a.axisX.convertValueToPixel(d);x=a.axisY.convertValueToPixel(n[h].y);\nr=a.axisX.reversed?r+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+m)*p<<0:r-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+m)*p<<0;var y=a.axisX.reversed?r-p<<0:r+p<<0,s;0<=n[h].y?s=k:(s=x,x=k);x>s&&(b=x,x=s,s=b);b=n[h].color?n[h].color:f._colorSet[h%f._colorSet.length];ba(c,a.axisX.reversed?y:r,x,a.axisX.reversed?r:y,s,b,0,null,l&&(a.axisY.reversed?0>n[h].y:0<=n[h].y),(a.axisY.reversed?0<=n[h].y:0>n[h].y)&&l,!1,!1,f.fillOpacity);b=f.dataPointIds[h];this._eventManager.objectMap[b]=\n{id:b,objectType:\"dataPoint\",dataSeriesIndex:q,dataPointIndex:h,x1:r,y1:x,x2:y,y2:s};b=O(b);v&&ba(this._eventManager.ghostCtx,a.axisX.reversed?y:r,x,a.axisX.reversed?r:y,s,b,0,null,!1,!1,!1,!1);(n[h].indexLabel||f.indexLabel||n[h].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:\"column\",dataPoint:n[h],dataSeries:f,point:{x:r+(y-r)/2,y:0>n[h].y===a.axisY.reversed?x:s},direction:0>n[h].y===a.axisY.reversed?1:-1,bounds:{x1:r,y1:Math.min(x,s),x2:y,y2:Math.max(x,s)},color:b})}}v&&\n(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,\neasingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.y2?a.axisY.bounds.y2:k}}};l.prototype.renderStackedColumn=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],r=[],x=[],d=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:\n1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>f&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&\n(this.dataPointMinWidth&&ff&&(n=f);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(f=0;fa.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){m=a.axisX.convertValueToPixel(b);m=m-a.plotType.plotUnits.length*n/2+a.index*n<<0;var u=m+n<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[k].y)d[b]=s[k].y+(d[b]?d[b]:0),E=a.axisY.convertValueToPixel(d[b]),p=\"undefined\"!==typeof r[b]?r[b]:q,r[b]=E;else if(p=a.axisY.convertValueToPixel(s[k].y),0<=s[k].y){var B=\"undefined\"!==typeof h[b]?h[b]:0;p-=B;E=q-B;h[b]=B+(E-p)}else B=r[b]?r[b]:0,E=p+B,p=q+B,r[b]=B+(E-p);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,m,a.axisY.reversed?E:p,u,a.axisY.reversed?p:E,b,0,null,z&&(a.axisY.reversed?0>s[k].y:0<=\ns[k].y),(a.axisY.reversed?0<=s[k].y:0>s[k].y)&&z,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:k,x1:m,y1:p,x2:u,y2:E};b=O(b);v&&ba(this._eventManager.ghostCtx,m,p,u,E,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedColumn\",dataPoint:s[k],dataSeries:y,point:{x:m+(u-m)/2,y:0<=s[k].y?p:E},direction:0>s[k].y===a.axisY.reversed?\n1:-1,bounds:{x1:m,y1:Math.min(p,E),x2:u,y2:Math.max(p,E)},color:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());\nc.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};l.prototype.renderStackedColumn100=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],r=[],x=[],d=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),\nk=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.width<<0,n=a.axisX.dataInfo.minDiff;isFinite(n)||(n=0.3*Math.abs(a.axisX.range));n=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(n)/Math.log(a.axisX.range):Math.abs(n)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&\nk>f&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(n=f);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(f=0;fa.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){m=a.axisX.convertValueToPixel(b);p=0!==a.dataPointYSums[b]?100*(s[k].y/a.dataPointYSums[b]):0;m=m-a.plotType.plotUnits.length*n/2+a.index*n<<0;var u=m+n<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=x[b])continue;p=a.axisY.convertValueToPixel(x[b]);E=h[b]?h[b]:q;h[b]=p}else if(a.axisY.scaleBreaks&&0=s[k].y)d[b]=p+(\"undefined\"!==typeof d[b]?d[b]:0),E=a.axisY.convertValueToPixel(d[b]),p=r[b]?r[b]:q,r[b]=E;else if(p=a.axisY.convertValueToPixel(p),0<=s[k].y){var B=\"undefined\"!==typeof h[b]?h[b]:0;p-=B;E=q-B;a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.y1-p)&&(p=e.y1);h[b]=B+(E-p)}else B=\"undefined\"!==\ntypeof r[b]?r[b]:0,E=p+B,p=q+B,a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.y2-E)&&(E=e.y2),r[b]=B+(E-p);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,m,a.axisY.reversed?E:p,u,a.axisY.reversed?p:E,b,0,null,z&&(a.axisY.reversed?0>s[k].y:0<=s[k].y),(a.axisY.reversed?0<=s[k].y:0>s[k].y)&&z,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:k,x1:m,y1:p,x2:u,y2:E};b=O(b);v&&ba(this._eventManager.ghostCtx,\nm,p,u,E,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedColumn100\",dataPoint:s[k],dataSeries:y,point:{x:m+(u-m)/2,y:0<=s[k].y?p:E},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:m,y1:Math.min(p,E),x2:u,y2:Math.max(p,E)},color:b})}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,\nthis.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.yScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.y2?a.axisY.bounds.y2:q}}};l.prototype.renderBar=\nfunction(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,r,d,n,k=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,m=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<\n0,p=a.axisX.dataInfo.minDiff;isFinite(p)||(p=0.3*Math.abs(a.axisX.range));p=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(p)/Math.log(a.axisX.range):Math.abs(p)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>m&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,m));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&mm&&(p=m);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(m=0;ma.axisX.dataInfo.viewPortMax)&&\"number\"===typeof l[h].y){d=a.axisX.convertValueToPixel(n);r=a.axisY.convertValueToPixel(l[h].y);d=a.axisX.reversed?d+a.plotType.totalDataSeries*p/2-(a.previousDataSeriesCount+m)*p<<0:d-a.plotType.totalDataSeries*p/2+(a.previousDataSeriesCount+m)*p<<0;var y=a.axisX.reversed?d-p<<0:d+p<<0,s;0<=l[h].y?s=k:(s=r,r=k);b=l[h].color?l[h].color:f._colorSet[h%f._colorSet.length];ba(c,a.axisY.reversed?r:s,a.axisX.reversed?y:d,a.axisY.reversed?s:\nr,a.axisX.reversed?d:y,b,0,null,w,!1,!1,!1,f.fillOpacity);b=f.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:q,dataPointIndex:h,x1:s,y1:d,x2:r,y2:y};b=O(b);v&&ba(this._eventManager.ghostCtx,s,a.axisX.reversed?y:d,r,a.axisX.reversed?d:y,b,0,null,!1,!1,!1,!1);(l[h].indexLabel||f.indexLabel||l[h].indexLabelFormatter||f.indexLabelFormatter)&&this._indexLabels.push({chartType:\"bar\",dataPoint:l[h],dataSeries:f,point:{x:0<=l[h].y?r:s,y:d+(y-d)/2},direction:0>\nl[h].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(s,r),y1:d,x2:Math.max(s,r),y2:y},color:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),\nthis._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:ka.axisY.bounds.x2?a.axisY.bounds.x2:k}}};l.prototype.renderStackedBar=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],r=[],d=[],n=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?\na.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,l=a.axisX.dataInfo.minDiff;isFinite(l)||(l=0.3*Math.abs(a.axisX.range));l=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(l)/Math.log(a.axisX.range):Math.abs(l)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<\n0;this.dataPointMaxWidth&&k>f&&(k=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(l=f);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());\nfor(f=0;fa.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){p=a.axisX.convertValueToPixel(b);p=p-a.plotType.plotUnits.length*l/2+a.index*l<<0;var u=p+l<<0,E;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=s[k].y)n[b]=s[k].y+(n[b]?n[b]:0),m=r[b]?r[b]:q,r[b]=E=a.axisY.convertValueToPixel(n[b]);else if(m=a.axisY.convertValueToPixel(s[k].y),0<=s[k].y){var B=h[b]?h[b]:0;E=q+B;m+=B;h[b]=B+(m-E)}else B=r[b]?r[b]:0,E=m-B,m=q-B,r[b]=B+(m-E);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,a.axisY.reversed?m:E,p,a.axisY.reversed?\nE:m,u,b,0,null,z,!1,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:w,dataPointIndex:k,x1:E,y1:p,x2:m,y2:u};b=O(b);v&&ba(this._eventManager.ghostCtx,E,p,m,u,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedBar\",dataPoint:s[k],dataSeries:y,point:{x:0<=s[k].y?m:E,y:p+(u-p)/2},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(E,\nm),y1:p,x2:Math.max(E,m),y2:u},color:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();\nreturn{source:g,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};l.prototype.renderStackedBar100=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=[],r=[],d=[],n=[],k=0,m,p,q=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),k=this.options.dataPointMinWidth?\nthis.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,f=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.15*this.height<<0,l=a.axisX.dataInfo.minDiff;isFinite(l)||(l=0.3*Math.abs(a.axisX.range));l=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(l)/Math.log(a.axisX.range):Math.abs(l)/Math.abs(a.axisX.range))/a.plotType.plotUnits.length)<<0;this.dataPointMaxWidth&&k>f&&(k=Math.min(this.options.dataPointWidth?\nthis.dataPointWidth:Infinity,f));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&ff&&(l=f);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(f=0;fa.axisX.dataInfo.viewPortMax)&&\"number\"===typeof s[k].y){p=a.axisX.convertValueToPixel(b);var u;u=0!==a.dataPointYSums[b]?100*(s[k].y/a.dataPointYSums[b]):0;p=p-a.plotType.plotUnits.length*l/2+a.index*l<<0;var E=p+l<<0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=d[b])continue;u=h[b]?h[b]:q;h[b]=m=a.axisY.convertValueToPixel(d[b])}else if(a.axisY.scaleBreaks&&0=s[k].y)n[b]=u+(n[b]?n[b]:0),m=r[b]?r[b]:q,r[b]=u=a.axisY.convertValueToPixel(n[b]);else if(m=a.axisY.convertValueToPixel(u),0<=s[k].y){var B=h[b]?h[b]:0;u=q+B;m+=B;a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.x2-m)&&(m=e.x2);h[b]=B+(m-u)}else B=r[b]?r[b]:0,u=m-B,m=q-B,a.dataSeriesIndexes.length-1===f&&1>=Math.abs(e.x1-\nu)&&(u=e.x1),r[b]=B+(m-u);b=s[k].color?s[k].color:y._colorSet[k%y._colorSet.length];ba(c,a.axisY.reversed?m:u,p,a.axisY.reversed?u:m,E,b,0,null,z,!1,!1,!1,y.fillOpacity);b=y.dataPointIds[k];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:w,dataPointIndex:k,x1:u,y1:p,x2:m,y2:E};b=O(b);v&&ba(this._eventManager.ghostCtx,u,p,m,E,b,0,null,!1,!1,!1,!1);(s[k].indexLabel||y.indexLabel||s[k].indexLabelFormatter||y.indexLabelFormatter)&&this._indexLabels.push({chartType:\"stackedBar100\",\ndataPoint:s[k],dataSeries:y,point:{x:0<=s[k].y?m:u,y:p+(E-p)/2},direction:0>s[k].y===a.axisY.reversed?1:-1,bounds:{x1:Math.min(u,m),y1:p,x2:Math.max(u,m),y2:E},color:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.xScaleAnimation,easingFunction:N.easing.easeOutQuart,animationBase:qa.axisY.bounds.x2?a.axisY.bounds.x2:q}}};l.prototype.renderArea=function(a){var g,c;function b(){B&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?E=u:0>a.axisY.viewportMaximum?\nE=d.y1:0=a.dataSeriesIndexes.length)){var r=this._eventManager.ghostCtx,d=a.axisY.lineCoordinates,n=[],k=this.plotArea,m;h.save();v&&r.save();h.beginPath();h.rect(k.x1,k.y1,\nk.width,k.height);h.clip();v&&(r.beginPath(),r.rect(k.x1,k.y1,k.width,k.height),r.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!f.connectNullData||!fa)))if(\"number\"!==typeof l[w].y)f.connectNullData||(fa||g)||b(),fa=!0;else{y=a.axisX.convertValueToPixel(z);s=a.axisY.convertValueToPixel(l[w].y);\ng||fa?(!g&&f.connectNullData?(h.setLineDash&&(f.options.nullDataLineDashType||c===f.lineDashType&&f.lineDashType!==f.nullDataLineDashType)&&(g=y,c=s,y=m.x,s=m.y,b(),h.moveTo(m.x,m.y),y=g,s=c,B=m,c=f.nullDataLineDashType,h.setLineDash(K)),h.lineTo(y,s),v&&r.lineTo(y,s)):(h.beginPath(),h.moveTo(y,s),v&&(r.beginPath(),r.moveTo(y,s)),B={x:y,y:s}),fa=g=!1):(h.lineTo(y,s),v&&r.lineTo(y,s),0==w%250&&b());m={x:y,y:s};wl[w].y===a.axisY.reversed?1:-1,color:C})}b();Y.drawMarkers(n)}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),\nthis._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());h.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderSplineArea=function(a){function g(){var c=t(z,2);if(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?y=w:0>a.axisY.viewportMaximum?y=h.y1:0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=a.axisY.lineCoordinates,r=[],d=this.plotArea;b.save();v&&e.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();v&&(e.beginPath(),e.rect(d.x1,d.y1,d.width,d.height),e.clip());for(var n=0;na.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!l)))if(\"number\"!==typeof p[q].y)0p[q].y===a.axisY.reversed?1:-1,color:u});l=!1}g();Y.drawMarkers(r)}}v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,\n0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),this._eventManager.ghostCtx.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStepArea=function(a){var g,c;function b(){B&&(0=a.axisY.viewportMinimum&&0<=a.axisY.viewportMaximum?E=u:0>a.axisY.viewportMaximum?E=d.y1:0=a.dataSeriesIndexes.length)){var r=this._eventManager.ghostCtx,\nd=a.axisY.lineCoordinates,n=[],k=this.plotArea,m;h.save();v&&r.save();h.beginPath();h.rect(k.x1,k.y1,k.width,k.height);h.clip();v&&(r.beginPath(),r.rect(k.x1,k.y1,k.width,k.height),r.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax&&(!f.connectNullData||!c))){var aa=s;\"number\"!==typeof l[w].y?(f.connectNullData||\n(c||g)||b(),c=!0):(y=a.axisX.convertValueToPixel(z),s=a.axisY.convertValueToPixel(l[w].y),g||c?(!g&&f.connectNullData?(h.setLineDash&&(f.options.nullDataLineDashType||K===f.lineDashType&&f.lineDashType!==f.nullDataLineDashType)&&(g=y,c=s,y=m.x,s=m.y,b(),h.moveTo(m.x,m.y),y=g,s=c,B=m,K=f.nullDataLineDashType,h.setLineDash(U)),h.lineTo(y,aa),h.lineTo(y,s),v&&(r.lineTo(y,aa),r.lineTo(y,s))):(h.beginPath(),h.moveTo(y,s),v&&(r.beginPath(),r.moveTo(y,s)),B={x:y,y:s}),c=g=!1):(h.lineTo(y,aa),v&&r.lineTo(y,\naa),h.lineTo(y,s),v&&r.lineTo(y,s),0==w%250&&b()),m={x:y,y:s},wl[w].y===a.axisY.reversed?1:-1,color:C}))}b();Y.drawMarkers(n)}}v&&(e.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.globalCompositeOperation=\"source-atop\",\na.axisX.maskCanvas&&h.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&h.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),h.clearRect(k.x1,k.y1,k.width,k.height),this._eventManager.ghostCtx.restore());h.restore();return{source:e,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStackedArea=\nfunction(a){function g(){if(!(1>k.length)){for(0=a.dataSeriesIndexes.length)){var e=null,h=null,r=[],d=this.plotArea,n=[],k=[],m=[],p=[],q=0,f,l,w=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:\n0),y=this._eventManager.ghostCtx,s,z,u;v&&y.beginPath();b.save();v&&y.save();b.beginPath();b.rect(d.x1,d.y1,d.width,d.height);b.clip();v&&(y.beginPath(),y.rect(d.x1,d.y1,d.width,d.height),y.clip());for(var e=[],E=0;Ea.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if(\"number\"!==typeof ha.y)C.connectNullData||(aa||z)||g(),aa=!0;else{f=a.axisX.convertValueToPixel(h);var pa=n[h]?n[h]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[h]&&a.axisY.logarithmic)continue;l=a.axisY.convertValueToPixel(p[h])}else l=a.axisY.convertValueToPixel(ha.y),l-=pa;k.push({x:f,y:w-pa});n[h]=w-l;z||\naa?(!z&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||u===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(z=k.pop(),u=k[k.length-1],g(),b.moveTo(s.x,s.y),k.push(u),k.push(z),u=C.nullDataLineDashType,b.setLineDash(U)),b.lineTo(f,l),v&&y.lineTo(f,l)):(b.beginPath(),b.moveTo(f,l),v&&(y.beginPath(),y.moveTo(f,l))),aa=z=!1):(b.lineTo(f,l),v&&y.lineTo(f,l),0==q%250&&(g(),b.moveTo(f,l),v&&y.moveTo(f,l),k.push({x:f,y:w-pa})));s={x:f,y:l};qha.y===a.axisY.reversed?1:-1,color:e})}}g();b.moveTo(f,l);v&&y.moveTo(f,l)}delete C.dataPointIndexes}Y.drawMarkers(r);\nv&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(d.x1,d.y1,d.width,d.height),y.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,\neasingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderStackedArea100=function(a){function g(){for(0=a.dataSeriesIndexes.length)){var e=null,h=null,r=this.plotArea,d=[],n=[],k=[],m=[],p=[],q=\n0,f,l,w,y,s,z=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),u=this._eventManager.ghostCtx;b.save();v&&u.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(u.beginPath(),u.rect(r.x1,r.y1,r.width,r.height),u.clip());for(var e=[],t=0;ta.axisX.dataInfo.viewPortMax&&(!C.connectNullData||!aa)))if(\"number\"!==typeof ha.y)C.connectNullData||(aa||y)||g(),aa=!0;else{var pa;pa=0!==a.dataPointYSums[h]?100*(ha.y/a.dataPointYSums[h]):0;f=a.axisX.convertValueToPixel(h);var la=n[h]?n[h]:0;if(a.axisY.logarithmic||a.axisY.scaleBreaks&&0=p[h]&&a.axisY.logarithmic)continue;l=a.axisY.convertValueToPixel(p[h])}else l=a.axisY.convertValueToPixel(pa),l-=la;k.push({x:f,y:z-la});n[h]=z-l;y||aa?(!y&&C.connectNullData?(b.setLineDash&&(C.options.nullDataLineDashType||s===C.lineDashType&&C.lineDashType!==C.nullDataLineDashType)&&(y=k.pop(),s=k[k.length-1],g(),b.moveTo(w.x,w.y),k.push(s),k.push(y),s=C.nullDataLineDashType,b.setLineDash(U)),b.lineTo(f,l),v&&u.lineTo(f,l)):(b.beginPath(),b.moveTo(f,l),v&&(u.beginPath(),u.moveTo(f,\nl))),aa=y=!1):(b.lineTo(f,l),v&&u.lineTo(f,l),0==q%250&&(g(),b.moveTo(f,l),v&&u.moveTo(f,l),k.push({x:f,y:z-la})));w={x:f,y:l};qha.y===a.axisY.reversed?1:-1,color:e})}}g();b.moveTo(f,l);v&&u.moveTo(f,l)}delete C.dataPointIndexes}Y.drawMarkers(d);v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),b.clearRect(r.x1,r.y1,r.width,r.height),u.restore());b.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderBubble=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,h,r;c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),\nthis._eventManager.ghostCtx.rect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.clip());for(var d=-Infinity,n=Infinity,k=0;ka.axisX.dataInfo.viewPortMax||\"undefined\"===typeof q[e].z||(f=q[e].z,f>d&&(d=f),fa.axisX.dataInfo.viewPortMax)&&\"number\"===typeof q[e].y){h=a.axisX.convertValueToPixel(h);r=a.axisY.convertValueToPixel(q[e].y);var f=q[e].z,y=2*Math.max(Math.sqrt((d===n?w/2:l+(w-l)/(d-n)*(f-n))/Math.PI)<<0,1),f=p.getMarkerProperties(e,c);f.size=y;c.globalAlpha=\np.fillOpacity;Y.drawMarker(h,r,c,f.type,f.size,f.color,f.borderColor,f.borderThickness);c.globalAlpha=1;var s=p.dataPointIds[e];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",dataSeriesIndex:m,dataPointIndex:e,x1:h,y1:r,size:y};y=O(s);v&&Y.drawMarker(h,r,this._eventManager.ghostCtx,f.type,f.size,y,y,f.borderThickness);(q[e].indexLabel||p.indexLabel||q[e].indexLabelFormatter||p.indexLabelFormatter)&&this._indexLabels.push({chartType:\"bubble\",dataPoint:q[e],dataSeries:p,point:{x:h,y:r},\ndirection:1,bounds:{x1:h-f.size/2,y1:r-f.size/2,x2:h+f.size/2,y2:r+f.size/2},color:null})}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());\nc.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderScatter=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=this.plotArea,e=0,h,r;c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(b.x1,b.y1,b.width,b.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(b.x1,b.y1,\nb.width,b.height),this._eventManager.ghostCtx.clip());for(var d=0;da.axisX.dataInfo.viewPortMax)&&\"number\"===typeof m[e].y){h=a.axisX.convertValueToPixel(h);r=a.axisY.convertValueToPixel(m[e].y);var f=k.getMarkerProperties(e,\nh,r,c);c.globalAlpha=k.fillOpacity;Y.drawMarker(f.x,f.y,f.ctx,f.type,f.size,f.color,f.borderColor,f.borderThickness);c.globalAlpha=1;Math.sqrt((p-h)*(p-h)+(q-r)*(q-r))Math.min(this.plotArea.width,this.plotArea.height)||(p=k.dataPointIds[e],this._eventManager.objectMap[p]={id:p,objectType:\"dataPoint\",dataSeriesIndex:n,dataPointIndex:e,x1:h,y1:r},p=O(p),v&&Y.drawMarker(f.x,f.y,this._eventManager.ghostCtx,f.type,f.size,p,p,f.borderThickness),(m[e].indexLabel||k.indexLabel||\nm[e].indexLabelFormatter||k.indexLabelFormatter)&&this._indexLabels.push({chartType:\"scatter\",dataPoint:m[e],dataSeries:k,point:{x:h,y:r},direction:1,bounds:{x1:h-f.size/2,y1:r-f.size/2,x2:h+f.size/2,y2:r+f.size/2},color:null}),p=h,q=r)}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),\nthis._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(b.x1,b.y1,b.width,b.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderCandlestick=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=\nnull,h=null,r=this.plotArea,d=0,l,k,m,p,q,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,h=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*r.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;\nthis.dataPointMaxWidth&&e>h&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,h));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&hh&&(t=h);c.save();v&&b.save();c.beginPath();c.rect(r.x1,r.y1,r.width,r.height);c.clip();v&&(b.beginPath(),b.rect(r.x1,r.y1,r.width,r.height),b.clip());for(var w=0;wa.axisX.dataInfo.viewPortMax)&&!n(z[d].y)&&z[d].y.length&&\"number\"===typeof z[d].y[0]&&\"number\"===typeof z[d].y[1]&&\"number\"===typeof z[d].y[2]&&\"number\"===typeof z[d].y[3]){l=a.axisX.convertValueToPixel(f);k=a.axisY.convertValueToPixel(z[d].y[0]);m=a.axisY.convertValueToPixel(z[d].y[1]);p=a.axisY.convertValueToPixel(z[d].y[2]);q=a.axisY.convertValueToPixel(z[d].y[3]);\nvar E=l-t/2<<0,B=E+t<<0,h=s.options.fallingColor?s.fallingColor:s._colorSet[0],e=z[d].color?z[d].color:s._colorSet[0],C=Math.round(Math.max(1,0.15*t)),A=0===C%2?0:0.5,D=s.dataPointIds[d];this._eventManager.objectMap[D]={id:D,objectType:\"dataPoint\",dataSeriesIndex:y,dataPointIndex:d,x1:E,y1:k,x2:B,y2:m,x3:l,y3:p,x4:l,y4:q,borderThickness:C,color:e};c.strokeStyle=e;c.beginPath();c.lineWidth=C;b.lineWidth=Math.max(C,4);\"candlestick\"===s.type?(c.moveTo(l-A,m),c.lineTo(l-A,Math.min(k,q)),c.stroke(),c.moveTo(l-\nA,Math.max(k,q)),c.lineTo(l-A,p),c.stroke(),ba(c,E,Math.min(k,q),B,Math.max(k,q),z[d].y[0]<=z[d].y[3]?s.risingColor:h,C,e,u,u,!1,!1,s.fillOpacity),v&&(e=O(D),b.strokeStyle=e,b.moveTo(l-A,m),b.lineTo(l-A,Math.min(k,q)),b.stroke(),b.moveTo(l-A,Math.max(k,q)),b.lineTo(l-A,p),b.stroke(),ba(b,E,Math.min(k,q),B,Math.max(k,q),e,0,null,!1,!1,!1,!1))):\"ohlc\"===s.type&&(c.moveTo(l-A,m),c.lineTo(l-A,p),c.stroke(),c.beginPath(),c.moveTo(l,k),c.lineTo(E,k),c.stroke(),c.beginPath(),c.moveTo(l,q),c.lineTo(B,q),\nc.stroke(),v&&(e=O(D),b.strokeStyle=e,b.moveTo(l-A,m),b.lineTo(l-A,p),b.stroke(),b.beginPath(),b.moveTo(l,k),b.lineTo(E,k),b.stroke(),b.beginPath(),b.moveTo(l,q),b.lineTo(B,q),b.stroke()));(z[d].indexLabel||s.indexLabel||z[d].indexLabelFormatter||s.indexLabelFormatter)&&this._indexLabels.push({chartType:s.type,dataPoint:z[d],dataSeries:s,point:{x:E+(B-E)/2,y:a.axisY.reversed?p:m},direction:1,bounds:{x1:E,y1:Math.min(m,p),x2:B,y2:Math.max(m,p)},color:e})}}v&&(g.drawImage(this._preRenderCanvas,0,0,\nthis.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(r.x1,r.y1,r.width,r.height),b.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,\nanimationBase:0}}};l.prototype.renderBoxAndWhisker=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g,b=this._eventManager.ghostCtx;if(!(0>=a.dataSeriesIndexes.length)){var e=null,h=this.plotArea,r=0,d,l,k,m,p,q,f,e=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1,r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.015*this.width,t=a.axisX.dataInfo.minDiff;isFinite(t)||\n(t=0.3*Math.abs(a.axisX.range));t=this.options.dataPointWidth?this.dataPointWidth:0.7*h.width*(a.axisX.logarithmic?Math.log(t)/Math.log(a.axisX.range):Math.abs(t)/Math.abs(a.axisX.range))<<0;this.dataPointMaxWidth&&e>r&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&rr&&(t=r);c.save();v&&b.save();c.beginPath();c.rect(h.x1,h.y1,h.width,\nh.height);c.clip();v&&(b.beginPath(),b.rect(h.x1,h.y1,h.width,h.height),b.clip());for(var w=!1,w=!!a.axisY.reversed,y=0;ya.axisX.dataInfo.viewPortMax)&&!n(u[r].y)&&u[r].y.length&&\"number\"===typeof u[r].y[0]&&\"number\"===typeof u[r].y[1]&&\"number\"===typeof u[r].y[2]&&\n\"number\"===typeof u[r].y[3]&&\"number\"===typeof u[r].y[4]&&5===u[r].y.length){d=a.axisX.convertValueToPixel(f);l=a.axisY.convertValueToPixel(u[r].y[0]);k=a.axisY.convertValueToPixel(u[r].y[1]);m=a.axisY.convertValueToPixel(u[r].y[2]);p=a.axisY.convertValueToPixel(u[r].y[3]);q=a.axisY.convertValueToPixel(u[r].y[4]);var B=d-t/2<<0,C=d+t/2<<0,e=u[r].color?u[r].color:z._colorSet[0],A=Math.round(Math.max(1,0.15*t)),D=0===A%2?0:0.5,K=u[r].whiskerColor?u[r].whiskerColor:u[r].color?z.whiskerColor?z.whiskerColor:\nu[r].color:z.whiskerColor?z.whiskerColor:e,U=\"number\"===typeof u[r].whiskerThickness?u[r].whiskerThickness:\"number\"===typeof z.options.whiskerThickness?z.whiskerThickness:A,fa=u[r].whiskerDashType?u[r].whiskerDashType:z.whiskerDashType,aa=n(u[r].whiskerLength)?n(z.options.whiskerLength)?t:z.whiskerLength:u[r].whiskerLength,aa=\"number\"===typeof aa?0>=aa?0:aa>=t?t:aa:\"string\"===typeof aa?parseInt(aa)*t/100>t?t:parseInt(aa)*t/100:t,ha=1===Math.round(U)%2?0.5:0,pa=u[r].stemColor?u[r].stemColor:u[r].color?\nz.stemColor?z.stemColor:u[r].color:z.stemColor?z.stemColor:e,la=\"number\"===typeof u[r].stemThickness?u[r].stemThickness:\"number\"===typeof z.options.stemThickness?z.stemThickness:A,F=1===Math.round(la)%2?0.5:0,J=u[r].stemDashType?u[r].stemDashType:z.stemDashType,L=u[r].lineColor?u[r].lineColor:u[r].color?z.lineColor?z.lineColor:u[r].color:z.lineColor?z.lineColor:e,P=\"number\"===typeof u[r].lineThickness?u[r].lineThickness:\"number\"===typeof z.options.lineThickness?z.lineThickness:A,R=u[r].lineDashType?\nu[r].lineDashType:z.lineDashType,M=1===Math.round(P)%2?0.5:0,T=z.upperBoxColor,S=z.lowerBoxColor,ua=n(z.options.fillOpacity)?1:z.fillOpacity,Q=z.dataPointIds[r];this._eventManager.objectMap[Q]={id:Q,objectType:\"dataPoint\",dataSeriesIndex:s,dataPointIndex:r,x1:B,y1:l,x2:C,y2:k,x3:d,y3:m,x4:d,y4:p,y5:q,borderThickness:A,color:e,stemThickness:la,stemColor:pa,whiskerThickness:U,whiskerLength:aa,whiskerColor:K,lineThickness:P,lineColor:L};c.save();0=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,r,d,l,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?this.dataPointWidth:1;r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:0.03*this.width;var k=a.axisX.dataInfo.minDiff;isFinite(k)||(k=0.3*Math.abs(a.axisX.range));k=this.options.dataPointWidth?\nthis.dataPointWidth:0.9*(e.width*(a.axisX.logarithmic?Math.log(k)/Math.log(a.axisX.range):Math.abs(k)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>r&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&rr&&(k=r);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);\nc.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var m=0;ma.axisX.dataInfo.viewPortMax)&&!n(f[h].y)&&f[h].y.length&&\"number\"===typeof f[h].y[0]&&\"number\"===\ntypeof f[h].y[1]){b=a.axisX.convertValueToPixel(l);r=a.axisY.convertValueToPixel(f[h].y[0]);d=a.axisY.convertValueToPixel(f[h].y[1]);var w=a.axisX.reversed?b+a.plotType.totalDataSeries*k/2-(a.previousDataSeriesCount+m)*k<<0:b-a.plotType.totalDataSeries*k/2+(a.previousDataSeriesCount+m)*k<<0,y=a.axisX.reversed?w-k<<0:w+k<<0,b=f[h].color?f[h].color:q._colorSet[h%q._colorSet.length];if(r>d){var s=r;r=d;d=s}s=q.dataPointIds[h];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",dataSeriesIndex:p,\ndataPointIndex:h,x1:w,y1:r,x2:y,y2:d};ba(c,a.axisX.reversed?y:w,r,a.axisX.reversed?w:y,d,b,0,b,t,t,!1,!1,q.fillOpacity);b=O(s);v&&ba(this._eventManager.ghostCtx,a.axisX.reversed?y:w,r,a.axisX.reversed?w:y,d,b,0,null,!1,!1,!1,!1);if(f[h].indexLabel||q.indexLabel||f[h].indexLabelFormatter||q.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeColumn\",dataPoint:f[h],dataSeries:q,indexKeyword:0,point:{x:w+(y-w)/2,y:f[h].y[1]>=f[h].y[0]?d:r},direction:f[h].y[1]>=f[h].y[0]?-1:1,bounds:{x1:w,y1:Math.min(r,\nd),x2:y,y2:Math.max(r,d)},color:b}),this._indexLabels.push({chartType:\"rangeColumn\",dataPoint:f[h],dataSeries:q,indexKeyword:1,point:{x:w+(y-w)/2,y:f[h].y[1]>=f[h].y[0]?r:d},direction:f[h].y[1]>=f[h].y[0]?1:-1,bounds:{x1:w,y1:Math.min(r,d),x2:y,y2:Math.max(r,d)},color:b})}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,\n0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderError=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g,b=a.axisY._position?\"left\"===a.axisY._position||\n\"right\"===a.axisY._position?!1:!0:!1;if(!(0>=a.dataSeriesIndexes.length)){var e=null,h=!1,r=this.plotArea,d=0,l,k,m,p,q,f,t,w=a.axisX.dataInfo.minDiff;isFinite(w)||(w=0.3*Math.abs(a.axisX.range));c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(r.x1,r.y1,r.width,r.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.clip());for(var y=0,s=0;sd&&(e=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,d));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&dd&&(s=d);if(0=K.length?0:K.length>=s?s:K.length:\"string\"===typeof K.length?\nparseInt(K.length)*s/100>s?s:parseInt(K.length)*s/100>s:s;K.thickness=\"number\"===typeof K.thickness?0>K.thickness?0:Math.round(K.thickness):2;var U={color:B[d].stemColor?B[d].stemColor:B[d].color?E.stemColor?E.stemColor:B[d].color:E.stemColor?E.stemColor:e,thickness:B[d].stemThickness?B[d].stemThickness:E.stemThickness,dashType:B[d].stemDashType?B[d].stemDashType:E.stemDashType};U.thickness=\"number\"===typeof U.thickness?0>U.thickness?0:Math.round(U.thickness):2;B[d].getTime?t=B[d].x.getTime():t=B[d].x;\nif(!(ta.axisX.dataInfo.viewPortMax)&&!n(B[d].y)&&B[d].y.length&&\"number\"===typeof B[d].y[0]&&\"number\"===typeof B[d].y[1]){var fa=a.axisX.convertValueToPixel(t);b?k=fa:l=fa;fa=a.axisY.convertValueToPixel(B[d].y[0]);b?m=fa:q=fa;fa=a.axisY.convertValueToPixel(B[d].y[1]);b?p=fa:f=fa;b?(q=a.axisX.reversed?k+(C?y:1)*s/2-(C?D-1:0)*s<<0:k-(C?y:1)*s/2+(C?D-1:0)*s<<0,f=a.axisX.reversed?q-s<<0:q+s<<0):(m=a.axisX.reversed?l+(C?y:1)*s/2-(C?D-1:0)*s<<0:l-(C?y:1)*s/2+(C?D-1:0)*s<<\n0,p=a.axisX.reversed?m-s<<0:m+s<<0);!b&&q>f&&(fa=q,q=f,f=fa);b&&m>p&&(fa=m,m=p,p=fa);fa=E.dataPointIds[d];this._eventManager.objectMap[fa]={id:fa,objectType:\"dataPoint\",dataSeriesIndex:u,dataPointIndex:d,x1:Math.min(m,p),y1:Math.min(q,f),x2:Math.max(p,m),y2:Math.max(f,q),isXYSwapped:b,stemProperties:U,whiskerProperties:K};A(c,Math.min(m,p),Math.min(q,f),Math.max(p,m),Math.max(f,q),e,K,U,b);v&&A(this._eventManager.ghostCtx,m,q,p,f,e,K,U,b);if(B[d].indexLabel||E.indexLabel||B[d].indexLabelFormatter||\nE.indexLabelFormatter)this._indexLabels.push({chartType:\"error\",dataPoint:B[d],dataSeries:E,indexKeyword:0,point:{x:b?B[d].y[1]>=B[d].y[0]?m:p:m+(p-m)/2,y:b?q+(f-q)/2:B[d].y[1]>=B[d].y[0]?f:q},direction:B[d].y[1]>=B[d].y[0]?-1:1,bounds:{x1:b?Math.min(m,p):m,y1:b?q:Math.min(q,f),x2:b?Math.max(m,p):p,y2:b?f:Math.max(q,f)},color:e,axisSwapped:b}),this._indexLabels.push({chartType:\"error\",dataPoint:B[d],dataSeries:E,indexKeyword:1,point:{x:b?B[d].y[1]>=B[d].y[0]?p:m:m+(p-m)/2,y:b?q+(f-q)/2:B[d].y[1]>=\nB[d].y[0]?q:f},direction:B[d].y[1]>=B[d].y[0]?1:-1,bounds:{x1:b?Math.min(m,p):m,y1:b?q:Math.min(q,f),x2:b?Math.max(m,p):p,y2:b?f:Math.max(q,f)},color:e,axisSwapped:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,\n0,0,this.width,this.height),c.clearRect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderRangeBar=function(a){var g=a.targetCanvasCtx||this.plotArea.ctx,c=v?this._preRenderCtx:g;if(!(0>=a.dataSeriesIndexes.length)){var b=null,e=this.plotArea,h=0,r,d,l,k,h=this.options.dataPointMinWidth?this.dataPointMinWidth:this.options.dataPointWidth?\nthis.dataPointWidth:1;r=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.height,0.9*(this.plotArea.height/a.plotType.totalDataSeries))<<0;var m=a.axisX.dataInfo.minDiff;isFinite(m)||(m=0.3*Math.abs(a.axisX.range));m=this.options.dataPointWidth?this.dataPointWidth:0.9*(e.height*(a.axisX.logarithmic?Math.log(m)/Math.log(a.axisX.range):Math.abs(m)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&h>\nr&&(h=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,r));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&rr&&(m=r);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(e.x1,e.y1,e.width,e.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.clip());for(var p=0;pa.axisX.dataInfo.viewPortMax)&&!n(t[h].y)&&t[h].y.length&&\"number\"===typeof t[h].y[0]&&\"number\"===typeof t[h].y[1]){r=a.axisY.convertValueToPixel(t[h].y[0]);d=a.axisY.convertValueToPixel(t[h].y[1]);l=a.axisX.convertValueToPixel(k);l=a.axisX.reversed?l+a.plotType.totalDataSeries*\nm/2-(a.previousDataSeriesCount+p)*m<<0:l-a.plotType.totalDataSeries*m/2+(a.previousDataSeriesCount+p)*m<<0;var y=a.axisX.reversed?l-m<<0:l+m<<0;r>d&&(b=r,r=d,d=b);b=t[h].color?t[h].color:f._colorSet[h%f._colorSet.length];ba(c,r,a.axisX.reversed?y:l,d,a.axisX.reversed?l:y,b,0,null,w,!1,!1,!1,f.fillOpacity);b=f.dataPointIds[h];this._eventManager.objectMap[b]={id:b,objectType:\"dataPoint\",dataSeriesIndex:q,dataPointIndex:h,x1:r,y1:l,x2:d,y2:y};b=O(b);v&&ba(this._eventManager.ghostCtx,r,a.axisX.reversed?\ny:l,d,a.axisX.reversed?l:y,b,0,null,!1,!1,!1,!1);if(t[h].indexLabel||f.indexLabel||t[h].indexLabelFormatter||f.indexLabelFormatter)this._indexLabels.push({chartType:\"rangeBar\",dataPoint:t[h],dataSeries:f,indexKeyword:0,point:{x:t[h].y[1]>=t[h].y[0]?r:d,y:l+(y-l)/2},direction:t[h].y[1]>=t[h].y[0]?-1:1,bounds:{x1:Math.min(r,d),y1:l,x2:Math.max(r,d),y2:y},color:b}),this._indexLabels.push({chartType:\"rangeBar\",dataPoint:t[h],dataSeries:f,indexKeyword:1,point:{x:t[h].y[1]>=t[h].y[0]?d:r,y:l+(y-l)/2},direction:t[h].y[1]>=\nt[h].y[0]?1:-1,bounds:{x1:Math.min(r,d),y1:l,x2:Math.max(r,d),y2:y},color:b})}}}v&&(g.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(e.x1,e.y1,e.width,e.height),this._eventManager.ghostCtx.restore());\nc.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,animationBase:0}}};l.prototype.renderRangeArea=function(a){function g(){if(z){for(var a=null,c=n.length-1;0<=c;c--)a=n[c],b.lineTo(a.x,a.y2),e.lineTo(a.x,a.y2);b.closePath();b.globalAlpha=m.fillOpacity;b.fill();b.globalAlpha=1;e.fill();if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=[],r=this.plotArea;b.save();v&&e.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip());for(var d=0;da.axisX.dataInfo.viewPortMax&&(!m.connectNullData||!K)))if(null!==p[f].y&&p[f].y.length&&\"number\"===typeof p[f].y[0]&&\"number\"===typeof p[f].y[1]){l=a.axisX.convertValueToPixel(s);w=a.axisY.convertValueToPixel(p[f].y[0]);y=a.axisY.convertValueToPixel(p[f].y[1]);q||K?(m.connectNullData&&!q?(b.setLineDash&&(m.options.nullDataLineDashType||C===m.lineDashType&&m.lineDashType!==m.nullDataLineDashType)&&(n[n.length-1].newLineDashArray=D,C=m.nullDataLineDashType,\nb.setLineDash(A)),b.lineTo(l,w),v&&e.lineTo(l,w),n.push({x:l,y1:w,y2:y})):(b.beginPath(),b.moveTo(l,w),z={x:l,y:w},n=[],n.push({x:l,y1:w,y2:y}),v&&(e.beginPath(),e.moveTo(l,w))),K=q=!1):(b.lineTo(l,w),n.push({x:l,y1:w,y2:y}),v&&e.lineTo(l,w),0==f%250&&g());s=m.dataPointIds[f];this._eventManager.objectMap[s]={id:s,objectType:\"dataPoint\",dataSeriesIndex:k,dataPointIndex:f,x1:l,y1:w,y2:y};fp[f].y[1]===a.axisY.reversed?-1:1,color:u}),this._indexLabels.push({chartType:\"rangeArea\",dataPoint:p[f],dataSeries:m,indexKeyword:1,point:{x:l,y:y},direction:p[f].y[0]>\np[f].y[1]===a.axisY.reversed?1:-1,color:u})}else K||q||g(),K=!0;g();Y.drawMarkers(h)}}v&&(c.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&b.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&b.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),b.clearRect(r.x1,r.y1,r.width,r.height),this._eventManager.ghostCtx.restore());\nb.restore();return{source:c,dest:this.plotArea.ctx,animationCallback:N.xClipAnimation,easingFunction:N.easing.linear,animationBase:0}}};l.prototype.renderRangeSplineArea=function(a){function g(a,c){var f=t(w,2);if(0=a.dataSeriesIndexes.length)){var e=this._eventManager.ghostCtx,h=[],r=this.plotArea;b.save();v&&e.save();b.beginPath();b.rect(r.x1,r.y1,r.width,r.height);b.clip();v&&(e.beginPath(),e.rect(r.x1,r.y1,r.width,r.height),e.clip());for(var d=0;da.axisX.dataInfo.viewPortMax&&(!k.connectNullData||!f)))if(null!==m[p].y&&m[p].y.length&&\"number\"===typeof m[p].y[0]&&\"number\"===\ntypeof m[p].y[1]){q=a.axisX.convertValueToPixel(q);f=a.axisY.convertValueToPixel(m[p].y[0]);l=a.axisY.convertValueToPixel(m[p].y[1]);var A=k.dataPointIds[p];this._eventManager.objectMap[A]={id:A,objectType:\"dataPoint\",dataSeriesIndex:n,dataPointIndex:p,x1:q,y1:f,y2:l};w[w.length]={x:q,y:f};y[y.length]={x:q,y:l};p=a.dataSeriesIndexes.length)){var b=this._eventManager.ghostCtx,e=null,h=this.plotArea,r=0,d,n,k,m,p=a.axisY.convertValueToPixel(a.axisY.logarithmic?a.axisY.viewportMinimum:0),r=this.options.dataPointMinWidth?this.dataPointMinWidth:\nthis.options.dataPointWidth?this.dataPointWidth:1;n=this.options.dataPointMaxWidth?this.dataPointMaxWidth:this.options.dataPointWidth?this.dataPointWidth:Math.min(0.15*this.width,0.9*(this.plotArea.width/a.plotType.totalDataSeries))<<0;var q=a.axisX.dataInfo.minDiff;isFinite(q)||(q=0.3*Math.abs(a.axisX.range));q=this.options.dataPointWidth?this.dataPointWidth:0.6*(h.width*(a.axisX.logarithmic?Math.log(q)/Math.log(a.axisX.range):Math.abs(q)/Math.abs(a.axisX.range))/a.plotType.totalDataSeries)<<0;this.dataPointMaxWidth&&\nr>n&&(r=Math.min(this.options.dataPointWidth?this.dataPointWidth:Infinity,n));!this.dataPointMaxWidth&&(this.dataPointMinWidth&&nn&&(q=n);c.save();v&&this._eventManager.ghostCtx.save();c.beginPath();c.rect(h.x1,h.y1,h.width,h.height);c.clip();v&&(this._eventManager.ghostCtx.beginPath(),this._eventManager.ghostCtx.rect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.clip());for(var f=0;fk&&(e=n,n=k,k=e);a.axisY.reversed&&(e=n,n=k,k=e);e=w.dataPointIds[r];this._eventManager.objectMap[e]={id:e,objectType:\"dataPoint\",dataSeriesIndex:l,dataPointIndex:r,x1:d,y1:n,x2:D,y2:k};var K=y[r].color?y[r].color:0y[r].y===a.axisY.reversed?1:-1,bounds:{x1:d,y1:Math.min(n,k),x2:D,y2:Math.max(n,k)},color:e})}}v&&(g.drawImage(this._preRenderCanvas,0,\n0,this.width,this.height),c.globalCompositeOperation=\"source-atop\",a.axisX.maskCanvas&&c.drawImage(a.axisX.maskCanvas,0,0,this.width,this.height),a.axisY.maskCanvas&&c.drawImage(a.axisY.maskCanvas,0,0,this.width,this.height),this._breaksCanvasCtx&&this._breaksCanvasCtx.drawImage(this._preRenderCanvas,0,0,this.width,this.height),c.clearRect(h.x1,h.y1,h.width,h.height),this._eventManager.ghostCtx.restore());c.restore();return{source:g,dest:this.plotArea.ctx,animationCallback:N.fadeInAnimation,easingFunction:N.easing.easeInQuad,\nanimationBase:0}}};var ja=function(a,g,c,b,e,h,r,d,n){if(!(0>c)){\"undefined\"===typeof d&&(d=1);if(!v){var k=Number((r%(2*Math.PI)).toFixed(8));Number((h%(2*Math.PI)).toFixed(8))===k&&(r-=1E-4)}a.save();a.globalAlpha=d;\"pie\"===e?(a.beginPath(),a.moveTo(g.x,g.y),a.arc(g.x,g.y,c,h,r,!1),a.fillStyle=b,a.strokeStyle=\"white\",a.lineWidth=2,a.closePath(),a.fill()):\"doughnut\"===e&&(a.beginPath(),a.arc(g.x,g.y,c,h,r,!1),0<=n&&a.arc(g.x,g.y,n*c,r,h,!0),a.closePath(),a.fillStyle=b,a.strokeStyle=\"white\",a.lineWidth=\n2,a.fill());a.globalAlpha=1;a.restore()}};l.prototype.renderPie=function(a){function g(){if(k&&m){var a=0,b=0,c=0,e=0;n(k.options.indexLabelMaxWidth)&&(k.indexLabelMaxWidth=0.33*q.width);for(var g=0;gMath.PI/2-s&&d.midAngle\nd.midAngle)c=g;a++}else if(d.midAngle>3*Math.PI/2-s&&d.midAngle<3*Math.PI/2+s){if(0===b||f[e].midAngle>d.midAngle)e=g;b++}d.hemisphere=h>Math.PI/2&&h<=3*Math.PI/2?\"left\":\"right\";d.indexLabelTextBlock=new ka(l.plotArea.ctx,{fontSize:d.indexLabelFontSize,fontFamily:d.indexLabelFontFamily,fontColor:d.indexLabelFontColor,fontStyle:d.indexLabelFontStyle,fontWeight:d.indexLabelFontWeight,textAlign:d.indexLabelTextAlign,backgroundColor:d.indexLabelBackgroundColor,maxWidth:d.indexLabelMaxWidth,maxHeight:d.indexLabelWrap?\n5*d.indexLabelFontSize:1.5*d.indexLabelFontSize,text:d.indexLabelText,padding:0,textBaseline:\"middle\"});d.indexLabelTextBlock.measureText()}r=h=0;p=!1;for(g=0;gMath.PI/2-s&&d.midAngle3*Math.PI/2-s&&d.midAngle<3*Math.PI/2+s)&&(r<=b/2&&!p?(d.hemisphere=\"left\",r++):(d.hemisphere=\"right\",p=!0))}}function c(a,\nb){var c=l.plotArea.ctx;c.clearRect(q.x1,q.y1,q.width,q.height);c.fillStyle=l.backgroundColor;c.fillRect(q.x1,q.y1,q.width,q.height);for(c=0;cg){var h=0.07*C*Math.cos(f[c].midAngle),d=0.07*C*Math.sin(f[c].midAngle),r=!1;if(m[c].exploded){if(1E-9a.indexLabelTextBlock.y?f-e:c-g}function e(a){for(var c=null,e=1;eb(f[c],f[a])||(\"right\"===f[a].hemisphere?f[c].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y:f[c].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y)))break;\nelse c=null;return c}function h(a,c,g){g=(g||0)+1;if(1E3c&&p.indexLabelTextBlock.yk)return 0;var q=0,n=0,n=q=q=0;0>c?p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2>r&&p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2+ck&&(c=p.indexLabelTextBlock.y+p.indexLabelTextBlock.height/2+c-k);c=p.indexLabelTextBlock.y+c;r=0;r=\"right\"===p.hemisphere?u.x+Math.sqrt(Math.pow(w,2)-Math.pow(c-u.y,2)):u.x-Math.sqrt(Math.pow(w,2)-Math.pow(c-u.y,2));n=u.x+C*Math.cos(p.midAngle);q=u.y+C*Math.sin(p.midAngle);q=Math.sqrt(Math.pow(r-n,2)+Math.pow(c-q,2));n=Math.acos(C/w);q=Math.acos((w*w+C*C-q*q)/(2*C*w));c=qb(f[r],f[a])||(\"right\"===f[a].hemisphere?f[r].indexLabelTextBlock.y<=f[a].indexLabelTextBlock.y:f[r].indexLabelTextBlock.y>=f[a].indexLabelTextBlock.y)))break;else r=null;n=r;q=e(a);k=r=0;0>c?(k=\"right\"===p.hemisphere?n:q,d=c,null!==k&&(n=-c,c=p.indexLabelTextBlock.y-p.indexLabelTextBlock.height/2-(f[k].indexLabelTextBlock.y+f[k].indexLabelTextBlock.height/2),c-n\n+r.toFixed(z)&&(d=c>v?-(c-v):-(n-(k-r)))))):0v?c-v:n-(r-k)))));d&&(g=p.indexLabelTextBlock.y+d,c=0,c=\"right\"===p.hemisphere?u.x+Math.sqrt(Math.pow(w,2)-Math.pow(g-u.y,2)):u.x-Math.sqrt(Math.pow(w,2)-Math.pow(g-u.y,2)),p.midAngle>Math.PI/2-s&&p.midAngler.indexLabelTextBlock.x?c=r.indexLabelTextBlock.x-15:\"right\"===p.hemisphere&&(\"left\"===a.hemisphere&&c3*Math.PI/2-s&&p.midAngle<3*Math.PI/2+s&&(r=(a-1+f.length)%f.length,r=f[r],a=f[(a+1+f.length)%f.length],\"right\"===p.hemisphere&&\"left\"===r.hemisphere&&ca.indexLabelTextBlock.x)&&(c=a.indexLabelTextBlock.x-15)),p.indexLabelTextBlock.y=g,p.indexLabelTextBlock.x=c,p.indexLabelAngle=Math.atan2(p.indexLabelTextBlock.y-u.y,p.indexLabelTextBlock.x-u.x))}return d}function r(){var a=l.plotArea.ctx;a.fillStyle=\"grey\";a.strokeStyle=\"grey\";a.font=\"16px Arial\";a.textBaseline=\"middle\";for(var c=a=0,g=0,d=!0,c=0;10>c&&(1>c||0t){for(var B=s=0,E=0;Es?r.indexLabelText=\"\":r.indexLabelTextBlock.maxWidth=0.85*s,0.3*r.indexLabelTextBlock.maxWidthg&&(g=x)),x=x=0,0g&&(g=x)));var M=function(a,b,c){for(var e=[],g=0;e.push(f[b]),b!==c;b=(b+1+m.length)%m.length);e.sort(function(a,b){return a.y-b.y});for(b=0;bt){q=n.indexLabelTextBlock.x;var l=n.indexLabelTextBlock.y-n.indexLabelTextBlock.height/2,s=n.indexLabelTextBlock.y+n.indexLabelTextBlock.height/2,x=k.indexLabelTextBlock.y-k.indexLabelTextBlock.height/2,u=k.indexLabelTextBlock.x+k.indexLabelTextBlock.width,w=k.indexLabelTextBlock.y+k.indexLabelTextBlock.height/2;q=n.indexLabelTextBlock.x+n.indexLabelTextBlock.widthu+p||l>w+p||sa&&(a=r),d!==a&&(c=d,g+=-t),0===r%Math.max(m.length/\n10,3)&&(h=!0)):h=!0;h&&(0=a.dataSeriesIndexes.length)){var k=this.data[a.dataSeriesIndexes[0]],m=k.dataPoints,p=10,q=this.plotArea,f=k.dataPointEOs,v=2,w,y=1.3,s=20/180*Math.PI,z=6,u={x:(q.x2+q.x1)/2,y:(q.y2+q.y1)/2},t=0;a=!1;for(var B=0;Bb&&(e=b,h=!0);var r=m[c].color?m[c].color:k._colorSet[c%k._colorSet.length];e>g&&ja(l.plotArea.ctx,f[c].center,f[c].radius,r,k.type,g,e,k.fillOpacity,f[c].percentInnerRadius);if(h)break}d();l.dispatchEvent(\"dataAnimationIterationEnd\",{chart:l});1<=a&&l.dispatchEvent(\"dataAnimationEnd\",{chart:l})},function(){l.disableToolTip=!1;l._animator.animate(0,\nl.animatedRender?500:0,function(a){c(a,!1);d();l.dispatchEvent(\"dataAnimationIterationEnd\",{chart:l})});l.dispatchEvent(\"dataAnimationEnd\",{chart:l})})}}};var ra=function(a,g,c,b){\"undefined\"===typeof c&&(c=1);0>=Math.round(g.y4-g.y1)||(a.save(),a.globalAlpha=c,a.beginPath(),a.moveTo(Math.round(g.x1),Math.round(g.y1)),a.lineTo(Math.round(g.x2),Math.round(g.y2)),a.lineTo(Math.round(g.x3),Math.round(g.y3)),a.lineTo(Math.round(g.x4),Math.round(g.y4)),\"undefined\"!==g.x5&&(a.lineTo(Math.round(g.x5),Math.round(g.y5)),\na.lineTo(Math.round(g.x6),Math.round(g.y6))),a.closePath(),a.fillStyle=b?b:g.color,a.fill(),a.globalAplha=1,a.restore())};l.prototype.renderFunnel=function(a){function g(){for(var a=0,b=[],c=0;cp?(p=c,d=(b+p)*(e-k)/2,a-=d,m=e-k,k+=e-k,m+=0==p?0:a/p,k+=a/p,d=!0):(m=(Math.abs(ca)*b-Math.sqrt(p))/2,p=b-2*m/Math.abs(ca),k+=m,k>e&&(k-=m,p=c,d=(b+p)*(e-k)/2,a-=d,m=e-k,k+=e-k,m+=a/p,k+=a/p,d=!0),\nb=p)),g.push(m);return g}function b(){if(s&&z){for(var a,b,c,e,g,h,r,d,k,m,p,q,l,x,u,w=[],t=[],I={percent:null,total:null},B=null,A=0;Aw[A]&&(w[A]=A!==da?s.reversed?Q[A].x3-Q[A].x4:Q[A].x2-Q[A].x1:Q[A].x2-Q[A].x1,w[A]/=2));l=b.indexLabelMaxWidth?b.indexLabelMaxWidth:s.options.indexLabelMaxWidth?s.indexLabelMaxWidth:w[A];if(l>w[A]||0>l)l=w[A];t[A]=\"inside\"===s.indexLabelPlacement?q?Math.max(Q[A].height,h):1.5*h:!1;I=y.getPercentAndTotal(s,b);if(s.indexLabelFormatter||b.indexLabelFormatter)B={chart:y.options,dataSeries:s,dataPoint:b,total:I.total,percent:I.percent};b=b.indexLabelFormatter?b.indexLabelFormatter(B):\nb.indexLabel?y.replaceKeywordsWithValue(b.indexLabel,b,s,A):s.indexLabelFormatter?s.indexLabelFormatter(B):s.indexLabel?y.replaceKeywordsWithValue(s.indexLabel,b,s,A):b.label?b.label:\"\";0>=m&&(m=0);1E3>l&&1E3-lr?r:s.indexLabelMaxWidth:r,\nd=G.length-1;0<=d;d--){h=z[G[d].id];c=G[d];e=c.textBlock;b=(a=q(d)b.y&&(g=!0);c=h.indexLabelMaxWidth||r;if(c>r||0>c)c=r;f.push(c)}if(g)for(d=G.length-1;0<=d;d--)a=Q[d],G[d].textBlock.maxWidth=f[f.length-(d+1)],G[d].textBlock.measureText(),G[d].textBlock.height=G[d].textBlock.height===2*G[d].textBlock.padding?0:G[d].textBlock.height,G[d].textBlock.width=G[d].textBlock.width===2*G[d].textBlock.padding?0:G[d].textBlock.width,G[d].textBlock.x=\nL-r,c=G[d].textBlock.heightV+A&&(G[d].textBlock.y=V+A-G[d].height),G[d].textBlock.y\nua+A&&(G[d].textBlock.y=ua+A-G[d].height))}function h(){var a,b,c,g;if(\"inside\"!==s.indexLabelPlacement)for(var e=0;eY?f(c).x2+1:(a.x2+a.x3)/2+1:(a.x2+a.x3)/2+1:\"undefined\"!==typeof a.x5?cV+A&&(G[e].textBlock.y=\nV+A-G[e].height),G[e].textBlock.yua+A&&(G[e].textBlock.y=ua+A-G[e].height)));else for(e=0;e=c?(b=e!=da?(a.x4+a.x3)/2-g/2:(a.x5+a.x4)/2-g/2,c=e!=da?(a.y1+a.y3)/2-c/2:(a.y1+a.y4)/2-c/2,G[e].textBlock.x=b,G[e].textBlock.y=c):G[e].isDirty=!0)}function r(){function a(b,c){var e;if(0>b||b>=G.length)return 0;\nvar g,f=G[b].textBlock;if(0>c){c*=-1;g=p(b);e=d(g,b);if(e>=c)return f.y-=c,c;if(0==b)return 0=c)return f.y+=c,c;if(b==Q.length-1)return 0g)&&(d=q(n),!(d>=G.length-1)&&G[n].textBlock.y+G[n].height+ea>G[d].textBlock.y&&\n(G[n].textBlock.y=G[n].textBlock.y+G[n].height-g>g-G[n].textBlock.y?g+1:g-G[n].height-1))}for(d=Q.length-1;0g&&(g=0,G[g].isDirty))break;if(G[d].textBlock.y=f){f=0;r+=G[f].height;break}g=p(f);if(0>g){f=0;r+=G[f].height;break}}if(f!=d){h=G[f].textBlock.y;a-=h;a=r-a;h=c(a,e,f);break}}}return h}function c(a,\nb,e){var g=[],f=0,h=0;for(a=Math.abs(a);e<=b;e++)g.push(Q[e]);g.sort(function(a,b){return a.height-b.height});for(e=0;e+k.y.toFixed(6))&&(e=h.y+e+ea-k.y,g=a(l,-e),ga?s.reversed?ua-A:V-A:G[a].textBlock.y+G[a].height+ea)}function l(a,b,c){var e,g,f,r=[],d=A,p=[];-1!==b&&(0<=X.indexOf(b)?(g=X.indexOf(b),X.splice(g,1)):(X.push(b),X=X.sort(function(a,b){return a-b})));if(0===X.length)r=ja;else{g=A*(1!=X.length||0!=X[0]&&X[0]!=Q.length-1?2:1)/k();for(var q=0;qp&&(p*=-1),c.y1+=b-p[e],c.y2+=b-p[e],c.y3+=\nb-p[e],c.y4+=b-p[e],c.y5&&(c.y5+=b-p[e],c.y6+=b-p[e]),p[e]=b}};a._animator.animate(0,c,function(c){var e=a.plotArea.ctx||a.ctx;ia=!0;e.clearRect(u.x1,u.y1,u.x2-u.x1,u.y2-u.y1);e.fillStyle=a.backgroundColor;e.fillRect(u.x1,u.y1,u.width,u.height);n.changeSection(c,b);var g={};g.dataSeries=s;g.dataPoint=s.reversed?s.dataPoints[z.length-1-b]:s.dataPoints[b];g.index=s.reversed?z.length-1-b:b;a.toolTip.highlightObjects([g]);for(g=0;ga){b=Q[c];break}return b?(a=b.y6?a>b.y6?b.x3+(b.x4-b.x3)/(b.y4-b.y3)*(a-b.y3):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2):b.x2+(b.x3-b.x2)/(b.y3-b.y2)*(a-b.y2),{x1:a,x2:a}):-1}function t(a){for(var b=0;b=a.dataSeriesIndexes.length)){for(var s=this.data[a.dataSeriesIndexes[0]],z=s.dataPoints,u=this.plotArea,A=0.025*u.width,B=0.01*u.width,C=0,D=u.height-2*A,J=Math.min(u.width-2*B,2.8*u.height),K=!1,U=0;UD?O=D:0>=O&&(O=0),F>a?F=a-0.5:0>=F&&(F=0)):\"pyramid\"===s.type&&(F=O=0,s.reversed=s.reversed?!1:!0);var B=U+a/2,W=U,Z=U+a,V=s.reversed?R:P,M=B-F/2,$=B+F/2,Y=s.reversed?P+O:R-O,ua=\ns.reversed?P:R;F=s.valueRepresents=s.valueRepresents?s.valueRepresents:\"height\";U=[];a=[];var Q=[],B=[],ba=P,da,ca=(Y-V)/(M-W),ga=-ca,J=\"area\"===F?c():g();if(-1!==J){if(s.reversed)for(B.push(ba),F=J.length-1;0a&&(C=a));for(F=0;F
Please right click on the image and save it to your device
\"),\ng.document.close()}}};l.prototype.print=function(){var a=this.exportChart({toDataURL:!0}),g=document.createElement(\"iframe\");g.setAttribute(\"class\",\"canvasjs-chart-print-frame\");L(g,{position:\"absolute\",width:\"100%\",border:\"0px\",margin:\"0px 0px 0px 0px\",padding:\"0px 0px 0px 0px\"});g.style.height=this.height+\"px\";this._canvasJSContainer.appendChild(g);var c=this,b=g.contentWindow||g.contentDocument.document||g.contentDocument;b.document.open();b.document.write('\\n');b.document.body&&b.document.body.style&&(b.document.body.style.margin=\"0px 0px 0px 0px\",b.document.body.style.padding=\"0px 0px 0px 0px\");b.document.close();setTimeout(function(){b.focus();b.print();setTimeout(function(){c._canvasJSContainer.removeChild(g)},1E3)},500)};l.prototype.getPercentAndTotal=function(a,g){var c=null,b=null,e=c=null;if(0<=a.type.indexOf(\"stacked\"))b=0,c=g.x.getTime?g.x.getTime():g.x,c in a.plotUnit.yTotals&&(b=a.plotUnit.yTotals[c],c=a.plotUnit.yAbsTotals[c],\ne=isNaN(g.y)?0:0===c?0:100*(g.y/c));else if(\"pie\"===a.type||\"doughnut\"===a.type||\"funnel\"===a.type||\"pyramid\"===a.type){for(c=b=0;c=r||\"undefined\"===typeof r||0>=v||\"undefined\"===typeof v))if(\"horizontal\"===this.orientation){q.textBlock=\nnew ka(this.ctx,{x:0,y:0,maxWidth:v,maxHeight:this.itemWrap?r:this.lineHeight,angle:0,text:q.text,horizontalAlign:\"left\",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:\"middle\"});q.textBlock.measureText();null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+d+(\"line\"===q.chartType||\"spline\"===q.chartType||\"stepLine\"===q.chartType?2*0.1*this.lineHeight:0)));if(!p||p.width+Math.round(q.textBlock.width+\nw+d+(0===p.width?0:this.horizontalSpacing)+(\"line\"===q.chartType||\"spline\"===q.chartType||\"stepLine\"===q.chartType?2*0.1*this.lineHeight:0))>h)p={items:[],width:0},k.push(p),this.height+=f,f=0;f=Math.max(f,q.textBlock.height?q.textBlock.height:this.lineHeight);q.textBlock.x=p.width;q.textBlock.y=0;p.width+=Math.round(q.textBlock.width+w+d+(0===p.width?0:this.horizontalSpacing)+(\"line\"===q.chartType||\"spline\"===q.chartType||\"stepLine\"===q.chartType?2*0.1*this.lineHeight:0));p.items.push(q);this.width=\nMath.max(p.width,this.width)}else q.textBlock=new ka(this.ctx,{x:0,y:0,maxWidth:u,maxHeight:!0===this.itemWrap?r:1.5*this.fontSize,angle:0,text:q.text,horizontalAlign:\"left\",fontSize:this.fontSize,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontColor:this.fontColor,fontStyle:this.fontStyle,textBaseline:\"middle\"}),q.textBlock.measureText(),null!==this.itemWidth&&(q.textBlock.width=this.itemWidth-(w+d+(\"line\"===q.chartType||\"spline\"===q.chartType||\"stepLine\"===q.chartType?2*0.1*this.lineHeight:\n0))),this.height>0,0),this.dataPoints.length):0):(m=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,m=0>0,0),this.dataPoints.length):0));for(;;){h=0a?b.x/a:a/b.x:Math.abs(b.x-a);pm-e&&m+e>=this.dataPoints.length)break;-1===d?(e++,d=1):d=-1}return g||(c.dataPoint.x.getTime?c.dataPoint.x.getTime():c.dataPoint.x)!==(a.getTime?a.getTime():a)?g&&null!==c.dataPoint?c:null:\nc};W.prototype.getDataPointAtXY=function(a,g,c){if(!this.dataPoints||0===this.dataPoints.length||athis.chart.plotArea.x2||gthis.chart.plotArea.y2)return null;c=c||!1;var b=[],e=0,h=0,d=1,l=!1,v=Infinity,k=0,m=0,p=0;if(\"none\"!==this.chart.plotInfo.axisPlacement)if(p=(this.chart.axisX[0]?this.chart.axisX[0]:this.chart.axisX2[0]).getXValueAt({x:a,y:g}),this.axisX.logarithmic)var q=Math.log(this.dataPoints[this.dataPoints.length-1].x/this.dataPoints[0].x),\np=1>0,0),this.dataPoints.length):0;else q=this.dataPoints[this.dataPoints.length-1].x-this.dataPoints[0].x,p=0>0,0),this.dataPoints.length):0;for(;;){h=0=\nq.x1&&(a<=q.x2&&g>=q.y1&&g<=q.y2)&&(b.push({dataPoint:f,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y1-g),Math.abs(q.y2-g))}),l=!0);break;case \"line\":case \"stepLine\":case \"spline\":case \"area\":case \"stepArea\":case \"stackedArea\":case \"stackedArea100\":case \"splineArea\":case \"scatter\":var w=na(\"markerSize\",f,this)||4,y=c?20:w,t=Math.sqrt(Math.pow(q.x1-a,2)+Math.pow(q.y1-g,2));t<=y&&b.push({dataPoint:f,dataPointIndex:h,dataSeries:this,distance:t});q=\nMath.abs(q.x1-a);q<=v?v=q:0y&&(t=Math.atan2(g-w.y,a-w.x),0>t&&(t+=2*Math.PI),t=Number(((180*(t/Math.PI)%360+360)%360).toFixed(12)),w=Number(((180*(q.startAngle/Math.PI)%360+360)%360).toFixed(12)),y=Number(((180*(q.endAngle/Math.PI)%360+360)%360).toFixed(12)),0===y&&1=y&&(0!==f.y&&!n(f.y))&&(y+=360,tw&&tt.y1&&gt.y6?(h=t.x6+(t.x5-t.x6)/(t.y5-t.y6)*(g-t.y6),t=t.x3+(t.x4-t.x3)/(t.y4-t.y3)*(g-t.y3)):(h=t.x1+(t.x6-t.x1)/(t.y6-t.y1)*(g-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(g-t.y2)):(h=t.x1+(t.x4-t.x1)/(t.y4-t.y1)*(g-t.y1),t=t.x2+(t.x3-t.x2)/(t.y3-t.y2)*(g-t.y2)),a>h&&a=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&g>=q.y4-q.borderThickness/2&&g<=q.y1+q.borderThickness/2||Math.abs(q.x2-a+q.x1-a)=q.y1&&g<=q.y4)b.push({dataPoint:f,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-g),Math.abs(q.y3-g))}),l=!0;break;case \"candlestick\":if(a>=q.x1-q.borderThickness/2&&a<=q.x2+q.borderThickness/2&&g>=q.y2-q.borderThickness/2&&g<=q.y3+q.borderThickness/2||Math.abs(q.x2-\na+q.x1-a)=q.y1&&g<=q.y4)b.push({dataPoint:f,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(q.x1-a),Math.abs(q.x2-a),Math.abs(q.y2-g),Math.abs(q.y3-g))}),l=!0;break;case \"ohlc\":if(Math.abs(q.x2-a+q.x1-a)=q.y2&&g<=q.y3||a>=q.x1&&a<=(q.x2+q.x1)/2&&g>=q.y1-q.borderThickness/2&&g<=q.y1+q.borderThickness/2||a>=(q.x1+q.x2)/2&&a<=q.x2&&g>=q.y4-q.borderThickness/2&&g<=q.y4+q.borderThickness/2)b.push({dataPoint:f,dataPointIndex:h,dataSeries:this,distance:Math.min(Math.abs(q.x1-\na),Math.abs(q.x2-a),Math.abs(q.y2-g),Math.abs(q.y3-g))}),l=!0}if(l||1E3p-e&&p+e>=this.dataPoints.length)break;-1===d?(e++,d=1):d=-1}a=null;for(g=0;gp[f].endValue;f++);a=f=p[f].startValue&&c<=p[f].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:ga(m,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,\ntext:this.prefix+a+this.suffix,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,cornerRadius:this.labelCornerRadius,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\",borderThickness:0}),this._labels.push({position:m,textBlock:a,effectiveHeight:null}))}f=q;for(c=this.intervalStartPosition;c<=e;c=parseFloat(1E-12>this.interval?\nthis.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval:(this.logarithmic&&this.equidistantInterval?c*Math.pow(this.logarithmBase,this.interval):c+this.interval).toFixed(12))){for(;fp[f].endValue;f++);a=f=p[f].startValue&&c<=p[f].endValue;m=c;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,value:m,label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:\nga(m,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:h,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,fontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\"}),\nthis._labels.push({position:m,textBlock:a,effectiveHeight:null}))}}else for(this.intervalStartPosition=this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval),e=Za(new Date(this.viewportMaximum),this.interval,this.intervalType),f=q,c=this.intervalStartPosition;cp[f].endValue;f++);m=a;a=f=p[f].startValue&&a<=p[f].endValue;a||(a=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.options,\nvalue:new Date(m),label:this.labels[m]?this.labels[m]:null}):\"axisX\"===this.type&&this.labels[m]?this.labels[m]:Da(m,this.valueFormatString,this.chart._cultureInfo),a=new ka(this.ctx,{x:0,y:0,maxWidth:h,backgroundColor:this.labelBackgroundColor,borderColor:this.labelBorderColor,borderThickness:this.labelBorderThickness,cornerRadius:this.labelCornerRadius,maxHeight:d,angle:this.labelAngle,text:this.prefix+a+this.suffix,textAlign:this.labelTextAlign,fontSize:this.labelFontSize,fontFamily:this.labelFontFamily,\nfontWeight:this.labelFontWeight,fontColor:this.labelFontColor,fontStyle:this.labelFontStyle,textBaseline:\"middle\"}),this._labels.push({position:m,textBlock:a,effectiveHeight:null,breaksLabelType:void 0}))}if(\"bottom\"===this._position||\"top\"===this._position)l=this.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.width*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/\nMath.log(this.range):this.lineCoordinates.width/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*T[this.intervalType+\"Duration\"]*this.interval,h=\"undefined\"===typeof this.options.labelMaxWidth?0.5*this.chart.width>>0:this.options.labelMaxWidth,this.chart.panEnabled||(d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.8*this.chart.height>>0:1.5*this.labelFontSize);else if(\"left\"===this._position||\"right\"===this._position)l=\nthis.logarithmic&&!this.equidistantInterval&&2<=this._labels.length?this.lineCoordinates.height*Math.log(Math.min(this._labels[this._labels.length-1].position/this._labels[this._labels.length-2].position,this._labels[1].position/this._labels[0].position))/Math.log(this.range):this.lineCoordinates.height/(this.logarithmic&&this.equidistantInterval?Math.log(this.range)/Math.log(this.logarithmBase):Math.abs(this.range))*T[this.intervalType+\"Duration\"]*this.interval,this.chart.panEnabled||(h=\"undefined\"===\ntypeof this.options.labelMaxWidth?0.3*this.chart.width>>0:this.options.labelMaxWidth),d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize;for(b=0;bthis.labelAngle?this.labelAngle-=\n180:270<=this.labelAngle&&360>=this.labelAngle&&(this.labelAngle-=360)),\"bottom\"===this._position||\"top\"===this._position)if(h=0.9*l>>0,q=0,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=this.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=this.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;cq&&(w=c,q=m.width)}c=0;for(c=this.intervalStartPosition>0>2*h&&(this.sessionVariables.labelAngle=-25)):(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>\nh?-25:this.sessionVariables.labelAngle):n(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelMaxWidth=h,g&&A.width+g.width>>0>2*h&&(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m)):(this.sessionVariables.labelAngle=this.sessionVariables.labelMaxWidth>h?-25:this.sessionVariables.labelAngle,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth,this.sessionVariables.labelMaxHeight=\nd,this.sessionVariables.labelWrap=this.labelWrap);else{if(n(this.options.labelWrap))if(!n(this.options.labelMaxWidth))this.options.labelMaxWidth>0,f=this.labelFontSize,qp&&(p=b-2*h,b>=2*h&&b<2.2*h?(this.sessionVariables.labelMaxWidth=\nh,n(this.options.labelFontSize)&&12=2.2*h&&b<2.8*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=f):b>=2.8*h&&b<3.2*h?(this.sessionVariables.labelMaxWidth=Math.max(h,q),this.sessionVariables.labelWrap=!0,n(this.options.labelFontSize)&&12=3.2*h&&b<3.6*h?(this.sessionVariables.labelAngle=-25,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelFontSize=this.labelFontSize):b>3.6*h&&b<5*h?(n(this.options.labelFontSize)&&125*h&&(this.sessionVariables.labelWrap=!0,this.sessionVariables.labelMaxWidth=h,this.sessionVariables.labelFontSize=f,this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelAngle=this.labelAngle));else if(w===c&&(0===w&&q+this._labels[w+1].textBlock.measureText().width-2*h>p||w===this._labels.length-1&&q+this._labels[w-\n1].textBlock.measureText().width-2*h>p||0p&&q+this._labels[w-1].textBlock.measureText().width-2*h>p))p=0===w?q+this._labels[w+1].textBlock.measureText().width-2*h:q+this._labels[w-1].textBlock.measureText().width-2*h,this.sessionVariables.labelFontSize=n(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelAngle=-25,this.sessionVariables.labelMaxWidth=\nm;else if(0===p)for(this.sessionVariables.labelFontSize=n(this.options.labelFontSize)?f:this.options.labelFontSize,this.sessionVariables.labelWrap=!0,b=0;b>0>2*h&&(this.sessionVariables.labelAngle=\n-25))}else(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxHeight=0===this.labelAngle?d:Math.min((b-h*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)),b),m=0!=this.labelAngle?(k-(t+a.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)))/Math.sin(Math.PI/180*Math.abs(this.labelAngle)):h,this.sessionVariables.labelMaxHeight=this.labelWrap?(k-m*Math.sin(Math.PI/180*Math.abs(this.labelAngle)))/Math.cos(Math.PI/180*Math.abs(this.labelAngle)):\n1.5*this.labelFontSize,n(this.options.labelWrap))?n(this.options.labelWrap)&&(this.labelWrap&&!n(this.options.labelMaxWidth)?(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelMaxHeight=d):(this.sessionVariables.labelAngle=this.labelAngle,this.sessionVariables.labelMaxWidth=m,this.sessionVariables.labelMaxHeight=b<0.9*l?0.9*l:b,this.sessionVariables.labelWrap=this.labelWrap)):(this.options.labelWrap?\n(this.sessionVariables.labelWrap=this.labelWrap,this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m):(n(this.options.labelMaxWidth),this.sessionVariables.labelMaxWidth=this.options.labelMaxWidth?this.options.labelMaxWidth:m,this.sessionVariables.labelWrap=this.labelWrap),this.sessionVariables.labelMaxHeight=d)}for(b=0;b>0:this.options.labelMaxWidth,d=\"undefined\"===typeof this.options.labelWrap||this.labelWrap?0.3*this.chart.height>>0:1.5*this.labelFontSize,!this.chart.panEnabled&&1<=this._labels.length){this.sessionVariables.labelFontSize=\nthis.labelFontSize;this.sessionVariables.labelMaxWidth=h;this.sessionVariables.labelMaxHeight=d;this.sessionVariables.labelAngle=n(this.sessionVariables.labelAngle)?0:this.sessionVariables.labelAngle;this.sessionVariables.labelWrap=this.labelWrap;for(c=0;c>0,l-2*d>q&&(q=l-2*d,l>=2*d&&\nl<2.4*d?(n(this.options.labelFontSize)&&12=2.4*d&&l<2.8*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelFontSize=this.labelFontSize,this.sessionVariables.labelWrap=!0):l>=2.8*d&&l<3.2*d?(this.sessionVariables.labelMaxHeight=d,this.sessionVariables.labelWrap=\n!0,n(this.options.labelFontSize)&&12=3.2*d&&l<3.6*d?(this.sessionVariables.labelMaxHeight=b,this.sessionVariables.labelWrap=!0,this.sessionVariables.labelFontSize=this.labelFontSize):l>3.6*\nd&&l<10*d?(n(this.options.labelFontSize)&&1210*d&&l<50*d&&(n(this.options.labelFontSize)&&12>0:1.5*this.labelFontSize;if(\"left\"===this._position||\"right\"===this._position)n(h.options.labelWrap)&&!n(this.sessionVariables.stripLineLabelMaxHeight)?y=this.sessionVariables.stripLineLabelMaxHeight:this.sessionVariables.stripLineLabelMaxHeight=\ny=h.labelWrap?0.8*this.chart.width>>0:1.5*this.labelFontSize;n(h.labelBackgroundColor)&&(h.labelBackgroundColor=\"#EEEEEE\")}else d=\"bottom\"===this._position||\"top\"===this._position?0.9*this.chart.width>>0:0.9*this.chart.height>>0,y=n(h.options.labelWrap)||h.labelWrap?\"bottom\"===this._position||\"top\"===this._position?0.8*this.chart.width>>0:0.8*this.chart.height>>0:1.5*this.labelFontSize,n(h.labelBackgroundColor)&&(n(h.startValue)&&0!==h.startValue?h.labelBackgroundColor=v?\"transparent\":null:h.labelBackgroundColor=\n\"#EEEEEE\");a=new ka(this.ctx,{x:0,y:0,backgroundColor:h.labelBackgroundColor,borderColor:h.labelBorderColor,borderThickness:h.labelBorderThickness,cornerRadius:h.labelCornerRadius,maxWidth:h.options.labelMaxWidth?h.options.labelMaxWidth:d,maxHeight:y,angle:this.labelAngle,text:h.labelFormatter?h.labelFormatter({chart:this.chart,axis:this,stripLine:h}):h.label,textAlign:this.labelTextAlign,fontSize:\"outside\"===h.labelPlacement?h.options.labelFontSize?h.labelFontSize:this.labelFontSize:h.labelFontSize,\nfontFamily:\"outside\"===h.labelPlacement?h.options.labelFontFamily?h.labelFontFamily:this.labelFontFamily:h.labelFontFamily,fontWeight:\"outside\"===h.labelPlacement?h.options.labelFontWeight?h.labelFontWeight:this.labelFontWeight:h.labelFontWeight,fontColor:h.labelFontColor||h.color,fontStyle:\"outside\"===h.labelPlacement?h.options.labelFontStyle?h.labelFontStyle:this.fontWeight:h.labelFontStyle,textBaseline:\"middle\"});this._stripLineLabels.push({position:h.value,textBlock:a,effectiveHeight:null,stripLine:h})}};\nD.prototype.createLabelsAndCalculateWidth=function(){var a=0,g=0;this._labels=[];this._stripLineLabels=[];var c=this.chart.isNavigator?0:5;if(\"left\"===this._position||\"right\"===this._position){this.createLabels();if(\"inside\"!=this.labelPlacement||\"inside\"===this.labelPlacement&&0=this.viewportMinimum&&this._stripLineLabels[g].stripLine.value<=this.viewportMaximum)&&(b=this._stripLineLabels[g].textBlock,e=b.measureText(),h=0===this.labelAngle?e.width:e.width*Math.cos(Math.PI/180*Math.abs(this.labelAngle))+(e.height-b.fontSize/2)*\nMath.sin(Math.PI/180*Math.abs(this.labelAngle)),\"inside\"===this.tickPlacement&&(h+=this.tickLength),\"inside\"===this.labelPlacement&&(a+=0=this.viewportMinimum&&this._stripLineLabels[c].stripLine.value<=this.viewportMaximum)&&(g=this._stripLineLabels[c].textBlock,e=g.measureText(),h=0===this.labelAngle?e.height:e.width*Math.sin(Math.PI/180*Math.abs(this.labelAngle))+(e.height-g.fontSize/2)*Math.cos(Math.PI/180*Math.abs(this.labelAngle)),\"inside\"===this.tickPlacement&&(h+=this.tickLength),\n\"inside\"===this.labelPlacement&&(a+=0q[f].viewportMaximum);w++)v[w].endValue=\nq[f].viewPortMinimum&&(q[f].scaleBreaks.lastBreakIndex=w));for(var y=w=0,s=0,z=0,u=0,A=0,B=0,C,D,H=l=0,K,J,L,v=K=J=L=!1,f=0;fw;){var F=0,T=0,S=0,V=0,W=e=0,M=0,Z=0,X=0,Y=0,Q=0,$=0;if(c&&0m.width-p?m.width-p:h.x2-$-Z);if(a&&0m.width-p?m.width-p:h.x2-$-Z),a[f]._labels&&1t&&(l+=0a[f].labelAngle?C-yt&&(l=D+s/2-t-$),C-ya[f].labelAngle&&0m.width-p?m.width-p:h.x2-$-Z),g[f].lineCoordinates.width=Math.abs(t-d),g[f]._labels&&1w;){X=V=S=Z=M=W=e=R=O=F=Y=0;if(a&&0m.width-10?m.width-10:h.x2-X-W),c[f].labelAutoFit&&!n(z)&&(0c[f].labelAngle?Math.max(d,z):0===c[f].labelAngle?Math.max(d,z/2):d),0b[f].chart.width-10?b[f].chart.width-10:h.x2-X-W),b[f]&&b[f].labelAutoFit&&!n(A)&&(0c[f].chart.height?c[f].chart.height:h.y2),c[f].lineCoordinates.y1=l-(p[f]+c[f].margin+Y),c[f].lineCoordinates.y2=l-(p[f]+c[f].margin+Y),\"inside\"===c[f].labelPlacement&&0m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2-S):h.y2>m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2;if(c&&0c[M].labelAngle||0===c[M].labelAngle?t-V:d);if(b&&0m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2-S):h.y2>m.height-Math.max(M,10)?m.height-Math.max(M,10):h.y2;if(c&&0c[M].labelAngle?Math.max(t,z):0===c[M].labelAngle?Math.max(t,z/2):t,d=\n0>c[M].labelAngle||0===c[M].labelAngle?t-X:d);if(b&&0g[h].spacing?0:Math.abs(g[h].spacing/c),this.logarithmic&&(g[h].size=Math.pow(this.logarithmBase,\ng[h].size))};D.prototype.calculateBreaksInPixels=function(){if(!(this.scaleBreaks&&0>=this.scaleBreaks._appliedBreaks.length)){var a=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];a.length&&(this.scaleBreaks.firstBreakIndex=this.scaleBreaks.lastBreakIndex=null);for(var g=0;gthis.conversionParameters.maximum);g++)a[g].endValue=this.conversionParameters.minimum&&\n(a[g].startPixel=this.convertValueToPixel(a[g].startValue),this.scaleBreaks.lastBreakIndex=g),a[g].endValue<=this.conversionParameters.maximum&&(a[g].endPixel=this.convertValueToPixel(a[g].endValue)))}};D.prototype.renderLabelsTicksAndTitle=function(){var a=this,g=!1,c=0,b=0,e=1,h=0;0!==this.labelAngle&&360!==this.labelAngle&&(e=1.2);if(\"undefined\"===typeof this.options.interval){if(\"bottom\"===this._position||\"top\"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=\n[],e=0!==this.labelAngle&&360!==this.labelAngle?1:1.2,d,l=this.viewportMaximum,n=this.lineCoordinates.width/Math.log(this.range),k=this._labels.length-1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||dthis.lineCoordinates.width*e&&this.labelAutoFit&&(g=!0)}if(\"left\"===this._position||\"right\"===this._position)if(this.logarithmic&&!this.equidistantInterval&&this.labelAutoFit){for(var c=[],m,l=this.viewportMaximum,n=this.lineCoordinates.height/Math.log(this.range),k=this._labels.length-\n1;0<=k;k--){p=this._labels[k];if(p.positionthis.viewportMaximum||!(k===this._labels.length-1||mthis.lineCoordinates.height*e&&this.labelAutoFit&&(g=!0)}}this.logarithmic&&(!this.equidistantInterval&&this.labelAutoFit)&&this._labels.sort(function(a,b){return a.position-b.position});var k=0,p,q;if(\"bottom\"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=\nthis.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y+this.tickLength<<0),this.ctx.stroke()),g&&0!==h++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y=\"inside\"===this.labelPlacement?q.y-((\"inside\"===this.tickPlacement?this.tickLength:0)+p.textBlock.height-p.textBlock.fontSize/2):q.y+(\"inside\"===this.tickPlacement?0:this.tickLength)+p.textBlock.fontSize/2+\n5):(q.x=\"inside\"===this.labelPlacement?0>this.labelAngle?q.x:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):q.x-(0>this.labelAngle?p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0),q.y=\"inside\"===this.labelPlacement?0>this.labelAngle?q.y-(\"inside\"===this.tickPlacement?this.tickLength:0)-5:q.y-(\"inside\"===this.tickPlacement?this.tickLength:0)-Math.abs(p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)+5):q.y+(\"inside\"===this.tickPlacement?0:this.tickLength)+Math.abs(0>this.labelAngle?\np.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5)),p.textBlock.x=q.x,p.textBlock.y=q.y));\"inside\"===this.tickPlacement&&this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;ka.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();\na.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y-a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+this.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y2-this._titleTextBlock.height+this._titleTextBlock.fontSize/2-1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"top\"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0,this.ctx.beginPath(),this.ctx.moveTo(b,q.y<<0),this.ctx.lineTo(b,q.y-this.tickLength<<0),this.ctx.stroke()),g&&0!==h++%2&&this.labelAutoFit||(0===p.textBlock.angle?(q.x-=p.textBlock.width/2,q.y=\"inside\"===\nthis.labelPlacement?q.y+this.labelFontSize/2+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:q.y-((\"inside\"===this.tickPlacement?0:this.tickLength)+p.textBlock.height-p.textBlock.fontSize/2)):(q.x=\"inside\"===this.labelPlacement?0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.x<<0)+0.5:q.x<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(b,q.y<<0);a.ctx.lineTo(b,q.y+a.tickLength<<0);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.lineCoordinates.x1+\nthis.lineCoordinates.width/2-this._titleTextBlock.width/2,this._titleTextBlock.y=this.bounds.y1+this._titleTextBlock.fontSize/2+1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"left\"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=\nthis.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x-this.tickLength<<0,b),this.ctx.stroke()),g&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y=q.y,p.textBlock.x=\"inside\"===this.labelPlacement?q.x+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-(\"inside\"===this.tickPlacement?0:this.tickLength)-5):(p.textBlock.y=\"inside\"===this.labelPlacement?\nq.y:q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle),p.textBlock.x=\"inside\"===this.labelPlacement?q.x+(\"inside\"===this.tickPlacement?this.tickLength:0)+5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<0,b);a.ctx.lineTo(q.x+a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&\n(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x1+this._titleTextBlock.fontSize/2+1,this._titleTextBlock.y=this.lineCoordinates.height/2+this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}else if(\"right\"===this._position){for(k=0;kthis.viewportMaximum||(q=this.getPixelCoordinatesOnAxis(p.position),this.tickThickness&&\n\"inside\"!=this.tickPlacement&&(this.ctx.lineWidth=this.tickThickness,this.ctx.strokeStyle=this.tickColor,b=1===this.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0,this.ctx.beginPath(),this.ctx.moveTo(q.x<<0,b),this.ctx.lineTo(q.x+this.tickLength<<0,b),this.ctx.stroke()),g&&0!==h++%2&&this.labelAutoFit||(0===this.labelAngle?(p.textBlock.y=q.y,p.textBlock.x=\"inside\"===this.labelPlacement?q.x-p.textBlock.width-(\"inside\"===this.tickPlacement?this.tickLength:0)-5:q.x+(\"inside\"===this.tickPlacement?0:this.tickLength)+\n5):(p.textBlock.y=\"inside\"===this.labelPlacement?q.y-p.textBlock.width*Math.sin(Math.PI/180*this.labelAngle):0>this.labelAngle?q.y:q.y-(p.textBlock.height-p.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),p.textBlock.x=\"inside\"===this.labelPlacement?q.x-p.textBlock.width*Math.cos(Math.PI/180*this.labelAngle)-(\"inside\"===this.tickPlacement?this.tickLength:0)-5:0a.viewportMaximum)&&(q=a.getPixelCoordinatesOnAxis(p.position),a.tickThickness)){a.ctx.lineWidth=a.tickThickness;a.ctx.strokeStyle=a.tickColor;var b=1===a.ctx.lineWidth%2?(q.y<<0)+0.5:q.y<<0;a.ctx.save();a.ctx.beginPath();a.ctx.moveTo(q.x<<\n0,b);a.ctx.lineTo(q.x-a.tickLength<<0,b);a.ctx.stroke();a.ctx.restore()}},this);this.title&&(this._titleTextBlock.measureText(),this._titleTextBlock.x=this.bounds.x2-this._titleTextBlock.fontSize/2-1,this._titleTextBlock.y=this.lineCoordinates.height/2-this._titleTextBlock.width/2+this.lineCoordinates.y1,this.titleMaxWidth=this._titleTextBlock.maxWidth,this._titleTextBlock.render(!0))}h=0;if(\"inside\"===this.labelPlacement)this.chart.addEventListener(\"dataAnimationIterationEnd\",function(){for(k=0;k<\na._labels.length;k++)p=a._labels[k],p.positiona.viewportMaximum||g&&0!==h++%2&&a.labelAutoFit)||(a.ctx.save(),a.ctx.beginPath(),p.textBlock.render(!0),a.ctx.restore())},this);else for(k=0;kthis.viewportMaximum||g&&0!==h++%2&&this.labelAutoFit)||p.textBlock.render(!0)};D.prototype.renderInterlacedColors=function(){var a=this.chart.plotArea.ctx,g,c,b=this.chart.plotArea,e=0;g=!0;if((\"bottom\"===\nthis._position||\"top\"===this._position)&&this.interlacedColor)for(a.fillStyle=this.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(Math.min(c.x,g.x),b.y1,Math.abs(c.x-g.x),Math.abs(b.y1-b.y2)),g=!1):g=!0;else if((\"left\"===this._position||\"right\"===this._position)&&this.interlacedColor)for(a.fillStyle=\nthis.interlacedColor,e=0;ethis._labels.length-1?this.getPixelCoordinatesOnAxis(this.viewportMaximum):this.getPixelCoordinatesOnAxis(this._labels[e+1].position),a.fillRect(b.x1,Math.min(c.y,g.y),Math.abs(b.x1-b.x2),Math.abs(g.y-c.y)),g=!1):g=!0;a.beginPath()};D.prototype.renderStripLinesOfThicknessType=function(a){if(this.stripLines&&0this.viewportMaximum||n(m.value)||isNaN(this.range))||\"value\"===a&&(m.startValue<=this.viewportMinimum&&m.endValue<=this.viewportMinimum||m.startValue>=this.viewportMaximum&&m.endValue>=this.viewportMaximum||n(m.startValue)||n(m.endValue)||isNaN(this.range))||l.push(m))}for(e=0;ethis.viewportMaximum||isNaN(this.range)))if(b=this.getPixelCoordinatesOnAxis(c.position),\"outside\"===c.stripLine.labelPlacement){m&&(this.ctx.strokeStyle=m.color,this.ctx.lineWidth=\"pixel\"===m._thicknessType?m.thickness:this.tickThickness);if(\"bottom\"===this._position){var p=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0;this.ctx.beginPath();this.ctx.moveTo(p,b.y<<0);this.ctx.lineTo(p,b.y+this.tickLength<<0);this.ctx.stroke();0===this.labelAngle?(b.x-=c.textBlock.width/\n2,b.y+=this.tickLength+c.textBlock.fontSize/2+5):(b.x-=0>this.labelAngle?c.textBlock.width*Math.cos(Math.PI/180*this.labelAngle):0,b.y+=this.tickLength+Math.abs(0>this.labelAngle?c.textBlock.width*Math.sin(Math.PI/180*this.labelAngle)-5:5))}else\"top\"===this._position?(p=1===this.ctx.lineWidth%2?(b.x<<0)+0.5:b.x<<0,this.ctx.beginPath(),this.ctx.moveTo(p,b.y<<0),this.ctx.lineTo(p,b.y-this.tickLength<<0),this.ctx.stroke(),0===this.labelAngle?(b.x-=c.textBlock.width/2,b.y-=this.tickLength+c.textBlock.height-\nc.textBlock.fontSize/2):(b.x+=(c.textBlock.height-this.tickLength-this.labelFontSize/2)*Math.sin(Math.PI/180*this.labelAngle)-(0this.labelAngle?b.y:b.y-(c.textBlock.height-c.textBlock.fontSize/2-5)*Math.cos(Math.PI/180*this.labelAngle),b.x=0this.chart.plotArea.x1?n(m.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,n(m.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x+=\nc.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===c.textBlock.angle?\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y2-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y1+c.textBlock.width+3:\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y2-c.textBlock.width-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y1+3):\"top\"===this._position?\n(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth?this.options.stripLines[e].labelMaxWidth:this.chart.plotArea.height-3,c.textBlock.measureText(),b.x-c.textBlock.height-m.thickness/2>this.chart.plotArea.x1?n(m.startValue)?b.x-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x-=c.textBlock.height/2-c.textBlock.fontSize/2:(c.textBlock.angle=90,n(m.startValue)?b.x+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.x+=c.textBlock.height/2-c.textBlock.fontSize/2),b.y=-90===\nc.textBlock.angle?\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y1+c.textBlock.width+3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1+c.textBlock.width)/2:this.chart.plotArea.y2-3:\"near\"===c.stripLine.labelAlign?this.chart.plotArea.y1+3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.y2+this.chart.plotArea.y1-c.textBlock.width)/2:this.chart.plotArea.y2-c.textBlock.width-3):\"left\"===this._position?(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth?\nthis.options.stripLines[e].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-m.thickness/2>this.chart.plotArea.y1?n(m.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2:n(m.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y+=c.textBlock.height/2-c.textBlock.fontSize+3,b.x=\"near\"===c.stripLine.labelAlign?this.chart.plotArea.x1+3:\"center\"===c.stripLine.labelAlign?\n(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x2-c.textBlock.width-3):\"right\"===this._position&&(c.textBlock.maxWidth=this.options.stripLines[e].labelMaxWidth?this.options.stripLines[e].labelMaxWidth:this.chart.plotArea.width-3,c.textBlock.angle=0,c.textBlock.measureText(),b.y-c.textBlock.height-m.thickness/2>this.chart.plotArea.y1?n(m.startValue)?b.y-=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/\n2:n(m.startValue)?b.y+=c.textBlock.height-c.textBlock.fontSize/2+m.thickness/2:b.y-=c.textBlock.height/2-c.textBlock.fontSize/2+3,b.x=\"near\"===c.stripLine.labelAlign?this.chart.plotArea.x2-c.textBlock.width-3:\"center\"===c.stripLine.labelAlign?(this.chart.plotArea.x2+this.chart.plotArea.x1)/2-c.textBlock.width/2:this.chart.plotArea.x1+3),c.textBlock.x=b.x,c.textBlock.y=b.y,t.push(c));if(!k){b=!1;this.ctx.save();this.ctx.beginPath();this.ctx.rect(this.chart.plotArea.x1,this.chart.plotArea.y1,this.chart.plotArea.width,\nthis.chart.plotArea.height);this.ctx.clip();for(e=0;ethis.viewportMaximum||isNaN(this.range))||a[g].render(this.maskCtx);this.maskCtx.restore()}};D.prototype.renderCrosshair=function(a,g){isFinite(this.minimum)&&isFinite(this.maximum)&&this.crosshair.render(a,g)};D.prototype.showCrosshair=function(a){n(a)||(athis.viewportMaximum)||(\"top\"===this._position||\"bottom\"===this._position?this.crosshair.render(this.convertValueToPixel(a),null,a):this.crosshair.render(null,this.convertValueToPixel(a),\na))};D.prototype.renderGrid=function(){if(this.gridThickness&&0this.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),\ng=this.getPixelCoordinatesOnAxis(this._labels[b].position),g=1===a.lineWidth%2?(g.x<<0)+0.5:g.x<<0,a.moveTo(g,c.y1<<0),a.lineTo(g,c.y2<<0),a.stroke());else if(\"left\"===this._position||\"right\"===this._position)for(var b=0;bthis.viewportMaximum||this._labels[b].breaksLabelType)||(a.beginPath(),g=this.getPixelCoordinatesOnAxis(this._labels[b].position),g=1===a.lineWidth%2?(g.y<<0)+0.5:g.y<<0,a.moveTo(c.x1<<\n0,g),a.lineTo(c.x2<<0,g),a.stroke());a.restore()}};D.prototype.renderAxisLine=function(){var a=this.chart.ctx,g=v?this.chart._preRenderCtx:a,c=Math.ceil(this.tickThickness/(this.reversed?-2:2)),b=Math.ceil(this.tickThickness/(this.reversed?2:-2)),e,h;g.save();if(\"bottom\"===this._position||\"top\"===this._position){if(this.lineThickness){this.reversed?(e=this.lineCoordinates.x2,h=this.lineCoordinates.x1):(e=this.lineCoordinates.x1,h=this.lineCoordinates.x2);g.lineWidth=this.lineThickness;g.strokeStyle=\nthis.lineColor?this.lineColor:\"black\";g.setLineDash&&g.setLineDash(H(this.lineDashType,this.lineThickness));var d=1===this.lineThickness%2?(this.lineCoordinates.y1<<0)+0.5:this.lineCoordinates.y1<<0;g.beginPath();if(this.scaleBreaks&&!n(this.scaleBreaks.firstBreakIndex))if(n(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+b;else for(var l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)g.moveTo(e,d),g.lineTo(this.scaleBreaks._appliedBreaks[l].startPixel+\nc,d),e=this.scaleBreaks._appliedBreaks[l].endPixel+b;e&&(g.moveTo(e,d),g.lineTo(h,d));g.stroke()}}else if((\"left\"===this._position||\"right\"===this._position)&&this.lineThickness){this.reversed?(e=this.lineCoordinates.y1,h=this.lineCoordinates.y2):(e=this.lineCoordinates.y2,h=this.lineCoordinates.y1);g.lineWidth=this.lineThickness;g.strokeStyle=this.lineColor;g.setLineDash&&g.setLineDash(H(this.lineDashType,this.lineThickness));d=1===this.lineThickness%2?(this.lineCoordinates.x1<<0)+0.5:this.lineCoordinates.x1<<\n0;g.beginPath();if(this.scaleBreaks&&!n(this.scaleBreaks.firstBreakIndex))if(n(this.scaleBreaks.lastBreakIndex))e=this.scaleBreaks._appliedBreaks[this.scaleBreaks.firstBreakIndex].endPixel+c;else for(l=this.scaleBreaks.firstBreakIndex;l<=this.scaleBreaks.lastBreakIndex;l++)g.moveTo(d,e),g.lineTo(d,this.scaleBreaks._appliedBreaks[l].startPixel+b),e=this.scaleBreaks._appliedBreaks[l].endPixel+c;e&&(g.moveTo(d,e),g.lineTo(d,h));g.stroke()}v&&(a.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,\nthis.chart.height),this.chart._breaksCanvasCtx&&this.chart._breaksCanvasCtx.drawImage(this.chart._preRenderCanvas,0,0,this.chart.width,this.chart.height),g.clearRect(0,0,this.chart.width,this.chart.height));g.restore()};D.prototype.getPixelCoordinatesOnAxis=function(a){var g={};if(\"bottom\"===this._position||\"top\"===this._position)g.x=this.convertValueToPixel(a),g.y=this.lineCoordinates.y1;if(\"left\"===this._position||\"right\"===this._position)g.y=this.convertValueToPixel(a),g.x=this.lineCoordinates.x2;\nreturn g};D.prototype.convertPixelToValue=function(a){if(\"undefined\"===typeof a)return null;var g=0,c=0,b,g=!0,e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[],c=\"number\"===typeof a?a:\"left\"===this._position||\"right\"===this._position?a.y:a.x;if(this.logarithmic){a=b=Math.pow(this.logarithmBase,(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit);if(c<=this.conversionParameters.reference===(\"left\"===this._position||\"right\"===this._position)!==this.reversed)for(c=0;c<\ne.length;c++){if(!(e[c].endValuee[c].startValue/this.conversionParameters.minimum){b/=e[c].startValue/this.conversionParameters.minimum;if(be[c].startValue/e[c-1].endValue){b/=e[c].startValue/e[c-1].endValue;\nif(bthis.conversionParameters.minimum))if(g)if(e[c].endValue>this.conversionParameters.minimum){if(1e[c].startValue){a=Math.pow(e[c].endValue/e[c].startValue,\nMath.log(b)/Math.log(e[c].size));break}else a*=e[c].startValue/this.conversionParameters.minimum*Math.pow(e[c].size,Math.log(e[c].startValue/this.conversionParameters.minimum)/Math.log(e[c].endValue/e[c].startValue))*b,b*=Math.pow(e[c].size,Math.log(this.conversionParameters.minimum/e[c].startValue)/Math.log(e[c].endValue/e[c].startValue));g=!1}else if(b1/e[c].size){a*=Math.pow(e[c].endValue/\ne[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size;g=!1}else break;else if(b1/e[c].size){a*=Math.pow(e[c].endValue/e[c].startValue,1>=e[c].size?1:Math.log(b)/Math.log(e[c].size))*b;break}else a/=e[c].endValue/e[c].startValue/e[c].size;b*=e[c].size}else break;g=a*this.viewportMinimum}else{a=b=(c-this.conversionParameters.reference)/this.conversionParameters.pixelPerUnit;\nif(c<=this.conversionParameters.reference===(\"left\"===this._position||\"right\"===this._position)!==this.reversed)for(c=0;c=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=e[c].endValue-this.conversionParameters.minimum-e[c].size*(e[c].endValue-\nthis.conversionParameters.minimum)/(e[c].endValue-e[c].startValue),b-=e[c].size*(e[c].endValue-this.conversionParameters.minimum)/(e[c].endValue-e[c].startValue);g=!1}else if(b>e[c].startValue-this.conversionParameters.minimum){b-=e[c].startValue-this.conversionParameters.minimum;if(be[c].startValue-e[c-1].endValue){b-=e[c].startValue-\ne[c-1].endValue;if(bthis.conversionParameters.minimum))if(g)if(e[c].endValue>this.conversionParameters.minimum)if(e[c].size&&this.conversionParameters.minimum+b*(e[c].endValue-e[c].startValue)/e[c].size>e[c].startValue){a=0>=e[c].size?0:b*(e[c].endValue-e[c].startValue)/e[c].size;break}else a+=\ne[c].startValue-this.conversionParameters.minimum+e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),b+=e[c].size*(this.conversionParameters.minimum-e[c].startValue)/(e[c].endValue-e[c].startValue),g=!1;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size;\ng=!1}else break;else if(b-1*e[c].size){a+=(e[c].endValue-e[c].startValue)*(0===e[c].size?1:b/e[c].size)+b;break}else a-=e[c].endValue-e[c].startValue-e[c].size;b+=e[c].size}else break;g=this.conversionParameters.minimum+a}return g};D.prototype.convertValueToPixel=function(a){a=this.getApparentDifference(this.conversionParameters.minimum,a,a);return this.logarithmic?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*\nMath.log(a/this.conversionParameters.minimum)/this.conversionParameters.lnLogarithmBase+0.5<<0:\"axisX\"===this.type?this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5<<0:this.conversionParameters.reference+this.conversionParameters.pixelPerUnit*(a-this.conversionParameters.minimum)+0.5};D.prototype.getApparentDifference=function(a,g,c,b){var e=this.scaleBreaks?this.scaleBreaks._appliedBreaks:[];if(this.logarithmic){c=n(c)?g/a:c;for(var h=\n0;he[h].endValue||(a<=e[h].startValue&&g>=e[h].endValue?c=c/e[h].endValue*e[h].startValue*e[h].size:a>=e[h].startValue&&g>=e[h].endValue?c=c/e[h].endValue*a*Math.pow(e[h].size,Math.log(e[h].endValue/a)/Math.log(e[h].endValue/e[h].startValue)):a<=e[h].startValue&&g<=e[h].endValue?c=c/g*e[h].startValue*Math.pow(e[h].size,Math.log(g/e[h].startValue)/Math.log(e[h].endValue/e[h].startValue)):!b&&(a>e[h].startValue&&ge[h].endValue||(a<=e[h].startValue&&g>=e[h].endValue?c=c-e[h].endValue+e[h].startValue+e[h].size:a>e[h].startValue&&g>=e[h].endValue?c=c-e[h].endValue+a+e[h].size*(e[h].endValue-a)/(e[h].endValue-e[h].startValue):a<=e[h].startValue&&ge[h].startValue&&ga[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&\nthis.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b/a[e].endValue*this.viewportMinimum,c=0a[e].endValue||(this.viewportMinimum>=a[e].startValue&&this.viewportMaximum<=a[e].endValue?c=0:this.viewportMinimum<=a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+a[e].startValue,c=0a[e].startValue&&this.viewportMaximum>=a[e].endValue?(b=b-a[e].endValue+this.viewportMinimum,c=0this.maxWidth?8:6);var a=Math.max(b,Math.floor(this.maxWidth/a)),e,h,d,b=0;!n(this.options.viewportMinimum)&&(!n(this.options.viewportMaximum)&&this.options.viewportMinimum>=this.options.viewportMaximum)&&(this.viewportMinimum=this.viewportMaximum=null);\nif(n(this.options.viewportMinimum)&&!n(this.sessionVariables.newViewportMinimum)&&!isNaN(this.sessionVariables.newViewportMinimum))this.viewportMinimum=this.sessionVariables.newViewportMinimum;else if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(n(this.options.viewportMaximum)&&!n(this.sessionVariables.newViewportMaximum)&&!isNaN(this.sessionVariables.newViewportMaximum))this.viewportMaximum=this.sessionVariables.newViewportMaximum;else if(null===this.viewportMaximum||\nisNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(b=0;b=this.scaleBreaks._appliedBreaks[b].startValue||!n(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[b].startValue||!n(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[b].startValue)&&(!n(this.sessionVariables.newViewportMaximum)&&\nthis.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue||!n(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[b].endValue||!n(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[b].endValue)){this.scaleBreaks._appliedBreaks.splice(b,1);break}if(\"axisX\"===this.type){if(this.dataSeries&&0h?(b=Math.min(0.01*Math.abs(this.getApparentDifference(h,e,null,!0)),5),0<=h?e=h-b:h=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,h,null,!0)),0.05),0!==h&&(h+=b),0!==e&&(e-=\nb)),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1h&&(h=0));b=this.getApparentDifference(isNaN(this.viewportMinimum)||null===this.viewportMinimum?e:this.viewportMinimum,isNaN(this.viewportMaximum)||null===this.viewportMaximum?h:this.viewportMaximum,null,!0);if(\"axisX\"===this.type&&c){this.valueType=\n\"dateTime\";this.intervalType||(b/1<=a?(this.interval=1,this.intervalType=\"millisecond\"):b/2<=a?(this.interval=2,this.intervalType=\"millisecond\"):b/5<=a?(this.interval=5,this.intervalType=\"millisecond\"):b/10<=a?(this.interval=10,this.intervalType=\"millisecond\"):b/20<=a?(this.interval=20,this.intervalType=\"millisecond\"):b/50<=a?(this.interval=50,this.intervalType=\"millisecond\"):b/100<=a?(this.interval=100,this.intervalType=\"millisecond\"):b/200<=a?(this.interval=200,this.intervalType=\"millisecond\"):\nb/250<=a?(this.interval=250,this.intervalType=\"millisecond\"):b/300<=a?(this.interval=300,this.intervalType=\"millisecond\"):b/400<=a?(this.interval=400,this.intervalType=\"millisecond\"):b/500<=a?(this.interval=500,this.intervalType=\"millisecond\"):b/(1*T.secondDuration)<=a?(this.interval=1,this.intervalType=\"second\"):b/(2*T.secondDuration)<=a?(this.interval=2,this.intervalType=\"second\"):b/(5*T.secondDuration)<=a?(this.interval=5,this.intervalType=\"second\"):b/(10*T.secondDuration)<=a?(this.interval=10,\nthis.intervalType=\"second\"):b/(15*T.secondDuration)<=a?(this.interval=15,this.intervalType=\"second\"):b/(20*T.secondDuration)<=a?(this.interval=20,this.intervalType=\"second\"):b/(30*T.secondDuration)<=a?(this.interval=30,this.intervalType=\"second\"):b/(1*T.minuteDuration)<=a?(this.interval=1,this.intervalType=\"minute\"):b/(2*T.minuteDuration)<=a?(this.interval=2,this.intervalType=\"minute\"):b/(5*T.minuteDuration)<=a?(this.interval=5,this.intervalType=\"minute\"):b/(10*T.minuteDuration)<=a?(this.interval=\n10,this.intervalType=\"minute\"):b/(15*T.minuteDuration)<=a?(this.interval=15,this.intervalType=\"minute\"):b/(20*T.minuteDuration)<=a?(this.interval=20,this.intervalType=\"minute\"):b/(30*T.minuteDuration)<=a?(this.interval=30,this.intervalType=\"minute\"):b/(1*T.hourDuration)<=a?(this.interval=1,this.intervalType=\"hour\"):b/(2*T.hourDuration)<=a?(this.interval=2,this.intervalType=\"hour\"):b/(3*T.hourDuration)<=a?(this.interval=3,this.intervalType=\"hour\"):b/(6*T.hourDuration)<=a?(this.interval=6,this.intervalType=\n\"hour\"):b/(1*T.dayDuration)<=a?(this.interval=1,this.intervalType=\"day\"):b/(2*T.dayDuration)<=a?(this.interval=2,this.intervalType=\"day\"):b/(4*T.dayDuration)<=a?(this.interval=4,this.intervalType=\"day\"):b/(1*T.weekDuration)<=a?(this.interval=1,this.intervalType=\"week\"):b/(2*T.weekDuration)<=a?(this.interval=2,this.intervalType=\"week\"):b/(3*T.weekDuration)<=a?(this.interval=3,this.intervalType=\"week\"):b/(1*T.monthDuration)<=a?(this.interval=1,this.intervalType=\"month\"):b/(2*T.monthDuration)<=a?(this.interval=\n2,this.intervalType=\"month\"):b/(3*T.monthDuration)<=a?(this.interval=3,this.intervalType=\"month\"):b/(6*T.monthDuration)<=a?(this.interval=6,this.intervalType=\"month\"):(this.interval=b/(1*T.yearDuration)<=a?1:b/(2*T.yearDuration)<=a?2:b/(4*T.yearDuration)<=a?4:Math.floor(D.getNiceNumber(b/(a-1),!0)/T.yearDuration),this.intervalType=\"year\"));if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=e-d/2;if(null===this.viewportMaximum||isNaN(this.viewportMaximum))this.viewportMaximum=\nh+d/2;g?this.autoValueFormatString=\"MMM DD YYYY HH:mm\":\"year\"===this.intervalType?this.autoValueFormatString=\"YYYY\":\"month\"===this.intervalType?this.autoValueFormatString=\"MMM YYYY\":\"week\"===this.intervalType?this.autoValueFormatString=\"MMM DD YYYY\":\"day\"===this.intervalType?this.autoValueFormatString=\"MMM DD YYYY\":\"hour\"===this.intervalType?this.autoValueFormatString=\"hh:mm TT\":\"minute\"===this.intervalType?this.autoValueFormatString=\"hh:mm TT\":\"second\"===this.intervalType?this.autoValueFormatString=\n\"hh:mm:ss TT\":\"millisecond\"===this.intervalType&&(this.autoValueFormatString=\"fff'ms'\");this.valueFormatString||(this.valueFormatString=this.autoValueFormatString)}else{this.intervalType=\"number\";b=D.getNiceNumber(b,!1);this.interval=this.options&&0h?(b=Math.min(0.01*Math.abs(this.getApparentDifference(h,e,null,!0)),5),0<=h?e=h-b:h=isFinite(e)?e+b:0):(b=Math.min(0.01*Math.abs(this.getApparentDifference(e,h,null,!0)),0.05),0!==h&&(h+=b),0!==e&&(e-=b)):(h=\"undefined\"===typeof this.options.interval?-Infinity:this.options.interval,e=\"undefined\"!==typeof this.options.interval||isFinite(this.dataInfo.minDiff)?0:Infinity),d=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:1h&&(h=0)),Math.abs(this.getApparentDifference(e,h,null,!0)),\"axisX\"===this.type&&c){this.valueType=\"dateTime\";if(null===this.minimum||isNaN(this.minimum))this.minimum=e-d/2,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum);if(null===this.maximum||isNaN(this.maximum))this.maximum=\nh+d/2,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)}else this.intervalType=this.valueType=\"number\",null===this.minimum&&(this.minimum=\"axisX\"===this.type?e-d/2:Math.floor(e/this.interval)*this.interval,this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?Infinity:this.sessionVariables.viewportMinimum)),\nnull===this.maximum&&(this.maximum=\"axisX\"===this.type?h+d/2:Math.ceil(h/this.interval)*this.interval,this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?-Infinity:this.sessionVariables.viewportMaximum)),0===this.maximum&&0===this.minimum&&(0===this.options.minimum?this.maximum+=10:0===this.options.maximum&&(this.minimum-=10));n(this.sessionVariables.newViewportMinimum)&&(this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum));\nn(this.sessionVariables.newViewportMaximum)&&(this.viewportMaximum=Math.min(this.viewportMaximum,this.maximum));this.range=this.viewportMaximum-this.viewportMinimum;this.intervalStartPosition=\"axisX\"===this.type&&c?this.getLabelStartPoint(new Date(this.viewportMinimum),this.intervalType,this.interval):Math.floor((this.viewportMinimum+0.2*this.interval)/this.interval)*this.interval;this.valueFormatString||(this.valueFormatString=D.generateValueFormatString(this.range,2))}};D.prototype.calculateLogarithmicAxisParameters=\nfunction(){var a=this.chart.layoutManager.getFreeSpace(),g=Math.log(this.logarithmBase),c;\"bottom\"===this._position||\"top\"===this._position?(this.maxWidth=a.width,this.maxHeight=a.height):(this.maxWidth=a.height,this.maxHeight=a.width);var a=\"axisX\"===this.type?500>this.maxWidth?7:Math.max(7,Math.floor(this.maxWidth/100)):Math.max(Math.floor(this.maxWidth/50),3),b,e,h,d;d=1;if(null===this.viewportMinimum||isNaN(this.viewportMinimum))this.viewportMinimum=this.minimum;if(null===this.viewportMaximum||\nisNaN(this.viewportMaximum))this.viewportMaximum=this.maximum;if(this.scaleBreaks)for(d=0;d=this.scaleBreaks._appliedBreaks[d].startValue||!n(this.options.minimum)&&this.options.minimum>=this.scaleBreaks._appliedBreaks[d].startValue||!n(this.options.viewportMinimum)&&this.viewportMinimum>=this.scaleBreaks._appliedBreaks[d].startValue)&&(!n(this.sessionVariables.newViewportMaximum)&&\nthis.sessionVariables.newViewportMaximum<=this.scaleBreaks._appliedBreaks[d].endValue||!n(this.options.maximum)&&this.options.maximum<=this.scaleBreaks._appliedBreaks[d].endValue||!n(this.options.viewportMaximum)&&this.viewportMaximum<=this.scaleBreaks._appliedBreaks[d].endValue)){this.scaleBreaks._appliedBreaks.splice(d,1);break}\"axisX\"===this.type?(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,\n1===e/b&&(d=Math.pow(this.logarithmBase,\"undefined\"===typeof this.options.interval?0.4:this.options.interval),e*=d,b/=d),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):\"axisY\"===this.type&&(b=null!==this.viewportMinimum?this.viewportMinimum:this.dataInfo.viewPortMin,e=null!==this.viewportMaximum?this.viewportMaximum:this.dataInfo.viewPortMax,0>=b&&!isFinite(e)?(e=\"undefined\"===typeof this.options.interval?0:\nthis.options.interval,b=1):0>=b?b=e:isFinite(e)||(e=b),1===b&&1===e?(e*=this.logarithmBase-1/this.logarithmBase,b=1):1===e/b?(d=Math.min(e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),e*=d,b/=d):b>e?(d=Math.min(b/e*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,5)),1<=e?b=e/d:e=b*d):(d=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=d),1!==b&&(b/=d)),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?\ne/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.viewportMinimum||isNaN(this.viewportMinimum))&&1e&&(e=1));d=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)/(isNaN(this.viewportMinimum)||null===this.viewportMinimum?b:this.viewportMinimum);var l=(isNaN(this.viewportMaximum)||null===this.viewportMaximum?e:this.viewportMaximum)-(isNaN(this.viewportMinimum)||\nnull===this.viewportMinimum?b:this.viewportMinimum);this.intervalType=\"number\";d=Math.pow(this.logarithmBase,D.getNiceNumber(Math.abs(Math.log(d)/g),!1));this.options&&0this.logarithmBase?\ne/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase):\"axisY\"===this.type&&(b=null!==this.minimum?this.minimum:this.dataInfo.min,e=null!==this.maximum?this.maximum:this.dataInfo.max,isFinite(b)||isFinite(e)?1===b&&1===e?(e*=this.logarithmBase,b/=this.logarithmBase):1===e/b?(d=Math.pow(this.logarithmBase,this.interval),e*=d,b/=d):b>e?(d=Math.min(0.01*(b/e),5),1<=e?b=e/d:e=b*d):(d=Math.min(e/b*Math.pow(this.logarithmBase,0.01),Math.pow(this.logarithmBase,0.04)),1!==e&&(e*=d),1!==b&&(b/=d)):(e=\"undefined\"===\ntypeof this.options.interval?0:this.options.interval,b=1),h=Infinity!==this.dataInfo.minDiff?this.dataInfo.minDiff:e/b>this.logarithmBase?e/b*Math.pow(this.logarithmBase,0.5):this.logarithmBase,this.includeZero&&(null===this.minimum||isNaN(this.minimum))&&1e&&(e=1)),this.intervalType=\"number\",null===this.minimum&&(this.minimum=\"axisX\"===this.type?b/Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.floor(Math.log(b)/\ng/this.interval)),n(null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?\"undefined\"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:this.sessionVariables.viewportMinimum)||(this.minimum=Math.min(this.minimum,null===this.sessionVariables.viewportMinimum||isNaN(this.sessionVariables.viewportMinimum)?\"undefined\"===typeof this.sessionVariables.newViewportMinimum?Infinity:this.sessionVariables.newViewportMinimum:\nthis.sessionVariables.viewportMinimum))),null===this.maximum&&(this.maximum=\"axisX\"===this.type?e*Math.sqrt(h):Math.pow(this.logarithmBase,this.interval*Math.ceil(Math.log(e)/g/this.interval)),n(null===this.sessionVariables.viewportMaximum||isNaN(this.sessionVariables.viewportMaximum)?\"undefined\"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum)||(this.maximum=Math.max(this.maximum,null===this.sessionVariables.viewportMaximum||\nisNaN(this.sessionVariables.viewportMaximum)?\"undefined\"===typeof this.sessionVariables.newViewportMaximum?0:this.sessionVariables.newViewportMaximum:this.sessionVariables.viewportMaximum))),1===this.maximum&&1===this.minimum&&(1===this.options.minimum?this.maximum*=this.logarithmBase-1/this.logarithmBase:1===this.options.maximum&&(this.minimum/=this.logarithmBase-1/this.logarithmBase));this.viewportMinimum=Math.max(this.viewportMinimum,this.minimum);this.viewportMaximum=Math.min(this.viewportMaximum,\nthis.maximum);this.viewportMinimum>this.viewportMaximum&&(!this.options.viewportMinimum&&!this.options.minimum||this.options.viewportMaximum||this.options.maximum?this.options.viewportMinimum||this.options.minimum||!this.options.viewportMaximum&&!this.options.maximum||(this.viewportMinimum=this.minimum=(this.options.viewportMaximum||this.options.maximum)/Math.pow(this.logarithmBase,2*Math.ceil(this.interval))):this.viewportMaximum=this.maximum=this.options.viewportMinimum||this.options.minimum);b=\nMath.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(g*this.interval)+0.2)*this.interval);this.range=this.viewportMaximum/this.viewportMinimum;this.noTicks=a;if(!this.options.interval&&this.rangethis.viewportMaximum||3>a?2:3)){for(g=Math.floor(this.viewportMinimum/c+0.5)*c;gthis.interval&&\n(this.interval=c,b=Math.pow(this.logarithmBase,Math.floor(Math.log(this.viewportMinimum)/(g*this.interval)+0.2)*this.interval))),this.equidistantInterval=!0,this.intervalStartPosition=b;if(!this.valueFormatString&&(this.valueFormatString=\"#,##0.##\",1>this.viewportMinimum)){g=Math.floor(Math.abs(Math.log(this.viewportMinimum)/Math.LN10))+2;if(isNaN(g)||!isFinite(g))g=2;if(2a&&(b+=Math.floor(Math.abs(Math.log(a)/\nMath.LN10)),isNaN(b)||!isFinite(b))&&(b=g);for(var e=0;ec?1>=b?1:5>=b?5:10:Math.max(Math.floor(b),1);return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};D.getNiceNumber=function(a,g){var c=Math.floor(Math.log(a)/Math.LN10),b=a/Math.pow(10,c),b=g?1.5>b?1:3>b?2:7>b?5:10:1>=b?1:2>=b?2:5>=b?5:10;return-20>c?Number(b*Math.pow(10,c)):Number((b*Math.pow(10,c)).toFixed(20))};\nD.prototype.getLabelStartPoint=function(){var a=T[this.intervalType+\"Duration\"]*this.interval,a=new Date(Math.floor(this.viewportMinimum/a)*a);if(\"millisecond\"!==this.intervalType)if(\"second\"===this.intervalType)0=a||\"bottom\"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(b,n),this.ctx.lineTo(l,n),this.ctx.lineTo(l,e);else if(\"wavy\"===this.type){t=b;k=e;d=0.5;m=(n-k)/a/3;for(var q=0;q=a||\"right\"===this.scaleBreaks.parent._position&&0<=a)this.ctx.lineTo(l,e),this.ctx.lineTo(l,n),this.ctx.lineTo(b,n);else if(\"wavy\"===this.type){t=b;k=e;d=0.5;m=\n(l-t)/a/3;for(q=0;q=g.axisY[b].viewportMinimum&&\na<=g.axisY[b].viewportMaximum?a:null);else if(\"top\"===this.parent._position)for(b=0;b=g.axisY2[b].viewportMinimum&&a<=g.axisY2[b].viewportMaximum?a:null);else if(\"left\"===this.parent._position)for(b=0;b=g.axisX[b].viewportMinimum&&a<=g.axisX[b].viewportMaximum?a:null);else{if(\"right\"===this.parent._position)for(b=0;b=g.axisX2[b].viewportMinimum&&a<=g.axisX2[b].viewportMaximum?a:null)}else if(\"bottom\"===this.parent._position)for(b=0;b=g.axisX[b].viewportMinimum&&a<=g.axisX[b].viewportMaximum?a:null);else if(\"top\"===this.parent._position)for(b=0;b=g.axisX2[b].viewportMinimum&&a<=g.axisX2[b].viewportMaximum?a:null);\nelse if(\"left\"===this.parent._position)for(b=0;b=g.axisY[b].viewportMinimum&&a<=g.axisY[b].viewportMaximum?a:null);else if(\"right\"===this.parent._position)for(b=0;b=g.axisY2[b].viewportMinimum&&a<=g.axisY2[b].viewportMaximum?a:null);for(b=0;b=g.axisX[b].viewportMinimum&&a<=g.axisX[b].viewportMaximum)&&(g.axisX[b].showCrosshair(a),g.axisX[b].crosshair._updatedValue=a,this===g.axisX[b].crosshair&&(c=!0));for(b=0;b=g.axisX2[b].viewportMinimum&&a<=g.axisX2[b].viewportMaximum)&&(g.axisX2[b].showCrosshair(a),g.axisX2[b].crosshair._updatedValue=a,this===g.axisX2[b].crosshair&&(c=!0));for(b=0;b=g.axisY[b].viewportMinimum&&a<=g.axisY[b].viewportMaximum)&&(g.axisY[b].showCrosshair(a),g.axisY[b].crosshair._updatedValue=a,this===g.axisY[b].crosshair&&(c=!0));for(b=0;b=g.axisY2[b].viewportMinimum&&a<=g.axisY2[b].viewportMaximum)&&(g.axisY2[b].showCrosshair(a),g.axisY2[b].crosshair._updatedValue=a,this===g.axisY2[b].crosshair&&\n(c=!0));this.chart.toolTip&&this.chart.toolTip._entries&&this.chart.toolTip.highlightObjects(this.chart.toolTip._entries);return c};da.prototype.hide=function(){this.chart.resetOverlayedCanvas();this.chart.renderCrosshairs(this.parent);this._hidden=!0};da.prototype.render=function(a,g,c){var b,e,d,l,t=null,v=null,k=null,m=\"\";this.valueFormatString||(\"dateTime\"===this.parent.valueType?this.valueFormatString=this.parent.valueFormatString:(k=0,k=\"xySwapped\"===this.chart.plotInfo.axisPlacement?50this.parent.range?2:Math.floor(Math.abs(Math.log(this.parent.range)/Math.LN10))+(5>this.parent.range?2:10>this.parent.range?1:0):50this.parent.range?2:10>this.parent.range?1:0),this.valueFormatString=D.generateValueFormatString(this.parent.range,k)));var p=null===this.opacity?1:this.opacity,q=Math.abs(\"pixel\"===this._thicknessType?this.thickness:this.parent.conversionParameters.pixelPerUnit*\nthis.thickness),f=this.chart.overlaidCanvasCtx,A=f.globalAlpha;f.beginPath();f.strokeStyle=this.color;f.lineWidth=q;f.save();this.labelFontSize=Math.abs(n(this.options.labelFontSize)?this.parent.labelFontSize:this.labelFontSize);this.labelMaxWidth=n(this.options.labelMaxWidth)?0.3*this.chart.width:this.labelMaxWidth;this.labelMaxHeight=n(this.options.labelWrap)||this.labelWrap?0.3*this.chart.height:2*this.labelFontSize;0this.chart.bounds.x2?k.x=this.chart.bounds.x2-k.width:k.xthis.chart.bounds.y2?k.y=this.chart.bounds.y2-k.height:k.ythis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);\"left\"===\nthis.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}}else if(\"bottom\"===this.parent._position||\"top\"===this.parent._position){w=this.parent.convertPixelToValue({x:a});for(s=0;sthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x2-\nk.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}m=null;f.globalAlpha=p;if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)\"top\"===this.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2),this.value>=Math.min(this.parent.viewportMinimum,\nthis.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.measureText().width),this.value>=Math.min(this.parent.viewportMinimum,\nthis.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&0this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2);\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x1-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2)}else{if(\"bottom\"===this.parent._position||\"top\"===this.parent._position)k.text=this.labelFormatter?this.labelFormatter({chart:this.chart,axis:this.parent.options,crosshair:this.options,value:n(c)?this.parent.convertPixelToValue(a):c}):n(this.options.label)?\nga(n(c)?this.parent.convertPixelToValue(a):c,this.valueFormatString,this.chart._cultureInfo):this.label,k.x=b-k.measureText().width/2,k.x+k.width>this.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width),k.xthis.chart.bounds.x2&&(k.x=this.chart.bounds.x2-k.width);k.xthis.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.measureText().height+k.fontSize/2),\"left\"===this.parent._position?k.x=this.parent.lineCoordinates.x2-k.measureText().width:\"right\"===this.parent._position&&(k.x=this.parent.lineCoordinates.x2);\"left\"===this.parent._position&&k.xthis.chart.bounds.x2?k.x=this.chart.bounds.x2-k.measureText().width:\"top\"===\nthis.parent._position&&k.y-k.fontSize/2this.chart.bounds.y2&&(k.y=this.chart.bounds.y2-k.height+k.fontSize/2+2);f.globalAlpha=p;0=Math.min(this.parent.viewportMinimum,this.parent.viewportMaximum)&&this.value<=Math.max(this.parent.viewportMinimum,this.parent.viewportMaximum)&&\n(n(this._textBlock)||(n(this._textBlock.text)||!(\"number\"===typeof this._textBlock.text.valueOf()||0(new Date).getTime()-this._lastUpdated||(this._lastUpdated=(new Date).getTime(),this.chart.resetOverlayedCanvas(),\nthis._updateToolTip(a,g),this.enabled&&(this._updatedEventParameters&&!isNaN(this._prevX)&&!isNaN(this._prevY))&&this.dispatchEvent(\"updated\",this._updatedEventParameters,this))};oa.prototype._updateToolTip=function(a,g,c){c=\"undefined\"===typeof c?!0:c;this._updateOptions();this.container||this._initialize();this.enabled||this.hide();if(!this.chart.disableToolTip){if(\"undefined\"===typeof a||\"undefined\"===typeof g){if(isNaN(this._prevX)||isNaN(this._prevY))return;a=this._prevX;g=this._prevY}else this._prevX=\na,this._prevY=g;var b=null,e=null,d=[],l=0;if(this.shared&&this.enabled&&\"none\"!==this.chart.plotInfo.axisPlacement){var t=[];if(this.chart.axisX)for(var A=0;Ak.dataSeries.axisY.viewportMaximum&&c++;c-k.dataPoint.y.length&&d.push(k)}else\"column\"===e.type||\"bar\"===e.type?0>k.dataPoint.y?0>k.dataSeries.axisY.viewportMinimum&&k.dataSeries.axisY.viewportMaximum>=k.dataPoint.y&&d.push(k):k.dataSeries.axisY.viewportMinimum<=k.dataPoint.y&&0<=k.dataSeries.axisY.viewportMaximum&&d.push(k):\"bubble\"===e.type?(c=this.chart._eventManager.objectMap[e.dataPointIds[k.index]].size/2,k.dataPoint.y>=k.dataSeries.axisY.viewportMinimum-\nc&&k.dataPoint.y<=k.dataSeries.axisY.viewportMaximum+c&&d.push(k)):\"waterfall\"===e.type?(c=0,k.cumulativeSumYStartValuek.dataSeries.axisY.viewportMaximum&&c++,k.cumulativeSumk.dataSeries.axisY.viewportMaximum&&c++,2>c&&-2=k.dataSeries.axisY.viewportMinimum&&k.dataPoint.y<=\nk.dataSeries.axisY.viewportMaximum)&&d.push(k);else d.push(k)}}if(0a&&(a+=this.container.clientWidth+20);a+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(a=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));g=1!==d.length||this.shared||\"line\"!==d[0].dataSeries.type&&\"stepLine\"!==d[0].dataSeries.type&&\"spline\"!==d[0].dataSeries.type&&\"area\"!==\nd[0].dataSeries.type&&\"stepArea\"!==d[0].dataSeries.type&&\"splineArea\"!==d[0].dataSeries.type?\"bar\"===d[0].dataSeries.type||\"rangeBar\"===d[0].dataSeries.type||\"stackedBar\"===d[0].dataSeries.type||\"stackedBar100\"===d[0].dataSeries.type?d[0].dataSeries.axisX.convertValueToPixel(d[0].dataPoint.x):g:d[0].dataSeries.axisY.convertValueToPixel(d[0].dataPoint.y);g=-g+10;0\";if(!c.visible)continue;t=this.chart.replaceKeywordsWithValue(t,b,c,e)}null===b.toolTipContent||\"undefined\"===typeof b.toolTipContent&&null===c.options.toolTipContent||(\"line\"===c.type||\"stepLine\"===c.type||\"spline\"===c.type||\"area\"===c.type||\"stepArea\"===c.type||\"splineArea\"===c.type||\"column\"===c.type||\"bar\"===c.type||\"scatter\"===c.type||\n\"stackedColumn\"===c.type||\"stackedColumn100\"===c.type||\"stackedBar\"===c.type||\"stackedBar100\"===c.type||\"stackedArea\"===c.type||\"stackedArea100\"===c.type||\"waterfall\"===c.type?(this.chart.axisX&&1\":\"X:{axisXIndex}
\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"{name}:  {y}\",\nn=c.axisXIndex):\"bubble\"===c.type?(this.chart.axisX&&1\":\"X:{axisXIndex}
\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"{name}:  {y},   {z}\"):\"rangeColumn\"===c.type||\"rangeBar\"===c.type||\"rangeArea\"===c.type||\"rangeSplineArea\"===c.type||\n\"error\"===c.type?(this.chart.axisX&&1\":\"X:{axisXIndex}
\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"{name}:  {y[0]}, {y[1]}\"):\"candlestick\"===c.type||\"ohlc\"===c.type?(this.chart.axisX&&1\":\"X:{axisXIndex}
\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"{name}:
Open:   {y[0]}
High:    {y[1]}
Low:   {y[2]}
Close:   {y[3]}\"):\"boxAndWhisker\"===c.type&&(this.chart.axisX&&1\":\"X:{axisXIndex}
\":\"\"),h+=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"{name}:
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}\"),\nnull===d&&(d=\"\"),c.visible&&(!0===this.reversed?(d=this.chart.replaceKeywordsWithValue(h,b,c,e)+d,l\"+d)):(d+=this.chart.replaceKeywordsWithValue(h,b,c,e),l\"))))}null!==d&&(d=t+d)}else{c=a[0].dataSeries;b=a[0].dataPoint;e=a[0].index;if(null===b.toolTipContent||\"undefined\"===typeof b.toolTipContent&&null===c.options.toolTipContent)return null;\"line\"===c.type||\"stepLine\"===c.type||\"spline\"===c.type||\"area\"===c.type||\"stepArea\"===c.type||\"splineArea\"===c.type||\n\"column\"===c.type||\"bar\"===c.type||\"scatter\"===c.type||\"stackedColumn\"===c.type||\"stackedColumn100\"===c.type||\"stackedBar\"===c.type||\"stackedBar100\"===c.type||\"stackedArea\"===c.type||\"stackedArea100\"===c.type||\"waterfall\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"\"+(b.label?\"{label}\":\"{x}\")+\":  {y}\":\"bubble\"===c.type?\nh=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"\"+(b.label?\"{label}\":\"{x}\")+\":  {y},   {z}\":\"pie\"===c.type||\"doughnut\"===c.type||\"funnel\"===c.type||\"pyramid\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"\"+(b.name?\"{name}:  \":b.label?\"{label}:  \":\"\")+\"{y}\":\"rangeColumn\"===c.type||\"rangeBar\"===c.type||\"rangeArea\"===c.type||\"rangeSplineArea\"===c.type||\"error\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"\"+(b.label?\"{label}\":\"{x}\")+\" :  {y[0]},  {y[1]}\":\"candlestick\"===\nc.type||\"ohlc\"===c.type?h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\"function\"!==typeof this.content?this.content:\"\"+(b.label?\"{label}\":\"{x}\")+\"
Open:   {y[0]}
High:    {y[1]}
Low:     {y[2]}
Close:   {y[3]}\":\"boxAndWhisker\"===c.type&&(h=b.toolTipContent?b.toolTipContent:c.toolTipContent?c.toolTipContent:this.content&&\n\"function\"!==typeof this.content?this.content:\"\"+(b.label?\"{label}\":\"{x}\")+\"
Minimum:  {y[0]}
Q1:            {y[1]}
Q2:            {y[4]}
Q3:            {y[2]}
Maximum:  {y[3]}\");null===d&&(d=\"\");d+=this.chart.replaceKeywordsWithValue(h,\nb,c,e)}return d};oa.prototype.enableAnimation=function(){if(!this.container.style.WebkitTransition){var a=this.getContainerTransition(this.containerTransitionDuration);this.container.style.WebkitTransition=a;this.container.style.MsTransition=a;this.container.style.transition=a;this.container.style.MozTransition=this.mozContainerTransition}};oa.prototype.disableAnimation=function(){this.container.style.WebkitTransition&&(this.container.style.WebkitTransition=\"\",this.container.style.MozTransition=\"\",\nthis.container.style.MsTransition=\"\",this.container.style.transition=\"\")};oa.prototype.hide=function(a){this.container&&(this.container.style.display=\"none\",this.currentSeriesIndex=-1,this._entries=this._dataSeriesIndex=this._xValue=null,this._prevY=this._prevX=NaN,this._updatedEventParameters=null,(\"undefined\"===typeof a||a)&&this.chart.resetOverlayedCanvas())};oa.prototype.show=function(a,d,c){this._updateToolTip(a,d,\"undefined\"===typeof c?!1:c)};oa.prototype.showAtIndex=function(a,d){};oa.prototype.showAtX=\nfunction(a,d){if(!this.enabled)return!1;this.chart.clearedOverlayedCanvas=null;this._updateOptions();var c,b,e,h=[];e=!1;d=!n(d)&&0<=d&&d=b.dataSeries.axisX.viewportMinimum&&b.dataPoint.x<=b.dataSeries.axisX.viewportMaximum){e=!1;break}else if(b.dataPoint.xb.dataSeries.axisX.viewportMaximum||b.dataPoint.yb.dataSeries.axisY.viewportMaximum)e=!0;else{e=!1;break}if(e)return this.hide(),\n!1;this.highlightObjects(h);this._entries=h;l=\"\";l=this.getToolTipInnerHTML({entries:h});if(null!==l){this.contentDiv.innerHTML=l;if(this.isToolTipDefinedInData&&n(this.options.content)&&n(this.options.contentFormatter))for(b=this.contentDiv.getElementsByTagName(\"span\"),l=0;lc&&(c+=this.container.clientWidth+20);c+this.container.clientWidth>Math.max(this.chart.container.clientWidth,this.chart.width)&&(c=Math.max(0,Math.max(this.chart.container.clientWidth,this.chart.width)-this.container.clientWidth));h=1!==h.length||this.shared||\"line\"!==h[0].dataSeries.type&&\"stepLine\"!==h[0].dataSeries.type&&\"spline\"!==h[0].dataSeries.type&&\"area\"!==h[0].dataSeries.type&&\n\"stepArea\"!==h[0].dataSeries.type&&\"splineArea\"!==h[0].dataSeries.type?\"bar\"===h[0].dataSeries.type||\"rangeBar\"===h[0].dataSeries.type||\"stackedBar\"===h[0].dataSeries.type||\"stackedBar100\"===h[0].dataSeries.type?h[0].dataSeries.axisX.convertValueToPixel(h[0].dataPoint.x):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y):h[0].dataSeries.axisY.convertValueToPixel(h[0].dataPoint.y);h=-h+10;0b&&a.push(d),d.animationCallback(b),1<=b&&d.onComplete)d.onComplete();this.animations=a;0g;g++)for(var e=0;3>e;e++){for(var f=0,d=0;3>d;d++)f+=a[g][d]*b[d][e];c[g][e]=f}return c}function P(a,b){b.fillStyle=a.fillStyle;b.lineCap=a.lineCap;b.lineJoin=a.lineJoin;b.lineWidth=a.lineWidth;b.miterLimit=a.miterLimit;b.shadowBlur=a.shadowBlur;b.shadowColor=a.shadowColor;b.shadowOffsetX=\na.shadowOffsetX;b.shadowOffsetY=a.shadowOffsetY;b.strokeStyle=a.strokeStyle;b.globalAlpha=a.globalAlpha;b.font=a.font;b.textAlign=a.textAlign;b.textBaseline=a.textBaseline;b.arcScaleX_=a.arcScaleX_;b.arcScaleY_=a.arcScaleY_;b.lineScale_=a.lineScale_}function Q(a){var b=a.indexOf(\"(\",3),c=a.indexOf(\")\",b+1),b=a.substring(b+1,c).split(\",\");if(4!=b.length||\"a\"!=a.charAt(3))b[3]=1;return b}function E(a,b,c){return Math.min(c,Math.max(b,a))}function F(a,b,c){0>c&&c++;16*c?a+6*(b-a)*c:\n1>2*c?b:2>3*c?a+6*(b-a)*(2/3-c):a}function G(a){if(a in H)return H[a];var b,c=1;a=String(a);if(\"#\"==a.charAt(0))b=a;else if(/^rgb/.test(a)){c=Q(a);b=\"#\";for(var g,e=0;3>e;e++)g=-1!=c[e].indexOf(\"%\")?Math.floor(255*(parseFloat(c[e])/100)):+c[e],b+=v[E(g,0,255)];c=+c[3]}else if(/^hsl/.test(a)){e=c=Q(a);b=parseFloat(e[0])/360%360;0>b&&b++;g=E(parseFloat(e[1])/100,0,1);e=E(parseFloat(e[2])/100,0,1);if(0==g)g=e=b=e;else{var f=0.5>e?e*(1+g):e+g-e*g,d=2*e-f;g=F(d,f,b+1/3);e=F(d,f,b);b=F(d,f,b-1/3)}b=\"#\"+\nv[Math.floor(255*g)]+v[Math.floor(255*e)]+v[Math.floor(255*b)];c=c[3]}else b=Z[a]||a;return H[a]={color:b,alpha:c}}function C(a){this.m_=D();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.fillStyle=this.strokeStyle=\"#000\";this.lineWidth=1;this.lineJoin=\"miter\";this.lineCap=\"butt\";this.miterLimit=1*q;this.globalAlpha=1;this.font=\"10px sans-serif\";this.textAlign=\"left\";this.textBaseline=\"alphabetic\";this.canvas=a;var b=\"width:\"+a.clientWidth+\"px;height:\"+a.clientHeight+\"px;overflow:hidden;position:absolute\",\nc=a.ownerDocument.createElement(\"div\");c.style.cssText=b;a.appendChild(c);b=c.cloneNode(!1);b.style.backgroundColor=\"red\";b.style.filter=\"alpha(opacity=0)\";a.appendChild(b);this.element_=c;this.lineScale_=this.arcScaleY_=this.arcScaleX_=1}function R(a,b,c,g){a.currentPath_.push({type:\"bezierCurveTo\",cp1x:b.x,cp1y:b.y,cp2x:c.x,cp2y:c.y,x:g.x,y:g.y});a.currentX_=g.x;a.currentY_=g.y}function S(a,b){var c=G(a.strokeStyle),g=c.color,c=c.alpha*a.globalAlpha,e=a.lineScale_*a.lineWidth;1>e&&(c*=e);b.push(\"')}function T(a,b,c,g){var e=a.fillStyle,f=a.arcScaleX_,d=a.arcScaleY_,k=g.x-c.x,n=g.y-c.y;if(e instanceof w){var h=0,l=g=0,u=0,m=1;if(\"gradient\"==e.type_){h=e.x1_/f;c=e.y1_/d;var p=s(a,e.x0_/f,e.y0_/d),h=s(a,h,c),h=180*Math.atan2(h.x-p.x,h.y-p.y)/Math.PI;0>h&&(h+=360);1E-6>h&&(h=0)}else p=s(a,e.x0_,e.y0_),g=(p.x-c.x)/k,l=(p.y-c.y)/n,k/=f*q,\nn/=d*q,m=x.max(k,n),u=2*e.r0_/m,m=2*e.r1_/m-u;f=e.colors_;f.sort(function(a,b){return a.offset-b.offset});d=f.length;p=f[0].color;c=f[d-1].color;k=f[0].alpha*a.globalAlpha;a=f[d-1].alpha*a.globalAlpha;for(var n=[],r=0;r')}else e instanceof\nI?k&&n&&b.push(\"'):(e=G(a.fillStyle),b.push(''))}function s(a,b,c){a=a.m_;return{x:q*(b*a[0][0]+c*a[1][0]+a[2][0])-r,y:q*(b*a[0][1]+c*a[1][1]+a[2][1])-r}}function z(a,b,c){isFinite(b[0][0])&&(isFinite(b[0][1])&&isFinite(b[1][0])&&isFinite(b[1][1])&&isFinite(b[2][0])&&isFinite(b[2][1]))&&(a.m_=b,c&&(a.lineScale_=aa(ba(b[0][0]*b[1][1]-b[0][1]*\nb[1][0]))))}function w(a){this.type_=a;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}function I(a,b){if(!a||1!=a.nodeType||\"IMG\"!=a.tagName)throw new A(\"TYPE_MISMATCH_ERR\");if(\"complete\"!=a.readyState)throw new A(\"INVALID_STATE_ERR\");switch(b){case \"repeat\":case null:case \"\":this.repetition_=\"repeat\";break;case \"repeat-x\":case \"repeat-y\":case \"no-repeat\":this.repetition_=b;break;default:throw new A(\"SYNTAX_ERR\");}this.src_=a.src;this.width_=a.width;this.height_=a.height}\nfunction A(a){this.code=this[a];this.message=a+\": DOM Exception \"+this.code}var x=Math,k=x.round,J=x.sin,K=x.cos,ba=x.abs,aa=x.sqrt,q=10,r=q/2;navigator.userAgent.match(/MSIE ([\\d.]+)?/);var M=Array.prototype.slice;O(document);var U={init:function(a){a=a||document;a.createElement(\"canvas\");a.attachEvent(\"onreadystatechange\",W(this.init_,this,a))},init_:function(a){a=a.getElementsByTagName(\"canvas\");for(var b=0;bd;d++)for(var B=0;16>B;B++)v[16*d+B]=d.toString(16)+B.toString(16);var Z={aliceblue:\"#F0F8FF\",antiquewhite:\"#FAEBD7\",aquamarine:\"#7FFFD4\",azure:\"#F0FFFF\",beige:\"#F5F5DC\",\nbisque:\"#FFE4C4\",black:\"#000000\",blanchedalmond:\"#FFEBCD\",blueviolet:\"#8A2BE2\",brown:\"#A52A2A\",burlywood:\"#DEB887\",cadetblue:\"#5F9EA0\",chartreuse:\"#7FFF00\",chocolate:\"#D2691E\",coral:\"#FF7F50\",cornflowerblue:\"#6495ED\",cornsilk:\"#FFF8DC\",crimson:\"#DC143C\",cyan:\"#00FFFF\",darkblue:\"#00008B\",darkcyan:\"#008B8B\",darkgoldenrod:\"#B8860B\",darkgray:\"#A9A9A9\",darkgreen:\"#006400\",darkgrey:\"#A9A9A9\",darkkhaki:\"#BDB76B\",darkmagenta:\"#8B008B\",darkolivegreen:\"#556B2F\",darkorange:\"#FF8C00\",darkorchid:\"#9932CC\",darkred:\"#8B0000\",\ndarksalmon:\"#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\",gainsboro:\"#DCDCDC\",ghostwhite:\"#F8F8FF\",gold:\"#FFD700\",goldenrod:\"#DAA520\",grey:\"#808080\",greenyellow:\"#ADFF2F\",honeydew:\"#F0FFF0\",hotpink:\"#FF69B4\",indianred:\"#CD5C5C\",indigo:\"#4B0082\",\nivory:\"#FFFFF0\",khaki:\"#F0E68C\",lavender:\"#E6E6FA\",lavenderblush:\"#FFF0F5\",lawngreen:\"#7CFC00\",lemonchiffon:\"#FFFACD\",lightblue:\"#ADD8E6\",lightcoral:\"#F08080\",lightcyan:\"#E0FFFF\",lightgoldenrodyellow:\"#FAFAD2\",lightgreen:\"#90EE90\",lightgrey:\"#D3D3D3\",lightpink:\"#FFB6C1\",lightsalmon:\"#FFA07A\",lightseagreen:\"#20B2AA\",lightskyblue:\"#87CEFA\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#B0C4DE\",lightyellow:\"#FFFFE0\",limegreen:\"#32CD32\",linen:\"#FAF0E6\",magenta:\"#FF00FF\",mediumaquamarine:\"#66CDAA\",\nmediumblue:\"#0000CD\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",mediumseagreen:\"#3CB371\",mediumslateblue:\"#7B68EE\",mediumspringgreen:\"#00FA9A\",mediumturquoise:\"#48D1CC\",mediumvioletred:\"#C71585\",midnightblue:\"#191970\",mintcream:\"#F5FFFA\",mistyrose:\"#FFE4E1\",moccasin:\"#FFE4B5\",navajowhite:\"#FFDEAD\",oldlace:\"#FDF5E6\",olivedrab:\"#6B8E23\",orange:\"#FFA500\",orangered:\"#FF4500\",orchid:\"#DA70D6\",palegoldenrod:\"#EEE8AA\",palegreen:\"#98FB98\",paleturquoise:\"#AFEEEE\",palevioletred:\"#DB7093\",papayawhip:\"#FFEFD5\",\npeachpuff:\"#FFDAB9\",peru:\"#CD853F\",pink:\"#FFC0CB\",plum:\"#DDA0DD\",powderblue:\"#B0E0E6\",rosybrown:\"#BC8F8F\",royalblue:\"#4169E1\",saddlebrown:\"#8B4513\",salmon:\"#FA8072\",sandybrown:\"#F4A460\",seagreen:\"#2E8B57\",seashell:\"#FFF5EE\",sienna:\"#A0522D\",skyblue:\"#87CEEB\",slateblue:\"#6A5ACD\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#FFFAFA\",springgreen:\"#00FF7F\",steelblue:\"#4682B4\",tan:\"#D2B48C\",thistle:\"#D8BFD8\",tomato:\"#FF6347\",turquoise:\"#40E0D0\",violet:\"#EE82EE\",wheat:\"#F5DEB3\",whitesmoke:\"#F5F5F5\",yellowgreen:\"#9ACD32\"},\nH={},L={},$={butt:\"flat\",round:\"round\"},d=C.prototype;d.clearRect=function(){this.textMeasureEl_&&(this.textMeasureEl_.removeNode(!0),this.textMeasureEl_=null);this.element_.innerHTML=\"\"};d.beginPath=function(){this.currentPath_=[]};d.moveTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:\"moveTo\",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.lineTo=function(a,b){var c=s(this,a,b);this.currentPath_.push({type:\"lineTo\",x:c.x,y:c.y});this.currentX_=c.x;this.currentY_=c.y};d.bezierCurveTo=\nfunction(a,b,c,g,e,f){e=s(this,e,f);a=s(this,a,b);c=s(this,c,g);R(this,a,c,e)};d.quadraticCurveTo=function(a,b,c,g){a=s(this,a,b);c=s(this,c,g);g={x:this.currentX_+2/3*(a.x-this.currentX_),y:this.currentY_+2/3*(a.y-this.currentY_)};R(this,g,{x:g.x+(c.x-this.currentX_)/3,y:g.y+(c.y-this.currentY_)/3},c)};d.arc=function(a,b,c,g,e,f){c*=q;var d=f?\"at\":\"wa\",k=a+K(g)*c-r,n=b+J(g)*c-r;g=a+K(e)*c-r;e=b+J(e)*c-r;k!=g||f||(k+=0.125);a=s(this,a,b);k=s(this,k,n);g=s(this,g,e);this.currentPath_.push({type:d,\nx:a.x,y:a.y,radius:c,xStart:k.x,yStart:k.y,xEnd:g.x,yEnd:g.y})};d.rect=function(a,b,c,g){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath()};d.strokeRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+g);this.lineTo(a,b+g);this.closePath();this.stroke();this.currentPath_=e};d.fillRect=function(a,b,c,g){var e=this.currentPath_;this.beginPath();this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+\nc,b+g);this.lineTo(a,b+g);this.closePath();this.fill();this.currentPath_=e};d.createLinearGradient=function(a,b,c,g){var e=new w(\"gradient\");e.x0_=a;e.y0_=b;e.x1_=c;e.y1_=g;return e};d.createRadialGradient=function(a,b,c,g,e,f){var d=new w(\"gradientradial\");d.x0_=a;d.y0_=b;d.r0_=c;d.x1_=g;d.y1_=e;d.r1_=f;return d};d.drawImage=function(a,b){var c,g,e,d,r,y,n,h;e=a.runtimeStyle.width;d=a.runtimeStyle.height;a.runtimeStyle.width=\"auto\";a.runtimeStyle.height=\"auto\";var l=a.width,u=a.height;a.runtimeStyle.width=\ne;a.runtimeStyle.height=d;if(3==arguments.length)c=arguments[1],g=arguments[2],r=y=0,n=e=l,h=d=u;else if(5==arguments.length)c=arguments[1],g=arguments[2],e=arguments[3],d=arguments[4],r=y=0,n=l,h=u;else if(9==arguments.length)r=arguments[1],y=arguments[2],n=arguments[3],h=arguments[4],c=arguments[5],g=arguments[6],e=arguments[7],d=arguments[8];else throw Error(\"Invalid number of arguments\");var m=s(this,c,g),p=[];p.push(\" ','\",\"\");this.element_.insertAdjacentHTML(\"BeforeEnd\",p.join(\"\"))};d.stroke=function(a){var b=[];b.push(\"d.x)d.x=f.x;if(null==c.y||f.yd.y)d.y=f.y}}b.push(' \">');a?T(this,b,c,d):S(this,b);b.push(\"\");this.element_.insertAdjacentHTML(\"beforeEnd\",b.join(\"\"))};d.fill=function(){this.stroke(!0)};d.closePath=function(){this.currentPath_.push({type:\"close\"})};d.save=function(){var a=\n{};P(this,a);this.aStack_.push(a);this.mStack_.push(this.m_);this.m_=t(D(),this.m_)};d.restore=function(){this.aStack_.length&&(P(this.aStack_.pop(),this),this.m_=this.mStack_.pop())};d.translate=function(a,b){z(this,t([[1,0,0],[0,1,0],[a,b,1]],this.m_),!1)};d.rotate=function(a){var b=K(a);a=J(a);z(this,t([[b,a,0],[-a,b,0],[0,0,1]],this.m_),!1)};d.scale=function(a,b){this.arcScaleX_*=a;this.arcScaleY_*=b;z(this,t([[a,0,0],[0,b,0],[0,0,1]],this.m_),!0)};d.transform=function(a,b,c,d,e,f){z(this,t([[a,\nb,0],[c,d,0],[e,f,1]],this.m_),!0)};d.setTransform=function(a,b,c,d,e,f){z(this,[[a,b,0],[c,d,0],[e,f,1]],!0)};d.drawText_=function(a,b,c,d,e){var f=this.m_;d=0;var r=1E3,t=0,n=[],h;h=this.font;if(L[h])h=L[h];else{var l=document.createElement(\"div\").style;try{l.font=h}catch(u){}h=L[h]={style:l.fontStyle||\"normal\",variant:l.fontVariant||\"normal\",weight:l.fontWeight||\"normal\",size:l.fontSize||10,family:l.fontFamily||\"sans-serif\"}}var l=h,m=this.element_;h={};for(var p in l)h[p]=l[p];p=parseFloat(m.currentStyle.fontSize);\nm=parseFloat(l.size);\"number\"==typeof l.size?h.size=l.size:-1!=l.size.indexOf(\"px\")?h.size=m:-1!=l.size.indexOf(\"em\")?h.size=p*m:-1!=l.size.indexOf(\"%\")?h.size=p/100*m:-1!=l.size.indexOf(\"pt\")?h.size=m/0.75:h.size=p;h.size*=0.981;p=h.style+\" \"+h.variant+\" \"+h.weight+\" \"+h.size+\"px \"+h.family;m=this.element_.currentStyle;l=this.textAlign.toLowerCase();switch(l){case \"left\":case \"center\":case \"right\":break;case \"end\":l=\"ltr\"==m.direction?\"right\":\"left\";break;case \"start\":l=\"rtl\"==m.direction?\"right\":\n\"left\";break;default:l=\"left\"}switch(this.textBaseline){case \"hanging\":case \"top\":t=h.size/1.75;break;case \"middle\":break;default:case null:case \"alphabetic\":case \"ideographic\":case \"bottom\":t=-h.size/2.25}switch(l){case \"right\":d=1E3;r=0.05;break;case \"center\":d=r=500}b=s(this,b+0,c+t);n.push('');e?S(this,n):T(this,n,{x:-d,y:0},\n{x:r,y:h.size});e=f[0][0].toFixed(3)+\",\"+f[1][0].toFixed(3)+\",\"+f[0][1].toFixed(3)+\",\"+f[1][1].toFixed(3)+\",0,0\";b=k(b.x/q)+\",\"+k(b.y/q);n.push('','','');this.element_.insertAdjacentHTML(\"beforeEnd\",n.join(\"\"))};d.fillText=function(a,b,c,d){this.drawText_(a,b,c,d,!1)};d.strokeText=function(a,\nb,c,d){this.drawText_(a,b,c,d,!0)};d.measureText=function(a){this.textMeasureEl_||(this.element_.insertAdjacentHTML(\"beforeEnd\",''),this.textMeasureEl_=this.element_.lastChild);var b=this.element_.ownerDocument;this.textMeasureEl_.innerHTML=\"\";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(b.createTextNode(a));return{width:this.textMeasureEl_.offsetWidth}};d.clip=function(){};\nd.arcTo=function(){};d.createPattern=function(a,b){return new I(a,b)};w.prototype.addColorStop=function(a,b){b=G(b);this.colors_.push({offset:a,color:b.color,alpha:b.alpha})};d=A.prototype=Error();d.INDEX_SIZE_ERR=1;d.DOMSTRING_SIZE_ERR=2;d.HIERARCHY_REQUEST_ERR=3;d.WRONG_DOCUMENT_ERR=4;d.INVALID_CHARACTER_ERR=5;d.NO_DATA_ALLOWED_ERR=6;d.NO_MODIFICATION_ALLOWED_ERR=7;d.NOT_FOUND_ERR=8;d.NOT_SUPPORTED_ERR=9;d.INUSE_ATTRIBUTE_ERR=10;d.INVALID_STATE_ERR=11;d.SYNTAX_ERR=12;d.INVALID_MODIFICATION_ERR=\n13;d.NAMESPACE_ERR=14;d.INVALID_ACCESS_ERR=15;d.VALIDATION_ERR=16;d.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=U;CanvasRenderingContext2D=C;CanvasGradient=w;CanvasPattern=I;DOMException=A}();\n/*tslint:enable*/\r\n/*eslint-enable*/\r\n/*jshint ignore:end*/"]}