PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/home/sharklogisticsinc.com/www/wp-content/plugins/so-widgets-bundle/js/
Upload File :
Current File : //home/sharklogisticsinc.com/www/wp-content/plugins/so-widgets-bundle/js/jquery.cycle.js
/*!
 * jQuery Cycle2; version: 2.1.6 build: 20141007
 * http://jquery.malsup.com/cycle2/
 * Copyright (c) 2014 M. Alsup; Dual licensed: MIT/GPL
 */

/* Cycle2 core engine */
;(function($) {
    "use strict";

    var version = '2.1.6';

    $.fn.cycle = function( options ) {
        // fix mistakes with the ready state
        var o;
        if ( this.length === 0 && !$.isReady ) {
            o = { s: this.selector, c: this.context };
            $.fn.cycle.log('requeuing slideshow (dom not ready)');
            $(function() {
                $( o.s, o.c ).cycle(options);
            });
            return this;
        }

        return this.each(function() {
            var data, opts, shortName, val;
            var container = $(this);
            var log = $.fn.cycle.log;

            if ( container.data('cycle.opts') )
                return; // already initialized

            if ( container.data('cycle-log') === false ||
                ( options && options.log === false ) ||
                ( opts && opts.log === false) ) {
                log = $.noop;
            }

            log('--c2 init--');
            data = container.data();
            for (var p in data) {
                // allow props to be accessed sans 'cycle' prefix and log the overrides
                if (data.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {
                    val = data[p];
                    shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);
                    log(shortName+':', val, '('+typeof val +')');
                    data[shortName] = val;
                }
            }

            opts = $.extend( {}, $.fn.cycle.defaults, data, options || {});

            opts.timeoutId = 0;
            opts.paused = opts.paused || false; // #57
            opts.container = container;
            opts._maxZ = opts.maxZ;

            opts.API = $.extend ( { _container: container }, $.fn.cycle.API );
            opts.API.log = log;
            opts.API.trigger = function( eventName, args ) {
                opts.container.trigger( eventName, args );
                return opts.API;
            };

            container.data( 'cycle.opts', opts );
            container.data( 'cycle.API', opts.API );

            // opportunity for plugins to modify opts and API
            opts.API.trigger('cycle-bootstrap', [ opts, opts.API ]);

            opts.API.addInitialSlides();
            opts.API.preInitSlideshow();

            if ( opts.slides.length )
                opts.API.initSlideshow();
        });
    };

    $.fn.cycle.API = {
        opts: function() {
            return this._container.data( 'cycle.opts' );
        },
        addInitialSlides: function() {
            var opts = this.opts();
            var slides = opts.slides;
            opts.slideCount = 0;
            opts.slides = $(); // empty set

            // add slides that already exist
            slides = slides.jquery ? slides : opts.container.find( slides );

            if ( opts.random ) {
                slides.sort(function() {return Math.random() - 0.5;});
            }

            opts.API.add( slides );
        },

        preInitSlideshow: function() {
            var opts = this.opts();
            opts.API.trigger('cycle-pre-initialize', [ opts ]);
            var tx = $.fn.cycle.transitions[opts.fx];
            if (tx && $.isFunction(tx.preInit))
                tx.preInit( opts );
            opts._preInitialized = true;
        },

        postInitSlideshow: function() {
            var opts = this.opts();
            opts.API.trigger('cycle-post-initialize', [ opts ]);
            var tx = $.fn.cycle.transitions[opts.fx];
            if (tx && $.isFunction(tx.postInit))
                tx.postInit( opts );
        },

        initSlideshow: function() {
            var opts = this.opts();
            var pauseObj = opts.container;
            var slideOpts;
            opts.API.calcFirstSlide();

            if ( opts.container.css('position') == 'static' )
                opts.container.css('position', 'relative');

            $(opts.slides[opts.currSlide]).css({
                opacity: 1,
                display: 'block',
                visibility: 'visible'
            });
            opts.API.stackSlides( opts.slides[opts.currSlide], opts.slides[opts.nextSlide], !opts.reverse );

            if ( opts.pauseOnHover ) {
                // allow pauseOnHover to specify an element
                if ( opts.pauseOnHover !== true )
                    pauseObj = $( opts.pauseOnHover );

                pauseObj.hover(
                    function(){ opts.API.pause( true ); },
                    function(){ opts.API.resume( true ); }
                );
            }

            // stage initial transition
            if ( opts.timeout ) {
                slideOpts = opts.API.getSlideOpts( opts.currSlide );
                opts.API.queueTransition( slideOpts, slideOpts.timeout + opts.delay );
            }

            opts._initialized = true;
            opts.API.updateView( true );
            opts.API.trigger('cycle-initialized', [ opts ]);
            opts.API.postInitSlideshow();
        },

        pause: function( hover ) {
            var opts = this.opts(),
                slideOpts = opts.API.getSlideOpts(),
                alreadyPaused = opts.hoverPaused || opts.paused;

            if ( hover )
                opts.hoverPaused = true;
            else
                opts.paused = true;

            if ( ! alreadyPaused ) {
                opts.container.addClass('cycle-paused');
                opts.API.trigger('cycle-paused', [ opts ]).log('cycle-paused');

                if ( slideOpts.timeout ) {
                    clearTimeout( opts.timeoutId );
                    opts.timeoutId = 0;

                    // determine how much time is left for the current slide
                    opts._remainingTimeout -= ( $.now() - opts._lastQueue );
                    if ( opts._remainingTimeout < 0 || isNaN(opts._remainingTimeout) )
                        opts._remainingTimeout = undefined;
                }
            }
        },

        resume: function( hover ) {
            var opts = this.opts(),
                alreadyResumed = !opts.hoverPaused && !opts.paused,
                remaining;

            if ( hover )
                opts.hoverPaused = false;
            else
                opts.paused = false;


            if ( ! alreadyResumed ) {
                opts.container.removeClass('cycle-paused');
                // #gh-230; if an animation is in progress then don't queue a new transition; it will
                // happen naturally
                if ( opts.slides.filter(':animated').length === 0 )
                    opts.API.queueTransition( opts.API.getSlideOpts(), opts._remainingTimeout );
                opts.API.trigger('cycle-resumed', [ opts, opts._remainingTimeout ] ).log('cycle-resumed');
            }
        },

        add: function( slides, prepend ) {
            var opts = this.opts();
            var oldSlideCount = opts.slideCount;
            var startSlideshow = false;
            var len;

            if ( $.type(slides) == 'string')
                slides = $.trim( slides );

            $( slides ).each(function(i) {
                var slideOpts;
                var slide = $(this);

                if ( prepend )
                    opts.container.prepend( slide );
                else
                    opts.container.append( slide );

                opts.slideCount++;
                slideOpts = opts.API.buildSlideOpts( slide );

                if ( prepend )
                    opts.slides = $( slide ).add( opts.slides );
                else
                    opts.slides = opts.slides.add( slide );

                opts.API.initSlide( slideOpts, slide, --opts._maxZ );

                slide.data('cycle.opts', slideOpts);
                opts.API.trigger('cycle-slide-added', [ opts, slideOpts, slide ]);
            });

            opts.API.updateView( true );

            startSlideshow = opts._preInitialized && (oldSlideCount < 2 && opts.slideCount >= 1);
            if ( startSlideshow ) {
                if ( !opts._initialized )
                    opts.API.initSlideshow();
                else if ( opts.timeout ) {
                    len = opts.slides.length;
                    opts.nextSlide = opts.reverse ? len - 1 : 1;
                    if ( !opts.timeoutId ) {
                        opts.API.queueTransition( opts );
                    }
                }
            }
        },

        calcFirstSlide: function() {
            var opts = this.opts();
            var firstSlideIndex;
            firstSlideIndex = parseInt( opts.startingSlide || 0, 10 );
            if (firstSlideIndex >= opts.slides.length || firstSlideIndex < 0)
                firstSlideIndex = 0;

            opts.currSlide = firstSlideIndex;
            if ( opts.reverse ) {
                opts.nextSlide = firstSlideIndex - 1;
                if (opts.nextSlide < 0)
                    opts.nextSlide = opts.slides.length - 1;
            }
            else {
                opts.nextSlide = firstSlideIndex + 1;
                if (opts.nextSlide == opts.slides.length)
                    opts.nextSlide = 0;
            }
        },

        calcNextSlide: function() {
            var opts = this.opts();
            var roll;
            if ( opts.reverse ) {
                roll = (opts.nextSlide - 1) < 0;
                opts.nextSlide = roll ? opts.slideCount - 1 : opts.nextSlide-1;
                opts.currSlide = roll ? 0 : opts.nextSlide+1;
            }
            else {
                roll = (opts.nextSlide + 1) == opts.slides.length;
                opts.nextSlide = roll ? 0 : opts.nextSlide+1;
                opts.currSlide = roll ? opts.slides.length-1 : opts.nextSlide-1;
            }
        },

        calcTx: function( slideOpts, manual ) {
            var opts = slideOpts;
            var tx;

            if ( opts._tempFx )
                tx = $.fn.cycle.transitions[opts._tempFx];
            else if ( manual && opts.manualFx )
                tx = $.fn.cycle.transitions[opts.manualFx];

            if ( !tx )
                tx = $.fn.cycle.transitions[opts.fx];

            opts._tempFx = null;
            this.opts()._tempFx = null;

            if (!tx) {
                tx = $.fn.cycle.transitions.fade;
                opts.API.log('Transition "' + opts.fx + '" not found.  Using fade.');
            }
            return tx;
        },

        prepareTx: function( manual, fwd ) {
            var opts = this.opts();
            var after, curr, next, slideOpts, tx;

            if ( opts.slideCount < 2 ) {
                opts.timeoutId = 0;
                return;
            }
            if ( manual && ( !opts.busy || opts.manualTrump ) ) {
                opts.API.stopTransition();
                opts.busy = false;
                clearTimeout(opts.timeoutId);
                opts.timeoutId = 0;
            }
            if ( opts.busy )
                return;
            if ( opts.timeoutId === 0 && !manual )
                return;

            curr = opts.slides[opts.currSlide];
            next = opts.slides[opts.nextSlide];
            slideOpts = opts.API.getSlideOpts( opts.nextSlide );
            tx = opts.API.calcTx( slideOpts, manual );

            opts._tx = tx;

            if ( manual && slideOpts.manualSpeed !== undefined )
                slideOpts.speed = slideOpts.manualSpeed;

            // if ( opts.nextSlide === opts.currSlide )
            //     opts.API.calcNextSlide();

            // ensure that:
            //      1. advancing to a different slide
            //      2. this is either a manual event (prev/next, pager, cmd) or
            //              a timer event and slideshow is not paused
            if ( opts.nextSlide != opts.currSlide &&
                (manual || (!opts.paused && !opts.hoverPaused && opts.timeout) )) { // #62

                opts.API.trigger('cycle-before', [ slideOpts, curr, next, fwd ]);
                if ( tx.before )
                    tx.before( slideOpts, curr, next, fwd );

                after = function() {
                    opts.busy = false;
                    // #76; bail if slideshow has been destroyed
                    if (! opts.container.data( 'cycle.opts' ) )
                        return;

                    if (tx.after)
                        tx.after( slideOpts, curr, next, fwd );
                    opts.API.trigger('cycle-after', [ slideOpts, curr, next, fwd ]);
                    opts.API.queueTransition( slideOpts);
                    opts.API.updateView( true );
                };

                opts.busy = true;
                if (tx.transition)
                    tx.transition(slideOpts, curr, next, fwd, after);
                else
                    opts.API.doTransition( slideOpts, curr, next, fwd, after);

                opts.API.calcNextSlide();
                opts.API.updateView();
            } else {
                opts.API.queueTransition( slideOpts );
            }
        },

        // perform the actual animation
        doTransition: function( slideOpts, currEl, nextEl, fwd, callback) {
            var opts = slideOpts;
            var curr = $(currEl), next = $(nextEl);
            var fn = function() {
                // make sure animIn has something so that callback doesn't trigger immediately
                next.animate(opts.animIn || { opacity: 1}, opts.speed, opts.easeIn || opts.easing, callback);
            };

            next.css(opts.cssBefore || {});
            curr.animate(opts.animOut || {}, opts.speed, opts.easeOut || opts.easing, function() {
                curr.css(opts.cssAfter || {});
                if (!opts.sync) {
                    fn();
                }
            });
            if (opts.sync) {
                fn();
            }
        },

        queueTransition: function( slideOpts, specificTimeout ) {
            var opts = this.opts();
            var timeout = specificTimeout !== undefined ? specificTimeout : slideOpts.timeout;
            if (opts.nextSlide === 0 && --opts.loop === 0) {
                opts.API.log('terminating; loop=0');
                opts.timeout = 0;
                if ( timeout ) {
                    setTimeout(function() {
                        opts.API.trigger('cycle-finished', [ opts ]);
                    }, timeout);
                }
                else {
                    opts.API.trigger('cycle-finished', [ opts ]);
                }
                // reset nextSlide
                opts.nextSlide = opts.currSlide;
                return;
            }
            if ( opts.continueAuto !== undefined ) {
                if ( opts.continueAuto === false ||
                    ($.isFunction(opts.continueAuto) && opts.continueAuto() === false )) {
                    opts.API.log('terminating automatic transitions');
                    opts.timeout = 0;
                    if ( opts.timeoutId )
                        clearTimeout(opts.timeoutId);
                    return;
                }
            }
            if ( timeout ) {
                opts._lastQueue = $.now();
                if ( specificTimeout === undefined )
                    opts._remainingTimeout = slideOpts.timeout;

                if ( !opts.paused && ! opts.hoverPaused ) {
                    opts.timeoutId = setTimeout(function() {
                        opts.API.prepareTx( false, !opts.reverse );
                    }, timeout );
                }
            }
        },

        stopTransition: function() {
            var opts = this.opts();
            if ( opts.slides.filter(':animated').length ) {
                opts.slides.stop(false, true);
                opts.API.trigger('cycle-transition-stopped', [ opts ]);
            }

            if ( opts._tx && opts._tx.stopTransition )
                opts._tx.stopTransition( opts );
        },

        // advance slide forward or back
        advanceSlide: function( val ) {
            var opts = this.opts();
            clearTimeout(opts.timeoutId);
            opts.timeoutId = 0;
            opts.nextSlide = opts.currSlide + val;

            if (opts.nextSlide < 0)
                opts.nextSlide = opts.slides.length - 1;
            else if (opts.nextSlide >= opts.slides.length)
                opts.nextSlide = 0;

            opts.API.prepareTx( true,  val >= 0 );
            return false;
        },

        buildSlideOpts: function( slide ) {
            var opts = this.opts();
            var val, shortName;
            var slideOpts = slide.data() || {};
            for (var p in slideOpts) {
                // allow props to be accessed sans 'cycle' prefix and log the overrides
                if (slideOpts.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {
                    val = slideOpts[p];
                    shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);
                    opts.API.log('['+(opts.slideCount-1)+']', shortName+':', val, '('+typeof val +')');
                    slideOpts[shortName] = val;
                }
            }

            slideOpts = $.extend( {}, $.fn.cycle.defaults, opts, slideOpts );
            slideOpts.slideNum = opts.slideCount;

            try {
                // these props should always be read from the master state object
                delete slideOpts.API;
                delete slideOpts.slideCount;
                delete slideOpts.currSlide;
                delete slideOpts.nextSlide;
                delete slideOpts.slides;
            } catch(e) {
                // no op
            }
            return slideOpts;
        },

        getSlideOpts: function( index ) {
            var opts = this.opts();
            if ( index === undefined )
                index = opts.currSlide;

            var slide = opts.slides[index];
            var slideOpts = $(slide).data('cycle.opts');
            return $.extend( {}, opts, slideOpts );
        },

        initSlide: function( slideOpts, slide, suggestedZindex ) {
            var opts = this.opts();
            slide.css( slideOpts.slideCss || {} );
            if ( suggestedZindex > 0 )
                slide.css( 'zIndex', suggestedZindex );

            // ensure that speed settings are sane
            if ( isNaN( slideOpts.speed ) )
                slideOpts.speed = $.fx.speeds[slideOpts.speed] || $.fx.speeds._default;
            if ( !slideOpts.sync )
                slideOpts.speed = slideOpts.speed / 2;

            slide.addClass( opts.slideClass );
        },

        updateView: function( isAfter, isDuring, forceEvent ) {
            var opts = this.opts();
            if ( !opts._initialized )
                return;
            var slideOpts = opts.API.getSlideOpts();
            var currSlide = opts.slides[ opts.currSlide ];

            if ( ! isAfter && isDuring !== true ) {
                opts.API.trigger('cycle-update-view-before', [ opts, slideOpts, currSlide ]);
                if ( opts.updateView < 0 )
                    return;
            }

            if ( opts.slideActiveClass ) {
                opts.slides.removeClass( opts.slideActiveClass )
                    .eq( opts.currSlide ).addClass( opts.slideActiveClass );
            }

            if ( isAfter && opts.hideNonActive )
                opts.slides.filter( ':not(.' + opts.slideActiveClass + ')' ).css('visibility', 'hidden');

            if ( opts.updateView === 0 ) {
                setTimeout(function() {
                    opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);
                }, slideOpts.speed / (opts.sync ? 2 : 1) );
            }

            if ( opts.updateView !== 0 )
                opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);

            if ( isAfter )
                opts.API.trigger('cycle-update-view-after', [ opts, slideOpts, currSlide ]);
        },

        getComponent: function( name ) {
            var opts = this.opts();
            var selector = opts[name];
            if (typeof selector === 'string') {
                // if selector is a child, sibling combinator, adjancent selector then use find, otherwise query full dom
                return (/^\s*[\>|\+|~]/).test( selector ) ? opts.container.find( selector ) : $( selector );
            }
            if (selector.jquery)
                return selector;

            return $(selector);
        },

        stackSlides: function( curr, next, fwd ) {
            var opts = this.opts();
            if ( !curr ) {
                curr = opts.slides[opts.currSlide];
                next = opts.slides[opts.nextSlide];
                fwd = !opts.reverse;
            }

            // reset the zIndex for the common case:
            // curr slide on top,  next slide beneath, and the rest in order to be shown
            $(curr).css('zIndex', opts.maxZ);

            var i;
            var z = opts.maxZ - 2;
            var len = opts.slideCount;
            if (fwd) {
                for ( i = opts.currSlide + 1; i < len; i++ )
                    $( opts.slides[i] ).css( 'zIndex', z-- );
                for ( i = 0; i < opts.currSlide; i++ )
                    $( opts.slides[i] ).css( 'zIndex', z-- );
            }
            else {
                for ( i = opts.currSlide - 1; i >= 0; i-- )
                    $( opts.slides[i] ).css( 'zIndex', z-- );
                for ( i = len - 1; i > opts.currSlide; i-- )
                    $( opts.slides[i] ).css( 'zIndex', z-- );
            }

            $(next).css('zIndex', opts.maxZ - 1);
        },

        getSlideIndex: function( el ) {
            return this.opts().slides.index( el );
        }

    }; // API

