From 34e804d455f1a50f849fdf0d78871d998d2f0c09 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 22 Mar 2015 15:15:23 -0400 Subject: [PATCH] Add Meteor documentation --- assets/images/icons.png | Bin 28401 -> 28657 bytes assets/images/icons@2x.png | Bin 75642 -> 76383 bytes assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 5 ++ assets/javascripts/views/pages/meteor.coffee | 7 +++ assets/stylesheets/application-dark.css.scss | 1 + assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_meteor.scss | 15 ++++++ lib/docs/filters/meteor/clean_html.rb | 22 ++++++++ lib/docs/filters/meteor/entries.rb | 29 ++++++++++ lib/docs/scrapers/meteor.rb | 51 ++++++++++++++++++ public/icons/docs/meteor/16.png | Bin 0 -> 302 bytes public/icons/docs/meteor/16@2x.png | Bin 0 -> 696 bytes public/icons/docs/meteor/SOURCE | 1 + 15 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 assets/javascripts/views/pages/meteor.coffee create mode 100644 assets/stylesheets/pages/_meteor.scss create mode 100644 lib/docs/filters/meteor/clean_html.rb create mode 100644 lib/docs/filters/meteor/entries.rb create mode 100644 lib/docs/scrapers/meteor.rb create mode 100644 public/icons/docs/meteor/16.png create mode 100644 public/icons/docs/meteor/16@2x.png create mode 100644 public/icons/docs/meteor/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index 10f469f51969b282187b6bb6d680d0f2d08ec035..eb4fa4894e5344c4727f2f310cc8aa90026b5063 100644 GIT binary patch delta 9755 zcmV+$Cgj=i-2w660gxjBZ?Pl|N`D1VZmBgixg@T@<85 zQ4#4NCiLE=C?LHnAT0!>NGFtpPy$k(%^VKw zhdXoc%zN*RgEmh$;Enkt+5zTgulKaJ)8{2_Tl+ux;MH=Lw6tUbco~~l<9~S8B(mV> zQ~K0zD6Qk$fUGU2TEyB<1|wWb0ZQzSSiK+M8z&>-dwUQG1G>Xl2NI&-I7Gvz=rcJL z#}=wV`(BNqJ+FR4dkS_(5HjU?gAfj2*o%GFv`M@r^#*`TqD%WW(p(%D`>AU?dUWp` zQZEx@L`+Ck>Wm;Id@u##0i^9mE+8Pu zAQ;MYz839DjltO59>qt!QsKs_ zJ}pVC%>E^&+S;RvpR|1X20?(OsF;?Ye)5V7u0>xp- zwOkR)skv*VVX!E9nyMH3?!+rlBfJJ|xC_n{e z^egrrxBcD{I}%YvGbySBQNNMGche! zBNF??VmE=kpuI%&mF5vFyNPJ_eu}gxMX5B&)8&W#69#8KyS5iW#!0%eeYe!FsoHy2cf{T*9zO?-;J z-aVq)$*2zXGos%&063cm6m@Qk>R8{xeYme8jrtZpW$9D&F)Ouie!ZBMKQ0_feT#`U zOW$I#wtwlm_v@p$jrzR)n0goejNAASf;!*F&}DAjK!g{xr+@yTSn~W++or+cV00C*_*TD0fF0s;ef)URKE6H+O)aB2I|oqQNUZFxG@uCV)~MlKcx zPbEaZF4VJ8<>S@>#CeAiJ~+-`*&yWlr`_=bK0qL{lYvC!JCHa~v0S|@Jhs`r{-A6~4`pqB70&vO_7 zbN@tz7?}4Js#$YUPm%rS)#?lH9&##n1Sj;$%yoIksL} z|E`Cv$FblA#j&f5@8%>EQL^P?VzMPIRe#hoPoGFmn=>&vbwH16X+7E;Ngq3`fd(oF zCcPWCsqeFLdK?SeY)7r&as7FYV~r?Y5PXDA1=k7 z?EE`-?##b^`}X`BH*T;NL*HGycCDo1MDuA@rIAnbs@Hs)SE1YqV=z{MVPEmd;D5n` zDYsJoUMm58DuuenvH?re<_NqzjsRG=Vd0dqv&UXVDbM2N%DO?Tpq@}Z<)1P{p50PY zQ?WEj#}Wpg*1UUH90a(Bl25o?zkZ#rUcEZpsQ?0`p!aK2mG1R(B_6|LC4d(kLB^+R zCQX`T)5M7rY4qsPeDBXm^m$5QWq+1(QJJF<%0FrzG+Q~KVBw#GXLj?w^pdipb+sbI z;ySm9dv*+8iF`HQShaY(tFhum4?{?-yZal~4@g_L>bAJKy?L~fTWAvc#2bypXO%5m z(B2fda>vTS(KDh`zCkL;D!xX0PN%=7rOUWeAH0&!?B9^&BLO*n*?NTv6@SV;?^IY6 zQRqVm$JU;SorpBR$RNTC(#@MU0pWd-3V|2YIS;@pS%M}_TNmQ73JfsCIRbF<L&)%j@mV01zHkdPP`WI) zN!?1(i5aeBtXO~wzkiySu72yz;ySm9d)$ZnTBo*iZu-_&J&bh1V5U=^20BvNi#Am< zWv+4a|7NICGao}Zqmtj)1?9ZyP$f?~<>gJM^=7*1;r%$?)zI!r`jv*`=8ikZfaO%& zpU2r@=&LGWEd_XLEnNPDTD2QV`SZWZzu#a-o*ZB;hn7LVxqrI4_Jck|{Z~L4WfiXH zpggFB&-Uw%n>LR+_Kcz){RYyfgGW=Z0Yj*6LJeFvP@Z^5JQG~Yei##^L^nR7YQ$zsC=uG zR(p;DFXuUb4uDadH{KUmo^VaaCRJu}o!i7c?!$ehw^1&5>Uy1Z(^+-}g{B|&GG^{` z_s;miGtjc3f_LgVSKmG}D|ml0yR;!~x?6xH&dr#4Sbt~Ahz$-)hsS)H=aoWS|1qu{=JY~*hhR&||UX`#`B;QZiRO9_x0<3eW7ARl7ya(Xh4%h}j3)TJL z0UM&<0Yz;HJVfUA1iar@VF zrAxOjUw^(lguR=DEEF09S%Z`k^17M|Jie|WuM0u<)BuL!-OIDqE}(l4?~}9~dB7n< zh740ryQ^2Prdzje(WXtCXx+MXoZ#lQD@~t1U3f$30q3gVYYgx*0TsiyNpbW*&@5#X zJme1a+l_u*RCn@2KbR^Ppw$f84kIo7q%55UY=02fxlP>TKHOK1Q7*Z7eTgZU;)266 zk8eS)2gzDl-Z^9PbPZ=(UhP%8L=(~%P~(Q_q8Ot>n(|{x*-hH^Gf?T zPs?|QGicfBtC2gYOj%DJFLq_Tyu3_+>M>wj1a${wAE1mt*$M5B0OMs`Ux98xze7h9 zwSQsSN_vP>8*#rJpt%c|(D&;$)1tMTY0~t$w0z|{`ZRhnHS7HaRj(UCv*s_N+c)V1FtGuujOe-+joW2}koXkXk53FtS`gR07&z zteF2*`C3Lh59Gk6CA?XRu{LK<&&K70k4|yeA#=0)RnbnTdck!9^eKBmir@S;~bLEq{NS zBLE=;Da%Q|r9r`I^?Vg8R;(kZ*c6oGP`(H7I$J#;VAP?WWPK66qBcxfs~@JM&@p^k zy<3mIG<#bt%|CRUI(F(s&6>8QHqp~))X#CGkWe7l$~oKNH_?qFP8Tq_lTUqY$S z4d?`PQ(g~-3P6?Q_1Dr%7S{rJE&}`w&KWkmR2&Hb&iS^#eDK5h6StNWA*SU@F zaUao_$M9HqvGM1zuGJ;iFRDZ`-!bPk#mAP+5jDqLN z>siWX_JYm=Fg7SOjmu{D8l9DLAK?IcxszVh+8&YLM2)*g=ok#0M{eumt**Nn&#Cav}4B(aok6nh~A9FvQo8r(actkdy|iuHR{9AKiErDw1?RZBpPVss&h^ckHZpv)WXTe1x@8}f zB7gNnmfFPg1F1){{hloMI!Z)q^MX4L?;*ChyNXX89`1oshXo zx-vs~i@Q225q-u(7nzLp+$n?k=~+y{iEg?}yd@|1gI{8CJ>K1Hyy&jGa874RJ83XK z`_04f^pu-tn@i6wH5xx}d_r#E4P!`_f9Gr%a4E}4yhIT{`>E)`TF{8<(&h(=OuO7 zvSq0o@s8ur(6HUT`}8~f8j)@Fn6fg7&1$fpWSMXWhKQ&baD)*h3zzT)CK&4}T+Qtu_>o z0|_GM2Ox9x9%}>}W`Oo4=Li|hQl(0XKik*Ww-~P9R_rXI-;`hlLBXPw(zF?&Qcm-L zks*y4q}(3IGDZYl<*|y!u(o>@5pF|(HVMF;LwNz3fwp%5ULkeg7vMOSbItK_tT&bC zvwTobXcg2Qa=w)4crx@wGC;mcb)L(6oZCx`3C^aW;03SSD^_>6G>cz z)L8-;)TT29x9euRZZc~%HJQD}c8z=7#~y&C89ojg92s^q1b>JF2M)ACSjJfZhWUAp zUe_4VbqFDfG*iaxdSuzzoakeJiml^A^$n$m)(g=0Q5IgLBKVk88~+N`wVqGHcNdD( z+ z+$;g~d%Goac7IW#9uV1{8ckWs;<{)H?ePisu?OJPR;^k&dNyQ^rSA*$F>W<)}&b z+TnF-8gQmVY|R{i6)Ep8%NjtN-GO>T`J5D#d;wL=8GnG;i@l%|;N!AbmH=YfWr_E+ zuwlE-A%I@K0aWwL7;3fUl<;~jHXfx~UyWmNU3kM*+fGx>FTUZvY5>b)&3A`AtUcrR z3**sFaimI`*wH9lxbPhw`&R*M7_1wACeoj%eK6f=7D&`Bg!YZ_q9r3L($n6R>H80Q zQ1s}p&wn(H8g{mJ=ice9jBiFN8k1|j#B3lq1l`J}kJe5@4RQ(Fe&{4r4JrvmK?!m> z5S$GlE7V>PpfzEs+i|_fY4E`u0?2i_?h|W4`Qk{s00y`3P7Nn7A)h*psL|AASo6&x zV^~cJd9Nq*p{Uo7o=1(Rui!r1SB#MWwh9dm<$rBA?c1@$bo=tlFVpVbyGd>A1*=!D z&STr=6gWo!_Nr$5^>N!EdfFz4?zIi1+iwNZ(@yY&1EAJb>FW>!xtD%@cNJHcY1Lgl zzi4SR{we(=1CAfF0b?%2R>ol;$F>pj${~QqpdwHi37y&&I|?`eR(I>P%hRnLfL2?l zV}I_;WBw|9Spo>J$H50DbH%$^WSd<8o6K3uC5xd$u(23HM?>nAkj~;d!zb>^e!@#i z0LQg&-=4IFzaYO+pXSY*NA|2;yLRHF&0hs@Kn?F(>F);7qc(wbuXP~Z2ZRqJ1L@j3 zfwaivM~izJ=cEg(bwXK7VX8EK43SG_yj4hA_dL_32 zN=t)A}=*9H{1gwHX6T1!q&7Vya_ zSqq?8=XuwxFY0whOr^KxZ6HsRFSXu&jwR~vEZ)lZxDWTmm}OP~CvfCz<W=oqsxs z2a2@Tv13Q40N6X+82=)E<{vW0EcSe z$`-yH0T>w>X$wC10Uzw)IZVU2>wk?@d)OpuJZ(8OU$dWT3>Zz}QNwKBj_cu{j-<$S z2e}XT6=NiTt?}_1?G((@E>FKa4U6emZQK{rwo|6y2LAea=eqh6bqc0?T>~iP;{dwf zK9JG|1`r+eCAw;+$LD-;xYbMpPy0~ueMT~lG*HW`dTQ-wm?D4RV$c;C?SHng1K$aV zZ6vq-%~SBN4%%mPnbj1`)2oDKwWBE*x@w(*9YK~;__AFCa$fMvnKK0AD3rZlmQgS~ zo5=N5?>B^+{ji&wE!#yxOLvMk;VEm>)keYP5QN<3<6zP_;NZYR1R(b8*s)_&uwX$E zgg62&rvL`I>YB%VWF)%eM}HJ=hL?j5KuIRJelwlkZORCnV@xYI$w1|Y8>mieLuNZ4 zeOg<+{zJ_V9I9G#9fsz~Y4@r6{|@xt-yDS8hJLf7o!O1$wVx&x(~zYNPI55KR?ZQ8 zux!&XDESdgg7I4gvIH=&Wk*|Z;bHWlw-;=tCNo!~?rjTJ(8pdHW`8o?p2Wcgi(wb3 z7kh^L?431fnCAzOt%|Ge#H#V$m?VAi^Fc{wqBBsYAFYh>CYMs4li%_73Vhd7*S({s zzHSyjehC?DTvAP&KSL8W5O#J#8pf%{N#l#!9aNoR-fsT0x80`P5JlJ zL`Tg;XMO4DVjqeK)Kgt5HnBuqB&DbQzDk%Ti|93V>=sAsu20_m~9&6H8{$_J)Coi@M=a7X&U1J=jLOV%o zXv-pk&8s=pGY7O1YsKv?y6tX1 zL3Y}UX9J#}ugPbvui1xKTsN6a{)$r!@Tnz@h$=xxf4`ST)7M_3&SMg&&9Jj9u8TIl z$9=f31CYi8I15T*<;|N{lz0x7R1f8k%?iSAI)@dG?p$YJbeB5ozv)uv8jI`P#`hHa zmLGBxrGLEsH^P?&b<(uENU5zoln#~BM0{ybCk<#WEIVIFPlv>KwRwAcm-01vN1IJP z4?!TAP2NJNGl&myF9xS`N@t1JPz_)Zw`B#Ogzw(2qxTuOEX94euLeQ|;H|WRSE59T zR45Jg3@lSJP^RHw?NqsY1KEGLDW+@f+JNm6M1Kx+iTh;n8-_uzK*g*}mVc9H>RYMmk5cm@n=ETx8Z0rZFQ0RaIo`&NS%$2W zPJgEp<>#M&&QBQfL-QGU`@}POf2*hO<86@qaeHE%|71q87?0mA8J^~MB|4BQJ}vMnS2CzvJ_$f z1&Hv53v&V=-;>65Av!}pu&y};KYk{XlUU@I;Bmk~c7@!xr~7nx#pu>31bwMNq@M!By4WbU*8TNrIzRF&am z2nB#VCMQ#`*0gIvf^1Q` zv2nCpvSdjv(~z&^og53kYbU%P-ojwvYwUAd@Ml`EuWmsf(U$?lx^b@p;~*o~0Ah@y zF*!rkmymfwljM4^7t{p`kV~x)sXQ-As%0+Z0yUQ2PjLVsD?&mz2NG!(8ST2r^`02- z06?|~h7g*=W32!(R7Swnr+>RYT|Q8q0t37SbX%5GrMDWG1&F&=hLVprdqD}H#`|SI z1>22&89tVnem7hj$^Z)e{_H$^KD8I*HKA=9mH;Lp#X@qK!u#eH?BZDPm3IrC=(C`U zWzU{H7Cf&^etv!e%pygKa9=SNQe>n{xe8kwDY5~ z<#F~7XY-N|R;Q{V0zM6ZxmET6uDtpwJx53a=-i{PDZ0v~_7!u}(CjuQLJc zwJBTxxb$Rro4bQ2D$>(v;*L{ z90Va_pes;KI{=Pz6og<}6#>S~=wR9o=mzu(ppYOR`hHpn9r`hhR?MzKwZcsRP!)tY z2f&^4jtpi1ZGSq>FsVn>9Rf!DqtT#pKnEKMS4Ml-pFe`AwB9QlYb~}@S!gQxL6g0JE+6~%zbF6@oO`RuH*?V%aZ$T6+rq-A8y+nMC4>XDZ1aD~-0OE9!DB=Aw zRI`cEiD?*ZKF}=Jd{v=6P$LGKtOYrX4;(ty>AD+_Ruudbw#MT zlx@5WK7TM?lZf{9=?=Iq${mob644hi1@|z@lPk~V1vSP=<+#i1Z4hEg=INN%ge*~q zm*gm!B>;u(R2}FTi-MojOU2^@8H*P$rmb7IifSOh^;sl zqF%12%D{v5gHyNS979-7uK&J+I?3f!8|fLtlo!lO$v${AbGl0C(2C-71drUJL*L002ovPDHLkV1lkt;L892 delta 9497 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 diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index dfd65939..f18e4523 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,7 +1,7 @@ [ [ "2015-03-22", - "New mocha documentation" + "New Meteor and mocha documentations" ], [ "2015-02-22", "Improved HTTP documentation", diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 791f2be6..e29a9a44 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -220,6 +220,11 @@ credits = [ '2015 MaxCDN', 'MIT', 'https://raw.githubusercontent.com/MaxCDN/api-docs/master/LICENSE' + ], [ + 'Meteor', + '2011-2015 Meteor Development Group', + 'MIT', + 'https://raw.githubusercontent.com/meteor/meteor/master/LICENSE.txt' ], [ 'Minitest', 'Ryan Davis, seattle.rb', diff --git a/assets/javascripts/views/pages/meteor.coffee b/assets/javascripts/views/pages/meteor.coffee new file mode 100644 index 00000000..bd8c96ca --- /dev/null +++ b/assets/javascripts/views/pages/meteor.coffee @@ -0,0 +1,7 @@ +#= require views/pages/base + +class app.views.MeteorPage extends app.views.BasePage + afterRender: -> + @highlightCode @findAll('pre.js, pre.javascript'), 'javascript' + @highlightCode @findAll('pre.html'), 'markup' + return diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index 4c4478ae..edac5fc0 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -52,6 +52,7 @@ 'pages/markdown', 'pages/maxcdn', 'pages/mdn', + 'pages/meteor', 'pages/modernizr', 'pages/moment', 'pages/mongoose', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 15e7b6f4..a1ab6d15 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -52,6 +52,7 @@ 'pages/markdown', 'pages/maxcdn', 'pages/mdn', + 'pages/meteor', 'pages/modernizr', 'pages/moment', 'pages/mongoose', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 033fdf0f..abe57e13 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -98,3 +98,4 @@ ._icon-clojure:before { background-position: -4rem -7rem; } ._icon-symfony:before { background-position: -5rem -7rem; } ._icon-mocha:before { background-position: -6rem -7rem; } +._icon-meteor:before { background-position: -7rem -7rem; @extend %darkIconFix !optional; } diff --git a/assets/stylesheets/pages/_meteor.scss b/assets/stylesheets/pages/_meteor.scss new file mode 100644 index 00000000..7b1e4a6f --- /dev/null +++ b/assets/stylesheets/pages/_meteor.scss @@ -0,0 +1,15 @@ +._meteor { + @extend %simple; + + .note, .warning { @extend %note; } + .warning { @extend %note-red; } + + dl.args { margin-left: 1rem; } + + .locus { float: right; } + .locus, .type { + margin-left: .5em; + font-size: .9em; + color: $textColorLight; + } +} diff --git a/lib/docs/filters/meteor/clean_html.rb b/lib/docs/filters/meteor/clean_html.rb new file mode 100644 index 00000000..eb761207 --- /dev/null +++ b/lib/docs/filters/meteor/clean_html.rb @@ -0,0 +1,22 @@ +module Docs + class Meteor + class CleanHtmlFilter < Filter + def call + @doc = at_css('#introduction').parent + + css('.github-ribbon').remove + + css('.selflink', 'b > em').each do |node| + node.before(node.children).remove + end + + css('pre').each do |node| + node['class'] = node.at_css('code')['class'] + node.content = node.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/meteor/entries.rb b/lib/docs/filters/meteor/entries.rb new file mode 100644 index 00000000..8fbb8070 --- /dev/null +++ b/lib/docs/filters/meteor/entries.rb @@ -0,0 +1,29 @@ +module Docs + class Meteor + class EntriesFilter < Docs::EntriesFilter + def additional_entries + type = nil + + at_css('.full-api-toc').element_children.each_with_object [] do |node, entries| + link = node.at_css('a') + next unless link + + target = link['href'].remove('#/full/') + + case node.name + when 'h1' + type = node.content.strip + when 'h2' + if type == 'Concepts' + entries << [node.content, target, type] + else + type = node.content.strip + end + when 'h3', 'h4' + entries << [node.content, target, type] + end + end + end + end + end +end diff --git a/lib/docs/scrapers/meteor.rb b/lib/docs/scrapers/meteor.rb new file mode 100644 index 00000000..2fb54cab --- /dev/null +++ b/lib/docs/scrapers/meteor.rb @@ -0,0 +1,51 @@ +module Docs + class Meteor < UrlScraper + self.type = 'meteor' + self.version = '1.0.4' + self.base_url = 'http://docs.meteor.com' + self.root_path = '/#/full/' + self.links = { + home: 'https://www.meteor.com/', + code: 'https://github.com/meteor/meteor/' + } + + html_filters.push 'meteor/entries', 'meteor/clean_html', 'title' + + options[:title] = 'Meteor' + options[:skip_links] = true + + options[:attribution] = <<-HTML + © 2011–2015 Meteor Development Group
+ Licensed under the MIT License. + HTML + + private + + def request_one(url) + stub_root_page if url == root_url.to_s + super + end + + def request_all(urls, &block) + stub_root_page + super + end + + def stub_root_page + response = Typhoeus::Response.new( + effective_url: root_url.to_s, + code: 200, + headers: { 'Content-Type' => 'text/html' }, + body: get_root_page_body) + + Typhoeus.stub(root_url.to_s).and_return(response) + end + + def get_root_page_body + require 'capybara' + Capybara.current_driver = :selenium + Capybara.visit(root_url.to_s) + Capybara.find('.body')['innerHTML'] + end + end +end diff --git a/public/icons/docs/meteor/16.png b/public/icons/docs/meteor/16.png new file mode 100644 index 0000000000000000000000000000000000000000..ee768c1d105307a643a41c57837fba52c161aba1 GIT binary patch literal 302 zcmV+}0nz@6P)NklEGx(eo)39c&{(3;$Aeb6eet@6%7e#1!moH-dIw$FOc^{!h&@lEo(WH zQ58su2$W@%jHUGTY@!3}qS?_E+)7E!m%cVbZB62E5>aLv_x>I)%77?@O zl}XsGo-gk0ii;9+r0bs#9=tWu@T`_&ec%1BM{yA)!BmgZVE_OC07*qoM6N<$f;$9$ AK>z>% literal 0 HcmV?d00001 diff --git a/public/icons/docs/meteor/16@2x.png b/public/icons/docs/meteor/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb8b495488359c1c3721c31be00738be3f6e5c7 GIT binary patch literal 696 zcmV;p0!RIcP)kdg0007iNkl34#!u8U`WJ-xX$0 zT2vNM%?MgStDY1!Bq%75{t1gPi%Fpfp+<#TeT92Ce#hi|((B3R+55wX4@)$-C@uPA zT$G%fL;#ZN&}mc-&?c`A%k8uTP_SAZx;(85aGha5lNJ|jrB@XI8*Bj$uC&YrE10qx zaIf8xNEvd4d8D)e`g~?BpkiDajqXtbk*rurm+Jxy_|`DsVQ*_e+JnkSE4rjsVx1yj zjU(;?>@lqa8GCI))`;#}i96f^C^>E`;052f6ir^U9g&LuT8aCO0S?uvu_GCzkqJ@Ho2tV#X>lI#uMc(C5|n!8XA`E6`;|@S>!G-yF48jJ&;i z(BYuNdch9C4|=i65y7OaezPXT>h_i*mO12@Yr#W;SyyAguYymsTOeaD39aZc?FOuH z*ePZ3nBat)ag7tIM~SsqKl*&