bplist00_WebMainResource_WebSubresources ^WebResourceURL_WebResourceFrameName_WebResourceData_WebResourceMIMEType_WebResourceTextEncodingName_#https://edumex.co.in/authenticationPO Login

Welcome To

School

EduMex Saas

Ytext/htmlUUTF-8#(-27;@DINSX]b_WebResourceResponse_?https://fonts.googleapis.com/css?family=Signika:300,400,600,700Onbplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse# '-.4567UVWXYZ[\]^_`abcdefghijklpqU$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1! "()$+,WNS.base[NS.relative_?https://fonts.googleapis.com/css?family=Signika:300,400,600,700/012Z$classnameX$classesUNSURL13XNSObject#AŃ+M89:GTWNS.keysZNS.objects;<=>?@ABCDEF HIJKLMIOPQRS \Content-Type_Access-Control-Allow-Origin_Content-Encoding_X-XSS-ProtectionWExpires_Cross-Origin-Resource-Policy_Timing-Allow-Origin]Cache-ControlTDateX__hhaa___X-Content-Type-Options_X-Frame-Options_text/css; charset=utf-8Q*TgzipQ0_Thu, 16 Nov 2023 13:50:40 GMT\cross-origin_private, max-age=86400_Thu, 16 Nov 2023 13:50:40 GMT_ YnBsaXN0MDDbAQIDBAUGBwgJCgsMDhASFBUXGRsdH11DYWNoZS1Db250cm9sXENvbnRlbnQtVHlwZV8QG0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbl8QFlgtQ29udGVudC1UeXBlLU9wdGlvbnNfEBNUaW1pbmctQWxsb3ctT3JpZ2luVERhdGVfEA9YLUZyYW1lLU9wdGlvbnNfEBBDb250ZW50LUVuY29kaW5nXxAQWC1YU1MtUHJvdGVjdGlvbldFeHBpcmVzXxAcQ3Jvc3MtT3JpZ2luLVJlc291cmNlLVBvbGljeaENXxAWcHJpdmF0ZSwgbWF4LWFnZT04NjQwMKEPXxAXdGV4dC9jc3M7IGNoYXJzZXQ9dXRmLTihEVEqoRNXbm9zbmlmZqERoRZfEB1UaHUsIDE2IE5vdiAyMDIzIDEzOjUwOjQwIEdNVKEYWlNBTUVPUklHSU6hGlRnemlwoRxRMKEeXxAdVGh1LCAxNiBOb3YgMjAyMyAxMzo1MDo0MCBHTVShIFxjcm9zcy1vcmlnaW4ACAAfAC0AOgBYAHEAhwCMAJ4AsQDEAMwA6wDtAQYBCAEiASQBJgEoATABMgE0AVQBVgFhAWMBaAFqAWwBbgGOAZAAAAAAAAACAQAAAAAAAAAhAAAAAAAAAAAAAAAAAAABnQ==WnosniffZSAMEORIGIN/0mn_NSMutableDictionarymo3\NSDictionaryXtext/css/0rs_NSHTTPURLResponsetu3_NSHTTPURLResponse]NSURLResponse$)27ILbd9@beh+0;DJMV_acjr}"AWejs'  #(<@TvbO`/* vietnamese */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 300; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bOjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 300; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bPjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 300; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* vietnamese */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 400; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bOjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 400; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bPjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 400; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* vietnamese */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 600; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bOjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 600; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bPjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 600; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } /* vietnamese */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 700; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bOjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; } /* latin-ext */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 700; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bPjM7-f7e0Mls.woff2) format('woff2'); unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; } /* latin */ @font-face { font-family: 'Signika'; font-style: normal; font-weight: 700; src: url(https://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } Xtext/cssUutf-8_Zhttps://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2O abplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse) '-.4567[\]^_`abcdefghijklmnopqrstuvwx|}U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1' (()$+,WNS.base[NS.relative_Zhttps://fonts.gstatic.com/s/signika/v25/vEFO2_JTCgwQ5ejvMV0Ox_Kg1UwJ0tKfX6bBjM7-f7e0.woff2/012Z$classnameX$classesUNSURL13XNSObject#AŃ+s89:JZWNS.keysZNS.objects;<=>?@ABCDEFGHI KLMNOPLRSTUVWXY !"#$%&\Content-Type_Access-Control-Allow-OriginSAge_X-XSS-Protection_Cross-Origin-Resource-PolicyWExpires_Timing-Allow-Origin]Cache-ControlTDate^Content-Length_#Content-Security-Policy-Report-Only_X-Content-Type-Options]Accept-RangesX__hhaa__]Last-ModifiedZfont/woff2Q*V602359Q0\cross-origin_Fri, 08 Nov 2024 14:31:22 GMT_public, max-age=31536000_Thu, 09 Nov 2023 14:31:22 GMTU42156_Yrequire-trusted-types-for 'script'; report-uri https://csp.withgoogle.com/csp/apps-themesWnosniffUbytes_ YnBsaXN0MDDeAQIDBAUGBwgJCgsMDQ4PERMVFxkbHB4gIiQmKFxDb250ZW50LVR5cGVfEBtBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW5TQWdlXxAQWC1YU1MtUHJvdGVjdGlvbl8QHENyb3NzLU9yaWdpbi1SZXNvdXJjZS1Qb2xpY3lXRXhwaXJlc18QE1RpbWluZy1BbGxvdy1PcmlnaW5dQ2FjaGUtQ29udHJvbFREYXRlXkNvbnRlbnQtTGVuZ3RoXxAjQ29udGVudC1TZWN1cml0eS1Qb2xpY3ktUmVwb3J0LU9ubHlfEBZYLUNvbnRlbnQtVHlwZS1PcHRpb25zXUFjY2VwdC1SYW5nZXNdTGFzdC1Nb2RpZmllZKEQWmZvbnQvd29mZjKhElEqoRRWNjAyMzU5oRZRMKEYXGNyb3NzLW9yaWdpbqEaXxAdRnJpLCAwOCBOb3YgMjAyNCAxNDozMToyMiBHTVShEqEdXxAYcHVibGljLCBtYXgtYWdlPTMxNTM2MDAwoR9fEB1UaHUsIDA5IE5vdiAyMDIzIDE0OjMxOjIyIEdNVKEhVTQyMTU2oSNfEFlyZXF1aXJlLXRydXN0ZWQtdHlwZXMtZm9yICdzY3JpcHQnOyByZXBvcnQtdXJpIGh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2NzcC9hcHBzLXRoZW1lc6ElV25vc25pZmahJ1VieXRlc6EpXxAdVGh1LCAyMCBKdWwgMjAyMyAyMDo0NzoxNyBHTVQACAAlADIAUABUAGcAhgCOAKQAsgC3AMYA7AEFARMBIQEjAS4BMAEyATQBOwE9AT8BQQFOAVABcAFyAXQBjwGRAbEBswG5AbsCFwIZAiECIwIpAisAAAAAAAACAQAAAAAAAAAqAAAAAAAAAAAAAAAAAAACSw==_Thu, 20 Jul 2023 20:47:17 GMT/0yz_NSMutableDictionaryy{3\NSDictionaryZfont/woff2/0~_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd?FhknLQ\eknw +/Bai(Hc    / =OwOF2C\3cN?HVARm?MVAR<`?STAT|'"B58"4r~^< /]( }cF~#T⺅ApOv=kb!5?r&"3@ %"F=gv̉}ܯ|Y'fg9etT9xRmj'N y[ߞ*лԨާj<]Q&'(!!kRq7+K)@uw$/d]XV9@-Ky{jW 1RDAD(1Xc1r8[ޝڴ? )NT8x fU=^LxIv'b4~|y^qfVo:\&7~}bҖ*)ixx{w= HI#DPHi-ɔr]{v$5>Cp{x(m\V^^68@s1jUdN)I,v'in9% ^ixCr H<䦍??m"dB*:P'bwqď߁o-ڴRIŦ"IĬ֋lnT,lZL "ﶞ1wɕxMwQ94Ar •VtZR#m}@Eݷ`@6Ԃ%9ClMt9gGE4MnjWD_@ "l+Jغsjo;#?>Fk%N G@j==PRPM7AZQN?pPRKB\[W>CEUW'9H3blHCv?f0$@t(*lL.TKs,rSGZ均=Jiƿa׶4R$DdȤ S{ٟPYJU8fV1MwDQ/ ]AT6CVpMN( ] 93*T&m6D_H KXa .Ĕpl%Q]EdXk5Z@c9LDDDe<g'oY5B1fPJ)_Ǟ&(t}fU36iArLDd~뇑S#tM=$ QjInAjRю@p'@…!\]$L 8 "YP!mR ;  &'W4_U͚U0")D &d"H鸲p4jΆSRH􌬜\e"!j%ᄉdQN:%[OuCr]cmL.7营HlyIZz_0 Rq၅P+UE;+?B}ۃv4¸;6"Dޔtv16z RTE8q`ʩ#qv\O|u>' Ytv)(s ^5ړ ` ^d~~1#6}1S? ,I2[5Rm(jNDE-O^2PU+\O:0 l+%F@l#Ш؇|ݺ7u젓5e?; W1CA4#a|4cU3ixjLoAn,1*ۜj5l{z0z _ ʶw?\Vf.+œʴ xΒn I[e:9*ͦBFp =2P3D.:o-z*YӼ|_b`>YdcRL3ޛ-K Z'rLÎOTؠ=PH7c@2EΙuxrO ցݸF?IG̑=!'H=3V.#oܔ !MF;Ɏg&YS+mYօwqdl D6pxDuf!6yԏ9T4kt&DCՃ|VA=0p:Zt0! |EҲe+^75oC ǂ#\xv3%Zy(bC;8~OKr9^q?qw=2.S>Bdq7ÝL@K Wl?K1i0 <2uqLe+OWqG_/ y~%b *{wh fvk&D?0(^l,f07ڈ-`o]4bάe- )2\2,X">"'PhBW17 $y![n@Z0}Xڤ(* F?)BOhzK=ݳ 3cGdA`r.fwp$R_7#I@KEIKy,;}P4 &>WK3Pt1.0p0v,HJ{Ðmsc.52㫹}" \3-Ľp% G/>[W/VF0X%8oe]ccE$ m7il_-' `̤IV.Yv!-bh%m5wOqa;%pMx+M˺|=']nJ'Qc`W6^AH#pLG^QqQGdI _=BpC!Vc! )VwRϋK͏%ȋ_݉iiѲ/28Hl džsH]3tjkrAgxY`.%2A:LG}fhb`բ%݈bzFir1>݆@ӏ E5Lt`a=\= L,#*AmD9 gMzV(|hا=8>=N3021֩{92X,bW؂d`0 5HTZESLL1c}vȅdr{͐æU,Fp#vCrbM90tifɀ̷::'5ZETxUwægw*!98JB,1,aYfJ6uɍ0P(@b5i[Yͤ]sq .2hH*Ey BZTi}hmbnȓG·ˏ@/*(UhRɀ2֣֠CԧyeO F{:Z4DkYݎCoE_/ÜHG_ϡ:10 F@Rӊ`6œDzs8i*2Y @~,%%H'_ TͰ7?-/n1$82U@Ĉx@H2C2\jcuB?8Dj `d66^66'9:}kN~$qlڋw6; f+%$J\ e!REȡC9 2&V)il`9Դr`0sݨwaDYAҐ<*& FmRF&QPTRVQUK3 ~w6* lA%aOнѣ7}U lEWm!&Tv>W&St"NJCԎN}3PfCQIE%eUԻAVohN1WP`H(5 }Q>uћ>1\;ܸ2gníAYnH%`XjUSq0m&[$מ< J*j{plB`H(KE7*_,-WhPʐteD7˙#쇛   D2r ʨ-Zbc x_%A/:(N  F  o'&#WRzmHSN=#3 kݲ;'w>JCR I< J*j;xH'ӽJ^?F/[F7w !Ђ   eMU[GS+l@_2v}[^}X#kec\<|B"zB#`r<:}IbQsy,dKlŝek Q+ gQ$L2i]VL%BKէ 1p>"1ǝpmO@HDI@A٫Emz1X vxz@EPHPV,o^DT"q. "AO@:$< J*j;A+h}%U3$Gr*Ċ&   l׋, \O nRI>͆G8p4} q' $"'V&˔HH!#,Qc YRlsprqgU}~h}i`H iQqo N$"*v<.T&Hx@"gm0gUge[a/[  eQc@5G=RsBGpL,kSY,.>!q=-?j2Sx{\NG& *@m{rP~dӼXȢd n@J2YC﷐; -BsQ?SxI?RӤϖGYs򢠨z48[Lvg|Ds [^Wx=ČdoZ ϱbeE&R@"4 L b#'1R@Ɏ> =[F~ȤNˤ?+KDlRH%P.%S?V'_n\0QJg꣹A(l`d,'LPYl GAҵ5W¸ r*X ^lF>(ehg*#f\Cä\~$;"pLP1ms@NL&*b^K1v#~/]k׳Yxmʍq*su;`s6uw*;hOY"5y /єNţb-}/.bOD #Ė1cg\^YQ˩21s^: VW#z6l {.DB<qx}:n@u7yդR gS{uR]MiKxM\`C`H/?ZnHbeU|`Gf+qKl46˸ sp\^*,,]zص-D-Jw8 DM߸.iL#_:?즪D'D6|o9T.yo[Y]_VF7n؄i{^JnMZ;>uSlM6TFSm/{hބflB etnʙ#%Yȝ"d:*E$.%T;wO[Nru'դR=(A2^UU))N')=qRʮͰrN6TGzxȔyܯ ܮEU.2nfi*Ҵv Jϟ0mOV]+5s΂PZZu"q=KnEuӖ bCppd`FbO"HG0cp@2˜}fr>i+K9PZuYn8n=R&k5}7jpe×[or,X5`{p;=xp{ֆ/hx|v^v6 )G9FYZHͤNظZ2-@<, ]d".ưڴܙwC`lw#(K7OgyB_#h Q8ox_ʏۦm@E:Y,&,WfiHh{XF(r[X|ë;@s$ X4KBWk5xZ"`$&bma]Ww0#Qѐ2*j 7V1320!xJƔ6ctqvPS4$O.ȗ#B["l?HC&j3 ;)/êb%xXH ,5]ؽ4G2\J'ӌdje-IiWR(Im.Unv"k%l{_S,3%Y5,qͶ HI2$aZN-^SV[o(wY5zK1n4J%ST F[+[Y mq<1#}khsdIޜHDAxo7LLL^"ڰ,Lwj)gOyd,9u,8wqaaٍeR8h7]*Z4ϟ>=;{K]6 5#@@Պ*cp'FUt@C k~80awDo7@ټ>(>m쓼+4hN9Q\ĞDxFeg@/#NWwGDӃ[س\)[.Pںz<RZ6@dnP?k䑼2 yr4V*DzAbCE0:7m5;So. DMmq]ݐs~.ז73Plng|&:Lwa"o-֛WW+Єg>w>- wicd@kgT^7W4Ừ%=A۷}ܻtGWx9|u7ZSք Ca`Pp‰3W؀o>|s"M2tYXr10 S(VD:N0A j5 51,xW^{r EÅ΋v@ bXƭ.o9nW}3ėq `0 "RձBgj*|F쬻HF9Ћ(AC$v~KQqje6)^WemgaNbR&-рOjE>ՕM |W#4zǐp*KdQ)=Pc0symofbcd!@\k"&աHFE;r bcd|-|hR .ϼ5K-+1˞zuDԵZJh G yM%iD#J$x+._R^ct63fHF}$%Q&?(X#Za)TQ&ĶCGݢ֢ƴBкH"~A )`nA?Ӥ[c/aTh ՟ul: X+_\UaKU`e mM%`ƴ4juh؈5Efc =wtBXlΎK&2V b͗6r(-@AgI@*0^Ge8a 'C>#*LaNB(ĿQd X@Jsoc*ţHGj*I @[[yUa1j؂c}t\ქ-BpyG0lIil@&y(ê?t! = 4DLekG7h7{钡bo!EWwqgq%#bQC6Ua˟f[ y/%(1a%JNΒy9CcV)hRXn ԃCbF;2r=#̮%ٽutʦOuiiL&TTƌIm|ě (CԲP%9<($I5"K0~S#yVc1  xPjfYr܎8s ;Pq`;[boȝ*RB93h= K NXsm1h @ L i+5R OԍI Uwi `Ps Sk;-f?<3:TC64 GWI,C2~K Jbfe/kv1O<5p0w*|Me7(#zh+_Ӆ죫Wu|f-Wb;;3J~?>O2#*#kx]X1Xu;B VUl50:\f$(4ᛢ<8߃XfSE0Ul~ &-!R#E>R# L݇m Gt_~/u^w=U L/.H(^?0)t(lC6w:r<91%.dsUĆKO}sY7>'# DTEkDf<̧',H8@9)Le@&o9שb]-~_aSӀ3~9lcsT6;#pQ%ZoU]FMԨHTDyid2ЊzZG):լ?y3xYIO=.bpIGp,#/C &k,xu -~Xx"5*Ĕ-)k()|LLg ,C mT5>;\ :S#R)zǧ\~I[f$ehq~*//,PU>@Ȧ53Y4'*ѯ";YmD73lۈ&lmWb}ybƮ鰦އ­nµzqhH=ꆶ6e(tfx[ɽR\ȎCͰf7#}vNkq ǽz>!#1Ep;ۛӪZ,C?7oMϴoa/|cqx318_GGyaJ# ֘MNG"v7Ur',z5Nk&2yrnpޥ3JXTܻtSL"bD!C=^5TMؽjqb%0b>yd nURЅW[<I=*A W'M{b—y}.6D$ђ-\'#zg倝j2rI m"ul喦#[f?3)Y@+==-i;%iuM 3p-^֏_|6fuɅ5xe0NR (r)9d WBkX!x*"Ao&"o.⃗+Nu[/L[ rPU<+ ~BM|O`ԟ~ULHҴ6ɻ @4Z;<4_k 4]^VGvcxOu?ҠTg, E$J`$v=q6R"?>:(lJDnɎT=  \YC gy>sZW\( W'Ìx*rEIQ1"b-vo{fpE7ӎoJiM1(I'=]ʩ_*hZ2]N !Ĭ@=lOP!e'n ^."WwLE[7zYŋ谱#lfG5*i*r;JR68z;}i->i:wZ]?:DkFR9CkdP;!xGr.h#,ZӍ6k7~#{_<<\X~9%9p Iy|KrK mg_Ubt7aePbj'A:u! 8(NS( Pɵ3DֿQ_sj@J[CW҃\@ٳ#PYqX7 HKdVO̍`@܎mΝ0Hj|]t0Äk_r5"t-0RDZk[Q-xs핣y!vXkUUXϜ fcOBSONb1Rh4 #>9 v~m3N8 jm6m;[GأV&!Li[yTDzdED"E 9vvD? M7ޤlzK3)[=þqʢl&ۈQpF7Rf46Sy_R(/g&93؋Kio;wsjқ.U7YϦpD/I^"rz'FJ탶a*VI{wr.ZZ¢#c6*H]ME"mgsjcHvk,v"6}Val%AWS맦zk$5@SSQ\f>+: im٠8 q ;0ŷMT $ꁙ" =C%FCqbPHo+iϋsOo\/pp$)=BJx#tgM_YvbFF0C,kwjM Yڹڔ-C5d@h_)ƽQ7<8F+=t؈^`y+̿:nWK_0M1&@0^r3;nxO^W_͛RR>X}XҳĂCȌgsDŽyH|1."G҂fL%SۼH޻ib" 6\L>QSL&i-!'XA$rePegdٝq ݨ=T]5hٍl>ZCwEYE;?3rSm ($y)7‹ht(͡j7Ae8ݨ5{,˿9?ҲefB{d]y{XT 5WбIe=LznuMg{t2%{(O).=Ԓ#W~AM60Z P/AG4~,+߂eg7鳽K<c iȅ=$^͆j Wa|TuVZt6ҔkCvT0e EP97_ A D􈱰XѪ3|6zfyF0Yˢ[TU5TbK*ֵ<9OF 7tϙ̂Iky"CYt<CUQQpHa AUNTFJ$xA?9܍ FWN|={KS"?^-{Fp8xlg[t$eZ?D080Cs$s{na 3dur͕ S\-G  5еA&+rFa'|j k.FE^.%`7` IPe̻֖id~:V0hUK~#ª* g]<ƒ\3DS[SWRwٻ0VLQ G`#deHW#q #Km' Vs'ᢺ2zLcF͞ !dQ|]^t?C.?>;f雳HME5T Gc5D[Ԧ`0=1^P{u)˝E JL2XM(J̱X=dnca<.x%?&ٔ_* dUF㉫Szh>_5y~9*xsaO#—WGh r2M+ǝJJOnhCa. gx4QEǪϔ&NXRΤu&M*6~lX[Go4CQR&^1*%c\𛮜%.E{. Ӈ>UZ&I~ƺL;("5`n6`ND7pBZеaT1+,[ jH[OG}`)(:%۽ \^6 `{Aux_080j(u\P~Lܫufls*层sZkr MZ^4A!&\pRHYIf&R* ÑESq(N'=Y;QLѻ )aeBDnS8G >֯qҭ5cչJx'"WIAjW#* F-SlDMUdzÄbAܳm䥩 (~Qu(>Nq#EE.s:uBr=sz.Q$85qY٠9g-@ø?v^ّuSmPc[1"TT㎌{N YfZ[Ϸ 1V5m{aRg<@DZTNqrAnSp7kxVjGL Ebߜ8o++觠 ⋭tPJDBSmjFr=I`8P`؍EVDJۓd$jo%hvb;D݈^kibK$AD'|o$wQ[J#iػxRJ^ﲒg͕<Ʌa vO½Ƨ]%}aUS{_U"=QS­ ΅x7p53?G+|eEXG^|`CκZv7Qf|>Gy;Vf0\/ o l>xD.p\SxvŽ瑚Gxvm(8U  c](D[? PAZ9m[IVFKj2/=3xeDͤ^5joo%0hdτCMG'ݾϹ$R6󮥒"}70\xN1a|.0-|w]_Up:A4)P ev9@*m Ivb0}OCi! D#OC|]Og`,tS!֓&7? JnAR 1M6_`T*~]a)Nd 中ZB:nlMwԵS⎍2DFp28񯈍R$ f8 :!LH&[R[^}O׿zhVsf*FbETW28#v@=a.ưk7iTAmA9ROL{䎊XZ\CdhЃRWmsF Q[8d9I=e^NO({pi V`] AJ sC Ee,%kP+.:#>ep ^$(s5}A',#UnnKXD(m.l[=P?qdM ʈYubo`ǃۃM{ dSe,5X&r|kUcV*`/ƃ$WARi[xɛWB~Zpx+WC>ⳋ~Kc`t,me Vfm'%nJO-(jEY[7HN<յu кfg;GGzXSØnh\"RPbn}Ĥ^/D{ AvdBBZ@IUTZ^_ ^#p!6WOV0 F_& *^_r--dRW(qh+G鍠\ns9`́n ]Xf"swJ⽽QMO{90wYT|NM?o+n_o5hCG[.TlÄ*W{;Y[ZjM YHKxvb:?XQJ ^!Z*+޲@/ڨ 6+6|GT^V\^{RK_WwAd<p ¾nʋ*}&ԇW&}t{}-J}ks՟ʞM}95;l# GVzVqlcod^79IUUo7TG*R<DC.iR{YeyV..#N@C;\?bqa.a៱.aEq~̨r4 +]U5}H-eЈlfa}42ZIi %gǰ-V[UģGP-&|G0[JA% b1x&)-g¿a^o, .ϋnʒ9'TFM,蜖{햫SO@_ dt: m[Xq.8`L}j֥F¹\/&:Pg)t rI,6]r2RpasS(( j07-]n)DDK]"vUi6LĂrbSTR&%3GHTyzt2 d̏Vá=s2 l%+gߑhM} z>'-w9ڣuCv:7 nMux\&69R̄A.ߛ.ye.V Q=egn@kE2.G.\v}dYn0[Wn>Z1xpe÷)mOru>M FQ:8Vՙaz#Sp۟"L2$whPWOf9Q(A ^{kz(y?5u'/gb!T(YuV{LGB1 䖣(/h` 5t̃ oLt p0jm?o)Wu{ܕl>6JK`N6yPQ-W׵\bBbɈa׺Wq)md(pné7Q4]a ~7(ՆА 4 _ܦ6\v7,0Ir$Md?ng%ϗ_ 0\m>yT$z`+VJúe T5ג1kW]ǿ_Eg j|T rf_6Ap\7#!:_TMZyU±M=Bi3#)iwl s7;2ߍ#bT8W0%r ,-2`=x_D$ΟgKKAMGEʤM=UO5{6}, 喈'8΀KhFS@ꦡɝ~dπ ZRl~OEx xNty€#{} Z n8K*S|c[l)aG@.VQlo~,F#بP`.1_uȴ!cz^>dAiZ㎾|.=\'"E!\ IdTAdft~bri{@mV5gWn;qxW+mf(g'~[zp`F*?lS%j~ߧ%*w)!&EDncYŚtl4w[`j7`aΗCsc3&Qj[SdZmנ53mPHȨe'F4~Oy_W޷UyZCYᶣNaވX2lЋ_mP NM/ucYc2=}eg{sVmU'ߟw|iW,??V!jN+!ĉQ(>1q>x E*z*fPcY5x0W\'̓vJ9ȪK ,LJ,B) 4n9c^~]a 35Ʈ xRh! =QktͶb븓Yaq+U[2[w'vH[ZnH7mnA&~0/k^bF2E[?oXJޙͰD_:^wdvG~A'x gzLy64}ȅj@_2wBo@ }UbT*6Ķxcnks^|Stw; Cl%ZQP HX43.˜$$a BD 5Ì85Jտݚ"_D( z͈v{L|pqBobau2EݲrgwKKa1d 03̼UNNxܓHOB?E#C6-p ~:]ޮv} w>)6C\#⢫͡}紆AA<(<d,afX/ڪ} W1OWȧ:Bii…:Z5U}bUwwmGG\]P^| HR8Z؅?.Su$󸚩 0 #d?o/j-)`T6d":ز9_52%.^\%:6-)=b!6],9!kYG]0,]!'}{ ã@ꒌ + ?78{Ef71Se ?&hWemUжOe{{>"\"55l7_] Z7\^?q3N_ 7|4(`W]F; Go ཹnG~HaƧ*7:xܩyEμ,ZYH;]#!Ý.{7|oJ-\v=*^z(ɂ_l +#DNqL,x?5 iu3DZ92OӮ0؞2kuKϖ)VOe; Xst"4k~Xz$)K8Ά/F`w]Cg,vvIThJ [[rC&DeS ;l'ގ-,| ڎp8WW<~;e~ܘלpg(NKPʜaʇ<>*7ׇs- EyUhJ + %pkSQC>Vꐝ Bj>}%p2NA\gY G~⏌wxx4y:'g>/>g`_6^ ӶF3>_^}w2TLO yWqo'M% &8*QqSa Gar…>j{hiDmIpJgnFelE9N_ !0BSU/X}vO`wm_ZYPjc@,q1|aH8 u- ~f^@oq|2#m63y!y*`%ë pBg/5(VFY!3 a^e\~{Gf|(>$j9> E g,\P()rpwx C#QQe.A\^ *z--]n.N:d:kQ͊i^ojr:BuLLS5/1Ogl\^;^1Mv:%?OWI >TȰxl1 ^*퉈s\`xR>X&qKq2؃گΌS'% b Pܟ0sZ54g_uVV@;Ͻn݅^sjgsIaW2i)YVLbҐ{_Ԧ)WE)F!3<*|1PTL/}|CNXOv<2>swvsݤj /X>BlϡJ{ 'w'n>>t¨.2`o4nO+e[=")jyS:?#7\|/p/2oo2ؐgT9aϿc#P9ϲ4)a/߸xk"| x63gxx=s_sW;U:]Y7%zxej}j3͙uDCgNY|^ٳN>ɭ;粙[ߓG㔮`n+6exҦ8Mş[ӎ6町`^%D9ӱn9Ss[|(iUn9-$թIQ},Hߛj|<~r6'R_ Uj# f'Qp~[N-:Q:ɎUKM+L5w>*uHD–r;Ep~}\JV\~5gV3Y5y4TK~nH>H.ԘðϨkq9oW=kkjsnwJ(,ᵽ*Ob.i--r*ٸ{f=?m$R(S Kbk=}mAɎXz{x[ϧ@ ܿJQ/ 7bʹ崵-RZCP<*&z}ፌ}#*Ƶ|G+7f|ek<G mfn||||cKlc~;WOǷK'gݘ? %Ο=yDE,t=[bP -=}}y7,>{F进-us|o_lXzhu0Rvkg<"Js7MR)(*o~ի3eh.2qsO(߮3'T2®%RvG uw$-iBB=N-wӎw~q牻z]K45wsɻ.ݍ+O,7èO4ܫh{}x-mmne*]`cƭ6?= Q[K 冺r}jźU;+?:} m{m{qǾ~lq)ۙC5{.\fsOJ4,"._`· 5UoF}Yg[ m]x$>p9uv ʬ9H'(r6}>wD˶_cae8G)^y ]x- B?:XI`2n]T^>Zg 1@9;콖˶!da ҿ[^4Lz}ndo"lŝƬ?]Ak,z^+g#9[vꞰGһtf䉠,rQ=$\>e}l$[P(/r91Uj1/usw#M_:җz%үf28K'JHa4Ta3{l%NQ{*Бcu2bnm(NYLJ*%Vdkk]F$%rӏ ;`s{ٲ:aE/P~Er1@eKkʦS ƛu<{BFޠy_[BwYYD_`l-T\A q9oO/: ϼ T޵?N|Dlw8ӊB` v.=$ݎ$SHf7?$>zVp?/x7D{߽syغG E()sX%`5`^郝|q_;4̫UBWK@8`ПImk!|=>m;vQf|ߎ7ՆNeQ79śJL0ѨɯC>(M-7Gǃ@Jn9bC=kJhUkG բ`<5OY־Hȁ>e64-@dT zQdf?H0MaˈX`Ӻ.v,iކM:=J]*rJs"qK`?Q7Tws?S|F$#YfH'1IIԪJG2R!T9`Ik+ kn6 ,ѐ"`rœኻ,RE*"@.yH]x&V&ByuX:l݂XBCmd=D<ڞꓼ3nJLi<)Dg+RT+EK~k.nu;ͶY̰$|Wŵ?.3>MC|X緍7bx9V }OE#PێV?9Rgh*ͼ܍ Σv m.jqv1rg43VP ۍƯŪ r ~`wDMM3C1w =GAiO]9|pC*"bZ"2$]A3܍2[pHs/3F;~}?{wcD#mU0FpQ0LdJ ؐd٢n׸p OH{( Vjͯ)^FqXnbrqq*S<՘p1= Ş]mҕARa33*RCOdoܦYyp}Z¤l;A,-߫ͽilYuNsҜ@ytH#`7. fW)6N[tGgc_u ]s2x*ޭ4 j [Ő1ƸݘI#q ̅􆵌,#g+lOQ xYꙟ&:-d@u$ǿy :ȤI O3BvQV+cV:48.2+]5`(""/[Sۯ1є@"o v[uڱ(n"C||.ze褈0LvH2|U`N2G"-NJs•VZ` >2(($zA#>̧ZԽ. \EmYg6逹#Bm(,,K|nrm"Zn1' 0 9HZ4;(vXqJ0e HBċY8m"/f .k.eǩƯ"Y@:.d[|%% uo`2iE0 ;|QЉ˔r9 EΏek*ּyirQᴝ#xvCCAўd:B1lpd渹zd(/up6%mF7v)#Hse{K,z6 SK8+#]}Imō=0I싄%#3i(); ' `dO |]Cx!_To+fa 4mF|-' )HVc8&:Aj;CEOLoҳdzÈ!YrX9Ԋ|Bw@WcYxGs I_n{$K ś.PbPqOpб7 $|: !eDaXa- Ӓ q% 2΢l݁|kynn)𱧧"lt P3d%ê*ͭ0_0>-Uf!n{m j7XCX5 ר&C~IdA='8c%nC6JqLޯt EJu\3n:!xK)HFZ~bV]JǢtq?ԤEeH!_KIif0'd7šd2=[9lE^̤vK]޶ݼQ%?LqW H2@9*H!.ׁI s=V/Ր5?1}\@Q*><$C|!r+ z%ˏF00˸G!Ɉ@XdpTsy;1&d7hS߸T ̶,H ^DhyfF7?s g Χ!eՉШפ붴e}'%yQI$amj*^l2 E4cd+zސRJYZXJ X:&Jy{@RLrbk]@Crd̛;J`dl7;!wi-ۿ{OǸ#l֮NR[ CiX\c4zZ`=_}X@RE(-?IjNMGt3NvtRŎN](SL@y=I{z]Y,%rJNУGW{Fϙ0 U 'U&E5=HE͉ܚԤ|&5C0uJL$a]c1E)aiͅ E0ܩsW%S(aopM#sH")>(" O}МZtarW@%+"K^87+p~2 i=@چE*ޗ:/?;H;)Y`tzw.M2~7>֐;!g\cZYz@Fb2AVh@" ʏDmt,7UguW)+>]=WNVt!z[S||$ ItvrRs8$+?у -O烓}}΄0q^u؆k[ $=Co#m5H ǥ8|`zYmÇev*$Kł{O*j~6߸C1F[̊wkt_PSz=Hna:(f1 ]\Hqx !솾1 ',.pϧ3A IO;2,'$hL8i_ >AѻsHn{_c򬳎0lٙG3F {P@ dc,^/hD8# ^~J@o x:$YeUDICخXfVȨsB|M,V0`Dmg eOU*bin $x[;d$*Oamg#d?Sϝ|yN#ەnuP-hE8.ٝ Jzv̔҂;o/E|c5Z6g3!e+5.85Mcs`nacB:Mu 'Wl$IdMmRvjiS^ȰM&Ǹg1}پlP7M]Q$nBȅ$i2^l:ɪ(Āk`AJIJn "^N\-DCF%~Dg({d' cՖ ):.}B0,ʥYjβ'H(IY*^e>+9ǑcAƱ6+ 8<ӛz֤{%.EzK9d$wfuP\B0&Nf:A(Aajc2Q.4^!. ܧEE.s:\@e|`j"]@A]5v #U(atA%j <1Oy*c6Jgb=|3|[uZW7]*\-&К&K>=0xS?ف8I IIGC>M~M2!~Nf=e|O8NPb|Zo_vN"8J4NP'ۓ8]R$ri kXh.+djF bz GC^DY0K&@dԉC0Tw#jz1YvDI}tE}w0pcz mߠ:k3@PvM_vtk~~'67Bg]69eci޿xS䎮hYnCc/xR"(tt4WȾ2TM@ba-Cqt7.p@}IPfe xkۻQf4ziON) C.Xv UyԳ@-}OvsziBPyM@cTfNFHlo{=(~Vcͻs*N/`X7W0$ZԐB=K~f0l/$Q9|k1Gjry,WޅO o$X[hzSGۺFm0ӝ[Mү^뢫2NMe ~t{eRGS!aCR܆8s݋՘|}nm"]x2m-eeNި4VQMӒ"@"Wn x5WrIcܒY#r0%`-ph搂S 4GUTP33wobADmU |q/Db['%0*#:mȿb6a'+)99Jwx NeY2Q]vD}\k慏e# s@Z%Ӑ.Z]&EȄUJjrbtPRo>K~k,"n' %SrX6@n۶} nhtٗzvgֽM-]*9RCܴjyQ,Pm%u؆ǚ̚MqSdڎ cU&юcEJ psZZ6o>Rʷfg"O #L\zۺock|eFvmyJDsI1)tӼїt ^hIWB nn]f-^K\uRT!C˄אr.۳絠p8G;ST=dIVKIS\Zr+w z=>"` 18ḑ]cl( UH]_*X t"/pR N \w]0g^㉏$*y~QN.R1YC_3m^i"qb *Vc g[>TyWC#ᄚ|FKYH*'wL!i=ҍ1Ir'Eň^Rc> ,Fn?HNACЩ`H$Sw\8n3ݚM1ۑN>u0T8%ݦĬZ5bfS ڶc^6iZ,!̇CP+ ./K'm)#8l#ۋ OG0;7Y^Pl*nGk^R>¸)ΐ߈N#܏9)b6@%NΚ+3a7(W|<۞ Isdh^F[<'KKGM0k): zzXZRdV55E^.x.ǫ$N; .V#ؿ\/;n3dxyã/'0(tzSj2u{SrCǡBa}-˝9+ETꍁuل-r[8KHD paͪ9Tu|K?dw/ABƍcDj=f]xTl yj+]Jo2ѿh?&vVb#b݆0g+/uYa B}'G RfUʔreugh0"gzK|k ץS{bbX̵[0ј|~}evO]\r{,Bƕrl^U}W*81.0W3m֭T%`=& 2Е%u;gO>'٪L^\&,o0W}j.!V$ bƳ4Z4hAjm[Ov2T?pJHYozo"hxq,"V6pC;&Rd6qS^f]o@=7JCڿq/r|B#nw VfȐ0MTlwy$&y_LRnz:I9l-"8\)W ׷E7Z^LC'PCIռ:vƲn@}%BRI>`|eUxǽQoZz<\wHK$ߖ+E 6tbOubAR M U.A)I+F;/fMvA*Tt44NA>b<:ݥjXd&"\uj*ʀa]H?tS٣ac+W.s8v<[]^]fE:7HNJbOTR̅k-qb]L !zaAa/8~W3чIb96pe\cQq!Hߤ*[~L*VKe9;fe6~xq:`]^|x mRÊ7=Xvm\yN'yܧ t2Q2ۺt#V"ovkSw-coߣiL쳈qsY.&H v!/wҞ4I\XӐq5X5S B/!ׂi5\҈Є)*gWoIEw*O[뿜]w5GҘ"eRhlrSf( ^.~,S4EGR% FlޞKmcVG Zbĝ?x*Z\6wnHt){2ASamm;)SRHX8OLkd~+&Pʘ*3Da߫a0':wEDB+ɤܬHS3N29j(yr)!x#:(`;ԙ[BL"ا $̫V,YgxRb})ZDC f%[`( eq͠ogElgv!\'._,hhV[E 7i8qX !rnп 8^3jZUI,ՠxmFw%!fو^$#7$i?Xg9eIk ׳& b8+7 >?rGABs=`D]m I3 ֔}Xe9+*"q5nU{fi1Y:`\0q-HgP(#19SX]QM)) %29!qaGk^)2R!PceZ}+ʹhgI.H 2*UL1:E_N!#L1m Ta9 ]-UZ. AήDvB";TUK pR.:F4L29gͭ5ǠRi !UjCZiV:7A.P,wt!è. ƶd ~;kKQ5TP xꯍVb9τD[JC(F9Y4lbLa(AJtR^O#Ƀt+1NdlतK8U)L ҙ4;,Ibl-]c2 ,d5DR2*@:Ȅsf8}-dsҶɉ`쪝N&+N׏[޺-y *0\J<,ufyju _`;k4r̪(G+1s\XB/DtyY:cI ZVƺ^,+}4mnj[xY%|~Pid((õڛ5zyc0DAFb;lUԵo !xA2/!A84RN:h"yeP|؊&"οMco畘|j% }i׎$vf;qMD6msa0;^H_ȍ? luGv0Mإ9!Ta3vI cS˳IڦLtVJ6Apat 궘ꈿ*$%[g0n% VUY܆TL8#>5 rqLZ~۲ wnq@QCsڍ[<g) |X0U oכ,ɍUqMe@ g魠jf4 jZ&ҍch3qy_jtKܓ 5ݟE2v`ۤm퀙ad#Yk×;{eHQ%D&Lan9ӫβ U$eOõk*d<:3€'u{[t>IB@]1 ]Ԛ^ߥCCZmB٠BtQ*k6@Us >]t4_8V*]rFc}K9,vjdN3[y+qy뎙0TRG { , Xk!I ]| f@=8ELDI&Ϙ;\m ܣqOqS?㼫uei갊R ,Q/.r# @ڼIum0ӗ_>Di/-/NslqڊFQCVblJlsS  N&jϤݒ=4CCG=5m#vFbJvc_mDobd/q` k?eN!/){u49-=X =%Ͱt./ax@|'f=/=J!ӡ{ A,ayVcHp;&+#[SƖ+,AfnWb`FOQ`XiZ/J9Olpt6>\7RMNSq%IXBBA|\A_&BЏhl/Ӷ3Ȗ:_f܅ƠBn+=4'(>_p gOѡ!`op2#H_7u7ɷ+W#gmsy*hviQi Ab|m&DCmpZ蒕V7ݹ;+ьN|F!row9k r,zOv0NtEaF2<X*bYT!*84 G7[RGT6D_p.h:}s>4A̢?'ሂ {8>.JV LCfOajr*gʲe,әyC` :4 qRe ßh=*X4C(+Hf Tr#( ڮOX4:> :4X̐jW ]w#Cwz&-fOX'<܄j< $Z=.Sw7qN@B^iv}܇L$!ͮڞڴoWw¬ܫ}ݫC,}~)E34o-b8DNg Kw?5~vkVV3Źtx:w*/@͈C?;)&zGo/͔R]ϾR?5R76c@\XU~cw֏70/Qu7kloUاyȈa {~"eMb}W:0+_Һi bțO, tHr3۹ln E .#ȃѲ#dpxh{=3}K|=G!Y4lQ0lt+w'7N bXIU'liu1FxiܼM VꝊR'<"ijƝ0/{طqJ9M';~tRFXVv|fvwO3"D .PI!z_,_7\0N06+ή .+5MiDwQi3YMfTNl6KE@sX+p%U(ICTb{*i=)mJJ ꮙ甄ed֐7R^{q1^ #bp'T頻wդw4Csua 1+ B&'\b:8FW HSs >İ&]Z%eRu{!z\Z(g6sm+^]\hkGae&_:H$Zv ɒBsX@΂}>/S_6oqjb;>a)VYzSeoz&J倪@7=#s4-Ԗd:}3Ҫ7>l$H;V^Q~dl+zX*Srb])2%xW!f)!5vڝ&ظSge A1^kmcP~V:4JDžU,r:2/W޽Vҽg}`z% "nKm.]Sc 7F"0{D<2Z>r/ 4%Q7 ]SE# ́yvg N"@?dO嘈Z~38+z+.4SʇC\1Q 6 ,?Iϒ%kַ'?Wn- BI0GV0dZũҫ 0SPF)m-gK`bauF/>Zj AvEH<6yM:GO7PJ&9òfe+ÎMsϯ2SRRxϫnZqS+|}xA#jշu0hvYK/-r"~C)~!+5QbT^OCcTsNo,1PrKbW#(+EK͹Yprى5]%=pb(\y"a˥l }(þy!or7 ^ѻlp~SGS>*^oNhAVLWW+։5vûEA9 k*qziy*uoO`FE< a ysA,W(btncCtj˫VDGç"5Gw:*怈CpKIB{*S !%G3KiOㄬ7(j\GZHϨ[¯ûGa$l.O P)'}UIUBt+s?/'c)5-ڹli,Gj*Z9QJ{]!jd&Z<-2%@hRIQAHtIC <-+|;?ؔ5qa2ld̑8ɑ`G 9 *Xabb,%-g8v;#@4qZ4EJž$4(7?A |* /񊌞erɑMeqGGN 5M8AVjKxZ?PF f(oM@ڝsXnl8(U)ٲב xfj'_՞=!C8_ZDmڰOzgfKWHTN,AL.[⹜3HDє9%68GuA_ҾP+Od3;! 2aeߠ̖#g'PE ҥB,jvRG)WXl JJ8tIh>͌<21G"ďe)yG}&|`C"/o/ {i<GX/&-C;PD Fxub,]lc[x6Tnhd%4js$'kjbƅѮ($}3z^ |=!JjN~hVްƴ!$Є_GX>';Bnwsj%Ws2kw⭐mk̐~N$u^tbS:h`O؉c|zB" Kox+fkh&O|F 4l;Kq"O"Ժ->B{1JmںAk[-K/O4-C2힊9%zbO)Qi :KpD̜*Yb7(a,>bX3tFW_6koMNlInEѰkmQ>P83l*{ۑ'guU7:3Hb/ }2!,g4 8vcRBiʟɔFIp)Z6x_FJF'%|xIgzfbLhg8O~N3m&vLu5voR=$5G|#~RюNtT]PP2yj=-o >ӟ(#ߗ Hc0q}c fA%BN]ez? `2"}c7/5gZ6QZA @'\!uP^ЃE 8iKCzx~bSHE2(O uc1ۦzݞy7#4Ԙ k:$^]j'HSS5{uĻ@rҘ-"Omodfay>y"dz@AD}Efņ 3>'xXe05gr]`|7vs1M"- $D&UgC *'Ww"x+dކBXQ3@j!;t'yC c8qa p S*+4`qޥ1ѷq&zaq0ճU"}50(ST5,ojbUZbYIu4Ԋ>jUZd &t~j,c'(k{JЩY:R+S!HzK-Xq`yw"-ΠR2dJU@Wc:[و|,;8 nɲLk s^z 4h䮻$7x+?OObN7п(H&@zoVKRI2dz)-VF#-3ԪĈ= $ՠIF-To5XVHIvȬBLdX8xG]v:j"~^\AQđ6"786]| R:%:Si6x3^.x''$&xBDRsaG{] @xRH"*i7rZ3+W2 & Z*ENF2u8%=9 #̰꛳h)}p^$?Fq$0ȣ2EQE׀Oj4;=2Xe"d׳W~ܤ'KuWlbuGsQ-ZFtΙHKݧ9z= 6&T8:̹K}bJJȓG/XpG[x΂ %8a["x!sy`ARP`7,vnu1sTTn%G#hңxK-onK2-|:vV@ٕl:&Nuikq 3TLL A1t1MyYV}y1FfdG<ɞ'|DvֺjhI tl$%,2xV__ !?psRNbpax\tfZfont/woff2_>https://edumex.co.in/assets/vendor/bootstrap/css/bootstrap.cssO bplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse- '-.4567_`abcdefghijklmnopqrstuvwxyz{|}~U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1 ,()$+,WNS.base[NS.relative_>https://edumex.co.in/assets/vendor/bootstrap/css/bootstrap.css/012Z$classnameX$classesUNSURL13XNSObject#AŃ+]89:L^WNS.keysZNS.objects;<=>?@ABCDEFGHIJK NOPQRSTUVWXYZ[\] !"#$%&'()*+\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_Content-EncodingVServer_x-turbo-charged-byWExpires_x-hcdn-cache-status]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rtXtext/css_Thu, 19 Oct 2023 05:05:16 GMT_*deec656940f980301fab99e4ec66e308-mum-edge1_upgrade-insecure-requestsRbrThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMTTMISS_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTU19438_ YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERMVFxkbHR8hIyUnKSstL1xDb250ZW50LVR5cGVfEBJ4LWhjZG4tdXBzdHJlYW0tcnRfEBF4LWhjZG4tcmVxdWVzdC1pZF8QF0NvbnRlbnQtU2VjdXJpdHktUG9saWN5XxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJfEBJ4LXR1cmJvLWNoYXJnZWQtYnlXRXhwaXJlc18QE3gtaGNkbi1jYWNoZS1zdGF0dXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRJYdGV4dC9jc3OhFFUwLjAwOKEWXxAqZGVlYzY1Njk0MGY5ODAzMDFmYWI5OWU0ZWM2NmUzMDgtbXVtLWVkZ2UxoRhfEBl1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzoRpSYnKhHFRoY2RuoR5ZTGl0ZVNwZWVkoSBfEB1UaHUsIDIzIE5vdiAyMDIzIDEzOjUwOjQwIEdNVKEiVE1JU1OhJF8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChJllob3N0aW5nZXKhKF8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSpVMTk0MzihLFVieXRlc6EuXxAkIjIzYTVhLTY1MzBiOTBjLTdmMzM2MDY3YmNiODZkZjA7YnIioTBfEB1UaHUsIDE5IE9jdCAyMDIzIDA1OjA1OjE2IEdNVAAIACsAOABNAGEAewCOAJUAqgCyAMgA1gDfAOQA8wEBAQYBFAEWAR8BIQEnASkBVgFYAXQBdgF5AXsBgAGCAYwBjgGuAbABtQG3AdAB0gHcAd4B/gIAAgYCCAIOAhACNwI5AAAAAAAAAgEAAAAAAAAAMQAAAAAAAAAAAAAAAAAAAlk=Ubytes_$"23a5a-6530b90c-7f336067bcb86df0;br"U0.008/0_NSMutableDictionary3\NSDictionary/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd!CJlor49DMSV_hjls{#=PWlt<X[`j    ( , @ NO:Z/*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-2016 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ html { font-family: sans-serif; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; } body { margin: 0; } article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } audio, canvas, progress, video { display: inline-block; vertical-align: baseline; } audio:not([controls]) { display: none; height: 0; } [hidden], template { display: none; } a { background-color: transparent; } a:active, a:hover { outline: 0; } abbr[title] { border-bottom: 1px dotted; } b, strong { font-weight: bold; } dfn { font-style: italic; } h1 { margin: .67em 0; font-size: 2em; } mark { color: #000; background: #ff0; } small { font-size: 80%; } sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline; } sup { top: -.5em; } sub { bottom: -.25em; } img { border: 0; } svg:not(:root) { overflow: hidden; } figure { margin: 1em 40px; } hr { height: 0; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; } pre { overflow: auto; } code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } button, input, optgroup, select, textarea { margin: 0; font: inherit; color: inherit; } button { overflow: visible; } button, select { text-transform: none; } button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; cursor: pointer; } button[disabled], html input[disabled] { cursor: default; } button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0; } input { line-height: normal; } input[type="checkbox"], input[type="radio"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; padding: 0; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } input[type="search"] { -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; -webkit-appearance: textfield; } input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } fieldset { padding: .35em .625em .75em; margin: 0 2px; border: 1px solid #c0c0c0; } legend { padding: 0; border: 0; } textarea { overflow: auto; } optgroup { font-weight: bold; } table { border-spacing: 0; border-collapse: collapse; } td, th { padding: 0; } /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ @media print { *, *:before, *:after { color: #000 !important; text-shadow: none !important; background: transparent !important; -webkit-box-shadow: none !important; box-shadow: none !important; } a, a:visited { text-decoration: underline; } a[href]:after { content: " (" attr(href) ")"; } abbr[title]:after { content: " (" attr(title) ")"; } a[href^="#"]:after, a[href^="javascript:"]:after { content: ""; } pre, blockquote { border: 1px solid #999; page-break-inside: avoid; } thead { display: table-header-group; } tr, img { page-break-inside: avoid; } img { max-width: 100% !important; } p, h2, h3 { orphans: 3; widows: 3; } h2, h3 { page-break-after: avoid; } .navbar { display: none; } .btn > .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px solid #000; } .table { border-collapse: collapse !important; } .table td, .table th { background-color: #fff !important; } .table-bordered th, .table-bordered td { border: 1px solid #ddd !important; } } @font-face { font-family: 'Glyphicons Halflings'; src: url('../fonts/glyphicons-halflings-regular.eot'); src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } .glyphicon { position: relative; top: 1px; display: inline-block; font-family: 'Glyphicons Halflings'; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { content: "\002a"; } .glyphicon-plus:before { content: "\002b"; } .glyphicon-euro:before, .glyphicon-eur:before { content: "\20ac"; } .glyphicon-minus:before { content: "\2212"; } .glyphicon-cloud:before { content: "\2601"; } .glyphicon-envelope:before { content: "\2709"; } .glyphicon-pencil:before { content: "\270f"; } .glyphicon-glass:before { content: "\e001"; } .glyphicon-music:before { content: "\e002"; } .glyphicon-search:before { content: "\e003"; } .glyphicon-heart:before { content: "\e005"; } .glyphicon-star:before { content: "\e006"; } .glyphicon-star-empty:before { content: "\e007"; } .glyphicon-user:before { content: "\e008"; } .glyphicon-film:before { content: "\e009"; } .glyphicon-th-large:before { content: "\e010"; } .glyphicon-th:before { content: "\e011"; } .glyphicon-th-list:before { content: "\e012"; } .glyphicon-ok:before { content: "\e013"; } .glyphicon-remove:before { content: "\e014"; } .glyphicon-zoom-in:before { content: "\e015"; } .glyphicon-zoom-out:before { content: "\e016"; } .glyphicon-off:before { content: "\e017"; } .glyphicon-signal:before { content: "\e018"; } .glyphicon-cog:before { content: "\e019"; } .glyphicon-trash:before { content: "\e020"; } .glyphicon-home:before { content: "\e021"; } .glyphicon-file:before { content: "\e022"; } .glyphicon-time:before { content: "\e023"; } .glyphicon-road:before { content: "\e024"; } .glyphicon-download-alt:before { content: "\e025"; } .glyphicon-download:before { content: "\e026"; } .glyphicon-upload:before { content: "\e027"; } .glyphicon-inbox:before { content: "\e028"; } .glyphicon-play-circle:before { content: "\e029"; } .glyphicon-repeat:before { content: "\e030"; } .glyphicon-refresh:before { content: "\e031"; } .glyphicon-list-alt:before { content: "\e032"; } .glyphicon-lock:before { content: "\e033"; } .glyphicon-flag:before { content: "\e034"; } .glyphicon-headphones:before { content: "\e035"; } .glyphicon-volume-off:before { content: "\e036"; } .glyphicon-volume-down:before { content: "\e037"; } .glyphicon-volume-up:before { content: "\e038"; } .glyphicon-qrcode:before { content: "\e039"; } .glyphicon-barcode:before { content: "\e040"; } .glyphicon-tag:before { content: "\e041"; } .glyphicon-tags:before { content: "\e042"; } .glyphicon-book:before { content: "\e043"; } .glyphicon-bookmark:before { content: "\e044"; } .glyphicon-print:before { content: "\e045"; } .glyphicon-camera:before { content: "\e046"; } .glyphicon-font:before { content: "\e047"; } .glyphicon-bold:before { content: "\e048"; } .glyphicon-italic:before { content: "\e049"; } .glyphicon-text-height:before { content: "\e050"; } .glyphicon-text-width:before { content: "\e051"; } .glyphicon-align-left:before { content: "\e052"; } .glyphicon-align-center:before { content: "\e053"; } .glyphicon-align-right:before { content: "\e054"; } .glyphicon-align-justify:before { content: "\e055"; } .glyphicon-list:before { content: "\e056"; } .glyphicon-indent-left:before { content: "\e057"; } .glyphicon-indent-right:before { content: "\e058"; } .glyphicon-facetime-video:before { content: "\e059"; } .glyphicon-picture:before { content: "\e060"; } .glyphicon-map-marker:before { content: "\e062"; } .glyphicon-adjust:before { content: "\e063"; } .glyphicon-tint:before { content: "\e064"; } .glyphicon-edit:before { content: "\e065"; } .glyphicon-share:before { content: "\e066"; } .glyphicon-check:before { content: "\e067"; } .glyphicon-move:before { content: "\e068"; } .glyphicon-step-backward:before { content: "\e069"; } .glyphicon-fast-backward:before { content: "\e070"; } .glyphicon-backward:before { content: "\e071"; } .glyphicon-play:before { content: "\e072"; } .glyphicon-pause:before { content: "\e073"; } .glyphicon-stop:before { content: "\e074"; } .glyphicon-forward:before { content: "\e075"; } .glyphicon-fast-forward:before { content: "\e076"; } .glyphicon-step-forward:before { content: "\e077"; } .glyphicon-eject:before { content: "\e078"; } .glyphicon-chevron-left:before { content: "\e079"; } .glyphicon-chevron-right:before { content: "\e080"; } .glyphicon-plus-sign:before { content: "\e081"; } .glyphicon-minus-sign:before { content: "\e082"; } .glyphicon-remove-sign:before { content: "\e083"; } .glyphicon-ok-sign:before { content: "\e084"; } .glyphicon-question-sign:before { content: "\e085"; } .glyphicon-info-sign:before { content: "\e086"; } .glyphicon-screenshot:before { content: "\e087"; } .glyphicon-remove-circle:before { content: "\e088"; } .glyphicon-ok-circle:before { content: "\e089"; } .glyphicon-ban-circle:before { content: "\e090"; } .glyphicon-arrow-left:before { content: "\e091"; } .glyphicon-arrow-right:before { content: "\e092"; } .glyphicon-arrow-up:before { content: "\e093"; } .glyphicon-arrow-down:before { content: "\e094"; } .glyphicon-share-alt:before { content: "\e095"; } .glyphicon-resize-full:before { content: "\e096"; } .glyphicon-resize-small:before { content: "\e097"; } .glyphicon-exclamation-sign:before { content: "\e101"; } .glyphicon-gift:before { content: "\e102"; } .glyphicon-leaf:before { content: "\e103"; } .glyphicon-fire:before { content: "\e104"; } .glyphicon-eye-open:before { content: "\e105"; } .glyphicon-eye-close:before { content: "\e106"; } .glyphicon-warning-sign:before { content: "\e107"; } .glyphicon-plane:before { content: "\e108"; } .glyphicon-calendar:before { content: "\e109"; } .glyphicon-random:before { content: "\e110"; } .glyphicon-comment:before { content: "\e111"; } .glyphicon-magnet:before { content: "\e112"; } .glyphicon-chevron-up:before { content: "\e113"; } .glyphicon-chevron-down:before { content: "\e114"; } .glyphicon-retweet:before { content: "\e115"; } .glyphicon-shopping-cart:before { content: "\e116"; } .glyphicon-folder-close:before { content: "\e117"; } .glyphicon-folder-open:before { content: "\e118"; } .glyphicon-resize-vertical:before { content: "\e119"; } .glyphicon-resize-horizontal:before { content: "\e120"; } .glyphicon-hdd:before { content: "\e121"; } .glyphicon-bullhorn:before { content: "\e122"; } .glyphicon-bell:before { content: "\e123"; } .glyphicon-certificate:before { content: "\e124"; } .glyphicon-thumbs-up:before { content: "\e125"; } .glyphicon-thumbs-down:before { content: "\e126"; } .glyphicon-hand-right:before { content: "\e127"; } .glyphicon-hand-left:before { content: "\e128"; } .glyphicon-hand-up:before { content: "\e129"; } .glyphicon-hand-down:before { content: "\e130"; } .glyphicon-circle-arrow-right:before { content: "\e131"; } .glyphicon-circle-arrow-left:before { content: "\e132"; } .glyphicon-circle-arrow-up:before { content: "\e133"; } .glyphicon-circle-arrow-down:before { content: "\e134"; } .glyphicon-globe:before { content: "\e135"; } .glyphicon-wrench:before { content: "\e136"; } .glyphicon-tasks:before { content: "\e137"; } .glyphicon-filter:before { content: "\e138"; } .glyphicon-briefcase:before { content: "\e139"; } .glyphicon-fullscreen:before { content: "\e140"; } .glyphicon-dashboard:before { content: "\e141"; } .glyphicon-paperclip:before { content: "\e142"; } .glyphicon-heart-empty:before { content: "\e143"; } .glyphicon-link:before { content: "\e144"; } .glyphicon-phone:before { content: "\e145"; } .glyphicon-pushpin:before { content: "\e146"; } .glyphicon-usd:before { content: "\e148"; } .glyphicon-gbp:before { content: "\e149"; } .glyphicon-sort:before { content: "\e150"; } .glyphicon-sort-by-alphabet:before { content: "\e151"; } .glyphicon-sort-by-alphabet-alt:before { content: "\e152"; } .glyphicon-sort-by-order:before { content: "\e153"; } .glyphicon-sort-by-order-alt:before { content: "\e154"; } .glyphicon-sort-by-attributes:before { content: "\e155"; } .glyphicon-sort-by-attributes-alt:before { content: "\e156"; } .glyphicon-unchecked:before { content: "\e157"; } .glyphicon-expand:before { content: "\e158"; } .glyphicon-collapse-down:before { content: "\e159"; } .glyphicon-collapse-up:before { content: "\e160"; } .glyphicon-log-in:before { content: "\e161"; } .glyphicon-flash:before { content: "\e162"; } .glyphicon-log-out:before { content: "\e163"; } .glyphicon-new-window:before { content: "\e164"; } .glyphicon-record:before { content: "\e165"; } .glyphicon-save:before { content: "\e166"; } .glyphicon-open:before { content: "\e167"; } .glyphicon-saved:before { content: "\e168"; } .glyphicon-import:before { content: "\e169"; } .glyphicon-export:before { content: "\e170"; } .glyphicon-send:before { content: "\e171"; } .glyphicon-floppy-disk:before { content: "\e172"; } .glyphicon-floppy-saved:before { content: "\e173"; } .glyphicon-floppy-remove:before { content: "\e174"; } .glyphicon-floppy-save:before { content: "\e175"; } .glyphicon-floppy-open:before { content: "\e176"; } .glyphicon-credit-card:before { content: "\e177"; } .glyphicon-transfer:before { content: "\e178"; } .glyphicon-cutlery:before { content: "\e179"; } .glyphicon-header:before { content: "\e180"; } .glyphicon-compressed:before { content: "\e181"; } .glyphicon-earphone:before { content: "\e182"; } .glyphicon-phone-alt:before { content: "\e183"; } .glyphicon-tower:before { content: "\e184"; } .glyphicon-stats:before { content: "\e185"; } .glyphicon-sd-video:before { content: "\e186"; } .glyphicon-hd-video:before { content: "\e187"; } .glyphicon-subtitles:before { content: "\e188"; } .glyphicon-sound-stereo:before { content: "\e189"; } .glyphicon-sound-dolby:before { content: "\e190"; } .glyphicon-sound-5-1:before { content: "\e191"; } .glyphicon-sound-6-1:before { content: "\e192"; } .glyphicon-sound-7-1:before { content: "\e193"; } .glyphicon-copyright-mark:before { content: "\e194"; } .glyphicon-registration-mark:before { content: "\e195"; } .glyphicon-cloud-download:before { content: "\e197"; } .glyphicon-cloud-upload:before { content: "\e198"; } .glyphicon-tree-conifer:before { content: "\e199"; } .glyphicon-tree-deciduous:before { content: "\e200"; } .glyphicon-cd:before { content: "\e201"; } .glyphicon-save-file:before { content: "\e202"; } .glyphicon-open-file:before { content: "\e203"; } .glyphicon-level-up:before { content: "\e204"; } .glyphicon-copy:before { content: "\e205"; } .glyphicon-paste:before { content: "\e206"; } .glyphicon-alert:before { content: "\e209"; } .glyphicon-equalizer:before { content: "\e210"; } .glyphicon-king:before { content: "\e211"; } .glyphicon-queen:before { content: "\e212"; } .glyphicon-pawn:before { content: "\e213"; } .glyphicon-bishop:before { content: "\e214"; } .glyphicon-knight:before { content: "\e215"; } .glyphicon-baby-formula:before { content: "\e216"; } .glyphicon-tent:before { content: "\26fa"; } .glyphicon-blackboard:before { content: "\e218"; } .glyphicon-bed:before { content: "\e219"; } .glyphicon-apple:before { content: "\f8ff"; } .glyphicon-erase:before { content: "\e221"; } .glyphicon-hourglass:before { content: "\231b"; } .glyphicon-lamp:before { content: "\e223"; } .glyphicon-duplicate:before { content: "\e224"; } .glyphicon-piggy-bank:before { content: "\e225"; } .glyphicon-scissors:before { content: "\e226"; } .glyphicon-bitcoin:before { content: "\e227"; } .glyphicon-btc:before { content: "\e227"; } .glyphicon-xbt:before { content: "\e227"; } .glyphicon-yen:before { content: "\00a5"; } .glyphicon-jpy:before { content: "\00a5"; } .glyphicon-ruble:before { content: "\20bd"; } .glyphicon-rub:before { content: "\20bd"; } .glyphicon-scale:before { content: "\e230"; } .glyphicon-ice-lolly:before { content: "\e231"; } .glyphicon-ice-lolly-tasted:before { content: "\e232"; } .glyphicon-education:before { content: "\e233"; } .glyphicon-option-horizontal:before { content: "\e234"; } .glyphicon-option-vertical:before { content: "\e235"; } .glyphicon-menu-hamburger:before { content: "\e236"; } .glyphicon-modal-window:before { content: "\e237"; } .glyphicon-oil:before { content: "\e238"; } .glyphicon-grain:before { content: "\e239"; } .glyphicon-sunglasses:before { content: "\e240"; } .glyphicon-text-size:before { content: "\e241"; } .glyphicon-text-color:before { content: "\e242"; } .glyphicon-text-background:before { content: "\e243"; } .glyphicon-object-align-top:before { content: "\e244"; } .glyphicon-object-align-bottom:before { content: "\e245"; } .glyphicon-object-align-horizontal:before { content: "\e246"; } .glyphicon-object-align-left:before { content: "\e247"; } .glyphicon-object-align-vertical:before { content: "\e248"; } .glyphicon-object-align-right:before { content: "\e249"; } .glyphicon-triangle-right:before { content: "\e250"; } .glyphicon-triangle-left:before { content: "\e251"; } .glyphicon-triangle-bottom:before { content: "\e252"; } .glyphicon-triangle-top:before { content: "\e253"; } .glyphicon-console:before { content: "\e254"; } .glyphicon-superscript:before { content: "\e255"; } .glyphicon-subscript:before { content: "\e256"; } .glyphicon-menu-left:before { content: "\e257"; } .glyphicon-menu-right:before { content: "\e258"; } .glyphicon-menu-down:before { content: "\e259"; } .glyphicon-menu-up:before { content: "\e260"; } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } html { font-size: 10px; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143; color: #333; background-color: #fff; } input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; } a { color: #337ab7; text-decoration: none; } a:hover, a:focus { color: #23527c; text-decoration: underline; } a:focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } figure { margin: 0; } img { vertical-align: middle; } .img-responsive, .thumbnail > img, .thumbnail a > img, .carousel-inner > .item > img, .carousel-inner > .item > a > img { display: block; max-width: 100%; height: auto; } .img-rounded { border-radius: 6px; } .img-thumbnail { display: inline-block; max-width: 100%; height: auto; padding: 4px; line-height: 1.42857143; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; transition: all .2s ease-in-out; } .img-circle { border-radius: 50%; } hr { margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .sr-only-focusable:active, .sr-only-focusable:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; } [role="button"] { cursor: pointer; } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit; } h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { font-weight: normal; line-height: 1; color: #777; } h1, .h1, h2, .h2, h3, .h3 { margin-top: 20px; margin-bottom: 10px; } h1 small, .h1 small, h2 small, .h2 small, h3 small, .h3 small, h1 .small, .h1 .small, h2 .small, .h2 .small, h3 .small, .h3 .small { font-size: 65%; } h4, .h4, h5, .h5, h6, .h6 { margin-top: 10px; margin-bottom: 10px; } h4 small, .h4 small, h5 small, .h5 small, h6 small, .h6 small, h4 .small, .h4 .small, h5 .small, .h5 .small, h6 .small, .h6 .small { font-size: 75%; } h1, .h1 { font-size: 36px; } h2, .h2 { font-size: 30px; } h3, .h3 { font-size: 24px; } h4, .h4 { font-size: 18px; } h5, .h5 { font-size: 14px; } h6, .h6 { font-size: 12px; } p { margin: 0 0 10px; } .lead { margin-bottom: 20px; font-size: 16px; font-weight: 300; line-height: 1.4; } @media (min-width: 768px) { .lead { font-size: 21px; } } small, .small { font-size: 85%; } mark, .mark { padding: .2em; background-color: #fcf8e3; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-nowrap { white-space: nowrap; } .text-lowercase { text-transform: lowercase; } .text-uppercase { text-transform: uppercase; } .text-capitalize { text-transform: capitalize; } .text-muted { color: #777; } .text-primary { color: #337ab7; } a.text-primary:hover, a.text-primary:focus { color: #286090; } .text-success { color: #3c763d; } a.text-success:hover, a.text-success:focus { color: #2b542c; } .text-info { color: #31708f; } a.text-info:hover, a.text-info:focus { color: #245269; } .text-warning { color: #8a6d3b; } a.text-warning:hover, a.text-warning:focus { color: #66512c; } .text-danger { color: #a94442; } a.text-danger:hover, a.text-danger:focus { color: #843534; } .bg-primary { color: #fff; background-color: #337ab7; } a.bg-primary:hover, a.bg-primary:focus { background-color: #286090; } .bg-success { background-color: #dff0d8; } a.bg-success:hover, a.bg-success:focus { background-color: #c1e2b3; } .bg-info { background-color: #d9edf7; } a.bg-info:hover, a.bg-info:focus { background-color: #afd9ee; } .bg-warning { background-color: #fcf8e3; } a.bg-warning:hover, a.bg-warning:focus { background-color: #f7ecb5; } .bg-danger { background-color: #f2dede; } a.bg-danger:hover, a.bg-danger:focus { background-color: #e4b9b9; } .page-header { padding-bottom: 9px; margin: 40px 0 20px; border-bottom: 1px solid #eee; } ul, ol { margin-top: 0; margin-bottom: 10px; } ul ul, ol ul, ul ol, ol ol { margin-bottom: 0; } .list-unstyled { padding-left: 0; list-style: none; } .list-inline { padding-left: 0; margin-left: -5px; list-style: none; } .list-inline > li { display: inline-block; padding-right: 5px; padding-left: 5px; } dl { margin-top: 0; margin-bottom: 20px; } dt, dd { line-height: 1.42857143; } dt { font-weight: bold; } dd { margin-left: 0; } @media (min-width: 768px) { .dl-horizontal dt { float: left; width: 160px; overflow: hidden; clear: left; text-align: right; text-overflow: ellipsis; white-space: nowrap; } .dl-horizontal dd { margin-left: 180px; } } abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #777; } .initialism { font-size: 90%; text-transform: uppercase; } blockquote { padding: 10px 20px; margin: 0 0 20px; font-size: 17.5px; border-left: 5px solid #eee; } blockquote p:last-child, blockquote ul:last-child, blockquote ol:last-child { margin-bottom: 0; } blockquote footer, blockquote small, blockquote .small { display: block; font-size: 80%; line-height: 1.42857143; color: #777; } blockquote footer:before, blockquote small:before, blockquote .small:before { content: '\2014 \00A0'; } .blockquote-reverse, blockquote.pull-right { padding-right: 15px; padding-left: 0; text-align: right; border-right: 5px solid #eee; border-left: 0; } .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, blockquote.pull-right .small:before { content: ''; } .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, blockquote.pull-right .small:after { content: '\00A0 \2014'; } address { margin-bottom: 20px; font-style: normal; line-height: 1.42857143; } code, kbd, pre, samp { font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } code { padding: 2px 4px; font-size: 90%; color: #c7254e; background-color: #f9f2f4; border-radius: 4px; } kbd { padding: 2px 4px; font-size: 90%; color: #fff; background-color: #333; border-radius: 3px; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); } kbd kbd { padding: 0; font-size: 100%; font-weight: bold; -webkit-box-shadow: none; box-shadow: none; } pre { display: block; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143; color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px; } pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0; } .pre-scrollable { max-height: 340px; overflow-y: scroll; } .container { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } @media (min-width: 768px) { .container { width: 750px; } } @media (min-width: 992px) { .container { width: 970px; } } @media (min-width: 1200px) { .container { width: 1170px; } } .container-fluid { padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; } .row { margin-right: -15px; margin-left: -15px; } .col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { position: relative; min-height: 1px; padding-right: 15px; padding-left: 15px; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { float: left; } .col-xs-12 { width: 100%; } .col-xs-11 { width: 91.66666667%; } .col-xs-10 { width: 83.33333333%; } .col-xs-9 { width: 75%; } .col-xs-8 { width: 66.66666667%; } .col-xs-7 { width: 58.33333333%; } .col-xs-6 { width: 50%; } .col-xs-5 { width: 41.66666667%; } .col-xs-4 { width: 33.33333333%; } .col-xs-3 { width: 25%; } .col-xs-2 { width: 16.66666667%; } .col-xs-1 { width: 8.33333333%; } .col-xs-pull-12 { right: 100%; } .col-xs-pull-11 { right: 91.66666667%; } .col-xs-pull-10 { right: 83.33333333%; } .col-xs-pull-9 { right: 75%; } .col-xs-pull-8 { right: 66.66666667%; } .col-xs-pull-7 { right: 58.33333333%; } .col-xs-pull-6 { right: 50%; } .col-xs-pull-5 { right: 41.66666667%; } .col-xs-pull-4 { right: 33.33333333%; } .col-xs-pull-3 { right: 25%; } .col-xs-pull-2 { right: 16.66666667%; } .col-xs-pull-1 { right: 8.33333333%; } .col-xs-pull-0 { right: auto; } .col-xs-push-12 { left: 100%; } .col-xs-push-11 { left: 91.66666667%; } .col-xs-push-10 { left: 83.33333333%; } .col-xs-push-9 { left: 75%; } .col-xs-push-8 { left: 66.66666667%; } .col-xs-push-7 { left: 58.33333333%; } .col-xs-push-6 { left: 50%; } .col-xs-push-5 { left: 41.66666667%; } .col-xs-push-4 { left: 33.33333333%; } .col-xs-push-3 { left: 25%; } .col-xs-push-2 { left: 16.66666667%; } .col-xs-push-1 { left: 8.33333333%; } .col-xs-push-0 { left: auto; } .col-xs-offset-12 { margin-left: 100%; } .col-xs-offset-11 { margin-left: 91.66666667%; } .col-xs-offset-10 { margin-left: 83.33333333%; } .col-xs-offset-9 { margin-left: 75%; } .col-xs-offset-8 { margin-left: 66.66666667%; } .col-xs-offset-7 { margin-left: 58.33333333%; } .col-xs-offset-6 { margin-left: 50%; } .col-xs-offset-5 { margin-left: 41.66666667%; } .col-xs-offset-4 { margin-left: 33.33333333%; } .col-xs-offset-3 { margin-left: 25%; } .col-xs-offset-2 { margin-left: 16.66666667%; } .col-xs-offset-1 { margin-left: 8.33333333%; } .col-xs-offset-0 { margin-left: 0; } @media (min-width: 768px) { .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; } .col-sm-12 { width: 100%; } .col-sm-11 { width: 91.66666667%; } .col-sm-10 { width: 83.33333333%; } .col-sm-9 { width: 75%; } .col-sm-8 { width: 66.66666667%; } .col-sm-7 { width: 58.33333333%; } .col-sm-6 { width: 50%; } .col-sm-5 { width: 41.66666667%; } .col-sm-4 { width: 33.33333333%; } .col-sm-3 { width: 25%; } .col-sm-2 { width: 16.66666667%; } .col-sm-1 { width: 8.33333333%; } .col-sm-pull-12 { right: 100%; } .col-sm-pull-11 { right: 91.66666667%; } .col-sm-pull-10 { right: 83.33333333%; } .col-sm-pull-9 { right: 75%; } .col-sm-pull-8 { right: 66.66666667%; } .col-sm-pull-7 { right: 58.33333333%; } .col-sm-pull-6 { right: 50%; } .col-sm-pull-5 { right: 41.66666667%; } .col-sm-pull-4 { right: 33.33333333%; } .col-sm-pull-3 { right: 25%; } .col-sm-pull-2 { right: 16.66666667%; } .col-sm-pull-1 { right: 8.33333333%; } .col-sm-pull-0 { right: auto; } .col-sm-push-12 { left: 100%; } .col-sm-push-11 { left: 91.66666667%; } .col-sm-push-10 { left: 83.33333333%; } .col-sm-push-9 { left: 75%; } .col-sm-push-8 { left: 66.66666667%; } .col-sm-push-7 { left: 58.33333333%; } .col-sm-push-6 { left: 50%; } .col-sm-push-5 { left: 41.66666667%; } .col-sm-push-4 { left: 33.33333333%; } .col-sm-push-3 { left: 25%; } .col-sm-push-2 { left: 16.66666667%; } .col-sm-push-1 { left: 8.33333333%; } .col-sm-push-0 { left: auto; } .col-sm-offset-12 { margin-left: 100%; } .col-sm-offset-11 { margin-left: 91.66666667%; } .col-sm-offset-10 { margin-left: 83.33333333%; } .col-sm-offset-9 { margin-left: 75%; } .col-sm-offset-8 { margin-left: 66.66666667%; } .col-sm-offset-7 { margin-left: 58.33333333%; } .col-sm-offset-6 { margin-left: 50%; } .col-sm-offset-5 { margin-left: 41.66666667%; } .col-sm-offset-4 { margin-left: 33.33333333%; } .col-sm-offset-3 { margin-left: 25%; } .col-sm-offset-2 { margin-left: 16.66666667%; } .col-sm-offset-1 { margin-left: 8.33333333%; } .col-sm-offset-0 { margin-left: 0; } } @media (min-width: 992px) { .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66666667%; } .col-md-10 { width: 83.33333333%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66666667%; } .col-md-7 { width: 58.33333333%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66666667%; } .col-md-4 { width: 33.33333333%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.66666667%; } .col-md-1 { width: 8.33333333%; } .col-md-pull-12 { right: 100%; } .col-md-pull-11 { right: 91.66666667%; } .col-md-pull-10 { right: 83.33333333%; } .col-md-pull-9 { right: 75%; } .col-md-pull-8 { right: 66.66666667%; } .col-md-pull-7 { right: 58.33333333%; } .col-md-pull-6 { right: 50%; } .col-md-pull-5 { right: 41.66666667%; } .col-md-pull-4 { right: 33.33333333%; } .col-md-pull-3 { right: 25%; } .col-md-pull-2 { right: 16.66666667%; } .col-md-pull-1 { right: 8.33333333%; } .col-md-pull-0 { right: auto; } .col-md-push-12 { left: 100%; } .col-md-push-11 { left: 91.66666667%; } .col-md-push-10 { left: 83.33333333%; } .col-md-push-9 { left: 75%; } .col-md-push-8 { left: 66.66666667%; } .col-md-push-7 { left: 58.33333333%; } .col-md-push-6 { left: 50%; } .col-md-push-5 { left: 41.66666667%; } .col-md-push-4 { left: 33.33333333%; } .col-md-push-3 { left: 25%; } .col-md-push-2 { left: 16.66666667%; } .col-md-push-1 { left: 8.33333333%; } .col-md-push-0 { left: auto; } .col-md-offset-12 { margin-left: 100%; } .col-md-offset-11 { margin-left: 91.66666667%; } .col-md-offset-10 { margin-left: 83.33333333%; } .col-md-offset-9 { margin-left: 75%; } .col-md-offset-8 { margin-left: 66.66666667%; } .col-md-offset-7 { margin-left: 58.33333333%; } .col-md-offset-6 { margin-left: 50%; } .col-md-offset-5 { margin-left: 41.66666667%; } .col-md-offset-4 { margin-left: 33.33333333%; } .col-md-offset-3 { margin-left: 25%; } .col-md-offset-2 { margin-left: 16.66666667%; } .col-md-offset-1 { margin-left: 8.33333333%; } .col-md-offset-0 { margin-left: 0; } } @media (min-width: 1200px) { .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; } .col-lg-12 { width: 100%; } .col-lg-11 { width: 91.66666667%; } .col-lg-10 { width: 83.33333333%; } .col-lg-9 { width: 75%; } .col-lg-8 { width: 66.66666667%; } .col-lg-7 { width: 58.33333333%; } .col-lg-6 { width: 50%; } .col-lg-5 { width: 41.66666667%; } .col-lg-4 { width: 33.33333333%; } .col-lg-3 { width: 25%; } .col-lg-2 { width: 16.66666667%; } .col-lg-1 { width: 8.33333333%; } .col-lg-pull-12 { right: 100%; } .col-lg-pull-11 { right: 91.66666667%; } .col-lg-pull-10 { right: 83.33333333%; } .col-lg-pull-9 { right: 75%; } .col-lg-pull-8 { right: 66.66666667%; } .col-lg-pull-7 { right: 58.33333333%; } .col-lg-pull-6 { right: 50%; } .col-lg-pull-5 { right: 41.66666667%; } .col-lg-pull-4 { right: 33.33333333%; } .col-lg-pull-3 { right: 25%; } .col-lg-pull-2 { right: 16.66666667%; } .col-lg-pull-1 { right: 8.33333333%; } .col-lg-pull-0 { right: auto; } .col-lg-push-12 { left: 100%; } .col-lg-push-11 { left: 91.66666667%; } .col-lg-push-10 { left: 83.33333333%; } .col-lg-push-9 { left: 75%; } .col-lg-push-8 { left: 66.66666667%; } .col-lg-push-7 { left: 58.33333333%; } .col-lg-push-6 { left: 50%; } .col-lg-push-5 { left: 41.66666667%; } .col-lg-push-4 { left: 33.33333333%; } .col-lg-push-3 { left: 25%; } .col-lg-push-2 { left: 16.66666667%; } .col-lg-push-1 { left: 8.33333333%; } .col-lg-push-0 { left: auto; } .col-lg-offset-12 { margin-left: 100%; } .col-lg-offset-11 { margin-left: 91.66666667%; } .col-lg-offset-10 { margin-left: 83.33333333%; } .col-lg-offset-9 { margin-left: 75%; } .col-lg-offset-8 { margin-left: 66.66666667%; } .col-lg-offset-7 { margin-left: 58.33333333%; } .col-lg-offset-6 { margin-left: 50%; } .col-lg-offset-5 { margin-left: 41.66666667%; } .col-lg-offset-4 { margin-left: 33.33333333%; } .col-lg-offset-3 { margin-left: 25%; } .col-lg-offset-2 { margin-left: 16.66666667%; } .col-lg-offset-1 { margin-left: 8.33333333%; } .col-lg-offset-0 { margin-left: 0; } } table { background-color: transparent; } caption { padding-top: 8px; padding-bottom: 8px; color: #777; text-align: left; } th { text-align: left; } .table { width: 100%; max-width: 100%; margin-bottom: 20px; } .table > thead > tr > th, .table > tbody > tr > th, .table > tfoot > tr > th, .table > thead > tr > td, .table > tbody > tr > td, .table > tfoot > tr > td { padding: 8px; line-height: 1.42857143; vertical-align: top; border-top: 1px solid #ddd; } .table > thead > tr > th { vertical-align: bottom; border-bottom: 2px solid #ddd; } .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > th, .table > caption + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > td, .table > thead:first-child > tr:first-child > td { border-top: 0; } .table > tbody + tbody { border-top: 2px solid #ddd; } .table .table { background-color: #fff; } .table-condensed > thead > tr > th, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > tbody > tr > td, .table-condensed > tfoot > tr > td { padding: 5px; } .table-bordered { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > tbody > tr > td, .table-bordered > tfoot > tr > td { border: 1px solid #ddd; } .table-bordered > thead > tr > th, .table-bordered > thead > tr > td { border-bottom-width: 2px; } .table-striped > tbody > tr:nth-of-type(odd) { background-color: #f9f9f9; } .table-hover > tbody > tr:hover { background-color: #f5f5f5; } table col[class*="col-"] { position: static; display: table-column; float: none; } table td[class*="col-"], table th[class*="col-"] { position: static; display: table-cell; float: none; } .table > thead > tr > td.active, .table > tbody > tr > td.active, .table > tfoot > tr > td.active, .table > thead > tr > th.active, .table > tbody > tr > th.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > tbody > tr.active > td, .table > tfoot > tr.active > td, .table > thead > tr.active > th, .table > tbody > tr.active > th, .table > tfoot > tr.active > th { background-color: #f5f5f5; } .table-hover > tbody > tr > td.active:hover, .table-hover > tbody > tr > th.active:hover, .table-hover > tbody > tr.active:hover > td, .table-hover > tbody > tr:hover > .active, .table-hover > tbody > tr.active:hover > th { background-color: #e8e8e8; } .table > thead > tr > td.success, .table > tbody > tr > td.success, .table > tfoot > tr > td.success, .table > thead > tr > th.success, .table > tbody > tr > th.success, .table > tfoot > tr > th.success, .table > thead > tr.success > td, .table > tbody > tr.success > td, .table > tfoot > tr.success > td, .table > thead > tr.success > th, .table > tbody > tr.success > th, .table > tfoot > tr.success > th { background-color: #dff0d8; } .table-hover > tbody > tr > td.success:hover, .table-hover > tbody > tr > th.success:hover, .table-hover > tbody > tr.success:hover > td, .table-hover > tbody > tr:hover > .success, .table-hover > tbody > tr.success:hover > th { background-color: #d0e9c6; } .table > thead > tr > td.info, .table > tbody > tr > td.info, .table > tfoot > tr > td.info, .table > thead > tr > th.info, .table > tbody > tr > th.info, .table > tfoot > tr > th.info, .table > thead > tr.info > td, .table > tbody > tr.info > td, .table > tfoot > tr.info > td, .table > thead > tr.info > th, .table > tbody > tr.info > th, .table > tfoot > tr.info > th { background-color: #d9edf7; } .table-hover > tbody > tr > td.info:hover, .table-hover > tbody > tr > th.info:hover, .table-hover > tbody > tr.info:hover > td, .table-hover > tbody > tr:hover > .info, .table-hover > tbody > tr.info:hover > th { background-color: #c4e3f3; } .table > thead > tr > td.warning, .table > tbody > tr > td.warning, .table > tfoot > tr > td.warning, .table > thead > tr > th.warning, .table > tbody > tr > th.warning, .table > tfoot > tr > th.warning, .table > thead > tr.warning > td, .table > tbody > tr.warning > td, .table > tfoot > tr.warning > td, .table > thead > tr.warning > th, .table > tbody > tr.warning > th, .table > tfoot > tr.warning > th { background-color: #fcf8e3; } .table-hover > tbody > tr > td.warning:hover, .table-hover > tbody > tr > th.warning:hover, .table-hover > tbody > tr.warning:hover > td, .table-hover > tbody > tr:hover > .warning, .table-hover > tbody > tr.warning:hover > th { background-color: #faf2cc; } .table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th { background-color: #f2dede; } .table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th { background-color: #ebcccc; } .table-responsive { min-height: .01%; overflow-x: auto; } @media screen and (max-width: 767px) { .table-responsive { width: 100%; margin-bottom: 15px; overflow-y: hidden; -ms-overflow-style: -ms-autohiding-scrollbar; border: 1px solid #ddd; } .table-responsive > .table { margin-bottom: 0; } .table-responsive > .table > thead > tr > th, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tfoot > tr > td { white-space: nowrap; } .table-responsive > .table-bordered { border: 0; } .table-responsive > .table-bordered > thead > tr > th:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .table-responsive > .table-bordered > thead > tr > th:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > th, .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > td { border-bottom: 0; } } fieldset { min-width: 0; padding: 0; margin: 0; border: 0; } legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333; border: 0; border-bottom: 1px solid #e5e5e5; } label { display: inline-block; max-width: 100%; margin-bottom: 5px; font-weight: bold; } input[type="search"] { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } input[type="radio"], input[type="checkbox"] { margin: 4px 0 0; margin-top: 1px \9; line-height: normal; } input[type="file"] { display: block; } input[type="range"] { display: block; width: 100%; } select[multiple], select[size] { height: auto; } input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } output { display: block; padding-top: 7px; font-size: 14px; line-height: 1.42857143; color: #555; } .form-control { display: block; width: 100%; height: 34px; padding: 6px 12px; font-size: 14px; line-height: 1.42857143; color: #555; background-color: #fff; background-image: none; border: 1px solid #ccc; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; } .form-control:focus { border-color: #66afe9; outline: 0; -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); } .form-control::-moz-placeholder { color: #999; opacity: 1; } .form-control:-ms-input-placeholder { color: #999; } .form-control::-webkit-input-placeholder { color: #999; } .form-control::-ms-expand { background-color: transparent; border: 0; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eee; opacity: 1; } .form-control[disabled], fieldset[disabled] .form-control { cursor: not-allowed; } textarea.form-control { height: auto; } input[type="search"] { -webkit-appearance: none; } @media screen and (-webkit-min-device-pixel-ratio: 0) { input[type="date"].form-control, input[type="time"].form-control, input[type="datetime-local"].form-control, input[type="month"].form-control { line-height: 34px; } input[type="date"].input-sm, input[type="time"].input-sm, input[type="datetime-local"].input-sm, input[type="month"].input-sm, .input-group-sm input[type="date"], .input-group-sm input[type="time"], .input-group-sm input[type="datetime-local"], .input-group-sm input[type="month"] { line-height: 30px; } input[type="date"].input-lg, input[type="time"].input-lg, input[type="datetime-local"].input-lg, input[type="month"].input-lg, .input-group-lg input[type="date"], .input-group-lg input[type="time"], .input-group-lg input[type="datetime-local"], .input-group-lg input[type="month"] { line-height: 46px; } } .form-group { margin-bottom: 15px; } .radio, .checkbox { position: relative; display: block; margin-top: 10px; margin-bottom: 10px; } .radio label, .checkbox label { min-height: 20px; padding-left: 20px; margin-bottom: 0; font-weight: normal; cursor: pointer; } .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] { position: absolute; margin-top: 4px \9; margin-left: -20px; } .radio + .radio, .checkbox + .checkbox { margin-top: -5px; } .radio-inline, .checkbox-inline { position: relative; display: inline-block; padding-left: 20px; margin-bottom: 0; font-weight: normal; vertical-align: middle; cursor: pointer; } .radio-inline + .radio-inline, .checkbox-inline + .checkbox-inline { margin-top: 0; margin-left: 10px; } input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"].disabled, input[type="checkbox"].disabled, fieldset[disabled] input[type="radio"], fieldset[disabled] input[type="checkbox"] { cursor: not-allowed; } .radio-inline.disabled, .checkbox-inline.disabled, fieldset[disabled] .radio-inline, fieldset[disabled] .checkbox-inline { cursor: not-allowed; } .radio.disabled label, .checkbox.disabled label, fieldset[disabled] .radio label, fieldset[disabled] .checkbox label { cursor: not-allowed; } .form-control-static { min-height: 34px; padding-top: 7px; padding-bottom: 7px; margin-bottom: 0; } .form-control-static.input-lg, .form-control-static.input-sm { padding-right: 0; padding-left: 0; } .input-sm { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-sm { height: 30px; line-height: 30px; } textarea.input-sm, select[multiple].input-sm { height: auto; } .form-group-sm .form-control { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .form-group-sm select.form-control { height: 30px; line-height: 30px; } .form-group-sm textarea.form-control, .form-group-sm select[multiple].form-control { height: auto; } .form-group-sm .form-control-static { height: 30px; min-height: 32px; padding: 6px 10px; font-size: 12px; line-height: 1.5; } .input-lg { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } select.input-lg { height: 46px; line-height: 46px; } textarea.input-lg, select[multiple].input-lg { height: auto; } .form-group-lg .form-control { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .form-group-lg select.form-control { height: 46px; line-height: 46px; } .form-group-lg textarea.form-control, .form-group-lg select[multiple].form-control { height: auto; } .form-group-lg .form-control-static { height: 46px; min-height: 38px; padding: 11px 16px; font-size: 18px; line-height: 1.3333333; } .has-feedback { position: relative; } .has-feedback .form-control { padding-right: 42.5px; } .form-control-feedback { position: absolute; top: 0; right: 0; z-index: 2; display: block; width: 34px; height: 34px; line-height: 34px; text-align: center; pointer-events: none; } .input-lg + .form-control-feedback, .input-group-lg + .form-control-feedback, .form-group-lg .form-control + .form-control-feedback { width: 46px; height: 46px; line-height: 46px; } .input-sm + .form-control-feedback, .input-group-sm + .form-control-feedback, .form-group-sm .form-control + .form-control-feedback { width: 30px; height: 30px; line-height: 30px; } .has-success .help-block, .has-success .control-label, .has-success .radio, .has-success .checkbox, .has-success .radio-inline, .has-success .checkbox-inline, .has-success.radio label, .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { color: #3c763d; } .has-success .form-control { border-color: #3c763d; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-success .form-control:focus { border-color: #2b542c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; } .has-success .input-group-addon { color: #3c763d; background-color: #dff0d8; border-color: #3c763d; } .has-success .form-control-feedback { color: #3c763d; } .has-warning .help-block, .has-warning .control-label, .has-warning .radio, .has-warning .checkbox, .has-warning .radio-inline, .has-warning .checkbox-inline, .has-warning.radio label, .has-warning.checkbox label, .has-warning.radio-inline label, .has-warning.checkbox-inline label { color: #8a6d3b; } .has-warning .form-control { border-color: #8a6d3b; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-warning .form-control:focus { border-color: #66512c; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; } .has-warning .input-group-addon { color: #8a6d3b; background-color: #fcf8e3; border-color: #8a6d3b; } .has-warning .form-control-feedback { color: #8a6d3b; } .has-error .help-block, .has-error .control-label, .has-error .radio, .has-error .checkbox, .has-error .radio-inline, .has-error .checkbox-inline, .has-error.radio label, .has-error.checkbox label, .has-error.radio-inline label, .has-error.checkbox-inline label { color: #a94442; } .has-error .form-control { border-color: #a94442; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); } .has-error .form-control:focus { border-color: #843534; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; } .has-error .input-group-addon { color: #a94442; background-color: #f2dede; border-color: #a94442; } .has-error .form-control-feedback { color: #a94442; } .has-feedback label ~ .form-control-feedback { top: 25px; } .has-feedback label.sr-only ~ .form-control-feedback { top: 0; } .help-block { display: block; margin-top: 5px; margin-bottom: 10px; color: #737373; } @media (min-width: 768px) { .form-inline .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; } .form-inline .form-control-static { display: inline-block; } .form-inline .input-group { display: inline-table; vertical-align: middle; } .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn, .form-inline .input-group .form-control { width: auto; } .form-inline .input-group > .form-control { width: 100%; } .form-inline .control-label { margin-bottom: 0; vertical-align: middle; } .form-inline .radio, .form-inline .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .form-inline .radio label, .form-inline .checkbox label { padding-left: 0; } .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } .form-inline .has-feedback .form-control-feedback { top: 0; } } .form-horizontal .radio, .form-horizontal .checkbox, .form-horizontal .radio-inline, .form-horizontal .checkbox-inline { padding-top: 7px; margin-top: 0; margin-bottom: 0; } .form-horizontal .radio, .form-horizontal .checkbox { min-height: 27px; } .form-horizontal .form-group { margin-right: -15px; margin-left: -15px; } @media (min-width: 768px) { .form-horizontal .control-label { padding-top: 7px; margin-bottom: 0; text-align: right; } } .form-horizontal .has-feedback .form-control-feedback { right: 15px; } @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { padding-top: 11px; font-size: 18px; } } @media (min-width: 768px) { .form-horizontal .form-group-sm .control-label { padding-top: 6px; font-size: 12px; } } .btn { display: inline-block; padding: 6px 12px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.42857143; text-align: center; white-space: nowrap; vertical-align: middle; -ms-touch-action: manipulation; touch-action: manipulation; cursor: pointer; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; background-image: none; border: 1px solid transparent; border-radius: 4px; } .btn:focus, .btn:active:focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn.active.focus { outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } .btn:hover, .btn:focus, .btn.focus { color: #333; text-decoration: none; } .btn:active, .btn.active { background-image: none; outline: 0; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn.disabled, .btn[disabled], fieldset[disabled] .btn { cursor: not-allowed; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none; opacity: .65; } a.btn.disabled, fieldset[disabled] a.btn { pointer-events: none; } .btn-default { color: #333; background-color: #fff; border-color: #ccc; } .btn-default:focus, .btn-default.focus { color: #333; background-color: #e6e6e6; border-color: #8c8c8c; } .btn-default:hover { color: #333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { color: #333; background-color: #e6e6e6; border-color: #adadad; } .btn-default:active:hover, .btn-default.active:hover, .open > .dropdown-toggle.btn-default:hover, .btn-default:active:focus, .btn-default.active:focus, .open > .dropdown-toggle.btn-default:focus, .btn-default:active.focus, .btn-default.active.focus, .open > .dropdown-toggle.btn-default.focus { color: #333; background-color: #d4d4d4; border-color: #8c8c8c; } .btn-default:active, .btn-default.active, .open > .dropdown-toggle.btn-default { background-image: none; } .btn-default.disabled:hover, .btn-default[disabled]:hover, fieldset[disabled] .btn-default:hover, .btn-default.disabled:focus, .btn-default[disabled]:focus, fieldset[disabled] .btn-default:focus, .btn-default.disabled.focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default.focus { background-color: #fff; border-color: #ccc; } .btn-default .badge { color: #fff; background-color: #333; } .btn-primary { color: #fff; background-color: #337ab7; border-color: #2e6da4; } .btn-primary:focus, .btn-primary.focus { color: #fff; background-color: #286090; border-color: #122b40; } .btn-primary:hover { color: #fff; background-color: #286090; border-color: #204d74; } .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { color: #fff; background-color: #286090; border-color: #204d74; } .btn-primary:active:hover, .btn-primary.active:hover, .open > .dropdown-toggle.btn-primary:hover, .btn-primary:active:focus, .btn-primary.active:focus, .open > .dropdown-toggle.btn-primary:focus, .btn-primary:active.focus, .btn-primary.active.focus, .open > .dropdown-toggle.btn-primary.focus { color: #fff; background-color: #204d74; border-color: #122b40; } .btn-primary:active, .btn-primary.active, .open > .dropdown-toggle.btn-primary { background-image: none; } .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled.focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary.focus { background-color: #337ab7; border-color: #2e6da4; } .btn-primary .badge { color: #337ab7; background-color: #fff; } .btn-success { color: #fff; background-color: #5cb85c; border-color: #4cae4c; } .btn-success:focus, .btn-success.focus { color: #fff; background-color: #449d44; border-color: #255625; } .btn-success:hover { color: #fff; background-color: #449d44; border-color: #398439; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { color: #fff; background-color: #449d44; border-color: #398439; } .btn-success:active:hover, .btn-success.active:hover, .open > .dropdown-toggle.btn-success:hover, .btn-success:active:focus, .btn-success.active:focus, .open > .dropdown-toggle.btn-success:focus, .btn-success:active.focus, .btn-success.active.focus, .open > .dropdown-toggle.btn-success.focus { color: #fff; background-color: #398439; border-color: #255625; } .btn-success:active, .btn-success.active, .open > .dropdown-toggle.btn-success { background-image: none; } .btn-success.disabled:hover, .btn-success[disabled]:hover, fieldset[disabled] .btn-success:hover, .btn-success.disabled:focus, .btn-success[disabled]:focus, fieldset[disabled] .btn-success:focus, .btn-success.disabled.focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success.focus { background-color: #5cb85c; border-color: #4cae4c; } .btn-success .badge { color: #5cb85c; background-color: #fff; } .btn-info { color: #fff; background-color: #5bc0de; border-color: #46b8da; } .btn-info:focus, .btn-info.focus { color: #fff; background-color: #31b0d5; border-color: #1b6d85; } .btn-info:hover { color: #fff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { color: #fff; background-color: #31b0d5; border-color: #269abc; } .btn-info:active:hover, .btn-info.active:hover, .open > .dropdown-toggle.btn-info:hover, .btn-info:active:focus, .btn-info.active:focus, .open > .dropdown-toggle.btn-info:focus, .btn-info:active.focus, .btn-info.active.focus, .open > .dropdown-toggle.btn-info.focus { color: #fff; background-color: #269abc; border-color: #1b6d85; } .btn-info:active, .btn-info.active, .open > .dropdown-toggle.btn-info { background-image: none; } .btn-info.disabled:hover, .btn-info[disabled]:hover, fieldset[disabled] .btn-info:hover, .btn-info.disabled:focus, .btn-info[disabled]:focus, fieldset[disabled] .btn-info:focus, .btn-info.disabled.focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info.focus { background-color: #5bc0de; border-color: #46b8da; } .btn-info .badge { color: #5bc0de; background-color: #fff; } .btn-warning { color: #fff; background-color: #f0ad4e; border-color: #eea236; } .btn-warning:focus, .btn-warning.focus { color: #fff; background-color: #ec971f; border-color: #985f0d; } .btn-warning:hover { color: #fff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { color: #fff; background-color: #ec971f; border-color: #d58512; } .btn-warning:active:hover, .btn-warning.active:hover, .open > .dropdown-toggle.btn-warning:hover, .btn-warning:active:focus, .btn-warning.active:focus, .open > .dropdown-toggle.btn-warning:focus, .btn-warning:active.focus, .btn-warning.active.focus, .open > .dropdown-toggle.btn-warning.focus { color: #fff; background-color: #d58512; border-color: #985f0d; } .btn-warning:active, .btn-warning.active, .open > .dropdown-toggle.btn-warning { background-image: none; } .btn-warning.disabled:hover, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning:hover, .btn-warning.disabled:focus, .btn-warning[disabled]:focus, fieldset[disabled] .btn-warning:focus, .btn-warning.disabled.focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning.focus { background-color: #f0ad4e; border-color: #eea236; } .btn-warning .badge { color: #f0ad4e; background-color: #fff; } .btn-danger { color: #fff; background-color: #d9534f; border-color: #d43f3a; } .btn-danger:focus, .btn-danger.focus { color: #fff; background-color: #c9302c; border-color: #761c19; } .btn-danger:hover { color: #fff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { color: #fff; background-color: #c9302c; border-color: #ac2925; } .btn-danger:active:hover, .btn-danger.active:hover, .open > .dropdown-toggle.btn-danger:hover, .btn-danger:active:focus, .btn-danger.active:focus, .open > .dropdown-toggle.btn-danger:focus, .btn-danger:active.focus, .btn-danger.active.focus, .open > .dropdown-toggle.btn-danger.focus { color: #fff; background-color: #ac2925; border-color: #761c19; } .btn-danger:active, .btn-danger.active, .open > .dropdown-toggle.btn-danger { background-image: none; } .btn-danger.disabled:hover, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger:hover, .btn-danger.disabled:focus, .btn-danger[disabled]:focus, fieldset[disabled] .btn-danger:focus, .btn-danger.disabled.focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger.focus { background-color: #d9534f; border-color: #d43f3a; } .btn-danger .badge { color: #d9534f; background-color: #fff; } .btn-link { font-weight: normal; color: #337ab7; border-radius: 0; } .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled], fieldset[disabled] .btn-link { background-color: transparent; -webkit-box-shadow: none; box-shadow: none; } .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active { border-color: transparent; } .btn-link:hover, .btn-link:focus { color: #23527c; text-decoration: underline; background-color: transparent; } .btn-link[disabled]:hover, fieldset[disabled] .btn-link:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:focus { color: #777; text-decoration: none; } .btn-lg, .btn-group-lg > .btn { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } .btn-sm, .btn-group-sm > .btn { padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-xs, .btn-group-xs > .btn { padding: 1px 5px; font-size: 12px; line-height: 1.5; border-radius: 3px; } .btn-block { display: block; width: 100%; } .btn-block + .btn-block { margin-top: 5px; } input[type="submit"].btn-block, input[type="reset"].btn-block, input[type="button"].btn-block { width: 100%; } .fade { opacity: 0; -webkit-transition: opacity .15s linear; -o-transition: opacity .15s linear; transition: opacity .15s linear; } .fade.in { opacity: 1; } .collapse { display: none; } .collapse.in { display: block; } tr.collapse.in { display: table-row; } tbody.collapse.in { display: table-row-group; } .collapsing { position: relative; height: 0; overflow: hidden; -webkit-transition-timing-function: ease; -o-transition-timing-function: ease; transition-timing-function: ease; -webkit-transition-duration: .35s; -o-transition-duration: .35s; transition-duration: .35s; -webkit-transition-property: height, visibility; -o-transition-property: height, visibility; transition-property: height, visibility; } .caret { display: inline-block; width: 0; height: 0; margin-left: 2px; vertical-align: middle; border-top: 4px dashed; border-top: 4px solid \9; border-right: 4px solid transparent; border-left: 4px solid transparent; } .dropup, .dropdown { position: relative; } .dropdown-toggle:focus { outline: 0; } .dropdown-menu { position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 160px; padding: 5px 0; margin: 2px 0 0; font-size: 14px; text-align: left; list-style: none; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .15); border-radius: 4px; -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); box-shadow: 0 6px 12px rgba(0, 0, 0, .175); } .dropdown-menu.pull-right { right: 0; left: auto; } .dropdown-menu .divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .dropdown-menu > li > a { display: block; padding: 3px 20px; clear: both; font-weight: normal; line-height: 1.42857143; color: #333; white-space: nowrap; } .dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus { color: #262626; text-decoration: none; background-color: #f5f5f5; } .dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus { color: #fff; text-decoration: none; background-color: #337ab7; outline: 0; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { color: #777; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; cursor: not-allowed; background-color: transparent; background-image: none; filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); } .open > .dropdown-menu { display: block; } .open > a { outline: 0; } .dropdown-menu-right { right: 0; left: auto; } .dropdown-menu-left { right: auto; left: 0; } .dropdown-header { display: block; padding: 3px 20px; font-size: 12px; line-height: 1.42857143; color: #777; white-space: nowrap; } .dropdown-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 990; } .pull-right > .dropdown-menu { right: 0; left: auto; } .dropup .caret, .navbar-fixed-bottom .dropdown .caret { content: ""; border-top: 0; border-bottom: 4px dashed; border-bottom: 4px solid \9; } .dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { top: auto; bottom: 100%; margin-bottom: 2px; } @media (min-width: 768px) { .navbar-right .dropdown-menu { right: 0; left: auto; } .navbar-right .dropdown-menu-left { right: auto; left: 0; } } .btn-group, .btn-group-vertical { position: relative; display: inline-block; vertical-align: middle; } .btn-group > .btn, .btn-group-vertical > .btn { position: relative; float: left; } .btn-group > .btn:hover, .btn-group-vertical > .btn:hover, .btn-group > .btn:focus, .btn-group-vertical > .btn:focus, .btn-group > .btn:active, .btn-group-vertical > .btn:active, .btn-group > .btn.active, .btn-group-vertical > .btn.active { z-index: 2; } .btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { margin-left: -1px; } .btn-toolbar { margin-left: -5px; } .btn-toolbar .btn, .btn-toolbar .btn-group, .btn-toolbar .input-group { float: left; } .btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { margin-left: 5px; } .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { border-radius: 0; } .btn-group > .btn:first-child { margin-left: 0; } .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group > .btn-group { float: left; } .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-top-right-radius: 0; border-bottom-right-radius: 0; } .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { border-top-left-radius: 0; border-bottom-left-radius: 0; } .btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { outline: 0; } .btn-group > .btn + .dropdown-toggle { padding-right: 8px; padding-left: 8px; } .btn-group > .btn-lg + .dropdown-toggle { padding-right: 12px; padding-left: 12px; } .btn-group.open .dropdown-toggle { -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); } .btn-group.open .dropdown-toggle.btn-link { -webkit-box-shadow: none; box-shadow: none; } .btn .caret { margin-left: 0; } .btn-lg .caret { border-width: 5px 5px 0; border-bottom-width: 0; } .dropup .btn-lg .caret { border-width: 0 5px 5px; } .btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { display: block; float: none; width: 100%; max-width: 100%; } .btn-group-vertical > .btn-group > .btn { float: none; } .btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { margin-top: -1px; margin-left: 0; } .btn-group-vertical > .btn:not(:first-child):not(:last-child) { border-radius: 0; } .btn-group-vertical > .btn:first-child:not(:last-child) { border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn:last-child:not(:first-child) { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } .btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .btn-group-justified { display: table; width: 100%; table-layout: fixed; border-collapse: separate; } .btn-group-justified > .btn, .btn-group-justified > .btn-group { display: table-cell; float: none; width: 1%; } .btn-group-justified > .btn-group .btn { width: 100%; } .btn-group-justified > .btn-group .dropdown-menu { left: auto; } [data-toggle="buttons"] > .btn input[type="radio"], [data-toggle="buttons"] > .btn-group > .btn input[type="radio"], [data-toggle="buttons"] > .btn input[type="checkbox"], [data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { position: absolute; clip: rect(0, 0, 0, 0); pointer-events: none; } .input-group { position: relative; display: table; border-collapse: separate; } .input-group[class*="col-"] { float: none; padding-right: 0; padding-left: 0; } .input-group .form-control { position: relative; z-index: 2; float: left; width: 100%; margin-bottom: 0; } .input-group .form-control:focus { z-index: 3; } .input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { height: 46px; padding: 10px 16px; font-size: 18px; line-height: 1.3333333; border-radius: 6px; } select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { height: 46px; line-height: 46px; } textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn, select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn { height: auto; } .input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { height: 30px; padding: 5px 10px; font-size: 12px; line-height: 1.5; border-radius: 3px; } select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { height: 30px; line-height: 30px; } textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn, select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn { height: auto; } .input-group-addon, .input-group-btn, .input-group .form-control { display: table-cell; } .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child), .input-group .form-control:not(:first-child):not(:last-child) { border-radius: 0; } .input-group-addon, .input-group-btn { width: 1%; white-space: nowrap; vertical-align: middle; } .input-group-addon { padding: 6px 12px; font-size: 14px; font-weight: normal; line-height: 1; color: #555; text-align: center; background-color: #eee; border: 1px solid #ccc; border-radius: 4px; } .input-group-addon.input-sm { padding: 5px 10px; font-size: 12px; border-radius: 3px; } .input-group-addon.input-lg { padding: 10px 16px; font-size: 18px; border-radius: 6px; } .input-group-addon input[type="radio"], .input-group-addon input[type="checkbox"] { margin-top: 0; } .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child > .btn-group:not(:last-child) > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; } .input-group-addon:first-child { border-right: 0; } .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:first-child > .btn-group:not(:first-child) > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; } .input-group-addon:last-child { border-left: 0; } .input-group-btn { position: relative; font-size: 0; white-space: nowrap; } .input-group-btn > .btn { position: relative; } .input-group-btn > .btn + .btn { margin-left: -1px; } .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active { z-index: 2; } .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { margin-right: -1px; } .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { z-index: 2; margin-left: -1px; } .nav { padding-left: 0; margin-bottom: 0; list-style: none; } .nav > li { position: relative; display: block; } .nav > li > a { position: relative; display: block; padding: 10px 15px; } .nav > li > a:hover, .nav > li > a:focus { text-decoration: none; background-color: #eee; } .nav > li.disabled > a { color: #777; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { color: #777; text-decoration: none; cursor: not-allowed; background-color: transparent; } .nav .open > a, .nav .open > a:hover, .nav .open > a:focus { background-color: #eee; border-color: #337ab7; } .nav .nav-divider { height: 1px; margin: 9px 0; overflow: hidden; background-color: #e5e5e5; } .nav > li > a > img { max-width: none; } .nav-tabs { border-bottom: 1px solid #ddd; } .nav-tabs > li { float: left; margin-bottom: -1px; } .nav-tabs > li > a { margin-right: 2px; line-height: 1.42857143; border: 1px solid transparent; border-radius: 4px 4px 0 0; } .nav-tabs > li > a:hover { border-color: #eee #eee #ddd; } .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { color: #555; cursor: default; background-color: #fff; border: 1px solid #ddd; border-bottom-color: transparent; } .nav-tabs.nav-justified { width: 100%; border-bottom: 0; } .nav-tabs.nav-justified > li { float: none; } .nav-tabs.nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-tabs.nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-tabs.nav-justified > li { display: table-cell; width: 1%; } .nav-tabs.nav-justified > li > a { margin-bottom: 0; } } .nav-tabs.nav-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs.nav-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:focus { border-bottom-color: #fff; } } .nav-pills > li { float: left; } .nav-pills > li > a { border-radius: 4px; } .nav-pills > li + li { margin-left: 2px; } .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus { color: #fff; background-color: #337ab7; } .nav-stacked > li { float: none; } .nav-stacked > li + li { margin-top: 2px; margin-left: 0; } .nav-justified { width: 100%; } .nav-justified > li { float: none; } .nav-justified > li > a { margin-bottom: 5px; text-align: center; } .nav-justified > .dropdown .dropdown-menu { top: auto; left: auto; } @media (min-width: 768px) { .nav-justified > li { display: table-cell; width: 1%; } .nav-justified > li > a { margin-bottom: 0; } } .nav-tabs-justified { border-bottom: 0; } .nav-tabs-justified > li > a { margin-right: 0; border-radius: 4px; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border: 1px solid #ddd; } @media (min-width: 768px) { .nav-tabs-justified > li > a { border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:hover, .nav-tabs-justified > .active > a:focus { border-bottom-color: #fff; } } .tab-content > .tab-pane { display: none; } .tab-content > .active { display: block; } .nav-tabs .dropdown-menu { margin-top: -1px; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar { position: relative; min-height: 50px; margin-bottom: 20px; border: 1px solid transparent; } @media (min-width: 768px) { .navbar { border-radius: 4px; } } @media (min-width: 768px) { .navbar-header { float: left; } } .navbar-collapse { padding-right: 15px; padding-left: 15px; overflow-x: visible; -webkit-overflow-scrolling: touch; border-top: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); } .navbar-collapse.in { overflow-y: auto; } @media (min-width: 768px) { .navbar-collapse { width: auto; border-top: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-collapse.collapse { display: block !important; height: auto !important; padding-bottom: 0; overflow: visible !important; } .navbar-collapse.in { overflow-y: visible; } .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { padding-right: 0; padding-left: 0; } } .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 340px; } @media (max-device-width: 480px) and (orientation: landscape) { .navbar-fixed-top .navbar-collapse, .navbar-fixed-bottom .navbar-collapse { max-height: 200px; } } .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: -15px; margin-left: -15px; } @media (min-width: 768px) { .container > .navbar-header, .container-fluid > .navbar-header, .container > .navbar-collapse, .container-fluid > .navbar-collapse { margin-right: 0; margin-left: 0; } } .navbar-static-top { z-index: 1000; border-width: 0 0 1px; } @media (min-width: 768px) { .navbar-static-top { border-radius: 0; } } .navbar-fixed-top, .navbar-fixed-bottom { position: fixed; right: 0; left: 0; z-index: 1030; } @media (min-width: 768px) { .navbar-fixed-top, .navbar-fixed-bottom { border-radius: 0; } } .navbar-fixed-top { top: 0; border-width: 0 0 1px; } .navbar-fixed-bottom { bottom: 0; margin-bottom: 0; border-width: 1px 0 0; } .navbar-brand { float: left; height: 50px; padding: 15px 15px; font-size: 18px; line-height: 20px; } .navbar-brand:hover, .navbar-brand:focus { text-decoration: none; } .navbar-brand > img { display: block; } @media (min-width: 768px) { .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { margin-left: -15px; } } .navbar-toggle { position: relative; float: right; padding: 9px 10px; margin-top: 8px; margin-right: 15px; margin-bottom: 8px; background-color: transparent; background-image: none; border: 1px solid transparent; border-radius: 4px; } .navbar-toggle:focus { outline: 0; } .navbar-toggle .icon-bar { display: block; width: 22px; height: 2px; border-radius: 1px; } .navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; } @media (min-width: 768px) { .navbar-toggle { display: none; } } .navbar-nav { margin: 7.5px -15px; } .navbar-nav > li > a { padding-top: 10px; padding-bottom: 10px; line-height: 20px; } @media (max-width: 767px) { .navbar-nav .open .dropdown-menu { position: static; float: none; width: auto; margin-top: 0; background-color: transparent; border: 0; -webkit-box-shadow: none; box-shadow: none; } .navbar-nav .open .dropdown-menu > li > a, .navbar-nav .open .dropdown-menu .dropdown-header { padding: 5px 15px 5px 25px; } .navbar-nav .open .dropdown-menu > li > a { line-height: 20px; } .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus { background-image: none; } } @media (min-width: 768px) { .navbar-nav { float: left; margin: 0; } .navbar-nav > li { float: left; } .navbar-nav > li > a { padding-top: 15px; padding-bottom: 15px; } } .navbar-form { padding: 10px 15px; margin-top: 8px; margin-right: -15px; margin-bottom: 8px; margin-left: -15px; border-top: 1px solid transparent; border-bottom: 1px solid transparent; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); } @media (min-width: 768px) { .navbar-form .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; } .navbar-form .form-control { display: inline-block; width: auto; vertical-align: middle; } .navbar-form .form-control-static { display: inline-block; } .navbar-form .input-group { display: inline-table; vertical-align: middle; } .navbar-form .input-group .input-group-addon, .navbar-form .input-group .input-group-btn, .navbar-form .input-group .form-control { width: auto; } .navbar-form .input-group > .form-control { width: 100%; } .navbar-form .control-label { margin-bottom: 0; vertical-align: middle; } .navbar-form .radio, .navbar-form .checkbox { display: inline-block; margin-top: 0; margin-bottom: 0; vertical-align: middle; } .navbar-form .radio label, .navbar-form .checkbox label { padding-left: 0; } .navbar-form .radio input[type="radio"], .navbar-form .checkbox input[type="checkbox"] { position: relative; margin-left: 0; } .navbar-form .has-feedback .form-control-feedback { top: 0; } } @media (max-width: 767px) { .navbar-form .form-group { margin-bottom: 5px; } .navbar-form .form-group:last-child { margin-bottom: 0; } } @media (min-width: 768px) { .navbar-form { width: auto; padding-top: 0; padding-bottom: 0; margin-right: 0; margin-left: 0; border: 0; -webkit-box-shadow: none; box-shadow: none; } } .navbar-nav > li > .dropdown-menu { margin-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; } .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { margin-bottom: 0; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .navbar-btn { margin-top: 8px; margin-bottom: 8px; } .navbar-btn.btn-sm { margin-top: 10px; margin-bottom: 10px; } .navbar-btn.btn-xs { margin-top: 14px; margin-bottom: 14px; } .navbar-text { margin-top: 15px; margin-bottom: 15px; } @media (min-width: 768px) { .navbar-text { float: left; margin-right: 15px; margin-left: 15px; } } @media (min-width: 768px) { .navbar-left { float: left !important; } .navbar-right { float: right !important; margin-right: -15px; } .navbar-right ~ .navbar-right { margin-right: 0; } } .navbar-default { background-color: #f8f8f8; border-color: #e7e7e7; } .navbar-default .navbar-brand { color: #777; } .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus { color: #5e5e5e; background-color: transparent; } .navbar-default .navbar-text { color: #777; } .navbar-default .navbar-nav > li > a { color: #777; } .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus { color: #ccc; background-color: transparent; } .navbar-default .navbar-toggle { border-color: #ddd; } .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus { background-color: #ddd; } .navbar-default .navbar-toggle .icon-bar { background-color: #888; } .navbar-default .navbar-collapse, .navbar-default .navbar-form { border-color: #e7e7e7; } .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus { color: #555; background-color: #e7e7e7; } @media (max-width: 767px) { .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: #777; } .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { color: #333; background-color: transparent; } .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { color: #555; background-color: #e7e7e7; } .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #ccc; background-color: transparent; } } .navbar-default .navbar-link { color: #777; } .navbar-default .navbar-link:hover { color: #333; } .navbar-default .btn-link { color: #777; } .navbar-default .btn-link:hover, .navbar-default .btn-link:focus { color: #333; } .navbar-default .btn-link[disabled]:hover, fieldset[disabled] .navbar-default .btn-link:hover, .navbar-default .btn-link[disabled]:focus, fieldset[disabled] .navbar-default .btn-link:focus { color: #ccc; } .navbar-inverse { background-color: #222; border-color: #080808; } .navbar-inverse .navbar-brand { color: #9d9d9d; } .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-text { color: #9d9d9d; } .navbar-inverse .navbar-nav > li > a { color: #9d9d9d; } .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus { color: #444; background-color: transparent; } .navbar-inverse .navbar-toggle { border-color: #333; } .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus { background-color: #333; } .navbar-inverse .navbar-toggle .icon-bar { background-color: #fff; } .navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { border-color: #101010; } .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus { color: #fff; background-color: #080808; } @media (max-width: 767px) { .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { border-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu .divider { background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { color: #9d9d9d; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { color: #fff; background-color: #080808; } .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { color: #444; background-color: transparent; } } .navbar-inverse .navbar-link { color: #9d9d9d; } .navbar-inverse .navbar-link:hover { color: #fff; } .navbar-inverse .btn-link { color: #9d9d9d; } .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #fff; } .navbar-inverse .btn-link[disabled]:hover, fieldset[disabled] .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link[disabled]:focus, fieldset[disabled] .navbar-inverse .btn-link:focus { color: #444; } .breadcrumb { padding: 8px 15px; margin-bottom: 20px; list-style: none; background-color: #f5f5f5; border-radius: 4px; } .breadcrumb > li { display: inline-block; } .breadcrumb > li + li:before { padding: 0 5px; color: #ccc; content: "/\00a0"; } .breadcrumb > .active { color: #777; } .pagination { display: inline-block; padding-left: 0; margin: 20px 0; border-radius: 4px; } .pagination > li { display: inline; } .pagination > li > a, .pagination > li > span { position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.42857143; color: #337ab7; text-decoration: none; background-color: #fff; border: 1px solid #ddd; } .pagination > li:first-child > a, .pagination > li:first-child > span { margin-left: 0; border-top-left-radius: 4px; border-bottom-left-radius: 4px; } .pagination > li:last-child > a, .pagination > li:last-child > span { border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .pagination > li > a:hover, .pagination > li > span:hover, .pagination > li > a:focus, .pagination > li > span:focus { z-index: 2; color: #23527c; background-color: #eee; border-color: #ddd; } .pagination > .active > a, .pagination > .active > span, .pagination > .active > a:hover, .pagination > .active > span:hover, .pagination > .active > a:focus, .pagination > .active > span:focus { z-index: 3; color: #fff; cursor: default; background-color: #337ab7; border-color: #337ab7; } .pagination > .disabled > span, .pagination > .disabled > span:hover, .pagination > .disabled > span:focus, .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { color: #777; cursor: not-allowed; background-color: #fff; border-color: #ddd; } .pagination-lg > li > a, .pagination-lg > li > span { padding: 10px 16px; font-size: 18px; line-height: 1.3333333; } .pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { border-top-left-radius: 6px; border-bottom-left-radius: 6px; } .pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { border-top-right-radius: 6px; border-bottom-right-radius: 6px; } .pagination-sm > li > a, .pagination-sm > li > span { padding: 5px 10px; font-size: 12px; line-height: 1.5; } .pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { border-top-left-radius: 3px; border-bottom-left-radius: 3px; } .pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { border-top-right-radius: 3px; border-bottom-right-radius: 3px; } .pager { padding-left: 0; margin: 20px 0; text-align: center; list-style: none; } .pager li { display: inline; } .pager li > a, .pager li > span { display: inline-block; padding: 5px 14px; background-color: #fff; border: 1px solid #ddd; border-radius: 15px; } .pager li > a:hover, .pager li > a:focus { text-decoration: none; background-color: #eee; } .pager .next > a, .pager .next > span { float: right; } .pager .previous > a, .pager .previous > span { float: left; } .pager .disabled > a, .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { color: #777; cursor: not-allowed; background-color: #fff; } .label { display: inline; padding: .2em .6em .3em; font-size: 75%; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .25em; } a.label:hover, a.label:focus { color: #fff; text-decoration: none; cursor: pointer; } .label:empty { display: none; } .btn .label { position: relative; top: -1px; } .label-default { background-color: #777; } .label-default[href]:hover, .label-default[href]:focus { background-color: #5e5e5e; } .label-primary { background-color: #337ab7; } .label-primary[href]:hover, .label-primary[href]:focus { background-color: #286090; } .label-success { background-color: #5cb85c; } .label-success[href]:hover, .label-success[href]:focus { background-color: #449d44; } .label-info { background-color: #5bc0de; } .label-info[href]:hover, .label-info[href]:focus { background-color: #31b0d5; } .label-warning { background-color: #f0ad4e; } .label-warning[href]:hover, .label-warning[href]:focus { background-color: #ec971f; } .label-danger { background-color: #d9534f; } .label-danger[href]:hover, .label-danger[href]:focus { background-color: #c9302c; } .badge { display: inline-block; min-width: 10px; padding: 3px 7px; font-size: 12px; font-weight: bold; line-height: 1; color: #fff; text-align: center; white-space: nowrap; vertical-align: middle; background-color: #777; border-radius: 10px; } .badge:empty { display: none; } .btn .badge { position: relative; top: -1px; } .btn-xs .badge, .btn-group-xs > .btn .badge { top: 0; padding: 1px 5px; } a.badge:hover, a.badge:focus { color: #fff; text-decoration: none; cursor: pointer; } .list-group-item.active > .badge, .nav-pills > .active > a > .badge { color: #337ab7; background-color: #fff; } .list-group-item > .badge { float: right; } .list-group-item > .badge + .badge { margin-right: 5px; } .nav-pills > li > a > .badge { margin-left: 3px; } .jumbotron { padding-top: 30px; padding-bottom: 30px; margin-bottom: 30px; color: inherit; background-color: #eee; } .jumbotron h1, .jumbotron .h1 { color: inherit; } .jumbotron p { margin-bottom: 15px; font-size: 21px; font-weight: 200; } .jumbotron > hr { border-top-color: #d5d5d5; } .container .jumbotron, .container-fluid .jumbotron { padding-right: 15px; padding-left: 15px; border-radius: 6px; } .jumbotron .container { max-width: 100%; } @media screen and (min-width: 768px) { .jumbotron { padding-top: 48px; padding-bottom: 48px; } .container .jumbotron, .container-fluid .jumbotron { padding-right: 60px; padding-left: 60px; } .jumbotron h1, .jumbotron .h1 { font-size: 63px; } } .thumbnail { display: block; padding: 4px; margin-bottom: 20px; line-height: 1.42857143; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; -webkit-transition: border .2s ease-in-out; -o-transition: border .2s ease-in-out; transition: border .2s ease-in-out; } .thumbnail > img, .thumbnail a > img { margin-right: auto; margin-left: auto; } a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active { border-color: #337ab7; } .thumbnail .caption { padding: 9px; color: #333; } .alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; } .alert h4 { margin-top: 0; color: inherit; } .alert .alert-link { font-weight: bold; } .alert > p, .alert > ul { margin-bottom: 0; } .alert > p + p { margin-top: 5px; } .alert-dismissable, .alert-dismissible { padding-right: 35px; } .alert-dismissable .close, .alert-dismissible .close { position: relative; top: -2px; right: -21px; color: inherit; } .alert-success { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .alert-success hr { border-top-color: #c9e2b3; } .alert-success .alert-link { color: #2b542c; } .alert-info { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .alert-info hr { border-top-color: #a6e1ec; } .alert-info .alert-link { color: #245269; } .alert-warning { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; } .alert-warning hr { border-top-color: #f7e1b5; } .alert-warning .alert-link { color: #66512c; } .alert-danger { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .alert-danger hr { border-top-color: #e4b9c0; } .alert-danger .alert-link { color: #843534; } @-webkit-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @-o-keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } @keyframes progress-bar-stripes { from { background-position: 40px 0; } to { background-position: 0 0; } } .progress { height: 20px; margin-bottom: 20px; overflow: hidden; background-color: #f5f5f5; border-radius: 4px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); } .progress-bar { float: left; width: 0; height: 100%; font-size: 12px; line-height: 20px; color: #fff; text-align: center; background-color: #337ab7; -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); -webkit-transition: width .6s ease; -o-transition: width .6s ease; transition: width .6s ease; } .progress-striped .progress-bar, .progress-bar-striped { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); -webkit-background-size: 40px 40px; background-size: 40px 40px; } .progress.active .progress-bar, .progress-bar.active { -webkit-animation: progress-bar-stripes 2s linear infinite; -o-animation: progress-bar-stripes 2s linear infinite; animation: progress-bar-stripes 2s linear infinite; } .progress-bar-success { background-color: #5cb85c; } .progress-striped .progress-bar-success { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-info { background-color: #5bc0de; } .progress-striped .progress-bar-info { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-warning { background-color: #f0ad4e; } .progress-striped .progress-bar-warning { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .progress-bar-danger { background-color: #d9534f; } .progress-striped .progress-bar-danger { background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); } .media { margin-top: 15px; } .media:first-child { margin-top: 0; } .media, .media-body { overflow: hidden; zoom: 1; } .media-body { width: 10000px; } .media-object { display: block; } .media-object.img-thumbnail { max-width: none; } .media-right, .media > .pull-right { padding-left: 10px; } .media-left, .media > .pull-left { padding-right: 10px; } .media-left, .media-right, .media-body { display: table-cell; vertical-align: top; } .media-middle { vertical-align: middle; } .media-bottom { vertical-align: bottom; } .media-heading { margin-top: 0; margin-bottom: 5px; } .media-list { padding-left: 0; list-style: none; } .list-group { padding-left: 0; margin-bottom: 20px; } .list-group-item { position: relative; display: block; padding: 10px 15px; margin-bottom: -1px; background-color: #fff; border: 1px solid #ddd; } .list-group-item:first-child { border-top-left-radius: 4px; border-top-right-radius: 4px; } .list-group-item:last-child { margin-bottom: 0; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; } a.list-group-item, button.list-group-item { color: #555; } a.list-group-item .list-group-item-heading, button.list-group-item .list-group-item-heading { color: #333; } a.list-group-item:hover, button.list-group-item:hover, a.list-group-item:focus, button.list-group-item:focus { color: #555; text-decoration: none; background-color: #f5f5f5; } button.list-group-item { width: 100%; text-align: left; } .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { color: #777; cursor: not-allowed; background-color: #eee; } .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { color: inherit; } .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { color: #777; } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; color: #fff; background-color: #337ab7; border-color: #337ab7; } .list-group-item.active .list-group-item-heading, .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading, .list-group-item.active .list-group-item-heading > small, .list-group-item.active:hover .list-group-item-heading > small, .list-group-item.active:focus .list-group-item-heading > small, .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading > .small { color: inherit; } .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text { color: #c7ddef; } .list-group-item-success { color: #3c763d; background-color: #dff0d8; } a.list-group-item-success, button.list-group-item-success { color: #3c763d; } a.list-group-item-success .list-group-item-heading, button.list-group-item-success .list-group-item-heading { color: inherit; } a.list-group-item-success:hover, button.list-group-item-success:hover, a.list-group-item-success:focus, button.list-group-item-success:focus { color: #3c763d; background-color: #d0e9c6; } a.list-group-item-success.active, button.list-group-item-success.active, a.list-group-item-success.active:hover, button.list-group-item-success.active:hover, a.list-group-item-success.active:focus, button.list-group-item-success.active:focus { color: #fff; background-color: #3c763d; border-color: #3c763d; } .list-group-item-info { color: #31708f; background-color: #d9edf7; } a.list-group-item-info, button.list-group-item-info { color: #31708f; } a.list-group-item-info .list-group-item-heading, button.list-group-item-info .list-group-item-heading { color: inherit; } a.list-group-item-info:hover, button.list-group-item-info:hover, a.list-group-item-info:focus, button.list-group-item-info:focus { color: #31708f; background-color: #c4e3f3; } a.list-group-item-info.active, button.list-group-item-info.active, a.list-group-item-info.active:hover, button.list-group-item-info.active:hover, a.list-group-item-info.active:focus, button.list-group-item-info.active:focus { color: #fff; background-color: #31708f; border-color: #31708f; } .list-group-item-warning { color: #8a6d3b; background-color: #fcf8e3; } a.list-group-item-warning, button.list-group-item-warning { color: #8a6d3b; } a.list-group-item-warning .list-group-item-heading, button.list-group-item-warning .list-group-item-heading { color: inherit; } a.list-group-item-warning:hover, button.list-group-item-warning:hover, a.list-group-item-warning:focus, button.list-group-item-warning:focus { color: #8a6d3b; background-color: #faf2cc; } a.list-group-item-warning.active, button.list-group-item-warning.active, a.list-group-item-warning.active:hover, button.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus, button.list-group-item-warning.active:focus { color: #fff; background-color: #8a6d3b; border-color: #8a6d3b; } .list-group-item-danger { color: #a94442; background-color: #f2dede; } a.list-group-item-danger, button.list-group-item-danger { color: #a94442; } a.list-group-item-danger .list-group-item-heading, button.list-group-item-danger .list-group-item-heading { color: inherit; } a.list-group-item-danger:hover, button.list-group-item-danger:hover, a.list-group-item-danger:focus, button.list-group-item-danger:focus { color: #a94442; background-color: #ebcccc; } a.list-group-item-danger.active, button.list-group-item-danger.active, a.list-group-item-danger.active:hover, button.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus, button.list-group-item-danger.active:focus { color: #fff; background-color: #a94442; border-color: #a94442; } .list-group-item-heading { margin-top: 0; margin-bottom: 5px; } .list-group-item-text { margin-bottom: 0; line-height: 1.3; } .panel { margin-bottom: 20px; background-color: #fff; border: 1px solid transparent; border-radius: 4px; -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); box-shadow: 0 1px 1px rgba(0, 0, 0, .05); } .panel-body { padding: 15px; } .panel-heading { padding: 10px 15px; border-bottom: 1px solid transparent; border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel-heading > .dropdown .dropdown-toggle { color: inherit; } .panel-title { margin-top: 0; margin-bottom: 0; font-size: 16px; color: inherit; } .panel-title > a, .panel-title > small, .panel-title > .small, .panel-title > small > a, .panel-title > .small > a { color: inherit; } .panel-footer { padding: 10px 15px; background-color: #f5f5f5; border-top: 1px solid #ddd; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .list-group, .panel > .panel-collapse > .list-group { margin-bottom: 0; } .panel > .list-group .list-group-item, .panel > .panel-collapse > .list-group .list-group-item { border-width: 1px 0; border-radius: 0; } .panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { border-top: 0; border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { border-bottom: 0; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { border-top-left-radius: 0; border-top-right-radius: 0; } .panel-heading + .list-group .list-group-item:first-child { border-top-width: 0; } .list-group + .panel-footer { border-top-width: 0; } .panel > .table, .panel > .table-responsive > .table, .panel > .panel-collapse > .table { margin-bottom: 0; } .panel > .table caption, .panel > .table-responsive > .table caption, .panel > .panel-collapse > .table caption { padding-right: 15px; padding-left: 15px; } .panel > .table:first-child, .panel > .table-responsive:first-child > .table:first-child { border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { border-top-left-radius: 3px; border-top-right-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { border-top-left-radius: 3px; } .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { border-top-right-radius: 3px; } .panel > .table:last-child, .panel > .table-responsive:last-child > .table:last-child { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { border-bottom-left-radius: 3px; } .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { border-bottom-right-radius: 3px; } .panel > .panel-body + .table, .panel > .panel-body + .table-responsive, .panel > .table + .panel-body, .panel > .table-responsive + .panel-body { border-top: 1px solid #ddd; } .panel > .table > tbody:first-child > tr:first-child th, .panel > .table > tbody:first-child > tr:first-child td { border-top: 0; } .panel > .table-bordered, .panel > .table-responsive > .table-bordered { border: 0; } .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { border-left: 0; } .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { border-right: 0; } .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { border-bottom: 0; } .panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { border-bottom: 0; } .panel > .table-responsive { margin-bottom: 0; border: 0; } .panel-group { margin-bottom: 20px; } .panel-group .panel { margin-bottom: 0; border-radius: 4px; } .panel-group .panel + .panel { margin-top: 5px; } .panel-group .panel-heading { border-bottom: 0; } .panel-group .panel-heading + .panel-collapse > .panel-body, .panel-group .panel-heading + .panel-collapse > .list-group { border-top: 1px solid #ddd; } .panel-group .panel-footer { border-top: 0; } .panel-group .panel-footer + .panel-collapse .panel-body { border-bottom: 1px solid #ddd; } .panel-default { border-color: #ddd; } .panel-default > .panel-heading { color: #333; background-color: #f5f5f5; border-color: #ddd; } .panel-default > .panel-heading + .panel-collapse > .panel-body { border-top-color: #ddd; } .panel-default > .panel-heading .badge { color: #f5f5f5; background-color: #333; } .panel-default > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #ddd; } .panel-primary { border-color: #337ab7; } .panel-primary > .panel-heading { color: #fff; background-color: #337ab7; border-color: #337ab7; } .panel-primary > .panel-heading + .panel-collapse > .panel-body { border-top-color: #337ab7; } .panel-primary > .panel-heading .badge { color: #337ab7; background-color: #fff; } .panel-primary > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #337ab7; } .panel-success { border-color: #d6e9c6; } .panel-success > .panel-heading { color: #3c763d; background-color: #dff0d8; border-color: #d6e9c6; } .panel-success > .panel-heading + .panel-collapse > .panel-body { border-top-color: #d6e9c6; } .panel-success > .panel-heading .badge { color: #dff0d8; background-color: #3c763d; } .panel-success > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #d6e9c6; } .panel-info { border-color: #bce8f1; } .panel-info > .panel-heading { color: #31708f; background-color: #d9edf7; border-color: #bce8f1; } .panel-info > .panel-heading + .panel-collapse > .panel-body { border-top-color: #bce8f1; } .panel-info > .panel-heading .badge { color: #d9edf7; background-color: #31708f; } .panel-info > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #bce8f1; } .panel-warning { border-color: #faebcc; } .panel-warning > .panel-heading { color: #8a6d3b; background-color: #fcf8e3; border-color: #faebcc; } .panel-warning > .panel-heading + .panel-collapse > .panel-body { border-top-color: #faebcc; } .panel-warning > .panel-heading .badge { color: #fcf8e3; background-color: #8a6d3b; } .panel-warning > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #faebcc; } .panel-danger { border-color: #ebccd1; } .panel-danger > .panel-heading { color: #a94442; background-color: #f2dede; border-color: #ebccd1; } .panel-danger > .panel-heading + .panel-collapse > .panel-body { border-top-color: #ebccd1; } .panel-danger > .panel-heading .badge { color: #f2dede; background-color: #a94442; } .panel-danger > .panel-footer + .panel-collapse > .panel-body { border-bottom-color: #ebccd1; } .embed-responsive { position: relative; display: block; height: 0; padding: 0; overflow: hidden; } .embed-responsive .embed-responsive-item, .embed-responsive iframe, .embed-responsive embed, .embed-responsive object, .embed-responsive video { position: absolute; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; border: 0; } .embed-responsive-16by9 { padding-bottom: 56.25%; } .embed-responsive-4by3 { padding-bottom: 75%; } .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; border: 1px solid #e3e3e3; border-radius: 4px; -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); } .well blockquote { border-color: #ddd; border-color: rgba(0, 0, 0, .15); } .well-lg { padding: 24px; border-radius: 6px; } .well-sm { padding: 9px; border-radius: 3px; } .close { float: right; font-size: 21px; font-weight: bold; line-height: 1; color: #000; text-shadow: 0 1px 0 #fff; filter: alpha(opacity=20); opacity: .2; } .close:hover, .close:focus { color: #000; text-decoration: none; cursor: pointer; filter: alpha(opacity=50); opacity: .5; } button.close { -webkit-appearance: none; padding: 0; cursor: pointer; background: transparent; border: 0; } .modal-open { overflow: hidden; } .modal { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1050; display: none; overflow: hidden; -webkit-overflow-scrolling: touch; outline: 0; } .modal.fade .modal-dialog { -webkit-transition: -webkit-transform .3s ease-out; -o-transition: -o-transform .3s ease-out; transition: transform .3s ease-out; -webkit-transform: translate(0, -25%); -ms-transform: translate(0, -25%); -o-transform: translate(0, -25%); transform: translate(0, -25%); } .modal.in .modal-dialog { -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); -o-transform: translate(0, 0); transform: translate(0, 0); } .modal-open .modal { overflow-x: hidden; overflow-y: auto; } .modal-dialog { position: relative; width: auto; margin: 10px; } .modal-content { position: relative; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #999; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; outline: 0; -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } .modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000; } .modal-backdrop.fade { filter: alpha(opacity=0); opacity: 0; } .modal-backdrop.in { filter: alpha(opacity=50); opacity: .5; } .modal-header { padding: 15px; border-bottom: 1px solid #e5e5e5; } .modal-header .close { margin-top: -2px; } .modal-title { margin: 0; line-height: 1.42857143; } .modal-body { position: relative; padding: 15px; } .modal-footer { padding: 15px; text-align: right; border-top: 1px solid #e5e5e5; } .modal-footer .btn + .btn { margin-bottom: 0; margin-left: 5px; } .modal-footer .btn-group .btn + .btn { margin-left: -1px; } .modal-footer .btn-block + .btn-block { margin-left: 0; } .modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; } @media (min-width: 768px) { .modal-dialog { width: 600px; margin: 30px auto; } .modal-content { -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); box-shadow: 0 5px 15px rgba(0, 0, 0, .5); } .modal-sm { width: 300px; } } @media (min-width: 992px) { .modal-lg { width: 900px; } } .tooltip { position: absolute; z-index: 1070; display: block; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-weight: normal; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; white-space: normal; filter: alpha(opacity=0); opacity: 0; line-break: auto; } .tooltip.in { filter: alpha(opacity=90); opacity: .9; } .tooltip.top { padding: 5px 0; margin-top: -3px; } .tooltip.right { padding: 0 5px; margin-left: 3px; } .tooltip.bottom { padding: 5px 0; margin-top: 3px; } .tooltip.left { padding: 0 5px; margin-left: -3px; } .tooltip-inner { max-width: 200px; padding: 3px 8px; color: #fff; text-align: center; background-color: #000; border-radius: 4px; } .tooltip-arrow { position: absolute; width: 0; height: 0; border-color: transparent; border-style: solid; } .tooltip.top .tooltip-arrow { bottom: 0; left: 50%; margin-left: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-left .tooltip-arrow { right: 5px; bottom: 0; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.top-right .tooltip-arrow { bottom: 0; left: 5px; margin-bottom: -5px; border-width: 5px 5px 0; border-top-color: #000; } .tooltip.right .tooltip-arrow { top: 50%; left: 0; margin-top: -5px; border-width: 5px 5px 5px 0; border-right-color: #000; } .tooltip.left .tooltip-arrow { top: 50%; right: 0; margin-top: -5px; border-width: 5px 0 5px 5px; border-left-color: #000; } .tooltip.bottom .tooltip-arrow { top: 0; left: 50%; margin-left: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .tooltip.bottom-left .tooltip-arrow { top: 0; right: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .tooltip.bottom-right .tooltip-arrow { top: 0; left: 5px; margin-top: -5px; border-width: 0 5px 5px; border-bottom-color: #000; } .popover { position: absolute; top: 0; left: 0; z-index: 1060; display: none; max-width: 276px; padding: 1px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-style: normal; font-weight: normal; line-height: 1.42857143; text-align: left; text-align: start; text-decoration: none; text-shadow: none; text-transform: none; letter-spacing: normal; word-break: normal; word-spacing: normal; word-wrap: normal; white-space: normal; background-color: #fff; -webkit-background-clip: padding-box; background-clip: padding-box; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .2); border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); line-break: auto; } .popover.top { margin-top: -10px; } .popover.right { margin-left: 10px; } .popover.bottom { margin-top: 10px; } .popover.left { margin-left: -10px; } .popover-title { padding: 8px 14px; margin: 0; font-size: 14px; background-color: #f7f7f7; border-bottom: 1px solid #ebebeb; border-radius: 5px 5px 0 0; } .popover-content { padding: 9px 14px; } .popover > .arrow, .popover > .arrow:after { position: absolute; display: block; width: 0; height: 0; border-color: transparent; border-style: solid; } .popover > .arrow { border-width: 11px; } .popover > .arrow:after { content: ""; border-width: 10px; } .popover.top > .arrow { bottom: -11px; left: 50%; margin-left: -11px; border-top-color: #999; border-top-color: rgba(0, 0, 0, .25); border-bottom-width: 0; } .popover.top > .arrow:after { bottom: 1px; margin-left: -10px; content: " "; border-top-color: #fff; border-bottom-width: 0; } .popover.right > .arrow { top: 50%; left: -11px; margin-top: -11px; border-right-color: #999; border-right-color: rgba(0, 0, 0, .25); border-left-width: 0; } .popover.right > .arrow:after { bottom: -10px; left: 1px; content: " "; border-right-color: #fff; border-left-width: 0; } .popover.bottom > .arrow { top: -11px; left: 50%; margin-left: -11px; border-top-width: 0; border-bottom-color: #999; border-bottom-color: rgba(0, 0, 0, .25); } .popover.bottom > .arrow:after { top: 1px; margin-left: -10px; content: " "; border-top-width: 0; border-bottom-color: #fff; } .popover.left > .arrow { top: 50%; right: -11px; margin-top: -11px; border-right-width: 0; border-left-color: #999; border-left-color: rgba(0, 0, 0, .25); } .popover.left > .arrow:after { right: 1px; bottom: -10px; content: " "; border-right-width: 0; border-left-color: #fff; } .carousel { position: relative; } .carousel-inner { position: relative; width: 100%; overflow: hidden; } .carousel-inner > .item { position: relative; display: none; -webkit-transition: .6s ease-in-out left; -o-transition: .6s ease-in-out left; transition: .6s ease-in-out left; } .carousel-inner > .item > img, .carousel-inner > .item > a > img { line-height: 1; } @media all and (transform-3d), (-webkit-transform-3d) { .carousel-inner > .item { -webkit-transition: -webkit-transform .6s ease-in-out; -o-transition: -o-transform .6s ease-in-out; transition: transform .6s ease-in-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000px; perspective: 1000px; } .carousel-inner > .item.next, .carousel-inner > .item.active.right { left: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } .carousel-inner > .item.prev, .carousel-inner > .item.active.left { left: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active { left: 0; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { display: block; } .carousel-inner > .active { left: 0; } .carousel-inner > .next, .carousel-inner > .prev { position: absolute; top: 0; width: 100%; } .carousel-inner > .next { left: 100%; } .carousel-inner > .prev { left: -100%; } .carousel-inner > .next.left, .carousel-inner > .prev.right { left: 0; } .carousel-inner > .active.left { left: -100%; } .carousel-inner > .active.right { left: 100%; } .carousel-control { position: absolute; top: 0; bottom: 0; left: 0; width: 15%; font-size: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); background-color: rgba(0, 0, 0, 0); filter: alpha(opacity=50); opacity: .5; } .carousel-control.left { background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); background-repeat: repeat-x; } .carousel-control.right { right: 0; left: auto; background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); background-repeat: repeat-x; } .carousel-control:hover, .carousel-control:focus { color: #fff; text-decoration: none; filter: alpha(opacity=90); outline: 0; opacity: .9; } .carousel-control .icon-prev, .carousel-control .icon-next, .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right { position: absolute; top: 50%; z-index: 5; display: inline-block; margin-top: -10px; } .carousel-control .icon-prev, .carousel-control .glyphicon-chevron-left { left: 50%; margin-left: -10px; } .carousel-control .icon-next, .carousel-control .glyphicon-chevron-right { right: 50%; margin-right: -10px; } .carousel-control .icon-prev, .carousel-control .icon-next { width: 20px; height: 20px; font-family: serif; line-height: 1; } .carousel-control .icon-prev:before { content: '\2039'; } .carousel-control .icon-next:before { content: '\203a'; } .carousel-indicators { position: absolute; bottom: 10px; left: 50%; z-index: 15; width: 60%; padding-left: 0; margin-left: -30%; text-align: center; list-style: none; } .carousel-indicators li { display: inline-block; width: 10px; height: 10px; margin: 1px; text-indent: -999px; cursor: pointer; background-color: #000 \9; background-color: rgba(0, 0, 0, 0); border: 1px solid #fff; border-radius: 10px; } .carousel-indicators .active { width: 12px; height: 12px; margin: 0; background-color: #fff; } .carousel-caption { position: absolute; right: 15%; bottom: 20px; left: 15%; z-index: 10; padding-top: 20px; padding-bottom: 20px; color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); } .carousel-caption .btn { text-shadow: none; } @media screen and (min-width: 768px) { .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next { width: 30px; height: 30px; margin-top: -10px; font-size: 30px; } .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { margin-left: -10px; } .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { margin-right: -10px; } .carousel-caption { right: 20%; left: 20%; padding-bottom: 30px; } .carousel-indicators { bottom: 20px; } } .clearfix:before, .clearfix:after, .dl-horizontal dd:before, .dl-horizontal dd:after, .container:before, .container:after, .container-fluid:before, .container-fluid:after, .row:before, .row:after, .form-horizontal .form-group:before, .form-horizontal .form-group:after, .btn-toolbar:before, .btn-toolbar:after, .btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after, .nav:before, .nav:after, .navbar:before, .navbar:after, .navbar-header:before, .navbar-header:after, .navbar-collapse:before, .navbar-collapse:after, .pager:before, .pager:after, .panel-body:before, .panel-body:after, .modal-header:before, .modal-header:after, .modal-footer:before, .modal-footer:after { display: table; content: " "; } .clearfix:after, .dl-horizontal dd:after, .container:after, .container-fluid:after, .row:after, .form-horizontal .form-group:after, .btn-toolbar:after, .btn-group-vertical > .btn-group:after, .nav:after, .navbar:after, .navbar-header:after, .navbar-collapse:after, .pager:after, .panel-body:after, .modal-header:after, .modal-footer:after { clear: both; } .center-block { display: block; margin-right: auto; margin-left: auto; } .pull-right { float: right !important; } .pull-left { float: left !important; } .hide { display: none !important; } .show { display: block !important; } .invisible { visibility: hidden; } .text-hide { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .hidden { display: none !important; } .affix { position: fixed; } @-ms-viewport { width: device-width; } .visible-xs, .visible-sm, .visible-md, .visible-lg { display: none !important; } .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-lg-block, .visible-lg-inline, .visible-lg-inline-block { display: none !important; } @media (max-width: 767px) { .visible-xs { display: block !important; } table.visible-xs { display: table !important; } tr.visible-xs { display: table-row !important; } th.visible-xs, td.visible-xs { display: table-cell !important; } } @media (max-width: 767px) { .visible-xs-block { display: block !important; } } @media (max-width: 767px) { .visible-xs-inline { display: inline !important; } } @media (max-width: 767px) { .visible-xs-inline-block { display: inline-block !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm { display: block !important; } table.visible-sm { display: table !important; } tr.visible-sm { display: table-row !important; } th.visible-sm, td.visible-sm { display: table-cell !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-block { display: block !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-inline { display: inline !important; } } @media (min-width: 768px) and (max-width: 991px) { .visible-sm-inline-block { display: inline-block !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md { display: block !important; } table.visible-md { display: table !important; } tr.visible-md { display: table-row !important; } th.visible-md, td.visible-md { display: table-cell !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-block { display: block !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-inline { display: inline !important; } } @media (min-width: 992px) and (max-width: 1199px) { .visible-md-inline-block { display: inline-block !important; } } @media (min-width: 1200px) { .visible-lg { display: block !important; } table.visible-lg { display: table !important; } tr.visible-lg { display: table-row !important; } th.visible-lg, td.visible-lg { display: table-cell !important; } } @media (min-width: 1200px) { .visible-lg-block { display: block !important; } } @media (min-width: 1200px) { .visible-lg-inline { display: inline !important; } } @media (min-width: 1200px) { .visible-lg-inline-block { display: inline-block !important; } } @media (max-width: 767px) { .hidden-xs { display: none !important; } } @media (min-width: 768px) and (max-width: 991px) { .hidden-sm { display: none !important; } } @media (min-width: 992px) and (max-width: 1199px) { .hidden-md { display: none !important; } } @media (min-width: 1200px) { .hidden-lg { display: none !important; } } .visible-print { display: none !important; } @media print { .visible-print { display: block !important; } table.visible-print { display: table !important; } tr.visible-print { display: table-row !important; } th.visible-print, td.visible-print { display: table-cell !important; } } .visible-print-block { display: none !important; } @media print { .visible-print-block { display: block !important; } } .visible-print-inline { display: none !important; } @media print { .visible-print-inline { display: inline !important; } } .visible-print-inline-block { display: none !important; } @media print { .visible-print-inline-block { display: inline-block !important; } } @media print { .hidden-print { display: none !important; } } /*# sourceMappingURL=bootstrap.css.map */  !"_?https://edumex.co.in/assets/vendor/font-awesome/css/all.min.cssO bplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse- '-.4567_`abcdefghijklmnopqrstuvwxyz{|}~U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1 ,()$+,WNS.base[NS.relative_?https://edumex.co.in/assets/vendor/font-awesome/css/all.min.css/012Z$classnameX$classesUNSURL13XNSObject#AŃ+p89:L^WNS.keysZNS.objects;<=>?@ABCDEFGHIJK NOPQRSTUVWXYZ[\] !"#$%&'()*+\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_Content-EncodingVServer_x-turbo-charged-byWExpires_x-hcdn-cache-status]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rtXtext/css_Thu, 19 Oct 2023 05:05:16 GMT_*1fbe25dd898090eaf048d554246393ee-mum-edge1_upgrade-insecure-requestsRbrThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMTTMISS_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTU19726_ YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERMVFxkbHR8hIyUnKSstL1xDb250ZW50LVR5cGVfEBJ4LWhjZG4tdXBzdHJlYW0tcnRfEBF4LWhjZG4tcmVxdWVzdC1pZF8QF0NvbnRlbnQtU2VjdXJpdHktUG9saWN5XxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJfEBJ4LXR1cmJvLWNoYXJnZWQtYnlXRXhwaXJlc18QE3gtaGNkbi1jYWNoZS1zdGF0dXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRJYdGV4dC9jc3OhFFUwLjAwOaEWXxAqMWZiZTI1ZGQ4OTgwOTBlYWYwNDhkNTU0MjQ2MzkzZWUtbXVtLWVkZ2UxoRhfEBl1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzoRpSYnKhHFRoY2RuoR5ZTGl0ZVNwZWVkoSBfEB1UaHUsIDIzIE5vdiAyMDIzIDEzOjUwOjQwIEdNVKEiVE1JU1OhJF8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChJllob3N0aW5nZXKhKF8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSpVMTk3MjahLFVieXRlc6EuXxAkIjE4OWFlLTY1MzBiOTBjLWY4YmZmMjQ4YzhmNjJlY2Y7YnIioTBfEB1UaHUsIDE5IE9jdCAyMDIzIDA1OjA1OjE2IEdNVAAIACsAOABNAGEAewCOAJUAqgCyAMgA1gDfAOQA8wEBAQYBFAEWAR8BIQEnASkBVgFYAXQBdgF5AXsBgAGCAYwBjgGuAbABtQG3AdAB0gHcAd4B/gIAAgYCCAIOAhACNwI5AAAAAAAAAgEAAAAAAAAAMQAAAAAAAAAAAAAAAAAAAlk=Ubytes_$"189ae-6530b90c-f8bff248c8f62ecf;br"U0.009/0_NSMutableDictionary3\NSDictionary/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd!CJlor5:ENTW`ikmt|$>QXmu=Y\ak    ) - A OO/*! * Font Awesome Free 6.1.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) * Copyright 2022 Fonticons, Inc. */ .fa{font-family:var(--fa-style-family,"Font Awesome 6 Free");font-weight:var(--fa-style,900)}.fa,.fa-brands,.fa-duotone,.fa-light,.fa-regular,.fa-solid,.fa-thin,.fab,.fad,.fal,.far,.fas,.fat{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.08333em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.07143em;vertical-align:.05357em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.04167em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width, 2em)*-1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-radius:var(--fa-border-radius,.1em);border:var(--fa-border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade,.fa-fade{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s)}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-shake,.fa-spin{-webkit-animation-delay:var(--fa-animation-delay,0);animation-delay:var(--fa-animation-delay,0);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}to{-webkit-transform:scale(1) translateY(0);transform:scale(1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}8%,24%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}40%,to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,none));transform:rotate(var(--fa-rotate-angle,none))}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%;z-index:var(--fa-stack-z-index,auto)}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-0:before{content:"\30"}.fa-1:before{content:"\31"}.fa-2:before{content:"\32"}.fa-3:before{content:"\33"}.fa-4:before{content:"\34"}.fa-5:before{content:"\35"}.fa-6:before{content:"\36"}.fa-7:before{content:"\37"}.fa-8:before{content:"\38"}.fa-9:before{content:"\39"}.fa-a:before{content:"\41"}.fa-address-book:before,.fa-contact-book:before{content:"\f2b9"}.fa-address-card:before,.fa-contact-card:before,.fa-vcard:before{content:"\f2bb"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-anchor:before{content:"\f13d"}.fa-anchor-circle-check:before{content:"\e4aa"}.fa-anchor-circle-exclamation:before{content:"\e4ab"}.fa-anchor-circle-xmark:before{content:"\e4ac"}.fa-anchor-lock:before{content:"\e4ad"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-double-down:before,.fa-angles-down:before{content:"\f103"}.fa-angle-double-left:before,.fa-angles-left:before{content:"\f100"}.fa-angle-double-right:before,.fa-angles-right:before{content:"\f101"}.fa-angle-double-up:before,.fa-angles-up:before{content:"\f102"}.fa-ankh:before{content:"\f644"}.fa-apple-alt:before,.fa-apple-whole:before{content:"\f5d1"}.fa-archway:before{content:"\f557"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-down-1-9:before,.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:"\f162"}.fa-arrow-down-9-1:before,.fa-sort-numeric-desc:before,.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-arrow-down-a-z:before,.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:"\f15d"}.fa-arrow-down-long:before,.fa-long-arrow-down:before{content:"\f175"}.fa-arrow-down-short-wide:before,.fa-sort-amount-desc:before,.fa-sort-amount-down-alt:before{content:"\f884"}.fa-arrow-down-up-across-line:before{content:"\e4af"}.fa-arrow-down-up-lock:before{content:"\e4b0"}.fa-arrow-down-wide-short:before,.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:"\f160"}.fa-arrow-down-z-a:before,.fa-sort-alpha-desc:before,.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-left-long:before,.fa-long-arrow-left:before{content:"\f177"}.fa-arrow-pointer:before,.fa-mouse-pointer:before{content:"\f245"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-right-arrow-left:before,.fa-exchange:before{content:"\f0ec"}.fa-arrow-right-from-bracket:before,.fa-sign-out:before{content:"\f08b"}.fa-arrow-right-long:before,.fa-long-arrow-right:before{content:"\f178"}.fa-arrow-right-to-bracket:before,.fa-sign-in:before{content:"\f090"}.fa-arrow-right-to-city:before{content:"\e4b3"}.fa-arrow-left-rotate:before,.fa-arrow-rotate-back:before,.fa-arrow-rotate-backward:before,.fa-arrow-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-arrow-right-rotate:before,.fa-arrow-rotate-forward:before,.fa-arrow-rotate-right:before,.fa-redo:before{content:"\f01e"}.fa-arrow-trend-down:before{content:"\e097"}.fa-arrow-trend-up:before{content:"\e098"}.fa-arrow-turn-down:before,.fa-level-down:before{content:"\f149"}.fa-arrow-turn-up:before,.fa-level-up:before{content:"\f148"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-up-1-9:before,.fa-sort-numeric-up:before{content:"\f163"}.fa-arrow-up-9-1:before,.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-arrow-up-a-z:before,.fa-sort-alpha-up:before{content:"\f15e"}.fa-arrow-up-from-bracket:before{content:"\e09a"}.fa-arrow-up-from-ground-water:before{content:"\e4b5"}.fa-arrow-up-from-water-pump:before{content:"\e4b6"}.fa-arrow-up-long:before,.fa-long-arrow-up:before{content:"\f176"}.fa-arrow-up-right-dots:before{content:"\e4b7"}.fa-arrow-up-right-from-square:before,.fa-external-link:before{content:"\f08e"}.fa-arrow-up-short-wide:before,.fa-sort-amount-up-alt:before{content:"\f885"}.fa-arrow-up-wide-short:before,.fa-sort-amount-up:before{content:"\f161"}.fa-arrow-up-z-a:before,.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-arrows-down-to-line:before{content:"\e4b8"}.fa-arrows-down-to-people:before{content:"\e4b9"}.fa-arrows-h:before,.fa-arrows-left-right:before{content:"\f07e"}.fa-arrows-left-right-to-line:before{content:"\e4ba"}.fa-arrows-rotate:before,.fa-refresh:before,.fa-sync:before{content:"\f021"}.fa-arrows-spin:before{content:"\e4bb"}.fa-arrows-split-up-and-left:before{content:"\e4bc"}.fa-arrows-to-circle:before{content:"\e4bd"}.fa-arrows-to-dot:before{content:"\e4be"}.fa-arrows-to-eye:before{content:"\e4bf"}.fa-arrows-turn-right:before{content:"\e4c0"}.fa-arrows-turn-to-dots:before{content:"\e4c1"}.fa-arrows-up-down:before,.fa-arrows-v:before{content:"\f07d"}.fa-arrows-up-down-left-right:before,.fa-arrows:before{content:"\f047"}.fa-arrows-up-to-line:before{content:"\e4c2"}.fa-asterisk:before{content:"\2a"}.fa-at:before{content:"\40"}.fa-atom:before{content:"\f5d2"}.fa-audio-description:before{content:"\f29e"}.fa-austral-sign:before{content:"\e0a9"}.fa-award:before{content:"\f559"}.fa-b:before{content:"\42"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before,.fa-carriage-baby:before{content:"\f77d"}.fa-backward:before{content:"\f04a"}.fa-backward-fast:before,.fa-fast-backward:before{content:"\f049"}.fa-backward-step:before,.fa-step-backward:before{content:"\f048"}.fa-bacon:before{content:"\f7e5"}.fa-bacteria:before{content:"\e059"}.fa-bacterium:before{content:"\e05a"}.fa-bag-shopping:before,.fa-shopping-bag:before{content:"\f290"}.fa-bahai:before{content:"\f666"}.fa-baht-sign:before{content:"\e0ac"}.fa-ban:before,.fa-cancel:before{content:"\f05e"}.fa-ban-smoking:before,.fa-smoking-ban:before{content:"\f54d"}.fa-band-aid:before,.fa-bandage:before{content:"\f462"}.fa-barcode:before{content:"\f02a"}.fa-bars:before,.fa-navicon:before{content:"\f0c9"}.fa-bars-progress:before,.fa-tasks-alt:before{content:"\f828"}.fa-bars-staggered:before,.fa-reorder:before,.fa-stream:before{content:"\f550"}.fa-baseball-ball:before,.fa-baseball:before{content:"\f433"}.fa-baseball-bat-ball:before{content:"\f432"}.fa-basket-shopping:before,.fa-shopping-basket:before{content:"\f291"}.fa-basketball-ball:before,.fa-basketball:before{content:"\f434"}.fa-bath:before,.fa-bathtub:before{content:"\f2cd"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-battery-5:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-half:before{content:"\f242"}.fa-battery-2:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-4:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-bed:before{content:"\f236"}.fa-bed-pulse:before,.fa-procedures:before{content:"\f487"}.fa-beer-mug-empty:before,.fa-beer:before{content:"\f0fc"}.fa-bell:before{content:"\f0f3"}.fa-bell-concierge:before,.fa-concierge-bell:before{content:"\f562"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bicycle:before{content:"\f206"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-bitcoin-sign:before{content:"\e0b4"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blog:before{content:"\f781"}.fa-bold:before{content:"\f032"}.fa-bolt:before,.fa-zap:before{content:"\f0e7"}.fa-bolt-lightning:before{content:"\e0b7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-atlas:before,.fa-book-atlas:before{content:"\f558"}.fa-bible:before,.fa-book-bible:before{content:"\f647"}.fa-book-bookmark:before{content:"\e0bb"}.fa-book-journal-whills:before,.fa-journal-whills:before{content:"\f66a"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-open-reader:before,.fa-book-reader:before{content:"\f5da"}.fa-book-quran:before,.fa-quran:before{content:"\f687"}.fa-book-dead:before,.fa-book-skull:before{content:"\f6b7"}.fa-bookmark:before{content:"\f02e"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before,.fa-border-top-left:before{content:"\f853"}.fa-bore-hole:before{content:"\e4c3"}.fa-bottle-droplet:before{content:"\e4c4"}.fa-bottle-water:before{content:"\e4c5"}.fa-bowl-food:before{content:"\e4c6"}.fa-bowl-rice:before{content:"\e2eb"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-archive:before,.fa-box-archive:before{content:"\f187"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\e05b"}.fa-boxes-packing:before{content:"\e4c7"}.fa-boxes-alt:before,.fa-boxes-stacked:before,.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-brazilian-real-sign:before{content:"\e46c"}.fa-bread-slice:before{content:"\f7ec"}.fa-bridge:before{content:"\e4c8"}.fa-bridge-circle-check:before{content:"\e4c9"}.fa-bridge-circle-exclamation:before{content:"\e4ca"}.fa-bridge-circle-xmark:before{content:"\e4cb"}.fa-bridge-lock:before{content:"\e4cc"}.fa-bridge-water:before{content:"\e4ce"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broom:before{content:"\f51a"}.fa-broom-ball:before,.fa-quidditch-broom-ball:before,.fa-quidditch:before{content:"\f458"}.fa-brush:before{content:"\f55d"}.fa-bucket:before{content:"\e4cf"}.fa-bug:before{content:"\f188"}.fa-bug-slash:before{content:"\e490"}.fa-bugs:before{content:"\e4d0"}.fa-building:before{content:"\f1ad"}.fa-building-circle-arrow-right:before{content:"\e4d1"}.fa-building-circle-check:before{content:"\e4d2"}.fa-building-circle-exclamation:before{content:"\e4d3"}.fa-building-circle-xmark:before{content:"\e4d4"}.fa-bank:before,.fa-building-columns:before,.fa-institution:before,.fa-museum:before,.fa-university:before{content:"\f19c"}.fa-building-flag:before{content:"\e4d5"}.fa-building-lock:before{content:"\e4d6"}.fa-building-ngo:before{content:"\e4d7"}.fa-building-shield:before{content:"\e4d8"}.fa-building-un:before{content:"\e4d9"}.fa-building-user:before{content:"\e4da"}.fa-building-wheat:before{content:"\e4db"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burger:before,.fa-hamburger:before{content:"\f805"}.fa-burst:before{content:"\e4dc"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before,.fa-bus-simple:before{content:"\f55e"}.fa-briefcase-clock:before,.fa-business-time:before{content:"\f64a"}.fa-c:before{content:"\43"}.fa-birthday-cake:before,.fa-cake-candles:before,.fa-cake:before{content:"\f1fd"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-alt:before,.fa-calendar-days:before{content:"\f073"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-week:before{content:"\f784"}.fa-calendar-times:before,.fa-calendar-xmark:before{content:"\f273"}.fa-camera-alt:before,.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-camera-rotate:before{content:"\e0d8"}.fa-campground:before{content:"\f6bb"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-battery-car:before,.fa-car-battery:before{content:"\f5df"}.fa-car-burst:before,.fa-car-crash:before{content:"\f5e1"}.fa-car-on:before{content:"\e4dd"}.fa-car-alt:before,.fa-car-rear:before{content:"\f5de"}.fa-car-side:before{content:"\f5e4"}.fa-car-tunnel:before{content:"\e4de"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-flatbed:before,.fa-dolly-flatbed:before{content:"\f474"}.fa-cart-flatbed-suitcase:before,.fa-luggage-cart:before{content:"\f59d"}.fa-cart-plus:before{content:"\f217"}.fa-cart-shopping:before,.fa-shopping-cart:before{content:"\f07a"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cedi-sign:before{content:"\e0df"}.fa-cent-sign:before{content:"\e3f5"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-blackboard:before,.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before,.fa-chalkboard-user:before{content:"\f51c"}.fa-champagne-glasses:before,.fa-glass-cheers:before{content:"\f79f"}.fa-charging-station:before{content:"\f5e7"}.fa-area-chart:before,.fa-chart-area:before{content:"\f1fe"}.fa-bar-chart:before,.fa-chart-bar:before{content:"\f080"}.fa-chart-column:before{content:"\e0e3"}.fa-chart-gantt:before{content:"\e0e4"}.fa-chart-line:before,.fa-line-chart:before{content:"\f201"}.fa-chart-pie:before,.fa-pie-chart:before{content:"\f200"}.fa-chart-simple:before{content:"\e473"}.fa-check:before{content:"\f00c"}.fa-check-double:before{content:"\f560"}.fa-check-to-slot:before,.fa-vote-yea:before{content:"\f772"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-child-dress:before{content:"\e59c"}.fa-child-reaching:before{content:"\e59d"}.fa-child-rifle:before{content:"\e4e0"}.fa-children:before{content:"\e4e1"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-arrow-circle-down:before,.fa-circle-arrow-down:before{content:"\f0ab"}.fa-arrow-circle-left:before,.fa-circle-arrow-left:before{content:"\f0a8"}.fa-arrow-circle-right:before,.fa-circle-arrow-right:before{content:"\f0a9"}.fa-arrow-circle-up:before,.fa-circle-arrow-up:before{content:"\f0aa"}.fa-check-circle:before,.fa-circle-check:before{content:"\f058"}.fa-chevron-circle-down:before,.fa-circle-chevron-down:before{content:"\f13a"}.fa-chevron-circle-left:before,.fa-circle-chevron-left:before{content:"\f137"}.fa-chevron-circle-right:before,.fa-circle-chevron-right:before{content:"\f138"}.fa-chevron-circle-up:before,.fa-circle-chevron-up:before{content:"\f139"}.fa-circle-dollar-to-slot:before,.fa-donate:before{content:"\f4b9"}.fa-circle-dot:before,.fa-dot-circle:before{content:"\f192"}.fa-arrow-alt-circle-down:before,.fa-circle-down:before{content:"\f358"}.fa-circle-exclamation:before,.fa-exclamation-circle:before{content:"\f06a"}.fa-circle-h:before,.fa-hospital-symbol:before{content:"\f47e"}.fa-adjust:before,.fa-circle-half-stroke:before{content:"\f042"}.fa-circle-info:before,.fa-info-circle:before{content:"\f05a"}.fa-arrow-alt-circle-left:before,.fa-circle-left:before{content:"\f359"}.fa-circle-minus:before,.fa-minus-circle:before{content:"\f056"}.fa-circle-nodes:before{content:"\e4e2"}.fa-circle-notch:before{content:"\f1ce"}.fa-circle-pause:before,.fa-pause-circle:before{content:"\f28b"}.fa-circle-play:before,.fa-play-circle:before{content:"\f144"}.fa-circle-plus:before,.fa-plus-circle:before{content:"\f055"}.fa-circle-question:before,.fa-question-circle:before{content:"\f059"}.fa-circle-radiation:before,.fa-radiation-alt:before{content:"\f7ba"}.fa-arrow-alt-circle-right:before,.fa-circle-right:before{content:"\f35a"}.fa-circle-stop:before,.fa-stop-circle:before{content:"\f28d"}.fa-arrow-alt-circle-up:before,.fa-circle-up:before{content:"\f35b"}.fa-circle-user:before,.fa-user-circle:before{content:"\f2bd"}.fa-circle-xmark:before,.fa-times-circle:before,.fa-xmark-circle:before{content:"\f057"}.fa-city:before{content:"\f64f"}.fa-clapperboard:before{content:"\e131"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clipboard-question:before{content:"\e4e3"}.fa-clipboard-user:before{content:"\f7f3"}.fa-clock-four:before,.fa-clock:before{content:"\f017"}.fa-clock-rotate-left:before,.fa-history:before{content:"\f1da"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-arrow-down:before,.fa-cloud-download-alt:before,.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-arrow-up:before,.fa-cloud-upload-alt:before,.fa-cloud-upload:before{content:"\f0ee"}.fa-cloud-bolt:before,.fa-thunderstorm:before{content:"\f76c"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-showers-water:before{content:"\e4e4"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-clover:before{content:"\e139"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-code-commit:before{content:"\f386"}.fa-code-compare:before{content:"\e13a"}.fa-code-fork:before{content:"\e13b"}.fa-code-merge:before{content:"\f387"}.fa-code-pull-request:before{content:"\e13c"}.fa-coins:before{content:"\f51e"}.fa-colon-sign:before{content:"\e140"}.fa-comment:before{content:"\f075"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before,.fa-commenting:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comment-sms:before,.fa-sms:before{content:"\f7cd"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compass-drafting:before,.fa-drafting-compass:before{content:"\f568"}.fa-compress:before{content:"\f066"}.fa-computer:before{content:"\e4e5"}.fa-computer-mouse:before,.fa-mouse:before{content:"\f8cc"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-couch:before{content:"\f4b8"}.fa-cow:before{content:"\f6c8"}.fa-credit-card-alt:before,.fa-credit-card:before{content:"\f09d"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before,.fa-crop-simple:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-cruzeiro-sign:before{content:"\e152"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cubes-stacked:before{content:"\e4e6"}.fa-d:before{content:"\44"}.fa-database:before{content:"\f1c0"}.fa-backspace:before,.fa-delete-left:before{content:"\f55a"}.fa-democrat:before{content:"\f747"}.fa-desktop-alt:before,.fa-desktop:before{content:"\f390"}.fa-dharmachakra:before{content:"\f655"}.fa-diagram-next:before{content:"\e476"}.fa-diagram-predecessor:before{content:"\e477"}.fa-diagram-project:before,.fa-project-diagram:before{content:"\f542"}.fa-diagram-successor:before{content:"\e47a"}.fa-diamond:before{content:"\f219"}.fa-diamond-turn-right:before,.fa-directions:before{content:"\f5eb"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-disease:before{content:"\f7fa"}.fa-display:before{content:"\e163"}.fa-divide:before{content:"\f529"}.fa-dna:before{content:"\f471"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before,.fa-dollar:before,.fa-usd:before{content:"\24"}.fa-dolly-box:before,.fa-dolly:before{content:"\f472"}.fa-dong-sign:before{content:"\e169"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dove:before{content:"\f4ba"}.fa-compress-alt:before,.fa-down-left-and-up-right-to-center:before{content:"\f422"}.fa-down-long:before,.fa-long-arrow-alt-down:before{content:"\f309"}.fa-download:before{content:"\f019"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-droplet:before,.fa-tint:before{content:"\f043"}.fa-droplet-slash:before,.fa-tint-slash:before{content:"\f5c7"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-e:before{content:"\45"}.fa-deaf:before,.fa-deafness:before,.fa-ear-deaf:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-assistive-listening-systems:before,.fa-ear-listen:before{content:"\f2a2"}.fa-earth-africa:before,.fa-globe-africa:before{content:"\f57c"}.fa-earth-america:before,.fa-earth-americas:before,.fa-earth:before,.fa-globe-americas:before{content:"\f57d"}.fa-earth-asia:before,.fa-globe-asia:before{content:"\f57e"}.fa-earth-europe:before,.fa-globe-europe:before{content:"\f7a2"}.fa-earth-oceania:before,.fa-globe-oceania:before{content:"\e47b"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elevator:before{content:"\e16d"}.fa-ellipsis-h:before,.fa-ellipsis:before{content:"\f141"}.fa-ellipsis-v:before,.fa-ellipsis-vertical:before{content:"\f142"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-circle-check:before{content:"\e4e8"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelopes-bulk:before,.fa-mail-bulk:before{content:"\f674"}.fa-equals:before{content:"\3d"}.fa-eraser:before{content:"\f12d"}.fa-ethernet:before{content:"\f796"}.fa-eur:before,.fa-euro-sign:before,.fa-euro:before{content:"\f153"}.fa-exclamation:before{content:"\21"}.fa-expand:before{content:"\f065"}.fa-explosion:before{content:"\e4e9"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper-empty:before,.fa-eye-dropper:before,.fa-eyedropper:before{content:"\f1fb"}.fa-eye-low-vision:before,.fa-low-vision:before{content:"\f2a8"}.fa-eye-slash:before{content:"\f070"}.fa-f:before{content:"\46"}.fa-angry:before,.fa-face-angry:before{content:"\f556"}.fa-dizzy:before,.fa-face-dizzy:before{content:"\f567"}.fa-face-flushed:before,.fa-flushed:before{content:"\f579"}.fa-face-frown:before,.fa-frown:before{content:"\f119"}.fa-face-frown-open:before,.fa-frown-open:before{content:"\f57a"}.fa-face-grimace:before,.fa-grimace:before{content:"\f57f"}.fa-face-grin:before,.fa-grin:before{content:"\f580"}.fa-face-grin-beam:before,.fa-grin-beam:before{content:"\f582"}.fa-face-grin-beam-sweat:before,.fa-grin-beam-sweat:before{content:"\f583"}.fa-face-grin-hearts:before,.fa-grin-hearts:before{content:"\f584"}.fa-face-grin-squint:before,.fa-grin-squint:before{content:"\f585"}.fa-face-grin-squint-tears:before,.fa-grin-squint-tears:before{content:"\f586"}.fa-face-grin-stars:before,.fa-grin-stars:before{content:"\f587"}.fa-face-grin-tears:before,.fa-grin-tears:before{content:"\f588"}.fa-face-grin-tongue:before,.fa-grin-tongue:before{content:"\f589"}.fa-face-grin-tongue-squint:before,.fa-grin-tongue-squint:before{content:"\f58a"}.fa-face-grin-tongue-wink:before,.fa-grin-tongue-wink:before{content:"\f58b"}.fa-face-grin-wide:before,.fa-grin-alt:before{content:"\f581"}.fa-face-grin-wink:before,.fa-grin-wink:before{content:"\f58c"}.fa-face-kiss:before,.fa-kiss:before{content:"\f596"}.fa-face-kiss-beam:before,.fa-kiss-beam:before{content:"\f597"}.fa-face-kiss-wink-heart:before,.fa-kiss-wink-heart:before{content:"\f598"}.fa-face-laugh:before,.fa-laugh:before{content:"\f599"}.fa-face-laugh-beam:before,.fa-laugh-beam:before{content:"\f59a"}.fa-face-laugh-squint:before,.fa-laugh-squint:before{content:"\f59b"}.fa-face-laugh-wink:before,.fa-laugh-wink:before{content:"\f59c"}.fa-face-meh:before,.fa-meh:before{content:"\f11a"}.fa-face-meh-blank:before,.fa-meh-blank:before{content:"\f5a4"}.fa-face-rolling-eyes:before,.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-face-sad-cry:before,.fa-sad-cry:before{content:"\f5b3"}.fa-face-sad-tear:before,.fa-sad-tear:before{content:"\f5b4"}.fa-face-smile:before,.fa-smile:before{content:"\f118"}.fa-face-smile-beam:before,.fa-smile-beam:before{content:"\f5b8"}.fa-face-smile-wink:before,.fa-smile-wink:before{content:"\f4da"}.fa-face-surprise:before,.fa-surprise:before{content:"\f5c2"}.fa-face-tired:before,.fa-tired:before{content:"\f5c8"}.fa-fan:before{content:"\f863"}.fa-faucet:before{content:"\e005"}.fa-faucet-drip:before{content:"\e006"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before,.fa-feather-pointed:before{content:"\f56b"}.fa-ferry:before{content:"\e4ea"}.fa-file:before{content:"\f15b"}.fa-file-arrow-down:before,.fa-file-download:before{content:"\f56d"}.fa-file-arrow-up:before,.fa-file-upload:before{content:"\f574"}.fa-file-audio:before{content:"\f1c7"}.fa-file-circle-check:before{content:"\e493"}.fa-file-circle-exclamation:before{content:"\e4eb"}.fa-file-circle-minus:before{content:"\e4ed"}.fa-file-circle-plus:before{content:"\e4ee"}.fa-file-circle-question:before{content:"\e4ef"}.fa-file-circle-xmark:before{content:"\e494"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-excel:before{content:"\f1c3"}.fa-arrow-right-from-file:before,.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-arrow-right-to-file:before,.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-alt:before,.fa-file-lines:before,.fa-file-text:before{content:"\f15c"}.fa-file-medical:before{content:"\f477"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-edit:before,.fa-file-pen:before{content:"\f31c"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-shield:before{content:"\e4f0"}.fa-file-signature:before{content:"\f573"}.fa-file-video:before{content:"\f1c8"}.fa-file-medical-alt:before,.fa-file-waveform:before{content:"\f478"}.fa-file-word:before{content:"\f1c2"}.fa-file-archive:before,.fa-file-zipper:before{content:"\f1c6"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-filter-circle-dollar:before,.fa-funnel-dollar:before{content:"\f662"}.fa-filter-circle-xmark:before{content:"\e17b"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-burner:before{content:"\e4f1"}.fa-fire-extinguisher:before{content:"\f134"}.fa-fire-alt:before,.fa-fire-flame-curved:before{content:"\f7e4"}.fa-burn:before,.fa-fire-flame-simple:before{content:"\f46a"}.fa-fish:before{content:"\f578"}.fa-fish-fins:before{content:"\e4f2"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flask-vial:before{content:"\e4f3"}.fa-floppy-disk:before,.fa-save:before{content:"\f0c7"}.fa-florin-sign:before{content:"\e184"}.fa-folder-blank:before,.fa-folder:before{content:"\f07b"}.fa-folder-closed:before{content:"\e185"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-folder-tree:before{content:"\f802"}.fa-font:before{content:"\f031"}.fa-football-ball:before,.fa-football:before{content:"\f44e"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before,.fa-forward-fast:before{content:"\f050"}.fa-forward-step:before,.fa-step-forward:before{content:"\f051"}.fa-franc-sign:before{content:"\e18f"}.fa-frog:before{content:"\f52e"}.fa-futbol-ball:before,.fa-futbol:before,.fa-soccer-ball:before{content:"\f1e3"}.fa-g:before{content:"\47"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-dashboard:before,.fa-gauge-med:before,.fa-gauge:before,.fa-tachometer-alt-average:before{content:"\f624"}.fa-gauge-high:before,.fa-tachometer-alt-fast:before,.fa-tachometer-alt:before{content:"\f625"}.fa-gauge-simple-med:before,.fa-gauge-simple:before,.fa-tachometer-average:before{content:"\f629"}.fa-gauge-simple-high:before,.fa-tachometer-fast:before,.fa-tachometer:before{content:"\f62a"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-glass-water:before{content:"\e4f4"}.fa-glass-water-droplet:before{content:"\e4f5"}.fa-glasses:before{content:"\f530"}.fa-globe:before{content:"\f0ac"}.fa-golf-ball-tee:before,.fa-golf-ball:before{content:"\f450"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-greater-than:before{content:"\3e"}.fa-greater-than-equal:before{content:"\f532"}.fa-grip-horizontal:before,.fa-grip:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-group-arrows-rotate:before{content:"\e4f6"}.fa-guarani-sign:before{content:"\e19a"}.fa-guitar:before{content:"\f7a6"}.fa-gun:before{content:"\e19b"}.fa-h:before{content:"\48"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-paper:before,.fa-hand:before{content:"\f256"}.fa-hand-back-fist:before,.fa-hand-rock:before{content:"\f255"}.fa-allergies:before,.fa-hand-dots:before{content:"\f461"}.fa-fist-raised:before,.fa-hand-fist:before{content:"\f6de"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-dollar:before,.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-droplet:before,.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-holding-hand:before{content:"\e4f7"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\e05c"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\e05d"}.fa-hand-spock:before{content:"\f259"}.fa-handcuffs:before{content:"\e4f8"}.fa-hands:before,.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before,.fa-hands-american-sign-language-interpreting:before,.fa-hands-asl-interpreting:before{content:"\f2a3"}.fa-hands-bound:before{content:"\e4f9"}.fa-hands-bubbles:before,.fa-hands-wash:before{content:"\e05e"}.fa-hands-clapping:before{content:"\e1a8"}.fa-hands-holding:before{content:"\f4c2"}.fa-hands-holding-child:before{content:"\e4fa"}.fa-hands-holding-circle:before{content:"\e4fb"}.fa-hands-praying:before,.fa-praying-hands:before{content:"\f684"}.fa-handshake:before{content:"\f2b5"}.fa-hands-helping:before,.fa-handshake-angle:before{content:"\f4c4"}.fa-handshake-alt:before,.fa-handshake-simple:before{content:"\f4c6"}.fa-handshake-alt-slash:before,.fa-handshake-simple-slash:before{content:"\e05f"}.fa-handshake-slash:before{content:"\e060"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-drive:before,.fa-hdd:before{content:"\f0a0"}.fa-hashtag:before{content:"\23"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-head-side-cough:before{content:"\e061"}.fa-head-side-cough-slash:before{content:"\e062"}.fa-head-side-mask:before{content:"\e063"}.fa-head-side-virus:before{content:"\e064"}.fa-header:before,.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before,.fa-headphones-simple:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-circle-bolt:before{content:"\e4fc"}.fa-heart-circle-check:before{content:"\e4fd"}.fa-heart-circle-exclamation:before{content:"\e4fe"}.fa-heart-circle-minus:before{content:"\e4ff"}.fa-heart-circle-plus:before{content:"\e500"}.fa-heart-circle-xmark:before{content:"\e501"}.fa-heart-broken:before,.fa-heart-crack:before{content:"\f7a9"}.fa-heart-pulse:before,.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-helicopter-symbol:before{content:"\e502"}.fa-hard-hat:before,.fa-hat-hard:before,.fa-helmet-safety:before{content:"\f807"}.fa-helmet-un:before{content:"\e503"}.fa-highlighter:before{content:"\f591"}.fa-hill-avalanche:before{content:"\e507"}.fa-hill-rockslide:before{content:"\e508"}.fa-hippo:before{content:"\f6ed"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital-alt:before,.fa-hospital-wide:before,.fa-hospital:before{content:"\f0f8"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub-person:before,.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hourglass-2:before,.fa-hourglass-half:before,.fa-hourglass:before{content:"\f254"}.fa-hourglass-empty:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-home-alt:before,.fa-home-lg-alt:before,.fa-home:before,.fa-house:before{content:"\f015"}.fa-home-lg:before,.fa-house-chimney:before{content:"\e3af"}.fa-house-chimney-crack:before,.fa-house-damage:before{content:"\f6f1"}.fa-clinic-medical:before,.fa-house-chimney-medical:before{content:"\f7f2"}.fa-house-chimney-user:before{content:"\e065"}.fa-house-chimney-window:before{content:"\e00d"}.fa-house-circle-check:before{content:"\e509"}.fa-house-circle-exclamation:before{content:"\e50a"}.fa-house-circle-xmark:before{content:"\e50b"}.fa-house-crack:before{content:"\e3b1"}.fa-house-fire:before{content:"\e50c"}.fa-house-flag:before{content:"\e50d"}.fa-house-flood-water:before{content:"\e50e"}.fa-house-flood-water-circle-arrow-right:before{content:"\e50f"}.fa-house-laptop:before,.fa-laptop-house:before{content:"\e066"}.fa-house-lock:before{content:"\e510"}.fa-house-medical:before{content:"\e3b2"}.fa-house-medical-circle-check:before{content:"\e511"}.fa-house-medical-circle-exclamation:before{content:"\e512"}.fa-house-medical-circle-xmark:before{content:"\e513"}.fa-house-medical-flag:before{content:"\e514"}.fa-house-signal:before{content:"\e012"}.fa-house-tsunami:before{content:"\e515"}.fa-home-user:before,.fa-house-user:before{content:"\e1b0"}.fa-hryvnia-sign:before,.fa-hryvnia:before{content:"\f6f2"}.fa-hurricane:before{content:"\f751"}.fa-i:before{content:"\49"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-heart-music-camera-bolt:before,.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before,.fa-id-card-clip:before{content:"\f47f"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-image-portrait:before,.fa-portrait:before{content:"\f3e0"}.fa-images:before{content:"\f302"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-indian-rupee-sign:before,.fa-indian-rupee:before,.fa-inr:before{content:"\e1bc"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-italic:before{content:"\f033"}.fa-j:before{content:"\4a"}.fa-jar:before{content:"\e516"}.fa-jar-wheat:before{content:"\e517"}.fa-jedi:before{content:"\f669"}.fa-fighter-jet:before,.fa-jet-fighter:before{content:"\f0fb"}.fa-jet-fighter-up:before{content:"\e518"}.fa-joint:before{content:"\f595"}.fa-jug-detergent:before{content:"\e519"}.fa-k:before{content:"\4b"}.fa-kaaba:before{content:"\f66b"}.fa-key:before{content:"\f084"}.fa-keyboard:before{content:"\f11c"}.fa-khanda:before{content:"\f66d"}.fa-kip-sign:before{content:"\e1c4"}.fa-first-aid:before,.fa-kit-medical:before{content:"\f479"}.fa-kitchen-set:before{content:"\e51a"}.fa-kiwi-bird:before{content:"\f535"}.fa-l:before{content:"\4c"}.fa-land-mine-on:before{content:"\e51b"}.fa-landmark:before{content:"\f66f"}.fa-landmark-alt:before,.fa-landmark-dome:before{content:"\f752"}.fa-landmark-flag:before{content:"\e51c"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-file:before{content:"\e51d"}.fa-laptop-medical:before{content:"\f812"}.fa-lari-sign:before{content:"\e1c8"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-left-long:before,.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-arrows-alt-h:before,.fa-left-right:before{content:"\f337"}.fa-lemon:before{content:"\f094"}.fa-less-than:before{content:"\3c"}.fa-less-than-equal:before{content:"\f537"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-lines-leaning:before{content:"\e51e"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-chain-broken:before,.fa-chain-slash:before,.fa-link-slash:before,.fa-unlink:before{content:"\f127"}.fa-lira-sign:before{content:"\f195"}.fa-list-squares:before,.fa-list:before{content:"\f03a"}.fa-list-check:before,.fa-tasks:before{content:"\f0ae"}.fa-list-1-2:before,.fa-list-numeric:before,.fa-list-ol:before{content:"\f0cb"}.fa-list-dots:before,.fa-list-ul:before{content:"\f0ca"}.fa-litecoin-sign:before{content:"\e1d3"}.fa-location-arrow:before{content:"\f124"}.fa-location-crosshairs:before,.fa-location:before{content:"\f601"}.fa-location-dot:before,.fa-map-marker-alt:before{content:"\f3c5"}.fa-location-pin:before,.fa-map-marker:before{content:"\f041"}.fa-location-pin-lock:before{content:"\e51f"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-locust:before{content:"\e520"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\e067"}.fa-m:before{content:"\4d"}.fa-magnet:before{content:"\f076"}.fa-magnifying-glass:before,.fa-search:before{content:"\f002"}.fa-magnifying-glass-arrow-right:before{content:"\e521"}.fa-magnifying-glass-chart:before{content:"\e522"}.fa-magnifying-glass-dollar:before,.fa-search-dollar:before{content:"\f688"}.fa-magnifying-glass-location:before,.fa-search-location:before{content:"\f689"}.fa-magnifying-glass-minus:before,.fa-search-minus:before{content:"\f010"}.fa-magnifying-glass-plus:before,.fa-search-plus:before{content:"\f00e"}.fa-manat-sign:before{content:"\e1d5"}.fa-map:before{content:"\f279"}.fa-map-location:before,.fa-map-marked:before{content:"\f59f"}.fa-map-location-dot:before,.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-pin:before{content:"\f276"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-and-venus:before{content:"\f224"}.fa-mars-and-venus-burst:before{content:"\e523"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before,.fa-mars-stroke-right:before{content:"\f22b"}.fa-mars-stroke-up:before,.fa-mars-stroke-v:before{content:"\f22a"}.fa-glass-martini-alt:before,.fa-martini-glass:before{content:"\f57b"}.fa-cocktail:before,.fa-martini-glass-citrus:before{content:"\f561"}.fa-glass-martini:before,.fa-martini-glass-empty:before{content:"\f000"}.fa-mask:before{content:"\f6fa"}.fa-mask-face:before{content:"\e1d7"}.fa-mask-ventilator:before{content:"\e524"}.fa-masks-theater:before,.fa-theater-masks:before{content:"\f630"}.fa-mattress-pillow:before{content:"\e525"}.fa-expand-arrows-alt:before,.fa-maximize:before{content:"\f31e"}.fa-medal:before{content:"\f5a2"}.fa-memory:before{content:"\f538"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-comment-alt:before,.fa-message:before{content:"\f27a"}.fa-meteor:before{content:"\f753"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before,.fa-microphone-lines:before{content:"\f3c9"}.fa-microphone-alt-slash:before,.fa-microphone-lines-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-mill-sign:before{content:"\e1ed"}.fa-compress-arrows-alt:before,.fa-minimize:before{content:"\f78c"}.fa-minus:before,.fa-subtract:before{content:"\f068"}.fa-mitten:before{content:"\f7b5"}.fa-mobile-android:before,.fa-mobile-phone:before,.fa-mobile:before{content:"\f3ce"}.fa-mobile-button:before{content:"\f10b"}.fa-mobile-retro:before{content:"\e527"}.fa-mobile-android-alt:before,.fa-mobile-screen:before{content:"\f3cf"}.fa-mobile-alt:before,.fa-mobile-screen-button:before{content:"\f3cd"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-1:before,.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-1-wave:before,.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-bill-transfer:before{content:"\e528"}.fa-money-bill-trend-up:before{content:"\e529"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wheat:before{content:"\e52a"}.fa-money-bills:before{content:"\e1f3"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before,.fa-money-check-dollar:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-mosquito:before{content:"\e52b"}.fa-mosquito-net:before{content:"\e52c"}.fa-motorcycle:before{content:"\f21c"}.fa-mound:before{content:"\e52d"}.fa-mountain:before{content:"\f6fc"}.fa-mountain-city:before{content:"\e52e"}.fa-mountain-sun:before{content:"\e52f"}.fa-mug-hot:before{content:"\f7b6"}.fa-coffee:before,.fa-mug-saucer:before{content:"\f0f4"}.fa-music:before{content:"\f001"}.fa-n:before{content:"\4e"}.fa-naira-sign:before{content:"\e1f6"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-not-equal:before{content:"\f53e"}.fa-note-sticky:before,.fa-sticky-note:before{content:"\f249"}.fa-notes-medical:before{content:"\f481"}.fa-o:before{content:"\4f"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-oil-can:before{content:"\f613"}.fa-oil-well:before{content:"\e532"}.fa-om:before{content:"\f679"}.fa-otter:before{content:"\f700"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-p:before{content:"\50"}.fa-pager:before{content:"\f815"}.fa-paint-roller:before{content:"\f5aa"}.fa-paint-brush:before,.fa-paintbrush:before{content:"\f1fc"}.fa-palette:before{content:"\f53f"}.fa-pallet:before{content:"\f482"}.fa-panorama:before{content:"\e209"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-passport:before{content:"\f5ab"}.fa-file-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-pause:before{content:"\f04c"}.fa-paw:before{content:"\f1b0"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before,.fa-pen-clip:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-ruler:before,.fa-pencil-ruler:before{content:"\f5ae"}.fa-edit:before,.fa-pen-to-square:before{content:"\f044"}.fa-pencil-alt:before,.fa-pencil:before{content:"\f303"}.fa-people-arrows-left-right:before,.fa-people-arrows:before{content:"\e068"}.fa-people-carry-box:before,.fa-people-carry:before{content:"\f4ce"}.fa-people-group:before{content:"\e533"}.fa-people-line:before{content:"\e534"}.fa-people-pulling:before{content:"\e535"}.fa-people-robbery:before{content:"\e536"}.fa-people-roof:before{content:"\e537"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before,.fa-percentage:before{content:"\25"}.fa-male:before,.fa-person:before{content:"\f183"}.fa-person-arrow-down-to-line:before{content:"\e538"}.fa-person-arrow-up-from-line:before{content:"\e539"}.fa-biking:before,.fa-person-biking:before{content:"\f84a"}.fa-person-booth:before{content:"\f756"}.fa-person-breastfeeding:before{content:"\e53a"}.fa-person-burst:before{content:"\e53b"}.fa-person-cane:before{content:"\e53c"}.fa-person-chalkboard:before{content:"\e53d"}.fa-person-circle-check:before{content:"\e53e"}.fa-person-circle-exclamation:before{content:"\e53f"}.fa-person-circle-minus:before{content:"\e540"}.fa-person-circle-plus:before{content:"\e541"}.fa-person-circle-question:before{content:"\e542"}.fa-person-circle-xmark:before{content:"\e543"}.fa-digging:before,.fa-person-digging:before{content:"\f85e"}.fa-diagnoses:before,.fa-person-dots-from-line:before{content:"\f470"}.fa-female:before,.fa-person-dress:before{content:"\f182"}.fa-person-dress-burst:before{content:"\e544"}.fa-person-drowning:before{content:"\e545"}.fa-person-falling:before{content:"\e546"}.fa-person-falling-burst:before{content:"\e547"}.fa-person-half-dress:before{content:"\e548"}.fa-person-harassing:before{content:"\e549"}.fa-hiking:before,.fa-person-hiking:before{content:"\f6ec"}.fa-person-military-pointing:before{content:"\e54a"}.fa-person-military-rifle:before{content:"\e54b"}.fa-person-military-to-person:before{content:"\e54c"}.fa-person-praying:before,.fa-pray:before{content:"\f683"}.fa-person-pregnant:before{content:"\e31e"}.fa-person-rays:before{content:"\e54d"}.fa-person-rifle:before{content:"\e54e"}.fa-person-running:before,.fa-running:before{content:"\f70c"}.fa-person-shelter:before{content:"\e54f"}.fa-person-skating:before,.fa-skating:before{content:"\f7c5"}.fa-person-skiing:before,.fa-skiing:before{content:"\f7c9"}.fa-person-skiing-nordic:before,.fa-skiing-nordic:before{content:"\f7ca"}.fa-person-snowboarding:before,.fa-snowboarding:before{content:"\f7ce"}.fa-person-swimming:before,.fa-swimmer:before{content:"\f5c4"}.fa-person-through-window:before{content:"\e433"}.fa-person-walking:before,.fa-walking:before{content:"\f554"}.fa-person-walking-arrow-loop-left:before{content:"\e551"}.fa-person-walking-arrow-right:before{content:"\e552"}.fa-person-walking-dashed-line-arrow-right:before{content:"\e553"}.fa-person-walking-luggage:before{content:"\e554"}.fa-blind:before,.fa-person-walking-with-cane:before{content:"\f29d"}.fa-peseta-sign:before{content:"\e221"}.fa-peso-sign:before{content:"\e222"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before,.fa-phone-flip:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-volume:before,.fa-volume-control-phone:before{content:"\f2a0"}.fa-photo-film:before,.fa-photo-video:before{content:"\f87c"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-circle-check:before{content:"\e555"}.fa-plane-circle-exclamation:before{content:"\e556"}.fa-plane-circle-xmark:before{content:"\e557"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-lock:before{content:"\e558"}.fa-plane-slash:before{content:"\e069"}.fa-plane-up:before{content:"\e22d"}.fa-plant-wilt:before{content:"\e43b"}.fa-plate-wheat:before{content:"\e55a"}.fa-play:before{content:"\f04b"}.fa-plug:before{content:"\f1e6"}.fa-plug-circle-bolt:before{content:"\e55b"}.fa-plug-circle-check:before{content:"\e55c"}.fa-plug-circle-exclamation:before{content:"\e55d"}.fa-plug-circle-minus:before{content:"\e55e"}.fa-plug-circle-plus:before{content:"\e55f"}.fa-plug-circle-xmark:before{content:"\e560"}.fa-add:before,.fa-plus:before{content:"\2b"}.fa-plus-minus:before{content:"\e43c"}.fa-podcast:before{content:"\f2ce"}.fa-poo:before{content:"\f2fe"}.fa-poo-bolt:before,.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-power-off:before{content:"\f011"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before,.fa-prescription-bottle-medical:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-pump-medical:before{content:"\e06a"}.fa-pump-soap:before{content:"\e06b"}.fa-puzzle-piece:before{content:"\f12e"}.fa-q:before{content:"\51"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\3f"}.fa-quote-left-alt:before,.fa-quote-left:before{content:"\f10d"}.fa-quote-right-alt:before,.fa-quote-right:before{content:"\f10e"}.fa-r:before{content:"\52"}.fa-radiation:before{content:"\f7b9"}.fa-radio:before{content:"\f8d7"}.fa-rainbow:before{content:"\f75b"}.fa-ranking-star:before{content:"\e561"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-ad:before,.fa-rectangle-ad:before{content:"\f641"}.fa-list-alt:before,.fa-rectangle-list:before{content:"\f022"}.fa-rectangle-times:before,.fa-rectangle-xmark:before,.fa-times-rectangle:before,.fa-window-close:before{content:"\f410"}.fa-recycle:before{content:"\f1b8"}.fa-registered:before{content:"\f25d"}.fa-repeat:before{content:"\f363"}.fa-mail-reply:before,.fa-reply:before{content:"\f3e5"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-republican:before{content:"\f75e"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-ribbon:before{content:"\f4d6"}.fa-right-from-bracket:before,.fa-sign-out-alt:before{content:"\f2f5"}.fa-exchange-alt:before,.fa-right-left:before{content:"\f362"}.fa-long-arrow-alt-right:before,.fa-right-long:before{content:"\f30b"}.fa-right-to-bracket:before,.fa-sign-in-alt:before{content:"\f2f6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-road-barrier:before{content:"\e562"}.fa-road-bridge:before{content:"\e563"}.fa-road-circle-check:before{content:"\e564"}.fa-road-circle-exclamation:before{content:"\e565"}.fa-road-circle-xmark:before{content:"\e566"}.fa-road-lock:before{content:"\e567"}.fa-road-spikes:before{content:"\e568"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rotate:before,.fa-sync-alt:before{content:"\f2f1"}.fa-rotate-back:before,.fa-rotate-backward:before,.fa-rotate-left:before,.fa-undo-alt:before{content:"\f2ea"}.fa-redo-alt:before,.fa-rotate-forward:before,.fa-rotate-right:before{content:"\f2f9"}.fa-route:before{content:"\f4d7"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-rouble:before,.fa-rub:before,.fa-ruble-sign:before,.fa-ruble:before{content:"\f158"}.fa-rug:before{content:"\e569"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-rupee-sign:before,.fa-rupee:before{content:"\f156"}.fa-rupiah-sign:before{content:"\e23d"}.fa-s:before{content:"\53"}.fa-sack-dollar:before{content:"\f81d"}.fa-sack-xmark:before{content:"\e56a"}.fa-sailboat:before{content:"\e445"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-balance-scale:before,.fa-scale-balanced:before{content:"\f24e"}.fa-balance-scale-left:before,.fa-scale-unbalanced:before{content:"\f515"}.fa-balance-scale-right:before,.fa-scale-unbalanced-flip:before{content:"\f516"}.fa-school:before{content:"\f549"}.fa-school-circle-check:before{content:"\e56b"}.fa-school-circle-exclamation:before{content:"\e56c"}.fa-school-circle-xmark:before{content:"\e56d"}.fa-school-flag:before{content:"\e56e"}.fa-school-lock:before{content:"\e56f"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-screwdriver:before{content:"\f54a"}.fa-screwdriver-wrench:before,.fa-tools:before{content:"\f7d9"}.fa-scroll:before{content:"\f70e"}.fa-scroll-torah:before,.fa-torah:before{content:"\f6a0"}.fa-sd-card:before{content:"\f7c2"}.fa-section:before{content:"\e447"}.fa-seedling:before,.fa-sprout:before{content:"\f4d8"}.fa-server:before{content:"\f233"}.fa-shapes:before,.fa-triangle-circle-square:before{content:"\f61f"}.fa-arrow-turn-right:before,.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-share-from-square:before,.fa-share-square:before{content:"\f14d"}.fa-share-alt:before,.fa-share-nodes:before{content:"\f1e0"}.fa-sheet-plastic:before{content:"\e571"}.fa-ils:before,.fa-shekel-sign:before,.fa-shekel:before,.fa-sheqel-sign:before,.fa-sheqel:before{content:"\f20b"}.fa-shield-blank:before,.fa-shield:before{content:"\f132"}.fa-shield-cat:before{content:"\e572"}.fa-shield-dog:before{content:"\e573"}.fa-shield-alt:before,.fa-shield-halved:before{content:"\f3ed"}.fa-shield-heart:before{content:"\e574"}.fa-shield-virus:before{content:"\e06c"}.fa-ship:before{content:"\f21a"}.fa-shirt:before,.fa-t-shirt:before,.fa-tshirt:before{content:"\f553"}.fa-shoe-prints:before{content:"\f54b"}.fa-shop:before,.fa-store-alt:before{content:"\f54f"}.fa-shop-lock:before{content:"\e4a5"}.fa-shop-slash:before,.fa-store-alt-slash:before{content:"\e070"}.fa-shower:before{content:"\f2cc"}.fa-shrimp:before{content:"\e448"}.fa-random:before,.fa-shuffle:before{content:"\f074"}.fa-shuttle-space:before,.fa-space-shuttle:before{content:"\f197"}.fa-sign-hanging:before,.fa-sign:before{content:"\f4d9"}.fa-signal-5:before,.fa-signal-perfect:before,.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-map-signs:before,.fa-signs-post:before{content:"\f277"}.fa-sim-card:before{content:"\f7c4"}.fa-sink:before{content:"\e06d"}.fa-sitemap:before{content:"\f0e8"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before,.fa-sliders:before{content:"\f1de"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\e06e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-spa:before{content:"\f5bb"}.fa-pastafarianism:before,.fa-spaghetti-monster-flying:before{content:"\f67b"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spoon:before,.fa-utensil-spoon:before{content:"\f2e5"}.fa-spray-can:before{content:"\f5bd"}.fa-air-freshener:before,.fa-spray-can-sparkles:before{content:"\f5d0"}.fa-square:before{content:"\f0c8"}.fa-external-link-square:before,.fa-square-arrow-up-right:before{content:"\f14c"}.fa-caret-square-down:before,.fa-square-caret-down:before{content:"\f150"}.fa-caret-square-left:before,.fa-square-caret-left:before{content:"\f191"}.fa-caret-square-right:before,.fa-square-caret-right:before{content:"\f152"}.fa-caret-square-up:before,.fa-square-caret-up:before{content:"\f151"}.fa-check-square:before,.fa-square-check:before{content:"\f14a"}.fa-envelope-square:before,.fa-square-envelope:before{content:"\f199"}.fa-square-full:before{content:"\f45c"}.fa-h-square:before,.fa-square-h:before{content:"\f0fd"}.fa-minus-square:before,.fa-square-minus:before{content:"\f146"}.fa-square-nfi:before{content:"\e576"}.fa-parking:before,.fa-square-parking:before{content:"\f540"}.fa-pen-square:before,.fa-pencil-square:before,.fa-square-pen:before{content:"\f14b"}.fa-square-person-confined:before{content:"\e577"}.fa-phone-square:before,.fa-square-phone:before{content:"\f098"}.fa-phone-square-alt:before,.fa-square-phone-flip:before{content:"\f87b"}.fa-plus-square:before,.fa-square-plus:before{content:"\f0fe"}.fa-poll-h:before,.fa-square-poll-horizontal:before{content:"\f682"}.fa-poll:before,.fa-square-poll-vertical:before{content:"\f681"}.fa-square-root-alt:before,.fa-square-root-variable:before{content:"\f698"}.fa-rss-square:before,.fa-square-rss:before{content:"\f143"}.fa-share-alt-square:before,.fa-square-share-nodes:before{content:"\f1e1"}.fa-external-link-square-alt:before,.fa-square-up-right:before{content:"\f360"}.fa-square-virus:before{content:"\e578"}.fa-square-xmark:before,.fa-times-square:before,.fa-xmark-square:before{content:"\f2d3"}.fa-rod-asclepius:before,.fa-rod-snake:before,.fa-staff-aesculapius:before,.fa-staff-snake:before{content:"\e579"}.fa-stairs:before{content:"\e289"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before,.fa-star-half-stroke:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-gbp:before,.fa-pound-sign:before,.fa-sterling-sign:before{content:"\f154"}.fa-stethoscope:before{content:"\f0f1"}.fa-stop:before{content:"\f04d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\e06f"}.fa-store:before{content:"\f54e"}.fa-store-slash:before{content:"\e071"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stroopwafel:before{content:"\f551"}.fa-subscript:before{content:"\f12c"}.fa-suitcase:before{content:"\f0f2"}.fa-medkit:before,.fa-suitcase-medical:before{content:"\f0fa"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-sun-plant-wilt:before{content:"\e57a"}.fa-superscript:before{content:"\f12b"}.fa-swatchbook:before{content:"\f5c3"}.fa-synagogue:before{content:"\f69b"}.fa-syringe:before{content:"\f48e"}.fa-t:before{content:"\54"}.fa-table:before{content:"\f0ce"}.fa-table-cells:before,.fa-th:before{content:"\f00a"}.fa-table-cells-large:before,.fa-th-large:before{content:"\f009"}.fa-columns:before,.fa-table-columns:before{content:"\f0db"}.fa-table-list:before,.fa-th-list:before{content:"\f00b"}.fa-ping-pong-paddle-ball:before,.fa-table-tennis-paddle-ball:before,.fa-table-tennis:before{content:"\f45d"}.fa-tablet-android:before,.fa-tablet:before{content:"\f3fb"}.fa-tablet-button:before{content:"\f10a"}.fa-tablet-alt:before,.fa-tablet-screen-button:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-digital-tachograph:before,.fa-tachograph-digital:before{content:"\f566"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tarp:before{content:"\e57b"}.fa-tarp-droplet:before{content:"\e57c"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-temperature-arrow-down:before,.fa-temperature-down:before{content:"\e03f"}.fa-temperature-arrow-up:before,.fa-temperature-up:before{content:"\e040"}.fa-temperature-0:before,.fa-temperature-empty:before,.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-temperature-4:before,.fa-temperature-full:before,.fa-thermometer-4:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-temperature-2:before,.fa-temperature-half:before,.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-temperature-1:before,.fa-temperature-quarter:before,.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-temperature-3:before,.fa-temperature-three-quarters:before,.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-tenge-sign:before,.fa-tenge:before{content:"\f7d7"}.fa-tent:before{content:"\e57d"}.fa-tent-arrow-down-to-line:before{content:"\e57e"}.fa-tent-arrow-left-right:before{content:"\e57f"}.fa-tent-arrow-turn-left:before{content:"\e580"}.fa-tent-arrows-down:before{content:"\e581"}.fa-tents:before{content:"\e582"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-remove-format:before,.fa-text-slash:before{content:"\f87d"}.fa-text-width:before{content:"\f035"}.fa-thermometer:before{content:"\f491"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumb-tack:before,.fa-thumbtack:before{content:"\f08d"}.fa-ticket:before{content:"\f145"}.fa-ticket-alt:before,.fa-ticket-simple:before{content:"\f3ff"}.fa-timeline:before{content:"\e29c"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\e072"}.fa-toilet-portable:before{content:"\e583"}.fa-toilets-portable:before{content:"\e584"}.fa-toolbox:before{content:"\f552"}.fa-tooth:before{content:"\f5c9"}.fa-torii-gate:before{content:"\f6a1"}.fa-tornado:before{content:"\f76f"}.fa-broadcast-tower:before,.fa-tower-broadcast:before{content:"\f519"}.fa-tower-cell:before{content:"\e585"}.fa-tower-observation:before{content:"\e586"}.fa-tractor:before{content:"\f722"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\e041"}.fa-train:before{content:"\f238"}.fa-subway:before,.fa-train-subway:before{content:"\f239"}.fa-train-tram:before,.fa-tram:before{content:"\f7da"}.fa-transgender-alt:before,.fa-transgender:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-arrow-up:before,.fa-trash-restore:before{content:"\f829"}.fa-trash-alt:before,.fa-trash-can:before{content:"\f2ed"}.fa-trash-can-arrow-up:before,.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-tree-city:before{content:"\e587"}.fa-exclamation-triangle:before,.fa-triangle-exclamation:before,.fa-warning:before{content:"\f071"}.fa-trophy:before{content:"\f091"}.fa-trowel:before{content:"\e589"}.fa-trowel-bricks:before{content:"\e58a"}.fa-truck:before{content:"\f0d1"}.fa-truck-arrow-right:before{content:"\e58b"}.fa-truck-droplet:before{content:"\e58c"}.fa-shipping-fast:before,.fa-truck-fast:before{content:"\f48b"}.fa-truck-field:before{content:"\e58d"}.fa-truck-field-un:before{content:"\e58e"}.fa-truck-front:before{content:"\e2b7"}.fa-ambulance:before,.fa-truck-medical:before{content:"\f0f9"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-truck-plane:before{content:"\e58f"}.fa-truck-loading:before,.fa-truck-ramp-box:before{content:"\f4de"}.fa-teletype:before,.fa-tty:before{content:"\f1e4"}.fa-try:before,.fa-turkish-lira-sign:before,.fa-turkish-lira:before{content:"\e2bb"}.fa-level-down-alt:before,.fa-turn-down:before{content:"\f3be"}.fa-level-up-alt:before,.fa-turn-up:before{content:"\f3bf"}.fa-television:before,.fa-tv-alt:before,.fa-tv:before{content:"\f26c"}.fa-u:before{content:"\55"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-universal-access:before{content:"\f29a"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before,.fa-unlock-keyhole:before{content:"\f13e"}.fa-arrows-alt-v:before,.fa-up-down:before{content:"\f338"}.fa-arrows-alt:before,.fa-up-down-left-right:before{content:"\f0b2"}.fa-long-arrow-alt-up:before,.fa-up-long:before{content:"\f30c"}.fa-expand-alt:before,.fa-up-right-and-down-left-from-center:before{content:"\f424"}.fa-external-link-alt:before,.fa-up-right-from-square:before{content:"\f35d"}.fa-upload:before{content:"\f093"}.fa-user:before{content:"\f007"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-clock:before{content:"\f4fd"}.fa-user-doctor:before,.fa-user-md:before{content:"\f0f0"}.fa-user-cog:before,.fa-user-gear:before{content:"\f4fe"}.fa-user-graduate:before{content:"\f501"}.fa-user-friends:before,.fa-user-group:before{content:"\f500"}.fa-user-injured:before{content:"\f728"}.fa-user-alt:before,.fa-user-large:before{content:"\f406"}.fa-user-alt-slash:before,.fa-user-large-slash:before{content:"\f4fa"}.fa-user-lock:before{content:"\f502"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-edit:before,.fa-user-pen:before{content:"\f4ff"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before,.fa-user-xmark:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-between-lines:before{content:"\e591"}.fa-users-cog:before,.fa-users-gear:before{content:"\f509"}.fa-users-line:before{content:"\e592"}.fa-users-rays:before{content:"\e593"}.fa-users-rectangle:before{content:"\e594"}.fa-users-slash:before{content:"\e073"}.fa-users-viewfinder:before{content:"\e595"}.fa-cutlery:before,.fa-utensils:before{content:"\f2e7"}.fa-v:before{content:"\56"}.fa-shuttle-van:before,.fa-van-shuttle:before{content:"\f5b6"}.fa-vault:before{content:"\e2c5"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-vest:before{content:"\e085"}.fa-vest-patches:before{content:"\e086"}.fa-vial:before{content:"\f492"}.fa-vial-circle-check:before{content:"\e596"}.fa-vial-virus:before{content:"\e597"}.fa-vials:before{content:"\f493"}.fa-video-camera:before,.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-virus:before{content:"\e074"}.fa-virus-covid:before{content:"\e4a8"}.fa-virus-covid-slash:before{content:"\e4a9"}.fa-virus-slash:before{content:"\e075"}.fa-viruses:before{content:"\e076"}.fa-voicemail:before{content:"\f897"}.fa-volcano:before{content:"\f770"}.fa-volleyball-ball:before,.fa-volleyball:before{content:"\f45f"}.fa-volume-high:before,.fa-volume-up:before{content:"\f028"}.fa-volume-down:before,.fa-volume-low:before{content:"\f027"}.fa-volume-off:before{content:"\f026"}.fa-volume-mute:before,.fa-volume-times:before,.fa-volume-xmark:before{content:"\f6a9"}.fa-vr-cardboard:before{content:"\f729"}.fa-w:before{content:"\57"}.fa-walkie-talkie:before{content:"\f8ef"}.fa-wallet:before{content:"\f555"}.fa-magic:before,.fa-wand-magic:before{content:"\f0d0"}.fa-magic-wand-sparkles:before,.fa-wand-magic-sparkles:before{content:"\e2ca"}.fa-wand-sparkles:before{content:"\f72b"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-ladder-water:before,.fa-swimming-pool:before,.fa-water-ladder:before{content:"\f5c5"}.fa-wave-square:before{content:"\f83e"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weight-scale:before,.fa-weight:before{content:"\f496"}.fa-wheat-alt:before,.fa-wheat-awn:before{content:"\e2cd"}.fa-wheat-awn-circle-exclamation:before{content:"\e598"}.fa-wheelchair:before{content:"\f193"}.fa-wheelchair-alt:before,.fa-wheelchair-move:before{content:"\e2ce"}.fa-glass-whiskey:before,.fa-whiskey-glass:before{content:"\f7a0"}.fa-wifi-3:before,.fa-wifi-strong:before,.fa-wifi:before{content:"\f1eb"}.fa-wind:before{content:"\f72e"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before,.fa-wine-glass-empty:before{content:"\f5ce"}.fa-krw:before,.fa-won-sign:before,.fa-won:before{content:"\f159"}.fa-worm:before{content:"\e599"}.fa-wrench:before{content:"\f0ad"}.fa-x:before{content:"\58"}.fa-x-ray:before{content:"\f497"}.fa-close:before,.fa-multiply:before,.fa-remove:before,.fa-times:before,.fa-xmark:before{content:"\f00d"}.fa-xmarks-lines:before{content:"\e59a"}.fa-y:before{content:"\59"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen-sign:before,.fa-yen:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-z:before{content:"\5a"}.fa-sr-only,.fa-sr-only-focusable:not(:focus),.sr-only,.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:host,:root{--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}.fa-brands,.fab{font-family:"Font Awesome 6 Brands";font-weight:400}.fa-42-group:before,.fa-innosoft:before{content:"\e080"}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-adn:before{content:"\f170"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-alipay:before{content:"\f642"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-amilia:before{content:"\f36d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-pay:before{content:"\f415"}.fa-artstation:before{content:"\f77a"}.fa-asymmetrik:before{content:"\f372"}.fa-atlassian:before{content:"\f77b"}.fa-audible:before{content:"\f373"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-aws:before{content:"\f375"}.fa-bandcamp:before{content:"\f2d5"}.fa-battle-net:before{content:"\f835"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bilibili:before{content:"\e3d9"}.fa-bimobject:before{content:"\f378"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bootstrap:before{content:"\f836"}.fa-bots:before{content:"\e340"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-buromobelexperte:before{content:"\f37f"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-cloudflare:before{content:"\e07d"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cmplid:before{content:"\e360"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cotton-bureau:before{content:"\f89e"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-critical-role:before{content:"\f6c9"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\e052"}.fa-dashcube:before{content:"\f210"}.fa-deezer:before{content:"\e077"}.fa-delicious:before{content:"\f1a5"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dhl:before{content:"\f790"}.fa-diaspora:before{content:"\f791"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-draft2digital:before{content:"\f396"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drupal:before{content:"\f1a9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edge-legacy:before{content:"\e078"}.fa-elementor:before{content:"\f430"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envira:before{content:"\f299"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-etsy:before{content:"\f2d7"}.fa-evernote:before{content:"\f839"}.fa-expeditedssl:before{content:"\f23e"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-figma:before{content:"\f799"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\e007"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-fly:before{content:"\f417"}.fa-font-awesome-flag:before,.fa-font-awesome-logo-full:before,.fa-font-awesome:before{content:"\f2b4"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-fulcrum:before{content:"\f50b"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-gofore:before{content:"\f3a7"}.fa-golang:before{content:"\e40f"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-pay:before{content:"\e079"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guilded:before{content:"\e07e"}.fa-gulp:before{content:"\f3ae"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hashnode:before{content:"\e499"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-hive:before{content:"\e07f"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-hotjar:before{content:"\f3b1"}.fa-houzz:before{content:"\f27c"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-ideal:before{content:"\e013"}.fa-imdb:before{content:"\f2d8"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\e055"}.fa-instalod:before{content:"\e081"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joomla:before{content:"\f1aa"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaggle:before{content:"\f5fa"}.fa-keybase:before{content:"\f4f5"}.fa-keycdn:before{content:"\f3ba"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-korvue:before{content:"\f42f"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-leanpub:before{content:"\f212"}.fa-less:before{content:"\f41d"}.fa-line:before{content:"\f3c0"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-mailchimp:before{content:"\f59e"}.fa-mandalorian:before{content:"\f50f"}.fa-markdown:before{content:"\f60f"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medapps:before{content:"\f3c6"}.fa-medium-m:before,.fa-medium:before{content:"\f23a"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-mendeley:before{content:"\f7b3"}.fa-microblog:before{content:"\e01a"}.fa-microsoft:before{content:"\f3ca"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\e056"}.fa-mizuni:before{content:"\f3cc"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-nfc-directional:before{content:"\e530"}.fa-nfc-symbol:before{content:"\e531"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-octopus-deploy:before{content:"\e082"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-old-republic:before{content:"\f510"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-padlet:before{content:"\e4a0"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-palfed:before{content:"\f3d8"}.fa-patreon:before{content:"\f3d9"}.fa-paypal:before{content:"\f1ed"}.fa-perbyte:before{content:"\e083"}.fa-periscope:before{content:"\f3da"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\e01e"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pix:before{content:"\e43a"}.fa-playstation:before{content:"\f3df"}.fa-product-hunt:before{content:"\f288"}.fa-pushed:before{content:"\f3e1"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-r-project:before{content:"\f4f7"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-renren:before{content:"\f18b"}.fa-replyd:before{content:"\f3e6"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-rev:before{content:"\f5b2"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-rust:before{content:"\e07a"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-schlix:before{content:"\f3ea"}.fa-screenpal:before{content:"\e570"}.fa-scribd:before{content:"\f28a"}.fa-searchengin:before{content:"\f3eb"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-servicestack:before{content:"\f3ec"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shopify:before{content:"\e057"}.fa-shopware:before{content:"\f5b5"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sith:before{content:"\f512"}.fa-sitrox:before{content:"\e44a"}.fa-sketch:before{content:"\f7c6"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack-hash:before,.fa-slack:before{content:"\f198"}.fa-slideshare:before{content:"\f1e7"}.fa-snapchat-ghost:before,.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-square:before{content:"\f2ad"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spotify:before{content:"\f1bc"}.fa-square-font-awesome:before{content:"\f425"}.fa-font-awesome-alt:before,.fa-square-font-awesome-stroke:before{content:"\f35c"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-sticker-mule:before{content:"\f3f7"}.fa-strava:before{content:"\f428"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-superpowers:before{content:"\f2dd"}.fa-supple:before{content:"\f3f9"}.fa-suse:before{content:"\f7d6"}.fa-swift:before{content:"\f8e1"}.fa-symfony:before{content:"\f83d"}.fa-teamspeak:before{content:"\f4f9"}.fa-telegram-plane:before,.fa-telegram:before{content:"\f2c6"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-the-red-yeti:before{content:"\f69d"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-think-peaks:before{content:"\f731"}.fa-tiktok:before{content:"\e07b"}.fa-trade-federation:before{content:"\f513"}.fa-trello:before{content:"\f181"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-uncharted:before{content:"\e084"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\e049"}.fa-unsplash:before{content:"\e07c"}.fa-untappd:before{content:"\f405"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-vaadin:before{content:"\f408"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-viber:before{content:"\f409"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-vuejs:before{content:"\f41f"}.fa-watchman-monitoring:before{content:"\e087"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-whmcs:before{content:"\f40d"}.fa-wikipedia-w:before{content:"\f266"}.fa-windows:before{content:"\f17a"}.fa-wirsindhandwerk:before,.fa-wsh:before{content:"\e2d0"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wodu:before{content:"\e088"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}:host,:root{--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-family:"Font Awesome 6 Free";font-weight:400}:host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-family:"Font Awesome 6 Free";font-weight:900}@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f250,u+f252,u+f27a}$%&'_Lhttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-brands-400.woff2O Sbplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse, '-.4567]^_`abcdefghijklmnopqrstuvwxyz{|}U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1* +()$+,WNS.base[NS.relative_Lhttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-brands-400.woff2/012Z$classnameX$classesUNSURL13XNSObject#AŃ+89:K\WNS.keysZNS.objects;<=>?@ABCDEFGHIJ LMNOPQRSTUVWXYZ[ !"#$%&'()\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_x-hcdn-cache-statusVServer_x-turbo-charged-byWExpires]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rtZfont/woff2_Thu, 19 Oct 2023 05:05:17 GMT_*fd1bf08d565e18986f8f1abad3601628-mum-edge1_upgrade-insecure-requestsTMISSThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMT_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTV105536_ YnBsaXN0MDDfEA8BAgMEBQYHCAkKCwwNDg8QEhQWGBocHiAiJCYoKixcQ29udGVudC1UeXBlXxASeC1oY2RuLXVwc3RyZWFtLXJ0XxAReC1oY2RuLXJlcXVlc3QtaWRfEBdDb250ZW50LVNlY3VyaXR5LVBvbGljeV8QE3gtaGNkbi1jYWNoZS1zdGF0dXNWU2VydmVyXxASeC10dXJiby1jaGFyZ2VkLWJ5V0V4cGlyZXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRFaZm9udC93b2ZmMqETVTAuMDMwoRVfECpmZDFiZjA4ZDU2NWUxODk4NmY4ZjFhYmFkMzYwMTYyOC1tdW0tZWRnZTGhF18QGXVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHOhGVRNSVNToRtUaGNkbqEdWUxpdGVTcGVlZKEfXxAdVGh1LCAyMyBOb3YgMjAyMyAxMzo1MDo0MCBHTVShIV8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChI1lob3N0aW5nZXKhJV8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSdWMTA1NTM2oSlVYnl0ZXOhK18QJCIxOWM0MC02NTMwYjkwZC00NGJiMGJlYTRhMDJmNDM3Ozs7IqEtXxAdVGh1LCAxOSBPY3QgMjAyMyAwNTowNToxNyBHTVQACAApADYASwBfAHkAjwCWAKsAswDBAMoAzwDeAOwA8QD/AQEBDAEOARQBFgFDAUUBYQFjAWgBagFvAXEBewF9AZ0BnwG4AboBxAHGAeYB6AHvAfEB9wH5AiACIgAAAAAAAAIBAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAJCUbytes_$"19c40-6530b90d-44bb0bea4a02f437;;;"U0.030/0~_NSMutableDictionary~3\NSDictionaryZfont/woff2/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd BIknqAFQZ`cluwy*DZav~2NSXb|   %O@wOF2@ 8$ `PHʊˏT  WQgV?HIU:1~?翿 sy *YKEFSQR]ѤHH@oa~?{&@g6iaUz5x¯<I," ؒW7v$vtF]XX[ksuONE$cO AT៪w HAyK6PYQc%ĥ}i6X:D{{}@>P P|UdBQ^%f%Mb݋RhjPUklc"5KnȦJc&& "9Q`mE:M \yIMdZ]]I*#tshku Ld]{&3UEPG0(6`B7COXfޠK. I|Y=e0^+wɺ2 +L"ӅX/땎~:_ѥm/oB4LJ'3.ᲧfN;-9# e: Ja;K߁9*ITw=0nKt e> F+\ܴ>#龛~ն'`ZQx96vRmnMm )2[gxd*9?gk]sV_"P:ҘAу6χnoi!&Ot19rL>aބݍvm>=< r};%Ou_[G>SC iUG~ЇhI\j}8cvVv=||wwۇHnDsyl&!9:F;Jۡ͏/$3"_\<Ƙc.23>t7)>nU Y0\_a"RFJ=.-zs?l0_\^H_ @ xL,$܀-؆Sxx|lɲ,*ΆnIY\xKJYo׻nOӗcZ3M73̌5437jl19s\1j7=5͗LC_h} ˯*)y/=/yi'w&L)Rw7駿^OS{$oſ_2^ĥBP)uDSUM_%*"0Dx7xx 8}؍]XUXeD^hhhDjD(D((D8x<yz IRI4Dٴ,l#e~`Iutx'{fv=)Iy߯{]7c_)];~vifvK Z$jiƅ_,X K2]C7\qxW:Vȹk'gyP8upϝqqO7jАq_((yZжى5vAe/X?*CHw<)1B ߙ\cݒ:88ǽxOp ^.aM槌wEˁQ4όV9_= PA%T%`i%r ,r~< #Dz- px9kp7%D5D{,H4]Ns<@=ɏ_\u zIyAlSfwPYy(4(*'}wbCB6c"Ԓ )+Y] ՓBJ>MݑuÎ+k Za<݄ `8BSqуqr݄.ۿ~/Ɠۓ4)J˧\'IN[YG<)O tdskߋqVԆiXRz)M}wiA]m7+,{=)1OJ437plw:|S/Zx;@"s"ei˷3 BjvCj:mIeRO2z*QWl4爉jh10_mi~%+XZy~4q\󾗘L3?34q\dی ?yQ>si-3{4D?2Jә5[Q!F/ 9DQJxFtoL1 傫PyO64KE'y2K.ix?EEf qYNP5 $Qʥ fӴ*~uU ck͖ ˆm{,]L3t V+w: S^ 8E'V3D~6c i謱-,tj pC&3nךvJ mH+/Nev-$1A,.T.3tnGc4hRv̹Z>K4"X('9+XqD,Y%ѿVe)*IR[b <{~uJYp >_l-K]][ѲnlBwag}8բ|~cǀ͍']4+-TѰ0٫:3{=ǹCX[ve)7o'LtpdȇSf}| @DCfxP7) ӄt6YZNrkrA,= uo1u':C ވ MEkL }cycySGgh;WϘX^L*7ia$칺O9Q)jEYhs,a3nr:-DTΊEuUfg Y}euo]nj o]wø`vX׏0vD:|'gG$뇟0d#yy,wT ~$ϦY ^%DS Ċ톞az?*K8rlۉfs#_Ʈyc؛X-,u ù!NtAϥ5D&I?I 0ҜSI>ɥ$P=tV9E9 .ʺb1Z(x“~Y:KgٴE^|&*(B|?X\ +2ꍐu/)V0WqVW[6J.نap z|yfe Mf/_z]WFKZ(7AJ˲tw;j5 ^Mb9)qŴFTc\ N_cX< k~-F]!Mh zO+[[QTEi48J Ss-ˋyQGeC@mճzT*e%!<9]_/ˑc9n- CAY_iFhU|8mk4]n:vXsܸz}ûՆBk*_?WDqeKZ;xW,p={Xh` lZ</D,:iVӬ,2f4iV>u>$K}בI'}hŶ۽(fqZX=:qwvMDè7ˣ(|Ї?rW_.SN ~E^el: iRqx4lҬ'Wqǯ-Dp}j4u*O%L_YZnL[j5h[Mgܲ0=j5k``0h1]cLb[r]j- vx(X'\h1]ERE2 ױC)zUP8{}F: _?ur. UkssxEz8sݑ#$|tL#ZF=;鰕U"҉aԦuhb4ar4"+ML֑+#KW#%BO0 c;/`^ Nix"pRN bN${<=7 7 Єm|[#l)D&eQzJLzRSvw+q]WR'{qx$d8OKH*/aLi?3O{d{Ȉ@{t70JxD53,V={l:Kk!L3Z/lYĉiu3;ٮ3fIӲ*7fgk,86WkQ踾`8,C;jieiS C\ףf3 ,Y fZ-j^*M_XJF cYu""Ȗ&Et MiڻvW[ ܺȵ0hxYX/+(GilUZjBU^9u<^{PV[* 9K}:AӝXz6L5c-;02s1K4:xhVuD+ǑiS9j){/)И=ZÈ akL״oaڃaǃ&a<1=\Csn:hBlx{c<[O5߆pfE3hOKza0[aMC64ilq 1u^aێm"b+kpЍv yD:U~xo2iΦ[DQ&Č \̔D-cY6M=Щvn(No)V!Eg\2"t0Hm~ߓ?]uv|\6F>˂($(Utx}'qΞ[\{ dIܮ Ic5E:ӺAIfD"kJL Oc',͒Lӎ(DԾtFbQjj 4m᝖a%9C}VQ}0HjVs!h6,k41 24VA BQb0ait*j.k1'a.>V >'!Zmku{lӔ4u4S:LK_ӚpX $7c~UR4-ԍ :LX}{[kJɘ"-K2〗J-цPq"D< giUe6%q"#nBĿj4GE^&4FQF(kӱp(G3dFY&Gƣq+l\oƛufCǛ͖Ւf 8cڲnח eYL[Q.cGAl}`W14Ge(=jQ}@ }X~o?!oFأڦ("b Ґ 5;g"Ҥ|S͌xcPl,ͿhbC[goVث3K {%a۳$?'-Kz<_ZI~4W~%k54=ה)M3h\K)/6"I[E\ImHwF$ 6P zQh2\d4hGSvf%aPlb d(I9c8YN^g4 .\]Ǯ"MÅ-GCaWMWz4do~6lwؓ ^4kNbZUnA1d01ƅU4t]M:iY\ga"fcJdhfVsejYʂdXLɘYVmCUi"`*ԣʢX'u-ב`$%}٤XK"L$-|w:{:ֹcStwQ{y?n0;oD 6|܃M||Rw-:o;޶بgk3)QmG +dfiKE^;Z(VOGw{;``P.P6 Gcq ~I߇1 $yp4lFov8NN2mPB4 "cUG>]fkla,ld2eVXuҲ@_h0˲ϝu,7 oMo`=pG{ZxQƅ5W6[HyT ,,_GW^ϧ^Q0w"-8!s{ɫOu9^Vf4Kgi3 tĉex.,8K +mY,\冏t-I4&|bYcl9[^d,b1XxQTjBS3Iqͦ]y R 3 UEվV5M0vf.h!B)i8A=r{pw2\0gB)"r7)Ai\E;N*9 5FWA]q:L8EA؃GDQ#Rh߹uw:lI:2(ݠL}<:l~;" AsWaad2v&|IlG M~Q[h ^i n7m8q7? ,~(z9e֊r},jpu`TIDnD1ņJΞ3gVm@`9ݦtr q'?yǝ!rP=98ed?jQ'=O9@a?lS9= i2"PL.]aggpmW^ 9wpeԏj[}lNJ_~?{j;nfcjTO98Gmk?yέmˢG?ÃB76riFSB _XA$@'& $RƊ2 hlY{YʢFBJ3~p*i&D==ӡ)I?'ͥ('I$pjPW8 ֶ(|k+?$1$Ax> b5iuuhCOҖR1HQM)Pf[V1b &~ФAzk[[@7qCaR`A.do7v-cm6ixeAc۝`yFAjø>16Md"KfEv@ǽ;^_OpΜx}f|j^Gx| !}~:Y'>T>џVE`MYRbȄ"9" /fJtGx:C9}fcXX4Np'𴶜ˎeǗ31&'0@_m;V{e S['ȧX:@ _ZPxRGKdic NtVIIw*{?>rPg$岚f(r&(j`2hwȫm> 1N}C%UkK0s+MiyvXFgQjRpRFո$2&Ow|YQ3Uwm55Yh(ƹ֐z*\[9 y~g}-<@H[@9e" H,#٬3x?!RbHΦ r!Y g!9=laaisFYIc[Tڝΰ +R\dn ` TZ%m6N'Qœ^UW'cBF&6 $ -}hιs;;> x 9C5Ϝy(B3|(yyy?fqB* WYJ$l(e"4@W$ h(ʢ#axM3EAr@vU^^ƅZV6?=N`.p9lp=ucqQDŽIj3{GmDa~ؾokDjK ~h}M`gRDP @)2 H)"3(e2(R dzg{Qf ]GMQ0ǎc0lPסZRBF qq*&@Uw-zjSF2.2 Ƃ/?Dz6ty*ȋ.CRNrLUr0n1.[' rnzYB8"WZ3*ߋw`}ŵUǩIT i/-4G0-^T hW :Lw^A`ҔJrpclT08B9vl'vң h۶^s;;>\rEB#:z /$9a~] &!L4RQAz^kko^]sLBJV&ӃFa)9Cz7r`LR[)S'WJVeS(F-׻]fss:v= )\/H.11(>mvyys6D54bvy N/,%RYFӴa lZ !y@f. M8K2f1 =ˈ*Wc"_̲Eg)L]Z.4[Q /3vuavvv oKO-K`0VvF,ߖ<ҚDd*fe$+˫oeX;G1p=lp6K*x^\fǟfejzOB\&9M% aMr,eQͫ4K"q2d $t^iGZ)JCQV QLjY1GF4"ͲT4ˣ(x8 n::zEaQFl9}hRƸJŖrh6# VTJzas8x5Ie[G9ͣ*O޻uMxhh>{H҇`ckOsܭ8҄ރV1;tWjK}FqEK"h"+s+ۏ} |}+8o?-؝…WWqv#F=:7C?ffI$I?Ihʻ7'bO(M8RV),]Ǥ~5hvxIŚw;Zml~ tz0jau|, VKޣzZjz#04G Q xa12V)4-sGc8}iGGxe7.1`vZ-f u|"6mq"00wI>OrLfif̔`3O&++2ԇ1iƶ絯}OڝSvG iCiwOÍ:Y_AIe>cML넫V -u ɂޝ:,<;9$S[I:l]62̿zIMI2ĺXϭ؇vI)!e<$!y4`Lr)&P"+RiR %2/^K/^x?_t.^ӗl{}\ݕ}Qh UfBL(MR$Qz$$do3Tb=k_ȥ/gKËp,-=kw (JoLH*WRQz ]x>Qq,MҤE_pţ0 dӋ˸,f !s%49bxv#W}ZLئaV`X+` ì aXdC`~A !{ێz[ޫ0׾÷>Z7 )i/h5sfe8 wyDj:թ7yH Ta[\`jڿx;笩QRJJՃeFZ\?>unq|jۑky[QZ015pSE}ݘ~a08^E|;Xu;U\b ܊ij?aTQT֣hMXVu[,kl/0 bNejE!Bi4šeyCHH':؏uQVF,P$`DA}+_o}>i~o4?sB>}O:ڪͶrEmJdkPOE>Mc}.Bע*Xp6RF[i&ضҭ7]ܣ{}E0h_$w$񤐃$MgrZMt2],B'"IgQQNҀ5&(Vʳ#!Ƅy8I Y1T-6)B(fT Ts,,eQ-+Ppp/~e&4ɢ,KZbf ' D|<1w(YM#l*2R9r`rLLeLuH&e5>(ݖJ&ih<1LYbQ"c:R?X(b=S7,M9ThJWYiԭJ[v`7DȼDIrR*c(U%prMR*dd<.t gAez%R-D%LۊDlNq9cL)Źee!!SJ4ťd\hc,,97}`wm@$a62 ҃(B2@@ל epI6ʢ/Rv;ILmFS@m!0*19) 2ZGl1i|@Kib`іT %x@X,@c d)gT*ŏN6`2s4;4mla4XjAzaueIQC u)rl*RljZjߋk帶DTg!cm+eII9Ttl+ТLh.8 A3:SI/ R9C. b]2 U+=,JFI9_7ڗ! ,LzS"r;B^)DEkh4L̦y5o*mu/iub}BIYu|<'N!,X&mCV[^m{_YjjKJڷTŖ ϯQϿw|/|8rycRTJߛzo{4C!N7MX~HԒ04N:V&:V Å /6[_.&]̐sf69m2w/Y[Imű X-dčko8Zs:hkf30/S*|dNΓk[evqOeQсg_v~B̦tR.R!A^B~$ΊPWR,D/92żoeV+ɤnerNd>/NZY|{ԩ4cѨq\C}_yQ:v]c\ǹ2iLiPp]!c?v^? +;l6[ߠ\Յog#zV8ըt0FfYԌ*s&u7U-t‚q*Aݽgb׵^wcqN=;vt9*W㕲Ն;O̙?Cr20ϺZg*hd0d%%eH֊8y0H2Kͥ2I&1t{=YYm&N.4ў0W{f1}c[:->T:PۦϘ00B=qLp{IԍB4tm0]=#FR!~B<:)I,:E>(/ɢ' !|$ [ѝm|ݽ]KvsO۟QNvA\*:Up M‚2Q}V$cYK<ˤQ䌴8驵oغt, &x։͞_(op=l䑜r'yy5y mGH2t9rrۆ$Kdj"y_x49-#ŀ3^\'qZqc%ޯBOp57[νV !Zr<@|`>&Ngj9OY,*0z~ZV^q؆*MR!| 0b>/C*.{}.Q @`aE1U! 0@ )>jwGS? [ 7.O/ eߘMWn(b,Y7PRouѢ>ubkqbcƩI=~ӧ,5FWΟ@a:Ero{!pi&$h(,C]HR| ;!f)b [/W=ςL3̓YhSS.ng8cS P~b_rkJJt3J|xS0mme~SM&.2z"ږ0+ ]Vȳ:A*O?z0_'۽bwlR6Ryǫm 5 RkNpv>QCl<-6ތg-,_`%,,,.eKoy˥n/]z[f o~o|pB>#+湤E& Ja{l |c/9<,`ae\֎8Z/!u`snߖ$]΅vK|c;ˌϰ =@Y ׬"/ÏX3i6 Dy "IJΑk?"ϐ&:e?=p9"wWb菽&6p+O.Ġ,&]JH-.L,EӀ&IE,܇e6R0nRiZs\.n0׾_˾_((nJ'XO1Io5Gp4pn'I|1K\dѳlP/N9< 9벾 Cj^}C?#GFry|||<-BL`QV*MA"8[BY {6T稄YEU.t/r^*IMrEUYG25q@6$t֣Ζ,A$2K2,蕿@Ƅ`,U b΁UJF8![+TJ3i&%WD2{B)X3BJ)pJeQ2i s1Kph.rcNQɟss5Ƴ}#9yNS=M=O_ a&3^O ǧX)R*O|c&}'AT,tO3S@zg8Lg# !WpL %"*C+ ub-鹓fi[NQDqzAx"IN :4< l#F˟ur87͍ø('^__k!$q{klDr Y2$itm2#J2<6d\,+EVVYR2YUm-kjs|7S?YU?Lo馛e+>G#?G-~g/ht_dv{=җ p0f0ユN[k$z+ =r-v DOVhH[}z=nd֤Ș䂻I8{E-K(cZHf5۰ߢR8ۜ5Usw WN2}`MɅ-O/.WJdc&?Zg>H388uo#Jt81NVk]rj.[nK59qbΖzݢvkm:o{ޔYnpRNL~q#3mx#g(=Hm6ٱgɤOd젙REE<LD\ˑF j(x Lq"2́FrpLgL| YERh>Yx"E.d2-%FgJ>hա^TH;InQ3]z,@Itx.nw2j#ڔ]lqk̡/&y}j%^qDi; ;\PhYm u6kR@[@]ȟ# TkKAh`  "Ur\K$O.]=x˄9u)FrjitȤ2[X|Y"fYRr6n_RƓe^HnYY\͒<U߻9vj`BmF)jSc;^ez ݑ֍VZ5"RK~p0 igMۡӁG Õ-/0 uP9\SZ$ C3϶RV  Gza/=@0  gɳ׏~&:stNIW?^uE)eZO[>7d%tVJ+8\!ur2-]v`}AeQQ+*ǡ\ejv|c7yjL>( z(W=V}aϺxjjW^q4ک*Gw{k([Y86Bb+( :/% @*ew E΅qr,!pEa+Xx ڲ$_He1N˒rf))|-v5[) ;JZլNVq\{N"k[8|q>3x7{sisSwN+QR qZHPz/ qZβ1xqْ v嵷V Y.Zmnm]x"lEaj \uM:Q\e&~Qnm]e7Qrz}e 1R'erq_YAPgv&B`⟰%+?p%&xCuD(|uתkخDwDwVK(Ĭ('|O$Bma4޷H}TD;"\4/A5@oy{6~D77vwR6TŌb[lP(fC,ɽ||4us!jljc{ЖBFuF2HYucn4] $_ϓY'RU\AV-O>҇o {#@ڣ#IM684vE:Zz B,YUzX^Rdd8`,'.G $?(eZ[u$0p\: ?',K "Ƙ_kᰯ,KTZϳg?'硔+幢A6V-?a^ n.im?effl-+mlu֯_uBAB1>A"!Uu(ѲV03 _铠8Ul擸AĪ /@8CzAl(6@E4GE[r .̑KZTH, 3|iZ :,4d,|?eA0OS@?pu=JfB#3yxؤNFdAHfB3 ,r1\Db(r5s(?ZȲ~OxQVQ>ܭ ׆ЁSw_;F k\z|<ِwr& zG=Z8\R_y ,k02H ݋BxO5Fa0P*s|ӱxZo}nr T}Nl5߲ ukoj"Ƶ=x㏫.#=ry.y=V_ )\wn~"I;HbJYg*ƻ0M8O`"X &I1Olu!lJ,dr<,x28LMijx6=wv1=9U.<,Y;"PG4IIL r@Α[ȭq&V^W+YIzbr [jbVe jbօ1''1>Z_͖2UmX9 bes|1H$/ QIGI.4[LaB\M':YCq/v2@b,`:v>yQ$/EMO Or [|Ksl,عe&@:\f,u xV dTr=8yEMg7g~lхLf 8UA >:v;I4I|t)pnEhݫ(?)}|lN t3NZ'Լڛ L^PP"XszV v³\f,q*֎P:a7>%+b 9=hZX1qzbR X@9 m9 6qcx&v]7z'\9r]J[\`,IP "AZMMidwP=W\1L84=e0pxvn7롲\׾gSٮÅc,x~{_UUi>BF5FFBLr!( SĮCIyq0VtC?!(3"5@0+8n|S.$$x`54TA2 s'xfsD٭ 1OI,QVy +Luf@=9c%/FQ[.ilZd<HHˬ/e*$UyӘ^K5N8Oe.<8?9q$`s8:`L\MGpiā1 G\mv<hТ+G40B 8L*ŏ59>ʋ}~}|ݦO=1!x?7&M"Qqp"EL<;nm5 yU8WRtbzgW0z'X0Mqك;6)fJ0M dzBN1jG-br&'H,PuK/=4)Hʪ'is1wwQ9]+ {e(Mt6?2D F6YR2&Sw{1JDaຊ#(jƀ-+r=@@ܼ2yNZa^-ciye@azRo[kWڎ1@R+UƱ1 s3l'=ҰHJj4҆q)vunKҲ\/mln `.Aqw~n=Ϯ(Vz})1%̲F]Yqe~lek0 DZ8D!m;iٚq! h ʀR)nwF(E~QRɾ,?C}k *=~3ɽ{ڽF>?k_^{Yv~Yr\G.Gɋ+k7$"%?B~|:-o E a./gRq2MiD#ʦլlY*J^ΒE^)' 9.۰\'E5dQ.媄g6T̪Lev!ycYV\X3Y-g\$U&E2WAȊmXd>+J!jC*i YV$d+^>֗~'{5]/rpRNy%}ɇO HDW Ȑȅ2I08AId9\2 lze}ڍ\}5̞,H̿V/m;EF W%MBeUEM0aѲJ3lXfvg:;Y\H/A\&rtᆼOFd-|*?(tˋ[Knuf2ٗY~o9qt>ǒG0cYnO -ifM`ס2͜efQIn rq7yfg{{tk+{?2ww;^8>66A;;E-햒`kpP`08&(KHӺ#p">m19 ב;NA']hRY2[0 l1_jaV#A>Bv)t.unp.LtݳD_ m<ߍj^39@}}p :pO8ΟRrKpH(ԜבUd3H|+$^9O%@~'O.cgT*+^t|y,G3B25!&/qt?v9Nb3;\)i[X#p+,h(Z=V$Გfeyc!DaĶy,X|k0 !C240+@A֔/Q +%`#% OO ՄV{7iA[]Y;@\[?}d\}sr^fzi;bAYvu{h2յnl!,!oJy*|C:.0J`1: vg\ _ aYnY"@DdpВ# !RC]F+(&I, <{Z r\46@Z\]cQnQ k 6J;ntrTZV>l4V+ZX][ϓD*ttPkh77o OyiRd®0 :%i/B* 9 +$ frHN;mhw_>=9u:nXVH%g\Pja1RYA 5Zp=[6ßY׎ˆ~tصAVr,-\[R؛mlnW:{}F_#m{/"No5S= OŸÿ BFKYKY| 9_LȁE"\I!_5 5}(Yf4KȂ@k4KgI!H,ml"oraYǁ)ft6p8 뾵`OdQ!+nAҳd&iVI4ִ&әLy5u6IT%"e5.]y,j9K\+D6?8ɓe +r1(J.x@ƣ޲z\+g,CABh&#-L) N)AOgFduY,okx=.'ܳqJeHmC}<Ӛ""FJ Dk.O Sc+DFе)|/P茿ʤM{!BK ij-{kj5mM)::ZJ Lpj q|PsMr( )l{i^$i壟s}Mվ 1a muSF6@’ T{BJt(O1V-4c! vvԅK DLZnS a ZAy \kղgz9r1 a~/u=,m~`3ϯ)@RY!7Ʋ- n*"w`,p-Kвca(@9\qTQjsNu\yhkKD=ATQ~?֌j+`3E=0"(sq̵-י#) \0 M[Zs څv 8P?&~I~@)c'(ҠW+`)W x4aV.X^-(IJH6{AU;H ow&9&q.<ˀ zzR{?j(UJY,8nr-1o2K (70 8julphĢ>ѷL: `^.hY8G׎ <DZK_g{< j *TN&_׀i4+XYVzH 8ϻnw>?;>|Oge#hV @5Wu}|oa- uJ<˲,2pǃ P@FM?Ż z|2?I=OlpBy;JRb ؗsl3nv )K)>ydN ֪ qlL|ۆvg6=<]&ez(VسvFmYm;xnl"mM<),q!%;aBm(ɹi+^'kFz`2͒7|,&x'b ΋KhKlW=7î{)z(,\ƫeDFǎm {=1}̡;H|O=꺞_%}O_شGGz}Kzke@)hfgYxl86c: -k)cΫuۏn*z(< y1fs]%ğyZ267j/q'zg_gl\RyJ e$'^~ێdw zJEiujTW7Cl8j0{W gni{@ xbÍQ7j5Gtص\--kŧhrmw7uz*V,7! C- 1`$Y.Q(pC]Yi|(_B S=gܺ]\]ݨ5N4URD8F5j=|)v:k(j ΡjɎV]pRe) Y4x%ucuU[kmU(e;۵;e3]%y6y5zr?rtM'YECdˁc'0^zHPtpdDL?*Qs$͓Sk8 FNdq =ihDnF I^L\F(ʪ*@)h+Gԩ-iՕVӖȔr{SGzi-?8CJ]$R RP0L f"*yhve 8+0L8r, 8[םYY,ƴH3@)aYR^2vI#軦38#Or@. B!%  \_\}OuKn%/&$@N )LS8Jm`qZ%GCͤ̄v^-_BEOṙku{z]V?:s\ $q#6[ͷ͛k)e{]bk2!p]P8rDV^VIP{K?{RJ5mj^i4)Da-"V5)₷{"s63YxD,As0> WsΣWg#ۆ`A$Xv0*] ò%e!$m4aBL9ũv8$A~ۚÍZ1Iw\}lQ)eUd 5Gί}lCr۔U${ $&/i(a1[`r)E5WM#ɲLYq(@C%w<=Tɼ/)Ke9K19|>K?yX-\:GZu[ǿhk ~7 X)N +kc!IA>DQVsmڇyv,f׾1BDB rι+KG=082ZL@V}& `:.ˀb'3r=`"= ,hnpOD}٤fpoƨW;I؈T8Nf`s]F3a)Lxa:AYJ{qk=T~;II"qTEo6{$7l3Z1uJ!èakZg#rIID:7;B(!W 'k$H;`lL8%p 6wysF1ힸQoaڝjcWGkkkkG׭uvNݙLc;l< VWgsOƍxݞsx$ p%!2(*fGFoy趯frǿwk-Unr\$%Ɏӗ1=-|; ݃ifb`GF;dˊqڶ5.P8Mk2Ql6MQ`ϰc-A`MΛ 11 ,XM}H9׾ Qli>ڶmC9?bhcYo70E(sr?sng4UG*XEmRbUn 61n &NFmYyTDaNi"6vH(#-lt\c,@8NȇIl+&4ݚCyIĉeT[C0ՓS%o{mRB1"8a{yl ?޷&^?.C6zV-sU[7k^F0|=4ir;y/ꃄfy@qa5-z+(:r cqW |d+ZnuZ_ךM^o f N񟼉O$p'nA0 Μ9q[O#ZEw8Aф\߰ dLd$*k;ER鋥j䋙ǽw-W;\qB۱~-k,_~_җt˗=ol{[k7s9\?^8躢Ƶ3+d4ސF$YDV$wYMWw䣷\jA[=N85G>b6Nr6i&PJ^lO+䖶xpa!S+T0р;Nyf z$q90iZE)*4JШYM8p6f5u /m(5?v]_qBbTʨ$߀ϐ7ȋ( /!y}VX2 +!`,4V-AE L#r炩k&.ֻWM'q5$~gwvB¿e1c(%s- Pm7 "֚ ˷¥ D@*>E_ KgH){ak˶icBO0H}O W [Kɸ4mv,'UԊ?i $?Z[IY:ƞ._>FN0Ƶ9IflR9vَµlCyd43͸LL0L0{@;Y9:ΌӑbiʩZ@DLC2a8ڔJD%\`fs@PR C (QPKv mM)Bv? &K "eTCιsd Q uC JzP ؅gHƆ1JKPCkcq3θ(XB^ksmXݚ) -J8M s)mN9" jw-a٭<5A"4].]YHkz~=ĽC8a ZFzFA?x .q[m"CB|MYPkVD65\.ЬJ, _V(Tcs$8ް _/zkE7h>v(IFG_k& DPo~a?k2I3Y {cBz {DCSqȋț7O'_ _"6IJX/;r]5(:V4{6Ui& \bfDU1+U/Xl)ͫоil9ݵLms1KZ.™V!Ѩ kZ־+U7hn/$(E@@QyuP@ m >_xom,-v{m}~i)n}2~<y~ܡ=Y.H&4K#5; pŶImv:4mov:flfaEi$ eqҷlxgsbyt]_ȹPW](b^+Y2M U.\EEY$x҅!{)aɕ7Z/$ixjb]>˂SOllo{/+ Pk8u$3B:cxMxaժW Aȋd-/t@N|Ӊ=(&I4|x)} ip`YQ{ 3q{ 4N Q#B8\&-%9yH-SFP=y"hIihg6S/}1&1 eK(N=pf9g{~9[p"W*K ɅYJjq-*juW2!g2S柂3k7< yQtV!cL9w1z̓ VHSjn+`س XVwR2靼CG1ƆMb@?;{cut kݕk', B0a|=E)X~s~Cli448Ȯx ؔJQʋ¨pB[mI%BR8)cbFy5+b_d\}Afd )'w"d-P=41걯IHY>:^]s]-N+e1{F=D\VdIOl5)%;)'AW`]qߕ P݂ 62BXJ[Ƹ`Lxt'ﻞ&Kmw=*紫رЦP躵a[&9(ReIƘUȘ<ߒ%)[rm{nY[ ߓv1G,)-,!L9s.8gs]EQHPfC*$gKO'meZqʷt۵0꤉5 "m0F ըRN)--"ߧY=?q8,h6[Z>laq,OH˞E]/O\( w/0Q KUa:u&!㄂*E9-e.C3w|%@K7Brtt^$CƪáwB$ڰ(@ICM7^}lVG`BɃՐ XDSv OjVVݫ&W̌ *pݲ9t鸔"mA2ޢeb I|SI53Z;mR,E),1+Xe,/&Rdq2'{e9_P Q[n_Բ)u.Cjogst){9uz();_ yAͺضK]^@).b*/flzͯgsȫJx'$ޗ";=lxkL,ރl91=_dQ,|^*Ljg2&D[I))IuVƸ=EYBR =@yB'You,ךW9L$88 cR^\K $n6wǷ =m(5} A ^r}H^5( ²(ʢ,qf\,KuOJH:KoTg <|| 4ls:M˲<_&)I:2Vl2Iʩ@˷ (b~yeYp4< Acل/,7"I nt}Es4o\,@[1VZ0=+'Oy;O9۾XeUve_<ƂB^›Fwyyq:gֳ*/ArEE ^jمh!isrR_lAޘR_#^'"ґ2ǃܐ-)"J8ܷLk2}xAڂƾ~6p5}%ﰀ yUX~X>C_liFZAf- xQsD$eѱ{6tԅ~b?XM& v@HjY&`$|@9TJ鸮ԶرgJ Rȹ0gelPB ҵ , ڢQ%mIuj,`_б>;8sl` ;@us\pE[V.kN6s5 Vv]Emay `hPJ\H;2EY&QBsq2@ x2aƸ us8Q`!gk<BI<K[@^*H+BHb~$ ~)s-̶Y-pb nygW X'eҽH5d(<-+| P(Cc(>ѠAtƎ껸w }>b }\Bn]g=)\b.{:Dͪ9|C=uUVWͲUoXǙ{6pMќx-8t sJpuuļw|4\U-~YZX;j[8Q=Ж--.kpPTgVW,W8pg '~MaϨBYYb/Y:SZw(Lqd%X#Kf{d%d}ղ3%-O96&y?O[RJlZA<3JCTl ۣ!fVŌrWR(>!T8E;NI%8M(Jk V(qYJ6t8GC(:|}}wo{#PǶQh;X cF! CIߤMIA c_dL 9Z* 'svղp IZ#qP` DZb\g" !-|Š`!(?? " ";8OYra(~mպ=7O߆}h2=1T JKTךOe1<(w؅>)C .mK5fE/[[JX@۵,oeqL-{M[e;[xW1D,`օH7>! {O*ؾG(ul\›7ps=JCtmOK@RB;[v(s$|45'L2q] n !,U<wN'dL=U9 ЗR~!BcFW^Ec͸ +{xpp߽'pG {bKQOYACF'1 qZt4Tqpv.nɒ^=@<x"IE1zzdqR<K7i6gcQo"^1W^ۊЪA%-ξ(vm+bzA57fkǨO{q֠ٽe{66Z(Յ_ca\o o%d$';>Z@/j~S.g&ꂕ 7^Oe_#8lenǍޢםkdo>uj͏_5z^_t2ڙZw{sr4C/W &$-)܆*[VpX9|-J/w߁m;{I?FɹH?λ]4DqW:Ձy';{s0~y_:AW(?@^dI#$@ (=nME)rA1̖bYƷT&ٰ*~^V`EQų4ɪ0B5Jɼb<)ed9Ѣ\8p OQ2! L7e8X !9H ]+$4iY#DAeezwl2=38Uo9"Rc`bT %hy ס%ðoP!nIm&EdiP1X];wK攊~^b1ںوp- jNj6ҏC,͸Q9ҶA(eh 1PFA} @[-bN9XSlNՔYP0B }_48q >c 0fRȾceySX6!`q'iBUjyh:c ?;)TuApr<<(>8g@V٪K c{i >St@iP2@iK{ r7y*ͪnRgyԵr-ml<$n!r]V]YD Ri1MHV h N.i[4^TaKTFHGYeL4(H(WڟeMNqCn"6fH@n(7M}_Q>0dw GɘBefnʜȯ{\fHxRp\hNFq2I#GQ`k+-FH3ՋI83sݳum z!9۵mx|U߷MFJ3v'IΆW=}GE\6]><Yy}C^]Wv}}FΑ; Ǻ_[vM )B1q~UyWpRurh8R6Rʲҏ8R⨨,kŠRƹK0^;?Ng77/Ík7Ǩk6v69Z>ja^m9͇:@/Oa ZM/wTy@>x' Ls+țȷ}*q9L'Am gTnׯv|Y-K;ӣb_W_]~X++e9j;A0ֳqۊ r8rCo6Vehj2kP$4m[kmRR/aX ?viVk}m$ ci6iA/j$n!^^wm0csɲ0$±WoVtFۖŔXed Xo!p`e'Yd(OsGf~װ|Ce`ޢ-gIPG ^(wG ڮ1ZqT&3D.ǩ/_YXd/ Ozq{u6ݎt3\Aժ8} rF;1i4`{. 5σN{cϫ\Iڵڦ4)ʛ$z>+C*ΖiF ZM!r?E4OxR"+NnV8^ 9LFit6ȑ'cXUӢ8wvqe `Yr^ 9e ϊ1EYF˪'QG APh8E>ȋrǜ-3dt6 5nFDJ-W)rTY nUe;ZҟV`Տ專c,B| )6[(=3YZ-gH9 &&QfAgَ';E#zLX,u@-|6e|#@82 eL1T@3q&J%g[.K0FUnCR @Ic@32R`83%>@ͥ`ZD$Es*P1q gPqĈ RF%@V~`.++C*u!"@;=΄=~r7gQʣj@RhfRRT)]c2 4MHcA2:cuZYjEitQ߶XZA2VkZ8qD -<q36z1Dcb 3`nk9ꠥ|6Qvd~{ @&ID"É~>lE0bj6 mGu=P  )C0 m -r6.g#<ϗ˙(8AO9 xJSka$0 luJ :\."e:P,?%)*!RR)8cՆ4H\ P(! :EΥY@B $pDdDvarB` !EYjY-4[8i\ˢR$,B(՚zwɜt^nu$*5&$8z`o$ר1'"8X(\>NS?'!YY0x㮶,qB9_IR޳@q,݃0l^%S}-wљ;dVIbԬմ,\$`lXI0c lZ̓|n̊׺Q7 KCU/|&|u}Ѱ!{F#I@pv xve[m>* )3ŒGi"ỵr|OlwXHQe5HV+\ &(Yu.%l!lA@ATX{r7qp۩;IpsummCnooW43֓f|ppfdigiCuuw̓|~|4GNS/GBI/B E5>J3%Mi6葥Y<[VŒo%;OJ9#G \Zp pfN7;9]/fCYs"IIʨI~4\f;y^VW2Q<7uRkqRJukgq\lgm=@ϒڱQd@ն,NVVWǫs팢h6k3mu:[!S&#do0jYoyhb;IVJ ْui}x?nz;泩VzE<M=>[^}JRֳ_`p\z.3tbmZT(& YϦ:uNƺUZh= %U(i|ٷj0:r71I5IzŔJ;WſN 1]9vyrEQ_>>DOE~ Nn />`rV2[ʉjY-vfZ6S]~W yͲvQWˆƶ\|Vul|^{/y̦vVGme\Ͳ5^iW.{,Wz^ z=}Yezp__z_۳X5`Ʒ f/fof.fYo_kmYnY7v6[t~\l7ěf:zٲ v1vݐ.v]m-ӧx=͸iksp lh5rfgSvaXտ0n3X&q )B a ˃ L*?4:=]zoe:=h jr+ ɛ;ThG)@'hVJ)ֲVJ{(w(3~ RV;ѹ0Xu-;s9qK=LP7؛_b.]MuB ؝iInc=*m>){3/bxR8BڈKPqCddY7DM4:+z$b:EB&t]o:d8mQhe~a4!|4'RT_ٽ9p(td8F( ;̝d1κjqRnU7o1ߺDQđyTgG_Ek6ev,ˤGpTQcikpLn ԄXnv{I~7esz ͚0pJvKȥm;7B4quV&ݘNAc>|ԃPoy% fpI~ǟuN֫;W~Dǰ;|^A$>vU߾=j=Ίן_/#nu ?w'|*$jygq~$=㻳7stwyUu Ot\qD>J)!7u88 y|EFѾ:t*&Kf]gAfX)ϱ Orʊ֧'<\pIwhh{/;Nȳf<>ű2 Cp~y4UUUAAH(~A\>^wR%,d[=Ax_w?@ \<o&ŗw䯿g<"Dv3_|ͿŒ5<M jCP1rdP(f/56cUiZy2f2z->'ʪ]67ZՋ]+*H؝v4Ы*WV}()You! 2Ųi%:뉪*\z IE ?\ fMwL jḘhQNoeL!CYhk+z*֯(Yۚm" @[W $Ȫ g^l`WzT;bٖ6Ԡ%ļk2?vMu1v OrYv=B\'Da^v|;KJwD ۃULj3n)`ı4%%*ǦnVM]04URJVMmb塚̀ މxY#CLFItRgdɐ4Ā9 Rٛ +< c)$+'2H@y&8.CC 6]v̓TT\J ^ce晚[)YeopҺ&%k/>(ɭIĂ˚m! z$dJr0 @IWeY%'}+'12EYƕ `XzĚֆG0~ʊ*cZ e+Z)6Rѧ^Wo\B*nӰ(/?u~>,ꦱI'ָcRi 1iQwN@UUYٰ/4D"Kp~)/2I`wd2i.h$ Md-hv)}cXk 1ZC+8bԋ8KY -1 h6s0)3MSiEǽ^B7mOh yYȾsJ TsB.[QfQ2Yֶg*\_E0h,X&SɄ(D\!܎} Udq#i7ݞC 8** eP5nQء6U`uCY;>R/]_fv<Ƥ)6oOFUZ7i$is6]Q}qYѫ*͋+,Bw[m7[ćљZE Qd5Zw\kka(xb ,yd Z,yB LF4M]ʅpKY^vǎ/"Q?,٤_ã o5-Q*0Mm ȋu*OEr_=fk*sjue|dM'"W(#_p<䳺μd@BkQZLf8lW.htzr2*1|x9Lk"WqEˣA:oF+/6\awdE9hܬv_s7iúnmvB3 n97[j-YnY`Ԋͦ%ʃ3($'UU6m!GEZ5=^rVzlTǦfK6b]4BHmˇ =%Ty dD ˬ<7!r]Wt!ʒ0ύdjL2Im4 )*byB\F7y #`J 22Jwi Rl3X"XmLX i`0xC=J )\} $0R*O icXk}׎/ 9sY-YP e)hHCdA뜖L@f@Y;1AI}I6W;ɣ4Dl{%H^ŤJ$v(\Zca᝕^ FNYi213D )8hqe)T^SJ)f,LR-e+%82H'qlOPVVR!ʒdɸmMSckͫHep n ZXzDJIa`P7 &Qs?_m xΏr򧮢_?M;+>?(=]&N d;ÁJ>fƇn[ iq81I$XwiUͫ]=QVbyC묅A'(>j(ƺ2xusˎ&u3_ހN|TڜRTgL+Wnޜ͔9ߏĕ/,Cw 3Xk-ڲD׃$ yx5֧uc>]2="윛7h&8n),RŮAyBonW2 >7PL&P9z.N$Gqm9[#8/x,({>_jĿ<~ţ7w[sws\xyotft/)XFo w'{ %Y+yAG)݅|IIh?sɈi8Zyd:,_̃wæp٨% M/J .PCg nQ^O})dY~,:7C{epϝB(}'+S[۪eFÿ_FRzx ^ P{Ry* W b35J 28$$ xqu_ϤWN_1QVX4Ѣ(GԄ<,SjDrVɲ]kfXoh@Y,no2p#X<ֵmG+8Q<+ߟ8LSaTşQ-7fƍ6@gȘ9 #%-eūW' HB2(eTUFe 2<џOz>xGW}M_|adxTK䛾cuχQ-Ü;,"|ņ817kݣ(XgR2^!LA #t\rƨԔ(\2|�w]T5r} @c r9mc(d\KE]K;Izث՗ "Z.Ң7(=]YO#hwڣGv'J:cRfF:zgY3wo*vN9\Þ ?4%wʢB ý|dm+dPGf,Zeb\,oku[/yӺm@X?}f[9o8{q6ݠ{(*OH9rAvԍ\i_A}{GOgItq&7x.NZwp|o}VnTW^ly9=cP4K$B>'%w w _ÚF%*kB`$ $c,2dI'ڣ.eYn߆RLjejmY+R70pG$ 6Ĝ`8+vI =_%I4/yO=c&xƢ?'z3+.sfJFJf7AypB—&lZ'֒v;yd[h21hjYɦeذnѨTb' 8|&m*HU̸8K^[VVWWW/}tNlm eg;Iͭ{;tρ|ےpqjpUXHGqygbȜ J 3H]XӃY}hiԅ4WBV.L)Xst/ &8z衣m+蹸fȄOX5X ioAq9[,j\Z'ṯ݉m';qݨ?hm#[7?Z7^Qt:cu$?ݽ}LIr /5Yrr%*d`.XU,s}-4MdbY,LE,33aU. `/MX%ήϹ皐p9C=Wdsn(iv*UowzwߩtD, ;cp N?5mۄdX^Qgwl4ϒ /ؒg)W+(cVҔ18)M뙹HOQ٨;*fT~Tϸ (F(kVkZӝDH^KQ)ۡ1d(ez4h @٥c-haj[m <0fsfshHKLA?5t:v$nqDA- |LuR:c-BrD3'YHp>sLp8!DWECb0bAG7T%ЎAm.z[>GN;ϛI$܉"{_ms!.n\Gm:]Z`;Q؀ˇ ~1utEQyx| 6Nܺs뉣-f8vԶ`0|L"%@6),&|FԢfJf;[g5֠бQCD"ץ, ^ ?AZ}h J9CY&PRDi%I, >}p>6b[ȳ ȷ&LFx!մL+gY9$7a%uwL"0Kcľ.%횚F !$S"V]>x2N &Aq`2^LU@Am+A~EeQS*2 x1^ wpB&]ƉLI &|Y~ìYQ)A%YӉEkPc[-TelcAe5|8j$:|AA+wBm0*wQ6:}O0@݊? ae t:R5#W~u"cQi @c]JDyڶ#xm:wDALq!rN%Զ}l\ sl ž'rPV"Ɣ׈QMASixRf$ruZr`%n0Z0h2 +I%MNT0eJ=ZX*ٶ#Tk,߱*Zc QrA) @igIB ^RJ8׀6eB0ni(̿8&dBu҇ΔBe#(l<CHD{¯~c#6>2XNOI c&zQDle Fb<ݺpri)eƸ]mRq-w,)̹;xuN>FR"M@i[RdQ/f,#Q5{<Yeo|+,-}}+[)EC=m/3~Ju? @?#:zxԊ]BBs:|FH@lչd)C+gc/Syfp,{P"Fu V CAxy_߳Hi]#2mvo,SxBT&}1~t:^[N \t=)gR/͘6&)jY8{ScIץH&V( w=4eL+)B(7J3D!k{W\Z؜[Ju,X[[q$9k´qa1@HBG޳(&+zr;y+_P1Zg"b ODtɗ Mža#!,*d2r${Dz-RXkRXRrP)3,ꅁ|vaR(,K !-Kޛ nwݣ8'(ZRJXF Jp4bdvAyҊ.u3\nY!²x>ٍ"YY%edN\A`meA}$7/~wϩɟ40[Gϲ +eӿU{eϸ|.8v)E9pFn \'{d<00s3UUX?\ywgv`hڲLfiC-DkmpЖlZ ikIDXQfV:VjhF'&tSӧ(=u Ҟv͆ī!jZy TT#ּDn9\Z;ò郲svtF=ج ^6&GyUvm!3hxN7}oO;0Wr (̨2*y}*p3& }y,꺛֠#;mwtCf,nBSl 췡΋.oڪv喷W+f`v0*7V=i+kߕyx[X k׵;izYu^,u߰PK7;wO7|E߆_ rMH$J*Xyv;5AHKP˔ xdj)24[V|v<{x(H^1(=؉,Q"%Cba5-OzϙY7%@Y=N_S7Cla7Jɓ10g,quנrbZZbcbϓL8rSnE@6<%q"Pg ~tS;+g'r}(;ߊNg:;ŋl>A>=umө t܈l&'W>>qͯM5"׿\=Fo_>}yT8M8&W| $wĒ jx>tЉ4" *:dEOG{9w{Z;rwJFf$N"ױ+IF"(IBAϕ:fw3~wJ䂆x۫IRjRzk͹n86! !W ~>9G(+  a *,5"H!t&?Iz^!O~VJ%n)IMs[_|J)vTA.Sۅڔ[8_:?@/!O _Cq!־RQq}B\8 ![&I@HBUD2m,%XtȺlӵ|XVnz# QC7ye~7ĉƓ^(H)0Rh|ҤK$@֗q7 J>64B30#$ ~KgQu&BF*'s+<` \18@جYM' u͌"Uxbժ|I+c[@ Zrҹ43Ӛ'Kpɿw 0uq'%ǦESR-7Ifz}J E=l+\Z-2-* ׭7;aOS3ի4C@Q"0 z" -6Tc;pn̸pM6"ceq[I Hs@Ksr4Қ W];JQ~l@8@!h=gR'aƕ%v9-򸢈Bw .d'ML!d(*a Y)I] 2 gxܹ( t ܿDwx>};_}dgןVmjmtvTm+^ǝٹZ^>gmyX#SgVq๲'B"Oc'/߉ 48)F5 ͭZ|= 1zZ'2XqTeACmJ̒jc'3ȓwm K1Q-aQ!v1s~9Vx?wB9}%E-pRQ[A_A>z |(Ѷ{ q]Ѕ0BqzJ҈Zu\!J*{2E/L=0.7~Η!~ڮ pBPH4c!0*ة@5p]X@5p]hēŃyrG9G7ĔI9}Z ?6jsێ bxcYgO@|@rT6Ӗ5`,AM,wdyƎ3"C$U 2wn*|/o<8q^g\CB6;1ގדylYiV.$NfE٬؆ )sdj"ȸl3u?z.5ڹW.d'd~@#ew?xb*s/(}|0;*O9ǿ{^ˏ? K˟x/q?x]if]~n[}.IgCmVem:xKFחeBs (y;! !@<=!Ȯ䲚/X@d$Yr2HbkR Xxe1T4XOnk.ͩtuW6~[pnY(p*Ӧ|m`QV !#t5wzQt Gޓr!Y+(gn5'o`JsڔqňaNh+RƘbqӌ1}b B6y ȯ @+rg1B ;]exί/tVe)`xFd ZᔙKRAY7B$#>UޖBUfn%c jeXkޑ/_Ex2մ(?*4L'Xr}Sك~Gq*M!fiyQЪp`uf3vPΞ'K]r  AwV\{9ގ'ldz)tz `}ԩu㜷߮2nwNYhq4|+;u(kgnS]8Ϯ L|ruׯwQD)MO=6ѣHIvhD/b DqƸ@Z3v ʚJ#PҾXH", NpR*2\0(RE03urk州ME{M+W$-szaԟ@~yJ&>ˢxWI@޳qpTILH= g^(D9P+*1b<:,1Q)wsa./y A2Bq4+\!y5yB('p>Zf')HV{W@d{XP[2x] E9M#/R4 V]Q~UhcVEC洚_,H^[v>DRJ1'2^eʸ^ϕa6C1.q}_Y0NbF6+e #2F k4(.4 |0bQNz~ =! >0,#& )ytb۝N6V5 APk'q돊6m׵rq-Rv?M qgyf}? hi@*Pk9A[mr FNdщ◧jP6>x-WGZ1玱Ji&3G:N4{/1OEŴv-GM)!!L.vhC/!Lfg>:axorAd<!('cM0@6D!={NAo8scs>D`v0û&M_VS?^7 }mGyc!t|!( ^1#:tz.5+0=%we8AO5ٮX/ݠ,gI#ϭ/L7f f(jYlv$r J&ıR-F%U(;j mib#[n~_~8Y^<[˥(iEzq9ty\@ @Vlw ˆpj3Bu<8G#9PH ȣ7T$JA]po/J+h1kA2}H yis,@^v3Ԡ10Ah Ɨ2Ji:' ,Av!@#6 T,3N.I{lۯ*?ݷxlM=GI%riv{6 EILS/'U^9{Ha:--楋t)L~ >B/{V+k6{Xʬ֨OZaJ8-U0KHtPyҝ6002SʎxiQɃ썫ݞg%);Zt4jFq~?K`e~nۦh f'0&՝I?t\}7jO[SP eRBz!̫,jAȣBYZ|C$KV;o4Q_M0ؽrL4:)iގ-B4!قβhF/.=0w_CzO|C2!O&+rx,#2x{L6IӕWbY<:i-xXELo{I#;gJVa@Jٱ8<)o+Εeڞ#+2ZHۖ2RII<6Z'}m'_X?q{CZP,qRUGh ,,ul0Ψ8nxNb,[%l4~4aЀb7~Բ۱8AVDDO8Z_ƪ%/yNj~y?#vƇFdfR|G[ުpM1Vk_Iy utpc_fz&J'o2v@')Dوғb74>?=In`lI@OB4fi!0iXm!qYQ` N+GL(S䛇! R>0)kRW>KfQ@[F]J%ey59I*s$ :n:3Kb;R%7 FNpf&3+ xw!͐o#Y۩6+ rT>svv<~j9+,cz?o17>@TxE~bnVgN~=g_BBϖNvJdЗWXYiV]A^ O0Ie/iSBu!#FKB.r 8kUˊ~j:(h$VWU {D=>gi-D;})˻$BjZ4k` 'nRRϟQh@7MzcmZ،) ΄xRY&,);iM))-ѴldY9ƶ,8i:ƶ~X*-RJN^YжCrvDТҥ3Rm;28.@J,Օ)%{&scnۦN=w~9/k JUtR8l$xqmJ.+zu+98fKoi@Ƙ~__BY`:}d{KgP2VX+ut&p29$4ɲ>p}i& w- .]2/E";` y4Tfu^7=hOohRgf_5-PR@Yگ3w;BvZRYgӬ5| đb˯D?[7zFR%)`ԸH*7tS9֠.:dYzgk57oIiJBۂ^jPgK2 SP0bͿϾ~4hxp ϏƺH}ܣq:eiB#y1| J^BH#8$M㼼"}b(mЋ}Nb!I$C J^.).ACxOMϏcuj~9 ȚvEaeEyUS݀mhOJﶛ.f%2iF v8מFUK˔RՙEDg, /M~wC C,RX{nyOMjb0q^/ u\'6wUf i}ݝ# \qr@'#0Zp{ bJJ%Pfm23ӶSAueɐV@B}lK(˄"fr6K'pd7uڝL.9/pT!=,ށrd,NuKu3=+|{{ ,>_܋<.E,P"zAr]glu ~u=gT=nڕX3Qm&mJw,g{ HH{u[Nk/bٵU[][ߴ'ݶMmkhvupozVn?MMoί]+ӏ>~) !IBVJ)q$AV!WTsfc>zvß ^߾S-|܋,)%kBB)5WJ*5 ׫qvQ q+VjA&~چxֶYS^F9?BDfC~kc8Mymls$h eLVגlei̓plx9‹Zj͖S;xj|Tw$/_B<3) r CVs\zV(l `:Ic|)Lzj4C5Aq|wJ"bT/`Qh-sm־X. bYΌ&|7 T]m4 m lzDiͤ$%qJ8cr>x AQZ4KZT k38T HE,iLDiU[r81(BFd6B@Bqaxhq΋ζI"kDE,,M?KiI䜔ȥ9AZYJڀI*RcrS5yHI06$U &']B8nj pRHҢLL\ VR\W H* M1!JR . iB*cҬ@2`s'%,b6fVMl0ezmhW&41ւ8ϵEi6TjOZi?ГׂƤ ?)Eߏ7GU293BlHEEl!MXLԋ{t+dbH.ʬy蝦ΥMI$c[Mj=G&!oӦI;)o.awEqDBBkO1Z%DɽHi|mhbVDE"ʞ x?+e5k^> ϸx?|(~ކ~Is䢞=2gߎ};Z7{T1 ނGPagsW]Vϻr(ѶxumS>!v u_:nr_Ø0w$eq(NƝCG4o~o\iN} 8lWSAUpx^oMes+Dz[{ yS.` >oŃeL~8b<a!leHˀ{sGJf{zԻ,mU-:b=ϰsRf:gvýHF>J^RwvM_O\w .~:c&3<=}DF_Enor7ֻo^{iW&WSZUaCftJwj<:#װ3l6;P7V1MOuN._ôi ˑ$i~*J$^eEQUGE18%Rw痖TAAm§\k9|Jt-zm)E #|DuS]#@͙c:c+'01oK+tr4\sI[,uDm [pl?rKW \EXlO}jrronq '{4U͍4>*[ên۴fl1Z?)hc@JWggoBzk/k!mB (9v=7:{lC{ p0'\8d&NO I"RɺtNN4sYm'm(w"cB͐׆$ `^SUv*ϵ6- *eYg^Ft$׆(&Hqi,<{ Vj5;"H+x@b} 0; D(%4Z ^7!~ef:I:IXLbb b#$ USxVV\`dI:TފV#J 2!4eR?aA(޻*$%#QJJRxY L~`kDth=}Qh<7rsK̯.9d9cl2#+qj~>%} V{;U]rqs6mMϱhxA '&1oi͖%@6 ţ~ +rպAXV7Wו ^Ѣ) j9f;?֕j@Hm4Ic@w^ ^jȋW_*fY&Ku_ٶ/~bʇ ]SOCO{=&d'YYA~g|ŇOtN%il4&ѥ4j<-~g۶ml0޸GnDoGt{gwhN>e_6=JAlpÛҙz:k\nS# JpD4NƉ5+/v7ތxkq]d<{O8bZsQ}'{ГO ~^Qzx1dHDsn=.2$ bb`и.I3o-*QFr,.HydZ6DZ0̜VP /]t>X63|zgb0oU?a[u)`U{(aejQtNn!a#SlVͻ@!"?[(QvӉw2c=og.pm^d+fY8 Zt;[|_՛a@A_SʶRʱ' ex">9ry yٴpPR7GU1[L[Zc2s_ۃYl}fYfr*EVzH%<8ٕ\9{t5׮]{?qi)aŌnBFZ- q*o ϯ(Dܙ$|e%dB}? Kb{(ҷ6 y ^ԨwRWqw- |軟;P?dl))cx!Q\l Bg߂M 8jL' ׯnL~r;!T6RFqZkMj'@gk؜Ϭ>?eq4 }cۦ5Z-J(xάv[HE [d j0M50ݵZFr=ﹾӔ^{dOI~;r@ӌ=t8LSI#q(,8/hT?)(ͤ2;D4{a53īh@E}䗸 rRNc23Ea,ͪ.YfoňO}8AȮK"EG RL}xTIYqqD!ht`vb6R uw:ţZP[j :\t(q&x8Jom#`=Ѵ] f6n)3(Kv(Ѧ筍˲踳n1qT-m6(e"R@9R"=ϭjkf4vZA1L=,bEq_F35rj;iZ? R(R#D B*ۖڮCi,`TpxH2JmhzLIl0`BỲ+׈%meU=Φi 3`Bu ƲZ=ώ˳(bqK+6\X,vmgh2 rTi lNla$&ءw['Nzah5F2*(4*R1xHŘ|"P4Oli[Pv*U|RgÒI D ⤜Ϧ^]tqȝ nls&?y~ag;; 5}6Ǐ g|0x5v*FWnAog6ޥOR߹k#OǛqpzK27Ž'RQ/yԫ iJRӥ%ـ.Ԩg>W ؽ,qWfM%"u͍tǛ(ZVoJJ_/nC_\9W⇻O":_m:.EgBR8. 8XόU|Y1hqb<d13bi\jo ϓ]~~\^ yŵ5rMRSjN{p孀Y:tudg&R׋7'VT{a:fqjՂ$Lk8o։yKS%NB*-t|tf6RƸmҬޏ3-GZ 85;w4벩v%]{Km:/5d7)|1 `]CN, ϋkv]-aFiBwgҲpۭ 78[N x֖SQvOcPm{ZrI;ƃ.F,BJrQ'b$|Q&dv 98織j28:;M\Yگ(e:1A|i6O~zD%q\m{to[ Y]H&9u/$˼IelNw$GQ`ێa*$1o~߽$R@v bnJ0ɾ? h&,*i'{i!2TSmRE,G<|E"|=چABM) @ƒbly<и;!8X:5*LYCE#t 0Lp4=tHX8A~ @@Q>iIϱOIvd!A,@ۮQP9|Ѐ}g'0ܽk@@Ғ*~@SⳐ1 /?]-,\29x(* bH=0[+ /,U%-_=Egϓ5rBѲ34 BsgN~L0dTPT22 WA-3;g|sqײ5jfZˬdkcNskF&ްsďQ2<\2!*̒-5t<-*oC=8oaZa`'?;,QYQW|d{$ב;03CMQ%Dtp>p?̒K: @J|AHպ]U.yo|ማLw/y6,NȒA>{\䉐lVɢ }h3N/l9㶊LMK]kjdz@կzZQ$:e᳏_9dn0$:~rkI4}$qD|iPu=\2q{_[up,vOK?pzuq[RY 08,S9L;ikmĹ թWo$XAgش#&%d@\.$rJxT0_ƎոbO ,z娔YE"vyJ5\롔iR[-Kוa۲[u/f7!* I%ȽrR xxfRFt q*cef$[L.FeKUEsPOr("2x"fRHbbCemQ!< ܲ,f 4F5c4,PR(,έS;(x!@R/؂-1P (3(Q lG mvzea܊ L2u7`S$S$&VB:+hv*d,޶f 66ֿOXgs~ĉ'Đ'gSiR9q3-=ÌK.64$qz(Aьln8<=BΆCW&hHyySj [xLA1g!!d̀j)@Q^)m؛{+Nބ[ 򅠺ȝ3k'XR+op߅T yIm,3 {k3{yMjv}oZMwn^ja sTlfؓw\= !I,i6mC3!BHlں&@& zwT؜`B">M4uJ9$ AڦmTלHR麹rQ+WF+iyzx`͊h4.˛a(V2IiaG~C0|/]\Zd8:?YE1ןwGm .]0P+XW,d4z]U-.E|m0 \ofv]i2WcT7T!Mj) qO-oAV5 e渻;TbE=yqsX`{!(4ۡEфC񺹃zn,LP+3bCzY1cVQZԼm¶@#j2i N`jB Ld6hZV[njF>6{"2 :- "Ikc&R+=B!UOM1hعr.,./! Xx\5sb74 Z 6oP“WK$`F,3,p#~Vvq<7I$.Y8V9NhC !$iMj_ `  ;8(l F?*66tbt^URFSK)ҍ7dL#G ȹR2u h$"5, JJV)=ebΤO!cJD0LLc&^H>_ v[0*iv nS̺>t]l!7wy[!dM,u߄{pK.Bgnzpx iv c* yd.m1˦kCKhng|'-Y]nYղ Onl1k\,7˝=b[o&Ʈ]A ;X2I( \$?3LjlhS%U+m[yPnVP#+۪т!nd9Eό]Vj9иn>Dž\i ͻ*J*9!djYzz烉΁e R*i ,$_7t b|C/D۱|8.Jje,p(wR4+kgteʤ@xM>ƐJ&BԁH@J/J8M2myNXI`'.;@N ?L<˒$BZ,T|q aƬe2W Jji b'/Z" #hhHn"fJV52' /^@ciȩ2x!4xs῎'&Z렝 Vcbr> uنSqݴeeɤ9WR(bmU:fM,DC Kerqb-׎-djQoAfWrD$vBy.tfljI9y\ u- /Z3_]YZ,Fm5 GK|u!0-h9Xi9R%,+zmunu bҴ$07}{gdޡb`b:h!,X8LȬ:xc<3j)4V xzZVܨ1r+̇`XൾKgG@Hcb!T #bm ͫу@Zʬp`J8Vp`$"$X{+B2;gw! FJ9X=Cѧb6?q/[*/|[Z-wꍗvƀ3X1'vv"Bܩ Z%ۺ K[?|s?WX9: ˨爷qeԵugg>lvtb:nj;g_Y!:Nos_:fǟMjLbHKB|?QEs7?'C/!" jĵ |/e\kMxnׁ<4ahz#)#0#zۺ}6.dׂ1mòN≐q,BfjƳ`gRԚ#[J@wH-=b/̓mF A! hqNl[6_z}Nw\phnlQ;uT))<(LRJarlrv!I44aت782Ɓ'n`<.EdJJqCJ I@SI[- t]7֘ЏBf(v\8$phHZ( \ QD 3M 8e\Pc`HȹG*@PwB $RIS:R\p.⬶A3imcpJv rFv;w{-oyl(՜ٶh7{?O{j.eg~ԣ;ڻ!nػkN=ؽz^)Yp A0mC2R g@lHDo .W8pt8];!F(Onsh|nLLW`TT#yԟ1~pP$p%TDj-`nA+]ŃAƙN+O=ui@ٽ7?]ADCJn` rPޱ{&vX]2'?K705drRp7T hHoZӗ(VűyűvRv?aQ?0J6=q~EQ-nYv>}amApG']bL,ɀɌe\eÄDKtkl@۲62+IY6+d|r`jYrTT~Gglێ5 Uf۶l- g|g6v6yYT)|^'MyJLA9|XDب7F!A A!`:בwSS䑮X{a3 #LօYABNjfWi)5@u&a7qet`V6NY\@i )e-7`Szr6d{0=^5FvBy8lZe5(K%/{Y0L:JAt@[!g2쓘#o&dwQj:b\QlLt6cu<`lb*oZz`@mFO2V,Jx0xVzI+ʹGmI!hct% AZk11.gi!z+'I)([aYSx[bk+]OG(iJ(+ӺV} 9Z2!lʾ1oԷTYTZ*uli5025m$ETjle^Mr`[cTӗpfk~|~,tv뮭u{6slt4s7u+@P$4gMD_(Xt{g<պr&`dvٿ<^.Jy&3l:jY$Ztʢ߷~,;j)_N,{}W QD?(К‡>zxs>#+,zeiXf8ky0iԽ6=uE8Q1%I/e*m~Pzdwu+h* 7sY͔8a#oC[aԱ'Spj#c>Yw^?&J/˨%Yh3(r\׉p;DWO"ǁ|77o7y!+UBx^&2Yf"U9DբL‹ Lc>ydzVzwotśf^w_sѷw}dzJ ?s=?^?;Y8 ]B6^[,x'"א+,LD(eo(_.fEQbNj&Q5;hSh cټZ !lYd"Nw2\'7dbk{ V1[`˸Y"ˀA4[~ 'ߗɫn}8uW`P  0הG*mDϹ <]JDߠЖ1VifS@qb譜Ob8Ra8L~>˂8ԧl) C=o%Xh$:M+x$e$愊<c陛JYz8bρw|ۨvHR7jk56\r黢Ҫ'\ָc3*̮\֛GbUo}-oyܹb]_HwqUU9^@j\fڶ~?ڶ(O,N QDywHi$Ž~g"z >3Qt,Qȭ5Ă}ٹ6Өu]j۵ճVh{ ,kUdJ]R'_jٲvU7~JtRjڪ/qk&#ff*g>d4򓫶Yo*vcAovg^^km֫$ț NhbR}tm-rO l}zw*aai)Qon}phZދmκӭe6jU7λ}תn~ XXe,m6],N5f|`o3)9{o [zjSMj֬46S%py7_[)q~rFOAe1\˝LY5W[z]6UeZ:~Pi5ڳOfecnP7ljviuHUBZ_&q^ױ+ D<Sq4#)e*G0IȻ!faݘY|R(-Mc` e( S:H@:S%} CtL3CH1&`qu3$Y'mS[2})-@A!dN;X)`{H )HR a q "EÆ @Q ӳk7}&')\OobbRL&dhg3QD6ve q(¥!֒*a>f/tS&Ik)WD`R sD$֊Sʓ́_h*$-{F4Kcm#T&#糤!P,zsRB γ'iL`# ^:VWbiAv>e,U0fUݤ=pv;<8 ))+q_{ "&u.YyMf!A_[ aLB?YcJHkMf{H(m>CMz"(KBX!\VD(`#A/a(a(RQEx~M4^gѯ?1Ο_m_k,dyzvðU6]&ɡnZOZ7Xnf~Y0@oSb]7s Z=Av-lf7PWcޭ=vV۴{t(#x=ݮloWWa&C6Y' H!֮:U3u@~6*C# UM]Cݮ]6uM+=o=~U klognn[f]kY.9slޱzTnjoqU/|6]/v4 LھMKdړ~^m7z[7zͺvFZt[bZ7GI/ޤ({ۼjOEtk+^/tsXv ʧKͶz|JQ.FOsmV]&9&Z,gsOrlIVSc#1M]˕U= '$ߘfӳS6jڮbh@|N!־jfnZj;N՚N@1S! aG''xt|6=R#>bbI("u\tkHLlL)bB &*]29S(G,Y9ҁ'O>7;g!{@Upǝ{E@RԍbkB+q~YC5DWӪ!mIQ8dOZXk\=MESc!aWM#ɹEUDQ4 ̉:YTɷ3WRct ŀ 8p0c#%%)z a!]"zf x-VJ| ҕRB:' ;RX t o@C႔wY/c" Y͟@nzԽR-)7M^Yll0Ze)fCYE ,6O75h:zW\]?#N%m&b6 !uux lUuc8K?hXؘShMQH. %R6Rz$]e 2著aB`L,c ҜeB繑A`~J$X ʌ:'.kэWJ_x ޅOǗ[3| tjWzub/ϛ/{վ]W?Zl{+̮[L#"ĉ}nR^,w-[Rnۯ6.Enˆ{*;vw[۶Y;-wmUzvT7kjnTlתzw[7YPjլ`5uF8QetZVͤm=k\ЂQ,Z즳i{z~]wY[~7 B:r0zg׀Rۚ|?G.nޖKnT F#t6A-π%n%Zo]3f[m޵SX. qegU#`- %EZ X!:T|/ Z/oBZ >*)$ɲazI\^#1r '|uZM)- bIStU,BHHPICt7Ђ#ߤXbg_7ޛԏB)QhD,^&Ǜ9Z?yaޅ8Qh}UgՕLI͒٬x8aB)AFA2;-J5ˈ*:#;Ĩ0D JJ~G$ "K0 AiO gQ \P,')~)4G+| wX6yM'Q]3B:!cXҍZG_BCZR JB@hcb (RQzhrH-t-Z: L(z=jI!qCw .ߔ q̄+,mofex}₯T|RIw5K/FiE>>?NExaRUi#^%=5(Ý0| up͒ƾٳXimgJ{PM'Hu2β,B9k_84Mf%CdT9&kq(C:_UUtч>}GU7aQuM4aˎDu^xgM{@ĦI,U̔MRl0ֻ{k}Uka:c(D7ύ>O|2~Њ^N/GejdBZΫL/nw[sk:Zϐ^:G JIZ9=sye>0yr>A%82{!-Q~5plV*c$B,1]CT1YӲ= >M.(ܡMj!Ö@+dW0;Z@))cit>f2'Iqo\Ա4`Lh-ଆVfbر&!"9le[8Ugg RH+aQJ݈¿#)C$ m bT,b$kAp씂ɪ:=yhW.˦)%94c<AxR) ds&/ i{5 )dm]!H !/OB|<8`8hprxB?|81AW^g d$ݞk!¤~H%㺑2NFP E3bV0e$jCo㊈J$%Ep: 8%IRKfPqB#BZ*b-)O$n`I!dX{/͔g 0`i8HYkHql@DB1Q6\>|n2#f5Hy~ldVUH f)An5A>_?9Jʴ5IiL?IF^N<(nJkqt\w€mGE>DHE GR֫cv/ۢ~+E}_iKwU(Jw*/e|I\g$NLB&i5Ib|1|aІx0e(dyLېۓMXA"LQuai6X絘t/Բ}\|(/f0*A6, 3!8L L/aU&t&PeHFZJQJ4I];LQ}13"Ef-BxWUUCq.JG#̼rQv%x=)x_uz dwHc+k %jл>%^Mp෸12R2&|(ºGs7 o %d_T6E>!~<<2Ҹe,=3 ,cpK!yY`,/j E!PQ7 +`(^m{1>`n4: ҋN/ǿ yRAk}}75̂{noGli!TP)Kwv ]xRr"ha4C&n&bBmB0z>E A0*J֡)-PϖaS3D5*LJ&]]:rh/( kX?:)g[ֶl,=F,nm,)&6]qwnCN.4ݶ~fcoloes=0"Zfjn;-m;ޜ{U!X|>K)Zu;fP$i_k$pb #iH!qpTBI/  WrQhcX(H9q.mx1Lm{ 0w9.!0ɹd}99|:Fq.$I(s~YѢ̡2vou /|߹ `qnK^z&<ބGA/zmB4Y去V*8`!Y&׼1?Y[p1Y- z2o()@Ν?j*)no?dʕ"Hv \!EhYMdYb^ d. 6fT{RN;.7iLhrDPMd<5? /M Xri^c(p4,BrTqR -,,&r9y2;tM>e<l,hԃY'߱r<كE.+`N(=!;n{PtiR#ueg`=x/{Ж[q!E䅒ڵ&8Ok;n鉕'[?B،UW`IJlZ|W: "NgG@[ԯ>O -jkZKXfSz z9k9@|ʖWAZ&ImPR)NbDz^D@`hXK)piJI;Rq՚y.g4A4SZeFC@~AKZVGΤ,4i$^3Fըyb6w]-< y V+fzcYj&,U٬-YW48SY.fL.L軧,/4}7'Z^w&F߇ۙS~;͎ǧdo "<ڙNw(VbskZ_N6i5!a]1D<߃軺FgeufNg> [;y 8VLD/c-My{fjjl\MTΘbBƈU|x8fO3BҤӈc?G7Z ,c(ꃶW%wӇ0D2qıaYmg54-1s#'Q2`2'xݰHG&Sboe%nLY'HΦd`X'Dw| b=X=l-O\h6W?l"4X4Z]i<WW[M9݋&f= 퉚(z>hjQV[/ofj f3.50Ci*Q:Sf QnVHv1y>ǹr10RgD5er JkN`hO"_'ϺLLwb)mbѷ$|F.yޗ]~~O]c,3ZZ[,v+mse`O&\J h x~DRd%U^Aq$-4Mb͛+#.dݷBmm @eFݍ~v+,$s'^gۣ8kv(WQA0nWVzb;Y3Ʈ{ 7pC-A /s8 2*Md*<^hS,xҲ5Tޮ1nܐL\zRH|QIezՍBlcaԫj5RM tFQzZ1j4(VV(r|bw+=&4|^oRt,rBE5aߵmUK\ ȋx dz"GpXzPE1Q%Q=|5E_}Kh0* OSc#ᤷxv]߸v;8k+юL)1Rjmu%PˑR{+;Wa!]腚KmҊ?]ojw'N~#?j5^㚵J$ EBSwg WkII(73h5mH]v^_i[ӖX]۔fA s،˛v7Ipf ʴA@16,e (E9қƻER8r)dPZ P7DARMM0'UOBk. v(DYTUf29t<]Y)䡵۶흗m&Leٴi\D[EF* q\[4NLZKINd:eA}VWFYUُۦi|v'66Mf RbR/MZ4sŨ'~r$WbѲ}RO!oBN@P9M+V\ S֦NRu@O@FW0!ĥGٹt{z}Lҕkӎmc'6 qshy>r Kvn#vy QD_}3X_d@H$gY=k|ˢiը;#dAjĴOsx^(v :22K&g@/S69ɢ|, 8 vzVi6$^ i۶McWhZ,kk_ڶ-%vl)(! C&aYrBf6l60|n}j{:mʶ瓟IM+J{fAmێvyiY)EW4"8KU%Ivx5|,99M.PD1.t =Lf ,H̵rx hhcYMoq8Ї8eV0xd{Ν:5Vkm{7zISW7LD!vA-cG՚M˞x|hi{#dbtw2'p?g=;UcߧTQfXwƖ%Ty}&"q|2٢3GaָMʿb]Y\+}TJ)xquTg5f=x6Sͥ}h{0OOoLkt;c^XjIMTɫs^I\?.B dyk{i<`u5|A#nf}/Ǹ6_l& N0[:ίtFAolEleb/nnfy:uqJJmIUh,P0F*:K@k;Ք߽dBm_IrkB E/c*I-YN38qJ2VJitkI]U:fOKoX+HS ,#VflP03e^J,FB xyrv :+u23%R12fe Uy8l`-7& ֪{8nlMYtfGRUR+?k%[XYsmc?p<>X)ٶӳk Ӵ,'[2Q;vgrXQY&~|4\eawy4r(χ8cpZ67]lucg*^(zcY캞W:{fR췿uu"+B jYZ!6<<, w7_ [e{tNC-h^Sq }҅=P(%!CDyn$uܤu}o:g4`«aJ!#@]2&d93zqyQżu R0vm+ 7 wgmġy)%( "ЊXlyn;h+vuw77cb(`j|n춠 iEHwlMbg;O^}wi""KFQ1"1rfҼ 5,~Mz((b RI9p֧RG;Վy]Dϫ5o?Y(yiZZ`}Ch5q-m4jcK?~3v= 0|f( j$$#2%d  jz|FJ€G(u~Nʟb[ɷI6s|%Ì=XF;:cCE({R>LR)jl^_r$yYE/6#S4ׁ+ǗCۆuxo?V븶vte.-;<::터V޾|b:.i@ԧIs\94ɀX&8Q+$ R" oy w @7HJ| "5n|"5Ve;XjZ& m)A1KmX}8()fŪl2B\΀}RVۉ%%rU!'PeZMRƻcn1l{XL(`;YhX r~1ȇц1̃ɯm 'qW8dRM#CZ6}ˬh8E<\$ΥK[xM & Qc4۔P*ZƽұҜ*UJG8%&0EQ7uU_msLZ`KcH|*'v^gzcKeܶo;^zf,=i5t6meY༠6ME7ZSqMSi2mLruQʙVc%ְgK:Iidv, B{ĞP2ZkmȜ#% CP82Q?hu cL.7,8չs&0:nZDzmff@];QH/Flڼ*~k)<, 3"R6( ΎG}cQppמkJ$ z!6M}T(fQg9^ӄ6MSƦi0XMQvsJc@2!%jtڱ.c}55ݶ5?Fs! wTM!=Tz`RQ%Ɠ6M4!3Jf$ƹ:i`ʦY.n>% x, ڶ^niAp\HM}WA]qRIAME1lz׮>`v{L[yyi42˅h `0 1S18 ̡kB^ |KEWGEE<2XUZj/ert] ⁋60@*v@l@oݬn-2!6,i*?sȠvҲr}qKFȸA'Y0B8m%^Yeov]]gzq~q/[1bE>260;.bL1_N=khn# rtk$$IDYTebp }Ȗr]Ry 6^%+M $u-cMߦԴw*_Rju.\7$ICmm cYnWK5j/)6$mek xbΓIhxd@"0 L aQ)[?8saN4N:`; v531l- ]cYF]R,̘b'rwnwW ''lbZ־1~7x}f`(R fp%$EqC H aIPYLC964۶K1p6n4p8̇Vhl_VxU)S^轇׮G@/!zE5CmJYDkԶԶ/ :FrئvM؉'wDQ^s&S/{٩S~H^kg$I!$IŇZ*Uf"ID4IAt44 (Ito19A'wGM*#3?l Yd^ʼu!ILFtdBjf!9n:<+Ûߺ@l foCF?sǤf}'mcq*$vPJϊ[8PikDZ8Ahh :pq=ۆ^Q$OC@"X$ؐt[ͪa`'c4_DџO} i}$[ DHLEt:KoehCA:+k.H}?k+<,t/`gPg=hǾ]Ƞm`SLb,ʲUI%\(ݦy_1cE(B($IP Sgu>nMeQ 3h4Ƌh",2VhUWӾ!t!D$1qCUqË"Hܔ-nN֋dML="gAܓ+F]!F$Fcq=ĸEb<1PLw 19%3>*)1H)6EIXrXZS,-f֋sD{bYx`xPۈ~Pxxx@<^ %,,~R+r@%~%OM)/bKRlImubobO؛J<_/\#GeŋW"^+ot8!'ąqb3k_뿉zwwr,iylE1%U1,mR|/1x_1n5k!Է?   {f47>|^F~A㗣 Ѥ@Вh/hYV4Ѻhhy)696 mP:*~Q0j{jy Q>GGKȿvCkh_;:PCA?G'~A'_Coѹ<7at1t!t4>kb܃0A|W+FhkL Sر-y~WG&1mW'1dWw]Xj0;Ӵ].ѵՊzOP6j4ՑeW'RfޮL0/ow2K]]AZ BXNʠ׼tŅ~ZV+(MlK\zɅ6 -eknO N.܌T&g6ʦhO\ּWo<ԅ~F[?y _<=yB,,` ,9, Z\&1UvLODLҤa,Tڒ(2ׂjZ"ҝ>g2ĒLOq8iƸZaZbK/' RdȒ%OL'iK^sIz\,ږbTWe%cޛc>R?[>X. Zfont/woff2)*+,_Mhttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-regular-400.woff2O Rbplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse, '-.4567]^_`abcdefghijklmnopqrstuvwxyz{|}U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1* +()$+,WNS.base[NS.relative_Mhttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-regular-400.woff2/012Z$classnameX$classesUNSURL13XNSObject#AŃ+ 89:K\WNS.keysZNS.objects;<=>?@ABCDEFGHIJ LMNOPQRSTUVWXYZ[ !"#$%&'()\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_x-hcdn-cache-statusVServer_x-turbo-charged-byWExpires]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rtZfont/woff2_Thu, 19 Oct 2023 05:05:17 GMT_*28d9dd15425a5f88757953f6796fe091-mum-edge1_upgrade-insecure-requestsTMISSThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMT_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTU23940_ YnBsaXN0MDDfEA8BAgMEBQYHCAkKCwwNDg8QEhQWGBocHiAiJCYoKixcQ29udGVudC1UeXBlXxASeC1oY2RuLXVwc3RyZWFtLXJ0XxAReC1oY2RuLXJlcXVlc3QtaWRfEBdDb250ZW50LVNlY3VyaXR5LVBvbGljeV8QE3gtaGNkbi1jYWNoZS1zdGF0dXNWU2VydmVyXxASeC10dXJiby1jaGFyZ2VkLWJ5V0V4cGlyZXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRFaZm9udC93b2ZmMqETVTAuMDI2oRVfECoyOGQ5ZGQxNTQyNWE1Zjg4NzU3OTUzZjY3OTZmZTA5MS1tdW0tZWRnZTGhF18QGXVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHOhGVRNSVNToRtUaGNkbqEdWUxpdGVTcGVlZKEfXxAdVGh1LCAyMyBOb3YgMjAyMyAxMzo1MDo0MCBHTVShIV8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChI1lob3N0aW5nZXKhJV8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSdVMjM5NDChKVVieXRlc6ErXxAjIjVkODQtNjUzMGI5MGQtZjBlZTc5YWMyZDAxNjRkYzs7OyKhLV8QHVRodSwgMTkgT2N0IDIwMjMgMDU6MDU6MTcgR01UAAgAKQA2AEsAXwB5AI8AlgCrALMAwQDKAM8A3gDsAPEA/wEBAQwBDgEUARYBQwFFAWEBYwFoAWoBbwFxAXsBfQGdAZ8BuAG6AcQBxgHmAegB7gHwAfYB+AIeAiAAAAAAAAACAQAAAAAAAAAuAAAAAAAAAAAAAAAAAAACQA==Ubytes_#"5d84-6530b90d-f0ee79ac2d0164dc;;;"U0.026/0~_NSMutableDictionary~3\NSDictionaryZfont/woff2/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd BIknqBGR[admvxz +E[bw3OTYc|   $O]wOF2] @]:8$ ` (ʃ`˃ qU!==("5@U;U돿/&>yyx^>)SR:(\̓?^8xOYmNFAݷ⊹$ gUWajfwvwZ*hEkԘ׼f9֏:$ I Dl8=?yoH8#;fBۘd']JD"f{9 }~C'r}6)iKjJEMu&X1]O{T?{M)-u8ѻ39E:o.ȶji3'WMPxQe-WդRg3{Vնnvm9숣9N9팳95o?xgW|;})yu^u|K+=#jieuMi^sXa}[Ǜ,Fh][t^;Ơ(13MQuq8Ɖ8>n[ָ-nx$gx%ߏ?_oA|ڤKz>o*qi^J ~~wR@ m*RT*դtʔ[l[zޯyUk\%zȿӲP[h˻nzja~_/c\Pj7_V,<fΚɦ{YdVn.yΈ`ǁmٶZS~c?j'H%A|]|M"Gd92Kv*$o_'N%dUJ$t@|B:,҈JtGVU"IGg.Yrb|Y!e3_Uo¿ 2mN{tIg]tMw=Ko}O 4HQ % 11DL6436_E[bVZm֩VVͶÎ:3ιt{a>9f򎄵} ɧW!!L$.1w)̈́-ZVBqaq;W<ta|x ij}XDHYw\#yX067:74{ :B\tak&zza#$% ' HHIU5%-#-7}@!㢴KE&:Nw'Ŀ4/4ҁF~mMA?'h24W/ʢڃ6mtmᖡ hKVA03렽   G1g@.z.w@W]^A5}AàA7@7>z0# z`0]!! CO+d*FCr` cB0ܛM0ܻO0 ܇F0\[O% 4pz`:%V6 ~1JSO6_ ~ l`+MPI<|א*!U5|$N !m5<PCYUQÈ맦֣V (8_op@ ;Q8(\RC= jM5D߇VY Ӑea l5LG0Y5 AGC -TC?d0ec Y5LFv^ S][v`#`}jX {vު_jX5@.5\D#py!Va1j8<^ 'd5Aspy#W9j8H 25F^k԰ycX?7#okțj؋ 牢*^s^< s/Kr  d~=/fj8~6Tq㈆W4_W""ʨĦ䖷k߮}zMmMmvzm֩5_]?47B7rq||,8r/3/"|qTaSy!H23`8Jkiy;ceR7퇞qǁcrs00鸺qXBic~aj84~s䄄e"*YgygyVLӻwv(ٹ;lnl4wJwv~,,.vh3Lr^XkZֺܺC_Q,::ZmVޮҴ@ך!P3)ϴ'q tV" L]ǭSc8,)yG۞&cr7!CAdg|lf,^& 9f90?`pPvHk᠜!\L@4b~`᠜ f2h? hX-S}2ʹI3d"TWP}QfLC9&ω0u[4 ӱsB@'h_q\X25Lw;,ɂܲ*;5Xv[M7u?J93 OOV] @,pָ9͖ D+(-V SV$3oXgB,imLoLSl[Ϯ<}q}TjrLbفѻݡ?_*6M}7L[7 {3d9ف._z`\B^ԣi9-r7\{8q|bFnM'WLBZ5\{62]O 'YrE^k^\Mw.?!BziZqXx޷r۷j *qU9`{:w:y_v3 S㟿O$ O`:acGI/%~qJp `ќamXG[%Q;ڬۚ2r&fv8ȆI|a\U,۹k8t/{`[l4-amMOt{jYØ+eˎ7kڤَ~ ִ%n5V<m_q y*A 6uQYRZG_/`0}iJ._y+I6d5۶MU#]1.82۶o8%پi[`[[^>%~.qjX$f[i>ZD1icٚicQտ4U-8(.γCe+ >ӌñr-.L1psz#q n73}?%-iQSq|u}ضEꆡmup1$ϴT0WPsۈ(#CWkXc PAsP~юZ֐4϶!aLhNnJȤ?'GĚ oLXvKz=`ٿ8z~WHe tn2Ntwv453Jv, w2M4G.Fʶ۟\{g!w:CPHDr6gyvt9|sN~!'k$'r7y|C6G~-Վ+⊎z@3x/qcM?XdJ噤 >!5aUv , Vsk+)Ry[T;-PtoCr2|;]2'}d,}%dX2RY^q*2)X&ǿ0̻66ɓH҇rgwV#Xww6{pwڦq%rUHJ>KQ3"]_-=ڗy:6VPBΗX`Ib!=F!Nn/Iw}-!_I''PqtQhcv:X]z1|'c2M.ȕuVa}%cΒ WZ'V._-k'T9LC{SjѝFe]^C5} I$ rY_Q"A*sp{"5VKqNf4]m_L{n9 T-۶|xeS))a[8e%akeo?nk}h>?RRWm[-I5׫ auGEcqGsD4)Q{B ]w4r]8 ؀K2X N3g+9Z7Vo0h1Lpzve{©~&vzak/ meQ[R*#J#IJ%]Y; q&-^ $z0.˳<)Y[T\?bbq^$ ׸S+Ki&zX,bcOt(C&E1HVU;IҭwiEeQ>~QeEalyk ":b]o u?I$tͶ~#~^anjIl!^>lB+=FKd\%o%WHrdUQL"*8@TPAO{Dv]L5ZQzgoo{o 05`.vUD?[}2w ( p-Ns]E7:fٌvйoϿצ"7m j^;UힾAEL'9&cRr'pBMkJIo-O8s /A1Rqqdb}]`,y~;~t9,e|xyy3W$:ėIO&I؋,49MYjRSE&/KzIR*OMⅇS*WQ7i.2Ht%igL n3jYlʈeS _g\Uu;4e'9;$0862K@cfAFҞu-X=S) N`Eo'2gy1NVPXc@q~2/,rYrN 'ŰqV($lIo jabE`*T-ltgM:Dyyg{lVLT -KЭr( $HUB1]Jt^؜t}N ]jQrzķl]m]RRJڋcm4 ӈ6Tu_l; u MH핷ux?mٺT0,΀`dzmT Ay|M#8LiLX&T:q-w0GTfBƓdrpL~}޶e2U4Ty1)86OmcGtߺ/bANRKrp\E8q²5JRp>;aW4rX0L8V3.u| h3c|e2qir*D?.-v} pW~T3rGl^> `:t}>i(9$f| bؠ⧽0șP$KWAww&..)P|ȇGk ^YR,g[P58>[8_V2#? 5r}P pfl(BH)Q ~lgeG+?*!񕚮-,v87v\׉t;_wDLC,I4.b\̰JTQ9/iYe--0+8=z[Sd|v׻T @GdDr4t3Gdz݅7@Q{knIE(b0(/B&}u!ЖA HށIJj*Bk45xy6x24$Eg -a0.Vg>Kna:Zmj6ai`nl\[cսf@Mv˗m[X60 fkFɻ7<ފĒM5K;){:c!jӲكlp$S-6dLq*>k%D@M6:V'pZH< DQ3ٻ}Sy[R G=LjgAE;Qc ֧t))\ɜ\t84&.9 䄁@Sl0RұȟfRkVKk57@XKoU/eu RwJd\&7;Ԗ|, Ts2ܗCӲSr^ +A}k֚zoEZacR!02NIc#\/+ӄ2hII,+U=`FܦX>^$ܴO]-MNG܌o02ƦF?#upORK'QKo4jЩɨqVӀ Az*n: j<6ꉁ|%tH{J'o$%ϐO#%5fӓ?L_8y0!VYC ZLݓ ]=Sk ?zfj9jz. @΋9+2S9"̫H9F +9}d?k[z>1=6NI@<+.xPP0U'7Li;'uضo°qqL%Ida]`x%],WVOp_Wv]'#rI3paӻCYiQOS&(>e`YN/++;@7 ?H z^;藶 PxOolOy>^7M?i<`p9cy&Yjg#,8*U?VqޯZʄ* ho馚$ 2&)4 +,Rq~l2.zk\7@릮ߴІ2Cm>w3{?g{Ro._?%z>;LLݥϘyfWjŢ*!>[ FN]Fp-v|:Vq*zTR갹NڽU)&K^" Y~~6D6o_F_a ⼟wj Hxҍ;.Y3\pkzY@EO#@Y)D0xSCkL, &H,hC6HJs{õ70]]6*uq]iekcğ)BӨ˙(v)2]Rs e XZ ׮n`- G(0 鮤ZV\]Eq1 %4UPԨ.((h@%H'~ٰey`'S& Y$dU M! QϳD"~˿X֔ l L*u6Ե)0]hheLlCxXKlnnkaN\0]O#UKF5ݒTk֨O)UBUucP]CլXOiX# Ԩh4 8j°F%;dB"2̫2F43.^YMܐnT˸! B`@_~_4D3<Gpcw?#iN#s(*-"#rF^KB>FVVi/uMc~>6c2q:X- ) XHiL@/aC9ZT@m#02K.I.iQ+:O!4 sEa[a^;j5O`B`bq b.p؅^t}֤>RYz J^z,`u4<^k2 {^ -Ff{4CVW`W @HCO%9ZӉqIcA:Zt:au.y۝wlۂ@}'`賞'9{Y7ET~{X8;4 J@ Cc\f[CmV3} CMQ`YpZ XaE0vtu^>vL$<30an]sƷ'lQU*j#UBLe h3Jn~_ӕ#d3[vtvoY^5϶}f .\c+;ء!u'ͬL0@iUUe'&'9K]C^e9qē'tTY>V^3.CoSw۾J/خOtOͦ<*]+~ GsG?>zb6XN3_CڴZV{.#i9޳M$#eM2ȇ,U^)*l?hg}1fҹboDo W_]w޷Af0>7[/~c_]&!(xX#]RR%*甤 Pw(<I*/ OqȯͶLپhڛ>=?k.\wŴM&dKo쇇W/2+n]rM&&,3= 8zL+(g]$"S.@zGvc{ rz« Cl棺Izq V1(BVDrEX[`zeMͣ5^u]푂x)S. M$9c>K&ʧ8IЖn pFdSٿ M˶j5ʈwK'L䔾fN ,G_؞ț"yL %_% Ց˥Jqx4mBPiUSƋq1b joc-eGd|VVS&~\_oWp , ORk快v?C%WհŠo 9$D=췧q?'gXqx:,ˁz('3`DeEg>Z:'Uz$UYv44[<DɔP#n^I Aztl?6tIv),U`$]$ >r}0[n_dJH]4aog=wxgx0e~}TQL&^ss5Rk<uq0-}aqJcBz=ZPUKS T&GfLh\_̤xGvI97 ám?'_IU 0u*Աs뛚R:߲wmM(3,.y{*\cDQ4tRctQ 0Ff;} #UiH?K5qOqdXMEᠱ1 X 7PE2wjOv}#/u\XkO?ZI|gd Ebh{iBvQl#LuPZuwюKŒAHxX$@[Ÿ`j7Ytz9MҥiZ4;baF qKHm@:R4uV3>=iSpj:t u$8RǨ]|}|e4XF0bðW#lUvPMEl[馥|L)8wXp)،a0PU}˼IJNa뾏c{^3)B $1|<L,U!E2hCR -\*4w'8Jʮ2/g\:R2u5֭9~nwnjw(j'QQwuVukn(*%tUsOSMMU*p:ߝq}Ț8h7fNӎ#+m3`&㶦Ӵ/KJ7; : qP6h@->g#Ow=v?0NZ17dG&Q̳޾@UV<_ ֙TЄ4hAe%I}4~رfi*:Q> - ݝkEP+5̪i]zo ûQOC'l;VR< 0!{4&c~36ց(n{Q*)& CP) `_RYz>Qy 4CQPC L]b@iPrJ EcݘʊmAI! jK4GsUR"O$hnWԊ%9/e*ŞHլ\ž:4pXkUa#}IN ;$ȞTI\֓binMT]<tp.1.E=\ZôZȪ ѣ"{([d3@-OK7pkrc1HHF(Yx8O=0nȮ 1/S[xA:iO,Mܝ#3鑖T9AX}銢>4SKCI8S&sYGž_:7¡?[#MoH޿:-pӧAIN.h&W´4j1vcWj>"ymRՌG!QʗkwH;2 8͝v{'𼸵 ;ۭz\{An(X'ۚj3-rpfA0;岫*+Θ:e&Ŵ L4Mieɇ783H&CJI:uMMYOˊÙ40YK&n4s !WNgns4y1D7)lhTQ{B1\ay`\9MR~ؚ6xeϭJQPe0 Pu \kAhYU4U(MW(GP 0UuA7ﺥij:nԬUF5 LaW B9yWC`8[EvL'Us@w5ﮯw?A?n h&cA#aIeeVض!W'bo ~}~?RO:6uEѹs-!\F,|K6싙#:teYトWf?}\Oc{sk)oB@`Eh!ړZ@WbI? X~ bq a&pBsG!q填N)5r{R^k[ʉ]abS/C1};"6ƨ4>~Oݧe|k yЛ?l-C-lKBxEŸ#8 Ύ6Gx~9IҺJ4uyza׋ym†w00WRZh hP-37$՘F!!c8񳑧8p&4 ez}62Ѿv\1*" š+UqTH/F"N54٢IUM?+6fDl`"#IZ]44w6gXXC\dN >Mh8N|g{8ANgƽBů(oF9.%)8ԦKPwAX[|sSX$>$o*75 Ĉ~96%d/!74]%A kҐ&T4NQ]#c1}O_$@4LΙr_"-iPY ϟ\})Nw|q`[08\Dz? 5 k~n>dQ\1;J# 2_Ɉ?ӝӓ" 4Lzkd!WI ]dW@ k#˚~'<8F4ϣ=۸PWLΤ;=EɄct\"1~QfDmJBӁ >f".&P@{Wcn|tU7jR0U;o z=+E)@s ~Vcr-6:/yjȪ!8_;o %m7nc'⡶)6͢X_ń䄪}8&~t I0IyK1D2= d*8 Hb^>7ĸC`+Ί1bTlE.i .RbtW ZiwOjZieV[Y)ժ:$1V4R)C s"s=y&j $=\toxL +ȣl;Nvr?g2H)}يEEYY`,\7]`3ELƪ_红RI*K۫, \pfɨ=dY){(Teۖo8=n0`h@ˌB>Y&ϝ9zi3&_0 4EngyrgvI<_ʞ oSmh$bwIA=m۶feT//|Ҷk!f-qܹn9qV56y/l{4$u}_-FLBoM>)Aҝu]xU[kM (>{_prx82QU/N!NtK9z)#GtAXdyd J}njg\& خ2i>Gf5b 4x᾿Z}oI{R3$n1d$ưQְ\\#i 'p0P1hh4[o<ҍM~57]?`&kʌ# $%X=# =\LN^/HT YC[}߯ImVUKmh: i[;Y쉋L8oy_n ܾ$ג9pr>e|y!E$tЍZ=1\zfLWoIR<],jAuҎ!:"|E%"X&War+y=m?1{8jLL*ՁUGS3JTVF!nU0p>T.pm( /W*7ےû_L2Z G?II{t0 8 RȔ(#O))y S6uxFN^X~ 4#$Nzb>iВ_|DʭT 6ts9s)g)UZ9=e 6 9 )2I,VS޶-ԨF9(G7YB*SҭT Ji0Zam) wۚFIV⁓'|%oGTF xNS᭮Hn<[5p?tbzR͂;B6w:t`׮eW wZw7rg^^>|ARJ(Y!ohaH)-~E:yi{\%ؤt&L(9:.-] v#uEW-mGBAIrA\L!TKU(h! ňqT7Mw"oK(rk& Z& '1(?Fd ,5z=g#1u;KpfXB/\~ 秷כqш:3Y߹%4R[ٙ1Y$W ^#*SfI2DHFw_>Y g  aj;BZ\e ɂM#BKaa1kQ*2g"f Iyš/' $#^=-}sDմuz{5G+|5gz–l4O [5$2p-BV*wؽ\q /W𕮢D$k}͖o9ΫXޔd`{7So#0*eT.:0>濳 ]n`Hiֳ^bq,,82/g 9(G]-mKۖ@Dk^ss9ɀܼ S}F;[͇tn]gz:6X.%6k q"ZeG&\bftd :  }{pK9b(nX˝[J)Jsf)f4E g jZ/HۖO0#k~3ETg46p['hnf?|*t4u"'"[K33G`}XO\N O q O 9J&Ϩ|Fc*3h.bqzzcTm<g~6'1(!4aj~z; cOl-R!+9nzMgu7>v6b\7 t`nNMkjdHʁF oތnT{Irr4XR ¦č=|SH hrpɨ\pwzUeպ摐4>|~-Ec4*n5pZ:b1@1~`\7ms&x<'M:qq32d\X~Ơ a!@Q*@ҮWh,ň NR 4lE8G ]7vCW)7^Lϙ;-};gc%p 7[}:Z8l&ѹ֎`':~}gׇGiy5쎠2W.uG9j˖ c?OzAJCTFHǾiFNPR9גg*3N>Z|k( NHCb}ZsV-sjhmP΍Vqѻz>*=F> `/o{^~>o.)*ޟrȈˆAh~FG:=A\(~  ;8#ix>FBiP$KRB)m)ORRL[v)=!}w-cif̅Jg}6'+۞bტŤdl2G+U|̚|v66n|OFs׏*ar`F܎,KkZz,Jx\1 Î\p=*Dnb`iў^G2gpa0Z;SH@#! CbNRgPuS2a8"/8%諏_TJuZn7V$J)=tt´л6JfЩvt3M'a%=QJuu{Os8)|J F%zs$sEĂ:U DܩA {*oӹmӫ_TPPxQ VLCdAnW͝W.)G%=San0h[1]vh^ې  ]D;ti.y A04Z!su;Zfont/woff2./01_Khttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-solid-900.woff2O Rbplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse, '-.4567]^_`abcdefghijklmnopqrstuvwxyz{|}U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1* +()$+,WNS.base[NS.relative_Khttps://edumex.co.in/assets/vendor/font-awesome/webfonts/fa-solid-900.woff2/012Z$classnameX$classesUNSURL13XNSObject#AŃ+89:K\WNS.keysZNS.objects;<=>?@ABCDEFGHIJ LMNOPQRSTUVWXYZ[ !"#$%&'()\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_x-hcdn-cache-statusVServer_x-turbo-charged-byWExpires]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rtZfont/woff2_Thu, 19 Oct 2023 05:05:17 GMT_*97a9433f595b39d642f5190451ed5a00-mum-edge1_upgrade-insecure-requestsTMISSThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMT_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTV154228_ YnBsaXN0MDDfEA8BAgMEBQYHCAkKCwwNDg8QEhQWGBocHiAiJCYoKixcQ29udGVudC1UeXBlXxASeC1oY2RuLXVwc3RyZWFtLXJ0XxAReC1oY2RuLXJlcXVlc3QtaWRfEBdDb250ZW50LVNlY3VyaXR5LVBvbGljeV8QE3gtaGNkbi1jYWNoZS1zdGF0dXNWU2VydmVyXxASeC10dXJiby1jaGFyZ2VkLWJ5V0V4cGlyZXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRFaZm9udC93b2ZmMqETVTAuMDI2oRVfECo5N2E5NDMzZjU5NWIzOWQ2NDJmNTE5MDQ1MWVkNWEwMC1tdW0tZWRnZTGhF18QGXVwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHOhGVRNSVNToRtUaGNkbqEdWUxpdGVTcGVlZKEfXxAdVGh1LCAyMyBOb3YgMjAyMyAxMzo1MDo0MCBHTVShIV8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChI1lob3N0aW5nZXKhJV8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSdWMTU0MjI4oSlVYnl0ZXOhK18QJCIyNWE3NC02NTMwYjkwZC05ZTViNzc0Yzg1OGY3Y2IxOzs7IqEtXxAdVGh1LCAxOSBPY3QgMjAyMyAwNTowNToxNyBHTVQACAApADYASwBfAHkAjwCWAKsAswDBAMoAzwDeAOwA8QD/AQEBDAEOARQBFgFDAUUBYQFjAWgBagFvAXEBewF9AZ0BnwG4AboBxAHGAeYB6AHvAfEB9wH5AiACIgAAAAAAAAIBAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAJCUbytes_$"25a74-6530b90d-9e5b774c858f7cb1;;;"U0.026/0~_NSMutableDictionary~3\NSDictionaryZfont/woff2/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd BIknq@EPY_bktvx)CY`u}1MRWa{   $OZtwOF2Zt (Z)8$ `(@ʔ(˫,p ВHpaDfOq@UUUUդlG?/~OO´lx}~=N' Gu@p1Gf,̥*V<[WUW#@"[D8ʋ L7IO{v.EbQYBP+F)? '8pj9? ޻HOғfF#i4ƞL;4q7ammRڅ3\vb.]B/AexϽlofe Ö!ɐ@X5wbqѐ=QLƝRź_ŝEEWҊ_ӖZKqԛ2 `6Cjj#&A=@>^N23PtݔяYiTLN2:xV\Z7/1|xV~LJݷ =3!ĤylzOe:NQhLG2V[fAi=++ Ҙ'li +Ct)sҹ(jWZ_:\9֜YU]Ӥ Ay9 \xf悹;swfq}=3w tLdt #Ɉ=cr\ 2* !#{̟_ fT._E5OBo)[JLwK4HRkBb-w* VI>1mG;Kk(m'J1u߹gٜAMƬk[& o2vίV1d2ԏ1ڿ׺- R[뻱I4Wֻ6t `.Uʙ<6P{?2Wl_A@TDHy%AR̟Xdb|ZClm*X[^˿>YzKzmoh5|c*9seͭN5AG (ժ '+fw*YĴ%v]sųcg V̵kv 69Z ]2+2Gn'#cnޫߥJ6"ǭ7Ufh~6˰zSuVBkSah3vzPۼ]HhM=F쮜r kg50H`Ny\?MXF1an/˕ΐbt^ 7gD-ݜy+G:S㭏ĀLF{~~ 4;?*j|avRA}1e*3z_˜̋RCRC:^VyD6{gU>6+*tF:(V<[3պ.4*wZW%Sv) sʳ*4h ēZG'lcޕى7vO50?QŽ+4nC95,)rw->L.[}dvH5灟NcQ*q$7cF5ij;SƾIc9sIni]x{]L}mbH']Jj^Jv}~]xnG&|#ھε]f=򇬯ÞkZqw<@Y|sXhm1%Pk,Q*l_zcӭHy%ӭB#-(ycg</ykwƶl'v=l/ f,%4NJ7y>1<'$sx/5L4 o5"ظh64ۊJh%ڋ$J{I|?/Gw+"RjfUjڢ3]JEuU=PN}Qiw;./W[W+M҃=^oֻ>}H{hSu73\q*9͙w9sxx5W`BhDF D,F3}/ew~?~P@Ch ͠tp.uxOoXH$Ht#|aN,%Xb-lͱ v.{aCqI8 g\Kp5N<"^Ǜxk|n~񘂙?wF02dP%I>ԙS_Lh44bZKi =t@ݦ{^[r# 0@'e]QUUPREUqUZUNUKWT/G P85YU+ZImWq宂TW\.iZ-FMj\}ȴiǏ0ے?8juqˬUuպaݷ[O+d}F@{^fgr,7ÊL/3Uu`w,pm.9.K2{Xai,u+</ _+*_6o{|(G |)ķjK?/JiSDN_EcBtD_1@ sBB 'rW(ݲg۩yֈo[nz𲿏O#Lcx9QN3D.k:Qn^y@ V`)cd̐o(u.4F CG<\[+x a2Ӯ56#p,N)8SZq=nx O-|6Nɘ# Pa*t MHh4"ZCh3m=tX<]+tSzIo=ySv%k8ʮrMQU1ZmT[fpW+ՕuEkDT]j&)ff75h3f3pbFe4㲱il7!FWo'g3||i}>\kUzE^ˡtd9;~!}>gه}.{5^^ ^e^ ^]: O>6<=㻼>^ioww;;;ZMM؍\\ǵ]e,9/8s;_} s3=#===-]%f&-R- 4TДDX  @WRuQGS}SUP7? 8c_5XcÌcX.Fh-y4$FuFT*Q9*DȢl(ŢhD(#/ӟ#}K_ӗ9M/4=t5tYHg Nt"KGӑtڨ ZuZZeZZyQ꯾jVjڪꪬJ***ʯ|ʫ<ʥʮJdJHQK1?/~~G>> ^%^ianfj2.l Nx@a/dvcWg[f+d 6e6f#cUV`9aib b333f.dvfc&`ơB §2 wíp3\Ê0/L B"0111Bi=u^0O>'ѣѼG`o-7^;!*GQɨ.EQxT8*FKb(j=aO6]aCvfI&4*D^*F;&TaVK9{ oy!V³OpAXIaK/(~b[: <-僗vay6c { `6{~b;Ȟ7bS.y`+a3 a@}h$g-~J VuKm`\[:G#e`K@;i;kl<&E`DWFt\Փz~XB78OO_E @f7~=kV_ Mڀb8R e)Gy*PJT UFuj!KB9RjRԡ.OO)Oa9"'\&r+<(<&S<#/ȋ,{|!_VZ[h=mMQ;igݵԾO su.Z7Fݤunm]uczF/vK }E_w=}_?#X?O3\?oO7 XA+d%g9K5ZYkg]6`jl6R[n+lնѶa^w]{޷C>a?~?O3Og( CЈ ~2@ ru@@;` P LS)@`*0Lt20Tf *0yE_dE,,EEX\&,+jˋ:.*C7B7WBvn 2! q5h?[CAKg  +[! @7@| =@h- @ Ð!s2dA?dNB.h 9 G![:dþĠ= qhOH@t($!AR8$u% 9!B%!Hɷ!r/$?A3H<ɟ!r ^a] CyȽra?4Z8T@?!-]i9jP4i! iP4uAZ~ 7C(B:ҎP>$g>'miI"D q@<ǑG7 M< =HIG!Vшt gc?%]H#tg.AwJ >']0+jt t-B#]PH#|InDtפV'bBoH!?x!Qf"=h#B\<۔<7 40$O \0yYªqAO^ׄ[ 0!l ǑσcĞE܄CܘY@\Y&C;a_꣰Y؟"@}Q??!P_p(~ZA?(hKX8Gx3H8{) Sޑ4w13Sp&m g-i)ùh+<ڮ hLBp`!v2\F;v..] ]IvA7/Mhf4о;ohcڏ|9_ė3ܟ̗s0/ƇiSүK mq-O/M?%g?2AW_I;D8'f%&1a;LL!&' ''ʈȉIi Z%@/9UF\v)2eh+ q(RfDLE{\ܼ=Gn!g ٯr!rQ?%%'נ\n0.r}et# m膑{+#  #$:bq yg!&"6s@LLk?Ky%b26y y-19y=y31%yy;10(13O f&4@B>mπ|'4Eb6%Ms +#""&!b17䟈%&%Rdr 9X6 m *X6-bM숵h N[i[Mؐ}FlDۑ1[vbFTiĦ؜vKOlA{R^5672b[;h#ED^δ_DB#v %v w>m=QEI/b/jF{S3g>ԂJ(qR-DB Pj%Q8ZMZ"qDCmR[S싖j;<jjGDjW匓ݩ}SRQGQ([::x_:::::WRPWQSPR7RJ :=z3n$n=ozzzQz;ԻGڈ)Ň0 }7 e{Lпh#1x6mfidm.y67m>?旇h Жdm)4,v2 dmڵiwi%[=H=L{@{م75ڛAHP">i_#h_I(ڷ"G~9ȱ=r?a$r"1EN9HTj Ө6bN#gP3Q3٩99"Ԣj)\D-+r1%"Rk\F˩uԆfjkuԶzj'jrDnWvj::IBJPKEKNN"Q+g..!QWRW$ uȳmyz nxggR҂u^ ^^#M  ޡowrr򁏂 OO CE@E+ૠ[;{2?Psk[PU;j?z& +_ߠzPA5H-"`1DZ͋& 2BdCdjSB y5DIҠ6$PB! u(PB]!u'bFTA=!C1bA` AC Hhs/F@I > "A-b{. Qz؍(}Bt:JpJ_0oB{C)]Dl^DgQMU^A#(O&$NDy1X- :-I|!Ą$^I$F RA\#Q>pcy,K!aʗW݋$NBDRA6BDvPY(?@B}"ʏQA1oQ~#P~-P~pC\_ J(HbC_"9/o][$ľDCgџ(L(B¥(J(F?_xʿ8ʿ ʅT'+T[o%)rArFX䵈.F^uIy=C^䍉~Bބ|MFތțDW!oIB#H8yw$^Fޏqȇp n&.A>حx-ĮG>-{b _Jt~GB+{.}|T+FBoǨ&~$NE~=|A.H|)y!G>o}>C0Ah),p广sA{hqOXg,W,CC+G+!h5vp7%w G zp^H0"cܽ pj1ܽ`ݛo!w?Bpio~ {ݧlp_d1'hoy ȋw!pw/ww ړCppwNg&h52ٻo#mg!h'w Nq!`-ԋ8iQey+4^P$inwB) J(d8oM77?F|~n1~?$@F;܆@ȳMI<ڴgFahgX2Ƙù5L}ͺ];76\7`Z,ϨINL$6q|M^ł=ҴP>h#R8T||O~5}dt2£cB~3G=ʶgӇowo]]A?58jR3,o5 {Xj(fγeQ/++FŨR1ZX,{bQmADTGP)mBz !fZ\JXrrX2>aqC7Ls/^N v3 t̴v5V&oF7OZz5:E~[= aZo﹇k)BӼzkMus/4u=q\cǨ'>ACgx:!홫3i;φ,g IYz#>3trިo! V*&{_(w;E}LAmX8 b$NlY9Ո3q=ǒ1Xʕbj\Xc`tc=mey -lj̘܃QD`,f,7\m味%0KFJdnc}yVȘm(:V(9$t>SPXaqpyvpkZutSj!b6nUuIؐ<#r Ö&_ !;Hݿ"g "u?u|i[)cYٌN.]7N}%ghS2vd*+.**ɹymdL|=mm_ t͝uU^463]e9C (eec܆͓LjFd,/hkfR~~mۑv]:N{Q̭VK"M+FI]O+RPuحxŒA<-kYV- OϧN,^{Xzp cBKnٺ7ԤiA,S9Z %)8;(euB)wOXadgq4\fʳ6+UC[Ϟ6\n'qҊr@eTϛZ6`ڸmZfe3U(ty'GEgIVgOR:9u>\ ;m{u9=D9>p(MhgiM(LjS3 xF]Hmc'mc'1$cRZ1!=eLf3&c8Pwy'&5̴؆s4?nP9=Do>r]70ʧm Ѩ=T~EF޴|oݗ/WXd2&_+X{N[uVw~þZ]^lJ7li4?K ^3M9p¯ f#0luaY%QW*F0} 0l8׹}%߿@)WVm\˺ 4fscibtt|y#ARD%\t6|{A`\;P9IgW/IbbCk rRDHȾ)nCj-M*A'S$)aEm_oءi Cxi̧sS qs~Wq*Cz65#/]4 b⩹a{Aϫ=1t:]^owGdLΧ1,ڂn2ψB|8鹽8E63[<‰Gi-vz{JR_D!<דItsDz h;6"Clp0h=/؈^С^OC΅ڽR@+K=mA^G#kmeVϧ8&]xXk}ShP΂raC@ XS'԰pcoӂ3]IF嫠4C`=z*{:'Psˤg:R6tK13Tԡ{ϰl.^fYȘp=Y*-_oAU͕!N26^CT2 =s$֎$$M &[L^ KaMQټB2:됌I8Qy6S)05Q6re Š^a˕Dx0*FÍu V>RQ@Cڠ`%#džt-Ggk:;|ZJz8ɿmfFk?sĈq>/]xyt%8O0N8{;8m8i6̂-ˤ۳$Օ27 8W#LJY'I,r-¤pqa#Jta$JP&/:B0 'D&O>`K1YTJ5-ah6z,C4 _c|r.,hBп^߱ *<+0Mʌ,d9!~NE(.5Vw ;lf0IoqPYJ EH0K0mV*ݧխn+zˮ6};US+]BYh(yfcR^ Q-p8·0U8WkS?DJB$&Mv$qd3gfՍ9Ӱ% e5Lb@sR2FD3&W}1q}1ٔ 9οozcfo#cB; :Pxm9>-&Z=VKf zԤi{&J*$hCt6Ӎ]'͹}NQ5Qp\Bي5Vj%qL1!эFMEY$ ˝, x:;|{xʖ _AhllV1y[L0ƄĝrI :bc+a S7gY^05 ҴQ1AhT8\o MYJYLӄ}!41oFhbGeFʢRBfY4Jd S႙=dWM;Jc @T;RF~qxyRrB)g;sKrBb3_2A[o9?LQo̳0w1Jƶ76fdR!'k(Guc;SƅCp.vx-I/NIAދzbThz/' ShE'vRsmdy'3$7Iۊ(dqTD`[!N Q݁Tꡇf Q'# +<}(:Z/!oj/MxEn[:Ҽ%N!WaM_._j5۷V4/Z](>⼏rDzΛJR*A'Ǯ .ʼn5r7Pj;:߲S9l-lvKeHm` g0W4qviqɁ3DF)('<)ݫp=Pw6\<#jNp 2 q2*ʪ.x&٥DW&ݛ(뿎FAE܄>ɤqg]c\pw9]_ڳ+O{("$DWGPHZJRf'=wD4g:exL@@`bܤƠH#.>OH|cW+imw !nm{\>[)T_li{*gR~;qILF&\ s DaN1>z a\=lѷآ1f԰<',cLR+ Q} w,s;$Do.*AH8bGQ /O_x 2Y?3xse6s6IW1n!2PjqB.ж$}+)I1 ɦ)*jSA^R#?NQ*&&e ^vS _uLݷ,CX(6#Fչ{w$cM4PH$i3fyI2;NQ4zۨPt3k:.܄E6mA>,I@u|.&6T  Uz҄U>090 ]Jx@"W0#d}FpDL6YEc蝽Rc-d(9a溒h[:tz] {.+F@qb{ojaA6qH׭Ճ dw' t=ht L`2 ՅGTxR*WvQ`BTS:H&ihF>Rs׼BKJ!B"JTB,3W+Jjp p^@y·1φC+=ϨYta(#4 n9/̪'=<'DoECgLG&SJ{cu)"R;Kgq 1#A8+s1CӬEKӌc}Î#"A )crV5l^!@g n 50 C&\ES+%?]k44Ѩ]g]UyOe[%^wuNKl.lˠB5,;MT?$u/q i0 fxh:)DZ]*Hzi4WQj**Ua+g&Kdg bF3[iҸR ǓPêK8,W8o7P cr}慸J⏺Xdri+ Js f(֎f ^)2a}q\H41&φv簾X.Bzn,#fan*l:fOVNx9,WXč)8p81JZ?az8o*5Bk$fkL0%&bm^>t!:.1(r&Cn!BzKs‰ T*޾Fwy'_#,JDc6At&_}mqHu\2Сsf.JOcH cp}B$QI!Cn[Ũh.mL[pk, rC&<6DK,YU䥦cb1T/ֵQ0m1"w2ǵ6x~{ qX|c886[\\HLܤYndEoT4b${Yi;% db":)wŤKRr2駤g `hY\Nc!., .0cȐk_5*&~^}+h}=ieX03œMs(}T6(pYvcttC[_HN$&Jy:'i,:Dr9\#Q4ح7tkl{54xҨ\/ Ga nl8#~9~N ^oIV!YkT2sfN-Tg^1J5H%gp<oclT!5A_1 %Un|"Q*ek%z l- 1,D}N.DbVf+?9 듿6F\DżjκPxI*?$oݤFsP-9iBYרW#P9G {!#eY<Υ(bT,sB!/b~BJ|7/Zͺbkm u_ylR!?<Wxhx㼞υBHMj)x ~3#6;qhBovBn\)Is8mϬS_~&mIVQ!,@f/-jm?o@)m׼34 g=R'k1 G6ac T:R&_PǬøKbjL CP1٤fhT&EaLnq^%3ɘ3amwǶ 48]>5y:cr'1/_0&/ptmqu:{3a@l VYLRHqMNIW$-4Rj1Z4]4u\FR _hBhQG\s[̲,,Y44fxͮC-c#Ǣy5&t5Ψ[H;|v9e aGr֫'9ضS}kc]ר:cdBA@E}l/Bاy0\=ZD&ة4a6cދ42T+W U\F4lK&QifjO;w`6cj aOrMar ?sK,e1;b/8\ tl otcz,'[|ka4<7W0*b]oz R}KQ|Š"vV]^[4#|饟'm1eMbg a6\ zaF֨Gh0tNFbTIF’ltg99w<1vO+]݉v9&n7vT\6t3ɹ]qpɤ.UN&(csj8 j)֛;Gr[C#tR^hD/' N|=(G#hM G)'5j#=P%ME(a=Yx=Hx/(/-Kb'-6==q?y}`J(EˡnG1S"'i|D ň׉`.Ս𭡡euC^ME8~9qԋ͓Zr?d,j (ĵbyuqZدo ē#oe=W.p0/n~ۻ_ZX^:bP\'" |W2JڂFzQ!V[^״rr_D]tA8Y~PS @䆔mAvCkJ窐AUY:JYh{@㋹R{pA=\%;_z ">WV~4a)\$ 'V6J̩Dm ,&VjA%$҈$M [q3?>Iߏ0)7NoMo WF0<w姄d'a:8r`=[ߟ_OSC$]$VEːp&ASt=c]n`;Œm Z?qL8?;=vM0q=0(:H͉M#;Lxlq4wjqό hUBQ .egZODףн9nNVFnqRo]Q$ϯm|f N^X^pC^qxh;ǸS, z~)-g;Rk]G1po-PZ-%KγlhQ-u\)(e|64^t|Ѷk ︠w_]+gK7eKݨ-z@P&Zߊ>QWˤ/{~i+&~S4Q C&)6sD5D cme"Uۆa-XpW28Į!ATvf9LOi6' $ޔflWoߓd!'H|(NO[d FʹGӟ%${?b:E_հ@Txj3խۃ}vK.K]>xteCaF)!\NGFr4hA+vx𧎬80i̺U[<7wN򤙍a,YUO{<=0۷۶ at#B(KԊYZ(M//+w^ Tf2١A#4S*QhE G-^cqJ26s * ]&z3F5#}b?ztz!N&d[5i8K_5FuGH. a U^RoSEA>idAT߉$z$sc֤.Paùnr(T܌*hlp?oTvyw$%|Ɣb:3Jk=Vx}ҰNWTJQ>"SQÅڊrي:۪iͦj‹pnt: =ռv ܂~ҍ:qVYϏ`*5&O7=9^A<6C*MpE,y̠ ,ox5JbY B/] wfhCﳵ+M\CɿS%1mR.J-=ޤkvAG@AtkDq+j^P?h/SbJ;빼r "ꆪRʌo1~ѻzmeVӾ]%߂]0CRZ^ ˉpn;y҄aánmQ*vDJ͙o40Oul3*>ƾbͶn6u@S+i@)e4|g]Eytz=g C88:ːE.z]F{bdRe p<ئR(`H53"ҏfQdY|#n>zEDj[_}H64mGѴ HO>\~TfPj\1"x*YeI$اʫ%ID&IVV]8p7e4އ:A)*||% m[xiiNG\Cv2wJ(D:e2>Ht7T6' 3k;5K{4$k 2g<9n vlɍ7Zm*}KVݼҏ'q:];#"zK bAqσ5 }tam8Pu#kxj0 9P} @ĊRjj~CCs:JG~sXeRR=Q[9GsQ7 { p/oiCTqMB!ၼ ݰZq 9c= 7o ;6$qRÀhQKhW7՞QSZ?@BgC?`(.K }eseA)s_tC%e -BDf;pNT@W^ݟ`b~@%Qt @"KGk3jP EhѺHݲH- \P,EޒdFu'0!f9Hev5x=ꍣ)p|]qA=V 7%:?Y/fnzkfu4^O.xE$/GhS֔3qۜ2e/.0JGUauK?b$w~nl`|330j[E67“q@u@=eV"`h| OO*V㹶`;`(g nꚫdIK"K"F% jg~O_1JA(!KSȏb/Ks_z@,wcƣu ,9!͞7 )XX\PR6E/$_4E 6 [@nUɶ`<e4W7+)+?EsI܅aņqD^2J/v:5Q^t:=jSvw?^wUA9龶X(0*:n=pKqK+RC'nG&Bj5luYP/Ux Mr/^U`os^Ёpgg'aFXܳk!Z=:{gQ70a.j!Jhtdq`/D2÷'^*U@L&I!Sy Cz<} kF%,$ <d\3L {B4` [`:+~ Y`9*{72)>?#*bn^A ݃Al=#D% WSH)8kb7$ZbGE1f?Eeox;rƺ'(pڇkp][(csYm\~e) XI]U!m6+Wc#InC{@|2z'v`fZL.}܊Fu1J+.ǔNюRRE-|?+jDZL A9nUtsnZg3VZJz(Tҏi^Zժ~mV9…Vn ,kVS&cٕ358:@$T0%HՀ$q=i< a .3?z_0ތj#DL3MSXƩR90wX0U*Iwu!jc\4C%ka  8˼0C=l!:nY ". y0X&Q`%~eϙ*Z04 [a3<9rW^VO! 2.X\)qsjSڣ7$]|fVoi 2Yt3_9ێ *ډ" X`3+pAX92KXao^z=^Oz=ψǠp/ȯZ,=ׁIP'r3^&BM=Ĝ0; #%0>N)h1 1aNT0`LJO`oK@%,gnYhVZSIEPkŭ.U#(}KRID]ƾ-zbpA)ADQU!K, !&t^B)ao_Bg^I(xZ"~}^w52mpnpŭ~#eۮKX-OQBog&K /U,xFs \PVIȱbJTfX&\4͐4 5U|ث/ LMD5Q-.ɲ.H2jo#$ 'c  ╁ye*:N35TeFL_XXA2[[C{F(&2gA  y^"TuّmB,HϭwvCʺb:ۦ|sh`ae`\ >>#,cA+zXA st+CEeXM ;w @vAjk d%%$,6jj8pZw]} m%prz`cBa4sJ-*/H pDcrSe^lp1X ybʩvbls:3H3Et$3<2fH=^n/Jt`ce$'JETk.X5a|"}Z ]"-ERAzis6i6 JA͵qZwl;nV&q2xj_n$D&8F^9NR_`f0us( LI_lݎ@GO%"F4)bw\0`aUzCD:͑Z,5 ~O[ƒm6{q$_U6UȂ iKDDbTX7L70hV4A$Jl 323UUM ;oK&θj@RiʆؕfJDT5R~OϠ# ܋ٮj2*5]m~݉G f',^ϓ*wz ԧ^HחFiٖ"0I }oKdcLZ ʅ?+ gje ۧ M/נ,0f܍lȋu=SY]y]fg9aWxeKe-: M `U OsHżFHO}Z#׭K4XQy7[6kiִUմah)46W.7tzIM_w bhAۻ l6|o]_KI*X p's!v!_!*̶MUʫn5T5gFh#Z =T8Mm{ PT% 4be{F1tnQz=)A;'WU Tb r0BF2CX&^xhԱtK&JFjD{9~ -sWbvƘe1fYZ$SK9Ͳ[,ƴ\5l.驂=p3|>˽4gzOV/Es!;~ˤhP´W\ƲiSNlk%֛ˍlU%9 "Wcò4}㬋*o"n|gbW+$7ku#F=f8cp[},Vʇ=h[f cg I!xY 4|Za|#vʦB)ףUsf9z@nS s|uw*e*c6dCQ$tH>O؜Sdo;u_*9x MX6!5]xtN Bu{yoFIڟw,"`ϔk;QpVyJiƌ/"7_Dᷥ"M3ٳ,)l/wL/gt~G չh W$q)b;#?zXth [4Y^ 8#gϷ'8Ei;szrV;J;7?k!F)0 WãZG $ i oFYb hpI"!lX Ӭ^Ui _(dZiګ0 k{Osl2p!4|`q^FpDA/;M Ɏ %Hq(hh>0Y;y* }}R09$[{y@i1̈́R)ԻZ O}lKܣouVڟf!iОfp3@3ʹ,@]4Ҡ;tn 2]ŪjG zK:Iތp./ j5C=I he'qDC)Le#\,Ƙ.^X@ZC X\e,=n Fw\sXJϋ!ޔ.ws6VPM;TxQ),RvX>kƂ/n"b?s,MqP]^YM(EH!MEtQYM#zo:$x]/)%v*p u& 8Ih-ך+u#^QO[3x>4`'P.17Wx_ĕ`hSپ M'q'ݴI G47I{Qp8A1hL{{ Y%=D-펮ڑm(!EuBf[ vro8`!l]%@sBd‰v5Kם2jd{Ñc <!HQsBdrkG<4,r'׵ n(ٜgDOhh$eC0JPFaFaikBK@~iL4el宴SBp9^vh.`->{3>v)&9G[B+R4Ox>؄xW`hN~w F/;>H;s?~ҋ1b(SԖZl-ӝLPb\a܈bTtA׶^3m "  kBcx1B@NM$ӵy|x* ]vj 1!w;eai|l!f.Yi@ 41q'N|+MàxR26LDj:1?_]z-V5D|ldsH/fTua{ج1)6KU} Ul$3l>η' $ė %֜cvp72&E:0L~܇߃HF)d@QɊ3 vHh&KcHX^0R`qY ]u$t%ǔmo$ִ8۔>^t:^S) !'?*u$ ZmbŚ6$x78;mץLfCQc87*^ usBIYǛ\8í;r  <|vNm;Mzq*A{: `) $@k*pheL66ga  zR1W.8!lM1N@t-Z$! |u]T'r ,mrѬjd HWl1|կl49`@E2/FpG@3Xo(h ж5E 5*Ie>C)6ӛ֝Adl-AFsoMި:\PČ6Taj;7q!HZEКp*7 ¦jz(f$[z#|OQwo%M|y}!}/(m.oUC/пk]fL$~ı,BS>ռ}؄bs#$ؤ`"2kFD)#C_I PG"N'5xȶǎ3ŽPd3#s흙7lX-xkUc Z!W/zѝp.+~4_pW0]D8hYF*C&Yiݜa\Aщc;7lmnmp}~OrA7G^R>`Zi֩@#tI.X?:\^N+C є'DXN͍0;t-pN}+F0KZ˽I6lևUΘ']JC) Tk3z/;4lj_"c0LtFt0L#LɄp6Z?bnlFlMՅ N.e6ML4u)录HD¡3p{4q 0Nzut-φFX37q4#w~f,chiLD1=i9fKQ<$빢**_p؎SfUv;|5rU`qdnq/d #B%K bC_ш]Bo)$ ]~q:*zMaaQL^h4\}yh8X7u/`C,Bsx1 )/"1Τ)%KKr >v6ҍLzu#t#^f^[:sᔘﶽgFn4KtҾ]?+S}9<`ܾai_ B9I8G8{Le%AH-AF@)33ɐ*:]cfk_$]c?}W!;~tȥ? 6N؍5f3GIGe3e-k 7mXpH6weB.$?D/ԣgrD2kA!16/wou[hWc^Δqk?N_yPP@F5 4L{ƬG8˽Ix9<3l9Ʈ 2RF >nsbη2|%"wjczg8"'oc1";p`MJR\FlًJ׻Z^βDד,[^nfRrx< )BqA hF!=WLjP㋫/C|7Jb|{^E,PerH;QB &=lz6y}=hv/ĸjZAVl[v̭-,^x8<^$Wm #>$o“7u[ N҆xՊ>k1EKyx9`btK_7*ȀLƬ/n\B4gˉn;1>DOQ_tWXLQfaܗٌ{^LzGBojNf Uu@伡P.A =䧭r&Ҥ 9yf"i;z唋th ^2=lX _"/<͸>EtOUtۑ =n~ʓ \6Fx(.DBdQXp)"N}ЋL[k&c#KYkT{[9 &aL%x^d4XV=8Ksוr9*u=)xܭJPG¥+JRmH{Rv=Wuϓ֕r < 3;y, J bp >D`!HjI!締O|ĸ c2x3[غRwJQ5&3MseTLMK,$|ܱo;miiXOp!/5Z6gT>?Crj qk8 D&1ulM&שwAe=X *8w4n6Fm"2&BS*̵x+HEfP$;-c7ègW!]4'>ܶ0Po:W} TX3`/z=#zǽN»SWi]͇$1{4";5`YVx2݇e褱wC(7Ukad OXɍW}q #o(.r,LʖaEM֎C2+YQ$NVˤR9:,V= o cCE89dYNc׷hv})V4K{^Ի)Q*YѰA8SK6\܎V]Eܛ:98vέ:\ WY ٘g|m-p+ުkp.+ME4BF5YL= hfEQ3VݻX3[OQd:(x<ګ7g݉27_].+=krj2Z|&­ c5+c\)ݭX.<[#CC5lAf[;vh647-E"s75x>#j&iAs6p Nc%;;Ѧ-SF# d^pSZ2%8)wP<*Ł{6a͡5wηw -45\pAuR"-r&AzW:snP}O ,AD 3PQy4ŒB g[A/ϪE7uw{`I:FOK@7u!W}J7ōGE\Ը8[|- CX{F7/YEsv=<飚|_8򺋜U[*j7MK*%HZ^mrhza)W^/yz4o7 #"$z"'Q7AL(R~GBx!WaY s H&a+2` <5M;-MӽA jXՒ^R%Mp:_xt8Mak$ !J%!.\.N45 /|dl{2Fd 5al·K'l 6ɖ?4ى!II2 R'VjKY w!A>XjzwVpU (۝[z%r_#RsuzFYebuX y >g&$6yL(,3|qWP}?q Eyq8"~D7E0 ムWwຕzA jm܃A}j()T㤗 oyh">S#B5h-">\v'IȒ4l4̩U5}TJI^.3fY%}9(z!%-kq߾ ٿr߲*Ls}?jx0R^ZyɒG6 /X<1(Lt` |3VqYF+^I2a+ ω/j-rVm˗{Z)n|eo+?KJ5wf:sOjJInP*%R!'=?(lG[["=ً=pj,kϜ-B=I:ӈ2^P#mB ،m]VcsOx1k6bۺ1Zi(7Ip:XVk5^j5%sZ™m˛QFM|/HR[o:L~ QWνчx\9ypy=V|jϩU&~\o¿FRdLmS%"] ^/$R&"Zϳ|c_gg=NFqd|F#|ёqcbc8ij EԤΫ{y(@PՌz{%hG55޶>F4i:͛+^k 14q\,gV} ba8YF֊+Fo:85*| i|4 QsC MTI+% `%+PeD߯~UK|$Hs0^:2u ArC:fx>_N4PȣTvGٝ!\hhA& ZypNÍWL'GGܙ}ɘJcnbLz6 Ǚߨ R;eSsv:xrcwwl˘$ QYy͍ɰ~Z/ 6~JmWɳŤ< 4fd3^q}j6E5'B%Av0 0V0=[){b2k=u."-U[IQ:WGĒ9=:m-:ͅZe YۋC-wwbM10/Y'hEaC9+^/OnBoG4؋|[܅@ f%# U a&P/:Rݢrׇ٫9DE|41݆mW˾~@4T="`M5M&7Q>aW]5ǧiU,v| ( @o2iaDm2&yW N`u~=.j'Ƿ?jP^߮lu=rM~8Ujݣ!#[=MN@X}8$v h#*y cّpU XL$Ap8եPzdĄҨ2QfLѢr`s1bIq[x?nwNȊ2R$>"~h5 hq,Ƴ'玎` ~7\LT. Sjcl 1Yc,V %:Ske<'s+p!˒5Kxiw 3sNh4>뗿+ : N@zME~V;n`Ht`K?-,nm-.h7elMZ7!<ՓZ\вcO>ss"Rg葋0oesTz7a%' ٌt-+*?d+ȝJ/bcT&ZkGF0=]YXϩ38K\BsNJHCTϟdif31MSu4z1BR-dJޜsZ~9^t{{p7-<м f D긅ܩ?a b[0*ISo=?FtUT}74fFшj6܌#{.8'Sٌd'4H}?Q,JtDLOBES%{'r~8(>EG^l(a}wE P/Nnˌ.y C8b8_xiyp1y\۵"jӢxB͒IǕMg2ҟ~:%MmH-}t݅P~({}9B BJ54g{>K?N\4~F/Sˤ?9|,/db!N볛x_''NYk\ޘ+G"3M\J}{ړ*Q`뱹i>=Wv  D\rc=nEãZyAec}KV| WiǹGUV(7=C?%ayFH7k꽚h@?M!oh~e \ZEzQ}asrM9wg8e"3< Q+a^qWnX5oJ}S0dcҒ\W_ATjI110iPS6\ߧ15]3FP~ qQ -Z o5|rÞLMG|MSU%0'k4G%tCҎ>ٻ[;3޴Ihr(Y;I2J  ;Q0T w6R<k;̿w}~ |pz_OM!#ԅU; D(>[Zs#)JrwdHUߣ!8n+ϼY 1QשZN \j kfLqk~Net5+2+8BIZoisL\!?+ [ cei;75e;SiF0GtWIyp&R%Kz'{U]"윑ݑ2ngKJmdaW Y}+v$<rܠorEWOQ>4>F`>x5B9ۅ!/ov9`#=\~= * 197d$j-o%`a?Q}9E~8kVqjȒ(_ >+M!n0jziϳ9>E11<7 sR2c,M[BW*FX]5:Tp`bŸIm-\қ|T*yyrK;=liw5ί^K3yOE)u: ɀi?Ez ILT_i&ĥαZ zڮ2*'Wckcꗨa~Ga0挍W^FY+k=l}++=к0̠V[[;֮>,4.t=詀A6vV\t:Cf.g#2˞Xt@­.8̠=[Ǚuug77bFcU,sKLJo?3m}-<{cbU|ǴvS_@MCH-d6_7(ޝIw '=A}4u݆ry5֢ P g&]SH$ #DX2thD J!r ։iOy!s-j^^9PWxQ?u:;T>Pk4mI&Uebʤjhqsqp40Jcaq3jR[Zv!W%X(iXU1J!RӮԁ5fh"籿1C˫qKvR}!vA`UK|[(j~~ۤᓾZ'9z;\a^DoSξ22@>xr}~5fC {u/jA5/vߩB֏] q ohU:F/\#+m ukCԼs9c0wZ~6z P!7Eo'"ZE[8gz. c5"\f`? yaf"{#X8S]Ƞqsum z+B0 =i!@R+0/$ !5IvtICsXhŁe%P֘erNC;d_L3'fY0Y| !I7ꢏ-~1QUy̹ic-+{&aQ2f2aMK\8wh۠1st7qaX .\h]nD{ٵ~N1ߨj&ƤF1PQf;x%:S'$g?z͔<bpӬ0pz83~VQݭ3WQk4@j4|9ow5հ!x:+f}CO|xE+l0+8JB$uf.x:Kscqt0zM1Ȅ܅qg}BO XX L wTQu%k{T qk@:>@5*:*-6]nPjlW(YiS*y 8_Xh raBp<rduk bnM;ɂ:\(4 y 4ۦ'%4G~BAk,oӥB2 }>S3  rD ÞdEܜA{_(Ka% 2$EC.b9ǭʲH(`}  SVt,r JVwE ,]LSK2R08á5{ Zkmz޴a[˒t ]f5Q6,ZANYP%Z<6d6T 4K*X\%yq 1ے064DV9pAk6v:UoB2\Ցfjr.mOfTTEA&g{ֽ+"/ҏG :[ ME4O~sJ42J5(!׍8 2q_z}2|ȹq4P;H٬%VȐZ0ǧY˭`譸l5 @ô x {ÍQRowib'!rr|fë1]Fu[֋W/8~jb\ݸAPZ.֋XN7jo`AR>h|k@4:FRL9~nxNxDsXu-{/H>}p[‘+nl)e}(cGSr4a]Xj7Mчu'AH T{I;At=h(D,71К `Ԃ<`A?ܥntwuՋE=hI;P@ ( WZNՓG7j{#9]«lHԺ1$V?f}V~PԔ$7 L1S $R\-Ym(8Ƥyo>Ⱥgʾm:Q7!>¢" [*KoP"nhH>Q" d(Fi,Jqq({+t+LM |9l8KuHܩ'U:.aK4z:EaDW?zKxys9iSڲLU۶g@d% pԭJK,aОwtНі)`]&Wkmzjێ-t$BT|OŲLtBT4w}'[8z'J̄DeMTސx/] $\&)éN`N))HV@1[4S[8sg[4nhϛCY J##A)X$OƵ_}dXpsq7^D/"2QÇ1P,I=vadRE}BpA:*Rbiyh}{e˒Dr~;cv;ꎑ#6D|d_P1j8W7?{F>^#sXؽF:]^DpmS[?cK†1tںV"`]3te&'S< 'T)ۯ!HQ%L\ Άɯz^3tXWT0 A~2~ڷ^Z4C3$VҸGn_{r|Ż|Ym BAhibn:]O&|4+(ejGG(-;W-DU1_Bs R nc|W׾JQ*ؙeB~LFy :8!RJ{)[ګ7Wp x #fɸL* 3j(uyB)0g9gNJA;ơkȄ dlR9*my -9682ws'\&y\ۀ_I!Oڌ%hpBJ Z&15͕Z~П~>E1~ WQQs:zsEkEi/ZCR I͈<RQ7|*]0 0l^ĉ=ý)-5WgcNwأ8y?{/DU et&hH΄C/3JGsE^)|ɬWIh5G&5&@tCL|e2졛(R9*ϳc=߄+L\D6QA]6HhQhxp?S6,eWrjd\({Ȱcq.?q~6*0› X2JQxpa}6 nÄ{&7L{(]jO˳&&Id'J))e@k~#$oC3DI*skME4 0QuvmpFuWbh݂>N6ܬ yW~v*Ô2gkt-o[ֵ.cp295-vޮer~e1S,s%'7MѬ!r᱋ZzpXA8xj$q8ѩT8Mp=l[ QA=t!uO`&dAHz3~ ya ޗa&j{ :C}lSEN^<-eØ|Et_|6MG~!XmƕOɛHv+S𶋆7،tժSAtC$]ޕB%#;j *e|;WOi9Q$QtC+E@魪~  b4>ܦwjI}1>S*W3ЅAۿdcFO5m~ߕo%h2/y6 7D{ >K|:G1tߏwʏ؏܅:knǝ}7%cbz "VtCT8կŇ5A$!ua]pM htBI)QM"IэYfiՑYVYžyKPL[/园NTϩa@ O0>tʾٷ Ӟf}_Y@l-'b-#,HbU gVҞ~)C ) yq2 ڇ^a^4u "q^${]WdL7y9 {vJه!򨁺 ݆DojW=W,B{\U'&rk9~ͩ{w QMCSd/PTv=wk/H0_>9~7I63* hq!4bk+ıZG " guu-Pŝ5|D*=zr5 'Z"Lg5bucc)i@bn2vY3J ++[we,,nZ (x'IΣO߭ ڼɛw|.Oڿb9?Pp$jIueL2:PfX:DŸsrdI:=WEW)!DRpc|8wfpRvseW5!p2<(aYs#u'|`AjQI]"I% DU?tJt1LxYjQryAɰ),'-TxVaBjޤI4]4!iB(@&[!yRrrWN\FWNh8X[ ?)ܢ_+_h;rYd߽EUɃZrZ388Ƶa=Ay?K0A`TOOX<%Y@ U\@'$ U0^JG'kBXϹAj&^S%L!D׸ Z{!PGɸ9']$lh)ǂH7sՀ?q -nkbB.8sUgjɄNE^c%͡ՑI!ZzO2S=z]OX D:T&K8V;GTA6:-;,M[Z%|9 Y{8΢Mx/{c!&k~&s-(u{5|ƥ BdTMUo]#:U5WqŒL1;~Y ywZq,7lJ'DubII>Uv$ѵVz_P ][Nȸ ZGB5vo˿0_z{of.G0Lb]͍4cdTtpʭ"f- ǽ=BJ( =AA~#, wBV˂Q%tAoán9{R5+Gq[6Ku+T;'Uv C0MГWgE{B<QNz"'dsJ=/^u NHp}(۴s6Qf_0jU43Do64U5Xh3>SODpݐIgD.x%caѴ Uzn7MVBCx+O^qŲ(._q+.9#^]02.n-k"4 $@0l(ezc-dr=s"DŽ`%BDKӪg]k 90i~ȅ ol6=E iÕ;,1}@GWUbx]y#wgcU*]1 Nk{+ |u7Ki\tOkRҍu 8Ç}KјoƵY0yzW 9*jv 5;0-UhǾs55^PJ k9/IMfB /NsÎnZ'8dFns@o(*e kSWD!Y A(DT]:1|QḞ-cmyKϭMmDz,Ƹ;@Q8ce96m 1?H r cr՚2?r&PꟄ^wW!$Lq3t [K2,"No8R)D^(bbrȨvb)@]$`V],M/̖:fd^/0:mT(5^rmASO0~pP 80JUASG 1mDd gMVR5[Æ\B3SORy#Y=³wNJu_tQs{ʢvK0:{ eDΙ-PnT@ `b|W/a]8<}u=t$x\F# 1LhY";4 ix,emg&鬯䣌ϼo/d32~ KiȬׇL=iuqz~̾NB<{3;3N}&­NhS*9;%/fƩPK,- o=n^ mq5Utz1B}y]Ne>S}Me29^JV)Q^}iWfr68IwMs6cYov4P54]FqyaX4L_ˇ{#҃0j27_/ =^S]4x={M(e| ޽M9R>%NU[ip۬TL;ފ?U״LLWM>+D)BV~8>.O&@u3~3z=i_s0B"x Eq}QЯI]) "?N۲`3o_5L˟-=ѝH$F$<\[c}`ϳT~sWk?)S*>P7@N79@ r$Nb=U^*>^[$4%I ] j\߱)%q 1c޻Oac s4@U%ARL9?!D+H8eְIYKhَ$xwOڒfyҧNY\ GloZ?cx,0mc#`1C~z_t+ll1jX<ص_`A!Kehv콜 N٫|k5@_]G}8WH- nӟt(e4jXmUxcy WpQxR"l|A# 5DoG?}fWA-]I%1$Al]Q!=_ɶ oH~70+%n3JqCX䟇:>;w#F')XQ ,;ƚq8b,FV< HR>t~($ͷ(2oV< &;C/̉sm̞e;_6xu D%T IʘJ^](1. 7gC}/1vQ_3AZֵd:;ѾN;ѻ ]C:c&`AlQ2!ĵw#0֑4~*Dc- >^_f\G*'NS+[J}Fd46ϿO[R~`V&z`Eb56=+ M ǭ*\-e~InTDIoP U\\ I-뽇aLJCfgJ#Sh"ϟ D[ѧr}Q#m: iƂpk ;( b(£,J'RԊ#y=Mk1:`$||Žer~² 34~idΡGѶAI.1"/Xd>+oaZ޲<㰰V if=xx; NrTVRɽwк>ƾ5>}h0wWV>;d١) Q_6:jV|Pn!jܜ%j`wgGAQ?5wܟV/.J˨lzO< lІvwCnO*?`K+493ŧCCg<ӪlT"4@cteGB_@@@'mL|v+&=ý]Z1 Qp'2F+O[.gH];}|n5bgӴ {])nb$ȳAcSUĥNc1T:%˫QV-ft2QE\YD?>7eȞ^E:ԓ^r- zz_z7z~/gȔ7Q üD@T npZ`,rQ'ӨKwmDși,(-:gSs 'q?i]p 'a$;(bΜgp~tbzvg&RW@2q'3B.+ $Eyn$-XlHI.,%Y[^U(x~X ؐ[EmI Ci yъA{]e[z*_/^ةy2B7?J'K5U(6c}i^eƽywn{OJS|4ܴԲKS`}׏O2mka>W-\/OґbweVnC8C-A(#[FdE?Hf3GM:^w n;L!ݖS,[у$إab}4 'WIXc(,;!4? Pz5*e/y?`QUl0[n)k%Ȏ@`6a?G`#.q0v%n .3#)\{ JJyZƴXOhMm_F ۚ¶>EM\>Hb=0AM9Oh+@g;p5ǏՊ{ǯ;Gav˓`ϑv?j4A|u{}UTӵc.<`/F, gZS ^VGPkZZtZ7M Z*j^*qk$ZzQ^\:T>͹s܆s Z/ֱsiZOMmLcq|vؽvt=J5̱zIK`Xo+noEr>VUsUC掚 ~W8>9g' D;t'zw| Q91R!'% 7>eH{ꡟxa^}fk<50ﯭ̀*_⫶{@G~1~]E3ȐZ4y{{p_aZ`WQ'y"/./F^Ba(l6۟ft:NtG:&WPPO"x*!i%Ci èrD^YgΞtl6={gώϞ9 p>4фsI%5+5v5ӑb<2MȎLKW'U*'>,lj˻&qK6z?gD]mH;2^s'D^_m])m'F]`R%!3OhMp{>^0ֱ`7N_5tmJ'-ҧ7K1k`d^r5[J{-="OeG %WwAmr\XV'\/n}?x?ى}z^NM{ݺ̍(WDB &DvShLN=9Q[X#\E#w Yh {1>ƌR J'M[CRjdϽHy(5S5c.x6݅ބB<4"^Zkpx2i̠qx5EK**ּ@x.TJqs]޷Ӫ"%&~yu*-h:Adi7Q_ ٓ3 5)Qqh\2x*uqiPƧZDHjFeUBKG @JDX紉c dD1D>X*P?=F%-EGtDS,ݟ|Ão)XzSfg?Mis}-sN Ԍoejuʏa@b щ\q gꈙ 9nIeYvv߄Q*8TWL6G~6\Nj"odvЪPKCMFcՃK"PʶZ%n( `ۃ33c^<lƂ}<2-KP>_J,b HhqCC@w't9kP5[1\dVVVF;ki ʒyV'Z`Ą.;1J+Ý4'ʒ ;G ]EI6zXVf3Jo~.h!TR~6έ㡗I;{y6:>SZSsM~?zxs*Z&[p3г!v07jgMfsﵮ==?mG yV V,[Ċ(ƭəryx!,a9Z^.h*bE^Qʲ\+L0f1 92W=#G&d"H7 FA&OZ_ט9ІsFCqz=/y 8DpF9\~d (9I.1D黯OWucL\**aw{PWG#~ mtK)/0^XunۦA4J=ިNdUϹH#98c:ԅ^7OGQ 44Zx U.E>-LJAn_?`g VM]R|l憹A`DSHR,?GJ+˥+u^ZټVk馍iz۪q#S;R $E72Lˑ+R|1 ul$^4 aI/G7csOt+~j0 dLry|Tcw p"9*xJ_70#jk%5q &vK(b`7/XA{ߣ. eؚY3Bx f<֒CA6RX>E#Qvsѽg|T=i EC=LAH8bd7oĉ&e4Jz3ϞGl t幜݊1*!JD^[C5u7mA cw2!G÷%0p8o(~V.Imcy7ZQ?(8!e# ,SO SHCwyKȚ4X%$+bY 䧸B/23uXlB""h: $=:4㓔N?e?6!L)W͎б{ `^s,;w/&#%Z_[[kFsmmmu]]eBL@}!Y</Xp$!Ӳm¢35f?YVΊ};_YbEEO3b2 mFt'kiG5 uw|JW#{)VbU Yӣ۟ˍ[M\(>l{/wIWA $x\. G^(J0)1]@8O!wGT#IPi%p0r|{WIپ؃_ 0q 85_ Ʊa(O3,?Z^~s֑$ؖE+ug.QtʹZ c"Uƅ,^} -I6/U-o(3*Q[jQ!Tݑ e=YLqyޗ R)/py^GuZr@v\ p.(Q#}B~n/ |P}ź8Hm79ng?Kj8֘"hƾA!ޙɶsCͣ6A6&c>HZ 󭱓bАU'ҵV|M΋Rgs=iFj>*hz=U2g6EuOq"; `0jt=.G"zp)O٘j"=3e\No/CY1 `9:u$"%HY) ]3JqŠJca/$i u mkFG)+a#F]PbYizZN@|`H1EP5~eWk{P+%z0ټ[Fz`1{\ ])U|n_f QaaMkc5˲1>2 BFN4;K0R5Tmo}V>yhE1{_c}n| 뙉~QS(^#^_pc_poYdWoKD\DYpT-w3^ ~̽<ў8ӫ a OKѪ˴4zs:B# /z5?R;,wFo{zME㈂m:nur(~ooaTɦ`%iVGg[Ix䪕bBԂ\+5s |anMP^ZCNa>ʲy&nZ'2-t'm~L4%ߒEwZF^D5 YzY EMDe| ۽! fyNY%fgfo6jl: -@yU]2$3%q;!NW,HUS~:c GWc̵x3-izb o:|A=S)/U {ƳPXO!lD0GyruAy& l0`8%ܗKqг8)r7yPM(dA|9l͜+/]aM%J!0 B`xtyh?遻iB4._NJPlX)$yDn `n_b%[\A k;; 6;EbEܹC>Ԯ h rCLAy(GWshP V/ƕ^?e 8;'WV ??^OZ ݔ YڄW_6^]V*#s@QTJTƇUY\,"$ tyL3shBh͢Sb_$[V~0 '(!Q袨Az—3P0d,(cŻ(*z)Kk s4@]mn)0bu7BT&pѰjpYA\AȤb'i[~ vn&@ nnww(ۓ>bw-siOW-5]?[&ޘoWNf,ٲrJvXݨ+͹B+萪Z޸C90G,V4]Ͼ=SRͩƒ5QAe>[JH q*_&Ķi x_?(N$l .p[ R~A">89 o,8q"F"(s BKmo{.aKNZjgRl@e vlDj9)kg 0 y BD\|L% Ye#S'pNڿTC)xAJ^>PSf쇝X`b<U (dq}y&Cr!Qi9E]Knp#Q!|_qBM0Ւ V\b)j "m:W6=XʔCyzDUɮ*e9rx&j %Ȼ 0*dWgKȮ_Gj?cٚ_`.5{ȸ}ˆ}8 #%~*mwgmTߝts7s?uaAުI6aK*,m=xl/DO] llP!vI$fV:J̡6 ] C,Ŏ}\(RP .}g-ce mP(lzE &/:㫹 Jjg &4Ƒh1)3.IM{1;$U]TYυ ~RANmFr0D*pY8JzT):abr>ޤO1>}T{'QSnSG3o:$N_;Rh,lۑ=; uYmc=ly^!hŃRN'u=%eUҺV^li:pWce}ĿJwXk2^NSʏ}! [1!bpUL~G(yE*G  M€AXPYt૜kc 1K\$A%%AAT^2"Ny 5L0Quc" 52^V *eYYa;*W,n ,JUxEx45AGL(Sd(ind0{>O L]%NKy f#<,&/ilPZCAKM3NVOYd90a3mi(J@47MŒ(b΃ns yʅJ[ҷ QTֹA"hj  Zq qa\A +3swtMbSbpLx`Ar鍬ZSARw_?` # Yx)j\uh?EJ5lC%+UbdŸ&HK(c]`T^$[|g~gY@U V| 0VP[Vz=Ia 0 FX+okWJ[*cY&%be*ꟺwZ "4Pg !ĔB:3DċpĕoWX#[@uV *8R ~&%5Z\!@`!R5na+=ߎ뱡0Ib[^i۪dmE[yΧc*v{yŔ-[㯠E|@GC'&G"0[ g.^=<,k;XX^mf.>^-@ov\+^7 Q~J('I1lYu fZTH<S.EGYdʦDsCr(E凚œC | MXzc F|#5w۵JlseBuB"-0>&!4G^X&pa.p6CeCqzVJ꺈7DxOSgB#1#Ѽ';1 ^hl잌f 2Y6|KGNGlOgr!6 ~gi|E*8i{vjNwpq}:36׿J?,{9\p E ,+Hsw7MM_<,+}Hm(mąxe,*!4V V2dxkzu^TXbQ l>5k0V^,;&]w"O" @\Vcm=Kw-[_k߇_竫y&v 'Z~$c3_-Lטc51u/;ɹbd\48C6=˥>uHBr(o$mXY}dm dbX{lYF{=IW!cE {||,|@ kbu_G?yF5ۭj 0 /TTQms92)xeT3Al}1MN"K'›2Dr0{s뙩ir": 1zP]T`A\IDM B炿N3M{^XNQvI\53xz3Bz;sHa9K4c4?zc7z!ޥu-F"U%%#t _g#/Pֳ4NrZդW9A׍^O&ɠ?ZcAUj9i:A7sī c2y?#+Nsg| ץu̿WwΕ#@~Fןydݚ:j;4t՝Ym]EjU0 ݴ7cL퉛F3u( QT=kkl͍6{Gu+(Ew݆xп=p$ ezD_rdRo͏sכ86)3# Ȓv%Ndb8JEqShm%6k@1zĪ?0r\Z]@넹c,qu݁ r3&y]!="85ވAĀ#| ZصtЦ ΰLdVc#$?%F.ium5y3ӫ8$1C3p՘S4#65 Z2v 10BoǓtԥ?aiWt=PV_` X=7ډVA7$ G",.HaR(eYrխDQ`3u @t]쮬~[&bEb-dɕ$t*jcuskٗxLS*VnB,ҧVdM?֏sK"XZ.AkWƄc]S/E-\(=ĵaN.Z"q\H$H83'ɼç$B8߂^;xu~RKR\knL~A6_ fQήQp C@W#~ZBTDFJEP: 섗?I|ᚗGvݎ}3RÇ8glކ5 ,!<X_oIP/ձaÛ}Q+z;}6΃J%8-86M8|??@nƽgЍ wS-y{j/XePDY/U<C{37t{fIteQ: 90B|m2:qHT^`6DXVn MWʕk4Eѩ!jI`[LPֵ+p @y6$?ǬBpM/&0|mtf;B*JNvl>z :D9G~"fj\p~.9F.R701Jmߥ_8cUp0tu~y3Î16JMǥoXoHt(`::QvMb\9BsQGnSgASb4p VZdPɅo>Y@S|QQSVƞuhaUmVKV*QS3LPڈ:v]wIT]Y,FRo/vR tVP^b 3tv;:djcg$.DZȆ&`2?c0A˥2@yy M?|,nZ Vvr>y#Ab%#mKOx<1ޫBM_j<<ŁeY\\pZŇvoV`o l/\VEDym9iBHJ frԙϼgU_IseƔ ?o +e=-G@m-g)A}1~+YڛIO0a6"QYFB U|S7e=37'}t$4u$)1㪍 ?2q|z 1d&9y_ja]|ⷘf0F6BФU鵷/_873"@~VO| WL(5U _f!N7ugnBf`:te>tOu?ـGbυ$]ǚnBS>f԰ c]kh:M)nOX3/olچNSna).c*RERyޟ;/Zع ƾF5#SH@9H%#_SǑ: DJkJ̤$Ɇpmu IQ)ބ$e+Im ,n+)Oh8P*pOTB8`c?qi5lY2mdƣ|[EtzYu #9ۄ{NPOm&`!F0g&|20B#)2CexÆeg~ؠ_/e|U)~q&N1 ^(!c6_-:wQ3uBκdč簧ih9=۔Uj2j*ᅅX`y 犷R"h.7S؜GeߧTBfJ4 6aFlEˆ@d 1~mx}*^M(Đo%˺I+XUuۥQ5>B@$ylTPyb qb o0cNǡe&?w :Z(;?FfuF4K1£[ȱ#B0yf#hlbpѿcFú.>܏o(#h@^nJF`æoJmh2t_9B{-KSk"?:\jqN~dPGbڰP1ur r |l) K0X1t ;;]v< 8ŮDcha.I07 "3UR0]~c0(uTz|+I̊h) <9>0~7(b1 JMu.ä0V{G lזּ]ͲAmKik#Ai 4~R)9ժ]r>L=*zv@hrL5s,aV ^H rsy U.˚yw'EQ"ptbVZ;LдeMMV˼umM;_ kA/hbijIUʭF"n{nF T)@;{ZN'KFU` &F<_w:%$>dXQ%Xآ9a( rO3xCu17"c%-3ٜ gȏ%RUQ Q yXfpkGo:Υs6 6 H/z 9&LIޱƈ$ilsX7 ~~HLj[ UAZRLj4w3W'$fHq› uk8oXUh;fS쯔9(BȏMԗdn3VkT&0,~adI6P?d).9JцDRT6)-N4=2Tɇ-ݑ!li 9ZK4L6Ⲣc׶.&IJjuXi8QeW0EEq;[Ճ %eC7qMt1Fҽ\#9vݟytV8cћGzQNݹ F$8W} @z 3䞼b40tLg#x&d{ֻ-}Y#,O'(bi՜ڪLb'?7l/iJ) =s])~OЁwb!?C=$B[6(%өxE)%beyRqaR+0ԉZ,@,H'˽6JY:>G:0u1R _ƫXFI?"ϐ mFǥLfZdf=KH%&v7mUfa =8? ـZ~L:srNs>6ʻ85 l]R1 `J`U!Kb0 g]JM8&7. @xcxSj*glqj\C_ϽAe"I:3@8ΥQ7Uoh“i + +hì2&"l0x-ԀyAΥQrya-GJmI%Pդ*U!˥F޳(b\(Ҕd¥B`jK0 8$c^[3OaW= WvLѷ5Yimk|Xc*u+*ׁQHVIGV.qcLѾ ;E?YYRjơ竓UV_My.r:0Kn=zSM7lX~ X66dY5݀#9niueZAP/H*;p} {1 ztzZ_y\)[w}SV@^YbȲ,i˧?5UT hiSAHyδPST;-r19/sy3$Ip[éo-G=kmIKdB.*--g{S?6tLq |4;,i@UcA+ ܿ/ 횢 mëЊϷZʇ[ ouة B;9 6YH疅# ~HToQ5o/& ڔnﶥRc?Az3S({LcLE>yLԜ>I4?E }ѠgU>:=  jI$H$B]nEg׶)'Go ?{By> ЛtJ rݎalOȦ|EG@%^P44uN$&KD,,b<};ųᚊts*zz{I+ʁ?/3.~땎*^p.7γ>ƭx}HC.,i3J11L)k^X;П0ͰYo4ԊK-R)7 NպxUW8Ip.LVcWw~{'jq%zpmPs @{=VP(J%,ZYYԊ:$ZRl0JO}o( }S*bqah7Q#eQX_P/YHUITr3? /Cy\pWsRQ(-YkH܇Hx_SUC9-0M["X(%ߤmo5k;4l~S(DHv D|]2a&dKak"M-p GR7VZq;?vrM(DRL˩ 5 KLoZ@?xK 쓑&ﻈ'g27:┏󱎷aA౒QXkJAB^A%3r⶟F|4hFώZ,v"&8iA5>m9(9}+TD6.?%'~$+aAg,-Ce $_a.$chA " /wE92n. 㶶b.ᷬhpm' 34|}/: \ws~R3y|E??r1x6Np[IJo\VxvE`JԹ6uavٜ㒠EؑT @&{ y#WF#UN YxhDkOśBpDcT)%%v?n: R 6avA bS3IwH`-wA(\)"v6  O 8L:샺 ُn98qah4 z5ZFCW4Ee~bGyQ8o6#אޛI㔲q$dqXy $WAZ/מ%sQϣ8L4Q9WTJҝiDq_ZJާHHeYop%$彄%JYϢi.f/! m#V."!ɴ d򄼟,6ae[DU45 T핷QASd|&<[$>_HH~˴WTU_ hJD'eO<OVYH2/r"I醔X[oO)"SɉHq\19DSt5&0CgcuD7U<cIn\k޿'-"fn0Or%E[ tn-33[2OmI+ߘ?)(c }yI>d \3YQxGM x{!y_+.#[UhٙoB1ӆRm7]Y3Lsr֨R̢]>}vi{ _X\أ%7MБz, BWWb-zXc8FdOQj uS!Ҩǜ uI%]7(D@%0jQ(JDU4yR)jї~,(T$D=7p"J01dAU1 \7Xnd6tǚ , e ϡ!,e!=q(ܞܽAέVyٝKsNn;lXN1zhc 6((}W0CB%p`}oszVζf>f)%_yG&,(_ShF}( S!{p̯Br%&85|=n<%W&QĤ i踣rsh6ՠ.Y~tzg .l3⃜(,/|6`2M?/G M׎vώWVƥxe~ma =Vaʐ鴴 @X%ra:m%"`A)x@&QbyM-(_2X~PR9h DəL^*\Q8pSdxPCN%k9O2LW 㒼ʔ1A8~.}8H;c^>9 IW'@H~| Ƈ=v3W+g]ڃeG_=LZD*`+[4>LJ*?8b&UA\n; "D'7'wteL3Qt9E+QhrI\VxLEY1)UVb *n?\U=MQtMQi]' VHP4N;n4+3~faP֣/\aGyE'J[qhʏʒ9^ rVGct~Ra9JeY7* v}q$ߴic/Z èrۜax^.7?˱o$ku a;6 wrW갃$t}FKqKq'2 H)G MD^pnmV ])A.30} CWҋc&=(,`s#k&̸m>Zyő_"cv!yՔ Rx+y=}B~?~9]ŊLߐ*8;Ncီ]*yKD"ėP#jdzQݷ߂D*+o''\zw+ ^!y0*Ii_)ܣ,A )Ͼ&KZn)>QduhqbdIڷBǨO/clV AuqKS2Jxx R.f%Aq0Q-`5Ty[BF GPŰr >f⭷&%V=ruN <P7i}L*P\tJ (5"bވ752sv/]\<dY}E猞W<2bլ`fa@ b?'OA{AolB磊R] @S6 *O0" P 5nkHp/AJF a &Na>/ZW (vs&Ik{Ɍ[)RSJfvM7Mvqų[GłlDOnlɾ +O#/~ &# X6]kvn$`d+)#rS,ax\V?@JmdpBS|t8%dnzwމõ ruuM'I=Ce4hn..}\wv%Q[WkA\]ν`S5cjo\]}a񀜝A~ĉ6b7ZMQƫ ˤU'\sxkv~ e5e^*WiG@#VTd&V{GdԮeduP "'&*Dp;VIԅ6L֓7!ep)p}{J]U++l?( >NDžXd!=tL=rPs*BZNۇ}(n/70}Q.@d7[)ĄdyrXqs9m+q'W=m4[Dq u"I98(1drLy^e@˃aA^ЉA%f9N{ٲd?WQZ}ݧSP#29@e(*\R\9g8J=)RN?Œ`ps116 W4XM[lRed;ګgl߉Ӝ1.fƀ. C˦E镔Z<8"86ei&W4AMb,XgLי]Ƣ!Vs_M3ej[X!ǯƑ*3} {0V-ljmu68%lR4csU`{FPlDRR-k:c eQh9v %Uȇ W/̹מdip92sֽzALe;]wI1/&lh? h;JQ8cU7H%".߆Bt~bYU9ϬaKl"֟FwkgLt21[KFi1Rꭘl_@Jx\( fqp0uW)@U{ܗAyK U/۪CTUs_ǵJ{h^YհQ`L}X`\2%Bf)}+"cߊd۵zH\S_b=kY>Ao;Ϟ?u]h9/{_frXi̞݁ō_L+^@]5*ݐqoE]xԇm`p~q0$^JCA8_ѰNIC8 ׽6'"f5>"ԩkӧ_ۡؑ3TFUPUXc fyD$"QRt<:WdMLFY ܱղ?nX*a11)U)4d kʙavˏ*㣛Z Ue]7thʦ,kG4&fy}WaI SvV>0ڊ>T}rvs/Usy55i|(4 %_)d#A4=H|^L'5M"tܓ =E\4B?2|' lqdeqZGTðyAR6I~#{Je?9L=yqh~:~aMX[\. @ھVbBId݊)Vebj[Q~P{ ]0MaEp4Mص 66j!.{G8 3Rk60sxVso*u =G%XJL[e/q{m-r}#׉#n|W t")aCT좌s 7ɐws dDóعM'駄D3.U1} pnN%15GV 3qN@_PwOc"ߢ?o5%ְIAIX`j ]ANj$'~#0` ŕUF\i[a06(F((ݧ60KAd"<"T6;"۪KT,JԟDxzwWQ(KK EB+u_q9*!7GTu}mZþ__m.J-UvD$5Q.xETiKOڶ+'P"֢$H9;jӝ`~D$JCRX" /$[B]BܣL _Nj`?i@L'^4 LҨMMm>ڎTW%۩~J0o׿{p-Z/Icm0J7" Q|8R-M EKD30|dDn,iRC&2DUMSI򄳂()mP8_AiАAyڔ5MeL4UqK%W\ %[ -jh.C؝N-$1M+21_I n+ !>rE譽^Un^E>N}Ud/U!5 q]Ez1]ן(Xopr׌r3V2c:cރZW/ǽ@~>lNtcj͡~rn#zmll5[x Z-XSn<24Mk8wJ㻪#QAfqAO|dOf_grdo!wR1 [rE cwߎ3 ?\e!56'zPZMۤr D4}\%4=j܊-p M^l2a)nߘ=WlW%k\6,7T "0na"M(tĈ30931~A)dfŲ<ez]OGi IHjAfH|6 .@Q;QrN?gp}Y pAѶwW.l\Lu8;#S":8H0xL䚄@ligUPKUT1xsuP,#:ȴނ[)-[ivI5 U5uTQ 97VE"LIK$iLtnHI܊x@&?QTCSߘ EX1=DŽr|'NllDu>9 nI;. cuG-D3Y~ <~}}f2I&|7 G1؊Sutna1sn> sa+&F >1Gx-Ηz'[4햅3X,O8pJJCczDMqE?vnN4.9#~K̃2BزS|X1fR]&u~w ^ʙc xL|Z.o| ~oE{ UxQ`]zQ'8+ ]7MROWJRK!/CdV2wf3q2$XJ}j?JrdqO!_qӜ|C%ȿt/},SNLOVf _hҸ喿@,or}5C:kh:HD*l͒=?p=aSlPL*$ q2(Y: It]5)g {+MAEIh /q 76sUski@@ i knS 1uU%b@,XU}(|BrhŨ{Kaa4MM!4Ӕe!l=ΡC8Ȍ G Ctf>hMnި!D_dxyp&YLsj MR㾂t˪(\00U{9z]=BL}&9 w mM)'^ki%J-[lI<թjrrVo6˶U4;ޫ):m.z@[hY.! 1dxE1 |:9}!oI;kRU4X7DQXdr$Is>AhB~{*n_o9) w0.M)Ne%*VD?^SIPdT45508M3]CSL=_V}\2z֣8m9A$5[qS=dҗ)+w^P C<:]7..JR@CRї(wQΗTKK?R캱$FhrJv'h#/Qm -i4fa}8y}{QB$nB7Mhv1Kpw!yɾƸ )%(/$gɒV^_\[]9>ZhPO*R*UVT1V=:Z g+*Ve@f5W+ _B頥AdUKDmw'7K<߸tJa{K6*ߪHיnp_RqP.בHE3-D©<3c4RQșVڽv5eIqo7:q"]J*t{oEfNUT Vk)nkz-Zar{! ږiJ2yF(TѓfW/B~cnG,9٪RLX N41%Z} R_qŻ47K(\͖eITCDރfkU娃fsPU=9ίO3;Js[<M_?U6Mh`wuut;ߩkZ@i=g℗JT|\@N$I+GN= j\9Ͽ_ dzY./EMĴK:UW'$ʻ뒨lQɡvމI*S=-b-E٢ dN6;+YwF5D&ރQMHOu~ &$!m ӆ{9Bu`qZU{H;dٌkVmʲv!UTNOB\vHS$v|ra#22Ȅ=ؓAӉb+]& Ӂ[Sj?rY+t(LZfQ mz(t&Mg8h 3)lYb릌f(P౅mup6ՅM[^mL7>!rlQ|ocV㣸Iz]wՄ?8\V wv3 /M;;Q5NVڇޫSLAnе|[q+w>qhbg'Bju/Pc?_J m7˸FJȨ Iؠ4F[QjqVQPWdY>/\Flq{]CI C?dLJ[Oe^vH3&-,Ͼ+Ҳ)@{8߂aCG3vl<$_ٙ)iMl:NbjD+;pOMP>HFW8g?0p'Gomc{(gqeō(ٴ|yUt, 1񃀅w"3 $sι=I4Qu ssH2&s"4ߦjd@(`!>.1$FA-j<wlܼ,E7 /3'd XBCfLKˈF]ׇh%Jy>Z *z&I3ײ2'ZyhsTMv`4VxZ%bi阞(;sN++ZE >}05 fdZu[{A m9c?ɦK*ha ;AZp MNlsk (OB+^\ Gu @9רә0}+_A.zu LS'$BI9qd,SQNf(jnsSbj_Dv\/t~6/@i5B) h4dcxij[Z ]q$OAqKL4F#Po ]H "a%%"+Lбy&xJ1q`Qh۝тZM;wgud49͵;j! uL@<c4fqH);YUu͛?]ؒUQڶ?Uj"Fz =0zZ N'V@p V]HƑ`|ѣECw[=sh9ִ'N%~l%'"O76 V[jѣMcsi IO|jV=Gڥ:[E%J%KWo?o9zT. OseM+.#=* u:jCB-YR&E/YOt e2ccj՝NpXr^a&U@,BCC~011m ;eAdkuMLr4EV6^Ghi4O\ fxRԉͯQ⦼p)Զ&Qj _|!wT1J Jmf;%CPy/w]oAKU)~}e"n\0Ѵ#a@v3NEՀ(#-*ɹ2h Rߠ* pY%FX,WbVt xBgQTOx ]r>pI:t]3M=E%B"BcTu1%u}Oe(Ggg" v ]3mM_3S@-֕#UEKЏS_-irxISlC{<ϙׯ+.3n2@ػ! l߬99_ %A7uX*t hxAG4rԊ]tѻ 7PTI4LԳ+iw Y)aM"ͣ`y\ 5;oOKVQV-J/%T@לUAD8Ԋ2- */70A KFtXy F"VYe <7rOqˍi7ꍹ{A֧?mJ|MGsW B>?hJN]Z"=& PԹ dđ$NZYRLD5Hi4N(Q:xG(U*Y6#aeWAٓ7G0!6^~qPw[:!d>?_T Ox WjMtND)պY5xlt)F~XU\J Ĝ'{` 5m4r?;)Z;V$݋zW/>u|s?Bm3iX:ף*_ؘ=S#U@L L[Q)]` nH9hF)2H:ŧ-ݔaTz\*OrK3`+iB9˳ɏܘ H<F YSA=Hyы@x0))WlҏGiO"ٻ3PK={h(A)*rӴ܄45PRNpwrᇐ8*"$V`9'u%Q9Z<|Ҡ*`URx*͞w $B'8ـD$Āk9Se˾XEKH8ev4S#t, bTm. rmZ-.<' S}ŭ!A)|b:Rҳ-SlZϣ⧼͝!]}i˾;І2[\h moI CeK0?xYV;^TťR tn9˒0:+ك6]H=z\_DQ7t]ɠ7W_mcc8. Wq#P YI#+h#[B:;$\H('IZ]Mݾ[\ϡR]{PVUѺťk3ϒɋPeCYj]3\>YZsZB27dC3L ƚ#P:7%QP.ed%G(Տ3lh8:qGk/)DŽP |Σk\)>UCWKNUy^w_]]0ˌ[jtT \.9Mö_WRC yi)Eyj0]/w^-o.Fפ?v:a f"R\Z(\T K%bF7oP Kvcj]@(Q^, __!{)\"F䃾"_sd D:{nYy9.ֻP#.Kh,@%.  ]W.Cٲ@&b+giFyjX:lTG|ƔlL^"`*gVR)zmW@.)Jt/BlmRׯ<_q+ť??݄WJٳmI\Ƀn2PP~CU{=AH)QOTd2<A: 1˚oԤIQ sW]_T+WYTKbiRYlt}Ǵ`RY]q8]D]0{^dL3EÒ$+*\`"K/id]=__Ut+=Y[WYql֊G)9. u|ΰ}c#AzI( r'VR}Od<2A!9Ceihi]]ShCCJT\nW[B0bG~R*ٙaVF)7nrCŠ]A K.`/W*{'-M-QBtnefݙZVovх.I }Ž#-auSesn[LZ*s,Iw_yFXݕd]ҵa}T׃`Qhq& \]<`'P;-l"RPQrkQِU/HN]AРE$L͐Nc[:{Q{;I0,ՅŚόTUcJ5]{QUŃ*R91Oe6g;F)q1V94Nfð(v䋚ކ]vwяW5)ƫ ]fuEZ"F!+!T;wB6ZX<ϩxv؂K=3{%.C]zHҝ*i5VfCr"}g^J72V/s02jT W'E}SfMT0})}\e]uOw+CoczduʠEZ_*1 Ad|-9|W˹xB$)evtflEd>Fwwfn8Tx? |R]L22]2 VE# BD]bUeFxcTQϯPؒ-(ej xk ؒ]dE$8bo] ,p&'Jy]ו5 lA8yOD)rW#eʩ*󎾮K].+\R|Wȶ|E⊮ ]_h_+(eAu \R|ˎ"[p"> tMq"\[)M|wLĚ8n4ݜ "lc/NP-݄þ9F\F0ՄQc)Iv^2_E#ʸW(~MlPuQ I,%, ` H$K^En"DQ, ygjpL.pu#"(PA~, /{L(uu_D"O !-&x'ͥ}<Ҳ.Cq.Mi饡̸ #zo:5䴨BD-t7dӆ蜌(O= 횿 ?$QCw߬4I*އK^U#1їP-Uf@E-T/~8Nl,,kldY\سF47 %9>Y%_b7|Ť)!v X^CO-.;DʇPWHO9za;1IrL]72;\O XufL1<)mU/ץ*V!ATDu,垈kL$cR]vȼl,CQϋ#z\jn7bfQfZT.K hkT]lۅ23R]s Orܢ4Eב^IFD,>Ř+tm):ՎbQ:Ji"}"GM"ey-Z16`,~o;cCsfHEJWIb+J?G'BNcZ 2Vn'du!)̦L:5IE֐?uaTcLUň[)cM"(@ 5DFc>= Nm}n#<2P8 6!Wj{ m׼7}UF1նW߶ui1v_. J] t gm^cM^{旮$*F+>YQ9!ݢuAL&w8յ=9  @mcz5ds~ =~:.f:^m7b1Vtޞƣut\(MֶAee8q8]-IrF`5 ɴH1_-E+K &\ʊ?a]s4ES~N^>Q6i{SCAq*2Ja=0tnFDYُOO6DQ(>师'$"٧ kK{G 율0B= $jĉ8̤|۬T=nvʱW[EoqV!rbˆ_3Pcɕ7"Vmz6uԻhӔl)X x?])21 7 aڂپMa36=Bta>Nwq|m_]UMUVŽ(M rOpTY^5M }cLQ?:Mb)C!T b ;&cB+mj߁Li{DƸdOUuχY[ e_G #= 7)vɹjARP<Ħ!~i<pׁ0mEA:e۩/vتs QsNXܜ(a Y@ *P:>1[&zf㘝 s!%u\HS""ե8(I:L= QՀңDO* d(j%E;jh(2e`$4^@.|N<0+I*ίD|8X["hPF4hn/39H#yS@is$RK]qb68SR&z[\|Q:mq(Y_Q DZ&i,,nn..oO]_\\\0f&iӍ SOٶWD;苒E {Ϧ0naH8&s#)[sr%߆(86ƶ=<E}Q9 7!OZ <":i=|Oa//rA_ Hn͛KEُIv#KYsP,t1'\qiK #,rvq?rKl10U iq.)(쇩"e:t:UZw m z v9oOv; 9"Y,oٲ_bp4-˞ڣ@#hreU~!j1qK$ҚU+YlX-5Nakr2~11!1$bS qrUAzŶ0>rRK#kf''ꭦ/ 4LѹJ,7cL|l 0J%GL름[gnAuo]ZhNFI_H°QJ]Pn*".'O{lT)T,;Ss%8YF 5 %pY޻%4K!ʌ}A%OӞ{:>cwun-"(Ulq3u4W6~ci)DE_~Q}75]t*&hUx:X-s}KƇKk׬Z"_Z:N#G('Wj;D2HTw۴ $V?p빇Eu8,oF4zа@>)n:J@UM*^42`&I|U UU1.WK12&ڰ,Tf@#RT "v|be jN_t.GEQ,66A]@x%ʀai್d<\edH y_t [8jM"IJ[,9JW+W %*0%'PT7Ҽa֋t H4Vwr/n}žxi! /nmXV|}XlxCY}7>eM[zbY_=xE.aYKd[;) ٴuHnI>.P& k>%.3D*6-?F:!ݎ xfK%Ikx tuB{n@n$-B pu#bYV1zhHbVZTڊ]riNMcCc޿2O#:PUxHA΃< /d-T^  `a@ǮAH/q5Y?}L]8.7~MY.dy橄?kKErd2\ިܘ[jkb*Sc 1}¼9Ƣu CδX(XwՉh?k8nރ?Y#HЊ[:9QW!#tLc^%a#P:u>+ɋ #Dc}8:~\=cy',RLBQqY'[Z~m`gpTpd\ic9T p,]1 Bf 0 BBQ!. r ?f}! ,JJW:lOB 5^dW*|Y:~EN C@"A(LI9X&3=REU!*a[!b56@ \Q$YŲ޽QVeNĠȒ :TMS- ,+MI?A:ZѪWI!tjZqkHX;a].$Sr]` WN(ݻ%/VkQxC;X0 nK*8ޚ'o`,Wd«c@+̳iGa Nc4N 8f*4a~ Gld2ZBJtӄnXj85EPp˺FE:^4&ֱU[E}+%PK39 f4X-˵xXKu/GJ &_jA,^~i,^[r-MtMmsC9fϽ,BFezLDKԊVDYjŬ2-38|rz4!{ЦRS=eix. T`fKR1z=)/i38]tN(ſ#PjY JeL۟cD0#,ĝ#!;PdP&r׼fgG|ѥ_:zj < Շ^{y5КU@d "OzTDB;on~P>~ɘz@s eaٲUu")T R~GuZAQF2{q (*5uŦL]_TA(uԬ0̳S!ʾQN{=_D&lR9$=f!N)bޱz fz\7nh]ՙzbO61RGtx[z7jV CSFJ@l2#\&:Ew!$T/A{]w8Q~j ]+%}X=[֢g׽&(F X&+RhfaVR.3# 8IN0\weut1 W.Dq07ƭځ͓aR.Grˇ6[4\i*|M)z41gߕf>G 8SG18N]E.7i4@Bd(AҀ ӒMA&Hd 􁾵DT<\*gtz#~?| [5^%.pjTdhAEQLOWwwPT<9,"Bf^K'eCu Sf"q6q6斦 37z +wW!Y#4|؋RHBzFk^ʯ,xLg {@i3?醬CSR׵ ,ϼ*e}ʵAɁ\9"#bH@;fyM哌66۟GXr>\b7(=^p=cjꜧZ9hy%v:$fҴSpW)M ƴpA_Tkn~*깭&zvpUۺTB~'Fef"y~ji#K U x퍍z pEe:zTJˇ5A ^0_V*F? =K˝%A[r=w*[h+**Q%qYxaFAS4-hCVSOMQ ubR{BE0M*dP&2=B7iIP:_RJjB)zuP&qEޟLy@|/ɢ}D7+xƓtjnava=6.49\n|ʫE(_Y.{ 6/̵` ;/=axN U<5.U0lG4W2M8T] O0JO.% #ջO?OLb~ I"ϛ1aT w1GOK6z==,;#߻4,U)'t8]ESCԌum׵&LF4L.T5{V901<lPp"Dx)'[$hУs. K}Y~7TAXҫVan5Hr}miQgA2,חJފ9e"17ּf-HU+)) {#N&5w3_g"/ʴPcR%<좹Cc~lNOl~~{dLeV*dشcGpH]mQ}؊?'_*Y#~ BӚMκKc(5 dG8`M8YQQp6 ;^kw:WPcLذH,;t5yՈ;5 V%^ Ռ%BL5ɋI Ph 5x^R?M|N(iTIj7X%$0MF #GHکT::܏e2fD(P $O&0XOk CiTV Q.<3Sf2]K?Ke/n Ρb2Ѷq^ȑr+9{@l^XkU KiqypTt R?pz,[7x wxR9dC:]{_-1Z~08QUx*ɲy"v#Jo*8-x^ oq# 65M6:?/#v 7[!/|d /w|_O*~P+#Nu=;=E[\xvQ..i$DDqqi}/_ꢸ&P6[- P6c JJ$'Nh|2B@H顱yfʵwdY_ W3(5@ ߿1˺~"IC <( BPtJyݸ"ˉ_R1S͉I Q}, pCh>͜?v9ɾ]iwTQ;a\#b+Sn.կR/<ήS3JE2 o\i~5F֪E*] Z^=Ȥ׼Լi nkZAX g\.ᎇɦmrMZ^p~}Kwښ/{zC%vOhH gXQ:\b#5ʝϥEk(t(א8UGVsq Mt]LZFj{%.=Q ׍RrQڐzQ~VJDh/_(]J8vdЦ?.&odɩʲ%L۟] OO\j?iP*l7$*_MnB'?F |`VXhbc? ̡]k:xEl]1 _,A/_ ]w ~K iIujTթ:zJ^ CZϓW$`s8 1 CLD1 LC"s BHDpVQt=B iθ&kAu+I,$e?&j8};O_p)ώHqu? wTJpI#ORVƳ 'O< g RHvl4Z?7- z։Oჶ?÷[KQotWJEuS_wl#S6Co+T+,Gd);4>f(JSt5Fs]"%f6N{u^N˞W+'Mxk+q=U/Y.84Xɇ.^Dq9H.=FJ-BC\45B<` C0ᢆUJBkx^ڃ[URb97tGqBW}MiqJ^e@򒲦ܸy)ͮL$)%EbR:޻KQc vÅJ1)^oz X{%ck\DDM 3ht:ي[Y)TCJȻ puK7B1ʕruʥJk_T??s SAq.[q\I5vֆ/,6/~yNu]S1(U]^){Lcw0Jr;sǸYbBhUǦ'{Ƿ?S~^׬@T5ݠ `uP{QrdZٰU"{8X,ߎKiR &iA u5g5?|qvuAwb¶y?||{,rkZ={nMܫ+D7 .2V3FBmJr0&0yܕ60E= ^TYr 1q!{XJF $O\IN10B A&v{ꝆFL5>hj? >5T5fU^jZ&MSJ,G$ec/ Sm 1ɋ 5XQCQ"%0{TU#/[XmDG &/=F!IMw(J);D?ꙃ?O`\(w:=Ey8DQfQ>t0B{ ^ BU(y|VyORBԽufG<چ.H1cQmc`<2ðW1ýQRiz\VlQ"0TX$ }*#kTPY=ڒngw.),$ e,#U^:S-Yu7_u[cU5nsy5@w UŸpUtpcC8a5n"͈=^C2.H4 ն}-YvV݆P<((Ӽ;mjJKˡcF2rY aYtmZ.ݲ0y^PA7CnL4;'quƱrK 4Ҹ>~ iA_J/re/QK/Q _9~&8@=j[}4TʋKKa[Z$j=I*YD|[(5=6k^W  L&p ~B+SKDU)<G]돤g;8rBV97iDlueF2UÎI?gTD_ KKס+,Aے1].f%Lg8K 'NK5?͞U$PPh6kL~!X ƿU4  H $go$,Xg4SAR6T+[76I\);jOZ4" `DסPɆ0U xpfU`f+eY##A)A`n;o'1Д|W4)rö5E5*C%|H4mPfOv7vcTXSr@T]8]L )!4֕i ̟tODclL>=u !1~,zl 0O, O!g MlPPb3"X$Ve[a&v`&,JM%6@poVRRyJ!R0hGhJ0R8NS͖^lڢQZfqjޅdZwch=nhvwEhg|Q#_r vtIw+xhd,n2eEExB IlU ƾ!pZ-MrYQ| ]4fa.q[x~~xи6 %]Μ'?-φunNG~ٮחH@j %6Q׾cm4O|ű\@inL;4hj=T buQpS֙*%)?Aov6PKiŃAr  wr% beu{hTDQyp׸v|mqѽeqe=V闏Ȉ_@G1g-LEXDg>nZYQ,Tqd)38aүj=J+n  3Mhhﯻc;3 ga獚 +hk5/"I n؆աacB$Xqǘ^R:)]H ZK0Ma:r@! / BUK/$S"ƹ B^-Te*_T\Kb繮^(ո%kZs }qAH,UceoY0Q >8y>j DsLKZq spaKݤGWA*3A[i'd;o[;.}\[Yo[wcvZ:cqH""(XADB9\W}0*n jmjسsvr#x 9ڣNaT{Uhaimcu=K$>"k*th'ҧ~1XQzP`6ef:61<4 ;J&⊤i?wͥ% GU/7;t,xq; D(Fx Z%szvWUHŠ-s Am:<̅0k4tE 'i`ySh#⸴"*t6py[7{PkaVb1uv}@;> i8^-Vm׼FN=Q\La<;Aފɰ0t=9!Zo>=B#v;X> TK٥ _wKD7"e'EqY1OQҶKCͦpQZ0 $G~>GgkD&pZL:o%wz=s?/ 4 1UUmQሎe[0nب6tDMJePmVuh!ѡ[BeڷުҟZr`p_sC)hBm^ee,m!9k $NHpK.q&ڤVkoZf[ JlԽ:-ϫKK[ mkiI}- -}/9fN<7+xz\_R' 'uXչc++k~#WE0ďӅ3U}v[.׿,kN\%m+Cy[*; jXpr"LS&K; JorHUP;^+/kްC/5A4"&jTIE~ ]mj?{)5)V|~ (ARƒDE0LSGժD$r?+ 3P7D$JHSE8el2HJ$K KbI% |u[BԒBAZo΁"A4YU!0bCK WCS'i-]<N$QAw~dY$}_LSd٣.n(*ePL]>`3llSEtÆwRR+tY+͞㧻{S ' ;!+6hR.vn#,R\;+!On)aF\d=W!8C KY/˘oBėNi_)BE|Ke)qY!:Es.v7\U@Bp~$}P+ 6'8RMOhP UZRqٲ5#GCwp1gf~ Zgt-[Xy,Fv #fF ]-ܛϾ9pvnH5c0ΦبZ/ H>%^1U*dߠ(c\}4jB!)n#x߼Nu-1)յ$t㱣Gz${qKÌYNOu767^kVw{HgŅDMF)Y6=HE'v݊2@% CAJ c.bp9Z\ UѢr^R-?z3OZV,]EYYZ:vm㸬\ 9牦ϓVT~)Yf0M0v)CYBKʼn`e1' ȋ,u$hqBHeZ80nDVco]]J . j ɌY)+hc$f^S1~06a p̘r0ƽh4[e A >.0h(EL5i5re9;(7c`n6%Foݬu\vԓe;N6Wۂ|G$Km^~R<:St` !8S=\$!n,B-ʈ9L~۞Z29iOv=K\ U59|bk$䋎jnvÌ1xdC6oG^M?& G9"רu TA+Ç ZYI`Kzxowvlu:w:[Ke3tng0nvvw:[NEf^vv֧iߪlIǼcrT&av]b@w(H R|}/jhNr|qFn dLg ]cp~iqzij}@՘J>Hh[Hķ0%JKeM7/'&tIW@2)(/u;`$ER#C8J%#hW}c9D4*Wq%I1 _'X2Y]ju鵚~)Ø37le]MS 8=({IS q BP/q^2ՐޢT5l0X(T >H1QGhS79r:[!` ;S4SI=k:|P3gpС[H{dёb9hiߎ1SŲ+o*= ٿy^iXʈ` Ngr1@~'5tMP4KI_lWocl fhk|x:oX\}chMCO})C`;E$Mafa4<E,vyCGb(jqp< <>ECzd%/rX9Y:ބ&] W&;J\b`ÃZoJf6ƶ((S_ж>ˋВVc6咞N?T[!ͤTY0 BU/xhL9Vo(I1t`k5;uhvx,HI^oEs2kML9o?io:Pjq=`fsKw aЀ,aaS2oi/xǼ m@AqTؓ~Tk&5fxHN4I 92\zvWyjU㗗, 6.9q^Gv'Ǔޟ<ӶjL {(_Bҵ'g0| pi}Xf"#d!|$OWH%q%=MS‹N,nÓ!zqU'ٯ=(Buc23b]țbdWo:dMLR:S6q C0I-6Nz2qN醍>c<ϡx#ySaԜruau6 ,˃tΎߒÜ'e|c!UUjSdc0Cmk-~8OJ(MEvN'`4t>{mBuFiO=aZk!lY#m.E\&]sf0gQ2lz;묑Ic kyD77vP-8cHАM4Aӆ|?(W؞u*_|ƹ6Դ7rL^'S^7!?PT!  7yJcɎK=JP9Œp.9 %p/mĝ~t8IJI^? ' F,'u]0ҩ jk^.9UtIh\W܍)iS*t#Cx^s$xiÝuR!PXR3dW3EHUW2\Y Xdܦ4FQV?!"LtYݯ~]Xx]/g'cv(\v>3 HlC`k吷0Ob {3<%}345Z Xy.Uc r3tEeAC%K?+ JQzŮEaVK .c P^1!f/w`%EպŶoiZзi#yzDDmF>zUimlO{T[q`WrR@/ F.r=u>Ila1:96D r$kFm+14f<)*ëD%{cJƗhe/g؟],fW{^^׻[^yl\fw+e^e̤(5s/qWCRklx[Q) (+-7y=c4_!zzzz tP/zwSܘz< F_W2~F*1c >U$= UNt؈q`*,O9h !) .Sn?wuzq?/~!ӟX.L]'KcZ*[H0FWQ]J=gfA=`6.Bdm &\w<6I$\l(n6dhqNS#@ meo1oۏ[QTD%iIGGHRZJS3lokjybcm̴UXWԦ%BHeރiƶf5lkSŴkLۘ`rHӺ"sDM +F&`o>;JDr~s3~õV*5a %+5bf6r{zM ţb2beخ|<èX#A(!/12&,eZb٢ʐ a1ԉzb//Y(Sp; z= 5èܭuѰah-9]] nkϕèQ=;ӯ7fٛʌN0ESK+j\Ec ,JEJ26iӅYAJe9 %R'ޛ 0k>@PeD1lq˕>}`0}:X'ՙ̦Q =i9¢J_NeG5jq)?v/ӥEij<F.xߵNX'cl}MN%Q2 F/A]o,5\?{?`9WS܀sxpvCKAZ/ Z!a,;T\_BVba& 7,X!cR)5QDw&m M{CFs2656D&e괵kSS%ņ/)oLh%ѶKTs8J jIb cT ǞfS~s uЎ RR8! 7+EFM,9B1BѢ/\,Q%)H7VVdz ̡/”WgQkYs<+J|Qp-x|7yC1nBy;G )u_l 5vۢF}zX=zW6kܫGoU7w.W+coGp3UZz5C&G`6 ljFX2'xx_D;{<(UiqW9(ꉺ->@Ʉ(S81pl^cW/]0ADAӕ.B/f r]4 ƒqw&z$ [tL C|R%=5>Ln}E̛j̸g3UQܑVjEa1qܮEHʭt8#(er(W?ks3y)54jSk}N}<`S_80Ҵ|Gv8|i_ڒXչDgem ea Qm$Cgv'31vydwhwf"d,16z6tuXF]@i}#q ;L8'j"swf'.e'qxFy]  tn(w /FA$]=B%f!v&1ٹlfW|]sn?yǙ}.2Hc:HAXDY;w2{j&b@JSH_Qq,"2- o,.s(&!8Pm`BMzmi4t`]Nة 7K&56$RV*+J@S}3+u+n.ŧMjfRgV* W4_l҉"xRg u a5kEK:Tvib?AG>aKG3r'#o;P~~ȇ8#%|`< Gmx?nDs,Y> C[uw>7xQYr$Q4 zJ[摨9G[pV# {"RZX4Ȇ HyVti1)|30mSHWb{ukm;W~19R^ "-ʙq5^͡H*ve"o#(Mߑ -sL$] "GavHX>pcڡi}9cujշWW^M] 5D'^>)úL{ ߶q_Lml6{q6UjGaE|.wcZZdzNlOqpha n?N0m(pV;p69njg)ưJ蜁pEM&7YEe4յ|_mJ/?w?LG7 x:Xqxh4i<}RcX^(vfZЂ{ -0FXB_d l,hsNg0^c`頫l}җDX&ʰQ;$RY/\ch; ; f`ۡP*Ɯ$zEt(|gY?~pQOwNƨ!36dä!Ig%fg[!mZ3jceٚ3S}PsejS̸v Lk"ևl"|3C{2f7 ŋt~Aj*] B-9]Ҙ<>)l`$Me7 q3 78ʹM1,.1"%Yc\U ƻ|+;5xcؘNd: 0a&dWv?&m͚֭dCZErz8eSd:t kt?愡h;W  3{qUλ)c;B;8 m*̹ڍV>' 9`\TsN溃L^JѨL$V|L;cAe~t!vp fX{dp,O|h1+D|jGPfr4t$ >mR'qWsMGzJE=GH)JvpDߙѠ@ )(ƴUĔmP>g8fM|N3H>4]^0"XIHCk"15y0\ݳ W3[ՃA Q\sUMR#<)PuO$< Rp.x ;T`+|^/(+|M/l ס컲d>0zHHE6=5!0Ƙ5Fzۚ%r)\uVU]Ib 2 f)z "c\ي aҬ/p\ݞ梂 /)vl^ 0 BKZQ8 ܕUTɹ̻Y֠~^\Tr8w{ao=cfSgz!J8 4n?c]XdAm$Tt/*[Dy}uF*vSnMcV(@f <ܸwʑg=yΖ '7}\„lݡʊQSY0B8x8o_;HAY7v#,qatrt43`~bLB82 L},8M }B!XJ|CО!̠8)sk ٭ezڥmB%V>;Rjz@΀=JT^N 7|ţ)_| /&~\NOǓi `%Xx2U:oBr|{b/;ɉmTn._/oru4F|xNY۷WjEٶA#{U0yKhqL7Bf>,P-HA"Ŷ늅"}h?yQ?\Nw̾#)fn6β#Lw[2ߨnZIݺ Eтq'9)âgG4,js h[%L'X:F q |Ԅ9&a%2{ʽ&mT#'50a-܊ F:g w1 E&Q|čp~iCNqIvʲfy;/X {-W*A_|<*kd<{.>]o-Rpw(>jx9d"6(#6)onD,}휟8R}  kQ!JЌbꈐUy~E+F3 )Y khl]2GPJDi( 8RQ nI!YyyO[:; > MI'̇H+Q2o!/Qys}={6],.Bb[6.I!%f.Wh'XQdh/0b+EԋJCsH;β¨B-kfp?wC c⢃93k2"ߺV_5\Xyd|ƚIA.G}@}+runy'қ‡+k{ޣKb_6ghwi~ նlcQi&CT'o\j`tuBnzx2iW6% H}A%:-Xz?Lbb{{4Z2LS֑dpZRyѻ~|{0M^ܛNbh,ζʸM՛LEnxƏH4C`79Ư: m6AyLJ4=5,j{j7ثK/+LVit<*Z4bJ! 1CgĶE1a1 ,1O mL%x_&ǬJ,O{?e8~؎(NK?+:× ~?r kr5z=^?KSkDRCHs[O_3Fn\Mgi)Yr*NJofGmHhlB\z7`s˦K2C mm٬('s0z<9| {k dx0 GxdS̙l#Q :Ͼ `+k~V6>!?~٠TՕb KB,tlQz:4^Vdjt:mn)\6*To cp.UUư;s]=ܙ-GBYݺm߼˪G 8\k> izCuğ SY C/**6 k<4~qsHH#Kn;5pǖqZŨ W{g\S8 hvY,Ւ~=5x>X'00>{8!1 i:Qw꺧i|"7WP2~PVr_?+Rw{Dϙ,z0}Eo`B͸|r?5X~QK1iU0otv/1C(NL«ƹB'bMJffRMOP7MZf.2 gȤbG_iY | TkKa%3J>0Q"UxO}h }3߿49K{oL&+&Kf+`_:r߅{qtx%Uběa!i2$m(.4>v">I< RMBLj&xfo &qSS~a^y]+}v6ˆcS|Zm=/WgUD>pN-NGyNv l"¨R. ~?Ut/XZr_k~ӱy[Mg~R|Bm(P}ڇambQDA&$)QH%iDIޖ ١-P/w }ֈT;w7W}؋M^#Gv:ƹl5]~1;mc]g0nM .=QWC%?[5V|X.t lRqbg۽R@\=0ۮ#$/W|(׫$ɶ~e[ @x47tC cnjed *\^^YŠs`FAe "0 _@mo1=+ qLSD%],YTݪoZ2|X{Y6`\@T꛶k=0@_e <\~NIQ{O`^K#_3r62v^^x$ y8*hI5JISëؗrUdvww3&j+g>Ҷ.oOᨷB:@E6Ӕz_,\;Ы; v 򒡑Goj!_۷:[N'M'UPoV?0yY_녃` %r T՛Uà(I&|PY:FZ-('þ^P%h <=rU7+[%,tOrs0/噢ȊaI'tXvw]rB@;v\Up09Wd:5röA5_Td;\Uqx.Wr:pf+镙EX%*B@@)*yPZ\կˢ,I@l 2LebTd*D!J,Qj/REעBz^w7$D8D9,3e0{>$'O0Ƈ O;LP,tV JKL퀉 g/q9;Ō)e >\oMF\.~)D!O!VL5YRHxh|Xb&lj?甊𩂂 HK@c G8; LzcΚJ]s˒X36M+lYo+.g F}u:t2la[e[t.Bx7 k]7N}/٤[IF'JQ$HR`i&#']X2VԸ`U]z]6AT7"F^-(W -Gâ*od|hi:A`'DpR#2CՐ[Ckٻh:zR12Vi !.o_/2v;J`|Js@:! Ͷ/r`YHrv(KH+`-m Lfpn C=1W0Q 4PjxMfrAcYvkO O!+[-%m9A8 SGV[%η&S6HK@Fh$ V5iܟƟ?7?m6γ×~AU!$=d䞿lsMx s/6\> DXEE9PN7.j}""dL֊S_]F6hW_/0{5*bK$UT{n Pۦ7u94=?)49lyzSu:5n4G\ÿ$y&6y"sM RItZs.6wzʦ9}ʸ)[a'?c$\䕆'u;_;ӊm[]ׅg4ḞqsÃtxcw^} D/t?):ހލ^FXٝ.L_'2gYIđ(Up#Ӥ>抚frddиigڒZrc\-UlKyknø[*QQ(hͺec֥N;OGwGqBÅ%ɇ4+< -uVJKfmܴn\߹Kb*0R dԎsԧz}Uݩf< lSyOnjR 1L޾43.'J(OzuRMOx>ye]/-dW gdG=]Yv̫ZP/&z ׉-ZZRd X!W^lŻ ztUdG! Gan4Wi8TFVIm8&Z{=Ck1\P ?@_QԙfqIC I3#r@eMz1!]lW]1h rա''t(UrR[\>i^b+(3`F0!%^5 9MʩBͼ '9+ yll>Δ4{Sl|ԙe.ko+)#86ex5b,RTB7w ['c* u{څ!`.*B/^"3]u#:O#">4DH kK/ſ˂(Jzq #䛘 y1`eWkR#B Lj]1ٻ(o5iU(hV{e6v̅=+qb XG또V=OOCx9[*h@%eqi`+i`]" r6j`mQTk˽t7b_0*`QA4 vwwv>4^Ao;a/@k˰g?G?B?%VĞt}L̑6Ip&w3PieRW@K0a+B[lWvmw.pFL ~*o@θ~>Rv\X q\7r(Pk0k@J>gkjc2r8g29OkƳ$S>ͦY2M< \zdHiݖRۤl)#!ΓP ;r 4cBë^G?{ 濺i.ƃBb2soXyݘ[~ؚ,,LN^Gw ý'{N*\[YaMjċVe*#IVTgQۋB6*E6&|&asީ:xkw)f@+ƀbXh" -PZq*eWDBQ0 >PRABdv,-_/(%](\ W,Q.hR[8`BXC Ɛ3Bp5#LK?EЪW .++ ݕ.& +0>E⩵N,頻kBŦ1Ce-v+d*z >m h "Q8u3чp5F1Bn&$"P |}Fj`$<=9\Qq@]u0Ωr-Ua s>&B͋*{"nA!(!$ \/ @4Ds$j]1B!j'&B W]b1& [>r15-afV~%ij:#J'Q7F9VL3.)uSf_#3h82ZoЈ_ 4BKs\k֚wM&MmTkFȢZcO95U47Ӕk3 F*o0h`Xz(CҐf\*D zy'0&a`>woF#(:+GK6L؁v{4SK h'O __:zC in䒼 t#뀔cNqӦl7_FEfۢ;MKS!NHIuZ5wL&c.M'yǗNFwL!Y aP!*җEJ)@Zy.PY_M}z=mOw*hR0V܂Q_tJv2_rÐ| 鏟uf_hlB܉hc5E@wq.5Z8e"=߅zmM8QIik! OXdbϱ&g6;b$%_ Ƃc2l~rd 4 uRAu٬^*RP;4~ l{asQ'vS,.fEGbo?S Sc(#R>OI*ejjspv!Kgc❋JX2jK /ͪ]>ٶ G-_J$A(I[)^}4m@]s㼔m:Q~X]Na j6Zc2/h4f)[/nb.3 _96S,)yd(h^RBpF(N  &XA>`2b[ʶ]II0εF1Bq=m*TԲ#G[99t-[A"ɂ5crʣ3'0vI{a7 - z;|70%ڣJPȶm#aQOq!ePU,+o* TrdW\Tٞ) R`Qk3yR5r0zC?iNO_2"He$wZ1 mu4Onl+׬T|؆򂎨pN _ua[jDE!^ <N/({f$\/,50YDngi 3{VRlJM k2|s% ӄ!΄ح`-Jmd];dLi- SCjM*i։X%n O#B ?2lJTSU~b}@kYJ{"|(HEř*>g!PM׵m\ƴvkFiL#e2&} lK7%19 RW۰5bG~z/8fwo i'>7~Mq$IgYBӶϕϔe-M7+Ύc3m9)r3T |Z)a^'W)_\'hV:0v yc0BG*Hi@~S<ul # ΅6PQ,vG@Fm@ ERMdJXs܋>#=d -s%`RD ȝ!a 6*310FBWVa[ǯ%{gK-&CX{#T6wcFzT[ ل^MZŭ%$`q`J !||)TN!)!uu6$P{F sBCDۍ_C#MM#~'oMSzVp¿ݦSj|h-L(6*!ZV'>8rfX(r6!v.W,ЕxahtFbe1$hqʣwR`K |$O잭$WQlnHVׯ|t\v=>\mӗ`6mBo%< ζ~am7jj\ͤE`=?'@q[B2u`)~9~ µ/} '` i׫{]{#K73}ޛwq0hg([E~ΦklF&ep=BߴM#dbd.-&Í2D=%hc㦛66i1ִ%E Q7Oa2ydr8 a؍禛BσmyM7 " i\@wgϞ=[@nв}c˸&W%^M ^`xLa7|CL_^ nCzZkv;QfEc\f,ϷL 6[~pRB~l_TJum:][!Tx 2p`*sTj84U\V*˪SS5_DF5(J79d#L}v@j.䏩Bvl{tȇ*kI(]XssBNK_"MrX-J1~$qgm3568͉jX)t 7JY})S(H\`x4ug8q=\!JE(?L0'lPUk&0FRZDI~wrP'FjF rfq0 BʾW_us!a^!ɂ0áԢ~pvJ( (Ƅ(Aw OZ;yC R)f:K3 "? f8zLX墟y&R~y1me<; w_wBIjnY"gg`9W Ү؛nlۚ(G~ aL>du$ `XAVDsH q#[Txbc0c Zz&\?ľ*P`( hAET D_j)KTy5?ŵMyεez[fqq!|a@.NO_AGpo-PY[3)ӲE'Lrp'N r'Y0C@H67?!#]c >J4(r#IVd(ml|e45fvGG/U[_+K/¨=)kpVFqq\jm+bkk?:°IN"4nS펟h bպ`Z㩵x6"B– .e^}J)S3=Ʀq/1\˰@CU{O,F(g Dޞ7>U̮ITʪT<.W^{fLRmXV6;$hFWLE?8؋<]tu+_9$t~vTI tV ÝWz U+h-#.28Z.#BgN$!N]J>Fz1Ї`qABw@?g_Yb%8_܊;B0z[M3'I+ts=Ij:IB4!p&䓮9TGF=mkoKhQ䓘|`ۭo?ޥj&U\1Np㮮TSdʳiҴ˾bYȒmyYvQWj;G]r=g$8Kc9i.<=jw$dķw!oՅPe# q0à v R ]$pCӤŎgZ0X|QEB  A0"-OzUEzk\k_}}PJP;vuH/5ϫ4!Qj-vHkMGUJ//"R-h]梲BJ@kk_GQc;awf&!jT4{J !&M'b?[쮶4Kل"odžΚ$k%\*BV ]0*s1$E;ȥ(K䛌 '朆Ro0]!z^-G(f\.Q=#lF$jŸ`|'¡Kqq;KG3*o-~ppʺ_8"9€[.≿៹`P&pϛ}APM>6 ހ̹Z@}[pjnw5O=abVt &W9&bFL9j(o1:;7X\ 3CUu>HT/"4ʘ0ʶФb>j۝Y-| ]L)v ŅXզ苢L@rs4w3/g!jR=;tiixF׸%*DaQ銿ztQoXEae:zf̅ZΚlA/ w-*1\6/ 5GCr"ȳ'AAĴv߿HɱjC|0?ID.<,;|_jc}8(%a8@ruķC[C3"1p[ǐdtR2M3U<'Ɇxp*F] _eLÁz#oVPb.I+s:`uSpdqaiUzl 0b) ؠ=uAĎ<¿[:x5x9޿?>^3,kRT.Al,Kc۸'ޛ@z:ZXחIb &8Fh4Nuf*u~k]60,|_٩=[fDcio-fٜ:]GɎ4@ 4 ̆HfPLΖ%.7qۉJ)hi':^uF$lbQX,hw\4**Ӎ> F%i/-ǣ!:랝gläyB=k[˿5T<5k-U>J*C8.FZ5Dhy^ Wێk&BնC5mfKB6Ȏp9!BLʾBE$g[p$fR{hux5l{t0h QLc;C"H6K=r%,0;LL}GL]7+} 3O^vٺsAٸsӁr1L:u,<&Җ?0dhH FA'h|xc`93p/1T,U/dڔ41-bBcYElB]"tk8h qnjpXQE g-RKΊNpoo2<3Js 4ڈ:m4FJ'vt'T6>urxb{K@Wsэ?$jř_;[Ϻ u<&ai~ALRj6 euPl0SJJ~lGRG`,*IU¹>]޼yݍ\=D [?N/1o0kKA}W*r`#E&>Ç;3=0x͐`SF0I > f LZ;=4=NI#e[[lr1H?U)Tw 3i""sRawT hmW%8\JG<ҎCKXLNvm\$)[&895PLn{˚l_U;G4"Թ! {DPNԁ6&̾$ Tt\)%\N b7;6 Ma01JEM"-`%#a"~[_r=Vt@×R8ů^-ǹkpf]4gL3ڝP*vm̀=4\;F<`"r)񭕕R=}Mg@Mڶ~}2MjIlISiB(V+^Z`rMM$ߴf)+q'DT彌g4eC+w5}Cv<@g㸷^skWϠ\eak<;rFdž GlMC!&&fyk9Q ?(\~ _ v$ށ~?l1̨H .R|;]K%] :S(;M,6ǒ iTn ScÐqT!l鯌>e8Ea['3[QcN %6CS9mF㌏5 =/ج_*#4*oZ R ˧s,}2` '!1W<8{Kn=l[-H,/LH8f 8WiGdyׅ`*G|!9>Rn\$~n~g;Fƛ8WzjO6g01d\=~A:H!*fta0aXzOr/H|J1l1+wtinA8pSBA*aɨU*Q%l8q:cޥxـbXS-ւsJ%׃ZuPa.B1?҉BmFQWE p<@51Z 1_x)O 8Ni[,Rֺ%˛FK;28El{% ^)(”]֔ǘ%j/W-QS^[.~c+QL'BAfWHW& e- CSkY);6%xt{ '/#̞or0tzx0;i'8Kbμ?ľyYPwS}4wv ~^–MS)HEH"H XV<} ̃ssRJ5Cap`m66^oSrq2b//UaeOe$9w#WiL *q# `" G`灩|7awB>ZWm$BX"DHϳh >s( 08hO턻G̸Vq 7[Rz-DcvBlFQiT}mo8*gom9`BsZsѾB ei vg+Y~sg텅*}W_R9M1u%\C9}J#+!?W382E=3LiY$B7B(RMx `vLf@h~bfc/lFMn8iU6MhGx7ҡ`%SO]btNVRZЭq<\3_.AP5yVfHo IA4jBq vk0/Ok7F+qY\qQq"Y$EɊȕ?|GZFR;s-#Fw8Q]`u'alFT=**MBMAȣBqgabq/_ \ϧblIC2L;kt㑝 !І޽N'kk)M]m9xűni}z+Z\P [l5˥-..G WY`NyzFo1rV{hfQi?*9>e<_ObA|LT\dQk?Io|C:O@D>'iHEѦ. b5 ?yte(iϴ5Z;_p{+͢(mcU &y?`!) +ze4p1{{(JLI2N5Q#f ((剱'ᵂTݨ/~( ^nu[Kcsc‹w/ňs1fW9wUZiE}9 CcHqċC՗TB`4aCEZU ɉlw0c͏xcI*02,Nv\*I-8m/뻌D́iQ'Nn{NßO־S H}\s峽1psΡ8zI*5i%Vj.v8>J_`b ެ%tپkۄ oowo w0!;\Ѓ7r]w#e䌦=5 JI=qg di},%4LW gRa`p =Ӝ͖Д*~(#y3Nw+5Pԭŵm4{mO ~p-=0;6BͲaxDZ1MI(tY;VhZ!` 2QMTlz8"hljj ^ׄiT WsrN/u p=]P²_,SB)̋1O jIz:W3A*6>̓hM;xF~[c:^_I]4jc d*V!~ϧFf̻ я4Ah.I[^d~g 6ЁiZ } vkQ^Im): n,L3j.,a87~}F+qNR?6GIJm)܍7Yfbst;EDXp{S%Ǒe}4ێ21ܞw5kexwS/BaIÛ36Z]^\Vk;{PL_xsX[^0gkE?)Yqt63SMK^Ej/xxxG+!%XjsQCyϴ) 9 SQ G%, :Qdoā28ʈvzŜe-9c&E/N69%=GFa]{No1nTemzn/-MyԔq5*[C 4HU?dV@ǘx"oٽ^P1̪˹U1,mK0fMmG~,/vZ(vWԛЬru!9XޝތP4 TPadA07Irߋ D"kkć:A?δj n7Z9ޭY6D bBk81;HQ2 O֊KZd-BхK+ݭA~3oB-/3Ŋ[[<l?SB`ku\3EiIS6Ѵu9 vl* Βl2,[^J&-. )9˜׸e[p$ ǡv#fFэF5ZTOk7(Mឥ$8¶ kܲͩI0zcp|32?͞P($2˯"1S&()L+QpC>vpXt ]! ^*emouEsa׫RyV)RVlZ/,]‘υjԫ*-; 9Fa+ JA pDa-W`{,w*Id$sk%|gr90k7, }ч.8 xWp9ljFI/+LW6ZM/_~!1LN댇@ԇU]hb)sSo[Inx'IMj e'ODy_tĕ>|+}wX\{ҡ?ʲDʭ&c@߹ rb p*[ҶUG!_)ekN+Ox+=0mǰaE0l7ՄɨxF~Kh: U!J~mB(\4 G w/]xyS~,CdnphirDNSȿ41/v)3_Dî s̸x0j&kxE*<+w5jU r>8}l*?twMVJ"9leY;x8:#4__Nju#3?yЖW I"[9˳رll2xF$mꧦ:J9|{~БֈY)ݵCx"]t9n4(#~㓲fD jx7!! ƠGl=1rI'p=Tgv6 (HQy]8Pyz_.$xPCi$_Iaɉ&@'2Š,1M֦8ks̒X(F0Y\i֔2ͽ7^(0SJš+F|-$8B`[۳ǫE1Up*JkS%uR\Rwy$- ؎ ؆=+y4N&2L|4өdh;La=L`&w9j"Ҭ|kT+ ŨpR]e[jaT47B҅Q+Gh% ٧Z2|!"e)Y ).4GK]JfdNk5NY-+Vߩ1l/=dޤ <_xZD)atd6:9(޼@Z6N ?̫O#;OU*kOi6ig5\A{$ T&^*ZO#'j1βƫB$'I%*QMFbsNY櫗yJ!F `u*6\ !)0beo X B~SJ`>"Tl' D￸ZZo*FIIRdd1/+`T;RY3…8. G37'10IKqjǥYҼ^tE Oϐ ̯rckh6o!y7-L,A$ell/](b" l^wgw-`?(3bQw]{fˎ 31Ч_r|10CS)=sysx{o1+Q kYC>܌J9eP:Q:tܑn30Fqa6S[zm(ڞוd{ۃڡ2lCmjwؿSC{oAn+v^x^'"CapڳvϿWPiT2* 3aMJH%]ozjr 7ąG13g4u< 晛ay:cpw1Z4/_ġg j`obŹeFh,3:nwW>Hp #6D #kr5_YL '[P#|ݦ."[epTp\,HImy^pB'\?&'eq=z]]1!~6%BcIo[_6lQm~/_2Jk1L#G&DCOdmK{ 2j$p(⏻J{ K9@zvr5nqevCAɓ+C @7mPս&;q<OJ[EfMηUbQVƊ Z<=9] Niivjq9rTB32#F|#gUƀxOlEEsHD;2;|'Jek!fd7b<~.6v|gKczWp̥aP\xhY>ca}"X̩V/+lGԄi5x1Vj8i\͋%h-6j6O#ٴ9keӄ'ؗ/ ꛶mNK[;3NB, 1dB3X0NW}X Fgݻ6|Slq5'|^Pkp$0QJдm`n`Z–V8?:@pu7{}Bf[ܤWKF(!G(#qKSI\ZqњPouTRLsL7 "ݩ8%#OZp0L@SDx5 X ʼn5(x˿MY6a󧔐k9Rui_{ 2S uj{o+W\i -'ދqWh>;d +i8rl V؊8P=4=36덻 &d P1Q5`}!N4M1V(9BC>B`*Y9`ǻ!b5VGEbsc1UF;~eh# @-z\-re5KQ t?hpezoT8=k[p) ֝7 jj`Ōx \A:F5ʂ2Cfͷ(iL+ᾜ̘+ٛUtn`BP1\kUMTKfFvl8YrW$`bPʇ5nQp_2Y ^śX1t0(`6cI Ӝ\]*%ZW&O{-Ia6561Hm >q:^ @9,8T#̴&`R7 [o+E/01-x'K)S}hk1AEqr)dР]- M6RUX (ХY=N䰅oTT4~4oee\mROSj%xuOR!8&1^gh ΗGc^h%mE~6΋cZĜȄYo;RDP;Psʁѭ PQkLb:0he/k구`?`y[虌g`θyKt͏&c!O k.d|0ueu 9FCʦ8Z c5(iΈ *6GmFgw8c2tM}'.#trl[k> +;z+`>d6_B=YLm=ƃTUhx4k jO-`::S߳a3z0 TYaF( k5Cf3Saa&.j2kl?~ٹGn*W]\e ^kOt$}2=d3 E_~M'YׄGO,oċ'_rcL^ N)ȋcYMOOetvjj`ƋiUƉk`ø-k" FӇqg6r~!sO f2Oo~Ç-ha덮0fQK2ͻ/S6I`߽e0h7 @| Cp%VGa6Qim)sKb֥M>(n.ųl٥tngK Aa FSGfA6r@9#.@XϽ# D__*-׻SƨWmɪY*q%i4ns&[Q4lǽLU*.?COGzk.1G$^V2xYUzŧ&FxJgd[_Zlj횞WLJ!$(v4B}KLs"ŏ)i~V}#Bm?2?iIG==vZe0 9j@Xg$`E$"wACr1 O{.X_R*a\r d/q b.!LkBNeq A~G4)pu9_Y0gW@5ArQ^}COՋxD4 *qWe=QtQ)Ew [[fj7z)=*ZleEYa+F7zxs'ш~MeH.@y4z qyq\ &qr//%aiWgk[ 'tQi<mɒ Ph:cfe.l_36BR ZI7B x9B{Enh MNJn` 'O o~5x~AR`X(4G!^x+}U [%K+=wh@,q#ׯ?`czvl>]yE=lsFHk֢k{g{Za(ih ќ=\|: 0-Ύ,_ Hf}V.yø`dLa%BYrw/;?#;xBGP-dwQ$mz֞q]Α^`gatc{7l@X?? }?%)\.OM#2ch @_UuX)h "D"46!ml I$s:Bni _cZy}?j^ԥ1 :AT m^XI y4皲n`}",r:g |Kqm)l1gλe?pIMIXnviٯ`sUŗpX! ޞ'I(.$H;! [&O55"0NȐ$!$Me}YrHJԒߢ4KV.D&%PD[\UboSTK(,`l-\'5PM(ZTWً4DWm:dGZIݗmYf8"Z:mԊXLl[Q.r,3;&-dɹC& W[]t!WD追tZGSHi媍qBmIFÄXk8QPZQ.&\.v!;$$2l {,ְH #ܒ ӎ!u@ڧK`+죣Խ2tw<c PFAD}Q;—R VҥX afYe'd4k\{#;:H)kk(j&-iFZ֑f%톑]~ig@$33 _Nv0y>[.NM"1ٗnW.ڪ뛫ppXBaXl jϤ`^n#q2xef!AƷ?\*ʭ7% w'CPZpg/ wtzХNY )UH o0taH7ڰrrlLkC:Lȣ9%l4d 8dȺ.s_&VGq%UHβ$1ٻR2Nu'-}da"mE!JB/\X[M&2eKVHL&AÛ=j3O1ch冽2׵Ys콞ԗDey+L#*).$pVG3>-º֣STRaD&n﷝-/q7e9l.YGk]U_1.-vGLq8]g;; _BSkֈ/|GJ\Nt-}x >G\?s0\n\sSn0>HώǢ5W~|:s,xgOq7ר$GgbGttV/ p}[3`ˆ3xz6pyCxi(#pjJ.ߴ+k죑Q0RU0x;AkS-=WqtsgePmmkvJv}=?)dN!׾KqWotym;B4/. \jUq8,W] 62{t84 ˣ ay-N˻NVsݳЌ/KcRЎ\rx?Cnqh+WƜ/.'aqTJ4\A MS_t[heYOq@PU*04oV'"|-@ޒ6hn6˜vϷRL2$(X68ӎ`?QʇQsKs҄CE ٹuvQ*?HH_5X&f # kܺ7S 1++}ʕ?mɪ|ԏ < тe+mPV,V^+:Uз c[B:=ibј7%!v`PԖ OhuT>Ks:܀y<\4uI}!_ؘ_ a7y<۷7{b1^TWtTZZ] -VS0 j:Lyyh^jn^4NkFgʏgZyoT>/ !P̱ 5^Ԃ3+*jw}69/\nm]kO35qF" eMف@N?W"kZfg ge\'YW|%/@rҦxSi.'SAgWOyRǡGLJBKK"oh99VJš\ /)6[z MRr&!N}&khyKuKdxwU,əxrU,wZ\*J|-O;bfHmYŒnK^U,X<͇5Ã|SпBph^T6@xeli&|lTY%9DhZNn_v70Ӱ;zEj(-EQZ <S!nP& 5e /A&wvs.{}Os8Uis]1Ȋ?K 7es>E"~\%H5)&6'V'b LTkyt, ѬNV˸=,4rPfmHfV6S`)K `[/K%pc%<ുw2 8*??ytCSC 2;!s k[ {r"3 톼{`AP<!(iUaX=Y(',]*r AmN[aClXhS1Kp4l98*4gepV7g9 8 Zb6U–:r48B,lÅ~.jfa4$b;`vn訅K'Ga~ Þ3 {`_w^~1˛fb6zMC%pK@w PG'a|2&, -,|s섿_Sp ߶ðh%"KufX.Jbbz1#%b!F%b,!.'GǑ'x'~ׂ34CBN$4dv"Y3H"Ӌ'fd?f"H #A$@b1tY׉ {qR]Դ mI=cȆ9ix9؎:lL!+BNs"F>1Y39HKri #[mW!mW!G.:C.EC)d,r=HG tK3iE, {})@%1| 2\\5\=\ӊ\ۄ!Fră@H2؂8Ԏ|r r r{rH6)K. =S} :T"OӐ瑁 8p H3(X%xyy"< "?!Oڐ #C-S~Gw OW"O $\$2܍ O!w yaG^#/N E~99^E^:tyنF%oWAƆW>V"So;ߵ ߏ~@&&=_"o oL#o9L--eۓF$?;;ȻȻt2BEwy߉?̌ @D>p"Ndv0|ԏ|xA榑OJOG> # ad>|(y'EU?u:|DNKȟ' F9o=ȷ1b7:Kv Kȿfw(4bi5Qs5/iA]}5uQ:Qw>z+ %B}K40mh &q4CChhD3Yhv}IG.4/-+HB Rha-B)4̢ t"E0ZڌCKѵt$ZZ6߃V8ъN**V5IW'Zкnch/Bh0z 1mFׄFOK%y ==ÉBlAϺ==2e܉W7n[8:nCߏn+Cж2mގ^;:=hb9^Q^ډ^֏ < A{=yt =ЌBуhW%zYqJzq^&>qp&zx~EoFLx}Q9nDSr~\"S!9<6"oS|!?7FKPN&V".HS醢( c([(!%-@V( ^BiwP^2AY[Q]rPo)T?@%~ ۨb'BQFTU硚s(sCkQ}jF'5uר>AQ%a:P꺎*|FQX`:64F!4fƏ$4a&)4MF3hv WQuy>Geq }B/EV$~F`IRNI!GġI$eI^J!G3X%UD텑(aGF 5avXk+Nb۰ט&cvb˱0(bb}~6X a<6:w&ش6 rؼh-vb"[6ĖYlV9lַaىmbCn/van9]bvصm{žbi}r:e%\qH pM8 GqT+]ǀcؕ8.8'܅S8m'7) qj}w⌓qf1 3㬝8ًsI8\^ KKq飸&\~8W%qu/\=~~+nqS7OixNV~D%n_;zgq׸&]{2c,$POħǿ{'+$> l|X;+ Vj_[O7;ᛟI|'\~?Ǐ>ǏOXU>9-I?6R?Y<,? H U DTU3DAD_AԸ&jVSDۈd7☦DD"Qt"uQo'Qe!Qd(DG -Dz/qDnDJuh6r$R}%:$:}k6辔q2s.+G.}~%E;!$ibPCb0<1d%14I =1b.1D7cO&w"&4%&eEb^b\bZ+bz;bfdIbv;61xbĢVIĒA<489ڌ(JYbn>ʰz}<z74 9)weG)}0HrSo}4z|<-#&e ɾ I^`~x>"}& S#6._;Inȳ70&+!hӓ\ 9M'[u2ӽ~nVzr;70!ZImG6㜐y^ 4**{ 㜐D&`(۸&11q1qm7՞6k;xG؎Aǩ$&&V`C"5 aj ` Y$ĒN.~,!''KIF:ɴNcAZ$QK-6<,mEsl5)QD#"Q@E!߰q҄H!8b'^R{S,DwobKI1Ktp @x0Zfont/woff23456_3https://edumex.co.in/assets/vendor/jquery/jquery.jsO bplist00 X$versionY$archiverT$topX$objects_NSKeyedArchiver _WebResourceResponse. '-.4567_`abcdefghijklmnopqrstuvwxyz{|}~U$null  !"#$%&___nsurlrequest_proto_prop_obj_6___nsurlrequest_proto_prop_obj_3R$2___nsurlrequest_proto_prop_obj_0R$3___nsurlrequest_proto_prop_obj_4V$class___nsurlrequest_proto_prop_obj_1R$4R$0___nsurlrequest_proto_prop_obj_5___nsurlrequest_proto_prop_obj_2R$1, -()$+,WNS.base[NS.relative_3https://edumex.co.in/assets/vendor/jquery/jquery.js/012Z$classnameX$classesUNSURL13XNSObject#AŃ+89:L^WNS.keysZNS.objects;<=>?@ABCDEFGHIJK MNOPQRSTUVWXYZ[\] !"#$%&'()*+\Content-Type]Last-Modified_x-hcdn-request-id_Content-Security-Policy_Content-EncodingVServer_x-turbo-charged-byWExpires_x-hcdn-cache-status]Cache-ControlXplatformTDate^Content-LengthX__hhaa__]Accept-RangesTEtag_x-hcdn-upstream-rt_application/x-javascript_Thu, 19 Oct 2023 05:05:17 GMT_*001b02dc227536bf47a17abf4393fd11-mum-edge1_upgrade-insecure-requestsRbrThcdnYLiteSpeed_Thu, 23 Nov 2023 13:50:40 GMTTMISS_public, max-age=604800Yhostinger_Thu, 16 Nov 2023 13:50:40 GMTU75083_ YnBsaXN0MDDfEBABAgMEBQYHCAkKCwwNDg8QERMVFxkbHR8hIyUnKSstL1xDb250ZW50LVR5cGVfEBJ4LWhjZG4tdXBzdHJlYW0tcnRfEBF4LWhjZG4tcmVxdWVzdC1pZF8QF0NvbnRlbnQtU2VjdXJpdHktUG9saWN5XxAQQ29udGVudC1FbmNvZGluZ1ZTZXJ2ZXJfEBJ4LXR1cmJvLWNoYXJnZWQtYnlXRXhwaXJlc18QE3gtaGNkbi1jYWNoZS1zdGF0dXNdQ2FjaGUtQ29udHJvbFhwbGF0Zm9ybVREYXRlXkNvbnRlbnQtTGVuZ3RoXUFjY2VwdC1SYW5nZXNURXRhZ11MYXN0LU1vZGlmaWVkoRJfEBhhcHBsaWNhdGlvbi94LWphdmFzY3JpcHShFFUwLjAwOaEWXxAqMDAxYjAyZGMyMjc1MzZiZjQ3YTE3YWJmNDM5M2ZkMTEtbXVtLWVkZ2UxoRhfEBl1cGdyYWRlLWluc2VjdXJlLXJlcXVlc3RzoRpSYnKhHFRoY2RuoR5ZTGl0ZVNwZWVkoSBfEB1UaHUsIDIzIE5vdiAyMDIzIDEzOjUwOjQwIEdNVKEiVE1JU1OhJF8QFnB1YmxpYywgbWF4LWFnZT02MDQ4MDChJllob3N0aW5nZXKhKF8QHVRodSwgMTYgTm92IDIwMjMgMTM6NTA6NDAgR01UoSpVNzUwODOhLFVieXRlc6EuXxAkIjQxM2JhLTY1MzBiOTBkLTU4OThmOTBhMjU4N2ViZjM7YnIioTBfEB1UaHUsIDE5IE9jdCAyMDIzIDA1OjA1OjE3IEdNVAAIACsAOABNAGEAewCOAJUAqgCyAMgA1gDfAOQA8wEBAQYBFAEWATEBMwE5ATsBaAFqAYYBiAGLAY0BkgGUAZ4BoAHAAcIBxwHJAeIB5AHuAfACEAISAhgCGgIgAiICSQJLAAAAAAAAAgEAAAAAAAAAMQAAAAAAAAAAAAAAAAAAAms=Ubytes_$"413ba-6530b90d-5898f90a2587ebf3;br"U0.009/0_NSMutableDictionary3\NSDictionary_application/x-javascript/0_NSHTTPURLResponse3_NSHTTPURLResponse]NSURLResponse$)27ILbd"DKmps*/:CILU^`biq|3FMbjD`chr    " / J O c g { O/*! * jQuery JavaScript Library v3.1.1 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * * Copyright jQuery Foundation and other contributors * Released under the MIT license * https://jquery.org/license * * Date: 2016-09-22T22:30Z */ ( function( global, factory ) { "use strict"; if ( typeof module === "object" && typeof module.exports === "object" ) { // For CommonJS and CommonJS-like environments where a proper `window` // is present, execute the factory and get jQuery. // For environments that do not have a `window` with a `document` // (such as Node.js), expose a factory as module.exports. // This accentuates the need for the creation of a real `window`. // e.g. var jQuery = require("jquery")(window); // See ticket #14549 for more info. module.exports = global.document ? factory( global, true ) : function( w ) { if ( !w.document ) { throw new Error( "jQuery requires a window with a document" ); } return factory( w ); }; } else { factory( global ); } // Pass this if window is not defined yet } )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common // enough that all such attempts are guarded in a try block. "use strict"; var arr = []; var document = window.document; var getProto = Object.getPrototypeOf; var slice = arr.slice; var concat = arr.concat; var push = arr.push; var indexOf = arr.indexOf; var class2type = {}; var toString = class2type.toString; var hasOwn = class2type.hasOwnProperty; var fnToString = hasOwn.toString; var ObjectFunctionString = fnToString.call( Object ); var support = {}; function DOMEval( code, doc ) { doc = doc || document; var script = doc.createElement( "script" ); script.text = code; doc.head.appendChild( script ).parentNode.removeChild( script ); } /* global Symbol */ // Defining this global in .eslintrc.json would create a danger of using the global // unguarded in another place, it seems safer to define global only for this module var version = "3.1.1", // Define a local copy of jQuery jQuery = function( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); }, // Support: Android <=4.0 only // Make sure we trim BOM and NBSP rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, // Matches dashed string for camelizing rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { return letter.toUpperCase(); }; jQuery.fn = jQuery.prototype = { // The current version of jQuery being used jquery: version, constructor: jQuery, // The default length of a jQuery object is 0 length: 0, toArray: function() { return slice.call( this ); }, // Get the Nth element in the matched element set OR // Get the whole matched element set as a clean array get: function( num ) { // Return all the elements in a clean array if ( num == null ) { return slice.call( this ); } // Return just the one element from the set return num < 0 ? this[ num + this.length ] : this[ num ]; }, // Take an array of elements and push it onto the stack // (returning the new matched element set) pushStack: function( elems ) { // Build a new jQuery matched element set var ret = jQuery.merge( this.constructor(), elems ); // Add the old object onto the stack (as a reference) ret.prevObject = this; // Return the newly-formed element set return ret; }, // Execute a callback for every element in the matched set. each: function( callback ) { return jQuery.each( this, callback ); }, map: function( callback ) { return this.pushStack( jQuery.map( this, function( elem, i ) { return callback.call( elem, i, elem ); } ) ); }, slice: function() { return this.pushStack( slice.apply( this, arguments ) ); }, first: function() { return this.eq( 0 ); }, last: function() { return this.eq( -1 ); }, eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); }, end: function() { return this.prevObject || this.constructor(); }, // For internal use only. // Behaves like an Array's method, not like a jQuery method. push: push, sort: arr.sort, splice: arr.splice }; jQuery.extend = jQuery.fn.extend = function() { var options, name, src, copy, copyIsArray, clone, target = arguments[ 0 ] || {}, i = 1, length = arguments.length, deep = false; // Handle a deep copy situation if ( typeof target === "boolean" ) { deep = target; // Skip the boolean and the target target = arguments[ i ] || {}; i++; } // Handle case when target is a string or something (possible in deep copy) if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { target = {}; } // Extend jQuery itself if only one argument is passed if ( i === length ) { target = this; i--; } for ( ; i < length; i++ ) { // Only deal with non-null/undefined values if ( ( options = arguments[ i ] ) != null ) { // Extend the base object for ( name in options ) { src = target[ name ]; copy = options[ name ]; // Prevent never-ending loop if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject( copy ) || ( copyIsArray = jQuery.isArray( copy ) ) ) ) { if ( copyIsArray ) { copyIsArray = false; clone = src && jQuery.isArray( src ) ? src : []; } else { clone = src && jQuery.isPlainObject( src ) ? src : {}; } // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); // Don't bring in undefined values } else if ( copy !== undefined ) { target[ name ] = copy; } } } } // Return the modified object return target; }; jQuery.extend( { // Unique for each copy of jQuery on the page expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), // Assume jQuery is ready without the ready module isReady: true, error: function( msg ) { throw new Error( msg ); }, noop: function() {}, isFunction: function( obj ) { return jQuery.type( obj ) === "function"; }, isArray: Array.isArray, isWindow: function( obj ) { return obj != null && obj === obj.window; }, isNumeric: function( obj ) { // As of jQuery 3.0, isNumeric is limited to // strings and numbers (primitives or objects) // that can be coerced to finite numbers (gh-2662) var type = jQuery.type( obj ); return ( type === "number" || type === "string" ) && // parseFloat NaNs numeric-cast false positives ("") // ...but misinterprets leading-number strings, particularly hex literals ("0x...") // subtraction forces infinities to NaN !isNaN( obj - parseFloat( obj ) ); }, isPlainObject: function( obj ) { var proto, Ctor; // Detect obvious negatives // Use toString instead of jQuery.type to catch host objects if ( !obj || toString.call( obj ) !== "[object Object]" ) { return false; } proto = getProto( obj ); // Objects with no prototype (e.g., `Object.create( null )`) are plain if ( !proto ) { return true; } // Objects with prototype are plain iff they were constructed by a global Object function Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; }, isEmptyObject: function( obj ) { /* eslint-disable no-unused-vars */ // See https://github.com/eslint/eslint/issues/6125 var name; for ( name in obj ) { return false; } return true; }, type: function( obj ) { if ( obj == null ) { return obj + ""; } // Support: Android <=2.3 only (functionish RegExp) return typeof obj === "object" || typeof obj === "function" ? class2type[ toString.call( obj ) ] || "object" : typeof obj; }, // Evaluates a script in a global context globalEval: function( code ) { DOMEval( code ); }, // Convert dashed to camelCase; used by the css and data modules // Support: IE <=9 - 11, Edge 12 - 13 // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); }, each: function( obj, callback ) { var length, i = 0; if ( isArrayLike( obj ) ) { length = obj.length; for ( ; i < length; i++ ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } else { for ( i in obj ) { if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; } } } return obj; }, // Support: Android <=4.0 only trim: function( text ) { return text == null ? "" : ( text + "" ).replace( rtrim, "" ); }, // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; if ( arr != null ) { if ( isArrayLike( Object( arr ) ) ) { jQuery.merge( ret, typeof arr === "string" ? [ arr ] : arr ); } else { push.call( ret, arr ); } } return ret; }, inArray: function( elem, arr, i ) { return arr == null ? -1 : indexOf.call( arr, elem, i ); }, // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit merge: function( first, second ) { var len = +second.length, j = 0, i = first.length; for ( ; j < len; j++ ) { first[ i++ ] = second[ j ]; } first.length = i; return first; }, grep: function( elems, callback, invert ) { var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; // Go through the array, only saving the items // that pass the validator function for ( ; i < length; i++ ) { callbackInverse = !callback( elems[ i ], i ); if ( callbackInverse !== callbackExpect ) { matches.push( elems[ i ] ); } } return matches; }, // arg is for internal usage only map: function( elems, callback, arg ) { var length, value, i = 0, ret = []; // Go through the array, translating each of the items to their new values if ( isArrayLike( elems ) ) { length = elems.length; for ( ; i < length; i++ ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } // Go through every key on the object, } else { for ( i in elems ) { value = callback( elems[ i ], i, arg ); if ( value != null ) { ret.push( value ); } } } // Flatten any nested arrays return concat.apply( [], ret ); }, // A global GUID counter for objects guid: 1, // Bind a function to a context, optionally partially applying any // arguments. proxy: function( fn, context ) { var tmp, args, proxy; if ( typeof context === "string" ) { tmp = fn[ context ]; context = fn; fn = tmp; } // Quick check to determine if target is callable, in the spec // this throws a TypeError, but we will just return undefined. if ( !jQuery.isFunction( fn ) ) { return undefined; } // Simulated bind args = slice.call( arguments, 2 ); proxy = function() { return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); }; // Set the guid of unique handler to the same of original handler, so it can be removed proxy.guid = fn.guid = fn.guid || jQuery.guid++; return proxy; }, now: Date.now, // jQuery.support is not used in Core but other projects attach their // properties to it so it needs to exist. support: support } ); if ( typeof Symbol === "function" ) { jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; } // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), function( i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); function isArrayLike( obj ) { // Support: real iOS 8.2 only (not reproducible in simulator) // `in` check used to prevent JIT error (gh-2145) // hasOwn isn't used here due to false negatives // regarding Nodelist length in IE var length = !!obj && "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { return false; } return type === "array" || length === 0 || typeof length === "number" && length > 0 && ( length - 1 ) in obj; } var Sizzle = /*! * Sizzle CSS Selector Engine v2.3.3 * https://sizzlejs.com/ * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license * * Date: 2016-08-08 */ (function( window ) { var i, support, Expr, getText, isXML, tokenize, compile, select, outermostContext, sortInput, hasDuplicate, // Local document vars setDocument, document, docElem, documentIsHTML, rbuggyQSA, rbuggyMatches, matches, contains, // Instance-specific data expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; } return 0; }, // Instance methods hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, push_native = arr.push, push = arr.push, slice = arr.slice, // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { if ( list[i] === elem ) { return i; } } return -1; }, booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), matchExpr = { "ID": new RegExp( "^#(" + identifier + ")" ), "CLASS": new RegExp( "^\\.(" + identifier + ")" ), "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), // For use in libraries implementing .is() // We use this for POS matching in `select` "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, rnative = /^[^{]+\{\s*\[native \w/, // Easily-parseable/retrievable ID or TAG or CLASS selectors rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, rsibling = /[+~]/, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), funescape = function( _, escaped, escapedWhitespace ) { var high = "0x" + escaped - 0x10000; // NaN means non-codepoint // Support: Firefox<24 // Workaround erroneous numeric interpretation of +"0x" return high !== high || escapedWhitespace ? escaped : high < 0 ? // BMP codepoint String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, // CSS string/identifier serialization // https://drafts.csswg.org/cssom/#common-serializing-idioms rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, fcssescape = function( ch, asCodePoint ) { if ( asCodePoint ) { // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER if ( ch === "\0" ) { return "\uFFFD"; } // Control characters and (dependent upon position) numbers get escaped as code points return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped return "\\" + ch; }, // Used for iframes // See setDocument() // Removing the function wrapper causes a "Permission Denied" // error in IE unloadHandler = function() { setDocument(); }, disabledAncestor = addCombinator( function( elem ) { return elem.disabled === true && ("form" in elem || "label" in elem); }, { dir: "parentNode", next: "legend" } ); // Optimize for push.apply( _, NodeList ) try { push.apply( (arr = slice.call( preferredDoc.childNodes )), preferredDoc.childNodes ); // Support: Android<4.0 // Detect silently failing push.apply arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { push_native.apply( target, slice.call(els) ); } : // Support: IE<9 // Otherwise append directly function( target, els ) { var j = target.length, i = 0; // Can't trust NodeList.length while ( (target[j++] = els[i++]) ) {} target.length = j - 1; } }; } function Sizzle( selector, context, results, seed ) { var m, i, elem, nid, match, groups, newSelector, newContext = context && context.ownerDocument, // nodeType defaults to 9, since context defaults to document nodeType = context ? context.nodeType : 9; results = results || []; // Return early from calls with invalid selector or context if ( typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { return results; } // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { setDocument( context ); } context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // ID selector if ( (m = match[1]) ) { // Document context if ( nodeType === 9 ) { if ( (elem = context.getElementById( m )) ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID if ( elem.id === m ) { results.push( elem ); return results; } } else { return results; } // Element context } else { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID if ( newContext && (elem = newContext.getElementById( m )) && contains( context, elem ) && elem.id === m ) { results.push( elem ); return results; } } // Type selector } else if ( match[2] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } } // Take advantage of querySelectorAll if ( support.qsa && !compilerCache[ selector + " " ] && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { if ( nodeType !== 1 ) { newContext = context; newSelector = selector; // qSA looks outside Element context, which is not what we want // Thanks to Andrew Dupont for this workaround technique // Support: IE <=8 // Exclude object elements } else if ( context.nodeName.toLowerCase() !== "object" ) { // Capture the context ID, setting it first if necessary if ( (nid = context.getAttribute( "id" )) ) { nid = nid.replace( rcssescape, fcssescape ); } else { context.setAttribute( "id", (nid = expando) ); } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { groups[i] = "#" + nid + " " + toSelector( groups[i] ); } newSelector = groups.join( "," ); // Expand context for sibling selectors newContext = rsibling.test( selector ) && testContext( context.parentNode ) || context; } if ( newSelector ) { try { push.apply( results, newContext.querySelectorAll( newSelector ) ); return results; } catch ( qsaError ) { } finally { if ( nid === expando ) { context.removeAttribute( "id" ); } } } } } } // All others return select( selector.replace( rtrim, "$1" ), context, results, seed ); } /** * Create key-value caches of limited size * @returns {function(string, object)} Returns the Object data after storing it on itself with * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) * deleting the oldest entry */ function createCache() { var keys = []; function cache( key, value ) { // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { // Only keep the most recent entries delete cache[ keys.shift() ]; } return (cache[ key + " " ] = value); } return cache; } /** * Mark a function for special use by Sizzle * @param {Function} fn The function to mark */ function markFunction( fn ) { fn[ expando ] = true; return fn; } /** * Support testing using an element * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { var el = document.createElement("fieldset"); try { return !!fn( el ); } catch (e) { return false; } finally { // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } // release memory in IE el = null; } } /** * Adds the same handler for all of the specified attrs * @param {String} attrs Pipe-separated list of attributes * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { var arr = attrs.split("|"), i = arr.length; while ( i-- ) { Expr.attrHandle[ arr[i] ] = handler; } } /** * Checks document order of two siblings * @param {Element} a * @param {Element} b * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b */ function siblingCheck( a, b ) { var cur = b && a, diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes if ( diff ) { return diff; } // Check if b follows a if ( cur ) { while ( (cur = cur.nextSibling) ) { if ( cur === b ) { return -1; } } } return a ? 1 : -1; } /** * Returns a function to use in pseudos for input types * @param {String} type */ function createInputPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === type; }; } /** * Returns a function to use in pseudos for buttons * @param {String} type */ function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); return (name === "input" || name === "button") && elem.type === type; }; } /** * Returns a function to use in pseudos for :enabled/:disabled * @param {Boolean} disabled true for :disabled; false for :enabled */ function createDisabledPseudo( disabled ) { // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable return function( elem ) { // Only certain elements can match :enabled or :disabled // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled if ( "form" in elem ) { // Check for inherited disabledness on relevant non-disabled elements: // * listed form-associated elements in a disabled fieldset // https://html.spec.whatwg.org/multipage/forms.html#category-listed // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled // * option elements in a disabled optgroup // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled // All such elements have a "form" property. if ( elem.parentNode && elem.disabled === false ) { // Option elements defer to a parent optgroup if present if ( "label" in elem ) { if ( "label" in elem.parentNode ) { return elem.parentNode.disabled === disabled; } else { return elem.disabled === disabled; } } // Support: IE 6 - 11 // Use the isDisabled shortcut property to check for disabled fieldset ancestors return elem.isDisabled === disabled || // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && disabledAncestor( elem ) === disabled; } return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property. // Some victims get caught in our net (label, legend, menu, track), but it shouldn't // even exist on them, let alone have a boolean value. } else if ( "label" in elem ) { return elem.disabled === disabled; } // Remaining elements are neither :enabled nor :disabled return false; }; } /** * Returns a function to use in pseudos for positionals * @param {Function} fn */ function createPositionalPseudo( fn ) { return markFunction(function( argument ) { argument = +argument; return markFunction(function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { if ( seed[ (j = matchIndexes[i]) ] ) { seed[j] = !(matches[j] = seed[j]); } } }); }); } /** * Checks a node for validity as a Sizzle context * @param {Element|Object=} context * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience support = Sizzle.support = {}; /** * Detects XML nodes * @param {Element|Object} elem An element or a document * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { // documentElement is verified for cases where it doesn't yet exist // (such as loading iframes in IE - #4833) var documentElement = elem && (elem.ownerDocument || elem).documentElement; return documentElement ? documentElement.nodeName !== "HTML" : false; }; /** * Sets document-related variables once based on the current document * @param {Element|Object} [doc] An element or document object to use to set the document * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { var hasCompare, subWindow, doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } // Update global variables document = doc; docElem = document.documentElement; documentIsHTML = !isXML( document ); // Support: IE 9-11, Edge // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) if ( preferredDoc !== document && (subWindow = document.defaultView) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { subWindow.addEventListener( "unload", unloadHandler, false ); // Support: IE 9 - 10 only } else if ( subWindow.attachEvent ) { subWindow.attachEvent( "onunload", unloadHandler ); } } /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) support.attributes = assert(function( el ) { el.className = "i"; return !el.getAttribute("className"); }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements support.getElementsByTagName = assert(function( el ) { el.appendChild( document.createComment("") ); return !el.getElementsByTagName("*").length; }); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test support.getById = assert(function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; }); // ID filter and find if ( support.getById ) { Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { return elem.getAttribute("id") === attrId; }; }; Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); if ( elem ) { // Verify the id attribute node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; while ( (elem = elems[i++]) ) { node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } } } return []; } }; } // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); // DocumentFragment nodes don't have gEBTN } else if ( support.qsa ) { return context.querySelectorAll( tag ); } } : function( tag, context ) { var elem, tmp = [], i = 0, // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { while ( (elem = results[i++]) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } } return tmp; } return results; }; // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } }; /* QSA/matchesSelector ---------------------------------------------------------------------- */ // QSA and matchesSelector support // matchesSelector(:active) reports false when true (IE9/Opera 11.5) rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21) // We allow this because of a bug in IE8/9 that throws an error // whenever `document.activeElement` is accessed on an iframe // So, we allow :focus to pass through QSA all the time to avoid the IE error // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { // Build QSA regex // Regex strategy adopted from Diego Perini assert(function( el ) { // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, // since its presence should be enough // https://bugs.jquery.com/ticket/12359 docElem.appendChild( el ).innerHTML = "" + ""; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section if ( el.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly if ( !el.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { rbuggyQSA.push("~="); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !el.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { rbuggyQSA.push(".#.+[+~]"); } }); assert(function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment var input = document.createElement("input"); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute if ( el.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests if ( el.querySelectorAll(":enabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; if ( el.querySelectorAll(":disabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Opera 10-11 does not throw on post-comma invalid pseudos el.querySelectorAll("*,:x"); rbuggyQSA.push(",.*:"); }); } if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector) )) ) { assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); // This should fail with an exception // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); }); } rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); /* Contains ---------------------------------------------------------------------- */ hasCompare = rnative.test( docElem.compareDocumentPosition ); // Element contains another // Purposefully self-exclusive // As in, an element does not contain itself contains = hasCompare || rnative.test( docElem.contains ) ? function( a, b ) { var adown = a.nodeType === 9 ? a.documentElement : a, bup = b && b.parentNode; return a === bup || !!( bup && bup.nodeType === 1 && ( adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 )); } : function( a, b ) { if ( b ) { while ( (b = b.parentNode) ) { if ( b === a ) { return true; } } } return false; }; /* Sorting ---------------------------------------------------------------------- */ // Document order sorting sortOrder = hasCompare ? function( a, b ) { // Flag for duplicate removal if ( a === b ) { hasDuplicate = true; return 0; } // Sort on method existence if only one input has compareDocumentPosition var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; if ( compare ) { return compare; } // Calculate position if both inputs belong to the same document compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected 1; // Disconnected nodes if ( compare & 1 || (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } // Maintain original order return sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } return compare & 4 ? -1 : 1; } : function( a, b ) { // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; return 0; } var cur, i = 0, aup = a.parentNode, bup = b.parentNode, ap = [ a ], bp = [ b ]; // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { return a === document ? -1 : b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check } else if ( aup === bup ) { return siblingCheck( a, b ); } // Otherwise we need full lists of their ancestors for comparison cur = a; while ( (cur = cur.parentNode) ) { ap.unshift( cur ); } cur = b; while ( (cur = cur.parentNode) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy while ( ap[i] === bp[i] ) { i++; } return i ? // Do a sibling check if the nodes have a common ancestor siblingCheck( ap[i], bp[i] ) : // Otherwise nodes in our document sort first ap[i] === preferredDoc ? -1 : bp[i] === preferredDoc ? 1 : 0; }; return document; }; Sizzle.matches = function( expr, elements ) { return Sizzle( expr, null, null, elements ); }; Sizzle.matchesSelector = function( elem, expr ) { // Set document vars if needed if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } // Make sure that attribute selectors are quoted expr = expr.replace( rattributeQuotes, "='$1']" ); if ( support.matchesSelector && documentIsHTML && !compilerCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { try { var ret = matches.call( elem, expr ); // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document // fragment in IE 9 elem.document && elem.document.nodeType !== 11 ) { return ret; } } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { // Set document vars if needed if ( ( context.ownerDocument || context ) !== document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { // Set document vars if needed if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : undefined; return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { return (sel + "").replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { throw new Error( "Syntax error, unrecognized expression: " + msg ); }; /** * Document sorting and removing duplicates * @param {ArrayLike} results */ Sizzle.uniqueSort = function( results ) { var elem, duplicates = [], j = 0, i = 0; // Unless we *know* we can detect duplicates, assume their presence hasDuplicate = !support.detectDuplicates; sortInput = !support.sortStable && results.slice( 0 ); results.sort( sortOrder ); if ( hasDuplicate ) { while ( (elem = results[i++]) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } } while ( j-- ) { results.splice( duplicates[ j ], 1 ); } } // Clear input after sorting to release objects // See https://github.com/jquery/sizzle/pull/225 sortInput = null; return results; }; /** * Utility function for retrieving the text value of an array of DOM nodes * @param {Array|Element} elem */ getText = Sizzle.getText = function( elem ) { var node, ret = "", i = 0, nodeType = elem.nodeType; if ( !nodeType ) { // If no nodeType, this is expected to be an array while ( (node = elem[i++]) ) { // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); } } } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } // Do not include comment or processing instruction nodes return ret; }; Expr = Sizzle.selectors = { // Can be adjusted by the user cacheLength: 50, createPseudo: markFunction, match: matchExpr, attrHandle: {}, find: {}, relative: { ">": { dir: "parentNode", first: true }, " ": { dir: "parentNode" }, "+": { dir: "previousSibling", first: true }, "~": { dir: "previousSibling" } }, preFilter: { "ATTR": function( match ) { match[1] = match[1].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); if ( match[2] === "~=" ) { match[3] = " " + match[3] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 4 xn-component of xn+y argument ([+-]?\d*n|) 5 sign of xn-component 6 x of xn-component 7 sign of y-component 8 y of y-component */ match[1] = match[1].toLowerCase(); if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument if ( !match[3] ) { Sizzle.error( match[0] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); // other types prohibit arguments } else if ( match[3] ) { Sizzle.error( match[0] ); } return match; }, "PSEUDO": function( match ) { var excess, unquoted = !match[6] && match[2]; if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is if ( match[3] ) { match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && // Get excess from tokenize (recursively) (excess = tokenize( unquoted, true )) && // advance to the next closing parenthesis (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { // excess is a negative index match[0] = match[0].slice( 0, excess ); match[2] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) return match.slice( 0, 3 ); } }, filter: { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? function() { return true; } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; }, "CLASS": function( className ) { var pattern = classCache[ className + " " ]; return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); }); }, "ATTR": function( name, operator, check ) { return function( elem ) { var result = Sizzle.attr( elem, name ); if ( result == null ) { return operator === "!="; } if ( !operator ) { return true; } result += ""; return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; }, "CHILD": function( type, what, argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; return first === 1 && last === 0 ? // Shortcut for :nth-*(n) function( elem ) { return !!elem.parentNode; } : function( elem, context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, name = ofType && elem.nodeName.toLowerCase(), useCache = !xml && !ofType, diff = false; if ( parent ) { // :(first|last|only)-(child|of-type) if ( simple ) { while ( dir ) { node = elem; while ( (node = node[ dir ]) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { return false; } } // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } return true; } start = [ forward ? parent.firstChild : parent.lastChild ]; // non-xml :nth-child(...) stores cache data on `parent` if ( forward && useCache ) { // Seek `elem` from a previously-cached index // ...in a gzip-friendly way node = parent; outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; while ( (node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start (diff = nodeIndex = 0) || start.pop()) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; break; } } } else { // Use previously-cached element index if available if ( useCache ) { // ...in a gzip-friendly way node = elem; outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex; } // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { // Use the same loop as above to seek `elem` from the start while ( (node = ++nodeIndex && node && node[ dir ] || (diff = nodeIndex = 0) || start.pop()) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { // Cache the index of each encountered element if ( useCache ) { outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || (outerCache[ node.uniqueID ] = {}); uniqueCache[ type ] = [ dirruns, diff ]; } if ( node === elem ) { break; } } } } } // Incorporate the offset, then check against cycle size diff -= last; return diff === first || ( diff % first === 0 && diff / first >= 0 ); } }; }, "PSEUDO": function( pseudo, argument ) { // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters // Remember that setFilters inherits from pseudos var args, fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || Sizzle.error( "unsupported pseudo: " + pseudo ); // The user may use createPseudo to indicate that // arguments are needed to create the filter function // just as Sizzle does if ( fn[ expando ] ) { return fn( argument ); } // But maintain support for old signatures if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? markFunction(function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { idx = indexOf( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : function( elem ) { return fn( elem, 0, args ); }; } return fn; } }, pseudos: { // Potentially complex pseudos "not": markFunction(function( selector ) { // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators var input = [], results = [], matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? markFunction(function( seed, matches, context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { if ( (elem = unmatched[i]) ) { seed[i] = !(matches[i] = elem); } } }) : function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); // Don't keep the element (issue #299) input[0] = null; return !results.pop(); }; }), "has": markFunction(function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; }), "contains": markFunction(function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; }), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value // being equal to the identifier C, // or beginning with the identifier C immediately followed by "-". // The matching of C against the element's language value is performed case-insensitively. // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { // lang value must be a valid identifier if ( !ridentifier.test(lang || "") ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { if ( (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); return false; }; }), // Miscellaneous "target": function( elem ) { var hash = window.location && window.location.hash; return hash && hash.slice( 1 ) === elem.id; }, "root": function( elem ) { return elem === docElem; }, "focus": function( elem ) { return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, // Boolean properties "enabled": createDisabledPseudo( false ), "disabled": createDisabledPseudo( true ), "checked": function( elem ) { // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); }, "selected": function( elem ) { // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { elem.parentNode.selectedIndex; } return elem.selected === true; }, // Contents "empty": function( elem ) { // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) // nodeType < 6 works because attributes (2) do not appear as children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { if ( elem.nodeType < 6 ) { return false; } } return true; }, "parent": function( elem ) { return !Expr.pseudos["empty"]( elem ); }, // Element/input types "header": function( elem ) { return rheader.test( elem.nodeName ); }, "input": function( elem ) { return rinputs.test( elem.nodeName ); }, "button": function( elem ) { var name = elem.nodeName.toLowerCase(); return name === "input" && elem.type === "button" || name === "button"; }, "text": function( elem ) { var attr; return elem.nodeName.toLowerCase() === "input" && elem.type === "text" && // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); }, // Position-in-collection "first": createPositionalPseudo(function() { return [ 0 ]; }), "last": createPositionalPseudo(function( matchIndexes, length ) { return [ length - 1 ]; }), "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; }), "even": createPositionalPseudo(function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; }), "odd": createPositionalPseudo(function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; }), "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; --i >= 0; ) { matchIndexes.push( i ); } return matchIndexes; }), "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; }) } }; Expr.pseudos["nth"] = Expr.pseudos["eq"]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { Expr.pseudos[ i ] = createInputPseudo( i ); } for ( i in { submit: true, reset: true } ) { Expr.pseudos[ i ] = createButtonPseudo( i ); } // Easy API for creating new setFilters function setFilters() {} setFilters.prototype = Expr.filters = Expr.pseudos; Expr.setFilters = new setFilters(); tokenize = Sizzle.tokenize = function( selector, parseOnly ) { var matched, match, tokens, type, soFar, groups, preFilters, cached = tokenCache[ selector + " " ]; if ( cached ) { return parseOnly ? 0 : cached.slice( 0 ); } soFar = selector; groups = []; preFilters = Expr.preFilter; while ( soFar ) { // Comma and first run if ( !matched || (match = rcomma.exec( soFar )) ) { if ( match ) { // Don't consume trailing commas as valid soFar = soFar.slice( match[0].length ) || soFar; } groups.push( (tokens = []) ); } matched = false; // Combinators if ( (match = rcombinators.exec( soFar )) ) { matched = match.shift(); tokens.push({ value: matched, // Cast descendant combinators to space type: match[0].replace( rtrim, " " ) }); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || (match = preFilters[ type ]( match ))) ) { matched = match.shift(); tokens.push({ value: matched, type: type, matches: match }); soFar = soFar.slice( matched.length ); } } if ( !matched ) { break; } } // Return the length of the invalid excess // if we're just parsing // Otherwise, throw an error or return tokens return parseOnly ? soFar.length : soFar ? Sizzle.error( selector ) : // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; function toSelector( tokens ) { var i = 0, len = tokens.length, selector = ""; for ( ; i < len; i++ ) { selector += tokens[i].value; } return selector; } function addCombinator( matcher, combinator, base ) { var dir = combinator.dir, skip = combinator.next, key = skip || dir, checkNonElements = base && key === "parentNode", doneName = done++; return combinator.first ? // Check against closest ancestor/preceding element function( elem, context, xml ) { while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } } return false; } : // Check against all ancestor/preceding elements function( elem, context, xml ) { var oldCache, uniqueCache, outerCache, newCache = [ dirruns, doneName ]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; } } } } else { while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { outerCache = elem[ expando ] || (elem[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; } else if ( (oldCache = uniqueCache[ key ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements return (newCache[ 2 ] = oldCache[ 2 ]); } else { // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { return true; } } } } } return false; }; } function elementMatcher( matchers ) { return matchers.length > 1 ? function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { if ( !matchers[i]( elem, context, xml ) ) { return false; } } return true; } : matchers[0]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { Sizzle( selector, contexts[i], results ); } return results; } function condense( unmatched, map, filter, context, xml ) { var elem, newUnmatched = [], i = 0, len = unmatched.length, mapped = map != null; for ( ; i < len; i++ ) { if ( (elem = unmatched[i]) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { map.push( i ); } } } } return newUnmatched; } function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { if ( postFilter && !postFilter[ expando ] ) { postFilter = setMatcher( postFilter ); } if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } return markFunction(function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? condense( elems, preMap, preFilter, context, xml ) : elems, matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? // ...intermediate processing is necessary [] : // ...otherwise use results directly results : matcherIn; // Find primary matches if ( matcher ) { matcher( matcherIn, matcherOut, context, xml ); } // Apply postFilter if ( postFilter ) { temp = condense( matcherOut, postMap ); postFilter( temp, [], context, xml ); // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { if ( (elem = temp[i]) ) { matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); } } } if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) ) { // Restore matcherIn since elem is not yet a final match temp.push( (matcherIn[i] = elem) ); } } postFinder( null, (matcherOut = []), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } } } // Add elements to results, through postFinder if defined } else { matcherOut = condense( matcherOut === results ? matcherOut.splice( preexisting, matcherOut.length ) : matcherOut ); if ( postFinder ) { postFinder( null, results, matcherOut, xml ); } else { push.apply( results, matcherOut ); } } }); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, leadingRelative = Expr.relative[ tokens[0].type ], implicitRelative = leadingRelative || Expr.relative[" "], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) matchContext = addCombinator( function( elem ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { if ( (matcher = Expr.relative[ tokens[i].type ]) ) { matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; } else { matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { if ( Expr.relative[ tokens[j].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*` tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), j < len && toSelector( tokens ) ); } matchers.push( matcher ); } } return elementMatcher( matchers ); } function matcherFromGroupMatchers( elementMatchers, setMatchers ) { var bySet = setMatchers.length > 0, byElement = elementMatchers.length > 0, superMatcher = function( seed, context, xml, results, outermost ) { var elem, j, matcher, matchedCount = 0, i = "0", unmatched = seed && [], setMatched = [], contextBackup = outermostContext, // We must always have either seed elements or outermost context elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), len = elems.length; if ( outermost ) { outermostContext = context === document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id for ( ; i !== len && (elem = elems[i]) != null; i++ ) { if ( byElement && elem ) { j = 0; if ( !context && elem.ownerDocument !== document ) { setDocument( elem ); xml = !documentIsHTML; } while ( (matcher = elementMatchers[j++]) ) { if ( matcher( elem, context || document, xml) ) { results.push( elem ); break; } } if ( outermost ) { dirruns = dirrunsUnique; } } // Track unmatched elements for set filters if ( bySet ) { // They will have gone through all possible matchers if ( (elem = !matcher && elem) ) { matchedCount--; } // Lengthen the array for every element, matched or not if ( seed ) { unmatched.push( elem ); } } } // `i` is now the count of elements visited above, and adding it to `matchedCount` // makes the latter nonnegative. matchedCount += i; // Apply set filters to unmatched elements // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` // equals `i`), unless we didn't visit _any_ elements in the above loop because we have // no element matchers and no seed. // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that // case, which will result in a "00" `matchedCount` that differs from `i` but is also // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; while ( (matcher = setMatchers[j++]) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { if ( !(unmatched[i] || setMatched[i]) ) { setMatched[i] = pop.call( results ); } } } // Discard index placeholder values to get only actual matches setMatched = condense( setMatched ); } // Add matches to results push.apply( results, setMatched ); // Seedless set matches succeeding multiple successful matchers stipulate sorting if ( outermost && !seed && setMatched.length > 0 && ( matchedCount + setMatchers.length ) > 1 ) { Sizzle.uniqueSort( results ); } } // Override manipulation of globals by nested matchers if ( outermost ) { dirruns = dirrunsUnique; outermostContext = contextBackup; } return unmatched; }; return bySet ? markFunction( superMatcher ) : superMatcher; } compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { var i, setMatchers = [], elementMatchers = [], cached = compilerCache[ selector + " " ]; if ( !cached ) { // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { elementMatchers.push( cached ); } } // Cache the compiled function cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; } return cached; }; /** * A low-level selection function that works with Sizzle's compiled * selector functions * @param {String|Function} selector A selector or a pre-compiled * selector function built with Sizzle.compile * @param {Element} context * @param {Array} [results] * @param {Array} [seed] A set of elements to match against */ select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, match = !seed && tokenize( (selector = compiled.selector || selector) ); results = results || []; // Try to minimize operations if there is only one selector in the list and no seed // (the latter of which guarantees us context) if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID tokens = match[0] = match[0].slice( 0 ); if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; // Precompiled matchers will still verify ancestry, so step up a level } else if ( compiled ) { context = context.parentNode; } selector = selector.slice( tokens.shift().value.length ); } // Fetch a seed set for right-to-left matching i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; while ( i-- ) { token = tokens[i]; // Abort if we hit a combinator if ( Expr.relative[ (type = token.type) ] ) { break; } if ( (find = Expr.find[ type ]) ) { // Search, expanding context for leading sibling combinators if ( (seed = find( token.matches[0].replace( runescape, funescape ), rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context )) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); selector = seed.length && toSelector( tokens ); if ( !selector ) { push.apply( results, seed ); return results; } break; } } } } // Compile and execute a filtering function if one is not provided // Provide `match` to avoid retokenization if we modified the selector above ( compiled || compile( selector, match ) )( seed, context, !documentIsHTML, results, !context || rsibling.test( selector ) && testContext( context.parentNode ) || context ); return results; }; // One-time assignments // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; // Initialize against the default document setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* support.sortDetached = assert(function( el ) { // Should return 1, but returns 4 (following) return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; }); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx if ( !assert(function( el ) { el.innerHTML = ""; return el.firstChild.getAttribute("href") === "#" ; }) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } }); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") if ( !support.attributes || !assert(function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; }) ) { addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } }); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies if ( !assert(function( el ) { return el.getAttribute("disabled") == null; }) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : (val = elem.getAttributeNode( name )) && val.specified ? val.value : null; } }); } return Sizzle; })( window ); jQuery.find = Sizzle; jQuery.expr = Sizzle.selectors; // Deprecated jQuery.expr[ ":" ] = jQuery.expr.pseudos; jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; jQuery.text = Sizzle.getText; jQuery.isXMLDoc = Sizzle.isXML; jQuery.contains = Sizzle.contains; jQuery.escapeSelector = Sizzle.escape; var dir = function( elem, dir, until ) { var matched = [], truncate = until !== undefined; while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { if ( elem.nodeType === 1 ) { if ( truncate && jQuery( elem ).is( until ) ) { break; } matched.push( elem ); } } return matched; }; var siblings = function( n, elem ) { var matched = []; for ( ; n; n = n.nextSibling ) { if ( n.nodeType === 1 && n !== elem ) { matched.push( n ); } } return matched; }; var rneedsContext = jQuery.expr.match.needsContext; var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); var risSimple = /^.[^:#\[\.,]*$/; // Implement the identical functionality for filter and not function winnow( elements, qualifier, not ) { if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep( elements, function( elem, i ) { return !!qualifier.call( elem, i, elem ) !== not; } ); } // Single element if ( qualifier.nodeType ) { return jQuery.grep( elements, function( elem ) { return ( elem === qualifier ) !== not; } ); } // Arraylike of elements (jQuery, arguments, Array) if ( typeof qualifier !== "string" ) { return jQuery.grep( elements, function( elem ) { return ( indexOf.call( qualifier, elem ) > -1 ) !== not; } ); } // Simple selector that can be filtered directly, removing non-Elements if ( risSimple.test( qualifier ) ) { return jQuery.filter( qualifier, elements, not ); } // Complex selector, compare the two sets, removing non-Elements qualifier = jQuery.filter( qualifier, elements ); return jQuery.grep( elements, function( elem ) { return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1; } ); } jQuery.filter = function( expr, elems, not ) { var elem = elems[ 0 ]; if ( not ) { expr = ":not(" + expr + ")"; } if ( elems.length === 1 && elem.nodeType === 1 ) { return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; } return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { return elem.nodeType === 1; } ) ); }; jQuery.fn.extend( { find: function( selector ) { var i, ret, len = this.length, self = this; if ( typeof selector !== "string" ) { return this.pushStack( jQuery( selector ).filter( function() { for ( i = 0; i < len; i++ ) { if ( jQuery.contains( self[ i ], this ) ) { return true; } } } ) ); } ret = this.pushStack( [] ); for ( i = 0; i < len; i++ ) { jQuery.find( selector, self[ i ], ret ); } return len > 1 ? jQuery.uniqueSort( ret ) : ret; }, filter: function( selector ) { return this.pushStack( winnow( this, selector || [], false ) ); }, not: function( selector ) { return this.pushStack( winnow( this, selector || [], true ) ); }, is: function( selector ) { return !!winnow( this, // If this is a positional/relative selector, check membership in the returned set // so $("p:first").is("p:last") won't return true for a doc with two "p". typeof selector === "string" && rneedsContext.test( selector ) ? jQuery( selector ) : selector || [], false ).length; } } ); // Initialize a jQuery object // A central reference to the root jQuery(document) var rootjQuery, // A simple way to check for HTML strings // Prioritize #id over to avoid XSS via location.hash (#9521) // Strict HTML recognition (#11290: must start with <) // Shortcut simple #id case for speed rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, init = jQuery.fn.init = function( selector, context, root ) { var match, elem; // HANDLE: $(""), $(null), $(undefined), $(false) if ( !selector ) { return this; } // Method init() accepts an alternate rootjQuery // so migrate can support jQuery.sub (gh-2101) root = root || rootjQuery; // Handle HTML strings if ( typeof selector === "string" ) { if ( selector[ 0 ] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) { // Assume that strings that start and end with <> are HTML and skip the regex check match = [ null, selector, null ]; } else { match = rquickExpr.exec( selector ); } // Match html or make sure no context is specified for #id if ( match && ( match[ 1 ] || !context ) ) { // HANDLE: $(html) -> $(array) if ( match[ 1 ] ) { context = context instanceof jQuery ? context[ 0 ] : context; // Option to run scripts is true for back-compat // Intentionally let the error be thrown if parseHTML is not present jQuery.merge( this, jQuery.parseHTML( match[ 1 ], context && context.nodeType ? context.ownerDocument || context : document, true ) ); // HANDLE: $(html, props) if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { for ( match in context ) { // Properties of context are called as methods if possible if ( jQuery.isFunction( this[ match ] ) ) { this[ match ]( context[ match ] ); // ...and otherwise set as attributes } else { this.attr( match, context[ match ] ); } } } return this; // HANDLE: $(#id) } else { elem = document.getElementById( match[ 2 ] ); if ( elem ) { // Inject the element directly into the jQuery object this[ 0 ] = elem; this.length = 1; } return this; } // HANDLE: $(expr, $(...)) } else if ( !context || context.jquery ) { return ( context || root ).find( selector ); // HANDLE: $(expr, context) // (which is just equivalent to: $(context).find(expr) } else { return this.constructor( context ).find( selector ); } // HANDLE: $(DOMElement) } else if ( selector.nodeType ) { this[ 0 ] = selector; this.length = 1; return this; // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) { return root.ready !== undefined ? root.ready( selector ) : // Execute immediately if ready is not present selector( jQuery ); } return jQuery.makeArray( selector, this ); }; // Give the init function the jQuery prototype for later instantiation init.prototype = jQuery.fn; // Initialize central reference rootjQuery = jQuery( document ); var rparentsprev = /^(?:parents|prev(?:Until|All))/, // Methods guaranteed to produce a unique set when starting from a unique set guaranteedUnique = { children: true, contents: true, next: true, prev: true }; jQuery.fn.extend( { has: function( target ) { var targets = jQuery( target, this ), l = targets.length; return this.filter( function() { var i = 0; for ( ; i < l; i++ ) { if ( jQuery.contains( this, targets[ i ] ) ) { return true; } } } ); }, closest: function( selectors, context ) { var cur, i = 0, l = this.length, matched = [], targets = typeof selectors !== "string" && jQuery( selectors ); // Positional selectors never match, since there's no _selection_ context if ( !rneedsContext.test( selectors ) ) { for ( ; i < l; i++ ) { for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { // Always skip document fragments if ( cur.nodeType < 11 && ( targets ? targets.index( cur ) > -1 : // Don't pass non-elements to Sizzle cur.nodeType === 1 && jQuery.find.matchesSelector( cur, selectors ) ) ) { matched.push( cur ); break; } } } } return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); }, // Determine the position of an element within the set index: function( elem ) { // No argument, return index in parent if ( !elem ) { return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; } // Index in selector if ( typeof elem === "string" ) { return indexOf.call( jQuery( elem ), this[ 0 ] ); } // Locate the position of the desired element return indexOf.call( this, // If it receives a jQuery object, the first element is used elem.jquery ? elem[ 0 ] : elem ); }, add: function( selector, context ) { return this.pushStack( jQuery.uniqueSort( jQuery.merge( this.get(), jQuery( selector, context ) ) ) ); }, addBack: function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter( selector ) ); } } ); function sibling( cur, dir ) { while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} return cur; } jQuery.each( { parent: function( elem ) { var parent = elem.parentNode; return parent && parent.nodeType !== 11 ? parent : null; }, parents: function( elem ) { return dir( elem, "parentNode" ); }, parentsUntil: function( elem, i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { return sibling( elem, "nextSibling" ); }, prev: function( elem ) { return sibling( elem, "previousSibling" ); }, nextAll: function( elem ) { return dir( elem, "nextSibling" ); }, prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, nextUntil: function( elem, i, until ) { return dir( elem, "nextSibling", until ); }, prevUntil: function( elem, i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { return siblings( ( elem.parentNode || {} ).firstChild, elem ); }, children: function( elem ) { return siblings( elem.firstChild ); }, contents: function( elem ) { return elem.contentDocument || jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var matched = jQuery.map( this, fn, until ); if ( name.slice( -5 ) !== "Until" ) { selector = until; } if ( selector && typeof selector === "string" ) { matched = jQuery.filter( selector, matched ); } if ( this.length > 1 ) { // Remove duplicates if ( !guaranteedUnique[ name ] ) { jQuery.uniqueSort( matched ); } // Reverse order for parents* and prev-derivatives if ( rparentsprev.test( name ) ) { matched.reverse(); } } return this.pushStack( matched ); }; } ); var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); // Convert String-formatted options into Object-formatted ones function createOptions( options ) { var object = {}; jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { object[ flag ] = true; } ); return object; } /* * Create a callback list using the following parameters: * * options: an optional list of space-separated options that will change how * the callback list behaves or a more traditional option object * * By default a callback list will act like an event callback list and can be * "fired" multiple times. * * Possible options: * * once: will ensure the callback list can only be fired once (like a Deferred) * * memory: will keep track of previous values and will call any callback added * after the list has been fired right away with the latest "memorized" * values (like a Deferred) * * unique: will ensure a callback can only be added once (no duplicate in the list) * * stopOnFalse: interrupt callings when a callback returns false * */ jQuery.Callbacks = function( options ) { // Convert options from String-formatted to Object-formatted if needed // (we check in cache first) options = typeof options === "string" ? createOptions( options ) : jQuery.extend( {}, options ); var // Flag to know if list is currently firing firing, // Last fire value for non-forgettable lists memory, // Flag to know if list was already fired fired, // Flag to prevent firing locked, // Actual callback list list = [], // Queue of execution data for repeatable lists queue = [], // Index of currently firing callback (modified by add/remove as needed) firingIndex = -1, // Fire callbacks fire = function() { // Enforce single-firing locked = options.once; // Execute callbacks for all pending executions, // respecting firingIndex overrides and runtime changes fired = firing = true; for ( ; queue.length; firingIndex = -1 ) { memory = queue.shift(); while ( ++firingIndex < list.length ) { // Run callback and check for early termination if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && options.stopOnFalse ) { // Jump to end and forget the data so .add doesn't re-fire firingIndex = list.length; memory = false; } } } // Forget the data if we're done with it if ( !options.memory ) { memory = false; } firing = false; // Clean up if we're done firing for good if ( locked ) { // Keep an empty list if we have data for future add calls if ( memory ) { list = []; // Otherwise, this object is spent } else { list = ""; } } }, // Actual Callbacks object self = { // Add a callback or a collection of callbacks to the list add: function() { if ( list ) { // If we have memory from a past run, we should fire after adding if ( memory && !firing ) { firingIndex = list.length - 1; queue.push( memory ); } ( function add( args ) { jQuery.each( args, function( _, arg ) { if ( jQuery.isFunction( arg ) ) { if ( !options.unique || !self.has( arg ) ) { list.push( arg ); } } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) { // Inspect recursively add( arg ); } } ); } )( arguments ); if ( memory && !firing ) { fire(); } } return this; }, // Remove a callback from the list remove: function() { jQuery.each( arguments, function( _, arg ) { var index; while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { list.splice( index, 1 ); // Handle firing indexes if ( index <= firingIndex ) { firingIndex--; } } } ); return this; }, // Check if a given callback is in the list. // If no argument is given, return whether or not list has callbacks attached. has: function( fn ) { return fn ? jQuery.inArray( fn, list ) > -1 : list.length > 0; }, // Remove all callbacks from the list empty: function() { if ( list ) { list = []; } return this; }, // Disable .fire and .add // Abort any current/pending executions // Clear all callbacks and values disable: function() { locked = queue = []; list = memory = ""; return this; }, disabled: function() { return !list; }, // Disable .fire // Also disable .add unless we have memory (since it would have no effect) // Abort any pending executions lock: function() { locked = queue = []; if ( !memory && !firing ) { list = memory = ""; } return this; }, locked: function() { return !!locked; }, // Call all callbacks with the given context and arguments fireWith: function( context, args ) { if ( !locked ) { args = args || []; args = [ context, args.slice ? args.slice() : args ]; queue.push( args ); if ( !firing ) { fire(); } } return this; }, // Call all the callbacks with the given arguments fire: function() { self.fireWith( this, arguments ); return this; }, // To know if the callbacks have already been called at least once fired: function() { return !!fired; } }; return self; }; function Identity( v ) { return v; } function Thrower( ex ) { throw ex; } function adoptValue( value, resolve, reject ) { var method; try { // Check for promise aspect first to privilege synchronous behavior if ( value && jQuery.isFunction( ( method = value.promise ) ) ) { method.call( value ).done( resolve ).fail( reject ); // Other thenables } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) { method.call( value, resolve, reject ); // Other non-thenables } else { // Support: Android 4.0 only // Strict mode functions invoked without .call/.apply get global-object context resolve.call( undefined, value ); } // For Promises/A+, convert exceptions into rejections // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in // Deferred#then to conditionally suppress rejection. } catch ( value ) { // Support: Android 4.0 only // Strict mode functions invoked without .call/.apply get global-object context reject.call( undefined, value ); } } jQuery.extend( { Deferred: function( func ) { var tuples = [ // action, add listener, callbacks, // ... .then handlers, argument index, [final state] [ "notify", "progress", jQuery.Callbacks( "memory" ), jQuery.Callbacks( "memory" ), 2 ], [ "resolve", "done", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), 0, "resolved" ], [ "reject", "fail", jQuery.Callbacks( "once memory" ), jQuery.Callbacks( "once memory" ), 1, "rejected" ] ], state = "pending", promise = { state: function() { return state; }, always: function() { deferred.done( arguments ).fail( arguments ); return this; }, "catch": function( fn ) { return promise.then( null, fn ); }, // Keep pipe for back-compat pipe: function( /* fnDone, fnFail, fnProgress */ ) { var fns = arguments; return jQuery.Deferred( function( newDefer ) { jQuery.each( tuples, function( i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; // deferred.progress(function() { bind to newDefer or newDefer.notify }) // deferred.done(function() { bind to newDefer or newDefer.resolve }) // deferred.fail(function() { bind to newDefer or newDefer.reject }) deferred[ tuple[ 1 ] ]( function() { var returned = fn && fn.apply( this, arguments ); if ( returned && jQuery.isFunction( returned.promise ) ) { returned.promise() .progress( newDefer.notify ) .done( newDefer.resolve ) .fail( newDefer.reject ); } else { newDefer[ tuple[ 0 ] + "With" ]( this, fn ? [ returned ] : arguments ); } } ); } ); fns = null; } ).promise(); }, then: function( onFulfilled, onRejected, onProgress ) { var maxDepth = 0; function resolve( depth, deferred, handler, special ) { return function() { var that = this, args = arguments, mightThrow = function() { var returned, then; // Support: Promises/A+ section 2.3.3.3.3 // https://promisesaplus.com/#point-59 // Ignore double-resolution attempts if ( depth < maxDepth ) { return; } returned = handler.apply( that, args ); // Support: Promises/A+ section 2.3.1 // https://promisesaplus.com/#point-48 if ( returned === deferred.promise() ) { throw new TypeError( "Thenable self-resolution" ); } // Support: Promises/A+ sections 2.3.3.1, 3.5 // https://promisesaplus.com/#point-54 // https://promisesaplus.com/#point-75 // Retrieve `then` only once then = returned && // Support: Promises/A+ section 2.3.4 // https://promisesaplus.com/#point-64 // Only check objects and functions for thenability ( typeof returned === "object" || typeof returned === "function" ) && returned.then; // Handle a returned thenable if ( jQuery.isFunction( then ) ) { // Special processors (notify) just wait for resolution if ( special ) { then.call( returned, resolve( maxDepth, deferred, Identity, special ), resolve( maxDepth, deferred, Thrower, special ) ); // Normal processors (resolve) also hook into progress } else { // ...and disregard older resolution values maxDepth++; then.call( returned, resolve( maxDepth, deferred, Identity, special ), resolve( maxDepth, deferred, Thrower, special ), resolve( maxDepth, deferred, Identity, deferred.notifyWith ) ); } // Handle all other returned values } else { // Only substitute handlers pass on context // and multiple values (non-spec behavior) if ( handler !== Identity ) { that = undefined; args = [ returned ]; } // Process the value(s) // Default process is resolve ( special || deferred.resolveWith )( that, args ); } }, // Only normal processors (resolve) catch and reject exceptions process = special ? mightThrow : function() { try { mightThrow(); } catch ( e ) { if ( jQuery.Deferred.exceptionHook ) { jQuery.Deferred.exceptionHook( e, process.stackTrace ); } // Support: Promises/A+ section 2.3.3.3.4.1 // https://promisesaplus.com/#point-61 // Ignore post-resolution exceptions if ( depth + 1 >= maxDepth ) { // Only substitute handlers pass on context // and multiple values (non-spec behavior) if ( handler !== Thrower ) { that = undefined; args = [ e ]; } deferred.rejectWith( that, args ); } } }; // Support: Promises/A+ section 2.3.3.3.1 // https://promisesaplus.com/#point-57 // Re-resolve promises immediately to dodge false rejection from // subsequent errors if ( depth ) { process(); } else { // Call an optional hook to record the stack, in case of exception // since it's otherwise lost when execution goes async if ( jQuery.Deferred.getStackHook ) { process.stackTrace = jQuery.Deferred.getStackHook(); } window.setTimeout( process ); } }; } return jQuery.Deferred( function( newDefer ) { // progress_handlers.add( ... ) tuples[ 0 ][ 3 ].add( resolve( 0, newDefer, jQuery.isFunction( onProgress ) ? onProgress : Identity, newDefer.notifyWith ) ); // fulfilled_handlers.add( ... ) tuples[ 1 ][ 3 ].add( resolve( 0, newDefer, jQuery.isFunction( onFulfilled ) ? onFulfilled : Identity ) ); // rejected_handlers.add( ... ) tuples[ 2 ][ 3 ].add( resolve( 0, newDefer, jQuery.isFunction( onRejected ) ? onRejected : Thrower ) ); } ).promise(); }, // Get a promise for this deferred // If obj is provided, the promise aspect is added to the object promise: function( obj ) { return obj != null ? jQuery.extend( obj, promise ) : promise; } }, deferred = {}; // Add list-specific methods jQuery.each( tuples, function( i, tuple ) { var list = tuple[ 2 ], stateString = tuple[ 5 ]; // promise.progress = list.add // promise.done = list.add // promise.fail = list.add promise[ tuple[ 1 ] ] = list.add; // Handle state if ( stateString ) { list.add( function() { // state = "resolved" (i.e., fulfilled) // state = "rejected" state = stateString; }, // rejected_callbacks.disable // fulfilled_callbacks.disable tuples[ 3 - i ][ 2 ].disable, // progress_callbacks.lock tuples[ 0 ][ 2 ].lock ); } // progress_handlers.fire // fulfilled_handlers.fire // rejected_handlers.fire list.add( tuple[ 3 ].fire ); // deferred.notify = function() { deferred.notifyWith(...) } // deferred.resolve = function() { deferred.resolveWith(...) } // deferred.reject = function() { deferred.rejectWith(...) } deferred[ tuple[ 0 ] ] = function() { deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); return this; }; // deferred.notifyWith = list.fireWith // deferred.resolveWith = list.fireWith // deferred.rejectWith = list.fireWith deferred[ tuple[ 0 ] + "With" ] = list.fireWith; } ); // Make the deferred a promise promise.promise( deferred ); // Call given func if any if ( func ) { func.call( deferred, deferred ); } // All done! return deferred; }, // Deferred helper when: function( singleValue ) { var // count of uncompleted subordinates remaining = arguments.length, // count of unprocessed arguments i = remaining, // subordinate fulfillment data resolveContexts = Array( i ), resolveValues = slice.call( arguments ), // the master Deferred master = jQuery.Deferred(), // subordinate callback factory updateFunc = function( i ) { return function( value ) { resolveContexts[ i ] = this; resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; if ( !( --remaining ) ) { master.resolveWith( resolveContexts, resolveValues ); } }; }; // Single- and empty arguments are adopted like Promise.resolve if ( remaining <= 1 ) { adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject ); // Use .then() to unwrap secondary thenables (cf. gh-3000) if ( master.state() === "pending" || jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { return master.then(); } } // Multiple arguments are aggregated like Promise.all array elements while ( i-- ) { adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); } return master.promise(); } } ); // These usually indicate a programmer mistake during development, // warn about them ASAP rather than swallowing them by default. var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; jQuery.Deferred.exceptionHook = function( error, stack ) { // Support: IE 8 - 9 only // Console exists when dev tools are open, which can happen at any time if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); } }; jQuery.readyException = function( error ) { window.setTimeout( function() { throw error; } ); }; // The deferred used on DOM ready var readyList = jQuery.Deferred(); jQuery.fn.ready = function( fn ) { readyList .then( fn ) // Wrap jQuery.readyException in a function so that the lookup // happens at the time of error handling instead of callback // registration. .catch( function( error ) { jQuery.readyException( error ); } ); return this; }; jQuery.extend( { // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, // Hold (or release) the ready event holdReady: function( hold ) { if ( hold ) { jQuery.readyWait++; } else { jQuery.ready( true ); } }, // Handle when the DOM is ready ready: function( wait ) { // Abort if there are pending holds or we're already ready if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { return; } // Remember that the DOM is ready jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be if ( wait !== true && --jQuery.readyWait > 0 ) { return; } // If there are functions bound, to execute readyList.resolveWith( document, [ jQuery ] ); } } ); jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method function completed() { document.removeEventListener( "DOMContentLoaded", completed ); window.removeEventListener( "load", completed ); jQuery.ready(); } // Catch cases where $(document).ready() is called // after the browser event has already occurred. // Support: IE <=9 - 10 only // Older IE sometimes signals "interactive" too soon if ( document.readyState === "complete" || ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { // Handle it asynchronously to allow scripts the opportunity to delay ready window.setTimeout( jQuery.ready ); } else { // Use the handy event callback document.addEventListener( "DOMContentLoaded", completed ); // A fallback to window.onload, that will always work window.addEventListener( "load", completed ); } // Multifunctional method to get and set values of a collection // The value/s can optionally be executed if it's a function var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { var i = 0, len = elems.length, bulk = key == null; // Sets many values if ( jQuery.type( key ) === "object" ) { chainable = true; for ( i in key ) { access( elems, fn, i, key[ i ], true, emptyGet, raw ); } // Sets one value } else if ( value !== undefined ) { chainable = true; if ( !jQuery.isFunction( value ) ) { raw = true; } if ( bulk ) { // Bulk operations run against the entire set if ( raw ) { fn.call( elems, value ); fn = null; // ...except when executing function values } else { bulk = fn; fn = function( elem, key, value ) { return bulk.call( jQuery( elem ), value ); }; } } if ( fn ) { for ( ; i < len; i++ ) { fn( elems[ i ], key, raw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) ) ); } } } if ( chainable ) { return elems; } // Gets if ( bulk ) { return fn.call( elems ); } return len ? fn( elems[ 0 ], key ) : emptyGet; }; var acceptData = function( owner ) { // Accepts only: // - Node // - Node.ELEMENT_NODE // - Node.DOCUMENT_NODE // - Object // - Any return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); }; function Data() { this.expando = jQuery.expando + Data.uid++; } Data.uid = 1; Data.prototype = { cache: function( owner ) { // Check if the owner object already has a cache var value = owner[ this.expando ]; // If not, create one if ( !value ) { value = {}; // We can accept data for non-element nodes in modern browsers, // but we should not, see #8335. // Always return an empty object. if ( acceptData( owner ) ) { // If it is a node unlikely to be stringify-ed or looped over // use plain assignment if ( owner.nodeType ) { owner[ this.expando ] = value; // Otherwise secure it in a non-enumerable property // configurable must be true to allow the property to be // deleted when data is removed } else { Object.defineProperty( owner, this.expando, { value: value, configurable: true } ); } } } return value; }, set: function( owner, data, value ) { var prop, cache = this.cache( owner ); // Handle: [ owner, key, value ] args // Always use camelCase key (gh-2257) if ( typeof data === "string" ) { cache[ jQuery.camelCase( data ) ] = value; // Handle: [ owner, { properties } ] args } else { // Copy the properties one-by-one to the cache object for ( prop in data ) { cache[ jQuery.camelCase( prop ) ] = data[ prop ]; } } return cache; }, get: function( owner, key ) { return key === undefined ? this.cache( owner ) : // Always use camelCase key (gh-2257) owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ]; }, access: function( owner, key, value ) { // In cases where either: // // 1. No key was specified // 2. A string key was specified, but no value provided // // Take the "read" path and allow the get method to determine // which value to return, respectively either: // // 1. The entire cache object // 2. The data stored at the key // if ( key === undefined || ( ( key && typeof key === "string" ) && value === undefined ) ) { return this.get( owner, key ); } // When the key is not a string, or both a key and value // are specified, set or extend (existing objects) with either: // // 1. An object of properties // 2. A key and value // this.set( owner, key, value ); // Since the "set" path can have two possible entry points // return the expected data based on which path was taken[*] return value !== undefined ? value : key; }, remove: function( owner, key ) { var i, cache = owner[ this.expando ]; if ( cache === undefined ) { return; } if ( key !== undefined ) { // Support array or space separated string of keys if ( jQuery.isArray( key ) ) { // If key is an array of keys... // We always set camelCase keys, so remove that. key = key.map( jQuery.camelCase ); } else { key = jQuery.camelCase( key ); // If a key with the spaces exists, use it. // Otherwise, create an array by matching non-whitespace key = key in cache ? [ key ] : ( key.match( rnothtmlwhite ) || [] ); } i = key.length; while ( i-- ) { delete cache[ key[ i ] ]; } } // Remove the expando if there's no more data if ( key === undefined || jQuery.isEmptyObject( cache ) ) { // Support: Chrome <=35 - 45 // Webkit & Blink performance suffers when deleting properties // from DOM nodes, so set to undefined instead // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) if ( owner.nodeType ) { owner[ this.expando ] = undefined; } else { delete owner[ this.expando ]; } } }, hasData: function( owner ) { var cache = owner[ this.expando ]; return cache !== undefined && !jQuery.isEmptyObject( cache ); } }; var dataPriv = new Data(); var dataUser = new Data(); // Implementation Summary // // 1. Enforce API surface and semantic compatibility with 1.9.x branch // 2. Improve the module's maintainability by reducing the storage // paths to a single mechanism. // 3. Use the same single mechanism to support "private" and "user" data. // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) // 5. Avoid exposing implementation details on user objects (eg. expando properties) // 6. Provide a clear path for implementation upgrade to WeakMap in 2014 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, rmultiDash = /[A-Z]/g; function getData( data ) { if ( data === "true" ) { return true; } if ( data === "false" ) { return false; } if ( data === "null" ) { return null; } // Only convert to a number if it doesn't change the string if ( data === +data + "" ) { return +data; } if ( rbrace.test( data ) ) { return JSON.parse( data ); } return data; } function dataAttr( elem, key, data ) { var name; // If nothing was found internally, try to fetch any // data from the HTML5 data-* attribute if ( data === undefined && elem.nodeType === 1 ) { name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); data = elem.getAttribute( name ); if ( typeof data === "string" ) { try { data = getData( data ); } catch ( e ) {} // Make sure we set the data so it isn't changed later dataUser.set( elem, key, data ); } else { data = undefined; } } return data; } jQuery.extend( { hasData: function( elem ) { return dataUser.hasData( elem ) || dataPriv.hasData( elem ); }, data: function( elem, name, data ) { return dataUser.access( elem, name, data ); }, removeData: function( elem, name ) { dataUser.remove( elem, name ); }, // TODO: Now that all calls to _data and _removeData have been replaced // with direct calls to dataPriv methods, these can be deprecated. _data: function( elem, name, data ) { return dataPriv.access( elem, name, data ); }, _removeData: function( elem, name ) { dataPriv.remove( elem, name ); } } ); jQuery.fn.extend( { data: function( key, value ) { var i, name, data, elem = this[ 0 ], attrs = elem && elem.attributes; // Gets all values if ( key === undefined ) { if ( this.length ) { data = dataUser.get( elem ); if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { i = attrs.length; while ( i-- ) { // Support: IE 11 only // The attrs elements can be null (#14894) if ( attrs[ i ] ) { name = attrs[ i ].name; if ( name.indexOf( "data-" ) === 0 ) { name = jQuery.camelCase( name.slice( 5 ) ); dataAttr( elem, name, data[ name ] ); } } } dataPriv.set( elem, "hasDataAttrs", true ); } } return data; } // Sets multiple values if ( typeof key === "object" ) { return this.each( function() { dataUser.set( this, key ); } ); } return access( this, function( value ) { var data; // The calling jQuery object (element matches) is not empty // (and therefore has an element appears at this[ 0 ]) and the // `value` parameter was not undefined. An empty jQuery object // will result in `undefined` for elem = this[ 0 ] which will // throw an exception if an attempt to read a data cache is made. if ( elem && value === undefined ) { // Attempt to get data from the cache // The key will always be camelCased in Data data = dataUser.get( elem, key ); if ( data !== undefined ) { return data; } // Attempt to "discover" the data in // HTML5 custom data-* attrs data = dataAttr( elem, key ); if ( data !== undefined ) { return data; } // We tried really hard, but the data doesn't exist. return; } // Set the data... this.each( function() { // We always store the camelCased key dataUser.set( this, key, value ); } ); }, null, value, arguments.length > 1, null, true ); }, removeData: function( key ) { return this.each( function() { dataUser.remove( this, key ); } ); } } ); jQuery.extend( { queue: function( elem, type, data ) { var queue; if ( elem ) { type = ( type || "fx" ) + "queue"; queue = dataPriv.get( elem, type ); // Speed up dequeue by getting out quickly if this is just a lookup if ( data ) { if ( !queue || jQuery.isArray( data ) ) { queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); } else { queue.push( data ); } } return queue || []; } }, dequeue: function( elem, type ) { type = type || "fx"; var queue = jQuery.queue( elem, type ), startLength = queue.length, fn = queue.shift(), hooks = jQuery._queueHooks( elem, type ), next = function() { jQuery.dequeue( elem, type ); }; // If the fx queue is dequeued, always remove the progress sentinel if ( fn === "inprogress" ) { fn = queue.shift(); startLength--; } if ( fn ) { // Add a progress sentinel to prevent the fx queue from being // automatically dequeued if ( type === "fx" ) { queue.unshift( "inprogress" ); } // Clear up the last queue stop function delete hooks.stop; fn.call( elem, next, hooks ); } if ( !startLength && hooks ) { hooks.empty.fire(); } }, // Not public - generate a queueHooks object, or return the current one _queueHooks: function( elem, type ) { var key = type + "queueHooks"; return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { empty: jQuery.Callbacks( "once memory" ).add( function() { dataPriv.remove( elem, [ type + "queue", key ] ); } ) } ); } } ); jQuery.fn.extend( { queue: function( type, data ) { var setter = 2; if ( typeof type !== "string" ) { data = type; type = "fx"; setter--; } if ( arguments.length < setter ) { return jQuery.queue( this[ 0 ], type ); } return data === undefined ? this : this.each( function() { var queue = jQuery.queue( this, type, data ); // Ensure a hooks for this queue jQuery._queueHooks( this, type ); if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { jQuery.dequeue( this, type ); } } ); }, dequeue: function( type ) { return this.each( function() { jQuery.dequeue( this, type ); } ); }, clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, obj ) { var tmp, count = 1, defer = jQuery.Deferred(), elements = this, i = this.length, resolve = function() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); } }; if ( typeof type !== "string" ) { obj = type; type = undefined; } type = type || "fx"; while ( i-- ) { tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); if ( tmp && tmp.empty ) { count++; tmp.empty.add( resolve ); } } resolve(); return defer.promise( obj ); } } ); var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; var isHiddenWithinTree = function( elem, el ) { // isHiddenWithinTree might be called from jQuery#filter function; // in that case, element will be second argument elem = el || elem; // Inline style trumps all return elem.style.display === "none" || elem.style.display === "" && // Otherwise, check computed style // Support: Firefox <=43 - 45 // Disconnected elements can have computed display: none, so first confirm that elem is // in the document. jQuery.contains( elem.ownerDocument, elem ) && jQuery.css( elem, "display" ) === "none"; }; var swap = function( elem, options, callback, args ) { var ret, name, old = {}; // Remember the old values, and insert the new ones for ( name in options ) { old[ name ] = elem.style[ name ]; elem.style[ name ] = options[ name ]; } ret = callback.apply( elem, args || [] ); // Revert the old values for ( name in options ) { elem.style[ name ] = old[ name ]; } return ret; }; function adjustCSS( elem, prop, valueParts, tween ) { var adjusted, scale = 1, maxIterations = 20, currentValue = tween ? function() { return tween.cur(); } : function() { return jQuery.css( elem, prop, "" ); }, initial = currentValue(), unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { // Trust units reported by jQuery.css unit = unit || initialInUnit[ 3 ]; // Make sure we update the tween properties later on valueParts = valueParts || []; // Iteratively approximate from a nonzero starting point initialInUnit = +initial || 1; do { // If previous iteration zeroed out, double until we get *something*. // Use string for doubling so we don't accidentally see scale as unchanged below scale = scale || ".5"; // Adjust and apply initialInUnit = initialInUnit / scale; jQuery.style( elem, prop, initialInUnit + unit ); // Update scale, tolerating zero or NaN from tween.cur() // Break the loop if scale is unchanged or perfect, or if we've just had enough. } while ( scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations ); } if ( valueParts ) { initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified adjusted = valueParts[ 1 ] ? initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : +valueParts[ 2 ]; if ( tween ) { tween.unit = unit; tween.start = initialInUnit; tween.end = adjusted; } } return adjusted; } var defaultDisplayMap = {}; function getDefaultDisplay( elem ) { var temp, doc = elem.ownerDocument, nodeName = elem.nodeName, display = defaultDisplayMap[ nodeName ]; if ( display ) { return display; } temp = doc.body.appendChild( doc.createElement( nodeName ) ); display = jQuery.css( temp, "display" ); temp.parentNode.removeChild( temp ); if ( display === "none" ) { display = "block"; } defaultDisplayMap[ nodeName ] = display; return display; } function showHide( elements, show ) { var display, elem, values = [], index = 0, length = elements.length; // Determine new display value for elements that need to change for ( ; index < length; index++ ) { elem = elements[ index ]; if ( !elem.style ) { continue; } display = elem.style.display; if ( show ) { // Since we force visibility upon cascade-hidden elements, an immediate (and slow) // check is required in this first loop unless we have a nonempty display value (either // inline or about-to-be-restored) if ( display === "none" ) { values[ index ] = dataPriv.get( elem, "display" ) || null; if ( !values[ index ] ) { elem.style.display = ""; } } if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { values[ index ] = getDefaultDisplay( elem ); } } else { if ( display !== "none" ) { values[ index ] = "none"; // Remember what we're overwriting dataPriv.set( elem, "display", display ); } } } // Set the display of the elements in a second loop to avoid constant reflow for ( index = 0; index < length; index++ ) { if ( values[ index ] != null ) { elements[ index ].style.display = values[ index ]; } } return elements; } jQuery.fn.extend( { show: function() { return showHide( this, true ); }, hide: function() { return showHide( this ); }, toggle: function( state ) { if ( typeof state === "boolean" ) { return state ? this.show() : this.hide(); } return this.each( function() { if ( isHiddenWithinTree( this ) ) { jQuery( this ).show(); } else { jQuery( this ).hide(); } } ); } } ); var rcheckableType = ( /^(?:checkbox|radio)$/i ); var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); var rscriptType = ( /^$|\/(?:java|ecma)script/i ); // We have to close these tags to support XHTML (#13200) var wrapMap = { // Support: IE <=9 only option: [ 1, "" ], // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. thead: [ 1, "", "
" ], col: [ 2, "", "
" ], tr: [ 2, "", "
" ], td: [ 3, "", "
" ], _default: [ 0, "", "" ] }; // Support: IE <=9 only wrapMap.optgroup = wrapMap.option; wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; function getAll( context, tag ) { // Support: IE <=9 - 11 only // Use typeof to avoid zero-argument method invocation on host objects (#15151) var ret; if ( typeof context.getElementsByTagName !== "undefined" ) { ret = context.getElementsByTagName( tag || "*" ); } else if ( typeof context.querySelectorAll !== "undefined" ) { ret = context.querySelectorAll( tag || "*" ); } else { ret = []; } if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) { return jQuery.merge( [ context ], ret ); } return ret; } // Mark scripts as having already been evaluated function setGlobalEval( elems, refElements ) { var i = 0, l = elems.length; for ( ; i < l; i++ ) { dataPriv.set( elems[ i ], "globalEval", !refElements || dataPriv.get( refElements[ i ], "globalEval" ) ); } } var rhtml = /<|&#?\w+;/; function buildFragment( elems, context, scripts, selection, ignored ) { var elem, tmp, tag, wrap, contains, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, l = elems.length; for ( ; i < l; i++ ) { elem = elems[ i ]; if ( elem || elem === 0 ) { // Add nodes directly if ( jQuery.type( elem ) === "object" ) { // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); // Convert non-html into a text node } else if ( !rhtml.test( elem ) ) { nodes.push( context.createTextNode( elem ) ); // Convert html into DOM nodes } else { tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); // Deserialize a standard representation tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); wrap = wrapMap[ tag ] || wrapMap._default; tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; // Descend through wrappers to the right content j = wrap[ 0 ]; while ( j-- ) { tmp = tmp.lastChild; } // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( nodes, tmp.childNodes ); // Remember the top-level container tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392) tmp.textContent = ""; } } } // Remove wrapper from fragment fragment.textContent = ""; i = 0; while ( ( elem = nodes[ i++ ] ) ) { // Skip elements already in the context collection (trac-4087) if ( selection && jQuery.inArray( elem, selection ) > -1 ) { if ( ignored ) { ignored.push( elem ); } continue; } contains = jQuery.contains( elem.ownerDocument, elem ); // Append to fragment tmp = getAll( fragment.appendChild( elem ), "script" ); // Preserve script evaluation history if ( contains ) { setGlobalEval( tmp ); } // Capture executables if ( scripts ) { j = 0; while ( ( elem = tmp[ j++ ] ) ) { if ( rscriptType.test( elem.type || "" ) ) { scripts.push( elem ); } } } } return fragment; } ( function() { var fragment = document.createDocumentFragment(), div = fragment.appendChild( document.createElement( "div" ) ), input = document.createElement( "input" ); // Support: Android 4.0 - 4.3 only // Check state lost if the name is set (#11217) // Support: Windows Web Apps (WWA) // `name` and `type` must use .setAttribute for WWA (#14901) input.setAttribute( "type", "radio" ); input.setAttribute( "checked", "checked" ); input.setAttribute( "name", "t" ); div.appendChild( input ); // Support: Android <=4.1 only // Older WebKit doesn't clone checked state correctly in fragments support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; // Support: IE <=11 only // Make sure textarea (and checkbox) defaultValue is properly cloned div.innerHTML = ""; support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; } )(); var documentElement = document.documentElement; var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, rtypenamespace = /^([^.]*)(?:\.(.+)|)/; function returnTrue() { return true; } function returnFalse() { return false; } // Support: IE <=9 only // See #13393 for more info function safeActiveElement() { try { return document.activeElement; } catch ( err ) { } } function on( elem, types, selector, data, fn, one ) { var origFn, type; // Types can be a map of types/handlers if ( typeof types === "object" ) { // ( types-Object, selector, data ) if ( typeof selector !== "string" ) { // ( types-Object, data ) data = data || selector; selector = undefined; } for ( type in types ) { on( elem, type, selector, data, types[ type ], one ); } return elem; } if ( data == null && fn == null ) { // ( types, fn ) fn = selector; data = selector = undefined; } else if ( fn == null ) { if ( typeof selector === "string" ) { // ( types, selector, fn ) fn = data; data = undefined; } else { // ( types, data, fn ) fn = data; data = selector; selector = undefined; } } if ( fn === false ) { fn = returnFalse; } else if ( !fn ) { return elem; } if ( one === 1 ) { origFn = fn; fn = function( event ) { // Can use an empty set, since event contains the info jQuery().off( event ); return origFn.apply( this, arguments ); }; // Use same guid so caller can remove using origFn fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); } return elem.each( function() { jQuery.event.add( this, types, fn, data, selector ); } ); } /* * Helper functions for managing events -- not part of the public interface. * Props to Dean Edwards' addEvent library for many of the ideas. */ jQuery.event = { global: {}, add: function( elem, types, handler, data, selector ) { var handleObjIn, eventHandle, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); // Don't attach events to noData or text/comment nodes (but allow plain objects) if ( !elemData ) { return; } // Caller can pass in an object of custom data in lieu of the handler if ( handler.handler ) { handleObjIn = handler; handler = handleObjIn.handler; selector = handleObjIn.selector; } // Ensure that invalid selectors throw exceptions at attach time // Evaluate against documentElement in case elem is a non-element node (e.g., document) if ( selector ) { jQuery.find.matchesSelector( documentElement, selector ); } // Make sure that the handler has a unique ID, used to find/remove it later if ( !handler.guid ) { handler.guid = jQuery.guid++; } // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { events = elemData.events = {}; } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { // Discard the second event of a jQuery.event.trigger() and // when an event is called after a page has unloaded return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply( elem, arguments ) : undefined; }; } // Handle multiple events separated by a space types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; t = types.length; while ( t-- ) { tmp = rtypenamespace.exec( types[ t ] ) || []; type = origType = tmp[ 1 ]; namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); // There *must* be a type, no attaching namespace-only handlers if ( !type ) { continue; } // If event changes its type, use the special event handlers for the changed type special = jQuery.event.special[ type ] || {}; // If selector defined, determine special event api type, otherwise given type type = ( selector ? special.delegateType : special.bindType ) || type; // Update special based on newly reset type special = jQuery.event.special[ type ] || {}; // handleObj is passed to all event handlers handleObj = jQuery.extend( { type: type, origType: origType, data: data, handler: handler, guid: handler.guid, selector: selector, needsContext: selector && jQuery.expr.match.needsContext.test( selector ), namespace: namespaces.join( "." ) }, handleObjIn ); // Init the event handler queue if we're the first if ( !( handlers = events[ type ] ) ) { handlers = events[ type ] = []; handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { if ( elem.addEventListener ) { elem.addEventListener( type, eventHandle ); } } } if ( special.add ) { special.add.call( elem, handleObj ); if ( !handleObj.handler.guid ) { handleObj.handler.guid = handler.guid; } } // Add to the element's handler list, delegates in front if ( selector ) { handlers.splice( handlers.delegateCount++, 0, handleObj ); } else { handlers.push( handleObj ); } // Keep track of which events have ever been used, for event optimization jQuery.event.global[ type ] = true; } }, // Detach an event or set of events from an element remove: function( elem, types, handler, selector, mappedTypes ) { var j, origCount, tmp, events, t, handleObj, special, handlers, type, namespaces, origType, elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); if ( !elemData || !( events = elemData.events ) ) { return; } // Once for each type.namespace in types; type may be omitted types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; t = types.length; while ( t-- ) { tmp = rtypenamespace.exec( types[ t ] ) || []; type = origType = tmp[ 1 ]; namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); // Unbind all events (on this namespace, if provided) for the element if ( !type ) { for ( type in events ) { jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); } continue; } special = jQuery.event.special[ type ] || {}; type = ( selector ? special.delegateType : special.bindType ) || type; handlers = events[ type ] || []; tmp = tmp[ 2 ] && new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); // Remove matching events origCount = j = handlers.length; while ( j-- ) { handleObj = handlers[ j ]; if ( ( mappedTypes || origType === handleObj.origType ) && ( !handler || handler.guid === handleObj.guid ) && ( !tmp || tmp.test( handleObj.namespace ) ) && ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { handlers.splice( j, 1 ); if ( handleObj.selector ) { handlers.delegateCount--; } if ( special.remove ) { special.remove.call( elem, handleObj ); } } } // Remove generic event handler if we removed something and no more handlers exist // (avoids potential for endless recursion during removal of special event handlers) if ( origCount && !handlers.length ) { if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { jQuery.removeEvent( elem, type, elemData.handle ); } delete events[ type ]; } } // Remove data and the expando if it's no longer used if ( jQuery.isEmptyObject( events ) ) { dataPriv.remove( elem, "handle events" ); } }, dispatch: function( nativeEvent ) { // Make a writable jQuery.Event from the native event object var event = jQuery.event.fix( nativeEvent ); var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event args[ 0 ] = event; for ( i = 1; i < arguments.length; i++ ) { args[ i ] = arguments[ i ]; } event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { return; } // Determine handlers handlerQueue = jQuery.event.handlers.call( this, event, handlers ); // Run delegates first; they may want to stop propagation beneath us i = 0; while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { event.currentTarget = matched.elem; j = 0; while ( ( handleObj = matched.handlers[ j++ ] ) && !event.isImmediatePropagationStopped() ) { // Triggered event must either 1) have no namespace, or 2) have namespace(s) // a subset or equal to those in the bound event (both can have no namespace). if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { event.handleObj = handleObj; event.data = handleObj.data; ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || handleObj.handler ).apply( matched.elem, args ); if ( ret !== undefined ) { if ( ( event.result = ret ) === false ) { event.preventDefault(); event.stopPropagation(); } } } } } // Call the postDispatch hook for the mapped type if ( special.postDispatch ) { special.postDispatch.call( this, event ); } return event.result; }, handlers: function( event, handlers ) { var i, handleObj, sel, matchedHandlers, matchedSelectors, handlerQueue = [], delegateCount = handlers.delegateCount, cur = event.target; // Find delegate handlers if ( delegateCount && // Support: IE <=9 // Black-hole SVG instance trees (trac-13180) cur.nodeType && // Support: Firefox <=42 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click // Support: IE 11 only // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) !( event.type === "click" && event.button >= 1 ) ) { for ( ; cur !== this; cur = cur.parentNode || this ) { // Don't check non-elements (#13208) // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { matchedHandlers = []; matchedSelectors = {}; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; // Don't conflict with Object.prototype properties (#13203) sel = handleObj.selector + " "; if ( matchedSelectors[ sel ] === undefined ) { matchedSelectors[ sel ] = handleObj.needsContext ? jQuery( sel, this ).index( cur ) > -1 : jQuery.find( sel, this, null, [ cur ] ).length; } if ( matchedSelectors[ sel ] ) { matchedHandlers.push( handleObj ); } } if ( matchedHandlers.length ) { handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); } } } } // Add the remaining (directly-bound) handlers cur = this; if ( delegateCount < handlers.length ) { handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); } return handlerQueue; }, addProp: function( name, hook ) { Object.defineProperty( jQuery.Event.prototype, name, { enumerable: true, configurable: true, get: jQuery.isFunction( hook ) ? function() { if ( this.originalEvent ) { return hook( this.originalEvent ); } } : function() { if ( this.originalEvent ) { return this.originalEvent[ name ]; } }, set: function( value ) { Object.defineProperty( this, name, { enumerable: true, configurable: true, writable: true, value: value } ); } } ); }, fix: function( originalEvent ) { return originalEvent[ jQuery.expando ] ? originalEvent : new jQuery.Event( originalEvent ); }, special: { load: { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, focus: { // Fire native event if possible so blur/focus sequence is correct trigger: function() { if ( this !== safeActiveElement() && this.focus ) { this.focus(); return false; } }, delegateType: "focusin" }, blur: { trigger: function() { if ( this === safeActiveElement() && this.blur ) { this.blur(); return false; } }, delegateType: "focusout" }, click: { // For checkbox, fire native event so checked state will be right trigger: function() { if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { this.click(); return false; } }, // For cross-browser consistency, don't fire native .click() on links _default: function( event ) { return jQuery.nodeName( event.target, "a" ); } }, beforeunload: { postDispatch: function( event ) { // Support: Firefox 20+ // Firefox doesn't alert if the returnValue field is not set. if ( event.result !== undefined && event.originalEvent ) { event.originalEvent.returnValue = event.result; } } } } }; jQuery.removeEvent = function( elem, type, handle ) { // This "if" is needed for plain objects if ( elem.removeEventListener ) { elem.removeEventListener( type, handle ); } }; jQuery.Event = function( src, props ) { // Allow instantiation without the 'new' keyword if ( !( this instanceof jQuery.Event ) ) { return new jQuery.Event( src, props ); } // Event object if ( src && src.type ) { this.originalEvent = src; this.type = src.type; // Events bubbling up the document may have been marked as prevented // by a handler lower down the tree; reflect the correct value. this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only src.returnValue === false ? returnTrue : returnFalse; // Create target properties // Support: Safari <=6 - 7 only // Target should not be a text node (#504, #13143) this.target = ( src.target && src.target.nodeType === 3 ) ? src.target.parentNode : src.target; this.currentTarget = src.currentTarget; this.relatedTarget = src.relatedTarget; // Event type } else { this.type = src; } // Put explicitly provided properties onto the event object if ( props ) { jQuery.extend( this, props ); } // Create a timestamp if incoming event doesn't have one this.timeStamp = src && src.timeStamp || jQuery.now(); // Mark it as fixed this[ jQuery.expando ] = true; }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html jQuery.Event.prototype = { constructor: jQuery.Event, isDefaultPrevented: returnFalse, isPropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse, isSimulated: false, preventDefault: function() { var e = this.originalEvent; this.isDefaultPrevented = returnTrue; if ( e && !this.isSimulated ) { e.preventDefault(); } }, stopPropagation: function() { var e = this.originalEvent; this.isPropagationStopped = returnTrue; if ( e && !this.isSimulated ) { e.stopPropagation(); } }, stopImmediatePropagation: function() { var e = this.originalEvent; this.isImmediatePropagationStopped = returnTrue; if ( e && !this.isSimulated ) { e.stopImmediatePropagation(); } this.stopPropagation(); } }; // Includes all common event props including KeyEvent and MouseEvent specific props jQuery.each( { altKey: true, bubbles: true, cancelable: true, changedTouches: true, ctrlKey: true, detail: true, eventPhase: true, metaKey: true, pageX: true, pageY: true, shiftKey: true, view: true, "char": true, charCode: true, key: true, keyCode: true, button: true, buttons: true, clientX: true, clientY: true, offsetX: true, offsetY: true, pointerId: true, pointerType: true, screenX: true, screenY: true, targetTouches: true, toElement: true, touches: true, which: function( event ) { var button = event.button; // Add which for key events if ( event.which == null && rkeyEvent.test( event.type ) ) { return event.charCode != null ? event.charCode : event.keyCode; } // Add which for click: 1 === left; 2 === middle; 3 === right if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { if ( button & 1 ) { return 1; } if ( button & 2 ) { return 3; } if ( button & 4 ) { return 2; } return 0; } return event.which; } }, jQuery.event.addProp ); // Create mouseenter/leave events using mouseover/out and event-time checks // so that event delegation works in jQuery. // Do the same for pointerenter/pointerleave and pointerover/pointerout // // Support: Safari 7 only // Safari sends mouseenter too often; see: // https://bugs.chromium.org/p/chromium/issues/detail?id=470258 // for the description of the bug (it existed in older Chrome versions as well). jQuery.each( { mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout" }, function( orig, fix ) { jQuery.event.special[ orig ] = { delegateType: fix, bindType: fix, handle: function( event ) { var ret, target = this, related = event.relatedTarget, handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target. // NB: No relatedTarget if the mouse left/entered the browser window if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { event.type = handleObj.origType; ret = handleObj.handler.apply( this, arguments ); event.type = fix; } return ret; } }; } ); jQuery.fn.extend( { on: function( types, selector, data, fn ) { return on( this, types, selector, data, fn ); }, one: function( types, selector, data, fn ) { return on( this, types, selector, data, fn, 1 ); }, off: function( types, selector, fn ) { var handleObj, type; if ( types && types.preventDefault && types.handleObj ) { // ( event ) dispatched jQuery.Event handleObj = types.handleObj; jQuery( types.delegateTarget ).off( handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler ); return this; } if ( typeof types === "object" ) { // ( types-object [, selector] ) for ( type in types ) { this.off( type, selector, types[ type ] ); } return this; } if ( selector === false || typeof selector === "function" ) { // ( types [, fn] ) fn = selector; selector = undefined; } if ( fn === false ) { fn = returnFalse; } return this.each( function() { jQuery.event.remove( this, types, fn, selector ); } ); } } ); var /* eslint-disable max-len */ // See https://github.com/eslint/eslint/issues/3229 rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, /* eslint-enable */ // Support: IE <=10 - 11, Edge 12 - 13 // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ rnoInnerhtml = /\s*$/g; function manipulationTarget( elem, content ) { if ( jQuery.nodeName( elem, "table" ) && jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { return elem.getElementsByTagName( "tbody" )[ 0 ] || elem; } return elem; } // Replace/restore the type attribute of script elements for safe DOM manipulation function disableScript( elem ) { elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; return elem; } function restoreScript( elem ) { var match = rscriptTypeMasked.exec( elem.type ); if ( match ) { elem.type = match[ 1 ]; } else { elem.removeAttribute( "type" ); } return elem; } function cloneCopyEvent( src, dest ) { var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; } // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { pdataOld = dataPriv.access( src ); pdataCur = dataPriv.set( dest, pdataOld ); events = pdataOld.events; if ( events ) { delete pdataCur.handle; pdataCur.events = {}; for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { jQuery.event.add( dest, type, events[ type ][ i ] ); } } } } // 2. Copy user data if ( dataUser.hasData( src ) ) { udataOld = dataUser.access( src ); udataCur = jQuery.extend( {}, udataOld ); dataUser.set( dest, udataCur ); } } // Fix IE bugs, see support tests function fixInput( src, dest ) { var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button. if ( nodeName === "input" && rcheckableType.test( src.type ) ) { dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options } else if ( nodeName === "input" || nodeName === "textarea" ) { dest.defaultValue = src.defaultValue; } } function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays args = concat.apply( [], args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, l = collection.length, iNoClone = l - 1, value = args[ 0 ], isFunction = jQuery.isFunction( value ); // We can't cloneNode fragments that contain checked, in WebKit if ( isFunction || ( l > 1 && typeof value === "string" && !support.checkClone && rchecked.test( value ) ) ) { return collection.each( function( index ) { var self = collection.eq( index ); if ( isFunction ) { args[ 0 ] = value.call( this, index, self.html() ); } domManip( self, args, callback, ignored ); } ); } if ( l ) { fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); first = fragment.firstChild; if ( fragment.childNodes.length === 1 ) { fragment = first; } // Require either new content or an interest in ignored elements to invoke the callback if ( first || ignored ) { scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); hasScripts = scripts.length; // Use the original fragment for the last item // instead of the first because it can end up // being emptied incorrectly in certain situations (#8070). for ( ; i < l; i++ ) { node = fragment; if ( i !== iNoClone ) { node = jQuery.clone( node, true, true ); // Keep references to cloned scripts for later restoration if ( hasScripts ) { // Support: Android <=4.0 only, PhantomJS 1 only // push.apply(_, arraylike) throws on ancient WebKit jQuery.merge( scripts, getAll( node, "script" ) ); } } callback.call( collection[ i ], node, i ); } if ( hasScripts ) { doc = scripts[ scripts.length - 1 ].ownerDocument; // Reenable scripts jQuery.map( scripts, restoreScript ); // Evaluate executable scripts on first document insertion for ( i = 0; i < hasScripts; i++ ) { node = scripts[ i ]; if ( rscriptType.test( node.type || "" ) && !dataPriv.access( node, "globalEval" ) && jQuery.contains( doc, node ) ) { if ( node.src ) { // Optional AJAX dependency, but won't run scripts if not present if ( jQuery._evalUrl ) { jQuery._evalUrl( node.src ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), doc ); } } } } } } return collection; } function remove( elem, selector, keepData ) { var node, nodes = selector ? jQuery.filter( selector, elem ) : elem, i = 0; for ( ; ( node = nodes[ i ] ) != null; i++ ) { if ( !keepData && node.nodeType === 1 ) { jQuery.cleanData( getAll( node ) ); } if ( node.parentNode ) { if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { setGlobalEval( getAll( node, "script" ) ); } node.parentNode.removeChild( node ); } } return elem; } jQuery.extend( { htmlPrefilter: function( html ) { return html.replace( rxhtmlTag, "<$1>" ); }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), inPage = jQuery.contains( elem.ownerDocument, elem ); // Fix IE cloning issues if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) { // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 destElements = getAll( clone ); srcElements = getAll( elem ); for ( i = 0, l = srcElements.length; i < l; i++ ) { fixInput( srcElements[ i ], destElements[ i ] ); } } // Copy the events from the original to the clone if ( dataAndEvents ) { if ( deepDataAndEvents ) { srcElements = srcElements || getAll( elem ); destElements = destElements || getAll( clone ); for ( i = 0, l = srcElements.length; i < l; i++ ) { cloneCopyEvent( srcElements[ i ], destElements[ i ] ); } } else { cloneCopyEvent( elem, clone ); } } // Preserve script evaluation history destElements = getAll( clone, "script" ); if ( destElements.length > 0 ) { setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); } // Return the cloned set return clone; }, cleanData: function( elems ) { var data, elem, type, special = jQuery.event.special, i = 0; for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { if ( acceptData( elem ) ) { if ( ( data = elem[ dataPriv.expando ] ) ) { if ( data.events ) { for ( type in data.events ) { if ( special[ type ] ) { jQuery.event.remove( elem, type ); // This is a shortcut to avoid jQuery.event.remove's overhead } else { jQuery.removeEvent( elem, type, data.handle ); } } } // Support: Chrome <=35 - 45+ // Assign undefined instead of using delete, see Data#remove elem[ dataPriv.expando ] = undefined; } if ( elem[ dataUser.expando ] ) { // Support: Chrome <=35 - 45+ // Assign undefined instead of using delete, see Data#remove elem[ dataUser.expando ] = undefined; } } } } } ); jQuery.fn.extend( { detach: function( selector ) { return remove( this, selector, true ); }, remove: function( selector ) { return remove( this, selector ); }, text: function( value ) { return access( this, function( value ) { return value === undefined ? jQuery.text( this ) : this.empty().each( function() { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.textContent = value; } } ); }, null, value, arguments.length ); }, append: function() { return domManip( this, arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.appendChild( elem ); } } ); }, prepend: function() { return domManip( this, arguments, function( elem ) { if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { var target = manipulationTarget( this, elem ); target.insertBefore( elem, target.firstChild ); } } ); }, before: function() { return domManip( this, arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this ); } } ); }, after: function() { return domManip( this, arguments, function( elem ) { if ( this.parentNode ) { this.parentNode.insertBefore( elem, this.nextSibling ); } } ); }, empty: function() { var elem, i = 0; for ( ; ( elem = this[ i ] ) != null; i++ ) { if ( elem.nodeType === 1 ) { // Prevent memory leaks jQuery.cleanData( getAll( elem, false ) ); // Remove any remaining nodes elem.textContent = ""; } } return this; }, clone: function( dataAndEvents, deepDataAndEvents ) { dataAndEvents = dataAndEvents == null ? false : dataAndEvents; deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; return this.map( function() { return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); } ); }, html: function( value ) { return access( this, function( value ) { var elem = this[ 0 ] || {}, i = 0, l = this.length; if ( value === undefined && elem.nodeType === 1 ) { return elem.innerHTML; } // See if we can take a shortcut and just use innerHTML if ( typeof value === "string" && !rnoInnerhtml.test( value ) && !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { value = jQuery.htmlPrefilter( value ); try { for ( ; i < l; i++ ) { elem = this[ i ] || {}; // Remove element nodes and prevent memory leaks if ( elem.nodeType === 1 ) { jQuery.cleanData( getAll( elem, false ) ); elem.innerHTML = value; } } elem = 0; // If using innerHTML throws an exception, use the fallback method } catch ( e ) {} } if ( elem ) { this.empty().append( value ); } }, null, value, arguments.length ); }, replaceWith: function() { var ignored = []; // Make the changes, replacing each non-ignored context element with the new content return domManip( this, arguments, function( elem ) { var parent = this.parentNode; if ( jQuery.inArray( this, ignored ) < 0 ) { jQuery.cleanData( getAll( this ) ); if ( parent ) { parent.replaceChild( elem, this ); } } // Force callback invocation }, ignored ); } } ); jQuery.each( { appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith" }, function( name, original ) { jQuery.fn[ name ] = function( selector ) { var elems, ret = [], insert = jQuery( selector ), last = insert.length - 1, i = 0; for ( ; i <= last; i++ ) { elems = i === last ? this : this.clone( true ); jQuery( insert[ i ] )[ original ]( elems ); // Support: Android <=4.0 only, PhantomJS 1 only // .get() because push.apply(_, arraylike) throws on ancient WebKit push.apply( ret, elems.get() ); } return this.pushStack( ret ); }; } ); var rmargin = ( /^margin/ ); var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); var getStyles = function( elem ) { // Support: IE <=11 only, Firefox <=30 (#15098, #14150) // IE throws on elements created in popups // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" var view = elem.ownerDocument.defaultView; if ( !view || !view.opener ) { view = window; } return view.getComputedStyle( elem ); }; ( function() { // Executing both pixelPosition & boxSizingReliable tests require only one layout // so they're executed at the same time to save the second computation. function computeStyleTests() { // This is a singleton, we need to execute it only once if ( !div ) { return; } div.style.cssText = "box-sizing:border-box;" + "position:relative;display:block;" + "margin:auto;border:1px;padding:1px;" + "top:1%;width:50%"; div.innerHTML = ""; documentElement.appendChild( container ); var divStyle = window.getComputedStyle( div ); pixelPositionVal = divStyle.top !== "1%"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 reliableMarginLeftVal = divStyle.marginLeft === "2px"; boxSizingReliableVal = divStyle.width === "4px"; // Support: Android 4.0 - 4.3 only // Some styles come back with percentage values, even though they shouldn't div.style.marginRight = "50%"; pixelMarginRightVal = divStyle.marginRight === "4px"; documentElement.removeChild( container ); // Nullify the div so it wouldn't be stored in the memory and // it will also be a sign that checks already performed div = null; } var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); // Finish early in limited (non-browser) environments if ( !div.style ) { return; } // Support: IE <=9 - 11 only // Style of cloned element affects source element cloned (#8908) div.style.backgroundClip = "content-box"; div.cloneNode( true ).style.backgroundClip = ""; support.clearCloneStyle = div.style.backgroundClip === "content-box"; container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" + "padding:0;margin-top:1px;position:absolute"; container.appendChild( div ); jQuery.extend( support, { pixelPosition: function() { computeStyleTests(); return pixelPositionVal; }, boxSizingReliable: function() { computeStyleTests(); return boxSizingReliableVal; }, pixelMarginRight: function() { computeStyleTests(); return pixelMarginRightVal; }, reliableMarginLeft: function() { computeStyleTests(); return reliableMarginLeftVal; } } ); } )(); function curCSS( elem, name, computed ) { var width, minWidth, maxWidth, ret, style = elem.style; computed = computed || getStyles( elem ); // Support: IE <=9 only // getPropertyValue is only needed for .css('filter') (#12537) if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } // A tribute to the "awesome hack by Dean Edwards" // Android Browser returns percentage for some values, // but width seems to be reliably pixels. // This is against the CSSOM draft spec: // https://drafts.csswg.org/cssom/#resolved-values if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) { // Remember the original values width = style.width; minWidth = style.minWidth; maxWidth = style.maxWidth; // Put in the new values to get a computed value out style.minWidth = style.maxWidth = style.width = ret; ret = computed.width; // Revert the changed values style.width = width; style.minWidth = minWidth; style.maxWidth = maxWidth; } } return ret !== undefined ? // Support: IE <=9 - 11 only // IE returns zIndex value as an integer. ret + "" : ret; } function addGetHookIf( conditionFn, hookFn ) { // Define the hook, we'll check on the first run if it's really needed. return { get: function() { if ( conditionFn() ) { // Hook not needed (or it's not possible to use it due // to missing dependency), remove it. delete this.get; return; } // Hook needed; redefine it so that the support test is not executed again. return ( this.get = hookFn ).apply( this, arguments ); } }; } var // Swappable if display is none or starts with table // except "table", "table-cell", or "table-caption" // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display rdisplayswap = /^(none|table(?!-c[ea]).+)/, cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { letterSpacing: "0", fontWeight: "400" }, cssPrefixes = [ "Webkit", "Moz", "ms" ], emptyStyle = document.createElement( "div" ).style; // Return a css property mapped to a potentially vendor prefixed property function vendorPropName( name ) { // Shortcut for names that are not vendor prefixed if ( name in emptyStyle ) { return name; } // Check for vendor prefixed names var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), i = cssPrefixes.length; while ( i-- ) { name = cssPrefixes[ i ] + capName; if ( name in emptyStyle ) { return name; } } } function setPositiveNumber( elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point var matches = rcssNum.exec( value ); return matches ? // Guard against undefined "subtract", e.g., when used as in cssHooks Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : value; } function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { var i, val = 0; // If we already have the right measurement, avoid augmentation if ( extra === ( isBorderBox ? "border" : "content" ) ) { i = 4; // Otherwise initialize for horizontal or vertical properties } else { i = name === "width" ? 1 : 0; } for ( ; i < 4; i += 2 ) { // Both box models exclude margin, so add it if we want it if ( extra === "margin" ) { val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); } if ( isBorderBox ) { // border-box includes padding, so remove it if we want content if ( extra === "content" ) { val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); } // At this point, extra isn't border nor margin, so remove border if ( extra !== "margin" ) { val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } } else { // At this point, extra isn't content, so add padding val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); // At this point, extra isn't content nor padding, so add border if ( extra !== "padding" ) { val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); } } } return val; } function getWidthOrHeight( elem, name, extra ) { // Start with offset property, which is equivalent to the border-box value var val, valueIsBorderBox = true, styles = getStyles( elem ), isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; // Support: IE <=11 only // Running getBoundingClientRect on a disconnected node // in IE throws an error. if ( elem.getClientRects().length ) { val = elem.getBoundingClientRect()[ name ]; } // Some non-html elements return undefined for offsetWidth, so check for null/undefined // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 if ( val <= 0 || val == null ) { // Fall back to computed then uncomputed css if necessary val = curCSS( elem, name, styles ); if ( val < 0 || val == null ) { val = elem.style[ name ]; } // Computed unit is not pixels. Stop here and return. if ( rnumnonpx.test( val ) ) { return val; } // Check for style in case a browser which returns unreliable values // for getComputedStyle silently falls back to the reliable elem.style valueIsBorderBox = isBorderBox && ( support.boxSizingReliable() || val === elem.style[ name ] ); // Normalize "", auto, and prepare for extra val = parseFloat( val ) || 0; } // Use the active box-sizing model to add/subtract irrelevant styles return ( val + augmentWidthOrHeight( elem, name, extra || ( isBorderBox ? "border" : "content" ), valueIsBorderBox, styles ) ) + "px"; } jQuery.extend( { // Add in style property hooks for overriding the default // behavior of getting and setting a style property cssHooks: { opacity: { get: function( elem, computed ) { if ( computed ) { // We should always get a number back from opacity var ret = curCSS( elem, "opacity" ); return ret === "" ? "1" : ret; } } } }, // Don't automatically add "px" to these possibly-unitless properties cssNumber: { "animationIterationCount": true, "columnCount": true, "fillOpacity": true, "flexGrow": true, "flexShrink": true, "fontWeight": true, "lineHeight": true, "opacity": true, "order": true, "orphans": true, "widows": true, "zIndex": true, "zoom": true }, // Add in properties whose names you wish to fix before // setting or getting the value cssProps: { "float": "cssFloat" }, // Get and set the style property on a DOM Node style: function( elem, name, value, extra ) { // Don't set styles on text and comment nodes if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { return; } // Make sure that we're working with the right name var ret, type, hooks, origName = jQuery.camelCase( name ), style = elem.style; name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); // Gets hook for the prefixed version, then unprefixed version hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // Check if we're setting a value if ( value !== undefined ) { type = typeof value; // Convert "+=" or "-=" to relative numbers (#7345) if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { value = adjustCSS( elem, name, ret ); // Fixes bug #9237 type = "number"; } // Make sure that null and NaN values aren't set (#7116) if ( value == null || value !== value ) { return; } // If a number was passed in, add the unit (except for certain CSS properties) if ( type === "number" ) { value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } // background-* props affect original clone's values if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { style[ name ] = "inherit"; } // If a hook was provided, use that value, otherwise just set the specified value if ( !hooks || !( "set" in hooks ) || ( value = hooks.set( elem, value, extra ) ) !== undefined ) { style[ name ] = value; } } else { // If a hook was provided get the non-computed value from there if ( hooks && "get" in hooks && ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { return ret; } // Otherwise just get the value from the style object return style[ name ]; } }, css: function( elem, name, extra, styles ) { var val, num, hooks, origName = jQuery.camelCase( name ); // Make sure that we're working with the right name name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); // Try prefixed name followed by the unprefixed name hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; // If a hook was provided get the computed value from there if ( hooks && "get" in hooks ) { val = hooks.get( elem, true, extra ); } // Otherwise, if a way to get the computed value exists, use that if ( val === undefined ) { val = curCSS( elem, name, styles ); } // Convert "normal" to computed value if ( val === "normal" && name in cssNormalTransform ) { val = cssNormalTransform[ name ]; } // Make numeric if forced or a qualifier was provided and val looks numeric if ( extra === "" || extra ) { num = parseFloat( val ); return extra === true || isFinite( num ) ? num || 0 : val; } return val; } } ); jQuery.each( [ "height", "width" ], function( i, name ) { jQuery.cssHooks[ name ] = { get: function( elem, computed, extra ) { if ( computed ) { // Certain elements can have dimension info if we invisibly show them // but it must have a current display style that would benefit return rdisplayswap.test( jQuery.css( elem, "display" ) ) && // Support: Safari 8+ // Table columns in Safari have non-zero offsetWidth & zero // getBoundingClientRect().width unless display is changed. // Support: IE <=11 only // Running getBoundingClientRect on a disconnected node // in IE throws an error. ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? swap( elem, cssShow, function() { return getWidthOrHeight( elem, name, extra ); } ) : getWidthOrHeight( elem, name, extra ); } }, set: function( elem, value, extra ) { var matches, styles = extra && getStyles( elem ), subtract = extra && augmentWidthOrHeight( elem, name, extra, jQuery.css( elem, "boxSizing", false, styles ) === "border-box", styles ); // Convert to pixels if value adjustment is needed if ( subtract && ( matches = rcssNum.exec( value ) ) && ( matches[ 3 ] || "px" ) !== "px" ) { elem.style[ name ] = value; value = jQuery.css( elem, name ); } return setPositiveNumber( elem, value, subtract ); } }; } ); jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, function( elem, computed ) { if ( computed ) { return ( parseFloat( curCSS( elem, "marginLeft" ) ) || elem.getBoundingClientRect().left - swap( elem, { marginLeft: 0 }, function() { return elem.getBoundingClientRect().left; } ) ) + "px"; } } ); // These hooks are used by animate to expand properties jQuery.each( { margin: "", padding: "", border: "Width" }, function( prefix, suffix ) { jQuery.cssHooks[ prefix + suffix ] = { expand: function( value ) { var i = 0, expanded = {}, // Assumes a single number if not a string parts = typeof value === "string" ? value.split( " " ) : [ value ]; for ( ; i < 4; i++ ) { expanded[ prefix + cssExpand[ i ] + suffix ] = parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; } return expanded; } }; if ( !rmargin.test( prefix ) ) { jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; } } ); jQuery.fn.extend( { css: function( name, value ) { return access( this, function( elem, name, value ) { var styles, len, map = {}, i = 0; if ( jQuery.isArray( name ) ) { styles = getStyles( elem ); len = name.length; for ( ; i < len; i++ ) { map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); } return map; } return value !== undefined ? jQuery.style( elem, name, value ) : jQuery.css( elem, name ); }, name, value, arguments.length > 1 ); } } ); function Tween( elem, options, prop, end, easing ) { return new Tween.prototype.init( elem, options, prop, end, easing ); } jQuery.Tween = Tween; Tween.prototype = { constructor: Tween, init: function( elem, options, prop, end, easing, unit ) { this.elem = elem; this.prop = prop; this.easing = easing || jQuery.easing._default; this.options = options; this.start = this.now = this.cur(); this.end = end; this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); }, cur: function() { var hooks = Tween.propHooks[ this.prop ]; return hooks && hooks.get ? hooks.get( this ) : Tween.propHooks._default.get( this ); }, run: function( percent ) { var eased, hooks = Tween.propHooks[ this.prop ]; if ( this.options.duration ) { this.pos = eased = jQuery.easing[ this.easing ]( percent, this.options.duration * percent, 0, 1, this.options.duration ); } else { this.pos = eased = percent; } this.now = ( this.end - this.start ) * eased + this.start; if ( this.options.step ) { this.options.step.call( this.elem, this.now, this ); } if ( hooks && hooks.set ) { hooks.set( this ); } else { Tween.propHooks._default.set( this ); } return this; } }; Tween.prototype.init.prototype = Tween.prototype; Tween.propHooks = { _default: { get: function( tween ) { var result; // Use a property on the element directly when it is not a DOM element, // or when there is no matching style property that exists. if ( tween.elem.nodeType !== 1 || tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { return tween.elem[ tween.prop ]; } // Passing an empty string as a 3rd parameter to .css will automatically // attempt a parseFloat and fallback to a string if the parse fails. // Simple values such as "10px" are parsed to Float; // complex values such as "rotate(1rad)" are returned as-is. result = jQuery.css( tween.elem, tween.prop, "" ); // Empty strings, null, undefined and "auto" are converted to 0. return !result || result === "auto" ? 0 : result; }, set: function( tween ) { // Use step hook for back compat. // Use cssHook if its there. // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); } else if ( tween.elem.nodeType === 1 && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; } } } }; // Support: IE <=9 only // Panic based approach to setting things on disconnected nodes Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { set: function( tween ) { if ( tween.elem.nodeType && tween.elem.parentNode ) { tween.elem[ tween.prop ] = tween.now; } } }; jQuery.easing = { linear: function( p ) { return p; }, swing: function( p ) { return 0.5 - Math.cos( p * Math.PI ) / 2; }, _default: "swing" }; jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point jQuery.fx.step = {}; var fxNow, timerId, rfxtypes = /^(?:toggle|show|hide)$/, rrun = /queueHooks$/; function raf() { if ( timerId ) { window.requestAnimationFrame( raf ); jQuery.fx.tick(); } } // Animations created synchronously will run synchronously function createFxNow() { window.setTimeout( function() { fxNow = undefined; } ); return ( fxNow = jQuery.now() ); } // Generate parameters to create a standard animation function genFx( type, includeWidth ) { var which, i = 0, attrs = { height: type }; // If we include width, step value is 1 to do all cssExpand values, // otherwise step value is 2 to skip over Left and Right includeWidth = includeWidth ? 1 : 0; for ( ; i < 4; i += 2 - includeWidth ) { which = cssExpand[ i ]; attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; } if ( includeWidth ) { attrs.opacity = attrs.width = type; } return attrs; } function createTween( value, prop, animation ) { var tween, collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), index = 0, length = collection.length; for ( ; index < length; index++ ) { if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { // We're done with this property return tween; } } } function defaultPrefilter( elem, props, opts ) { var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, isBox = "width" in props || "height" in props, anim = this, orig = {}, style = elem.style, hidden = elem.nodeType && isHiddenWithinTree( elem ), dataShow = dataPriv.get( elem, "fxshow" ); // Queue-skipping animations hijack the fx hooks if ( !opts.queue ) { hooks = jQuery._queueHooks( elem, "fx" ); if ( hooks.unqueued == null ) { hooks.unqueued = 0; oldfire = hooks.empty.fire; hooks.empty.fire = function() { if ( !hooks.unqueued ) { oldfire(); } }; } hooks.unqueued++; anim.always( function() { // Ensure the complete handler is called before this completes anim.always( function() { hooks.unqueued--; if ( !jQuery.queue( elem, "fx" ).length ) { hooks.empty.fire(); } } ); } ); } // Detect show/hide animations for ( prop in props ) { value = props[ prop ]; if ( rfxtypes.test( value ) ) { delete props[ prop ]; toggle = toggle || value === "toggle"; if ( value === ( hidden ? "hide" : "show" ) ) { // Pretend to be hidden if this is a "show" and // there is still data from a stopped show/hide if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { hidden = true; // Ignore all other no-op show/hide data } else { continue; } } orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); } } // Bail out if this is a no-op like .hide().hide() propTween = !jQuery.isEmptyObject( props ); if ( !propTween && jQuery.isEmptyObject( orig ) ) { return; } // Restrict "overflow" and "display" styles during box animations if ( isBox && elem.nodeType === 1 ) { // Support: IE <=9 - 11, Edge 12 - 13 // Record all 3 overflow attributes because IE does not infer the shorthand // from identically-valued overflowX and overflowY opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; // Identify a display type, preferring old show/hide data over the CSS cascade restoreDisplay = dataShow && dataShow.display; if ( restoreDisplay == null ) { restoreDisplay = dataPriv.get( elem, "display" ); } display = jQuery.css( elem, "display" ); if ( display === "none" ) { if ( restoreDisplay ) { display = restoreDisplay; } else { // Get nonempty value(s) by temporarily forcing visibility showHide( [ elem ], true ); restoreDisplay = elem.style.display || restoreDisplay; display = jQuery.css( elem, "display" ); showHide( [ elem ] ); } } // Animate inline elements as inline-block if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { if ( jQuery.css( elem, "float" ) === "none" ) { // Restore the original display value at the end of pure show/hide animations if ( !propTween ) { anim.done( function() { style.display = restoreDisplay; } ); if ( restoreDisplay == null ) { display = style.display; restoreDisplay = display === "none" ? "" : display; } } style.display = "inline-block"; } } } if ( opts.overflow ) { style.overflow = "hidden"; anim.always( function() { style.overflow = opts.overflow[ 0 ]; style.overflowX = opts.overflow[ 1 ]; style.overflowY = opts.overflow[ 2 ]; } ); } // Implement show/hide animations propTween = false; for ( prop in orig ) { // General show/hide setup for this element animation if ( !propTween ) { if ( dataShow ) { if ( "hidden" in dataShow ) { hidden = dataShow.hidden; } } else { dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); } // Store hidden/visible for toggle so `.stop().toggle()` "reverses" if ( toggle ) { dataShow.hidden = !hidden; } // Show elements before animating them if ( hidden ) { showHide( [ elem ], true ); } /* eslint-disable no-loop-func */ anim.done( function() { /* eslint-enable no-loop-func */ // The final step of a "hide" animation is actually hiding the element if ( !hidden ) { showHide( [ elem ] ); } dataPriv.remove( elem, "fxshow" ); for ( prop in orig ) { jQuery.style( elem, prop, orig[ prop ] ); } } ); } // Per-property setup propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); if ( !( prop in dataShow ) ) { dataShow[ prop ] = propTween.start; if ( hidden ) { propTween.end = propTween.start; propTween.start = 0; } } } } function propFilter( props, specialEasing ) { var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass for ( index in props ) { name = jQuery.camelCase( index ); easing = specialEasing[ name ]; value = props[ index ]; if ( jQuery.isArray( value ) ) { easing = value[ 1 ]; value = props[ index ] = value[ 0 ]; } if ( index !== name ) { props[ name ] = value; delete props[ index ]; } hooks = jQuery.cssHooks[ name ]; if ( hooks && "expand" in hooks ) { value = hooks.expand( value ); delete props[ name ]; // Not quite $.extend, this won't overwrite existing keys. // Reusing 'index' because we have the correct "name" for ( index in value ) { if ( !( index in props ) ) { props[ index ] = value[ index ]; specialEasing[ index ] = easing; } } } else { specialEasing[ name ] = easing; } } } function Animation( elem, properties, options ) { var result, stopped, index = 0, length = Animation.prefilters.length, deferred = jQuery.Deferred().always( function() { // Don't match elem in the :animated selector delete tick.elem; } ), tick = function() { if ( stopped ) { return false; } var currentTime = fxNow || createFxNow(), remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), // Support: Android 2.3 only // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) temp = remaining / animation.duration || 0, percent = 1 - temp, index = 0, length = animation.tweens.length; for ( ; index < length; index++ ) { animation.tweens[ index ].run( percent ); } deferred.notifyWith( elem, [ animation, percent, remaining ] ); if ( percent < 1 && length ) { return remaining; } else { deferred.resolveWith( elem, [ animation ] ); return false; } }, animation = deferred.promise( { elem: elem, props: jQuery.extend( {}, properties ), opts: jQuery.extend( true, { specialEasing: {}, easing: jQuery.easing._default }, options ), originalProperties: properties, originalOptions: options, startTime: fxNow || createFxNow(), duration: options.duration, tweens: [], createTween: function( prop, end ) { var tween = jQuery.Tween( elem, animation.opts, prop, end, animation.opts.specialEasing[ prop ] || animation.opts.easing ); animation.tweens.push( tween ); return tween; }, stop: function( gotoEnd ) { var index = 0, // If we are going to the end, we want to run all the tweens // otherwise we skip this part length = gotoEnd ? animation.tweens.length : 0; if ( stopped ) { return this; } stopped = true; for ( ; index < length; index++ ) { animation.tweens[ index ].run( 1 ); } // Resolve when we played the last frame; otherwise, reject if ( gotoEnd ) { deferred.notifyWith( elem, [ animation, 1, 0 ] ); deferred.resolveWith( elem, [ animation, gotoEnd ] ); } else { deferred.rejectWith( elem, [ animation, gotoEnd ] ); } return this; } } ), props = animation.props; propFilter( props, animation.opts.specialEasing ); for ( ; index < length; index++ ) { result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); if ( result ) { if ( jQuery.isFunction( result.stop ) ) { jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = jQuery.proxy( result.stop, result ); } return result; } } jQuery.map( props, createTween, animation ); if ( jQuery.isFunction( animation.opts.start ) ) { animation.opts.start.call( elem, animation ); } jQuery.fx.timer( jQuery.extend( tick, { elem: elem, anim: animation, queue: animation.opts.queue } ) ); // attach callbacks from options return animation.progress( animation.opts.progress ) .done( animation.opts.done, animation.opts.complete ) .fail( animation.opts.fail ) .always( animation.opts.always ); } jQuery.Animation = jQuery.extend( Animation, { tweeners: { "*": [ function( prop, value ) { var tween = this.createTween( prop, value ); adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); return tween; } ] }, tweener: function( props, callback ) { if ( jQuery.isFunction( props ) ) { callback = props; props = [ "*" ]; } else { props = props.match( rnothtmlwhite ); } var prop, index = 0, length = props.length; for ( ; index < length; index++ ) { prop = props[ index ]; Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; Animation.tweeners[ prop ].unshift( callback ); } }, prefilters: [ defaultPrefilter ], prefilter: function( callback, prepend ) { if ( prepend ) { Animation.prefilters.unshift( callback ); } else { Animation.prefilters.push( callback ); } } } ); jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed, duration: speed, easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing }; // Go to the end state if fx are off or if document is hidden if ( jQuery.fx.off || document.hidden ) { opt.duration = 0; } else { if ( typeof opt.duration !== "number" ) { if ( opt.duration in jQuery.fx.speeds ) { opt.duration = jQuery.fx.speeds[ opt.duration ]; } else { opt.duration = jQuery.fx.speeds._default; } } } // Normalize opt.queue - true/undefined/null -> "fx" if ( opt.queue == null || opt.queue === true ) { opt.queue = "fx"; } // Queueing opt.old = opt.complete; opt.complete = function() { if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } if ( opt.queue ) { jQuery.dequeue( this, opt.queue ); } }; return opt; }; jQuery.fn.extend( { fadeTo: function( speed, to, easing, callback ) { // Show any hidden elements after setting opacity to 0 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() // Animate to the value specified .end().animate( { opacity: to }, speed, easing, callback ); }, animate: function( prop, speed, easing, callback ) { var empty = jQuery.isEmptyObject( prop ), optall = jQuery.speed( speed, easing, callback ), doAnimation = function() { // Operate on a copy of prop so per-property easing won't be lost var anim = Animation( this, jQuery.extend( {}, prop ), optall ); // Empty animations, or finishing resolves immediately if ( empty || dataPriv.get( this, "finish" ) ) { anim.stop( true ); } }; doAnimation.finish = doAnimation; return empty || optall.queue === false ? this.each( doAnimation ) : this.queue( optall.queue, doAnimation ); }, stop: function( type, clearQueue, gotoEnd ) { var stopQueue = function( hooks ) { var stop = hooks.stop; delete hooks.stop; stop( gotoEnd ); }; if ( typeof type !== "string" ) { gotoEnd = clearQueue; clearQueue = type; type = undefined; } if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } return this.each( function() { var dequeue = true, index = type != null && type + "queueHooks", timers = jQuery.timers, data = dataPriv.get( this ); if ( index ) { if ( data[ index ] && data[ index ].stop ) { stopQueue( data[ index ] ); } } else { for ( index in data ) { if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { stopQueue( data[ index ] ); } } } for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && ( type == null || timers[ index ].queue === type ) ) { timers[ index ].anim.stop( gotoEnd ); dequeue = false; timers.splice( index, 1 ); } } // Start the next in the queue if the last step wasn't forced. // Timers currently will call their complete callbacks, which // will dequeue but only if they were gotoEnd. if ( dequeue || !gotoEnd ) { jQuery.dequeue( this, type ); } } ); }, finish: function( type ) { if ( type !== false ) { type = type || "fx"; } return this.each( function() { var index, data = dataPriv.get( this ), queue = data[ type + "queue" ], hooks = data[ type + "queueHooks" ], timers = jQuery.timers, length = queue ? queue.length : 0; // Enable finishing flag on private data data.finish = true; // Empty the queue first jQuery.queue( this, type, [] ); if ( hooks && hooks.stop ) { hooks.stop.call( this, true ); } // Look for any active animations, and finish them for ( index = timers.length; index--; ) { if ( timers[ index ].elem === this && timers[ index ].queue === type ) { timers[ index ].anim.stop( true ); timers.splice( index, 1 ); } } // Look for any animations in the old queue and finish them for ( index = 0; index < length; index++ ) { if ( queue[ index ] && queue[ index ].finish ) { queue[ index ].finish.call( this ); } } // Turn off finishing flag delete data.finish; } ); } } ); jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? cssFn.apply( this, arguments ) : this.animate( genFx( name, true ), speed, easing, callback ); }; } ); // Generate shortcuts for custom animations jQuery.each( { slideDown: genFx( "show" ), slideUp: genFx( "hide" ), slideToggle: genFx( "toggle" ), fadeIn: { opacity: "show" }, fadeOut: { opacity: "hide" }, fadeToggle: { opacity: "toggle" } }, function( name, props ) { jQuery.fn[ name ] = function( speed, easing, callback ) { return this.animate( props, speed, easing, callback ); }; } ); jQuery.timers = []; jQuery.fx.tick = function() { var timer, i = 0, timers = jQuery.timers; fxNow = jQuery.now(); for ( ; i < timers.length; i++ ) { timer = timers[ i ]; // Checks the timer has not already been removed if ( !timer() && timers[ i ] === timer ) { timers.splice( i--, 1 ); } } if ( !timers.length ) { jQuery.fx.stop(); } fxNow = undefined; }; jQuery.fx.timer = function( timer ) { jQuery.timers.push( timer ); if ( timer() ) { jQuery.fx.start(); } else { jQuery.timers.pop(); } }; jQuery.fx.interval = 13; jQuery.fx.start = function() { if ( !timerId ) { timerId = window.requestAnimationFrame ? window.requestAnimationFrame( raf ) : window.setInterval( jQuery.fx.tick, jQuery.fx.interval ); } }; jQuery.fx.stop = function() { if ( window.cancelAnimationFrame ) { window.cancelAnimationFrame( timerId ); } else { window.clearInterval( timerId ); } timerId = null; }; jQuery.fx.speeds = { slow: 600, fast: 200, // Default speed _default: 400 }; // Based off of the plugin by Clint Helfers, with permission. // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ jQuery.fn.delay = function( time, type ) { time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; type = type || "fx"; return this.queue( type, function( next, hooks ) { var timeout = window.setTimeout( next, time ); hooks.stop = function() { window.clearTimeout( timeout ); }; } ); }; ( function() { var input = document.createElement( "input" ), select = document.createElement( "select" ), opt = select.appendChild( document.createElement( "option" ) ); input.type = "checkbox"; // Support: Android <=4.3 only // Default value for a checkbox should be "on" support.checkOn = input.value !== ""; // Support: IE <=11 only // Must access selectedIndex to make default options select support.optSelected = opt.selected; // Support: IE <=11 only // An input loses its value after becoming a radio input = document.createElement( "input" ); input.value = "t"; input.type = "radio"; support.radioValue = input.value === "t"; } )(); var boolHook, attrHandle = jQuery.expr.attrHandle; jQuery.fn.extend( { attr: function( name, value ) { return access( this, jQuery.attr, name, value, arguments.length > 1 ); }, removeAttr: function( name ) { return this.each( function() { jQuery.removeAttr( this, name ); } ); } } ); jQuery.extend( { attr: function( elem, name, value ) { var ret, hooks, nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes if ( nType === 3 || nType === 8 || nType === 2 ) { return; } // Fallback to prop when attributes are not supported if ( typeof elem.getAttribute === "undefined" ) { return jQuery.prop( elem, name, value ); } // Attribute hooks are determined by the lowercase version // Grab necessary hook if one is defined if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { hooks = jQuery.attrHooks[ name.toLowerCase() ] || ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); } if ( value !== undefined ) { if ( value === null ) { jQuery.removeAttr( elem, name ); return; } if ( hooks && "set" in hooks && ( ret = hooks.set( elem, value, name ) ) !== undefined ) { return ret; } elem.setAttribute( name, value + "" ); return value; } if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { return ret; } ret = jQuery.find.attr( elem, name ); // Non-existent attributes return null, we normalize to undefined return ret == null ? undefined : ret; }, attrHooks: { type: { set: function( elem, value ) { if ( !support.radioValue && value === "radio" && jQuery.nodeName( elem, "input" ) ) { var val = elem.value; elem.setAttribute( "type", value ); if ( val ) { elem.value = val; } return value; } } } }, removeAttr: function( elem, value ) { var name, i = 0, // Attribute names can contain non-HTML whitespace characters // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 attrNames = value && value.match( rnothtmlwhite ); if ( attrNames && elem.nodeType === 1 ) { while ( ( name = attrNames[ i++ ] ) ) { elem.removeAttribute( name ); } } } } ); // Hooks for boolean attributes boolHook = { set: function( elem, value, name ) { if ( value === false ) { // Remove boolean attributes when set to false jQuery.removeAttr( elem, name ); } else { elem.setAttribute( name, name ); } return name; } }; jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { var ret, handle, lowercaseName = name.toLowerCase(); if ( !isXML ) { // Avoid an infinite loop by temporarily removing this function from the getter handle = attrHandle[ lowercaseName ]; attrHandle[ lowercaseName ] = ret; ret = getter( elem, name, isXML ) != null ? lowercaseName : null; attrHandle[ lowercaseName ] = handle; } return ret; }; } ); var rfocusable = /^(?:input|select|textarea|button)$/i, rclickable = /^(?:a|area)$/i; jQuery.fn.extend( { prop: function( name, value ) { return access( this, jQuery.prop, name, value, arguments.length > 1 ); }, removeProp: function( name ) { return this.each( function() { delete this[ jQuery.propFix[ name ] || name ]; } ); } } ); jQuery.extend( { prop: function( elem, name, value ) { var ret, hooks, nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes if ( nType === 3 || nType === 8 || nType === 2 ) { return; } if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { // Fix name and attach hooks name = jQuery.propFix[ name ] || name; hooks = jQuery.propHooks[ name ]; } if ( value !== undefined ) { if ( hooks && "set" in hooks && ( ret = hooks.set( elem, value, name ) ) !== undefined ) { return ret; } return ( elem[ name ] = value ); } if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { return ret; } return elem[ name ]; }, propHooks: { tabIndex: { get: function( elem ) { // Support: IE <=9 - 11 only // elem.tabIndex doesn't always return the // correct value when it hasn't been explicitly set // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // Use proper attribute retrieval(#12072) var tabindex = jQuery.find.attr( elem, "tabindex" ); if ( tabindex ) { return parseInt( tabindex, 10 ); } if ( rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ) { return 0; } return -1; } } }, propFix: { "for": "htmlFor", "class": "className" } } ); // Support: IE <=11 only // Accessing the selectedIndex property // forces the browser to respect setting selected // on the option // The getter ensures a default option is selected // when in an optgroup // eslint rule "no-unused-expressions" is disabled for this code // since it considers such accessions noop if ( !support.optSelected ) { jQuery.propHooks.selected = { get: function( elem ) { /* eslint no-unused-expressions: "off" */ var parent = elem.parentNode; if ( parent && parent.parentNode ) { parent.parentNode.selectedIndex; } return null; }, set: function( elem ) { /* eslint no-unused-expressions: "off" */ var parent = elem.parentNode; if ( parent ) { parent.selectedIndex; if ( parent.parentNode ) { parent.parentNode.selectedIndex; } } } }; } jQuery.each( [ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable" ], function() { jQuery.propFix[ this.toLowerCase() ] = this; } ); // Strip and collapse whitespace according to HTML spec // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace function stripAndCollapse( value ) { var tokens = value.match( rnothtmlwhite ) || []; return tokens.join( " " ); } function getClass( elem ) { return elem.getAttribute && elem.getAttribute( "class" ) || ""; } jQuery.fn.extend( { addClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; if ( jQuery.isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); } ); } if ( typeof value === "string" && value ) { classes = value.match( rnothtmlwhite ) || []; while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); if ( cur ) { j = 0; while ( ( clazz = classes[ j++ ] ) ) { if ( cur.indexOf( " " + clazz + " " ) < 0 ) { cur += clazz + " "; } } // Only assign if different to avoid unneeded rendering. finalValue = stripAndCollapse( cur ); if ( curValue !== finalValue ) { elem.setAttribute( "class", finalValue ); } } } } return this; }, removeClass: function( value ) { var classes, elem, cur, curValue, clazz, j, finalValue, i = 0; if ( jQuery.isFunction( value ) ) { return this.each( function( j ) { jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); } ); } if ( !arguments.length ) { return this.attr( "class", "" ); } if ( typeof value === "string" && value ) { classes = value.match( rnothtmlwhite ) || []; while ( ( elem = this[ i++ ] ) ) { curValue = getClass( elem ); // This expression is here for better compressibility (see addClass) cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); if ( cur ) { j = 0; while ( ( clazz = classes[ j++ ] ) ) { // Remove *all* instances while ( cur.indexOf( " " + clazz + " " ) > -1 ) { cur = cur.replace( " " + clazz + " ", " " ); } } // Only assign if different to avoid unneeded rendering. finalValue = stripAndCollapse( cur ); if ( curValue !== finalValue ) { elem.setAttribute( "class", finalValue ); } } } } return this; }, toggleClass: function( value, stateVal ) { var type = typeof value; if ( typeof stateVal === "boolean" && type === "string" ) { return stateVal ? this.addClass( value ) : this.removeClass( value ); } if ( jQuery.isFunction( value ) ) { return this.each( function( i ) { jQuery( this ).toggleClass( value.call( this, i, getClass( this ), stateVal ), stateVal ); } ); } return this.each( function() { var className, i, self, classNames; if ( type === "string" ) { // Toggle individual class names i = 0; self = jQuery( this ); classNames = value.match( rnothtmlwhite ) || []; while ( ( className = classNames[ i++ ] ) ) { // Check each className given, space separated list if ( self.hasClass( className ) ) { self.removeClass( className ); } else { self.addClass( className ); } } // Toggle whole class name } else if ( value === undefined || type === "boolean" ) { className = getClass( this ); if ( className ) { // Store className if set dataPriv.set( this, "__className__", className ); } // If the element has a class name or if we're passed `false`, // then remove the whole classname (if there was one, the above saved it). // Otherwise bring back whatever was previously saved (if anything), // falling back to the empty string if nothing was stored. if ( this.setAttribute ) { this.setAttribute( "class", className || value === false ? "" : dataPriv.get( this, "__className__" ) || "" ); } } } ); }, hasClass: function( selector ) { var className, elem, i = 0; className = " " + selector + " "; while ( ( elem = this[ i++ ] ) ) { if ( elem.nodeType === 1 && ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { return true; } } return false; } } ); var rreturn = /\r/g; jQuery.fn.extend( { val: function( value ) { var hooks, ret, isFunction, elem = this[ 0 ]; if ( !arguments.length ) { if ( elem ) { hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; if ( hooks && "get" in hooks && ( ret = hooks.get( elem, "value" ) ) !== undefined ) { return ret; } ret = elem.value; // Handle most common string cases if ( typeof ret === "string" ) { return ret.replace( rreturn, "" ); } // Handle cases where value is null/undef or number return ret == null ? "" : ret; } return; } isFunction = jQuery.isFunction( value ); return this.each( function( i ) { var val; if ( this.nodeType !== 1 ) { return; } if ( isFunction ) { val = value.call( this, i, jQuery( this ).val() ); } else { val = value; } // Treat null/undefined as ""; convert numbers to string if ( val == null ) { val = ""; } else if ( typeof val === "number" ) { val += ""; } else if ( jQuery.isArray( val ) ) { val = jQuery.map( val, function( value ) { return value == null ? "" : value + ""; } ); } hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; // If set returns undefined, fall back to normal setting if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { this.value = val; } } ); } } ); jQuery.extend( { valHooks: { option: { get: function( elem ) { var val = jQuery.find.attr( elem, "value" ); return val != null ? val : // Support: IE <=10 - 11 only // option.text throws exceptions (#14686, #14858) // Strip and collapse whitespace // https://html.spec.whatwg.org/#strip-and-collapse-whitespace stripAndCollapse( jQuery.text( elem ) ); } }, select: { get: function( elem ) { var value, option, i, options = elem.options, index = elem.selectedIndex, one = elem.type === "select-one", values = one ? null : [], max = one ? index + 1 : options.length; if ( index < 0 ) { i = max; } else { i = one ? index : 0; } // Loop through all the selected options for ( ; i < max; i++ ) { option = options[ i ]; // Support: IE <=9 only // IE8-9 doesn't update selected after form reset (#2551) if ( ( option.selected || i === index ) && // Don't return options that are disabled or in a disabled optgroup !option.disabled && ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { // Get the specific value for the option value = jQuery( option ).val(); // We don't need an array for one selects if ( one ) { return value; } // Multi-Selects return an array values.push( value ); } } return values; }, set: function( elem, value ) { var optionSet, option, options = elem.options, values = jQuery.makeArray( value ), i = options.length; while ( i-- ) { option = options[ i ]; /* eslint-disable no-cond-assign */ if ( option.selected = jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 ) { optionSet = true; } /* eslint-enable no-cond-assign */ } // Force browsers to behave consistently when non-matching value is set if ( !optionSet ) { elem.selectedIndex = -1; } return values; } } } } ); // Radios and checkboxes getter/setter jQuery.each( [ "radio", "checkbox" ], function() { jQuery.valHooks[ this ] = { set: function( elem, value ) { if ( jQuery.isArray( value ) ) { return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); } } }; if ( !support.checkOn ) { jQuery.valHooks[ this ].get = function( elem ) { return elem.getAttribute( "value" ) === null ? "on" : elem.value; }; } } ); // Return jQuery for attributes-only inclusion var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/; jQuery.extend( jQuery.event, { trigger: function( event, data, elem, onlyHandlers ) { var i, cur, tmp, bubbleType, ontype, handle, special, eventPath = [ elem || document ], type = hasOwn.call( event, "type" ) ? event.type : event, namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; cur = tmp = elem = elem || document; // Don't do events on text and comment nodes if ( elem.nodeType === 3 || elem.nodeType === 8 ) { return; } // focus/blur morphs to focusin/out; ensure we're not firing them right now if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { return; } if ( type.indexOf( "." ) > -1 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split( "." ); type = namespaces.shift(); namespaces.sort(); } ontype = type.indexOf( ":" ) < 0 && "on" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string event = event[ jQuery.expando ] ? event : new jQuery.Event( type, typeof event === "object" && event ); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) event.isTrigger = onlyHandlers ? 2 : 3; event.namespace = namespaces.join( "." ); event.rnamespace = event.namespace ? new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null; // Clean up the event in case it is being reused event.result = undefined; if ( !event.target ) { event.target = elem; } // Clone any incoming data and prepend the event, creating the handler arg list data = data == null ? [ event ] : jQuery.makeArray( data, [ event ] ); // Allow special events to draw outside the lines special = jQuery.event.special[ type ] || {}; if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { return; } // Determine event propagation path in advance, per W3C events spec (#9951) // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { bubbleType = special.delegateType || type; if ( !rfocusMorph.test( bubbleType + type ) ) { cur = cur.parentNode; } for ( ; cur; cur = cur.parentNode ) { eventPath.push( cur ); tmp = cur; } // Only add window if we got to document (e.g., not plain obj or detached DOM) if ( tmp === ( elem.ownerDocument || document ) ) { eventPath.push( tmp.defaultView || tmp.parentWindow || window ); } } // Fire handlers on the event path i = 0; while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); } // Native handler handle = ontype && cur[ ontype ]; if ( handle && handle.apply && acceptData( cur ) ) { event.result = handle.apply( cur, data ); if ( event.result === false ) { event.preventDefault(); } } } event.type = type; // If nobody prevented the default action, do it now if ( !onlyHandlers && !event.isDefaultPrevented() ) { if ( ( !special._default || special._default.apply( eventPath.pop(), data ) === false ) && acceptData( elem ) ) { // Call a native DOM method on the target with the same name as the event. // Don't do default actions on window, that's where global variables be (#6170) if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) { // Don't re-trigger an onFOO event when we call its FOO() method tmp = elem[ ontype ]; if ( tmp ) { elem[ ontype ] = null; } // Prevent re-triggering of the same event, since we already bubbled it above jQuery.event.triggered = type; elem[ type ](); jQuery.event.triggered = undefined; if ( tmp ) { elem[ ontype ] = tmp; } } } } return event.result; }, // Piggyback on a donor event to simulate a different one // Used only for `focus(in | out)` events simulate: function( type, elem, event ) { var e = jQuery.extend( new jQuery.Event(), event, { type: type, isSimulated: true } ); jQuery.event.trigger( e, null, elem ); } } ); jQuery.fn.extend( { trigger: function( type, data ) { return this.each( function() { jQuery.event.trigger( type, data, this ); } ); }, triggerHandler: function( type, data ) { var elem = this[ 0 ]; if ( elem ) { return jQuery.event.trigger( type, data, elem, true ); } } } ); jQuery.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( i, name ) { // Handle event binding jQuery.fn[ name ] = function( data, fn ) { return arguments.length > 0 ? this.on( name, null, data, fn ) : this.trigger( name ); }; } ); jQuery.fn.extend( { hover: function( fnOver, fnOut ) { return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); support.focusin = "onfocusin" in window; // Support: Firefox <=44 // Firefox doesn't have focus(in | out) events // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 // // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 // focus(in | out) events fire after focus & blur events, // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 if ( !support.focusin ) { jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { // Attach a single capturing handler on the document while someone wants focusin/focusout var handler = function( event ) { jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); }; jQuery.event.special[ fix ] = { setup: function() { var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { doc.addEventListener( orig, handler, true ); } dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { doc.removeEventListener( orig, handler, true ); dataPriv.remove( doc, fix ); } else { dataPriv.access( doc, fix, attaches ); } } }; } ); } var location = window.location; var nonce = jQuery.now(); var rquery = ( /\?/ ); // Cross-browser xml parsing jQuery.parseXML = function( data ) { var xml; if ( !data || typeof data !== "string" ) { return null; } // Support: IE 9 - 11 only // IE throws on parseFromString with invalid input. try { xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); } catch ( e ) { xml = undefined; } if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; }; var rbracket = /\[\]$/, rCRLF = /\r?\n/g, rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, rsubmittable = /^(?:input|select|textarea|keygen)/i; function buildParams( prefix, obj, traditional, add ) { var name; if ( jQuery.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbracket.test( prefix ) ) { // Treat each array item as a scalar. add( prefix, v ); } else { // Item is non-scalar (array or object), encode its numeric index. buildParams( prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", v, traditional, add ); } } ); } else if ( !traditional && jQuery.type( obj ) === "object" ) { // Serialize object item. for ( name in obj ) { buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); } } else { // Serialize scalar item. add( prefix, obj ); } } // Serialize an array of form elements or a set of // key/values into a query string jQuery.param = function( a, traditional ) { var prefix, s = [], add = function( key, valueOrFunction ) { // If value is a function, invoke it and use its return value var value = jQuery.isFunction( valueOrFunction ) ? valueOrFunction() : valueOrFunction; s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value == null ? "" : value ); }; // If an array was passed in, assume that it is an array of form elements. if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); } ); } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. for ( prefix in a ) { buildParams( prefix, a[ prefix ], traditional, add ); } } // Return the resulting serialization return s.join( "&" ); }; jQuery.fn.extend( { serialize: function() { return jQuery.param( this.serializeArray() ); }, serializeArray: function() { return this.map( function() { // Can add propHook for "elements" to filter or add form elements var elements = jQuery.prop( this, "elements" ); return elements ? jQuery.makeArray( elements ) : this; } ) .filter( function() { var type = this.type; // Use .is( ":disabled" ) so that fieldset[disabled] works return this.name && !jQuery( this ).is( ":disabled" ) && rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) .map( function( i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { return null; } if ( jQuery.isArray( val ) ) { return jQuery.map( val, function( val ) { return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; } ); } return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; } ).get(); } } ); var r20 = /%20/g, rhash = /#.*$/, rantiCache = /([?&])_=[^&]*/, rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, // #7653, #8125, #8152: local protocol detection rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, rnoContent = /^(?:GET|HEAD)$/, rprotocol = /^\/\//, /* Prefilters * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) * 2) These are called: * - BEFORE asking for a transport * - AFTER param serialization (s.data is a string if s.processData is true) * 3) key is the dataType * 4) the catchall symbol "*" can be used * 5) execution will start with transport dataType and THEN continue down to "*" if needed */ prefilters = {}, /* Transports bindings * 1) key is the dataType * 2) the catchall symbol "*" can be used * 3) selection will start with transport dataType and THEN go to "*" if needed */ transports = {}, // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression allTypes = "*/".concat( "*" ), // Anchor tag for parsing the document origin originAnchor = document.createElement( "a" ); originAnchor.href = location.href; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport function addToPrefiltersOrTransports( structure ) { // dataTypeExpression is optional and defaults to "*" return function( dataTypeExpression, func ) { if ( typeof dataTypeExpression !== "string" ) { func = dataTypeExpression; dataTypeExpression = "*"; } var dataType, i = 0, dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; if ( jQuery.isFunction( func ) ) { // For each dataType in the dataTypeExpression while ( ( dataType = dataTypes[ i++ ] ) ) { // Prepend if requested if ( dataType[ 0 ] === "+" ) { dataType = dataType.slice( 1 ) || "*"; ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); // Otherwise append } else { ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); } } } }; } // Base inspection function for prefilters and transports function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { var inspected = {}, seekingTransport = ( structure === transports ); function inspect( dataType ) { var selected; inspected[ dataType ] = true; jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); if ( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) { options.dataTypes.unshift( dataTypeOrTransport ); inspect( dataTypeOrTransport ); return false; } else if ( seekingTransport ) { return !( selected = dataTypeOrTransport ); } } ); return selected; } return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); } // A special extend for ajax options // that takes "flat" options (not to be deep extended) // Fixes #9887 function ajaxExtend( target, src ) { var key, deep, flatOptions = jQuery.ajaxSettings.flatOptions || {}; for ( key in src ) { if ( src[ key ] !== undefined ) { ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; } } if ( deep ) { jQuery.extend( true, target, deep ); } return target; } /* Handles responses to an ajax request: * - finds the right dataType (mediates between content-type and expected dataType) * - returns the corresponding response */ function ajaxHandleResponses( s, jqXHR, responses ) { var ct, type, finalDataType, firstDataType, contents = s.contents, dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process while ( dataTypes[ 0 ] === "*" ) { dataTypes.shift(); if ( ct === undefined ) { ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); } } // Check if we're dealing with a known content-type if ( ct ) { for ( type in contents ) { if ( contents[ type ] && contents[ type ].test( ct ) ) { dataTypes.unshift( type ); break; } } } // Check to see if we have a response for the expected dataType if ( dataTypes[ 0 ] in responses ) { finalDataType = dataTypes[ 0 ]; } else { // Try convertible dataTypes for ( type in responses ) { if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { finalDataType = type; break; } if ( !firstDataType ) { firstDataType = type; } } // Or just use first one finalDataType = finalDataType || firstDataType; } // If we found a dataType // We add the dataType to the list if needed // and return the corresponding response if ( finalDataType ) { if ( finalDataType !== dataTypes[ 0 ] ) { dataTypes.unshift( finalDataType ); } return responses[ finalDataType ]; } } /* Chain conversions given the request and the original response * Also sets the responseXXX fields on the jqXHR instance */ function ajaxConvert( s, response, jqXHR, isSuccess ) { var conv2, current, conv, tmp, prev, converters = {}, // Work with a copy of dataTypes in case we need to modify it for conversion dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys if ( dataTypes[ 1 ] ) { for ( conv in s.converters ) { converters[ conv.toLowerCase() ] = s.converters[ conv ]; } } current = dataTypes.shift(); // Convert to each sequential dataType while ( current ) { if ( s.responseFields[ current ] ) { jqXHR[ s.responseFields[ current ] ] = response; } // Apply the dataFilter if provided if ( !prev && isSuccess && s.dataFilter ) { response = s.dataFilter( response, s.dataType ); } prev = current; current = dataTypes.shift(); if ( current ) { // There's only work to do if current dataType is non-auto if ( current === "*" ) { current = prev; // Convert response if prev dataType is non-auto and differs from current } else if ( prev !== "*" && prev !== current ) { // Seek a direct converter conv = converters[ prev + " " + current ] || converters[ "* " + current ]; // If none found, seek a pair if ( !conv ) { for ( conv2 in converters ) { // If conv2 outputs current tmp = conv2.split( " " ); if ( tmp[ 1 ] === current ) { // If prev can be converted to accepted input conv = converters[ prev + " " + tmp[ 0 ] ] || converters[ "* " + tmp[ 0 ] ]; if ( conv ) { // Condense equivalence converters if ( conv === true ) { conv = converters[ conv2 ]; // Otherwise, insert the intermediate dataType } else if ( converters[ conv2 ] !== true ) { current = tmp[ 0 ]; dataTypes.unshift( tmp[ 1 ] ); } break; } } } } // Apply converter (if not an equivalence) if ( conv !== true ) { // Unless errors are allowed to bubble, catch and return them if ( conv && s.throws ) { response = conv( response ); } else { try { response = conv( response ); } catch ( e ) { return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current }; } } } } } } return { state: "success", data: response }; } jQuery.extend( { // Counter for holding the number of active queries active: 0, // Last-Modified header cache for next request lastModified: {}, etag: {}, ajaxSettings: { url: location.href, type: "GET", isLocal: rlocalProtocol.test( location.protocol ), global: true, processData: true, async: true, contentType: "application/x-www-form-urlencoded; charset=UTF-8", /* timeout: 0, data: null, dataType: null, username: null, password: null, cache: null, throws: false, traditional: false, headers: {}, */ accepts: { "*": allTypes, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript" }, contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, responseFields: { xml: "responseXML", text: "responseText", json: "responseJSON" }, // Data converters // Keys separate source (or catchall "*") and destination types with a single space converters: { // Convert anything to text "* text": String, // Text to html (true = no transformation) "text html": true, // Evaluate text as a json expression "text json": JSON.parse, // Parse text as xml "text xml": jQuery.parseXML }, // For options that shouldn't be deep extended: // you can add your own custom options here if // and when you create one that shouldn't be // deep extended (see ajaxExtend) flatOptions: { url: true, context: true } }, // Creates a full fledged settings object into target // with both ajaxSettings and settings fields. // If target is omitted, writes into ajaxSettings. ajaxSetup: function( target, settings ) { return settings ? // Building a settings object ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : // Extending ajaxSettings ajaxExtend( jQuery.ajaxSettings, target ); }, ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), ajaxTransport: addToPrefiltersOrTransports( transports ), // Main method ajax: function( url, options ) { // If url is an object, simulate pre-1.5 signature if ( typeof url === "object" ) { options = url; url = undefined; } // Force options to be an object options = options || {}; var transport, // URL without anti-cache param cacheURL, // Response headers responseHeadersString, responseHeaders, // timeout handle timeoutTimer, // Url cleanup var urlAnchor, // Request state (becomes false upon send and true upon completion) completed, // To know if global events are to be dispatched fireGlobals, // Loop variable i, // uncached part of the url uncached, // Create the final options object s = jQuery.ajaxSetup( {}, options ), // Callbacks context callbackContext = s.context || s, // Context for global events is callbackContext if it is a DOM node or jQuery collection globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ? jQuery( callbackContext ) : jQuery.event, // Deferreds deferred = jQuery.Deferred(), completeDeferred = jQuery.Callbacks( "once memory" ), // Status-dependent callbacks statusCode = s.statusCode || {}, // Headers (they are sent all at once) requestHeaders = {}, requestHeadersNames = {}, // Default abort message strAbort = "canceled", // Fake xhr jqXHR = { readyState: 0, // Builds headers hashtable if needed getResponseHeader: function( key ) { var match; if ( completed ) { if ( !responseHeaders ) { responseHeaders = {}; while ( ( match = rheaders.exec( responseHeadersString ) ) ) { responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; } } match = responseHeaders[ key.toLowerCase() ]; } return match == null ? null : match; }, // Raw string getAllResponseHeaders: function() { return completed ? responseHeadersString : null; }, // Caches the header setRequestHeader: function( name, value ) { if ( completed == null ) { name = requestHeadersNames[ name.toLowerCase() ] = requestHeadersNames[ name.toLowerCase() ] || name; requestHeaders[ name ] = value; } return this; }, // Overrides response content-type header overrideMimeType: function( type ) { if ( completed == null ) { s.mimeType = type; } return this; }, // Status-dependent callbacks statusCode: function( map ) { var code; if ( map ) { if ( completed ) { // Execute the appropriate callbacks jqXHR.always( map[ jqXHR.status ] ); } else { // Lazy-add the new callbacks in a way that preserves old ones for ( code in map ) { statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; } } } return this; }, // Cancel the request abort: function( statusText ) { var finalText = statusText || strAbort; if ( transport ) { transport.abort( finalText ); } done( 0, finalText ); return this; } }; // Attach deferreds deferred.promise( jqXHR ); // Add protocol if not provided (prefilters might expect it) // Handle falsy url in the settings object (#10093: consistency with old signature) // We also use the url parameter if available s.url = ( ( url || s.url || location.href ) + "" ) .replace( rprotocol, location.protocol + "//" ); // Alias method option to type as per ticket #12004 s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; // A cross-domain request is in order when the origin doesn't match the current origin. if ( s.crossDomain == null ) { urlAnchor = document.createElement( "a" ); // Support: IE <=8 - 11, Edge 12 - 13 // IE throws exception on accessing the href property if url is malformed, // e.g. http://example.com:80x/ try { urlAnchor.href = s.url; // Support: IE <=8 - 11 only // Anchor's host property isn't correctly set when s.url is relative urlAnchor.href = urlAnchor.href; s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; } catch ( e ) { // If there is an error parsing the URL, assume it is crossDomain, // it can be rejected by the transport if it is invalid s.crossDomain = true; } } // Convert data if not already a string if ( s.data && s.processData && typeof s.data !== "string" ) { s.data = jQuery.param( s.data, s.traditional ); } // Apply prefilters inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); // If request was aborted inside a prefilter, stop there if ( completed ) { return jqXHR; } // We can fire global events as of now if asked to // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } // Uppercase the type s.type = s.type.toUpperCase(); // Determine if request has content s.hasContent = !rnoContent.test( s.type ); // Save the URL in case we're toying with the If-Modified-Since // and/or If-None-Match header later on // Remove hash to simplify url manipulation cacheURL = s.url.replace( rhash, "" ); // More options handling for requests with no content if ( !s.hasContent ) { // Remember the hash so we can put it back uncached = s.url.slice( cacheURL.length ); // If data is available, append data to url if ( s.data ) { cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; // #9682: remove data so that it's not used in an eventual retry delete s.data; } // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658) } else if ( s.data && s.processData && ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { s.data = s.data.replace( r20, "+" ); } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { if ( jQuery.lastModified[ cacheURL ] ) { jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); } if ( jQuery.etag[ cacheURL ] ) { jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); } } // Set the correct header, if data is being sent if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { jqXHR.setRequestHeader( "Content-Type", s.contentType ); } // Set the Accepts header for the server, depending on the dataType jqXHR.setRequestHeader( "Accept", s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? s.accepts[ s.dataTypes[ 0 ] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : s.accepts[ "*" ] ); // Check for headers option for ( i in s.headers ) { jqXHR.setRequestHeader( i, s.headers[ i ] ); } // Allow custom headers/mimetypes and early abort if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { // Abort if not done already and return return jqXHR.abort(); } // Aborting is no longer a cancellation strAbort = "abort"; // Install callbacks on deferreds completeDeferred.add( s.complete ); jqXHR.done( s.success ); jqXHR.fail( s.error ); // Get transport transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); // If no transport, we auto-abort if ( !transport ) { done( -1, "No Transport" ); } else { jqXHR.readyState = 1; // Send global event if ( fireGlobals ) { globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); } // If request was aborted inside ajaxSend, stop there if ( completed ) { return jqXHR; } // Timeout if ( s.async && s.timeout > 0 ) { timeoutTimer = window.setTimeout( function() { jqXHR.abort( "timeout" ); }, s.timeout ); } try { completed = false; transport.send( requestHeaders, done ); } catch ( e ) { // Rethrow post-completion exceptions if ( completed ) { throw e; } // Propagate others as results done( -1, e ); } } // Callback for when everything is done function done( status, nativeStatusText, responses, headers ) { var isSuccess, success, error, response, modified, statusText = nativeStatusText; // Ignore repeat invocations if ( completed ) { return; } completed = true; // Clear timeout if it exists if ( timeoutTimer ) { window.clearTimeout( timeoutTimer ); } // Dereference transport for early garbage collection // (no matter how long the jqXHR object will be used) transport = undefined; // Cache response headers responseHeadersString = headers || ""; // Set readyState jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful isSuccess = status >= 200 && status < 300 || status === 304; // Get response data if ( responses ) { response = ajaxHandleResponses( s, jqXHR, responses ); } // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); // If successful, handle type chaining if ( isSuccess ) { // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { modified = jqXHR.getResponseHeader( "Last-Modified" ); if ( modified ) { jQuery.lastModified[ cacheURL ] = modified; } modified = jqXHR.getResponseHeader( "etag" ); if ( modified ) { jQuery.etag[ cacheURL ] = modified; } } // if no content if ( status === 204 || s.type === "HEAD" ) { statusText = "nocontent"; // if not modified } else if ( status === 304 ) { statusText = "notmodified"; // If we have data, let's convert it } else { statusText = response.state; success = response.data; error = response.error; isSuccess = !error; } } else { // Extract error from statusText and normalize for non-aborts error = statusText; if ( status || !statusText ) { statusText = "error"; if ( status < 0 ) { status = 0; } } } // Set data for the fake xhr object jqXHR.status = status; jqXHR.statusText = ( nativeStatusText || statusText ) + ""; // Success/Error if ( isSuccess ) { deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); } else { deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); } // Status-dependent callbacks jqXHR.statusCode( statusCode ); statusCode = undefined; if ( fireGlobals ) { globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", [ jqXHR, s, isSuccess ? success : error ] ); } // Complete completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); if ( fireGlobals ) { globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); // Handle the global AJAX counter if ( !( --jQuery.active ) ) { jQuery.event.trigger( "ajaxStop" ); } } } return jqXHR; }, getJSON: function( url, data, callback ) { return jQuery.get( url, data, callback, "json" ); }, getScript: function( url, callback ) { return jQuery.get( url, undefined, callback, "script" ); } } ); jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted if ( jQuery.isFunction( data ) ) { type = type || callback; callback = data; data = undefined; } // The url can be an options object (which then must have .url) return jQuery.ajax( jQuery.extend( { url: url, type: method, dataType: type, data: data, success: callback }, jQuery.isPlainObject( url ) && url ) ); }; } ); jQuery._evalUrl = function( url ) { return jQuery.ajax( { url: url, // Make this explicit, since user can override this through ajaxSetup (#11264) type: "GET", dataType: "script", cache: true, async: false, global: false, "throws": true } ); }; jQuery.fn.extend( { wrapAll: function( html ) { var wrap; if ( this[ 0 ] ) { if ( jQuery.isFunction( html ) ) { html = html.call( this[ 0 ] ); } // The elements to wrap the target around wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); if ( this[ 0 ].parentNode ) { wrap.insertBefore( this[ 0 ] ); } wrap.map( function() { var elem = this; while ( elem.firstElementChild ) { elem = elem.firstElementChild; } return elem; } ).append( this ); } return this; }, wrapInner: function( html ) { if ( jQuery.isFunction( html ) ) { return this.each( function( i ) { jQuery( this ).wrapInner( html.call( this, i ) ); } ); } return this.each( function() { var self = jQuery( this ), contents = self.contents(); if ( contents.length ) { contents.wrapAll( html ); } else { self.append( html ); } } ); }, wrap: function( html ) { var isFunction = jQuery.isFunction( html ); return this.each( function( i ) { jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html ); } ); }, unwrap: function( selector ) { this.parent( selector ).not( "body" ).each( function() { jQuery( this ).replaceWith( this.childNodes ); } ); return this; } } ); jQuery.expr.pseudos.hidden = function( elem ) { return !jQuery.expr.pseudos.visible( elem ); }; jQuery.expr.pseudos.visible = function( elem ) { return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); }; jQuery.ajaxSettings.xhr = function() { try { return new window.XMLHttpRequest(); } catch ( e ) {} }; var xhrSuccessStatus = { // File protocol always yields status code 0, assume 200 0: 200, // Support: IE <=9 only // #1450: sometimes IE returns 1223 when it should be 204 1223: 204 }, xhrSupported = jQuery.ajaxSettings.xhr(); support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); support.ajax = xhrSupported = !!xhrSupported; jQuery.ajaxTransport( function( options ) { var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest if ( support.cors || xhrSupported && !options.crossDomain ) { return { send: function( headers, complete ) { var i, xhr = options.xhr(); xhr.open( options.type, options.url, options.async, options.username, options.password ); // Apply custom fields if provided if ( options.xhrFields ) { for ( i in options.xhrFields ) { xhr[ i ] = options.xhrFields[ i ]; } } // Override mime type if needed if ( options.mimeType && xhr.overrideMimeType ) { xhr.overrideMimeType( options.mimeType ); } // X-Requested-With header // For cross-domain requests, seeing as conditions for a preflight are // akin to a jigsaw puzzle, we simply never set it to be sure. // (it can always be set on a per-request basis or even using ajaxSetup) // For same-domain requests, won't change header if already provided. if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { headers[ "X-Requested-With" ] = "XMLHttpRequest"; } // Set headers for ( i in headers ) { xhr.setRequestHeader( i, headers[ i ] ); } // Callback callback = function( type ) { return function() { if ( callback ) { callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.onreadystatechange = null; if ( type === "abort" ) { xhr.abort(); } else if ( type === "error" ) { // Support: IE <=9 only // On a manual native abort, IE9 throws // errors on any property access that is not readyState if ( typeof xhr.status !== "number" ) { complete( 0, "error" ); } else { complete( // File: protocol always yields status 0; see #8605, #14207 xhr.status, xhr.statusText ); } } else { complete( xhrSuccessStatus[ xhr.status ] || xhr.status, xhr.statusText, // Support: IE <=9 only // IE9 has no XHR2 but throws on binary (trac-11426) // For XHR2 non-text, let the caller handle it (gh-2498) ( xhr.responseType || "text" ) !== "text" || typeof xhr.responseText !== "string" ? { binary: xhr.response } : { text: xhr.responseText }, xhr.getAllResponseHeaders() ); } } }; }; // Listen to events xhr.onload = callback(); errorCallback = xhr.onerror = callback( "error" ); // Support: IE 9 only // Use onreadystatechange to replace onabort // to handle uncaught aborts if ( xhr.onabort !== undefined ) { xhr.onabort = errorCallback; } else { xhr.onreadystatechange = function() { // Check readyState before timeout as it changes if ( xhr.readyState === 4 ) { // Allow onerror to be called first, // but that will not handle a native abort // Also, save errorCallback to a variable // as xhr.onerror cannot be accessed window.setTimeout( function() { if ( callback ) { errorCallback(); } } ); } }; } // Create the abort callback callback = callback( "abort" ); try { // Do send the request (this may raise an exception) xhr.send( options.hasContent && options.data || null ); } catch ( e ) { // #14683: Only rethrow if this hasn't been notified as an error yet if ( callback ) { throw e; } } }, abort: function() { if ( callback ) { callback(); } } }; } } ); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) jQuery.ajaxPrefilter( function( s ) { if ( s.crossDomain ) { s.contents.script = false; } } ); // Install script dataType jQuery.ajaxSetup( { accepts: { script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript" }, contents: { script: /\b(?:java|ecma)script\b/ }, converters: { "text script": function( text ) { jQuery.globalEval( text ); return text; } } } ); // Handle cache's special case and crossDomain jQuery.ajaxPrefilter( "script", function( s ) { if ( s.cache === undefined ) { s.cache = false; } if ( s.crossDomain ) { s.type = "GET"; } } ); // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { // This transport only deals with cross domain requests if ( s.crossDomain ) { var script, callback; return { send: function( _, complete ) { script = jQuery( "