// default logger
    $.fn.cycle.log = function log() {
        /*global console:true */
        if (window.console && console.log)
            console.log('[cycle2] ' + Array.prototype.join.call(arguments, ' ') );
    };

    $.fn.cycle.version = function() { return 'Cycle2: ' + version; };

// helper functions

    function lowerCase(s) {
        return (s || '').toLowerCase();
    }

// expose transition object
    $.fn.cycle.transitions = {
        custom: {
        },
        none: {
            before: function( opts, curr, next, fwd ) {
                opts.API.stackSlides( next, curr, fwd );
                opts.cssBefore = { opacity: 1, visibility: 'visible', display: 'block' };
            }
        },
        fade: {
            before: function( opts, curr, next, fwd ) {
                var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
                opts.API.stackSlides( curr, next, fwd );
                opts.cssBefore = $.extend(css, { opacity: 0, visibility: 'visible', display: 'block' });
                opts.animIn = { opacity: 1 };
                opts.animOut = { opacity: 0 };
            }
        },
        fadeout: {
            before: function( opts , curr, next, fwd ) {
                var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
                opts.API.stackSlides( curr, next, fwd );
                opts.cssBefore = $.extend(css, { opacity: 1, visibility: 'visible', display: 'block' });
                opts.animOut = { opacity: 0 };
            }
        },
        scrollHorz: {
            before: function( opts, curr, next, fwd ) {
                opts.API.stackSlides( curr, next, fwd );
                var w = opts.container.css('overflow','hidden').width();
                opts.cssBefore = { left: fwd ? w : - w, top: 0, opacity: 1, visibility: 'visible', display: 'block' };
                opts.cssAfter = { zIndex: opts._maxZ - 2, left: 0 };
                opts.animIn = { left: 0 };
                opts.animOut = { left: fwd ? -w : w };
            }
        }
    };

