class-wp-font-face-resolver.php000064400000013024147206410120012502 0ustar00 array( 'fontFamilies' => array( 'theme' => $fonts, ), ), ); return static::parse_settings( $settings ); } /** * Parse theme.json settings to extract font definitions with variations grouped by font-family. * * @since 6.4.0 * * @param array $settings Font settings to parse. * @return array Returns an array of fonts, grouped by font-family. */ private static function parse_settings( array $settings ) { $fonts = array(); foreach ( $settings['typography']['fontFamilies'] as $font_families ) { foreach ( $font_families as $definition ) { // Skip if "fontFace" is not defined, meaning there are no variations. if ( empty( $definition['fontFace'] ) ) { continue; } // Skip if "fontFamily" is not defined. if ( empty( $definition['fontFamily'] ) ) { continue; } $font_family_name = static::maybe_parse_name_from_comma_separated_list( $definition['fontFamily'] ); // Skip if no font family is defined. if ( empty( $font_family_name ) ) { continue; } $fonts[] = static::convert_font_face_properties( $definition['fontFace'], $font_family_name ); } } return $fonts; } /** * Parse font-family name from comma-separated lists. * * If the given `fontFamily` is a comma-separated lists (example: "Inter, sans-serif" ), * parse and return the fist font from the list. * * @since 6.4.0 * * @param string $font_family Font family `fontFamily' to parse. * @return string Font-family name. */ private static function maybe_parse_name_from_comma_separated_list( $font_family ) { if ( str_contains( $font_family, ',' ) ) { $font_family = explode( ',', $font_family )[0]; } return trim( $font_family, "\"'" ); } /** * Converts font-face properties from theme.json format. * * @since 6.4.0 * * @param array $font_face_definition The font-face definitions to convert. * @param string $font_family_property The value to store in the font-face font-family property. * @return array Converted font-face properties. */ private static function convert_font_face_properties( array $font_face_definition, $font_family_property ) { $converted_font_faces = array(); foreach ( $font_face_definition as $font_face ) { // Add the font-family property to the font-face. $font_face['font-family'] = $font_family_property; // Converts the "file:./" src placeholder into a theme font file URI. if ( ! empty( $font_face['src'] ) ) { $font_face['src'] = static::to_theme_file_uri( (array) $font_face['src'] ); } // Convert camelCase properties into kebab-case. $font_face = static::to_kebab_case( $font_face ); $converted_font_faces[] = $font_face; } return $converted_font_faces; } /** * Converts each 'file:./' placeholder into a URI to the font file in the theme. * * The 'file:./' is specified in the theme's `theme.json` as a placeholder to be * replaced with the URI to the font file's location in the theme. When a "src" * beings with this placeholder, it is replaced, converting the src into a URI. * * @since 6.4.0 * * @param array $src An array of font file sources to process. * @return array An array of font file src URI(s). */ private static function to_theme_file_uri( array $src ) { $placeholder = 'file:./'; foreach ( $src as $src_key => $src_url ) { // Skip if the src doesn't start with the placeholder, as there's nothing to replace. if ( ! str_starts_with( $src_url, $placeholder ) ) { continue; } $src_file = str_replace( $placeholder, '', $src_url ); $src[ $src_key ] = get_theme_file_uri( $src_file ); } return $src; } /** * Converts all first dimension keys into kebab-case. * * @since 6.4.0 * * @param array $data The array to process. * @return array Data with first dimension keys converted into kebab-case. */ private static function to_kebab_case( array $data ) { foreach ( $data as $key => $value ) { $kebab_case = _wp_to_kebab_case( $key ); $data[ $kebab_case ] = $value; if ( $kebab_case !== $key ) { unset( $data[ $key ] ); } } return $data; } } dashicons.woff000064400000063014147206410120007403 0ustar00wOFFf FFTMDrL"GDEF` 3OS/2@`icmapA@gaspglyf Ylhead\.6 hhea],$hmtx]H@r loca^Pvmaxp`` Yname`V/*vpostb F?webffV=c-xc`d``b `b`d`dd,`9xc`f?8Ue4ʹ)Ja~ _bDR6 xݐKA璨7 Ł$4$"Hhb!] ;[E;F j6y$`aoyÃ` ɀ;Xq9e!A&A6 K#S@SL5ڠh_YVU^jVվ늩S3u0-s`86((@i&1}rUN[Km*SAntCS6K]i9d~Ns( ?_oqK88Ξtvmg]媬ɪ\rN#ĵLNV?TX6ytxڬ |U8\;[[t,7u=l! K/FMnQAPE7D\F"aFmD&CqduFs I_N:̛t[Un'rGNݜIKW]o{*-dcX3LhCg<3G*_ziH(LLf+1[`HCdP@L9%Y0 Ca>x0ְ;geM+ݺ6HieŒ7ji?Ref6Ow[ʳ$-tK^plfeKʕͺU#X!^.*5j. ^m2 R)!:G;iu(MB*׶ƚ[4rzm+ݺ^[ u|"}}1ѐO$ЭIM{66,$;|[FU,o`=zwTKN47Wȵ\6^Sdi$A]%MÎ%H)(%l$abf7oeDjiill|q"}RzUda -&dOнW)MMHXrWk[?7*[c߰Mr;y3Yny45r Gib#Dw]vJ&:U R/u, :;th+~z~#uu©Xn;zp%<}N.+5 X|Twr #T^Jd?0'QO:&;$h. 8p'?K85gq֋!"g] =n#iPX@_"͹=Yo_WONU[Zv-nnbbGn':wJYincw-=;'(`'gt 3 \ivδ-& gCI0/^2{!ޅײvEBy*WΔDDQvVu0 5} !OhR }oUd⏷#}Fi/5dLWWgMPhnڠ5Xp ;=N6?Bk6-^,R&3gWTb9\ +ݪj?4 Ayř3zX= NY3(rY!Oʌ0tH1Wr~C۷:37_x|G^AOsŖCmmWK#U@uqz 5,vo bcB yEߔA8`;LiOQ݈ % Gc `H\:Fڃ\B+ֺ7=HVri;li `0AOpΆOsCD;IlL5<ugԑӑhhie\ϾK>vpTIi;} " b6w&E]r/&սG?[MȊvʲäQ4w8&9Ϋ`y( h70<ɑ~\òo\UUʛ2?{ {)FKymkۊ'9ִ}H_"~82.!>ڣmb% /1\0dJ+^vߞW(`Q wA(\F$Nq1)9`lg_&^d';VRzxgo g}$}/Cwq#(Kl3Hi~8HH{i B9/76?rHg g9'::c=d)'tf)CX AMeHV<5(E]uG@soq’-pɗ"v[OE^>oj4D$<^$z'.pe8Y^=ߐ3zgW :k$@Z7 "\g''^F_Fmۉl8H1!@e#lqe .CM&8i4Q0`Bn׷9Z8E͡g_w݋#4W+~KOQ/J<~=xvg`\zj#\@ۑ=zȼ!p|laYNl$t AF̓[?o aKbC&籙ux$އ& o - &^mǩjKQGNBFOĚ?EP(MڦL!5’"hf^/mh(=]2bZiCwC4C}ƫ-`an!DHϲ{ +&ˑ&ו:JZhQړ\ri5HKr X%֫KA$PfFxD Hɳgt%2@\w%51*XK\J<m eG;O_E"?18v~eYyŌrtݍf`&NYLŚ9#1PCE~m]INӐlI4Oos3+ޭ4M8tPyx$0VH,<{4évcmX+C |1CHFa?w$R(i*ӋL *ǽˮAh'Q w݈gsT-QdNȟFH/cSc4R  c5T0*h?@ 0 sQrr:Dcr t/ Ǎ?ƨK'oB!y:㫿7 Hs-n?/gJ^MxV7nu`~>PHEtg#\}w:1?L>LLJh77ӵl\"@d3 :Qn30](Huu"d A\G|ֆFI;.B3=QЈ=:o:=-;vtc+`o{k煢!)x:nEQ`C$CE 1/" ܮq"8`C80A|ڟ}{]J-*x䏯]6T4Q|Y'(qelP9Aqp(&U+i~ͿJE:[UsK 8)rQ?]7VaRؙ3)?sFmNy8_%v?7>^GG[Snz}6RE'w|FGc&khGp Ty NxB0=L 51d;M@ҞMpy,5߽:;ҀAC$ b Dꖎp^n,Y-&~2t,OrzܙS%3=n,eM6ՑKuaEX`r8&0Uٽ|-;p7_FHcѢE/"Rt}IʳUH5U 6a[/0!bby0H;c!&)=j:~$Ԭ؉5ǀp(`(ITTK:T-Kp> MK7sSu!nǡͼ`t.H63#@=θ5589ISc|̸|!sEMVňċ(C$7\g@r]V/ŃF.AqL?H;S;ҥ0nݗDcO4ҥDRyG\1LU.ѯH(2wx\j\ͩ)8/mt8d_ Kzu},Z6l]Y?Ȃg6Ohhw_Ĥɱ㧌f"#]*x.-'C>7>z±Ha!$&zq8PwF5HG: >oV4(", 0y<;iKs˙J6"1څ#bx=q͈Y⡖٥бp^9gd5n=Fo`3CۨkӲx oXQQﰘt9Ƽl1ۜ.i qR(Oo0z+ |f$ϚW<47(|db+%w4hU_k6a4sPfҫ"E'9EY\^="-bjrx^W-`')} f`ĠҀH(k(=l|ꦛtX[>Mp W?pĀ=J55whl롏'沉A۹ܿhIp'{q?& UkK~ I:Os8\![)ƌ+REփ:r^(BrFd'drss(۸9( r+&LXJ'8_ȧ qȁ-:`@Eb01Ttf1p[gX[yaYEeUKN,;c,6̚?:?XpӔ -:ɠYUkȖM6[Ax @+jRwZ7ri}S4`S {[4Mr:g /l3}ٱŲEC(n"^72Pֻd]1yD= 2s1 bHǷm޸ M/m"DU]$6I&ڼ>ߑ|߀Aw(:ud>A1.Dр!<-̱f9t$` L*_8C |Z({JB\J ȑ.a2ޛm`0ڛm1L<"?//oPB:ȗa%\˨z|mee Ef[Q][Y?f]٨88Cv ̾8m%>E(Vm̀IL:}ze%1Q!6B{Fidj|}?.=.~Pn9) J'GYɬ%&>Uggyr֑_^^Ro+dYN;ydbJyYo#FΞ-vN;41{jzZjwddb02. =$h%,z4gWg/U] W3ߒio{>TH,Z;$j55Dde>n?{Pve:ifsiMߎ (.@M;./?aG=N)C~9ۛ7aNVgtP;SoF# i oLUH5qD:Y:5}\A d*zaGoBE-Avy({EoWf7cQt'"ӄ-':@kStG;tմݨx׉|by'v2~w@teSMj2X4|M"tL ,"+|MvCu?\G}!9? !*)T7C~TCŕyr}Rd.@%owrv`rYJOΛʲ 1\WMG\phmO&Wĥ]%EÚqm\}dKc{)[kF/%匃x!lQT 3yE`dh" :eD"B'7͹5?F3"q` 3w.|tU]6TֶN[+I25kc30L/j454-!9ʴeh#fV KBBӡ N)G)w(!+;*d'3U .$e5&fgY 3: bV\!]+?8lu(/E x*vƀWonVD?GOv+xl~ .k眺\k[{;ECھChkXg09bV \ $Gsf6+xDAcL0/\ǵa !Gk4:N.̂Bv dH!ɽnyDy W3>I$I<"}ŽyVl؋9bvk,%Ufї/AXhRu#TŞUNc-)TPts oa;J^H^ $_V ̿F]o Ge9&PF? ݬ2Ynެ Qݼ*w=ikL ^^<t*بiFkhSxzLp7OIT?vTRyeD'/"PL0Sr\&)̀4,' 06 T$9(/:M{"躗kEUL1&r)uK-'im'G;oTN}SU*;e;?"st*R# Yji 9HOx͌V>23xrTl|3~|KbݟB8/qH.~slI!û<@}rD_;AtGIeڶiSצG.r!q{=vͷM?kaz}ۮ9c3Lgn^nfY T/]\tтG_=b-~Aw \N?ǻyg~w;]>f:;Y|oOogş \d]띗tO[Bz}AM9Yy)U^l,DNZl=4(!G4[5f[Q_ij_hSNǗׇRk-,%t>q钔1;fUW\uֹI˝92/퓭ŕ0.z☑I#Sc7e~bݷHkIzlqsZ ,LTtdP1`!T*`И ʋhR:ڹ ,G2;!\Qh@$`fBHY%7~"aRJ",L9rdɭK/d֓[D]©~w=*)ˢ[hwk(9pQg4ɉ$Mumb7̯ G& ~&EQC>b 9 ɍoю_o" #O=u."\}4Mm=u\V'; o>mM\u"q/̭d}q &$n`^գj2B,qy>6{df4V %rNyDNKQE u7AȐӻw&hYjblڌnw9윬Nh{w+2jH{wȠ&ܽ?ݭ~O S986+vH "5VŮ58Ɉ dG=Hg/Ҁ3_>\頏Ӊ.T EuKCRPQJ DUO7)` fz& Dt_?2  ٢!ܠaqQ({9 r dU#gUɼ,=aXUؑv۱#?nyl\G$A a۬&oj~K$Ceio fO>?*C#Nf{9Y|(?9_&;&;1)Օ :(92g"L.ernTPe.PЋ൐Fe܄;7 `bU-w̽~Iz*6!a.} ՚lJϷNn$*Ixi wJ kR0W'M['+Flk^]=<㶧rmѭNQnJسhIBA2"FɤbwZwV:Ħ?F|WgllO{׻;.*nM;,g<ͭ (`Y >9&?CQK C!gf+gK0zqQg zu-5Q#0#D]9d~^N dKhl~[y &P)5E{Cq# uFjA덮UWGWVTY I'ש| Cz!tvP@Sie>>;:y?~ m!ɚ}a҇˕Oas?7֕DbߙEht/rsA %3I:3t*]a2YͣLt,KN$''۔!k;-ruUU ^v o{ic^ *E`\q>VYu/Oq۝0й&hw;]|{ 9:iiij:7EzvK#Ӟ+G ֎p3w{Uf'DELpgI]јPG:oto*RNJ;WG,Vb%:V2{g{93P_ T'95bNDV#QvU 3 Rl3H>뙍^/G6] PˡCP&!5FQrd@;*UBECpCT)t2fQm?ܑT)cr]EReᎤJ*I|'܍(8._w<.}TA>_G,B>Ć{`'AϠ\D S!$.GH#6'CK,AHfRQ z9"#@_E?Lk\?ǪE[wص\8ݳ7b~6*Wg==ͫNOɯm{~CG\1ԕΩjcF6>UEຯ[kV=֯ T||,rE}Q1|ryyz) X A~(0}xI"k #2zqIiL[+fİO8}UU0@[WG\3hK, UY*HGb"` %d) @7Y.E]Yf7lA#.G![vWQ0űDIsHQ=v84OvTFvP@]Y#c{h_L|㝮cK,/N\#6t_ (%sj>l +B?OWzʟvO=E'{)2ڳ˟_I&椄9558|ЋùQ8n"7 .J>Pl.:瘄 61 ˝>V]_ mag6Ũ ȣG*ól9).\?as~Fd[x#$1+o%E>U3p\U2r`ӛ"_)sMcGuWWk>ӛ}ke=fڛ{nwf^xXmMM ճs)O4KO}5cqԄ}TƂI X" ,Y@ҒסoDD+ J 'ښޚA,&ۤ '}˭o-zVoukA+4hq%_hb5M'dE,+uS޶ϝc%W5O8-Hw x~γٗ cЛɚ?e*NЃE:~^kϏZECO'v]KK )U)ΉecX]BԤja!ڕdAZ݅?y,!Q0ό ;쮤0]|~^zfϬ==k7:ztהz$ڭzgC?$y7Q߳gϬݻ/}G$ cVNUYfȪfr ,CjTBH٫GT.{1|oRځbuA4=o}ym&;GҟFƋ`TOz|2I!.\IE Dz%t%_<_|9Wd蛱/1?_"vT.bUpaVB~ a"0:B+1`{#f!(5=gu5vlɵ@CktѲxk*c+c 5$(h ހ WnN+edKA }H'@ƐKe)颶(ķxЉw^xON21W5FoV@&Wd;ETMTRsv2"*hk@9Ȫ$fY7[,iR5T~-*?͙c.\8N'/w;+yWZk}SnFlֽo?WCdW[I WtB9`Hu޸ZWFoQexV9 &p|\jR7W2-kj;^˹MQBD`cux+/N17x; `g)Mc&Ѫ}w"(Ð8@dE "IMѾCx-ڃZxLbBr(9bf;N6f)3p D9rQNh@k  oh8u,:,oh_xS`Jw+YY]^% '0} KA S`/P]­6p[λzY `dEvfD+ z 2#h}2)2k4#CrV:/h%:vq,*}bR$& )M?f~Ʒ֭{~KO}kݕ%W7ZP?8鶀ak?˵\lg >t])'S%|'"%7!XS:]nzYW]YWC5V`;Yz/[16i/5 [*BSߡIZjwu\DI"Cxk>!*|L1*ϴ5"]73Eߊ+һocb2Nj֝;3DJR=@`}GٕHk8Wg<-`-gȿsL;Sqz< .洤\-3/~EozvKvcfZ.l.){\rg&s J(P?K'^uPkt֗+-ٮkz9a2w+Zմtzz~H].iˡ-LnnrOH 0 0Vr &3~hHl ΝZ"+d`H_N{?z5vhV0 0:,"h#YRd?RCė!y`2хv[L^k]0i1 :n^~8 {7z}*Lh5ƫ2569ETI@9cCЏ;reǪ *9!W Dz$g_{i>yb)coO%Ya+HjMKO=~'浮e@W\JH}]x$c'MڝOI>#߱-x3t r#o [HJUt i=J gi7Dդ\4⍤Q,+}hBT@EHH*ܵzBUB6ߑ-fUhZROa-mT!WI-Uq!6Y/=VQ D&N8Yx~ί?ȂwN/XHB2&-MMUЯK fy>p#́?f=GbZ_Զ'GYcI1Lʇ#X)Ld 24)3K7ctw: &BA &>6eW|mk2Xas6YfۘSkM)7ט%}n^eOZj'秩$)Em lÖD/^aG}?vsjڜS{ dԡ4!vF$'Qv%ٗzfHIㆮK fm-@byyWHXp4" Ff06?fGV=HC/JЏv E9Fq$NzX͌a$ɮDd@" 'lMiAD8h0h! =)%{Jܚi?[i/xJ7Ig0VbL)-!lv% ` VV~hCgp f,α4yM&WG#ՑHbzne2[e xDm!_~>zhˑc%9'1{G5qTx9+{>DY82#ߏ9(Z`P틣~4 rd~ˍE@b#R%6X"^O+:fyfg}}OX9NlizB=CqM9d!LFİnTą Dx@T<с_ɋmoxNwh3J2to,Жh3XDDx$5!.ԗ{xkB^S:i5@u^#5]xlᙆH|wQ[j4$MҤiӴMC[ZZ>ã/Be节պ 2*C[(uuUAgwvqGv(q97>ڛs?" Bt2_JNL@2&< j"h&#(f,$п4MpIah 5p@"\&9+IEehNWˑŤprm!yŒanTB&: iԻUR\BYM ͶrtBŌU3gEX67-I,ѩ%{0RPDW ]sEx^df.M `dZy6\ÛSe`gO8<'Q䵗R CN@%gGL ,/ M4I +i!F d7fj VSgi-iF%݈LΞ;m״7 魲a]uӼ&ənj0Iz?ɰxvk i3Lt ojYbi'5 sZifZ˨rT@F+>Nr4{ NS.g{Cƣk0|lBwAs 22<|I'\%>olQ1*@3V06M7:FDy9gdh5ٲ‚ȭXzq9攕9P4,;q~겱Wwjլ ڔKW( &#]r~fUMsm-v{Aa&NyCvI0O7ϫ-}1 )D? -AQ RpΌANA_;rFhxN+AoI\0+ \`^ݿ}Q[o([W=.rښk`Ԇ]GK-+6mK2Bc /^,;r3w=Bs64lKݵkUԬDMzH׵;],5::KjMU%fˮ]'&?M/ߕWps:fœO%cfђ&F @ ? J3?=%"yڥyŠzҽ|+8wy^tt;&Jc_ܲԑR[~=8 c*]ׇͿ <3,n鈮~Q670>eX<\ g1vy|OBZV9ь)Ӡgpv&axo6|羺ԁͻ i>0P~'N { jZhʔUNf0&3-#.ơI|z/|d;Zb60^xhvkwבpuS;Z=­j|!1j[8O\_3`4`ȲRJ$B?)5 ?tɾǛq\X|sWTnׂ J:2ZqL>}REl?H-\Xpp =ȿ=ft i4XbN,^_ Y,"9%EXOl"d1a4C]h7u^_=< FG ٗ!76tlڀGF3jzay8O]P̢[.aXȽt4u/'@ >3yr +PY.<gxm _?-ؖYP|10lGya @]{CJ{wx<h5o}_jWHSǢ T/X՜t/\qBm%\m4m,A6'r 6r{a;loĩ~855.Z0bD6Pv   " 0 > L , b , t J 4 d ^|2| Hb>Pz R N2B L&^2:j4j>vr  l !!!"$""#`#$V$$$%%@%%%%&'@'((*(@(Z(p(((())&)*H*++,--L--. ..\..//\/00T0001161X12v223 3344466J677J77828T899R9j99:<:t::;;f;<0b>>>>>??~??@P@AvAB&BdBCCbCCCD2D`DE EHE`EFF@xc`d``dc L@ `>xڍRNA=c,,,F5!*"h.2"0S`㙻!lc&3{{<F>684~5cHiC>c>S>sKk[{~G~g~W~wOoadww bQ91+3,f٘J^%WɫTr*9JN$9IN$9INdgg,'ɞϞ//~")/_<>'|.'|>jrj9ZN-x6r9FN#iis_collection_registered( $new_collection->slug ) ) { $error_message = sprintf( /* translators: %s: Font collection slug. */ __( 'Font collection with slug: "%s" is already registered.' ), $new_collection->slug ); _doing_it_wrong( __METHOD__, $error_message, '6.5.0' ); return new WP_Error( 'font_collection_registration_error', $error_message ); } $this->collections[ $new_collection->slug ] = $new_collection; return $new_collection; } /** * Unregisters a previously registered font collection. * * @since 6.5.0 * * @param string $slug Font collection slug. * @return bool True if the font collection was unregistered successfully and false otherwise. */ public function unregister_font_collection( string $slug ) { if ( ! $this->is_collection_registered( $slug ) ) { _doing_it_wrong( __METHOD__, /* translators: %s: Font collection slug. */ sprintf( __( 'Font collection "%s" not found.' ), $slug ), '6.5.0' ); return false; } unset( $this->collections[ $slug ] ); return true; } /** * Checks if a font collection is registered. * * @since 6.5.0 * * @param string $slug Font collection slug. * @return bool True if the font collection is registered and false otherwise. */ private function is_collection_registered( string $slug ) { return array_key_exists( $slug, $this->collections ); } /** * Gets all the font collections available. * * @since 6.5.0 * * @return array List of font collections. */ public function get_font_collections() { return $this->collections; } /** * Gets a font collection. * * @since 6.5.0 * * @param string $slug Font collection slug. * @return WP_Font_Collection|null Font collection object, or null if the font collection doesn't exist. */ public function get_font_collection( string $slug ) { if ( $this->is_collection_registered( $slug ) ) { return $this->collections[ $slug ]; } return null; } /** * Utility method to retrieve the main instance of the class. * * The instance will be created if it does not exist yet. * * @since 6.5.0 * * @return WP_Font_Library The main instance. */ public static function get_instance() { if ( null === self::$instance ) { self::$instance = new self(); } return self::$instance; } } dashicons.ttf000064400000156110147206410120007237 0ustar00 0GSUB8BOS/2@O%|Vcmap_>$glyfqdE@headf6hhea7H$hmtxPlocalAmaxpo name+_"post#2\,. T_< 66 T  ,DFLTliga fG fPfEd@G.,, <  )9@B )9IIWY`iy )18CG 0@B 0@HPY`bp 03@E<vx"""0BTfnt  4 >JKHILGO. KQ5EF\GW*ZX]g$'.-JR $%p&'() 2M34H[i: OYEAjklmnr6 TRt"#7MSPywvx~}hBCDSQ98 L/0q@P1+N5s76D%&+,()"#:<A@8;=B>??uV*o-z{9/,!U<3{|;INC!bcd^_efa`2=1F  0 V     4 >JKHILG O!!.""##$$ %%&&''(())K**Q++5,,--..E//F0011\2233G44556677W8899*::Z;;X<<]==g>>??@@$AA'BB.CC-DDEEJFFGGRHHIIJJKKLLMMNNOO PPQQ$RR%SSpTTUUVVWWXXYYZZ&[['\\(]])^^ __``aabbccddeeffgghhiijj2kkMll3mm4nnHoo[ppiqq:rr ssttOuuvvYwwExxAyyzzj{{k||l}}m~~nr6 TRt"#7MSPywvx ~ }!!""##$$%%&&h''(())0011223344B55C66D7788S99Q@@BB98 L /0q@P !!1""##+$$N%%&&5''s(())00711622334455667788D99@@%AA&BB+CC,DD(EE)FF"GG#HHIIHH:II<PPAQQ@RR8SS;TT=UUBVV>WW?YY``bbcc?ddueeffgghhiiVppqq*rross-ttzuu{vvww9xx/yy,!U<3{|;I NC!bcd^_ e!!f""a##`$$2%%&&''((=))100113344F556677 88@@AA BB0CCEEFFGGPp0TNnR@">Rx  . @ L ` p | V j  d  @ff lp,&H `v0P<nBt6NfvB"b,d&Rx8f  P t ! !B!"L"""#D###$j$%%,%j%%&h&&''>'~''(P((()).)b)))*D*l**+B++,>,z,--2---.p.../L//0L001 141\1112B22233Z334`44455N556"6d667$7H7^778:8r89969P9j9999:n:; ;~;<<<2<<=N=> >>?(?f???@@r@AA@AABBDBBCCZCCCCD4DDE EDEEEFFTFfFG(GPGhGGH H@HpHHI&IZIIIJJNJJJKK8KLLM@MtMMNN4NNO OZOOPPBPdPPQ Q.Q`QQRRRvRSbST2TXTjT /%'767'7676?676227s& 9 ".   #!  &  .   $    2".4>57\66\n\67\i6\n\66\m]6b32+5#"&=4633 3656'&'&"17>767676676767676  $,$/ 3 #T  ,  -(  #  0%,$    "# '0%#'#5&''7&'#5367'7675373264&"8(6(M(6(77(6'M(6'8 --@--'6(77(6(L(6(88'6(s-@--@- ''753!55#'f4f&'f3("8'764&"&6?>764&67.6?>2'9j .j'99Չ j'89+(8j!-99'j. j9'ډ3j9'+99'j.!*6%54&+'##"3!26'2"&463"&46325#53"&4632M +"f"+   %%5&&̀%5&&Mf3%5&& 33 &5%%5&'%%5&Y%%5&   %)-''7'575#''7''7%#5%#55#!5#mmmgeffL4mmmmfff̀444P``pp;WXZZ4++g__pp__pp3YZZYYZZ@3333'#'7&67>264&"N$0M&M BB'BA U_3%Qz 7!3!33M3M#'767+"&4?547676PS0S d   SSS0S4   c"ZSS!7&'&7676?'76?> //1 .>H H>/1./ 1.>H G>/ 1+G%4&#!"3!26%32+"&=#"&46;5462#"&46;546232+"&5  M             f4  &&Y&& 3T\"2>4..'67&"&'&&7676'32267&'&765&'&'.'&'&676767667>j>>j}j>>j ,   %!  5/   ! I >j}j>>j}j> 3      9!     6* $,'Bl   (0<k"2>4.67#&'&'.'67>76'267&7&'&/..'&'&'&'&&'&6'&'>>j>>j}j>>j       ' W F2  "   #  Ob0>j}j>>j}j>           $  %  .;5 #(.39@ELRX]ci"2>4.3#&75#5'#676#67#6733#&&'&'53=373#675&'3'#&''#63&'673>j>>j}j>>jA7& ]#G&] &A7]R [&iF&\ &A8 8&. 0  - - 1 - 0>j}j>>j}j>#"!P% #"#ErP %cE#"E$!"FE"CO% ON %rE#"E$!""$""!$g$+A$+#,B#* :H"2>4.6'&'&'&'&'>7&'&'>7'.'&7&7&'&'&'&'>j>>j}j>>jh  =.fA    3O" 6   >j}j>>j}j>L,"  # ) >O  P#.&Z+   '"&4?&>7264&"F 6& 2AJHJ &5 E2 JIJ@)"'&'&/&76272"'&/54>3 M F6 #"0S0""5  & &  B/"6@  @5!;&'764'&'764&"'&'7'7>/764&"'764&"'7676Y> .    :Z P.@    a b    >.P Z: "   1 =W ';O5!57>'.5!#'&'5>>.'.>767>'.>767>><4ELc2X 7 -S  R3 (!  A 6- 3Tl41C f  ` 7  a    7    !5!5!!5!Mf33f3f3%!!5!3f3 !5!5#%35#35#!5!MfMMMMf3g333 !5!5!!5!Mff3f3 7#735#35#͙f4̴33 %#'#3#34f4343 !5!35#5##35#!5!MfMMfMMf3333 !5!5!!5!333f3"P[%#"'&326764&7&76327>'672?6'&'54'.#3265>"7#"&54ISo\*h8-U%+' ( "#%, *+(Z  6%'  #  %4  M  #  ' #|  +!%%!!5!3"&46527#53#53#53!5!fg4M-@--:gggggg43fMMM --@-33g4gg !5!!%5#4f44M37'74f33fffg7'3f4'gf3!'7ff4f33fg'7f3Mg%'7Mge75!'7'733ff4f33fg?'73gg͙fge%#'7'4f33f33ffg%''73M?gfM3gM!-767676&'&7>76>76'&   /2o\ <%&@%) $(      A6:3:51*3/S!'-7?'7/'"&462'"&462'73%7'#r4;;43 ;; [*<.'>&5717'7&]2:3\m1$2 * (%TF'-KTF0 .\m>Ms\mc::$2-KTF'-&O2: {{R6 !53'33'33'!5!f@3@3@fg33(5BOk&'&'&'&''&"2?&'&%762'&4&4?62&4?62"7"&4?627.&'&"33264a!  % @ n % 3 Jn n *n nn nm ( $  $$ @ %% o 94 Ps q n* n nFq om * &  %!%265#754&'>7."!5.f{*""+33;#7    7%8' @@&5##5##"!54&#MfM f f4444 7!!"&5463!!"74&"26M -- M >  M3-4-Y3!"&546;#"3!3 --  g-4-9B354636332+"&=#"&=#"&="'"&=#546;5264&"3/ 3 - 3 3/M*  84  44  48  g - $5Bu7656&6&#"3276"2>4."&'.'&4>276&#"3>"767216327>&#"4?672632#"'&'32>4.s] -7_77_n_77_7(G4XhX44X- [&E  !8#,-2/N//Na*7%#}  ,+7_n_77_n_7s5hX44XhX4} ,$  v>{+" , /N^N/ &3<L_2".4>"2>4.2".4>">54&"264&34'&'&'!6'&'&'&'FuEEuuEEuFBpAAppAApB;d;;dvd;;di'!,\,,>,,N    666%  EuuEEuuE AppAAppA;dvd;;dvd;, 1 (,,>,,>,   655$ )Ok4'2674'2654&"26754&"264&'"&=#"&=276767>27>76767".= g ggf1(  (1* " *( * ! 0RbR0     Y  Y  Y  Y /?LL?/8    -o  M//M   #/G#"&46;&546;232!2#!"&46!2#!"&4632++"&547#"&46Z))4  $  >   M  ML-=AEIM4'&/2674'&/2654&+";26754&+";26'7?7?   -   - 3  3  3  3 33333333l    333343/'#'&'&6765.>27&'>7656" 3DC6 #)3- ,>- .5 )`J##K !? a;D;##;D;b@! 2!767676'7'7''70S* f$&__ : 3_X @ KG !n tGI hjNW`n{%"/'&'&'&5"&4?67&547>7#"&4635462354622+>7'264&"7"264&;264'&+"4&+";263264&+"3264&+"-?     ?-#!&  4  ' "" W ED L LYLL@- &  % -@ /: ":*   *:" :/d3  @ ;  3   -=&"2?>&"2?64"/"&4?624'&/;2  =   k  k.     "  =  k  k.   )"'&'7.'76767&327'267'#"'t+&T&+s9&?3 /1v3(#&@@&'R$$K$1 J ~,.- #'+/37;?3!!#53#53#53#53#53#53#53#53#53#53#53#53#53#53#53Mff33g44f3333g44f3333g44f3333g44f33ff3333M33333444443333333333333%.%54'&'&'&#'57'"32767"2>&  )+  !/2F>$' %4% 'O@ ,!MM!,  @{:N00P8''';676?4'&'&'7'"2>&R88/+''+))))$' %4% 'M$$M %>>%)):N00P8GK%&'&'#'7"776?54%267&'&72654'&'&'&'&"'7\\: ".))." %   % j g;;;6^\89HH6E !   '' ,!"3!26=4&#!"&=463!2f  f    !*3<EQZ^!"3!2654&"&462'"&462'"&462"&462'"&462'"&462"&=462'"&4627!5!      M   n!   f \W\W  Z  8WW +/37;?CGKOS3!3546235462#26=4&"26=4&"!7#5;#353#5;#353#5#53#53MfMf    ff3f44g33f44g3344f33@@@@z4444433333333333+/37;3!3546235462#26=4&"26=4&"5!75#35#35#MfM f     ff343g@@@@32#!"&546;73264&"K  j  KMf3*<"264&@  \).@"'8 %2$R$2%  B#! d"36&!%%%%#$  MO7767676'&'6>'&'&/67676&&'&&'&'&''&'3NFKM      $#   !+$ $,( '%("35 !     9     - -( 'H;A"+732#!"&5#"&46;2!#2"&4632"&46  3  M Lf     3g     !!3#3Mf4MM4&/8%>54&"&"'654&"2"&462"&462"&46 * j 6* L   3; '  M %####5#g3f3g3f 1!7&54626327&546327"&='#"' ~l % \ 1U ) R     52'3".4>1R0ʹ1RaS00S0R10S00SaR1-6:>BFJ76"/&4?627&76765.#&#"&4627'7'7'7'71# $~  S$  $B  ~ $2".4>2>4."7/18^77^p^77^8*F**FTF**FsM7^p^77^p^7*FTF**FTF*6R{{  654&#"&#"3!264&'77{<*1  &#,5$%5/R$.a$ *= % 2"$66F4Q$.b$!654&#"&#";5#7#3264&{<*1  &#,5$ZMssLY%5/ *= % 2"$6MssM6F44654&#"&#"3!264&}<*1 &#,5$%5-*=% 2"$66G3$IRx54&'>=46;5#"#2;5#"&&'&'6'.'&765&%"&46274654&+32+32654&4635"&      . .$'S d,    +<76?'5/.   , \./5 ,   \73#3#M͙%7'3]]]]55]]4]]733#MfMMf44 5!5557!'73gg3ggMM&3ML3M&3ML3 7''#37333=\\\{{3{{ 7553#5͚33]4]]{{{{37'#3ggMff&E37'#%#"'&67367654'&'.>##"'&>76764'&'.>33ggE       '       Mff #^#   #6'  (   *  8<!2#!&546!%47676763#!"&=27676762!!8  p     $ 4  ) g   g    3 (09BK7!>54."2"&462"&4632"&467"&4'2"&46!2"&464&"26`@7^p^7 [  V*g > ufB#8^77^8#B4u+7M 0CO264&"7533##5#5467#"".52>=7#".52>=#"'3.'.5f+<=7#".52>=#"'3.'.53264&"7##5#1R0W\1R00RbR00R.1R00RbR0!, \A[0R+<=#"".52>='3.'.53264&"7533'1R0W.1R00RbR0!, \1R00RbR00R1A[0R+<=#"'3.'.5".52>=f+<=#"".52>='3.'.53264&"'7'1R0W.1R00RbR0!, \1R00RbR00R1A[0R+< .?2>4."".52>='".52>='".52>=1R00RbR00R11R00RbR00R11R00RbR00R11R00RbR00RfM  MfM MgMM!$!2+32!546;5#"&5465!73Mf  3  3 X 4  4  紴f 2".4>'7''78^77^p^77^MM3MM3MM3MM7^p^77^p^7MM3MM3MM3MM35!353'35g34MM͚40&'.767676?>327&67626&  JA)   7* !@$7    @ 377/7676!"!$T  $ !!"!$+T  $ #!5#'.#3576&?f3d! g@q)3C!͚f @q) ?677'dE ͏=gE P 5#5!5#5!f33f33g33f33 5#5!5#5!3ff33f33g33f33 5#5!5#5!f33f33g33f3332654&'5>54&#532#32+t5=;C#')8+3-!&',)J'8*3!'733怀MgfM '77'7ffMfffff4ff47'7#7!75#35'!'3:: f `f` f :: f `` fS`` g 99 g `f` g 99 g$235#67654&"#35&'&'&54613*^%UT%] 3v751#33"'/DOPC/'!33 !157 3#3'735'75!#7'g8aga8";aga;3ffa9Gf9aG!_9ff9_ %.4."2>'#5467>4&#"'632&462"0RbR00RbR0(   !%%&1R00RbR00R   ! O "53753355#%53535335353Mff3ff3泳fM33M3ZY3333M44L33M33 5!5#35#35#5!MMfMMMffg444444ff #3#737#73z6H66H6f334 !!!!!!!!3ffff3334333 #'+/37;?!55!7#53#53#53#53#5!55!7#53#53#53#5#5!#53#54fM33433f4fM334̀33͚ffM4444444444ͳ33333333L444444!$#";2654622653264&7M 55  5?5  3   Mgf#S\`dh6235#767654'&/&""#6򥊢'&#"632632+32#"'"'26542735#35#35#35#)H,  1        '3! )       #Of ' (,RV5#?73#5#5767>4.">273#4&#">32+32#"&'32654&'5>3#! I ,    f!      !Mf  E3   2K   "5#5##553%5#5#5##5#5#ff3ff3泳fM3333ZY3333M44L33M33!#";2654622653264& 55  5@5  3   M$,!57264&"732#!"&546;!55#335=CD< '   '44L4MMM  3 <<44$1!57264&"4&+!57#"3!26'#'#'3737=CD<  ''  f M335134MMM3 <= ش'74'&'&&67'32674'&'&&67'326 -##;#)2%!+ -##;#)1& +F24;C/7'!F24;C/7'$"/&=4?62764/&"2n-9-7768677!$#";2654622653264&5M 55  5?5  3   Mf/7=EK27&"3275#"&463'#373732654&'5>54&#532##76732+7''  -"$! 9:;67  n,df $&)8+o @+  ( $  MNAGORZ%267#"'&'#+5##'##7#53733532367>2.#"3#%3/73>4&#1#3+3264  !7$:".- ! .   KK p k,1 @@++@@@@      U* D+  %!!5!#53#53#53#53fg4Mf3444333 %3#373'#7S0i4f0k R&M'} "&"&46273#"&46273#"&46273# 0@ 0@ 0M  3  3  3g#"'&=#27655#f3$63y%'#- ''-33!58;>'?64&"'6?>'3''7.6?27'#'7'' 6+' .= '99͚4f3ͽ#89+$<'!-͚4f399' *'. ?7 'Agf3<$+98#(-!gf3 #'+/37;?CGK##5#3533#5!#5#5#5!#5#5!#5#5!#5#5#5!#5#5!#5#5!#5MMMMf33334"&462%"264&#"264&**3*******-%54&#!"3!26'"/'"'&?'.7676g!hd p67p dh  `h_11_h`  7%>=4&'&7>7>4  {.z.Ks :  !2#!"=47>.'&cS000ڬ  ....ݎcc#)!"3!26=4&#"&463253'757'5fM* ff&&LL&&MMg+n&'&MM&'&'M!"3!26=4&'757'5fb&&LL&&M&'&MM&'&'M$-!"3!26=4&#53'757'5'5'7264&"fȳf&&LL&&M.4 ͙s&'&MM&'&'M@&.>-39!"3!26=4&'&76?'76?>'7&'757'5f ! !  M &&LL&&M " "   J0&'&MM&'&'M#!"3!26=4&'#537'757'5f33f&&LL&&M$1."g&'&MM&'&'M%)%4&#!"3!262"&46!!52"&46!!5 f    W4 W3  f 3#35#7'7'M33ffn$$n33f4n$$n3'5'7#57!3#3$h334fO$M33o73537#5476;5&#"#3K> H & *3??3I. A3-6I$!2+537#546;5&#"#3#"&546Jl h5=  %+55  >'8+'-> l #!2#!"&5465!735335353353  f MM  f MMfMM576762'./5M!!.T.!!! 337#7567'&'&'&3M#.1+#+51&3 $0C"#54&"#54&"26=>=4&3265""26=>'4&  - -%& @@ @@ T  T  ,2#(  (#2 !!!5!55#7#̙L44͙̀gf%6"&46325#"&4632546 4J55%3"%44%3 %55J4 3 ,4J5 &#"5#"&=46;232+'#"&=46#M33Mf$/MMfLL&BK32#!"&=#"&5463!2!!4&"2667676763#52767632#+2  2  K   3      2 K  @ c ͚      >!2#!"&546!4&"2647676763#!"&=2176767632:t**M       tgf+k "  3    )74'&'&&67'32674'&'&&67'326 5)*+#& ;+'2 5)),"& :+'2!%R:"&-2lA-'!%R:"&-2lA- '092"'&476264&"3264&"3264&"2"&462"&46}90099009     = 0))00))0        3  !2%46373#37#37#3!73 4q43M333M f MMMMMMMgf #&),/3#7357#53%'7'35#!#53#57#7'533&M̀&''@'M3&'M''Z&@&Mͳ@&@'MM'& '''g'&&'M@& #77'77535''3'7.E'H.H'E.s'E+.E..H̀.H'E..E'E+'E..HE+.E 357''375#!#77'W$H..H$H.H$H.f.H$H$H..$H$H.H$H..H$H+4=.+"76767627>'&##5#53533"&4627"&462 (( '&   1 s+85W      W58.& *   #3'.'&>727.#"32>5'&pA(2E9",#;H&7^88^7:Z1&L(1E2";$87_n_73[:!2#!"&5465#!5#5#!5#3  f f3f f   ̙͙ !-;J2>."2>."2>."76&"26'"&/&63272"'76'&'6 " "n     1j2 '  " *- -* " **#)$$$$n/88/n &6a ](//(] `7&'7&'"/&47%&'6$Y$v;Vi?^$W$!x%  " #5#3533@@@@M%6767>'&".#&=1,%:11:%3,1J+)1/U..V_)+&<@&"&#764&'677&6762&'+6267>7.26 >**I{",+ E"1/Im    !i< ?q$  rf*<>J? (+ H !.BK8  ;  39;3 f<)%#&'&'67673264&#!";#"3!264& 0.   0.   f6 ''!56 ''!5 #)/575##5335335#53#353373#5##'#3#533'77'7f333$_!3#&L3;;YY.;;YYf4433ggWWP@@Pf:;ZY;:YZ #<@DHL%!!>?6.#"275#5#'"276?54.#5#5#5!5!f  рW#  MMMM43     C3/  4L48<@D%!!>?6.#"25#'"276?54.#5#5#5!f   #  瀀f4t      ff  533%##5#5#535337'#35fMffMMMfgfMffMffLMgf4&"26>.>.f4.#"5>@529925@4.".4>244  ?j==j~j==j?1R00RbR00Rff=j~j==j~j=g0RbR00RbR0 2".4>4&"265#8^77^p^77^R47^p^77^p^7g ܚ %)73535#5##32>4."2".4>!5!4334331R00RbR00R1#;"";F;"";f333330RcR00RcR04";G:"":G;"3 %)##33535#'"2>4.".4>2!54334331R00RbR00R1#;"";F;"";f3333330RcR00RcR0";G:"":G;"33 %"2>4.".4>2##33535#?j==j~j==j?1R00RbR00R4LL4LL=j~j==j~j=g0RbR00RbR0L4LL4G_4&"267"&4627"&462'"#"#;276767676=4'.'&'&#+"'.=4676;2E(:((:($=X==X= %" #%%#  #%!"63%*.3%((:((,==X==B 1  "% %"  #$%#T3%!!--!!- !2#!"&546!!'#5!3!26Mf  Y4Mf4     3ͳf  3#3#73#3#!!3ggfgg?7M4gge 22+"&=4&/&'&54>53++"&5#"&'B'   f   'B&  3  &B'    'B&j   "73#7"264&5#3547>354'&'&@MM&'LL*M!<3~&&+1 %)26?C7!2654&#!"2"&46!!52"&46!!52"&46!!52"&46!!53  f = W4 W4 W4 W   f 33f33g33f33 %7>54&"72"&467'57M&5% 2>4."8^77^p^77^8#;"";F;"";7^p^77^p^7";F;"";F;"  %.!3'7'7'726'&/72"&463gMMf...M...M...' 3  ggM 3  4  3 f  =   '!3'54&#&+"276=7&3263gMMm M  ggM WU;  !'7'37'3g̀33MMfMM33g34MLLM43!3'3gMMggM  #'!353'355!355#'355!5#3gMMfffgMM3MMMML4#!3'5#3373/"&4627#5#53gMM3LM vMMggM癙4444L444M  $(,048<@!5#5#35#35#5#35#35#5#35#35#5#35#35#5#35#3g̴MM4MfM4MfM4MfM4MfM4ggMM33334 !353'355!5!5!5#3gMMfgMM3M333!3'54&+";2653gMM M  M L3ggML  L 3(;O#"++"&7'#'&'.76?>76#67654'&'.'6&'&'&7>9M  ,&:  !!  !  h2! 9 #343   *(n   7!5!!5!!5Mfff4444 7!5!5!5!5!3334 5!5!5!MMMMMM 7!5!5!5!5!Mfff3334 /54&"26732+"&46;5.54622654623**gI73   36J4&'&'"2>4.".4>2        &7_77_n_77_70Q00Q`Q00Q   $$   "' 7_n_77_n_70Q`Q00Q`Q0&;IR!#4&#"&#"!72>?6.#"54.#'"26?2"'654&'>462"&1"(    p ! e))9 #x%%"1      ):)Y%5#3'35#'735#7#35ffLffLffffLffLffLffffLffLffffL26?HP54&+";26'2"&4654&++"&=#"3!26'!54&"2674&"2627"&3 4  4 3 MDM4  M  &~&:N:M  M X4  U%32+"&=46;5#32+"&=46;5#32+"&=46;546;5#"&=46;2+32  f    f    f    f   L  L 33 L  L 33 L  L 33 L  L 3 ''7'77[[$[Z%[[%Z[[[[$[[%ZZ%[[ ''7'776[7Z[6[[6[[6Z7[[6[[6[[7'#7! 3'3M3f4<E267632&"632.#"#476767&#"67632&'&#">4&"26   *g!25!*/,/RD#(, #L   $1+& )A F@ZC=6)%25' # >&/.6?>"&4?64&"6?64&''&'&67676?@~0 ~~~  0,  1BBBB ?~0  @, ",2:7#3264&#!+#532+5327#3##535!533#3264&M.i$$_3&&Mf  3fffff4 *3<E7!654."7462"&462"&67671"&4462"&7462"&7462"&`@-7^p^7tN&%%'- }M8H7^88^7H ) L (LN  -   -9J27654'&#"#27654'&#"7"327654&4&#"3267"32623254.1  P   "#R9&&42+&9)'P55-A!!A- -8'&6?6767'&'776?67676''&76?>5  M  gq  :`  /p A   M f N  q.  BY  q)  A   M  ="6?4'&67632#&=674&1676?32>4.6(&' !37#    '>"+IE(5 P!,+" 0"{'2,$ *FSC& )-15!5!5#%&#"26757&#"26=4&5#5#( * gg33f33g443u)Y)33f33 "&5!5!5#732+"&=467'5#5#gg  XUUggg33f33g444  43M33f33"676.5&'&'&7676.76&%2?3276?'\O.O y=:6EN/A O.O   a }O.Ou`02 >EN3F O/R# b    .>535#5##3)QllQQllFggLgg(llQQllQgLggLg ##5#53534444 ##5#5353MMMMM;%'&4632>54&"264.264/.>676&Ri   .B.i#"YXD"ii0BA! i   /.Ci !CZY!iiBA0 \% 4}7C#"767>;'&+"#76;2#!26?6&+54&+"#"%#7676;2fR ( T tf7  + R aq ,=p:  di < #  % $ g15.5462264&"f+! !+264&"3276?z"11" ."!!0!R S 0E1%'"/"" S S #'+/%#3#3'#37#5!#";!5326=4&#535#53#533MMM33  33 Y4MMgg  fM  8"3'656&'"35.'>75+"&=46;5>232  ! EbOObM  (6(    $$ n '' UMMTTM  g '&&' $+3!354>32632!35471"54'354f";##;"3 -- M433#;" ";#33*#-S3 -#*3l"33" 5##537353'#5#'735gfM3M3gffL33338.3L38.33-6FO%4&"264&#"'#""&"32>=>462"&'"'&762776'"&462<<C GB6 & 0RbR0 (%*#!" 'a  n'% ":"":"  G,355#";#".4>̀*==**F**FMgfM4.".4>2'35?j==j~j==j?1R00RbR00R=j~j==j~j=g0RbR00RbR0445%"#4'723264&">54&"3267332656&'l %%5&#,A,<*. x(.-&5%% l' ,, 'x/+<- , !%34'&'&#234.#2264&"~O87\`oZMK,-OI}I'E7 - 3m^\57M,,ILYH{GM6E%, ,y'7H$lxH$k !!537535353!533533fg3f3gfgggff333MggMM 5#!5#5#!5#f4f͙ ).'&/&'&'.>64&"27#     ([!6HI 5J44J$c)    % !IH6K44K4$-R&'.'&#537>764&"26&>7>75673#'.     vD  "''" U&4&&4&     vD  !''! l    L{&&4&&R    L 5>75!57!3#̀:$0%[S3F+N3fL ,ENN3) '"%2"&547'"&4627&5462"'6s --@-pB--Ap-@--Aqq-@-- ;-@-; --@-;  ;!3'&'&'&'&'&'&'&52767$#.!6  @@   ~\C+  !%).3 !83'&'&'&'&'&'&'&5276737676765'&'&'#$#.!6  @@ #'(   ~\C+  !%).3  # #$  7#535#33#3#344gg6^6R44g4f444g 75!%53735;#'5#5#34433MgM3332+"&546#73  ff  f {,2'&#"1&54632'&#"1&546267'"&'  7Gu"bxb"u{    SD 8FF8 DSM!3!'LM #*14."2>%'>&'7"&4627.'677^p^77^p^7& `1 ` &1*` &1& `18^77^p^77^` &1P& `1**& `1?` &1 0B"2>4.'."'46767"#3'.&'&76'&'&.6767_77_n_77_( )^, 2g/ .j5  :y40HC3 ;IS6 7_n_77_n_7    /   5! 7'7/'7'7MiiM=4&WXAB' &BB  BB& ' D276527652765276='!35335&'&'&5"&'&5"&'&5....MfMf //                 !7'7'?M͡,,$11$Md1$+.!73%#?'73>'5'3J@d&H>(25S,.,MMNAv.$Mg9M  %535#5##3!#3#3#3!!h^^,__ H'].]].]5b!b!bh  #33535#5!!!#3#3#3^^,__ '].]].]5hb!b!b  #/75'7'!%#5'#5'#3753753''7'77!! PT'SP(PR'RP !! F!5B..h<;;+PS'SQ'PR(RP  %#5##3353!#37#37#3!!bJ$JJ$J 5JJ"JJ5bbbbb  33535#5##!%35#35#!!#3J$JJ$J 5˄[JJ"JJ5Bbbbb  #%'7''7!'#'35#735!3#3#!PQ'RP'RT'TP` !-. 5 !PR'RQ&RT'TQ~5!b!bb!b!b!2#!"&546!3f4  $  f 4 3'%264&"L+ͳf++  #'!5!#5#5!!5#5!#5#5!#53#53#5̳fg3fffffMMMMf3333M!2+5#"&=46!!!!#3f4/4M334 !#537#535#535#53Mf34333 !5!5!#5#5!#5!5fgf33f3333g3333f33"7"'1.?64&+"&5471676;#%#53  M 36N 333 F   t  !21;2+53>7>3#F  M 6N33 FVT  t  "4Q_5&%7>&'776&/&326'/.?>323!52645;26=546;+"&&~'# #  ##  fI     ]I''HH('I` F ` F FaF` ML*N f  -f H1 <BJQiy1&%7>&'76.6'#&176/&726/>67.76?'"'&'3!52645265'3'72&#647.77?7#"&~'%OM%OM3"   ' .`  q6 %* U5fm7&'3' I=+Hs4sRQ  #/0 # ?6M E3ffK277#     $132!546;>23."!+"&'3M  M%.%bMk    X   337375#5#5!#3'#3ER..K#@g8O.@$$g$$C));33Cddd%#"=3264&+54&"3265.d!!!-: ! M-66 !!0#"'327.'327.=.47&54632676 :@RNB A30  !* #e:7'$   @<@%**($4"  )2,4 '7"#5532+32>4.3*==**F**FMgfM'2"&46476?'&'1'&7671'&'&>i~i>>i~i> ,2,,2,"  %  "?i>>i~i>>i  y 7>'8D"#$(#j54 /2"&46476?'&'1'&7671'&'& ,2,,2,"  %  "  y 7>'8D"#$(#j54 +54&"#46232#!"&=463'>54&"3*3327.#"#?3#"&'32>73>(.+F(,L25YZZ; <(.+F(,L25&33(F+gg3g'21 (F+#23'3.#"'>".'#7#3267-L26ZZ< >(0+F,M26ZZ< >(0+F(G+ff'22 (G+ff'22 75#7#5#!5#MM4444͚+4A%4&#!"3!26'!!!2#3#3#!"&5464&"26'"&5467  f f    7'&'62"&4"&'672>=4&')EG:+")@>:)  ;i!/I/90 I/!i :9*!6 : (  @ 92B'1/$B29 2".4>7#64&"28^77^p^77^U L 8 $#7^p^77^p^7V  5#5##!5357##5#53533M433MM3333333!2+5#"&=46'7''73M@@@@@@@@@@@@@@@@ '#'%%"264&7&#".#"67 3 &   1QQ1 L$gg  9&.0''0.&#+%4&#!"3!26'2"&'>4&"263!5353  f +O OVO O^**3MM̚  ($%((%$(L+ (,09=AJN%4&#!"3!26!!7353353352"&46;#73#'2"&46;#7352"&46;#   MMMM ,ff ,ffM ,fffM  >gM333333  M  333   !!7627'$n.$$n.%6@.7327>&#'&'&'&'476;2767>am_2L45<2/1S ?*  ) n/1:am/Mam >' !   AMSY4."2>'7>&##'>32&1'2?>&#"'1&305676'.547#"'EvvEEuvEWe;,P   N &!=4:FB"#EvEEvuEEvD /8   '7W '2;?jpC2*  MW]c4."2>2".4>'726&#+>32&1'2?26&#"/"3?676'%.54#"'EuuEEuuE?i>>i~i>>i N Z5'H   EpC7a3?; FuEEuuEEu,>i~i>>i~i> *2  #1N ,n_d<.O %&+"3;2?6'&+";26/;)@: @: @AT ;Rq En p rs "2>4.#'778^77^p^77^H"S"B"7^p^77^p^7t >#'7|""S"Bt =&'&'&"7276765455-$QP 5-$QPx =v=9?;M     " - +6 a t      V &6dashiconsRegulardashiconsdashiconsVersion 1.0dashiconsGenerated by svg2ttf from Fontello project.http://fontello.comdashiconsRegulardashiconsdashiconsVersion 1.0dashiconsGenerated by svg2ttf from Fontello project.http://fontello.comT      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUadmin-appearanceadmin-collapseadmin-commentsadmin-customizer admin-generic admin-home admin-links admin-mediaadmin-multisite admin-network admin-page admin-plugins admin-postadmin-settingsadmin-site-altadmin-site-alt2admin-site-alt3 admin-site admin-tools admin-usersairplanealbum align-centeralign-full-width align-left align-nonealign-pull-leftalign-pull-right align-right align-wideamazon analyticsarchivearrow-down-altarrow-down-alt2 arrow-downarrow-left-altarrow-left-alt2 arrow-leftarrow-right-altarrow-right-alt2 arrow-right arrow-up-alt arrow-up-alt2arrow-up-duplicatearrow-upartawardsbackupbankbeerbell block-defaultbook-altbookbuddicons-activitybuddicons-bbpress-logobuddicons-buddypress-logobuddicons-communitybuddicons-forumsbuddicons-friendsbuddicons-groups buddicons-pmbuddicons-repliesbuddicons-topicsbuddicons-trackingbuilding businessmanbusinessperson businesswomanbutton calculator calendar-altcalendar camera-altcameracarcarrotcartcategory chart-area chart-bar chart-line chart-pie clipboardclock cloud-saved cloud-uploadcloudcode-standardscoffee color-pickercolumns controls-backcontrols-forwardcontrols-pause controls-playcontrols-repeatcontrols-skipbackcontrols-skipforwardcontrols-volumeoffcontrols-volumeon cover-image dashboard database-adddatabase-exportdatabase-importdatabase-remove database-viewdatabasedesktopdismissdownload drumstick edit-large edit-pageediteditor-aligncentereditor-alignlefteditor-alignright editor-bold editor-breakeditor-code-duplicateeditor-contracteditor-customchar editor-expand editor-help editor-indenteditor-insertmore editor-italiceditor-justifyeditor-kitchensink editor-ltr editor-ol-rtl editor-oleditor-outdenteditor-paragrapheditor-paste-texteditor-paste-word editor-quoteeditor-removeformatting editor-rtleditor-spellcheckeditor-strikethrough editor-tableeditor-textcolor editor-uleditor-underline editor-unlink editor-videoellipsis email-alt email-alt2email embed-audio embed-generic embed-photo embed-post embed-video excerpt-viewexitexternal facebook-altfacebookfeedbackfilterflagfood format-aside format-audio format-chatformat-gallery format-image format-quote format-status format-videoformsfullscreen-altfullscreen-exit-altgamesgoogle grid-viewgroupshammerheadinghearthidden hourglasshtmlid-altid image-crop image-filterimage-flip-horizontalimage-flip-verticalimage-rotate-leftimage-rotate-right image-rotate images-alt images-alt2 index-card info-outlineinfo insert-after insert-beforeinsert instagramlaptoplayout leftright lightbulblinkedin list-view location-altlocationlock-duplicatemarker media-archive media-audio media-code media-defaultmedia-documentmedia-interactivemedia-spreadsheet media-text media-video megaphonemenu-alt menu-alt2 menu-alt3menu microphonemigrateminus money-altmoneymovenametag networkingno-altno open-folderpalmtree paperclippdf performancepetsphone pinterestplaylist-audioplaylist-videoplugins-checkedplus-alt plus-alt2pluspodio portfolio post-status pressthisprinterprivacyproducts randomizeredditredoremoverest-apirsssavedschedule screenoptionssearch share-alt share-alt2share shield-altshield shortcodeslides smartphonesmileysortsosspotify star-empty star-filled star-halfstickystore superhero-alt superherotable-col-aftertable-col-beforetable-col-deletetable-row-aftertable-row-beforetable-row-deletetablettagtagcloud testimonial text-pagetext thumbs-down thumbs-up tickets-altticketstide translationtrashtwitch twitter-alttwitterundouniversal-access-altuniversal-accessunlock update-altupdateuploadvault video-alt video-alt2 video-alt3 visibilitywarningwelcome-add-pagewelcome-commentswelcome-learn-morewelcome-view-sitewelcome-widgets-menuswelcome-write-blogwhatsapp wordpress-alt wordpressxingyes-altyesyoutubedashicons.woff2000064400000063024147206410120007466 0ustar00wOF2f HeBVv @@6$P * "S'ݗPn|M1F" tV593ȘT.i un"hUkTJ;Opc 7ݧ`yZ5 Q W8exh2q$}~fð$l %j淴B,w~K|{ս?t` 95y!9j/2z0ىU^<[eY_ :Chg, O/ZwaL̅%cd LwcW:QCv9k v+ZQN@@km^LB1x$C"Zf R`1 i$0Ty+JT]zX7r+\J]TJaap$0NsF40]E,EVuu8Xs@r/m} f#`{:@@I B!Ÿ"ejI(s[o1 ~oܭ39bXBL('ioȏ{OFu6i_?*}qZ̐dB/)H#\x& $KPZA-[g}_%t/J]b36z|CVc<}ETdJYծC~]:y 7 kG2oOMn)ڟ`ⷌ.\0*eW&BA aPb@"2@ b&qPxXMK$$C%R0 %42M:T#L'Er&\J!ReB(GPB`?RcT050Zb:Skhh4(-0V_ɦtT=Ђ^ALf3s &#ДQhf63#-L"0[e12[!*Dm Nl@Emx]GI$Ar*s(q p 6NM8 89ø3 B\%t׈00[$uspp?DZ~C0 ~P3-H+/ /â'w ~ C:~'x+ ? ¿>=TA24"X؅,V#!B."TРB#L聰3†N ?"@z"큈`?"S"2d"YV!ʉ*t&bCp Fڱp ospJ"XA|bpf7@9ߣ p-)?%c3@+ Y3V`z#|fp]KyKƲ |ɀDL='rhU{J7Ly}#+\ E󆖼բ唽96M.mwB>@Ȗ;F+V4>WQ&Ko^V̱BIt=/JL*Òј#YHNE (5 CP*eDcA/hJ>ǽ  2]󭶭_HF!zliN2 <5gz"B>Y2)3snK\ޅTtZ0dQpH А+gד`"%c0cR`&Wf C-,[XDeɨaoORIW̏+[x(E}BV׃a3NlgCTeTHub6,kC*= fJE Kb%l0MZNuXW>Wq=:GL{ @=Ҁ.5R|Hc l<;!QPO qt:iyzi?۠Tt:OuqcT@HAW]_`K,nhfucLLqZt/Vt3mteOuVyisz{ſQZ7n(f7b1͆ ڿ:3d=./~a tZPw֐#cEO φ%ڼ(^l S<<Z{2N f5WT`c)nQgs",e)1F,~ "YOUĕZy\]&aL\cȯՋ7(e OLs#Li2F{E8K𬥎t9cVѻvDMx Oǎ|~,?)2~pjbӱ.)/ǁ2 {TmnD^xszDG\Mhq ~"Q#y)^#Qd0 eVa yjK糂}AU#>.Ԇ`>>-ΝDTC6F&t:͕g@ @3O\/:wZaG.a}ƛ|,$)iଽ/\:ԕW0 n͹~u%P z>>ӯV:j襌 ~n,^I~X_Xnyh_8qѧ\)E۵vm/29KƣStԖo5˾|B[ us % ]6z9::]Y2&=mavy='$L)2b\S3TT$$C"y%<*bt9.p7~9`]a 8z`:h6g{K@+Mьa$S:Y=Hg2< ^8kBJޭgKaa5?=eկ$7@77tHR#"?JЃ˺]"áa,v 䉉ߝ5nB!0UkMݘLe.=01Y,-qIcVT%RQ%r_ 4rP`QQ|1Q*fXn7„B|+:W1lp#bgNͿNY'g\aPFnXe}6/D' E>'ьݖi81 48l:M䷯C%$s\ j~`~fk}Hy C(OFr0&>)TTpX4 Tp5tJӻbv[ƃlpQ[o^eYۺU5|GeT{sy?_)%]#e[X4mX(k,HͲj`H0 ɵ2%MS vl1x*i Ώ ΌËYoi5g꠆'i ư vݦ M]&1N>΢{nZ{#&B.gJ1xZН\&ZB㷃K[ X0~G$:pؙf[0sQ)xؔK d7$|ʃXx1^?OClA]xe`͂e4cm| yb)0Q1ZX~0 RA g"#K@hK rԱZ'J!$Oxښ{E <"E.D궥l8O:f$ cJ2zGRUB[XM(2B^o{w͝'b %W3J]bc-Rxs2 ߊ QLU[#2pbD6MUIۙaU9t - mr~NHPm)C=enIvц58t+XӀ PIpTCm:|No+uYDs fmNa)m26ҩL'/_y-_t"(IEP]fcȺWbqvlS<`yRjH^mOfjqLɮ;<'Ijzs).$[l,Kgd# s85"߉^QΦ- z`e/w2n{ UxQϑA']m(=XJ~TziwݗlrH4:ע{K{{zHd} yFUW)(+P@%gԪ’" L"+g_:Ă|'>#e#>A>58&UhOэBF%۠TXtRE^7oSmd_?0X}h鍊cum9m%ga JeQc}2[ H W;+HVY.`b e50.r xY"OŶ ȗw6/"UD)^+ MR3>6%࣠=ABBֆ^XcGP/{M]^#_1}.z=S1|VjՑ?;lS9boL(t}5E3MWޏIR_w_boҙ^/sJ?3'?Cx9BE } /5o< XH~@4 צ"8'n=507wܼܤtC ]@,GV&Ѝ]vlw<k*Oc!:>lb) [!<k+7|T |BØϦ(SJR] k|^jbK4@v.uބg0p4Bb߃CMj?S* |ShRttH_lTuR$0Os$>9 Swz;$)Pq\r ίZtR:J)Hb|A m*g"#YOAi \{Ẃyx;ԇ)f[ ox0}xs^]N,<_WUu!ѕB< qIE2@IOjuw gqv q; [| d7`yj@(QEN)/m8JV}+=p&4!.$HCVLU@cRewzWhD $eM"z>N% )PUy5M9&BL=Jw̱7o WH#=4n=c: W*'^x: jZkl$L2&AAm-UhQցHO-19a0ءԓ D~bu4YdzDcȒ/<:t 6OaYDf}HkqSn#o6$m Z#DHRh̶r/sU|UO 2:YMxҹI.C…QHPEq9:JG}LM+W #g623ձ˧Bo{P.*;pp(`0KD1~]TrLJ-rHWuD>G&'=tBTȗYnN4%Ugߓa!*k򝡎P-gb_jTcؒ Fs4q}HPː0bK,!ZTM.f Y(SA))O?I{_ې|:B+^YKs!v'1ֱ:YASx(q12ƇXd`_ZnyMq6;ycV=dXPE˩P)#1p:fɛCx#9fj+]QTS̢$\ L(Md؀*%'{6\RUaB??khv<[WC!Zu4qԕ,I+U$nNӤy&[$RmVK8vAL$o}Xx7tKij!7LN.܇O3fm~$ڝ_kɬiTEX *ThKBgfTgDk;$W18&bC= xYKh,/<2㏾hmZ_.|cOXmGGָWEt+9IvOpd N3:MzO]& D3B@D iMkPize^HYDT0, z N7b[0#s&sGdi,m3$8̉nDaK^#ö`Yq yy1mmϬ/\O=+PںdP1e!N O0"'ww;Hw޵.I9Au$e&q2 Bd8ݩcSw+\ʄGGNYoH,+uojT8DdaeF5 r)Y /`PD2}A4Kh:$_7l)⽄? N(w~LinтW*< ZSYF3G,yI)jiٜFWqرu,_st?7Iװ ^sXQ”ZUfY ySzkmW+3mY֭cDƣ+-֩a ˥( fn\16&} -_Q=B1uBV*ޒ& E6>yQa/ñ-2Mj^rlI=SlS7f,JaDž@ AlcSTfvZdxBH۽>nZ{푛Z q;K!z!9DoLY{m$/R_wb-0*#^%/ATQikCCU.޹!#mC1{GQ2=_|2B:vY_W=\yhs/vxL4$vlWj]tF~*?s:Զ^=}hњ]/{, [۝0FGigx<~gs'ߘWN\dnMGލʄ-rѶ&.K|ՊI-G.W6?~l&OΚ2V܊ntM)uO]8kTtƁҗ0/H9bl|1 ~8c4yLg++ukLZ_[dhet-;C$f ם48s/dZQ定xzO{&Ǎ3ӢK0_y!нȔ,f$ 8axl.*UYj;1%LπT>iDs.T>zoMQƲi];}J~&ƦRy z3bДDS`ti"6 (@4~Di hdqϴYky9q_].sݽqO;"Vstt}s MyzsۼXKrL?𶘑@Gt̴+?j?۟oݯ/ v]mW)XiF{bx}5Y .Hj깞ɇ]1+7?*U-]]Le*uCf Km6Ÿ:3 jTjZ2E2a!OEJxTQsȿ#];~75|78yE?OfT-!o= ħp*1v5,:?/`[ͻʿ>j[ |{2Y+ qu0<#innvΰ_w5kR_(h(3"fs)3*򧿱?DPo f g޵W~B:E[hg  2߷͎#eXan#2l uew2 'tb qp]nxĢr4{y!텹cLoհasaX:yލ(%ǂ%eADOY6-TS}8&TYvd$sY U-tlHXԬh}t6eR7+sWQ&!15K}y?qU b1j\$J D&q(oZ0J{ou/ /ʥ YBz  qx3D? c ?H|lK Pљ;*(Cj\˫ ԴnhBdd*lػ [~{n a&lu22\ἁ# L=`p4rj˻ޝ313w}2J>o:؊-۳<Νi>ѴwsoVeHpHÝOg|7(Xx4o:q=>ܴ~zOffOqDtM~"fWL>%Ăǹ8t:BM~QKixޢʄ# GQ{`jL}y[TVwx؂RVqLzVFssd8'd5+ab9s璴?vzz5R?ZGfTS>b[%%+w)J^B4_ >kDB%%dE1/Rm<9UA@F k|<)`B^hB6a,S֊8+8;XsEP`k|{E >Z$^,Ώn}g}@7[𛈰Zv硊 !Y>r)ƈXVu_ΗCMcZBie;nf4O@TvWĂpR' uxT^\fOqmLo4N.n#$MnLJjH.bS(|N\* fWW^erCޣJqq&gI/CF:%]u"pK/)bS%4%zpgкY9i\B^[&'i [4jE&q\q-]'p.7_wW@%6-|sW"Pj(1PUR#_'܀=s?\!>_ڞc]E6leL1Ph1 MA(cd,C>" 'X?G6jɰEUh497и]ݖ]_32\Ά3ڮfc W<.([fơ/݋jf| j;?^[,2;XZ}P=^FeoR$fFMOsg,npr>].cIlhm2]Oe0jyfⓑY˰a~_>Dv@`\lr4lQn޼eXn 9{fphұN`eAGe-C{V*eK94hNp蠠ۛ MW:ʅڗ/UESIkĽ~w%9-+AJP[S=JP=.T0$5N8Ao_`-?/X={TX⽦˲yƬS>\KT @_؀m>~ϲ4ҵCC.YiJ,oWOOe܍G(k&]^qCjWniN:\|4x,vDgm"۳q"SE$љgX}Eepy/.w/ʻ"w_D0fx",344$K\Zaw'%p>#LXR"c+T*6K!:VWbU8޲`xeY xy.;X[:Aς/E[B&?eSCLO<84FI?vf$2#+7O|0V~K|TS>EeQ=]{?PH.atuB UiKLڰjT Ktqa*N^=Eܬ te{ym>z1|kok,M Mo-Ӄ5CǨ=D=a{j_mPdžAx#KiY\施PHZQtIDq_=₂b3իÝQ=a5N %AyBSb }w܊mv(0$immFvz>µZX KP_^YX 9 Wq+ bF5AƭwUs.ԅaxԺǽ؍GՂ:'M精8 GAV+3x?f|;Ŭ!>Pn0s=Hc rQL-TDĸh`lYD$tzmCINo68{QYP2?5 z:͜Éڧ#ͥtk44V  o 7(xE1_>vhԘ:!' 'am[`Atlܣ6l{R 6mٸ8iӈa$7* P*it.BP+i\SZA8M]%M!/EU)d)!qA xI8!WE_`4qel3G -jKYʅve ; :A,s uT^`'n~")L *ZNU9o_Ïxί|s 4bld `o?mQR,Ƨ1[b}hP:ߡB:O|gj&I'\m`0Ot=3G7LGP\GMGi˯#o%#G^DXBlL]֩ȩ.H pNӻw'F򽥚`X܂%K6^-K e^;qE7ˇ,YyZD| G4-nTB Wt8q!0I=)üioj  .LoZ 2KPیFϯ-b0Yh@#?~Py._F*;|>.ٓ5O dqLԭXn=1#cJۖ 3y3$DcbX/v m^1<ºL5IMYð{4&1w:3?){wz$UX@+cTޜ:'cC^w$Lrw(@)AXsQ FGC 6mB5#w49V^xo˞:,wV\{fO sL:|+ir;yC3+~2Rz4v"MS:(v/5#(0;u0zO֧k-AޘkPәZpԪ!YVDc\PXY &,i$+j^:D0ٕ ' (?ל^mY65]!ƽd(:1!].sŸ́˻| W3skiӫJnrp9' @.̨ⲥLNrZRtwؕ ͕v&Tℊ'S&"7VHXgeƦUu=x4YK0 :swo\#ĢD1Fe_)i7!9;,, }Dyf IX)G{>)ݹ/i !yAڂ$]9=B6޵D/45(!`)%Q=ZiāT 8؆:E q ^s?*tc@x[QYQ}ۍ*QKC,yTѧҶm],J)[^hYUI/3Tr{8aEp[z)H JY |Fa%͖, )!}iY΄C0N6FG A,v uVEBanc]`56熖Ypz2B1g?L+S7TiuW*Ґ[|֐bJJ/}p89rmv,,213+٠Uz-O/$F8 Jǝ P`Lޚ4ЬXʍ_C^3bՎ5:&n`9G*Xf 2@]Q@t(D' ·D72{axen,b,0^p"}gU?vS[a"|͠˴Y))Vky˴X=Q,|*vשwLnFA{lxo^8ٻN[%P>"17 =IS"[e&x+ 祖xͧ@<| z1>\a> ?a5^#.4Vӏ1(aunz| s vns<<)ElnLZZcҊ;C:Ў֕0H1wN1Qw(ͤBo_qrf@8wm[^ چ;7wGwqeω(jjMfUAub*#YSɌU髆T\4;`! Ϝ~)Yg"0KLG,w1Dorͷn~+oWIxU _0o;vtA&7 @:cbd qIvX*G91G؊hدaHKFI.S04(xoz6DJ:_A| w"d-VpI^(,f< Jj q.2DGgb `8tĸg `Bywo6T]=zN5HOo}sF0OxVc[ m0`:Oyppg>$UOe}$"OB`>QfZ#^J2bOHm2`5O)`Z;8jtmTβsC4%fۖ/rY#_[IWBDG0 nԉ#r\!Q\V"T8L &1/ēH=~Az@AT{ Rk]\[l mG1JHFr@Ӻn!'e} 򏄿!^ KW+a d dB1"o%"7.8jdi/p~X`AͧV-ˮhQkg%흇?<ݙFG 9g>nC{pnQ* ~d_l]|ep ,.!( f9,ۆ|5pPj:x]בR9ųeuyD')hy'Dg҃ǼJ E3ٺcQs{n2fv?%K[ zřs Ϗ#SpM?=l_+#IHf͆^pz6bñ>`&AY4Ra;*+>A45 /n\.Tpl|iv6~e3z,V{(]V7U7FN UA]F3%θݤ"\zZ*,) 1_]b&1DjUSws}u+rKV<3d]],Fz)%C-E=a/$vZDø j699(&:'Z!un ii n|CFiB6S\$Jq}o~ŝVsCczm4-nhC`'JdRxWQ2#lXǥm JO9,/eӟg|QS=T7x(',̗(a+kIFQ)?{ 'GX|N:RU qGؕ+aU\yyx[  O'Q;xڤk; GL#rmQgHHX'-ݕ\/ k x>=<<'"o]EANΒeY,{TF[FGegsf p6'IJ:asxpݸ 0IJ3QJŧJzkNAtTNsH;Kڪ`.vCOɼh:잳v2w̽92p<w`fn@,Y= =[vV+Kxjf)78݊mI5\OH4d--V9=d~Ҭt4-i gMJq wZwz#7-ֱkQ#0ue'ڦ+ bc6blaI9@ļ)\pƹ[0m (VRCKDc"ׯ\XEcDp!5f3m}"hqo 9SΓ `TRpW=c{`>r/HvMAd jkjg9@zRUKxŝ-3 *0]F~u{ZFltӚ[6}MN:4frpjD%gfO\)~ /{]+M>{ɣP衾WĒ>K0Q(^'5Kkf#b/_``vңBnmEqo[ ZGTZjht*h |m3H$ ݺNR$f7F 2<;B`Acݮ$F4.D1V6'{1IKmjJ]a.H}إ}Cxǎ qne4ְ](qU;{?(κkP%D).Hv\ȵc'n>dDic3gU:";_n DzVAV-.D2#.&'yJ>0+`I%AʤкD tFt^r[+}CP,耦+ $& MOpI_ Fp(o#i ~`:~Y~{ ڜ?_zZLa '7%P4:7j [; ںxr'FHr4<9 Bcn?,́sJ#%M9Es@Ӹc[g{VV!HvԶ2rlj|=\]m)"q 4w:Xܩ;v AL:cPG-5aLݤ$ʶ%5! b5kZT._zWzTkK@E_"yI-2ho]L$R!\suU% ,Ҽ{|: F94k"N*/ mu+9$>"# S*i VVXX8:CJk?rls{$Sf/g Yˣ3WHuX}W-nB9Б<7hM˯gR0]O 'uw%]i*6RsEoeE." ݀PPQL[7Ps[z!AذVCJ}GcxW,;aKК(`;=Q(C:*,9WBv'|9G0H_$i}o͔kz߹ۊ[loG~&öbl.`O'dZ@ Q ȨAXk@Hl(rk:c[or?0|8'mq]2eC-鮥dqKUm(/ަ#R9vf10kg'[·mH$q]2wsDlFg0Ylǟ1!KT+d㏉TXmv ?b aǚ Jj&Y1ÎAIEYM8˺y#($E3, $+e;a'ieU7md^m?~A/ِͰ JjaZz~FqfyQVuv0Nnq^~,ۣjMvDr󟋐J04ˋ0Nnq^~? #(4$2J30aK =^_ U5%̦oL7Ef] a|YZmd#%ךi"GWEd^{)kQJfVn,o*,ۡ 2d<-)f 単oicn])+4%w["{ wzB=s32AHL؛> W[q1w?"aV&#ܟ$hv+1>.p6*G9u%}V/_UPձbiVZp}oso3s{ٵfʄs*y$jM9$gYD)j|}ݵhɗWYb<}UgE0nF ~ɟMX3E^Z}lJ5pNu- d,-8#:sji4n^ۆx"?PFKY/^٤:u&$kx1^7Š`ר*jS?|}ȋQS ?s p#g-b.L y>G:DMa C3nd!PEB?nF7gs97{7F0GVq8Ápk-<7~.B'R -BMQ,AZ)_woj<1+v@`O[I9DʴĮ (P/B:㗅g1V$V#VK giGfډES@ۥ1RAx\򇚳淋”Hi-8x*ͮv?+3P a"R̰Sj{ʞd#> %7x\#14n0JtC*rq0(0 k3+ {E]4uq[IB )"Q%2N1(4U) ;!P'hB[ <$i+Lc]Qh!E1\[,{(zFRWi6Ƀ%P'qP ɴ_%`TZ>0/.,y}(79 B8HW}|K%@¯ B?( u/#y~u9S ɢ)Yn:%e| 'E!#Aic$m2Vp2A**g?->=caz*Ujvqg㖚DZI2sˑa 2U8U*SV8 =ئ՝vG_*d ɔۓK{R4cd$~= 'oBDS[~KLSN6/qxE~tڊdashicons.svg000064400000363306147206410120007250 0ustar00admin-appearanceadmin-collapseadmin-commentsadmin-customizeradmin-genericadmin-homeadmin-linksadmin-mediaadmin-multisiteadmin-networkadmin-pageadmin-pluginsadmin-postadmin-settingsadmin-site-altadmin-site-alt2admin-site-alt3admin-siteadmin-toolsadmin-usersairplanealbumalign-centeralign-full-widthalign-leftalign-nonealign-pull-leftalign-pull-rightalign-rightalign-wideamazonanalyticsarchivearrow-down-altarrow-down-alt2arrow-downarrow-left-altarrow-left-alt2arrow-leftarrow-right-altarrow-right-alt2arrow-rightarrow-up-altarrow-up-alt2arrow-up-duplicatearrow-upartawardsbackupbankbeerbellblock-defaultbook-altbookbuddicons-activitybuddicons-communitybuddicons-forumsbuddicons-friendsbuddicons-groupsbuddicons-pmbuddicons-repliesbuddicons-topicsbuddicons-trackingbuildingbusinessmanbusinesspersonbusinesswomanbuttoncalculatorcalendar-altcalendarcamera-altcameracarcarrotcartcategorychart-areachart-barchart-linechart-pieclipboardclockcloud-savedcloud-uploadcloudcode-standardscoffeecolor-pickercolumnscontrols-backcontrols-forwardcontrols-pausecontrols-playcontrols-repeatcontrols-skipbackcontrols-skipforwardcontrols-volumeoffcontrols-volumeoncover-imagedashboarddatabase-adddatabase-exportdatabase-importdatabase-removedatabase-viewdatabasedesktopdismissdownloaddrumstickedit-largeedit-pageediteditor-aligncentereditor-alignlefteditor-alignrighteditor-boldeditor-breakeditor-code-duplicateeditor-codeeditor-contracteditor-customchareditor-expandeditor-helpeditor-indenteditor-insertmoreeditor-italiceditor-justifyeditor-kitchensinkeditor-ltreditor-ol-rtleditor-oleditor-outdenteditor-paragrapheditor-paste-texteditor-paste-wordeditor-quoteeditor-removeformattingeditor-rtleditor-spellcheckeditor-strikethrougheditor-tableeditor-textcoloreditor-uleditor-underlineeditor-unlinkeditor-videoellipsisemail-altemail-alt2emailembed-audioembed-genericembed-photoembed-postembed-videoexcerpt-viewexitexternalfacebook-altfacebookfeedbackfilterflagfoodformat-asideformat-audioformat-chatformat-galleryformat-imageformat-quoteformat-statusformat-videoformsfullscreen-altfullscreen-exit-altgamesgooglegoogleplusgrid-viewgroupshammerheadinghearthiddenhourglasshtmlid-altidimage-cropimage-filterimage-flip-horizontalimage-flip-verticalimage-rotate-leftimage-rotate-rightimage-rotateimages-altimages-alt2index-cardinfo-outlineinfoinsert-afterinsert-beforeinsertinstagramlaptoplayoutleftrightlightbulblinkedinlist-viewlocation-altlocationlock-duplicatelockmarkermedia-archivemedia-audiomedia-codemedia-defaultmedia-documentmedia-interactivemedia-spreadsheetmedia-textmedia-videomegaphonemenu-altmenu-alt2menu-alt3menumicrophonemigrateminusmoney-altmoneymovenametagnetworkingno-altnoopen-folderpalmtreepaperclippdfperformancepetsphonepinterestplaylist-audioplaylist-videoplugins-checkedplus-altplus-alt2pluspodioportfoliopost-statuspressthisprinterprivacyproductsrandomizeredditredoremoverest-apirsssavedschedulescreenoptionssearchshare-altshare-alt2shareshield-altshieldshortcodeslidessmartphonesmileysortsosspotifystar-emptystar-filledstar-halfstickystoresuperhero-altsuperherotable-col-aftertable-col-beforetable-col-deletetable-row-aftertable-row-beforetable-row-deletetablettagtagcloudtestimonialtext-pagetextthumbs-downthumbs-uptickets-altticketstidetranslationtrashtwitchtwitter-alttwitterundouniversal-access-altuniversal-accessunlockupdate-altupdateuploadvaultvideo-altvideo-alt2video-alt3visibilitywarningwelcome-add-pagewelcome-commentswelcome-learn-morewelcome-view-sitewelcome-widgets-menuswelcome-write-blogwhatsappwordpress-altwordpressxingyes-altyesyoutubeclass-wp-font-collection.php000064400000021274147206410120012106 0ustar00slug = sanitize_title( $slug ); if ( $this->slug !== $slug ) { _doing_it_wrong( __METHOD__, /* translators: %s: Font collection slug. */ sprintf( __( 'Font collection slug "%s" is not valid. Slugs must use only alphanumeric characters, dashes, and underscores.' ), $slug ), '6.5.0' ); } $required_properties = array( 'name', 'font_families' ); if ( isset( $args['font_families'] ) && is_string( $args['font_families'] ) ) { // JSON data is lazy loaded by ::get_data(). $this->src = $args['font_families']; unset( $args['font_families'] ); $required_properties = array( 'name' ); } $this->data = $this->sanitize_and_validate_data( $args, $required_properties ); } /** * Retrieves the font collection data. * * @since 6.5.0 * * @return array|WP_Error An array containing the font collection data, or a WP_Error on failure. */ public function get_data() { if ( is_wp_error( $this->data ) ) { return $this->data; } // If the collection uses JSON data, load it and cache the data/error. if ( isset( $this->src ) ) { $this->data = $this->load_from_json( $this->src ); } if ( is_wp_error( $this->data ) ) { return $this->data; } // Set defaults for optional properties. $defaults = array( 'description' => '', 'categories' => array(), ); return wp_parse_args( $this->data, $defaults ); } /** * Loads font collection data from a JSON file or URL. * * @since 6.5.0 * * @param string $file_or_url File path or URL to a JSON file containing the font collection data. * @return array|WP_Error An array containing the font collection data on success, * else an instance of WP_Error on failure. */ private function load_from_json( $file_or_url ) { $url = wp_http_validate_url( $file_or_url ); $file = file_exists( $file_or_url ) ? wp_normalize_path( realpath( $file_or_url ) ) : false; if ( ! $url && ! $file ) { // translators: %s: File path or URL to font collection JSON file. $message = __( 'Font collection JSON file is invalid or does not exist.' ); _doing_it_wrong( __METHOD__, $message, '6.5.0' ); return new WP_Error( 'font_collection_json_missing', $message ); } $data = $url ? $this->load_from_url( $url ) : $this->load_from_file( $file ); if ( is_wp_error( $data ) ) { return $data; } $data = array( 'name' => $this->data['name'], 'font_families' => $data['font_families'], ); if ( isset( $this->data['description'] ) ) { $data['description'] = $this->data['description']; } if ( isset( $this->data['categories'] ) ) { $data['categories'] = $this->data['categories']; } return $data; } /** * Loads the font collection data from a JSON file path. * * @since 6.5.0 * * @param string $file File path to a JSON file containing the font collection data. * @return array|WP_Error An array containing the font collection data on success, * else an instance of WP_Error on failure. */ private function load_from_file( $file ) { $data = wp_json_file_decode( $file, array( 'associative' => true ) ); if ( empty( $data ) ) { return new WP_Error( 'font_collection_decode_error', __( 'Error decoding the font collection JSON file contents.' ) ); } return $this->sanitize_and_validate_data( $data, array( 'font_families' ) ); } /** * Loads the font collection data from a JSON file URL. * * @since 6.5.0 * * @param string $url URL to a JSON file containing the font collection data. * @return array|WP_Error An array containing the font collection data on success, * else an instance of WP_Error on failure. */ private function load_from_url( $url ) { // Limit key to 167 characters to avoid failure in the case of a long URL. $transient_key = substr( 'wp_font_collection_url_' . $url, 0, 167 ); $data = get_site_transient( $transient_key ); if ( false === $data ) { $response = wp_safe_remote_get( $url ); if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) { return new WP_Error( 'font_collection_request_error', sprintf( // translators: %s: Font collection URL. __( 'Error fetching the font collection data from "%s".' ), $url ) ); } $data = json_decode( wp_remote_retrieve_body( $response ), true ); if ( empty( $data ) ) { return new WP_Error( 'font_collection_decode_error', __( 'Error decoding the font collection data from the HTTP response JSON.' ) ); } // Make sure the data is valid before storing it in a transient. $data = $this->sanitize_and_validate_data( $data, array( 'font_families' ) ); if ( is_wp_error( $data ) ) { return $data; } set_site_transient( $transient_key, $data, DAY_IN_SECONDS ); } return $data; } /** * Sanitizes and validates the font collection data. * * @since 6.5.0 * * @param array $data Font collection data to sanitize and validate. * @param array $required_properties Required properties that must exist in the passed data. * @return array|WP_Error Sanitized data if valid, otherwise a WP_Error instance. */ private function sanitize_and_validate_data( $data, $required_properties = array() ) { $schema = self::get_sanitization_schema(); $data = WP_Font_Utils::sanitize_from_schema( $data, $schema ); foreach ( $required_properties as $property ) { if ( empty( $data[ $property ] ) ) { $message = sprintf( // translators: 1: Font collection slug, 2: Missing property name, e.g. "font_families". __( 'Font collection "%1$s" has missing or empty property: "%2$s".' ), $this->slug, $property ); _doing_it_wrong( __METHOD__, $message, '6.5.0' ); return new WP_Error( 'font_collection_missing_property', $message ); } } return $data; } /** * Retrieves the font collection sanitization schema. * * @since 6.5.0 * * @return array Font collection sanitization schema. */ private static function get_sanitization_schema() { return array( 'name' => 'sanitize_text_field', 'description' => 'sanitize_text_field', 'font_families' => array( array( 'font_family_settings' => array( 'name' => 'sanitize_text_field', 'slug' => static function ( $value ) { return _wp_to_kebab_case( sanitize_title( $value ) ); }, 'fontFamily' => 'WP_Font_Utils::sanitize_font_family', 'preview' => 'sanitize_url', 'fontFace' => array( array( 'fontFamily' => 'sanitize_text_field', 'fontStyle' => 'sanitize_text_field', 'fontWeight' => 'sanitize_text_field', 'src' => static function ( $value ) { return is_array( $value ) ? array_map( 'sanitize_text_field', $value ) : sanitize_text_field( $value ); }, 'preview' => 'sanitize_url', 'fontDisplay' => 'sanitize_text_field', 'fontStretch' => 'sanitize_text_field', 'ascentOverride' => 'sanitize_text_field', 'descentOverride' => 'sanitize_text_field', 'fontVariant' => 'sanitize_text_field', 'fontFeatureSettings' => 'sanitize_text_field', 'fontVariationSettings' => 'sanitize_text_field', 'lineGapOverride' => 'sanitize_text_field', 'sizeAdjust' => 'sanitize_text_field', 'unicodeRange' => 'sanitize_text_field', ), ), ), 'categories' => array( 'sanitize_title' ), ), ), 'categories' => array( array( 'name' => 'sanitize_text_field', 'slug' => 'sanitize_title', ), ), ); } } dashicons.eot000064400000156364147206410120007244 0ustar00HLPdashiconsRegularVersion 1.0dashicons 0GSUB8BOS/2@O%|Vcmap_>$glyfqdE@headf6hhea7H$hmtxPlocalAmaxpo name+_"post#2\,. T_< 66 T  ,DFLTliga fG fPfEd@G.,, <  )9@B )9IIWY`iy )18CG 0@B 0@HPY`bp 03@E<vx"""0BTfnt  4 >JKHILGO. KQ5EF\GW*ZX]g$'.-JR $%p&'() 2M34H[i: OYEAjklmnr6 TRt"#7MSPywvx~}hBCDSQ98 L/0q@P1+N5s76D%&+,()"#:<A@8;=B>??uV*o-z{9/,!U<3{|;INC!bcd^_efa`2=1F  0 V     4 >JKHILG O!!.""##$$ %%&&''(())K**Q++5,,--..E//F0011\2233G44556677W8899*::Z;;X<<]==g>>??@@$AA'BB.CC-DDEEJFFGGRHHIIJJKKLLMMNNOO PPQQ$RR%SSpTTUUVVWWXXYYZZ&[['\\(]])^^ __``aabbccddeeffgghhiijj2kkMll3mm4nnHoo[ppiqq:rr ssttOuuvvYwwExxAyyzzj{{k||l}}m~~nr6 TRt"#7MSPywvx ~ }!!""##$$%%&&h''(())0011223344B55C66D7788S99Q@@BB98 L /0q@P !!1""##+$$N%%&&5''s(())00711622334455667788D99@@%AA&BB+CC,DD(EE)FF"GG#HHIIHH:II<PPAQQ@RR8SS;TT=UUBVV>WW?YY``bbcc?ddueeffgghhiiVppqq*rross-ttzuu{vvww9xx/yy,!U<3{|;I NC!bcd^_ e!!f""a##`$$2%%&&''((=))100113344F556677 88@@AA BB0CCEEFFGGPp0TNnR@">Rx  . @ L ` p | V j  d  @ff lp,&H `v0P<nBt6NfvB"b,d&Rx8f  P t ! !B!"L"""#D###$j$%%,%j%%&h&&''>'~''(P((()).)b)))*D*l**+B++,>,z,--2---.p.../L//0L001 141\1112B22233Z334`44455N556"6d667$7H7^778:8r89969P9j9999:n:; ;~;<<<2<<=N=> >>?(?f???@@r@AA@AABBDBBCCZCCCCD4DDE EDEEEFFTFfFG(GPGhGGH H@HpHHI&IZIIIJJNJJJKK8KLLM@MtMMNN4NNO OZOOPPBPdPPQ Q.Q`QQRRRvRSbST2TXTjT /%'767'7676?676227s& 9 ".   #!  &  .   $    2".4>57\66\n\67\i6\n\66\m]6b32+5#"&=4633 3656'&'&"17>767676676767676  $,$/ 3 #T  ,  -(  #  0%,$    "# '0%#'#5&''7&'#5367'7675373264&"8(6(M(6(77(6'M(6'8 --@--'6(77(6(L(6(88'6(s-@--@- ''753!55#'f4f&'f3("8'764&"&6?>764&67.6?>2'9j .j'99Չ j'89+(8j!-99'j. j9'ډ3j9'+99'j.!*6%54&+'##"3!26'2"&463"&46325#53"&4632M +"f"+   %%5&&̀%5&&Mf3%5&& 33 &5%%5&'%%5&Y%%5&   %)-''7'575#''7''7%#5%#55#!5#mmmgeffL4mmmmfff̀444P``pp;WXZZ4++g__pp__pp3YZZYYZZ@3333'#'7&67>264&"N$0M&M BB'BA U_3%Qz 7!3!33M3M#'767+"&4?547676PS0S d   SSS0S4   c"ZSS!7&'&7676?'76?> //1 .>H H>/1./ 1.>H G>/ 1+G%4&#!"3!26%32+"&=#"&46;5462#"&46;546232+"&5  M             f4  &&Y&& 3T\"2>4..'67&"&'&&7676'32267&'&765&'&'.'&'&676767667>j>>j}j>>j ,   %!  5/   ! I >j}j>>j}j> 3      9!     6* $,'Bl   (0<k"2>4.67#&'&'.'67>76'267&7&'&/..'&'&'&'&&'&6'&'>>j>>j}j>>j       ' W F2  "   #  Ob0>j}j>>j}j>           $  %  .;5 #(.39@ELRX]ci"2>4.3#&75#5'#676#67#6733#&&'&'53=373#675&'3'#&''#63&'673>j>>j}j>>jA7& ]#G&] &A7]R [&iF&\ &A8 8&. 0  - - 1 - 0>j}j>>j}j>#"!P% #"#ErP %cE#"E$!"FE"CO% ON %rE#"E$!""$""!$g$+A$+#,B#* :H"2>4.6'&'&'&'&'>7&'&'>7'.'&7&7&'&'&'&'>j>>j}j>>jh  =.fA    3O" 6   >j}j>>j}j>L,"  # ) >O  P#.&Z+   '"&4?&>7264&"F 6& 2AJHJ &5 E2 JIJ@)"'&'&/&76272"'&/54>3 M F6 #"0S0""5  & &  B/"6@  @5!;&'764'&'764&"'&'7'7>/764&"'764&"'7676Y> .    :Z P.@    a b    >.P Z: "   1 =W ';O5!57>'.5!#'&'5>>.'.>767>'.>767>><4ELc2X 7 -S  R3 (!  A 6- 3Tl41C f  ` 7  a    7    !5!5!!5!Mf33f3f3%!!5!3f3 !5!5#%35#35#!5!MfMMMMf3g333 !5!5!!5!Mff3f3 7#735#35#͙f4̴33 %#'#3#34f4343 !5!35#5##35#!5!MfMMfMMf3333 !5!5!!5!333f3"P[%#"'&326764&7&76327>'672?6'&'54'.#3265>"7#"&54ISo\*h8-U%+' ( "#%, *+(Z  6%'  #  %4  M  #  ' #|  +!%%!!5!3"&46527#53#53#53!5!fg4M-@--:gggggg43fMMM --@-33g4gg !5!!%5#4f44M37'74f33fffg7'3f4'gf3!'7ff4f33fg'7f3Mg%'7Mge75!'7'733ff4f33fg?'73gg͙fge%#'7'4f33f33ffg%''73M?gfM3gM!-767676&'&7>76>76'&   /2o\ <%&@%) $(      A6:3:51*3/S!'-7?'7/'"&462'"&462'73%7'#r4;;43 ;; [*<.'>&5717'7&]2:3\m1$2 * (%TF'-KTF0 .\m>Ms\mc::$2-KTF'-&O2: {{R6 !53'33'33'!5!f@3@3@fg33(5BOk&'&'&'&''&"2?&'&%762'&4&4?62&4?62"7"&4?627.&'&"33264a!  % @ n % 3 Jn n *n nn nm ( $  $$ @ %% o 94 Ps q n* n nFq om * &  %!%265#754&'>7."!5.f{*""+33;#7    7%8' @@&5##5##"!54&#MfM f f4444 7!!"&5463!!"74&"26M -- M >  M3-4-Y3!"&546;#"3!3 --  g-4-9B354636332+"&=#"&=#"&="'"&=#546;5264&"3/ 3 - 3 3/M*  84  44  48  g - $5Bu7656&6&#"3276"2>4."&'.'&4>276&#"3>"767216327>&#"4?672632#"'&'32>4.s] -7_77_n_77_7(G4XhX44X- [&E  !8#,-2/N//Na*7%#}  ,+7_n_77_n_7s5hX44XhX4} ,$  v>{+" , /N^N/ &3<L_2".4>"2>4.2".4>">54&"264&34'&'&'!6'&'&'&'FuEEuuEEuFBpAAppAApB;d;;dvd;;di'!,\,,>,,N    666%  EuuEEuuE AppAAppA;dvd;;dvd;, 1 (,,>,,>,   655$ )Ok4'2674'2654&"26754&"264&'"&=#"&=276767>27>76767".= g ggf1(  (1* " *( * ! 0RbR0     Y  Y  Y  Y /?LL?/8    -o  M//M   #/G#"&46;&546;232!2#!"&46!2#!"&4632++"&547#"&46Z))4  $  >   M  ML-=AEIM4'&/2674'&/2654&+";26754&+";26'7?7?   -   - 3  3  3  3 33333333l    333343/'#'&'&6765.>27&'>7656" 3DC6 #)3- ,>- .5 )`J##K !? a;D;##;D;b@! 2!767676'7'7''70S* f$&__ : 3_X @ KG !n tGI hjNW`n{%"/'&'&'&5"&4?67&547>7#"&4635462354622+>7'264&"7"264&;264'&+"4&+";263264&+"3264&+"-?     ?-#!&  4  ' "" W ED L LYLL@- &  % -@ /: ":*   *:" :/d3  @ ;  3   -=&"2?>&"2?64"/"&4?624'&/;2  =   k  k.     "  =  k  k.   )"'&'7.'76767&327'267'#"'t+&T&+s9&?3 /1v3(#&@@&'R$$K$1 J ~,.- #'+/37;?3!!#53#53#53#53#53#53#53#53#53#53#53#53#53#53#53Mff33g44f3333g44f3333g44f3333g44f33ff3333M33333444443333333333333%.%54'&'&'&#'57'"32767"2>&  )+  !/2F>$' %4% 'O@ ,!MM!,  @{:N00P8''';676?4'&'&'7'"2>&R88/+''+))))$' %4% 'M$$M %>>%)):N00P8GK%&'&'#'7"776?54%267&'&72654'&'&'&'&"'7\\: ".))." %   % j g;;;6^\89HH6E !   '' ,!"3!26=4&#!"&=463!2f  f    !*3<EQZ^!"3!2654&"&462'"&462'"&462"&462'"&462'"&462"&=462'"&4627!5!      M   n!   f \W\W  Z  8WW +/37;?CGKOS3!3546235462#26=4&"26=4&"!7#5;#353#5;#353#5#53#53MfMf    ff3f44g33f44g3344f33@@@@z4444433333333333+/37;3!3546235462#26=4&"26=4&"5!75#35#35#MfM f     ff343g@@@@32#!"&546;73264&"K  j  KMf3*<"264&@  \).@"'8 %2$R$2%  B#! d"36&!%%%%#$  MO7767676'&'6>'&'&/67676&&'&&'&'&''&'3NFKM      $#   !+$ $,( '%("35 !     9     - -( 'H;A"+732#!"&5#"&46;2!#2"&4632"&46  3  M Lf     3g     !!3#3Mf4MM4&/8%>54&"&"'654&"2"&462"&462"&46 * j 6* L   3; '  M %####5#g3f3g3f 1!7&54626327&546327"&='#"' ~l % \ 1U ) R     52'3".4>1R0ʹ1RaS00S0R10S00SaR1-6:>BFJ76"/&4?627&76765.#&#"&4627'7'7'7'71# $~  S$  $B  ~ $2".4>2>4."7/18^77^p^77^8*F**FTF**FsM7^p^77^p^7*FTF**FTF*6R{{  654&#"&#"3!264&'77{<*1  &#,5$%5/R$.a$ *= % 2"$66F4Q$.b$!654&#"&#";5#7#3264&{<*1  &#,5$ZMssLY%5/ *= % 2"$6MssM6F44654&#"&#"3!264&}<*1 &#,5$%5-*=% 2"$66G3$IRx54&'>=46;5#"#2;5#"&&'&'6'.'&765&%"&46274654&+32+32654&4635"&      . .$'S d,    +<76?'5/.   , \./5 ,   \73#3#M͙%7'3]]]]55]]4]]733#MfMMf44 5!5557!'73gg3ggMM&3ML3M&3ML3 7''#37333=\\\{{3{{ 7553#5͚33]4]]{{{{37'#3ggMff&E37'#%#"'&67367654'&'.>##"'&>76764'&'.>33ggE       '       Mff #^#   #6'  (   *  8<!2#!&546!%47676763#!"&=27676762!!8  p     $ 4  ) g   g    3 (09BK7!>54."2"&462"&4632"&467"&4'2"&46!2"&464&"26`@7^p^7 [  V*g > ufB#8^77^8#B4u+7M 0CO264&"7533##5#5467#"".52>=7#".52>=#"'3.'.5f+<=7#".52>=#"'3.'.53264&"7##5#1R0W\1R00RbR00R.1R00RbR0!, \A[0R+<=#"".52>='3.'.53264&"7533'1R0W.1R00RbR0!, \1R00RbR00R1A[0R+<=#"'3.'.5".52>=f+<=#"".52>='3.'.53264&"'7'1R0W.1R00RbR0!, \1R00RbR00R1A[0R+< .?2>4."".52>='".52>='".52>=1R00RbR00R11R00RbR00R11R00RbR00R11R00RbR00RfM  MfM MgMM!$!2+32!546;5#"&5465!73Mf  3  3 X 4  4  紴f 2".4>'7''78^77^p^77^MM3MM3MM3MM7^p^77^p^7MM3MM3MM3MM35!353'35g34MM͚40&'.767676?>327&67626&  JA)   7* !@$7    @ 377/7676!"!$T  $ !!"!$+T  $ #!5#'.#3576&?f3d! g@q)3C!͚f @q) ?677'dE ͏=gE P 5#5!5#5!f33f33g33f33 5#5!5#5!3ff33f33g33f33 5#5!5#5!f33f33g33f3332654&'5>54&#532#32+t5=;C#')8+3-!&',)J'8*3!'733怀MgfM '77'7ffMfffff4ff47'7#7!75#35'!'3:: f `f` f :: f `` fS`` g 99 g `f` g 99 g$235#67654&"#35&'&'&54613*^%UT%] 3v751#33"'/DOPC/'!33 !157 3#3'735'75!#7'g8aga8";aga;3ffa9Gf9aG!_9ff9_ %.4."2>'#5467>4&#"'632&462"0RbR00RbR0(   !%%&1R00RbR00R   ! O "53753355#%53535335353Mff3ff3泳fM33M3ZY3333M44L33M33 5!5#35#35#5!MMfMMMffg444444ff #3#737#73z6H66H6f334 !!!!!!!!3ffff3334333 #'+/37;?!55!7#53#53#53#53#5!55!7#53#53#53#5#5!#53#54fM33433f4fM334̀33͚ffM4444444444ͳ33333333L444444!$#";2654622653264&7M 55  5?5  3   Mgf#S\`dh6235#767654'&/&""#6򥊢'&#"632632+32#"'"'26542735#35#35#35#)H,  1        '3! )       #Of ' (,RV5#?73#5#5767>4.">273#4&#">32+32#"&'32654&'5>3#! I ,    f!      !Mf  E3   2K   "5#5##553%5#5#5##5#5#ff3ff3泳fM3333ZY3333M44L33M33!#";2654622653264& 55  5@5  3   M$,!57264&"732#!"&546;!55#335=CD< '   '44L4MMM  3 <<44$1!57264&"4&+!57#"3!26'#'#'3737=CD<  ''  f M335134MMM3 <= ش'74'&'&&67'32674'&'&&67'326 -##;#)2%!+ -##;#)1& +F24;C/7'!F24;C/7'$"/&=4?62764/&"2n-9-7768677!$#";2654622653264&5M 55  5?5  3   Mf/7=EK27&"3275#"&463'#373732654&'5>54&#532##76732+7''  -"$! 9:;67  n,df $&)8+o @+  ( $  MNAGORZ%267#"'&'#+5##'##7#53733532367>2.#"3#%3/73>4&#1#3+3264  !7$:".- ! .   KK p k,1 @@++@@@@      U* D+  %!!5!#53#53#53#53fg4Mf3444333 %3#373'#7S0i4f0k R&M'} "&"&46273#"&46273#"&46273# 0@ 0@ 0M  3  3  3g#"'&=#27655#f3$63y%'#- ''-33!58;>'?64&"'6?>'3''7.6?27'#'7'' 6+' .= '99͚4f3ͽ#89+$<'!-͚4f399' *'. ?7 'Agf3<$+98#(-!gf3 #'+/37;?CGK##5#3533#5!#5#5#5!#5#5!#5#5!#5#5#5!#5#5!#5#5!#5MMMMf33334"&462%"264&#"264&**3*******-%54&#!"3!26'"/'"'&?'.7676g!hd p67p dh  `h_11_h`  7%>=4&'&7>7>4  {.z.Ks :  !2#!"=47>.'&cS000ڬ  ....ݎcc#)!"3!26=4&#"&463253'757'5fM* ff&&LL&&MMg+n&'&MM&'&'M!"3!26=4&'757'5fb&&LL&&M&'&MM&'&'M$-!"3!26=4&#53'757'5'5'7264&"fȳf&&LL&&M.4 ͙s&'&MM&'&'M@&.>-39!"3!26=4&'&76?'76?>'7&'757'5f ! !  M &&LL&&M " "   J0&'&MM&'&'M#!"3!26=4&'#537'757'5f33f&&LL&&M$1."g&'&MM&'&'M%)%4&#!"3!262"&46!!52"&46!!5 f    W4 W3  f 3#35#7'7'M33ffn$$n33f4n$$n3'5'7#57!3#3$h334fO$M33o73537#5476;5&#"#3K> H & *3??3I. A3-6I$!2+537#546;5&#"#3#"&546Jl h5=  %+55  >'8+'-> l #!2#!"&5465!735335353353  f MM  f MMfMM576762'./5M!!.T.!!! 337#7567'&'&'&3M#.1+#+51&3 $0C"#54&"#54&"26=>=4&3265""26=>'4&  - -%& @@ @@ T  T  ,2#(  (#2 !!!5!55#7#̙L44͙̀gf%6"&46325#"&4632546 4J55%3"%44%3 %55J4 3 ,4J5 &#"5#"&=46;232+'#"&=46#M33Mf$/MMfLL&BK32#!"&=#"&5463!2!!4&"2667676763#52767632#+2  2  K   3      2 K  @ c ͚      >!2#!"&546!4&"2647676763#!"&=2176767632:t**M       tgf+k "  3    )74'&'&&67'32674'&'&&67'326 5)*+#& ;+'2 5)),"& :+'2!%R:"&-2lA-'!%R:"&-2lA- '092"'&476264&"3264&"3264&"2"&462"&46}90099009     = 0))00))0        3  !2%46373#37#37#3!73 4q43M333M f MMMMMMMgf #&),/3#7357#53%'7'35#!#53#57#7'533&M̀&''@'M3&'M''Z&@&Mͳ@&@'MM'& '''g'&&'M@& #77'77535''3'7.E'H.H'E.s'E+.E..H̀.H'E..E'E+'E..HE+.E 357''375#!#77'W$H..H$H.H$H.f.H$H$H..$H$H.H$H..H$H+4=.+"76767627>'&##5#53533"&4627"&462 (( '&   1 s+85W      W58.& *   #3'.'&>727.#"32>5'&pA(2E9",#;H&7^88^7:Z1&L(1E2";$87_n_73[:!2#!"&5465#!5#5#!5#3  f f3f f   ̙͙ !-;J2>."2>."2>."76&"26'"&/&63272"'76'&'6 " "n     1j2 '  " *- -* " **#)$$$$n/88/n &6a ](//(] `7&'7&'"/&47%&'6$Y$v;Vi?^$W$!x%  " #5#3533@@@@M%6767>'&".#&=1,%:11:%3,1J+)1/U..V_)+&<@&"&#764&'677&6762&'+6267>7.26 >**I{",+ E"1/Im    !i< ?q$  rf*<>J? (+ H !.BK8  ;  39;3 f<)%#&'&'67673264&#!";#"3!264& 0.   0.   f6 ''!56 ''!5 #)/575##5335335#53#353373#5##'#3#533'77'7f333$_!3#&L3;;YY.;;YYf4433ggWWP@@Pf:;ZY;:YZ #<@DHL%!!>?6.#"275#5#'"276?54.#5#5#5!5!f  рW#  MMMM43     C3/  4L48<@D%!!>?6.#"25#'"276?54.#5#5#5!f   #  瀀f4t      ff  533%##5#5#535337'#35fMffMMMfgfMffMffLMgf4&"26>.>.f4.#"5>@529925@4.".4>244  ?j==j~j==j?1R00RbR00Rff=j~j==j~j=g0RbR00RbR0 2".4>4&"265#8^77^p^77^R47^p^77^p^7g ܚ %)73535#5##32>4."2".4>!5!4334331R00RbR00R1#;"";F;"";f333330RcR00RcR04";G:"":G;"3 %)##33535#'"2>4.".4>2!54334331R00RbR00R1#;"";F;"";f3333330RcR00RcR0";G:"":G;"33 %"2>4.".4>2##33535#?j==j~j==j?1R00RbR00R4LL4LL=j~j==j~j=g0RbR00RbR0L4LL4G_4&"267"&4627"&462'"#"#;276767676=4'.'&'&#+"'.=4676;2E(:((:($=X==X= %" #%%#  #%!"63%*.3%((:((,==X==B 1  "% %"  #$%#T3%!!--!!- !2#!"&546!!'#5!3!26Mf  Y4Mf4     3ͳf  3#3#73#3#!!3ggfgg?7M4gge 22+"&=4&/&'&54>53++"&5#"&'B'   f   'B&  3  &B'    'B&j   "73#7"264&5#3547>354'&'&@MM&'LL*M!<3~&&+1 %)26?C7!2654&#!"2"&46!!52"&46!!52"&46!!52"&46!!53  f = W4 W4 W4 W   f 33f33g33f33 %7>54&"72"&467'57M&5% 2>4."8^77^p^77^8#;"";F;"";7^p^77^p^7";F;"";F;"  %.!3'7'7'726'&/72"&463gMMf...M...M...' 3  ggM 3  4  3 f  =   '!3'54&#&+"276=7&3263gMMm M  ggM WU;  !'7'37'3g̀33MMfMM33g34MLLM43!3'3gMMggM  #'!353'355!355#'355!5#3gMMfffgMM3MMMML4#!3'5#3373/"&4627#5#53gMM3LM vMMggM癙4444L444M  $(,048<@!5#5#35#35#5#35#35#5#35#35#5#35#35#5#35#3g̴MM4MfM4MfM4MfM4MfM4ggMM33334 !353'355!5!5!5#3gMMfgMM3M333!3'54&+";2653gMM M  M L3ggML  L 3(;O#"++"&7'#'&'.76?>76#67654'&'.'6&'&'&7>9M  ,&:  !!  !  h2! 9 #343   *(n   7!5!!5!!5Mfff4444 7!5!5!5!5!3334 5!5!5!MMMMMM 7!5!5!5!5!Mfff3334 /54&"26732+"&46;5.54622654623**gI73   36J4&'&'"2>4.".4>2        &7_77_n_77_70Q00Q`Q00Q   $$   "' 7_n_77_n_70Q`Q00Q`Q0&;IR!#4&#"&#"!72>?6.#"54.#'"26?2"'654&'>462"&1"(    p ! e))9 #x%%"1      ):)Y%5#3'35#'735#7#35ffLffLffffLffLffLffffLffLffffL26?HP54&+";26'2"&4654&++"&=#"3!26'!54&"2674&"2627"&3 4  4 3 MDM4  M  &~&:N:M  M X4  U%32+"&=46;5#32+"&=46;5#32+"&=46;546;5#"&=46;2+32  f    f    f    f   L  L 33 L  L 33 L  L 33 L  L 3 ''7'77[[$[Z%[[%Z[[[[$[[%ZZ%[[ ''7'776[7Z[6[[6[[6Z7[[6[[6[[7'#7! 3'3M3f4<E267632&"632.#"#476767&#"67632&'&#">4&"26   *g!25!*/,/RD#(, #L   $1+& )A F@ZC=6)%25' # >&/.6?>"&4?64&"6?64&''&'&67676?@~0 ~~~  0,  1BBBB ?~0  @, ",2:7#3264&#!+#532+5327#3##535!533#3264&M.i$$_3&&Mf  3fffff4 *3<E7!654."7462"&462"&67671"&4462"&7462"&7462"&`@-7^p^7tN&%%'- }M8H7^88^7H ) L (LN  -   -9J27654'&#"#27654'&#"7"327654&4&#"3267"32623254.1  P   "#R9&&42+&9)'P55-A!!A- -8'&6?6767'&'776?67676''&76?>5  M  gq  :`  /p A   M f N  q.  BY  q)  A   M  ="6?4'&67632#&=674&1676?32>4.6(&' !37#    '>"+IE(5 P!,+" 0"{'2,$ *FSC& )-15!5!5#%&#"26757&#"26=4&5#5#( * gg33f33g443u)Y)33f33 "&5!5!5#732+"&=467'5#5#gg  XUUggg33f33g444  43M33f33"676.5&'&'&7676.76&%2?3276?'\O.O y=:6EN/A O.O   a }O.Ou`02 >EN3F O/R# b    .>535#5##3)QllQQllFggLgg(llQQllQgLggLg ##5#53534444 ##5#5353MMMMM;%'&4632>54&"264.264/.>676&Ri   .B.i#"YXD"ii0BA! i   /.Ci !CZY!iiBA0 \% 4}7C#"767>;'&+"#76;2#!26?6&+54&+"#"%#7676;2fR ( T tf7  + R aq ,=p:  di < #  % $ g15.5462264&"f+! !+264&"3276?z"11" ."!!0!R S 0E1%'"/"" S S #'+/%#3#3'#37#5!#";!5326=4&#535#53#533MMM33  33 Y4MMgg  fM  8"3'656&'"35.'>75+"&=46;5>232  ! EbOObM  (6(    $$ n '' UMMTTM  g '&&' $+3!354>32632!35471"54'354f";##;"3 -- M433#;" ";#33*#-S3 -#*3l"33" 5##537353'#5#'735gfM3M3gffL33338.3L38.33-6FO%4&"264&#"'#""&"32>=>462"&'"'&762776'"&462<<C GB6 & 0RbR0 (%*#!" 'a  n'% ":"":"  G,355#";#".4>̀*==**F**FMgfM4.".4>2'35?j==j~j==j?1R00RbR00R=j~j==j~j=g0RbR00RbR0445%"#4'723264&">54&"3267332656&'l %%5&#,A,<*. x(.-&5%% l' ,, 'x/+<- , !%34'&'&#234.#2264&"~O87\`oZMK,-OI}I'E7 - 3m^\57M,,ILYH{GM6E%, ,y'7H$lxH$k !!537535353!533533fg3f3gfgggff333MggMM 5#!5#5#!5#f4f͙ ).'&/&'&'.>64&"27#     ([!6HI 5J44J$c)    % !IH6K44K4$-R&'.'&#537>764&"26&>7>75673#'.     vD  "''" U&4&&4&     vD  !''! l    L{&&4&&R    L 5>75!57!3#̀:$0%[S3F+N3fL ,ENN3) '"%2"&547'"&4627&5462"'6s --@-pB--Ap-@--Aqq-@-- ;-@-; --@-;  ;!3'&'&'&'&'&'&'&52767$#.!6  @@   ~\C+  !%).3 !83'&'&'&'&'&'&'&5276737676765'&'&'#$#.!6  @@ #'(   ~\C+  !%).3  # #$  7#535#33#3#344gg6^6R44g4f444g 75!%53735;#'5#5#34433MgM3332+"&546#73  ff  f {,2'&#"1&54632'&#"1&546267'"&'  7Gu"bxb"u{    SD 8FF8 DSM!3!'LM #*14."2>%'>&'7"&4627.'677^p^77^p^7& `1 ` &1*` &1& `18^77^p^77^` &1P& `1**& `1?` &1 0B"2>4.'."'46767"#3'.&'&76'&'&.6767_77_n_77_( )^, 2g/ .j5  :y40HC3 ;IS6 7_n_77_n_7    /   5! 7'7/'7'7MiiM=4&WXAB' &BB  BB& ' D276527652765276='!35335&'&'&5"&'&5"&'&5....MfMf //                 !7'7'?M͡,,$11$Md1$+.!73%#?'73>'5'3J@d&H>(25S,.,MMNAv.$Mg9M  %535#5##3!#3#3#3!!h^^,__ H'].]].]5b!b!bh  #33535#5!!!#3#3#3^^,__ '].]].]5hb!b!b  #/75'7'!%#5'#5'#3753753''7'77!! PT'SP(PR'RP !! F!5B..h<;;+PS'SQ'PR(RP  %#5##3353!#37#37#3!!bJ$JJ$J 5JJ"JJ5bbbbb  33535#5##!%35#35#!!#3J$JJ$J 5˄[JJ"JJ5Bbbbb  #%'7''7!'#'35#735!3#3#!PQ'RP'RT'TP` !-. 5 !PR'RQ&RT'TQ~5!b!bb!b!b!2#!"&546!3f4  $  f 4 3'%264&"L+ͳf++  #'!5!#5#5!!5#5!#5#5!#53#53#5̳fg3fffffMMMMf3333M!2+5#"&=46!!!!#3f4/4M334 !#537#535#535#53Mf34333 !5!5!#5#5!#5!5fgf33f3333g3333f33"7"'1.?64&+"&5471676;#%#53  M 36N 333 F   t  !21;2+53>7>3#F  M 6N33 FVT  t  "4Q_5&%7>&'776&/&326'/.?>323!52645;26=546;+"&&~'# #  ##  fI     ]I''HH('I` F ` F FaF` ML*N f  -f H1 <BJQiy1&%7>&'76.6'#&176/&726/>67.76?'"'&'3!52645265'3'72&#647.77?7#"&~'%OM%OM3"   ' .`  q6 %* U5fm7&'3' I=+Hs4sRQ  #/0 # ?6M E3ffK277#     $132!546;>23."!+"&'3M  M%.%bMk    X   337375#5#5!#3'#3ER..K#@g8O.@$$g$$C));33Cddd%#"=3264&+54&"3265.d!!!-: ! M-66 !!0#"'327.'327.=.47&54632676 :@RNB A30  !* #e:7'$   @<@%**($4"  )2,4 '7"#5532+32>4.3*==**F**FMgfM'2"&46476?'&'1'&7671'&'&>i~i>>i~i> ,2,,2,"  %  "?i>>i~i>>i  y 7>'8D"#$(#j54 /2"&46476?'&'1'&7671'&'& ,2,,2,"  %  "  y 7>'8D"#$(#j54 +54&"#46232#!"&=463'>54&"3*3327.#"#?3#"&'32>73>(.+F(,L25YZZ; <(.+F(,L25&33(F+gg3g'21 (F+#23'3.#"'>".'#7#3267-L26ZZ< >(0+F,M26ZZ< >(0+F(G+ff'22 (G+ff'22 75#7#5#!5#MM4444͚+4A%4&#!"3!26'!!!2#3#3#!"&5464&"26'"&5467  f f    7'&'62"&4"&'672>=4&')EG:+")@>:)  ;i!/I/90 I/!i :9*!6 : (  @ 92B'1/$B29 2".4>7#64&"28^77^p^77^U L 8 $#7^p^77^p^7V  5#5##!5357##5#53533M433MM3333333!2+5#"&=46'7''73M@@@@@@@@@@@@@@@@ '#'%%"264&7&#".#"67 3 &   1QQ1 L$gg  9&.0''0.&#+%4&#!"3!26'2"&'>4&"263!5353  f +O OVO O^**3MM̚  ($%((%$(L+ (,09=AJN%4&#!"3!26!!7353353352"&46;#73#'2"&46;#7352"&46;#   MMMM ,ff ,ffM ,fffM  >gM333333  M  333   !!7627'$n.$$n.%6@.7327>&#'&'&'&'476;2767>am_2L45<2/1S ?*  ) n/1:am/Mam >' !   AMSY4."2>'7>&##'>32&1'2?>&#"'1&305676'.547#"'EvvEEuvEWe;,P   N &!=4:FB"#EvEEvuEEvD /8   '7W '2;?jpC2*  MW]c4."2>2".4>'726&#+>32&1'2?26&#"/"3?676'%.54#"'EuuEEuuE?i>>i~i>>i N Z5'H   EpC7a3?; FuEEuuEEu,>i~i>>i~i> *2  #1N ,n_d<.O %&+"3;2?6'&+";26/;)@: @: @AT ;Rq En p rs "2>4.#'778^77^p^77^H"S"B"7^p^77^p^7t >#'7|""S"Bt =&'&'&"7276765455-$QP 5-$QPx =v=9?;M     " - +6 a t      V &6dashiconsRegulardashiconsdashiconsVersion 1.0dashiconsGenerated by svg2ttf from Fontello project.http://fontello.comdashiconsRegulardashiconsdashiconsVersion 1.0dashiconsGenerated by svg2ttf from Fontello project.http://fontello.comT      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUadmin-appearanceadmin-collapseadmin-commentsadmin-customizer admin-generic admin-home admin-links admin-mediaadmin-multisite admin-network admin-page admin-plugins admin-postadmin-settingsadmin-site-altadmin-site-alt2admin-site-alt3 admin-site admin-tools admin-usersairplanealbum align-centeralign-full-width align-left align-nonealign-pull-leftalign-pull-right align-right align-wideamazon analyticsarchivearrow-down-altarrow-down-alt2 arrow-downarrow-left-altarrow-left-alt2 arrow-leftarrow-right-altarrow-right-alt2 arrow-right arrow-up-alt arrow-up-alt2arrow-up-duplicatearrow-upartawardsbackupbankbeerbell block-defaultbook-altbookbuddicons-activitybuddicons-bbpress-logobuddicons-buddypress-logobuddicons-communitybuddicons-forumsbuddicons-friendsbuddicons-groups buddicons-pmbuddicons-repliesbuddicons-topicsbuddicons-trackingbuilding businessmanbusinessperson businesswomanbutton calculator calendar-altcalendar camera-altcameracarcarrotcartcategory chart-area chart-bar chart-line chart-pie clipboardclock cloud-saved cloud-uploadcloudcode-standardscoffee color-pickercolumns controls-backcontrols-forwardcontrols-pause controls-playcontrols-repeatcontrols-skipbackcontrols-skipforwardcontrols-volumeoffcontrols-volumeon cover-image dashboard database-adddatabase-exportdatabase-importdatabase-remove database-viewdatabasedesktopdismissdownload drumstick edit-large edit-pageediteditor-aligncentereditor-alignlefteditor-alignright editor-bold editor-breakeditor-code-duplicateeditor-contracteditor-customchar editor-expand editor-help editor-indenteditor-insertmore editor-italiceditor-justifyeditor-kitchensink editor-ltr editor-ol-rtl editor-oleditor-outdenteditor-paragrapheditor-paste-texteditor-paste-word editor-quoteeditor-removeformatting editor-rtleditor-spellcheckeditor-strikethrough editor-tableeditor-textcolor editor-uleditor-underline editor-unlink editor-videoellipsis email-alt email-alt2email embed-audio embed-generic embed-photo embed-post embed-video excerpt-viewexitexternal facebook-altfacebookfeedbackfilterflagfood format-aside format-audio format-chatformat-gallery format-image format-quote format-status format-videoformsfullscreen-altfullscreen-exit-altgamesgoogle grid-viewgroupshammerheadinghearthidden hourglasshtmlid-altid image-crop image-filterimage-flip-horizontalimage-flip-verticalimage-rotate-leftimage-rotate-right image-rotate images-alt images-alt2 index-card info-outlineinfo insert-after insert-beforeinsert instagramlaptoplayout leftright lightbulblinkedin list-view location-altlocationlock-duplicatemarker media-archive media-audio media-code media-defaultmedia-documentmedia-interactivemedia-spreadsheet media-text media-video megaphonemenu-alt menu-alt2 menu-alt3menu microphonemigrateminus money-altmoneymovenametag networkingno-altno open-folderpalmtree paperclippdf performancepetsphone pinterestplaylist-audioplaylist-videoplugins-checkedplus-alt plus-alt2pluspodio portfolio post-status pressthisprinterprivacyproducts randomizeredditredoremoverest-apirsssavedschedule screenoptionssearch share-alt share-alt2share shield-altshield shortcodeslides smartphonesmileysortsosspotify star-empty star-filled star-halfstickystore superhero-alt superherotable-col-aftertable-col-beforetable-col-deletetable-row-aftertable-row-beforetable-row-deletetablettagtagcloud testimonial text-pagetext thumbs-down thumbs-up tickets-altticketstide translationtrashtwitch twitter-alttwitterundouniversal-access-altuniversal-accessunlock update-altupdateuploadvault video-alt video-alt2 video-alt3 visibilitywarningwelcome-add-pagewelcome-commentswelcome-learn-morewelcome-view-sitewelcome-widgets-menuswelcome-write-blogwhatsapp wordpress-alt wordpressxingyes-altyesyoutubeclass-wp-font-utils.php000064400000021270147206410120011107 0ustar00 '', 'fontStyle' => 'normal', 'fontWeight' => '400', 'fontStretch' => '100%', 'unicodeRange' => 'U+0-10FFFF', ); $settings = wp_parse_args( $settings, $defaults ); if ( function_exists( 'mb_strtolower' ) ) { $font_family = mb_strtolower( $settings['fontFamily'] ); } else { $font_family = strtolower( $settings['fontFamily'] ); } $font_style = strtolower( $settings['fontStyle'] ); $font_weight = strtolower( $settings['fontWeight'] ); $font_stretch = strtolower( $settings['fontStretch'] ); $unicode_range = strtoupper( $settings['unicodeRange'] ); // Convert weight keywords to numeric strings. $font_weight = str_replace( array( 'normal', 'bold' ), array( '400', '700' ), $font_weight ); // Convert stretch keywords to numeric strings. $font_stretch_map = array( 'ultra-condensed' => '50%', 'extra-condensed' => '62.5%', 'condensed' => '75%', 'semi-condensed' => '87.5%', 'normal' => '100%', 'semi-expanded' => '112.5%', 'expanded' => '125%', 'extra-expanded' => '150%', 'ultra-expanded' => '200%', ); $font_stretch = str_replace( array_keys( $font_stretch_map ), array_values( $font_stretch_map ), $font_stretch ); $slug_elements = array( $font_family, $font_style, $font_weight, $font_stretch, $unicode_range ); $slug_elements = array_map( function ( $elem ) { // Remove quotes to normalize font-family names, and ';' to use as a separator. $elem = trim( str_replace( array( '"', "'", ';' ), '', $elem ) ); // Normalize comma separated lists by removing whitespace in between items, // but keep whitespace within items (e.g. "Open Sans" and "OpenSans" are different fonts). // CSS spec for whitespace includes: U+000A LINE FEED, U+0009 CHARACTER TABULATION, or U+0020 SPACE, // which by default are all matched by \s in PHP. return preg_replace( '/,\s+/', ',', $elem ); }, $slug_elements ); return sanitize_text_field( implode( ';', $slug_elements ) ); } /** * Sanitizes a tree of data using a schema. * * The schema structure should mirror the data tree. Each value provided in the * schema should be a callable that will be applied to sanitize the corresponding * value in the data tree. Keys that are in the data tree, but not present in the * schema, will be removed in the sanitized data. Nested arrays are traversed recursively. * * @since 6.5.0 * * @access private * * @param array $tree The data to sanitize. * @param array $schema The schema used for sanitization. * @return array The sanitized data. */ public static function sanitize_from_schema( $tree, $schema ) { if ( ! is_array( $tree ) || ! is_array( $schema ) ) { return array(); } foreach ( $tree as $key => $value ) { // Remove keys not in the schema or with null/empty values. if ( ! array_key_exists( $key, $schema ) ) { unset( $tree[ $key ] ); continue; } $is_value_array = is_array( $value ); $is_schema_array = is_array( $schema[ $key ] ) && ! is_callable( $schema[ $key ] ); if ( $is_value_array && $is_schema_array ) { if ( wp_is_numeric_array( $value ) ) { // If indexed, process each item in the array. foreach ( $value as $item_key => $item_value ) { $tree[ $key ][ $item_key ] = isset( $schema[ $key ][0] ) && is_array( $schema[ $key ][0] ) ? self::sanitize_from_schema( $item_value, $schema[ $key ][0] ) : self::apply_sanitizer( $item_value, $schema[ $key ][0] ); } } else { // If it is an associative or indexed array, process as a single object. $tree[ $key ] = self::sanitize_from_schema( $value, $schema[ $key ] ); } } elseif ( ! $is_value_array && $is_schema_array ) { // If the value is not an array but the schema is, remove the key. unset( $tree[ $key ] ); } elseif ( ! $is_schema_array ) { // If the schema is not an array, apply the sanitizer to the value. $tree[ $key ] = self::apply_sanitizer( $value, $schema[ $key ] ); } // Remove keys with null/empty values. if ( empty( $tree[ $key ] ) ) { unset( $tree[ $key ] ); } } return $tree; } /** * Applies a sanitizer function to a value. * * @since 6.5.0 * * @param mixed $value The value to sanitize. * @param callable $sanitizer The sanitizer function to apply. * @return mixed The sanitized value. */ private static function apply_sanitizer( $value, $sanitizer ) { if ( null === $sanitizer ) { return $value; } return call_user_func( $sanitizer, $value ); } /** * Returns the expected mime-type values for font files, depending on PHP version. * * This is needed because font mime types vary by PHP version, so checking the PHP version * is necessary until a list of valid mime-types for each file extension can be provided to * the 'upload_mimes' filter. * * @since 6.5.0 * * @access private * * @return string[] A collection of mime types keyed by file extension. */ public static function get_allowed_font_mime_types() { $php_7_ttf_mime_type = PHP_VERSION_ID >= 70300 ? 'application/font-sfnt' : 'application/x-font-ttf'; return array( 'otf' => 'application/vnd.ms-opentype', 'ttf' => PHP_VERSION_ID >= 70400 ? 'font/sfnt' : $php_7_ttf_mime_type, 'woff' => PHP_VERSION_ID >= 80112 ? 'font/woff' : 'application/font-woff', 'woff2' => PHP_VERSION_ID >= 80112 ? 'font/woff2' : 'application/font-woff2', ); } } class-wp-font-face.php000064400000024016147206410120010646 0ustar00 '', 'font-style' => 'normal', 'font-weight' => '400', 'font-display' => 'fallback', ); /** * Valid font-face property names. * * @since 6.4.0 * * @var string[] */ private $valid_font_face_properties = array( 'ascent-override', 'descent-override', 'font-display', 'font-family', 'font-stretch', 'font-style', 'font-weight', 'font-variant', 'font-feature-settings', 'font-variation-settings', 'line-gap-override', 'size-adjust', 'src', 'unicode-range', ); /** * Valid font-display values. * * @since 6.4.0 * * @var string[] */ private $valid_font_display = array( 'auto', 'block', 'fallback', 'swap', 'optional' ); /** * Array of font-face style tag's attribute(s) * where the key is the attribute name and the * value is its value. * * @since 6.4.0 * * @var string[] */ private $style_tag_attrs = array(); /** * Creates and initializes an instance of WP_Font_Face. * * @since 6.4.0 */ public function __construct() { if ( function_exists( 'is_admin' ) && ! is_admin() && function_exists( 'current_theme_supports' ) && ! current_theme_supports( 'html5', 'style' ) ) { $this->style_tag_attrs = array( 'type' => 'text/css' ); } } /** * Generates and prints the `@font-face` styles for the given fonts. * * @since 6.4.0 * * @param array[][] $fonts Optional. The font-families and their font variations. * See {@see wp_print_font_faces()} for the supported fields. * Default empty array. */ public function generate_and_print( array $fonts ) { $fonts = $this->validate_fonts( $fonts ); // Bail out if there are no fonts are given to process. if ( empty( $fonts ) ) { return; } $css = $this->get_css( $fonts ); /* * The font-face CSS is contained within and open a