// @see: http://jquery.malsup.com/cycle2/api
    $.fn.cycle.defaults = {
        allowWrap:        true,
        autoSelector:     '.cycle-slideshow[data-cycle-auto-init!=false]',
        delay:            0,
        easing:           null,
        fx:              'fade',
        hideNonActive:    true,
        loop:             0,
        manualFx:         undefined,
        manualSpeed:      undefined,
        manualTrump:      true,
        maxZ:             100,
        pauseOnHover:     false,
        reverse:          false,
        slideActiveClass: 'cycle-slide-active',
        slideClass:       'cycle-slide',
        slideCss:         { position: 'absolute', top: 0, left: 0 },
        slides:          '> img',
        speed:            500,
        startingSlide:    0,
        sync:             true,
        timeout:          4000,
        updateView:       0
    };

// automatically find and run slideshows
    $(document).ready(function() {
        $( $.fn.cycle.defaults.autoSelector ).cycle();
    });

})(jQuery);

/*! Cycle2 autoheight plugin; Copyright (c) M.Alsup, 2012; version: 20130913 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        autoHeight: 0, // setting this option to false disables autoHeight logic
        autoHeightSpeed: 250,
        autoHeightEasing: null
    });

    $(document).on( 'cycle-initialized', function( e, opts ) {
        var autoHeight = opts.autoHeight;
        var t = $.type( autoHeight );
        var resizeThrottle = null;
        var ratio;

        if ( t !== 'string' && t !== 'number' )
            return;

        // bind events
        opts.container.on( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
        opts.container.on( 'cycle-destroyed', onDestroy );

        if ( autoHeight == 'container' ) {
            opts.container.on( 'cycle-before', onBefore );
        }
        else if ( t === 'string' && /\d+\:\d+/.test( autoHeight ) ) {
            // use ratio
            ratio = autoHeight.match(/(\d+)\:(\d+)/);
            ratio = ratio[1] / ratio[2];
            opts._autoHeightRatio = ratio;
        }

        // if autoHeight is a number then we don't need to recalculate the sentinel
        // index on resize
        if ( t !== 'number' ) {
            // bind unique resize handler per slideshow (so it can be 'off-ed' in onDestroy)
            opts._autoHeightOnResize = function () {
                clearTimeout( resizeThrottle );
                resizeThrottle = setTimeout( onResize, 50 );
            };

            $(window).on( 'resize orientationchange', opts._autoHeightOnResize );
        }

        setTimeout( onResize, 30 );

        function onResize() {
            initAutoHeight( e, opts );
        }
    });

    function initAutoHeight( e, opts ) {
        var clone, height, sentinelIndex;
        var autoHeight = opts.autoHeight;

        if ( autoHeight == 'container' ) {
            height = $( opts.slides[ opts.currSlide ] ).outerHeight();
            opts.container.height( height );
        }
        else if ( opts._autoHeightRatio ) {
            opts.container.height( opts.container.width() / opts._autoHeightRatio );
        }
        else if ( autoHeight === 'calc' || ( $.type( autoHeight ) == 'number' && autoHeight >= 0 ) ) {
            if ( autoHeight === 'calc' )
                sentinelIndex = calcSentinelIndex( e, opts );
            else if ( autoHeight >= opts.slides.length )
                sentinelIndex = 0;
            else
                sentinelIndex = autoHeight;

            // only recreate sentinel if index is different
            if ( sentinelIndex == opts._sentinelIndex )
                return;

            opts._sentinelIndex = sentinelIndex;
            if ( opts._sentinel )
                opts._sentinel.remove();

            // clone existing slide as sentinel
            clone = $( opts.slides[ sentinelIndex ].cloneNode(true) );

            // #50; remove special attributes from cloned content
            clone.removeAttr( 'id name rel' ).find( '[id],[name],[rel]' ).removeAttr( 'id name rel' );

            clone.css({
                position: 'static',
                visibility: 'hidden',
                display: 'block'
            }).prependTo( opts.container ).addClass('cycle-sentinel cycle-slide').removeClass('cycle-slide-active');
            clone.find( '*' ).css( 'visibility', 'hidden' );

            opts._sentinel = clone;
        }
    }

    function calcSentinelIndex( e, opts ) {
        var index = 0, max = -1;

        // calculate tallest slide index
        opts.slides.each(function(i) {
            var h = $(this).height();
            if ( h > max ) {
                max = h;
                index = i;
            }
        });
        return index;
    }

    function onBefore( e, opts, outgoing, incoming, forward ) {
        var h = $(incoming).outerHeight();
        opts.container.animate( { height: h }, opts.autoHeightSpeed, opts.autoHeightEasing );
    }

    function onDestroy( e, opts ) {
        if ( opts._autoHeightOnResize ) {
            $(window).off( 'resize orientationchange', opts._autoHeightOnResize );
            opts._autoHeightOnResize = null;
        }
        opts.container.off( 'cycle-slide-added cycle-slide-removed', initAutoHeight );
        opts.container.off( 'cycle-destroyed', onDestroy );
        opts.container.off( 'cycle-before', onBefore );

        if ( opts._sentinel ) {
            opts._sentinel.remove();
            opts._sentinel = null;
        }
    }

})(jQuery);

/*! caption plugin for Cycle2;  version: 20130306 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        caption:          '> .cycle-caption',
        captionTemplate:  '{{slideNum}} / {{slideCount}}',
        overlay:          '> .cycle-overlay',
        overlayTemplate:  '<div>{{title}}</div><div>{{desc}}</div>',
        captionModule:    'caption'
    });

    $(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {
        if ( opts.captionModule !== 'caption' )
            return;
        var el;
        $.each(['caption','overlay'], function() {
            var name = this;
            var template = slideOpts[name+'Template'];
            var el = opts.API.getComponent( name );
            if( el.length && template ) {
                el.html( opts.API.tmpl( template, slideOpts, opts, currSlide ) );
                el.show();
            }
            else {
                el.hide();
            }
        });
    });

    $(document).on( 'cycle-destroyed', function( e, opts ) {
        var el;
        $.each(['caption','overlay'], function() {
            var name = this, template = opts[name+'Template'];
            if ( opts[name] && template ) {
                el = opts.API.getComponent( 'caption' );
                el.empty();
            }
        });
    });

})(jQuery);

/*! command plugin for Cycle2;  version: 20140415 */
(function($) {
    "use strict";

    var c2 = $.fn.cycle;

    $.fn.cycle = function( options ) {
        var cmd, cmdFn, opts;
        var args = $.makeArray( arguments );

        if ( $.type( options ) == 'number' ) {
            return this.cycle( 'goto', options );
        }

        if ( $.type( options ) == 'string' ) {
            return this.each(function() {
                var cmdArgs;
                cmd = options;
                opts = $(this).data('cycle.opts');

                if ( opts === undefined ) {
                    c2.log('slideshow must be initialized before sending commands; "' + cmd + '" ignored');
                    return;
                }
                else {
                    cmd = cmd == 'goto' ? 'jump' : cmd; // issue #3; change 'goto' to 'jump' internally
                    cmdFn = opts.API[ cmd ];
                    if ( $.isFunction( cmdFn )) {
                        cmdArgs = $.makeArray( args );
                        cmdArgs.shift();
                        return cmdFn.apply( opts.API, cmdArgs );
                    }
                    else {
                        c2.log( 'unknown command: ', cmd );
                    }
                }
            });
        }
        else {
            return c2.apply( this, arguments );
        }
    };

// copy props
    $.extend( $.fn.cycle, c2 );

    $.extend( c2.API, {
        next: function() {
            var opts = this.opts();
            if ( opts.busy && ! opts.manualTrump )
                return;

            var count = opts.reverse ? -1 : 1;
            if ( opts.allowWrap === false && ( opts.currSlide + count ) >= opts.slideCount )
                return;

            opts.API.advanceSlide( count );
            opts.API.trigger('cycle-next', [ opts ]).log('cycle-next');
        },

        prev: function() {
            var opts = this.opts();
            if ( opts.busy && ! opts.manualTrump )
                return;
            var count = opts.reverse ? 1 : -1;
            if ( opts.allowWrap === false && ( opts.currSlide + count ) < 0 )
                return;

            opts.API.advanceSlide( count );
            opts.API.trigger('cycle-prev', [ opts ]).log('cycle-prev');
        },

        destroy: function() {
            this.stop(); //#204

            var opts = this.opts();
            var clean = $.isFunction( $._data ) ? $._data : $.noop;  // hack for #184 and #201
            clearTimeout(opts.timeoutId);
            opts.timeoutId = 0;
            opts.API.stop();
            opts.API.trigger( 'cycle-destroyed', [ opts ] ).log('cycle-destroyed');
            opts.container.removeData();
            clean( opts.container[0], 'parsedAttrs', false );

            // #75; remove inline styles
            if ( ! opts.retainStylesOnDestroy ) {
                opts.container.removeAttr( 'style' );
                opts.slides.removeAttr( 'style' );
                opts.slides.removeClass( opts.slideActiveClass );
            }
            opts.slides.each(function() {
                var slide = $(this);
                slide.removeData();
                slide.removeClass( opts.slideClass );
                clean( this, 'parsedAttrs', false );
            });
        },

        jump: function( index, fx ) {
            // go to the requested slide
            var fwd;
            var opts = this.opts();
            if ( opts.busy && ! opts.manualTrump )
                return;
            var num = parseInt( index, 10 );
            if (isNaN(num) || num < 0 || num >= opts.slides.length) {
                opts.API.log('goto: invalid slide index: ' + num);
                return;
            }
            if (num == opts.currSlide) {
                opts.API.log('goto: skipping, already on slide', num);
                return;
            }
            opts.nextSlide = num;
            clearTimeout(opts.timeoutId);
            opts.timeoutId = 0;
            opts.API.log('goto: ', num, ' (zero-index)');
            fwd = opts.currSlide < opts.nextSlide;
            opts._tempFx = fx;
            opts.API.prepareTx( true, fwd );
        },

        stop: function() {
            var opts = this.opts();
            var pauseObj = opts.container;
            clearTimeout(opts.timeoutId);
            opts.timeoutId = 0;
            opts.API.stopTransition();
            if ( opts.pauseOnHover ) {
                if ( opts.pauseOnHover !== true )
                    pauseObj = $( opts.pauseOnHover );
                pauseObj.off('mouseenter mouseleave');
            }
            opts.API.trigger('cycle-stopped', [ opts ]).log('cycle-stopped');
        },

        reinit: function() {
            var opts = this.opts();
            opts.API.destroy();
            opts.container.cycle();
        },

        remove: function( index ) {
            var opts = this.opts();
            var slide, slideToRemove, slides = [], slideNum = 1;
            for ( var i=0; i < opts.slides.length; i++ ) {
                slide = opts.slides[i];
                if ( i == index ) {
                    slideToRemove = slide;
                }
                else {
                    slides.push( slide );
                    $( slide ).data('cycle.opts').slideNum = slideNum;
                    slideNum++;
                }
            }
            if ( slideToRemove ) {
                opts.slides = $( slides );
                opts.slideCount--;
                $( slideToRemove ).remove();
                if (index == opts.currSlide)
                    opts.API.advanceSlide( 1 );
                else if ( index < opts.currSlide )
                    opts.currSlide--;
                else
                    opts.currSlide++;

                opts.API.trigger('cycle-slide-removed', [ opts, index, slideToRemove ]).log('cycle-slide-removed');
                opts.API.updateView();
            }
        }

    });

// listen for clicks on elements with data-cycle-cmd attribute
    $(document).on('click.cycle', '[data-cycle-cmd]', function(e) {
        // issue cycle command
        e.preventDefault();
        var el = $(this);
        var command = el.data('cycle-cmd');
        var context = el.data('cycle-context') || '.cycle-slideshow';
        $(context).cycle(command, el.data('cycle-arg'));
    });


})(jQuery);

/*! hash plugin for Cycle2;  version: 20130905 */
(function($) {
    "use strict";

    $(document).on( 'cycle-pre-initialize', function( e, opts ) {
        onHashChange( opts, true );

        opts._onHashChange = function() {
            onHashChange( opts, false );
        };

        $( window ).on( 'hashchange', opts._onHashChange);
    });

    $(document).on( 'cycle-update-view', function( e, opts, slideOpts ) {
        if ( slideOpts.hash && ( '#' + slideOpts.hash ) != window.location.hash ) {
            opts._hashFence = true;
            window.location.hash = slideOpts.hash;
        }
    });

    $(document).on( 'cycle-destroyed', function( e, opts) {
        if ( opts._onHashChange ) {
            $( window ).off( 'hashchange', opts._onHashChange );
        }
    });

    function onHashChange( opts, setStartingSlide ) {
        var hash;
        if ( opts._hashFence ) {
            opts._hashFence = false;
            return;
        }

        hash = window.location.hash.substring(1);

        opts.slides.each(function(i) {
            if ( $(this).data( 'cycle-hash' ) == hash ) {
                if ( setStartingSlide === true ) {
                    opts.startingSlide = i;
                }
                else {
                    var fwd = opts.currSlide < i;
                    opts.nextSlide = i;
                    opts.API.prepareTx( true, fwd );
                }
                return false;
            }
        });
    }

})(jQuery);

/*! loader plugin for Cycle2;  version: 20131121 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        loader: false
    });

    $(document).on( 'cycle-bootstrap', function( e, opts ) {
        var addFn;

        if ( !opts.loader )
            return;

        // override API.add for this slideshow
        addFn = opts.API.add;
        opts.API.add = add;

        function add( slides, prepend ) {
            var slideArr = [];
            if ( $.type( slides ) == 'string' )
                slides = $.trim( slides );
            else if ( $.type( slides) === 'array' ) {
                for (var i=0; i < slides.length; i++ )
                    slides[i] = $(slides[i])[0];
            }

            slides = $( slides );
            var slideCount = slides.length;

            if ( ! slideCount )
                return;

            slides.css('visibility','hidden').appendTo('body').each(function(i) { // appendTo fixes #56
                var count = 0;
                var slide = $(this);
                var images = slide.is('img') ? slide : slide.find('img');
                slide.data('index', i);
                // allow some images to be marked as unimportant (and filter out images w/o src value)
                images = images.filter(':not(.cycle-loader-ignore)').filter(':not([src=""])');
                if ( ! images.length ) {
                    --slideCount;
                    slideArr.push( slide );
                    return;
                }

                count = images.length;
                images.each(function() {
                    // add images that are already loaded
                    if ( this.complete ) {
                        imageLoaded();
                    }
                    else {
                        $(this).load(function() {
                            imageLoaded();
                        }).on("error", function() {
                            if ( --count === 0 ) {
                                // ignore this slide
                                opts.API.log('slide skipped; img not loaded:', this.src);
                                if ( --slideCount === 0 && opts.loader == 'wait') {
                                    addFn.apply( opts.API, [ slideArr, prepend ] );
                                }
                            }
                        });
                    }
                });

                function imageLoaded() {
                    if ( --count === 0 ) {
                        --slideCount;
                        addSlide( slide );
                    }
                }
            });

            if ( slideCount )
                opts.container.addClass('cycle-loading');


            function addSlide( slide ) {
                var curr;
                if ( opts.loader == 'wait' ) {
                    slideArr.push( slide );
                    if ( slideCount === 0 ) {
                        // #59; sort slides into original markup order
                        slideArr.sort( sorter );
                        addFn.apply( opts.API, [ slideArr, prepend ] );
                        opts.container.removeClass('cycle-loading');
                    }
                }
                else {
                    curr = $(opts.slides[opts.currSlide]);
                    addFn.apply( opts.API, [ slide, prepend ] );
                    curr.show();
                    opts.container.removeClass('cycle-loading');
                }
            }

            function sorter(a, b) {
                return a.data('index') - b.data('index');
            }
        }
    });

})(jQuery);

/*! pager plugin for Cycle2;  version: 20140415 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        pager:            '> .cycle-pager',
        pagerActiveClass: 'cycle-pager-active',
        pagerEvent:       'click.cycle',
        pagerEventBubble: undefined,
        pagerTemplate:    '<span>&bull;</span>'
    });

    $(document).on( 'cycle-bootstrap', function( e, opts, API ) {
        // add method to API
        API.buildPagerLink = buildPagerLink;
    });

    $(document).on( 'cycle-slide-added', function( e, opts, slideOpts, slideAdded ) {
        if ( opts.pager ) {
            opts.API.buildPagerLink ( opts, slideOpts, slideAdded );
            opts.API.page = page;
        }
    });

    $(document).on( 'cycle-slide-removed', function( e, opts, index, slideRemoved ) {
        if ( opts.pager ) {
            var pagers = opts.API.getComponent( 'pager' );
            pagers.each(function() {
                var pager = $(this);
                $( pager.children()[index] ).remove();
            });
        }
    });

    $(document).on( 'cycle-update-view', function( e, opts, slideOpts ) {
        var pagers;

        if ( opts.pager ) {
            pagers = opts.API.getComponent( 'pager' );
            pagers.each(function() {
                $(this).children().removeClass( opts.pagerActiveClass )
                    .eq( opts.currSlide ).addClass( opts.pagerActiveClass );
            });
        }
    });

    $(document).on( 'cycle-destroyed', function( e, opts ) {
        var pager = opts.API.getComponent( 'pager' );

        if ( pager ) {
            pager.children().off( opts.pagerEvent ); // #202
            if ( opts.pagerTemplate )
                pager.empty();
        }
    });

    function buildPagerLink( opts, slideOpts, slide ) {
        var pagerLink;
        var pagers = opts.API.getComponent( 'pager' );
        pagers.each(function() {
            var pager = $(this);
            if ( slideOpts.pagerTemplate ) {
                var markup = opts.API.tmpl( slideOpts.pagerTemplate, slideOpts, opts, slide[0] );
                pagerLink = $( markup ).appendTo( pager );
            }
            else {
                pagerLink = pager.children().eq( opts.slideCount - 1 );
            }
            pagerLink.on( opts.pagerEvent, function(e) {
                if ( ! opts.pagerEventBubble )
                    e.preventDefault();
                opts.API.page( pager, e.currentTarget);
            });
        });
    }

    function page( pager, target ) {
        /*jshint validthis:true */
        var opts = this.opts();
        if ( opts.busy && ! opts.manualTrump )
            return;

        var index = pager.children().index( target );
        var nextSlide = index;
        var fwd = opts.currSlide < nextSlide;
        if (opts.currSlide == nextSlide) {
            return; // no op, clicked pager for the currently displayed slide
        }
        opts.nextSlide = nextSlide;
        opts._tempFx = opts.pagerFx;
        opts.API.prepareTx( true, fwd );
        opts.API.trigger('cycle-pager-activated', [opts, pager, target ]);
    }

})(jQuery);

/*! prevnext plugin for Cycle2;  version: 20140408 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        next:           '> .cycle-next',
        nextEvent:      'click.cycle',
        disabledClass:  'disabled',
        prev:           '> .cycle-prev',
        prevEvent:      'click.cycle',
        swipe:          false
    });

    $(document).on( 'cycle-initialized', function( e, opts ) {
        opts.API.getComponent( 'next' ).on( opts.nextEvent, function(e) {
            e.preventDefault();
            opts.API.next();
        });

        opts.API.getComponent( 'prev' ).on( opts.prevEvent, function(e) {
            e.preventDefault();
            opts.API.prev();
        });

        if ( opts.swipe ) {
            var nextEvent = opts.swipeVert ? 'swipeUp.cycle' : 'swipeLeft.cycle swipeleft.cycle';
            var prevEvent = opts.swipeVert ? 'swipeDown.cycle' : 'swipeRight.cycle swiperight.cycle';
            opts.container.on( nextEvent, function(e) {
                opts._tempFx = opts.swipeFx;
                opts.API.next();
            });
            opts.container.on( prevEvent, function() {
                opts._tempFx = opts.swipeFx;
                opts.API.prev();
            });
        }
    });

    $(document).on( 'cycle-update-view', function( e, opts, slideOpts, currSlide ) {
        if ( opts.allowWrap )
            return;

        var cls = opts.disabledClass;
        var next = opts.API.getComponent( 'next' );
        var prev = opts.API.getComponent( 'prev' );
        var prevBoundry = opts._prevBoundry || 0;
        var nextBoundry = (opts._nextBoundry !== undefined)?opts._nextBoundry:opts.slideCount - 1;

        if ( opts.currSlide == nextBoundry )
            next.addClass( cls ).prop( 'disabled', true );
        else
            next.removeClass( cls ).prop( 'disabled', false );

        if ( opts.currSlide === prevBoundry )
            prev.addClass( cls ).prop( 'disabled', true );
        else
            prev.removeClass( cls ).prop( 'disabled', false );
    });


    $(document).on( 'cycle-destroyed', function( e, opts ) {
        opts.API.getComponent( 'prev' ).off( opts.nextEvent );
        opts.API.getComponent( 'next' ).off( opts.prevEvent );
        opts.container.off( 'swipeleft.cycle swiperight.cycle swipeLeft.cycle swipeRight.cycle swipeUp.cycle swipeDown.cycle' );
    });

})(jQuery);

/*! progressive loader plugin for Cycle2;  version: 20130315 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        progressive: false
    });

    $(document).on( 'cycle-pre-initialize', function( e, opts ) {
        if ( !opts.progressive )
            return;

        var API = opts.API;
        var nextFn = API.next;
        var prevFn = API.prev;
        var prepareTxFn = API.prepareTx;
        var type = $.type( opts.progressive );
        var slides, scriptEl;

        if ( type == 'array' ) {
            slides = opts.progressive;
        }
        else if ($.isFunction( opts.progressive ) ) {
            slides = opts.progressive( opts );
        }
        else if ( type == 'string' ) {
            scriptEl = $( opts.progressive );
            slides = $.trim( scriptEl.html() );
            if ( !slides )
                return;
            // is it json array?
            if ( /^(\[)/.test( slides ) ) {
                try {
                    slides = $.parseJSON( slides );
                }
                catch(err) {
                    API.log( 'error parsing progressive slides', err );
                    return;
                }
            }
            else {
                // plain text, split on delimeter
                slides = slides.split( new RegExp( scriptEl.data('cycle-split') || '\n') );

                // #95; look for empty slide
                if ( ! slides[ slides.length - 1 ] )
                    slides.pop();
            }
        }



        if ( prepareTxFn ) {
            API.prepareTx = function( manual, fwd ) {
                var index, slide;

                if ( manual || slides.length === 0 ) {
                    prepareTxFn.apply( opts.API, [ manual, fwd ] );
                    return;
                }

                if ( fwd && opts.currSlide == ( opts.slideCount-1) ) {
                    slide = slides[ 0 ];
                    slides = slides.slice( 1 );
                    opts.container.one('cycle-slide-added', function(e, opts ) {
                        setTimeout(function() {
                            opts.API.advanceSlide( 1 );
                        },50);
                    });
                    opts.API.add( slide );
                }
                else if ( !fwd && opts.currSlide === 0 ) {
                    index = slides.length-1;
                    slide = slides[ index ];
                    slides = slides.slice( 0, index );
                    opts.container.one('cycle-slide-added', function(e, opts ) {
                        setTimeout(function() {
                            opts.currSlide = 1;
                            opts.API.advanceSlide( -1 );
                        },50);
                    });
                    opts.API.add( slide, true );
                }
                else {
                    prepareTxFn.apply( opts.API, [ manual, fwd ] );
                }
            };
        }

        if ( nextFn ) {
            API.next = function() {
                var opts = this.opts();
                if ( slides.length && opts.currSlide == ( opts.slideCount - 1 ) ) {
                    var slide = slides[ 0 ];
                    slides = slides.slice( 1 );
                    opts.container.one('cycle-slide-added', function(e, opts ) {
                        nextFn.apply( opts.API );
                        opts.container.removeClass('cycle-loading');
                    });
                    opts.container.addClass('cycle-loading');
                    opts.API.add( slide );
                }
                else {
                    nextFn.apply( opts.API );
                }
            };
        }

        if ( prevFn ) {
            API.prev = function() {
                var opts = this.opts();
                if ( slides.length && opts.currSlide === 0 ) {
                    var index = slides.length-1;
                    var slide = slides[ index ];
                    slides = slides.slice( 0, index );
                    opts.container.one('cycle-slide-added', function(e, opts ) {
                        opts.currSlide = 1;
                        opts.API.advanceSlide( -1 );
                        opts.container.removeClass('cycle-loading');
                    });
                    opts.container.addClass('cycle-loading');
                    opts.API.add( slide, true );
                }
                else {
                    prevFn.apply( opts.API );
                }
            };
        }
    });

})(jQuery);

/*! tmpl plugin for Cycle2;  version: 20121227 */
(function($) {
    "use strict";

    $.extend($.fn.cycle.defaults, {
        tmplRegex: '{{((.)?.*?)}}'
    });

    $.extend($.fn.cycle.API, {
        tmpl: function( str, opts /*, ... */) {
            var regex = new RegExp( opts.tmplRegex || $.fn.cycle.defaults.tmplRegex, 'g' );
            var args = $.makeArray( arguments );
            args.shift();
            return str.replace(regex, function(_, str) {
                var i, j, obj, prop, names = str.split('.');
                for (i=0; i < args.length; i++) {
                    obj = args[i];
                    if ( ! obj )
                        continue;
                    if (names.length > 1) {
                        prop = obj;
                        for (j=0; j < names.length; j++) {
                            obj = prop;
                            prop = prop[ names[j] ] || str;
                        }
                    } else {
                        prop = obj[str];
                    }

                    if ($.isFunction(prop))
                        return prop.apply(obj, args);
                    if (prop !== undefined && prop !== null && prop != str)
                        return prop;
                }
                return str;
            });
        }
    });

})(jQuery);