././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1539912749.1342494 sphinx-copybutton-0.2.5/.circleci/config.yml0000755000000000000000000000241300000000000017210 0ustar0000000000000000version: 2 jobs: # Define a "build_docs" job to be run with Circle build_docs: # This is the base environment that Circle will use docker: - image: circleci/python:3.6-stretch steps: # Get our data and merge with upstream - run: sudo apt-get update - checkout # Update our path - run: echo "export PATH=~/.local/bin:$PATH" >> $BASH_ENV # Restore cached files to speed things up - restore_cache: keys: - cache-pip # Install the packages needed to build our documentation # This will depend on your particular package! - run: pip install --user -r doc/requirements.txt - run: pip install --user . # Cache some files for a speedup in subsequent builds - save_cache: key: cache-pip paths: - ~/.cache/pip # Build the docs - run: name: Build docs to store command: | cd doc make html # Tell Circle to store the documentation output in a folder that we can access later - store_artifacts: path: doc/_build/html/ destination: html # Tell CircleCI to use this workflow when it builds the site workflows: version: 2 default: jobs: - build_docs ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1533938185.917356 sphinx-copybutton-0.2.5/.gitignore0000755000000000000000000000230300000000000015353 0ustar0000000000000000# Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover .hypothesis/ .pytest_cache/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder target/ # Jupyter Notebook .ipynb_checkpoints # pyenv .python-version # celery beat schedule file celerybeat-schedule # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ # Docs _build/ ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1530911477.1449957 sphinx-copybutton-0.2.5/LICENSE0000755000000000000000000000205700000000000014376 0ustar0000000000000000MIT License Copyright (c) 2018 Chris Holdgraf Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1541277951.0142727 sphinx-copybutton-0.2.5/README.md0000755000000000000000000000217700000000000014653 0ustar0000000000000000# sphinx-copybutton [![PyPI](https://img.shields.io/pypi/v/sphinx-copybutton.svg)](https://pypi.org/project/sphinx_copybutton/) | [![Documentation](https://readthedocs.org/projects/sphinx-copybutton/badge/?version=latest)](https://sphinx-copybutton.readthedocs.io/en/latest/?badge=latest) A small sphinx extension to add a "copy" button to code blocks. See [the sphinx-copybutton documentation](https://readthedocs.org/projects/sphinx-copybutton/badge/?version=latest) for more details! ![](doc/_static/copybutton.gif) ## Installation You can install `sphinx-copybutton` with `pip`: ``` pip install sphinx-copybutton ``` ## Usage In your `conf.py` configuration file, add `sphinx_copybutton` to your extensions list. E.g.: ``` extensions = [ ... 'sphinx_copybutton' ... ] ``` When you build your site, your code blocks should now have little copy buttons to their right. Clicking the button will copy the code inside! ## Customization If you'd like to customize the look of the copy buttons, you can over-write any of the CSS rules specified in the Sphinx-CopyButton CSS file ([link](sphinx_copybutton/_static/copybutton.css))././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1533938185.9392965 sphinx-copybutton-0.2.5/doc/Makefile0000755000000000000000000000114500000000000015573 0ustar0000000000000000# Minimal makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build SPHINXPROJ = SphinxCopybutton SOURCEDIR = . BUILDDIR = _build # Put it first so that "make" without argument is like "make help". help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) .PHONY: help Makefile # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1533938590.491637 sphinx-copybutton-0.2.5/doc/_static/copybutton.gif0000755000000000000000000052263200000000000020467 0ustar0000000000000000GIF89a555555222000000//0-.1'+1$(."&+%$)#' %$'/'+3'+3(,3(,4(,4(,4(,4)-4)-4).4+09+1;,2;,2;,2<06@;@G=BH>CIAGNARQ>BAATDjIxqImtAatBOu@@|5498BBME[FeEnMbWD|35CTvhɉWΎKĎGOUϠ^ߨkrx穈贖Řʖ̖ӠܭzyrcYJA91,/y:o>mBocyʴ׳! NETSCAPE2.0!\', H*\ȰÇ#JHŋ3jȱǏ CIIRsL]rݪEK`ɳϟ>ѣ?A ]ʴӧPJJիXjʵԓ`ÊKٳhӪ]˶ۆ*W|sf͛9j ABW  È+^̸jL2ſ+_fm%J~3Ҙ%V1(#LNM%dL6qꔺoc= ?^μУGHgkƣY QS{[=fױGd͌7w G_~r% 6c6C"G|UI|eaxzyy47P(*ʣll홄!էߏ@YfWpyAU\>PF);mTߌ>D@6Ni߉ىЖuY+ )#Yf9c=Z(䟀gߑx |5:bQ)餔VjU4 T3 B(: :@Ujj`]ԙ*7 Z4*B*B OD1Tڲn6[rxb,f,2j#,\:k,lW7zrZ[<@j+k۫e ; Yrg,֥-R裠,2CD6j$pR8QjyҨ7 =kML4vM*OEQqF=f+|Wze7lVwEdZ[Mhm8d&q['^q\ns+-pr-c䗵ZrG9jK8([٢_tlCͧ@+-( u,77FM /˃|fƨ"yPMhyΩ{[6=I=QR[9{9\x?lE+7c}ȧqnwS )=i6CAhsVk){}`GG7 (%y@ x@PPE]bE%&jU fE6_X+ 5>ZzFgijSװ&@0Ql+Īq;Ϩ s4"f )E7M^Zr*"M/( "*WBxJ~HZ:%&*X",egRWdYf"0HBbB`W'!2c^GˏѴA5nT6Ii'4aD7yBV]0Fh YZg&u&x6#e+euɝChdNtc G !uɑ($_z'f3C U(nPMZ2љŲPFJ׺6#fI98 H jU)^nQؙHpZE&4Xn89Ʉ6M0OF'iBóa5%ylC]ݮ;l F&-_5lQ S鶰l3vxz #m%mfyygM_L+&ڄ]`Z"٣^VZmr30'.9:S`ӈbRP.*' 儰90+`Yںqr1ϵ2!yL剤w5C|.Ci*MtT0?NfNQ"7˳L5 zj焤πAřΈNt{xhfBJ7N{:u[0īr2\#鷲ӰVMZָI׫eY8˵Mb{p(l)Ў͌lC;E(_n{9My.nTBH}nNMz[~%p+{OFmѨ1''[ϸ@i`QG.(7ǫ@|0!gΓ8ʫ"&!&y'i9U=CN[}JPKNv!e)p{+MQWxλ>s񐏼Mt';|'^bG?WOWֻgOϽwOO=zǥO[Ͼ{?ё7O/OoF+f~^^Xx H{gqfpXzр؁ roFw*Q(.0284z$(z+؃Ԃ5B8DXFx}798ǃ>BG8TXVxDxM|PX8dXfxFl؆+Kȅv3Rz|؇~x5 %o{rhFtNw3y؁]؉pz( ~zXw$~Qx艸hj؆f ;a~G(Lr%.hXx1X6zhyqCs${NxpzN` Hf+؏wP  w5Gƈ L(#rvX Ҏ`5.XR Y9  HPH |zELٔWz6IP#0s&&GWGFFiiAiX`RIyzqɒNzSɑr{n[O(y{8zoiiXpGvHٚGz)VsזC•_fזenGٖ<I99YّɈvnA9Q yz/G) gٜYz.ٟ))YYxyYI t4kO1 sJkuZHʴT[6Ա⊯(Sk^Ѳ\ۃ`{h{CAZ p!An{rzt w{wk˫/9U. vǸ[ѷ +i۹pu`鹤[M"k۹ ۮq+dbff4˻B#6N;o%je&ëV(++9ѻBaZuH!>"1:#rp˛g=˽UVfzK'˾kd!! g+-)5Q fk'@$Y i>#d",S8˿h3tD<°'(ZDaAhl[\[$\#&L#*l,%EO0`0Is,Mc&dh,NXo8jlX!VFb6b/+/`C1z#1`2Z1b.",2.NJLbd` `b|TTƮblm`PPTç6 O"ě5/c6{Q-dՒ#(>|#Lʓ@02J0ŎɈ,"P)CwLBa`.aѼ@p[<0lZQ#B%YuX:GHZ[;%f#4se(b`%80:Ӣc:d7W/!Z<@=@$U?zŹuXg=_;OtC0O -&r')L56%d5|6]5큾\"+Z'##}\M,EZL*RjQU,-&M4y@rn[ϲx>F;aR~>@?@>: ?qUHF=)4Fd&@K >C/.ضsEϢbUn/*&E'Ü">R=X˝A#3RB,'j0%eB<"ܻU8hD'\R#5TlSO&!ԃB@\Ӿl!1E|5N.<&4MdP#aA>D13j/|GIVXy.3D@M߆ۦ [K.-;z/~G$I=T:4fr5ѓ!8NJش["X@Ldfay-[hHa-_tdNq+M-T.] \᪳U]~pt?iP>7KL:)IUgb5d\n\[=:>U.B3EFDu!3HăX-mVL#d*1S%.ha ~1rRFl(D~>C6]#SW~SRARکEVFhNjLA"pڪ I"5@ɮ躜 BDHZ2T=N fd 9,oӎ5m\uL]l?Ogmb@#eS ?Dz]…XH`eYFmG[ [8qNLlO< +X!8#82:YC:yR5[>u4;~P f,}֪uI}TL)* eac3*T"X tj՟YbMW Dc\1.y}t2.-!i:x s+ût`A6IK/#!O "Dm#JDLQ^JTb(c(|rP@"2ݛẌ0)˜5Js@(jĤRw<0B3kޜJ򢼎 G7řLJ܆e󨼓-RDQIЬUȆiձcU96+kVj^ա$=9 UF TܦWF@<@PA0B 'B /0C 7C?1D#DOD1EWdZ1FFo$1 "GG!$D2CO=܃O>P? lpK/3L1$L3PI5dS68TS 8NԳO?SlOAQdҼk $!RMK/4SM7S5T"*"QʭRWP]e5V80Ye-CTTF=R`%XcE[e;R% 1٠;vT2lGV\wM4JFLV?ae]w߅p祷^{7_}eq\']tJG]7^F8a a8b'BɅ2_-xa?9dM+&dOF9ecь}E`gfC\9gwgmWs~㛏F:fi:5Zi:^;l~Ͻ:]fm߆;n离n;ooOn<ֽsٗgyq|z>{gxUG^˞'|'/zcf{߇?~oư 6ͩMn㜙G J_N3 7A VPgZAvЃ<\Bf*9r2% QJW`\LTpЂ?bAGDbH?o#Jg8](zE|DPURF)$bոfw'(MLKcҵj)DH$8ƷO! .2Eld&5'7NB1D@GRҔ[ #  ǮLSy%dIϗYIbӘD$*MĠLf4 iɑ\q0HD"U|xLvӝS.F Rf>5ӑ,t.aB~1 !op*(; 1әgHE:Rɨ ً@N</jÇV y"2SqH:TsLgO4BGAjTVժxcUNЩ"AtUլFґ;uխo]W'Uw+Iwl*!PqyElbX6ֱjl;Ylf[YdUֳfE;ZzmjUҶֵ=V;[^ﵷ-\c[ַmpE熻\j4B[G;\V7nvXܮu׻;^VEoz׽;z;_/[_׿o F0` p%ܡW){5a2aX!Fq+ܪ/qU_(>(F>p|CզxUr˥!nMsKT,;G7D`Kwptx MC@C~xIW:Okho>=U:߽V~Jv/:{Fz@wH>^{C7K_:םz}_{z3x/.v_v3G|g}^S<5?xFK{?zMz5Ocُ{׏Շ;+>=;㺾@C<38938MX@9鳞r9)sKXN%>#;˽;?к+KA OOH:%N;K$|!=tCClcC1,:A>/$äBO<#,:K0K3!¤cB%A#CQCNXl34kC#a<'CYtBLF\GFD?<6<LE[LB"$E$2f&| #G!MD,D>J"8۸ 8$2k1z,=h)Y;K@F;l!;0D&tCCL:$0_2xBŒ"BITMFd%X,=FëHcCs*4CCI-)H C|ˇ=<;4LKNtǰB4OA OA| ܁44:KNTI244EM2PHP<P]Լ D"M2!H25Rz(SA˻7H˾kR|E$єtO٫:25MBԽNxxt?0%DW]mSFH]gDK%K?V]N$<Lt=CT+^L[BYuN(u؜AI-WR(S9>sJTJG5NR\Y;W a}=ET6tCSSNtTs\fӵ;C! PlAur+U [(W)1*M 'S[>MϬۮ,C FԔ\JSW`]͉Դs>cK%ɥIbJԺtGKϠ5H݅]DYC?ɢD|;(O$J: JP eF߅KRUCeG,IlnPFμ:FYL:$j] ||}=5ӹh\'[HCRx-í [,`XROYDySzOT_!ГH%Ps^BST\cv}^}ν$ڣu@k.&T"Tӵ=ar⹃m ޵J0NJ V-cn_.@N>6> *+}_ a%STP}6U6e?C=)I;3<\֤05cC5h+E\U#>#XSN+?CR&%f US]Te;Sm%WleU<^.X#;=kinfqNO]:=j]e6VQ1En?eW\Fe|͋˸J`]9䕮Mn阖i:M @<\בc3&6j(s\\$~1>ꩦ6{#iJi\kj&6눳vNHSVTHS(RQPvkkkk>1Ȗ&}븞뺾klk&d+>lV.ؖlH4lP+56Nlff54Fmmn=VmmVnvNmJ[FΕ'7GWgw '>n^GWgwqqoq1q !'"7#G$W%g&w'()*%,-qo1W+G4W5g6w78'.:;qۮq2s1sA'B7CGDGs 8 b!x9 g Zx!>Dq!8"ix")ur%8#5&"9#zh 8$ERI*$Mvj zUZyeNj%]^b9&e%ifP} 9'uf&y깧a`N :hn|z(N'((ZzA)z):*xj$hj* +߅I K{l{;,͊,J:{-M-zVي;tM-#GR!{orJ."<*W4;?W 9 a/8bAP#+C3|ݎl,+#9<= y˳!;*<y| A vMz9Zpp]"rO:@շ΄9@ W` X$>8- |Dى`{<$H%̂D0vTAJnE[>m_Z  ]$2! i!6%2rb o0ETt.!tؾ+x1$gH%a4H‚Q$Jq҄ ( ,P D(]r &ɦodISR3f\%6B2PGd $%f f|H3ռ'}j,!lP%rZ<ІsjA)JӞ(ϑʟAhN# /PMAF K89*Mu)I*di 3t`( 1hZz~:p2ߧzU>,@ <<9wBR:(L#d"x#U2@R Hy2z0("`؂'0^Nk 1s-y$LB;^؂=6.(22"3=I~2'&S\Q22*s9Y2.6a>s\5snF,˼?;x3Aρ>[h ю6ʢ#F?A4JiKszRG7QԦIjzLcWk$C(=-١>6e3~6-foe5n-lRc' sJXq>7ӭnhG$v$HˆZnuc{TvB}v-p|?8vܓ@]oQߖfi& $]h!P| +g9)iv_ctS`x/HC>oh9rS]#ʩsKn ׍~ӁѪA؝a R = $^81 a`99Lߨ^4@v4,-["[ɽa.BBQ.*",%B4 @"О Ҝ-*b5`=D$S(%j?h"r' )RèbZQ "^ş82&d3"b9!V0Fd1J"!3fB/[4",Rc9" NBl=($D|c0&>du:& ;c##j>#)K=b i`AR)I$9BC-!Da ‚16`.N,vW!d&VcAȤ& $?[W9$PvQ6 ݞ%ƠiڅR((c)?D'UPVbA%W+\If]5Z2%a}ao#02Y2΍!ҡYJ>aF(Al*m~ ֝9@fdVd=uL=N5Mh ׻Q]"kB :֢(%#:!coa}V%(bJ Z1)a#hjR$ #ʟ'yyg}3U[EhɎhh%ې%VeN>Z[:i @J)QJېB`]iE:ۗ[ɬ)))&[۝Ji;*ʓ*5ʣBM*RܡVYe*VJz*>.ꩶ*ت*B*j*+k6k(Nk@kffX뵮~pk2kѤk+G䫿Ǿ0,&.,6>,FN,V^,fn,v~,ȆȎ,ɖɞ,JE l,ʾ,Ƭ,֬,,,5Dʲl-&.-6>6кk --fn-v~-؆Ğ*V֊-۶۾-ƭm&HVm--ZlFݢmޞ.6>.F.$n.v~.R.*:.ꦮ.lĮ@ <ޖ.n.^A `('8@ (:n.JXZ/V$ "A$n,Ȁ!(2vAƯ/$Zo A>FomP00'/07?0GO0W_0go0g0f^lDBJ "Ajo®o 0:&0ʮܯ& /Tk7?1GO1W_qۖp ppƾֺ/>, {q0q&g n3Zn01  2!{zB x p[&$/#S:$?ro${:'1²Æ2&"'to"? D%/)rb"'@-3 -13+A #'z2#ro$Or%19׀, +"m2=׳=3>>_5018K:@)c2*#lB2'1,C^s>V.c22|I8 Gt@SpMW@kB -K+48743R'uɢ3:#l;1mU_5VgVo5ŒquBFpÎ1rFOrîO;A[s%\?tlB^/JQ[t W*2۵Q4$4Y`5YR_6fw,Ss>;;sh6iiR,cW^gr-YWre5)3K%'@QukucuB>PlnCG߰01b0c ]C7q? 6Pv.gx7n:g3Wi7|Ƿ|sWW,cl7[',Ze[0GtJSs`5t w;Hv_۰4 qa+tH\&}5 v6KOJ7y8;yw;7<Sl7׸87łuru~#r`K0O.r)d8î4׀ 3x7o'9THSyYWZ+4@ 0X۴H/$t.ӵHx׹65;xT7Ou:COzr3'v7c2k/:8c3`o(32/K'yvu6sq0vnm2_rsg22$;7C2߹f.J5:ǡO;W;'ڵF6j;ɢN||ǻϻVc{z;rт;;9z;;3Ehӻ/< C,+me2 o38h zß<ʧ?<Ƿ˿˞;;G,.sgUw*7GWû>2>>R3CS~_vԾ~~{/?C?>7?gC? 3kw[ɣϿF߾#??@P8`A&TaC!7bE1fԸcGA9dI'QTeK/aƔ9fM7C2ӹ33vu-YiSOF:*ՈWfպkW_;lYqUm[oƕ;n]w=PF*:pag'VqcǏ!Gre˗1gּsg03ТG.5jɯaǖ=vmȟqֽwo߿ lt_ӀSV\mϡG>qpױg׾{ËZ0s̩W}{Ǘ?~}j:]sO ,@KPlA#/BP 9LA QIt)Baiq+Q!,rLR%l {H +;lR-˓<<)d3L/l7 3 Q;S28?듓B\QCMT,@mG?4BTK1eM9SB 1)53SQUYmU$% S<_U]WUY-UacW:=g1ie mh@k W%S[MW]mw+\g׭W}# UQw{ .82~NXax`!)bv59AYd28@QNYneJ60iqιeYNenZnN9vw:jbS[%lЎ[ݔU(<^%3෥[qhWf &f17^sbY"B5BoQO3u[C!8]q_g(Cr/xv-驿)I(zx\ #F'&! ^̯YĽDAz !B `B4yhA}=䱄D"p ?2 $@")„9yFF"2HaB)b&$Ì8Az E?P_ pH"TxS#Ӫ1,qHZ )(/VaiwF*"u1<:JD׽?p&0hQB!q"|[&I]l/9Nj8Fূ1Zd Q 18ZOcIOҕ1L[KӝAjQԕVL mG#:8vucH=3aduK"DZDK'J!z"6lQ( m8bY/j_jD }m1xɭSBG0 6F]pϛ4wK$gR-mv džq7(.E lh{ڢ/BH^M[۵L/n[#4OV6mIF_&xK.nDJx?pK<*wɫ)~>3dLk~\W9t|Vkun-x zsGN8vծ@=^҃C9͎qzW#/A&/2'}"O"8EH6&o`\)h,͋"@.402`' ӚENY.'BQjvp.x6o(DטM$0g-0t0h."pz n. > C01 }` .On1NҘc$ ZAp蕾)NsomA݌NЍ+ efgoob1oz /#0Q ̨0Zlw`ڊ pKNİ N1@.@kpS1s)錰|F1/kN I sfh2'@n7 q820U0Ӏn%-0$&ѱ.<@#QҎҾF%$YlёZqJ̍(02+C1xO! o~F-("Y -o/I"!OG#% 1(WRS1210q*-\ϑ/ r 9q Ыro""/4B(.5ϲDI#1Sn(}%K22 ( 3F#)"ޑ~(q%Wr# #2S2!E $6[3-C"pnލiIQ5!=p6>m-1#Г..O/K/- S0AsҠϱ113M8G(Q,S<357r)B3;hNsг3A35 E=Lt“0m8 '% 3(O3 $9SnCɰsKJrS8Q;װ;2%2E'3Yo? EsPS/{UoHQ042x` x1$cR3=t3 R@QwTE3 Rz  oJ+!CIn( In:TX:nW5DT]n O[IL;3꼳)q.?5TT*W{xM= /UOPEƒؚUa"5b#&S.uf2AX9u_ d۳/ #:3pKpJ?UCꄓ 됳IdW_E/ u+0Xih]PWkGq hp& 3[(;UfN30&m_2 OnC2놳 v$MFX*]dMvWcq  rropetdqss)rbIq%5Ͳk? -],:6bKkoQ\+f's7ōovYUJSZ dYDNG3F׼{Op4p3[NQQ2OGp(yTIp^֘'e&rCQPnT#HEkQC!W@Xgxz=x-IPvwcRdc1v]-%y˕$-7dk6tK U;m%Utv_ˉ-u%M) KM-S7 l‹[Vb[vسآbQ8]'<{iFoMPA'M%(RzEmٍ*%Y-&P҂:ٓss9%nyay dhN홧} X*_%fʛəUy*Ĺy56yyҝYyy/9 zڛ g=ɡ)K $*z䢹&'EZYAF:oģHaDX\bCdṦ}Atxڦ$y_Ȩ:PJєzzZO z:zɺ:zٺ:z麮:z_ªR ;{!;L䩝1g%{9=A;E{Iɺ* 3%L;e{imq; R۟.۵Gu;{EZ{;{ڹڤa;{ٻ%-;;{{[u <!|<s |9=A\0@@Ǻm75  0Bǁ<ȋ{%Ak@@ZWv!Yg[ ^q Kᗾ79~C^O>c`:ý^ko޷|љ:I^]s =_ k˭թzi?^ɛ/_ˑ#?#Ý͠w9}+q~e?[K__-ſ'^%qΘKW[h@ +Z1ƍ9R2ȑ$K<2ʕ,[| 3̙4kڼ3My<{ D=4ҥL:} iHQZ5֭\z 6رd˚=kJ IG4ܹ?4P!C%v 8` >8Ō;vI7P+c- &>;{ :ѤK>T-&P[xWv Ok3W7ۻ׸<ۿ`HeWzś_=~NHa^ҁ@a~b"t^. a2Hc;8:c>W8ʅ"^ ދJfcN> eCdV^eZ^7%PEz.I&|Qfj:n grι]֕a6b~VfJhKm҉h.ʨӗ1⟖RThn桍~ jJ5Җ'y kzJjފ+jWVڪKlњk.l$b^m!l~ .V.dS o ڸ$ֶorKoLpS:)c뢿?-9UE"Eq!  r"Kwpz0Br˰J,Dq:̳Ki*rF sJ/%ߥj)V_dMou">mRSKupXzvnyb+Lv0wiv~=Zܾmwzq|x㎇%^_oyRn6榟枯:GM7饣N{/zz“~_m#VmG55h{ .3I|S`h+_Q`_/0 o+h羧@sG+M.(/n?: (!OPcK&4aAp}(Ta ?G! vB/:#*z6daG(XBC,1 d]4ZNY`Q<Ash8т$,r( Gd YAcz8EDd!@Gq ΈF52ol,M X==}|P(Yi2 * Y~}5QzSsld?)Q.\)h_-њc&˔^XXvĒo\7[%s_eJwY.s*w}+AЮyw#|wjJ/{߫XW/ X)e$x .pp )Ư= [hw/U xB b׎x)_4acł<1 6H^xƹqlҸ@l e9+23J6ֱ"y#\X Gy̙[v|a9g\no67&!,W22H(A0@ÇJlXpE/j̨"ǎ+ p$I'QI#aّF/q9'!,V22(,4k(A hPJ,ذbD12hPǏ r$ɐOz4Iʕ!QfH;9sgE> zp(QD RM>TU^`@!,S#22(,4(A @8P!ÂJlC3fcCr #I#C X2#˗t 7k8Ɋ=m\(P (ӣH|괨ЩV. ֤WOz V+YbV-Umɉ9J|q.ʄ?* !,N.22(,4(A *D8p! >0E/jXqG?z(cIr%H[@SaM4s洸:{3є'$ӛ+ҪSfl*R*L.Rj)֯gæ[-٬,)vT9!Fu%ޅ K+<,L"T쑱G#Bc:!,@!422(,4(A *\@ 2x0Ň3NĨFC.)R$ɒO(qeH.7R͔3oʴ3#̞?u9&H"UTϖM2)OT:8T*ʮK$تbf,kr,C/.S-EϮũhw"y7,㷎/<2Ȕ2ܓN7AK+QTMV֒Y7MUҀ!,0#-22(,4(A *\ ‚6E36cGCn($&ELq%K._R)sr̩pΙ$ sh7]s"͆DK>SjЌQU^5TU&ص։e?ZG՘[qņkѼnbmkV0Wj ElW1[ /JbEp"oM?{}2ѧ3Vuk|M2-_!,$'22(,4(A *\0 ń3.|cFCBɒ OXPɔ.$K 'Y`Ɲ"s2RB”ɳğ(*5TU5^:S#W>)~5*ϲLφi6ڡm=7ܥMzk.UZbjZO/~<aY-^~86d;3dͥ*M2 !,%)22(,4(A *\p! lHѡċ+jqG?lrI%OL ˗.„q"Ù/e PSŝ@iRdY1I?cH dQG7>*HnĺPF:y.9lOn-u*[qIMvݦuߪ.g2ߞ#J,fτ y4]ѦN͘5;GM;Svl@!,0022(,4(A *\Ȱà Bʼn3ȱ#C)E&S2D%˖)_,)sH6cIs'ϛ~i1ѣF"EhťGB gǩX:t*2*P^=r Xe9kδr{ҪJ^[5۶bUI lpI#;~9B/Č1cB*iO;D ֯U>=tз5+Rzj@!,-+22(,4(A *\ȰaCB,谢E3&ȱcĎ C(ŏ&S2D%˖)_,)Ӣ8o*̙b͊ TUzTU]S~嘕؋e/=Zfx˴mI:JUTXZ 6L+k-0L $LVY#5f8/D9ErbN}5_-6l ~thPD} !,;322(,4(A *\ȰÇ T( ċ!Vܘ0Ǐ'IҡȒ(IL2ʖ0MZI3̚8_〈sg˞>S Zr(ёF~LͦE @*UV 3kU^l3Y2B$Smr ۩W-WZumݮ}Yᖍ5.eb"X;3NvdOz֮Ž 63팳o禽;vo׿WG=tg[;rͭ! ,s5=22(,4(A *\ȰC*Xŋ )jLG?0$ɓM\P%˗+œ %͕6o̩s$Ϟ(tŢF[L*)SK*(ժJ`Myu+T^ EXVU0۷n…[ܷrR_xq #^kRtlm c^yΞAotefQUW[ac]TOq3՝QCޓN'*ϭ7]? !,xX,=22(,4(A *\Ȱ!CB,谢ʼnZ Ŏ CF IȒ(Lʖ(_$)s&Ț6M~)r'ώ8: *Ϣ"(`ΦN/*q*UV*]iע_5ٳfE4+õg jǹxu{7ތC*D~UN4\oCKwǖ`yrgȟ::jiFhk9;gmg憹eoS8m@!,`@+:22(,4(A *\ȰBB,bʼnZ@Ď C~ IȒ(RLʖ(O$)s&Ț69i%O> fТ w"xt)SN/6iեWf-5ׯ^+*DZ_Ţ PڷdnԎuE=֮ٔyfo҉Of+A|GmxZɖ/gfX9sg˟':i饧.Zh럯y9f홷anep^{yp!,M*&822(,4(A *\Ȑ! lHѡċ+jԘqǏ?rɃO,R$˖_r&Ț67iQϛ>)gQA6T)E.m*u!ԪV6 +W^VJ1lWf0[O~%am&tSڮ\aS]z A{>0|S㘊~Xm)W#3eBij|Px! bGCef0A$ nKns7Fd(P!$1Bf·NCC\8(|[u!&` 'Є?@ZL``Py4 2t 1Ep OP|a/y0 ) MЊBa(#6j8K8B$CzT$AC!,,,@22)-4(,4#&,"%+$'-"&+#'- %GGG &)0),3(+2!%*𰰰$(. 888%)/kkk "' #(hhh&&& '*1&*0zzzeeeꌌ### p@*DH#B$3 E r1I#I^<2%Yft2̈40yS@upsbР;Mhҥ e`@)TR8pk֠vm*5,Wdˊ]V=JUWܹuO^v C_n81 #K&8hA    bAΝ@FHFZk]Q`DAԜYM1` VTȏ oI/q]{0AȠ0?-T`R )e]OSAt=@ BxKiI`7#bKȢ.c)D'݈cH:Q>bd IBF#]'b.B]u5G܉tU[r`*YޘdBeh6Phfq9gAqމИz&%D!,0F22)-4#&,"%+$'-"&+#'- % GGG&)0),3(+2!%*$(. 888%)/kkk "' #(&&&'*1 &*0hhhzzzeeeꌌ###l@*\` #J83j$8@C2ȓIĈJL ̙k Xp'E@$D@y5:RSL" ҨR-`kV`D굠Vc=WBC WhFŋS^L5(b@! t@ٔN x"(9 @EFn5D "5I+|*o R4 $'?Z / MJv3S`P8g(AixO{Y1WPyU=< A!X9CBU)Ea}x"*8[.~c^HcT6hT:c-IBRFjd-dDN>P ic<Z)c^Ec5&Xiz8"kJglYUfD!,>J22)-4hhh(,3),3(+28p4Ã> "ŋ HĨpF $DJ\H@ɕ $r._<@MԹP?C.0@ħPJZ`Ih Ъׯ`L5&׮bӪJ䀥Lզ.Nw@ա jM0TE9}ӥ9iFX\%ňi2,P2Sn#g^xIM۸sͻ Nȓ+_;@ ?NPt_}ޓu|<O>8-s{?[F``Q .SaMHEV_y!qe" 4zUw{4s ]w9! ,.22)-4#&,000111߆---666#'-GGG555&&&###(+2%)/$(.  888...kkkϺ"'&*0 &)0zzz"&+hhh򹹹 #( %eee((()))^^^ $ @JH2tѢǏ&\pÈ SR8(UR'.OYs|t)瀟~$ Q1tzRy PzuB.b+-ۀKډknxK0\4M|540qōU1cY28<9噤K70סYv4SiצD);Y@- u;HWTv@a] Ш`rGW0dDW"2NPTP>I їFqP#xЕV0}zzqNH]eaÃGOG0 T]`!HbM`PlsGyD!B(QLXB7HC]BTFE0-$" Q%W0[qyppL@ gV@l&Dpr B7dp(=eB.f8)Ab iѥ%9SZyBʨ2Yi$bJGΊ\:lH{lAŦ,:,Jlnކm^Kڞ] /;m^]Rm{o< . +lK W\0km w,2BL[r,[)r#4S?3>lbal<۬3@S-tQ4Us}_g;[]E7=kݶoqۍtrw[}vi3K=8}}8щ 8M'=7Y97{8=9u^3>ߗ9럻+짋;;>;ϔ?<;;3!,22)-4666000111#&,#'-GGG***///$(. 888 %)/aaakkk444"'... &)0&&&&*0zzzhhh---@@@=== %(+2eee""")))(((###`*<`B#T2ċ #F;z2K 1J*WN a&qϟ8'I(МZxiA–KJX2( H[zE?Y')ʕ¶@v;[ {a<‡6 6#!Y$ "Kű$6j9~,/⤴O|p -a? & ~v"e,#s h$@@ƌ6`Ń(!"OQ j @{5 i >epA,߂8C!'$'PD`PD@F-2K58*b;FR@:#٠<24hxR2@%V% p9K9%aQpIbM g AhީA٧坈e|"@6(D*褏Zz&jj'pz:(itnjjyy%y i&j@ 뮽멲8q lkzЧ@Vl@vK)6(c7 &hoKU[ӵ / ,o_E g| k 2{%1[2|2<7|9=<31\4G Aܲ5C1I;-2W9ߝ9C~9[k:&⪟nz.κ+{#_۞;COWgomʣ}~!,x522)-4666000111#'-MMMGGG ...)))!!! 222888CCC///kkk***#&,"'lllzzzhhh򳳳ʀ&&&AAAccc"""rrr܆eeeddd###ꌌ L@p00Ç q0ŃxcF*tȑKlc/lK iT '˖<{:3P 4ͧ7/|@ @FVzG`Sa$ ¬Miȳ`\ 6ֵV.g p 4|,7jL˘H~ dž ((p'!pTQEtn_`eKA.\i#d)ѻp X(Xd+d tx(Iس+<wL(H1v'>'/ ]APPgyDr,QCAL4AaaXAm )W (1(L!Ç+^"?׭hAB0C)d~-B"Xk-唻dQpH%vdhЙLBAlLPm>DCx橓rh-Hh! ,g!822)-4111666000 GGGDDDfffꪪ888%%%kkkHHH㩩RRRhhhNj'''ͳzzz&&&QQQeeeyyyddd"""sss###d@ a‡ !aCċPG7v1H$!0AŽ WfFh4(@vJDৄ;{5ҥ(tJtO @Zr:5lUH(Z*ϢMK!ƶstHqϹ(Y ݚ0`!h<[01 12=HU@ ق*x1!Cj}|Xy~  *7jw7@@ex(ȤzL6~P!- -ABAit2G 0 Y؀G&A4AA#^"P/6`Np0.#D3BiFVأK*4@YIRЕY">RYe3%ezZRhbkޙI`hРA(B;&J EzPi!)"yz)IAE!,T":22 GGGHHH111lll$$$888簰{{{WWWkkk۲hhh&&&fffzzzQQQ(((JJJ݆eee###L@`‡ Bċ PG7vx1 $#P ʔ WLfFh<(`N;%*@ςDwEͥLG@ONQ^-/?`amDESWYfuwegr/󪫲Z[gFHVٴbdp(*:OP^Y\h)TVc]^j-0?+OQ^EGUjlwǫ딕%'7'*:"$525Dď8;JϪ;=KH (^\ȰÆj&t0aËz9 @8Cā#-"S^DBcrT\(e3sΜ<;)3MI}ht(6l &OڔJ)?jp @(k4q!A ֲu*@ hbA ,hʗ8Pņ #FL5w.^ Z+ީk| CoskF@ k36(;PI0uI7yP̂ ^1?P @HkW1Adr NE1FA)d`S օuB\a@ ؟z,*@L""$L=R@N+>@O%'8NQ^WYfegrDES`amuw-/?qryHJWbdpZ[g˥Y\h)KLZBDRTVc(*:-0?,OQ^]^j$Nq'*:꾿ījlw%'7⏐+25Dϣ8;JH 0\ȰC1:tġŋ@ 1R Q%H0YE0w3СDxTeRKu\aԝuDBj|a6l jdBA s^1 ,l8~h`Ä | (@4  @D0csƏ 'dFw\:qx@ƶ p , q~]Q $  ^[} @ 6 ,@] ބ@&)^ )d) XUJy_D @$O( C1!0ž qĝ! P$%:$B 5@P$Ǩ@q<Ó!D@J8 C J@N>@O29:I%'8NQ^m.!#4.0@)-/?WYf`amDESegruw-/.09bdpZ[gOQ^BDR,)KLZY\hTVc-0?(*:]^j؛M2].jlwτ'*:%'7딕!8kď25D8;J3P;=KMH -~\Ȱ!?2dšŋ `š 1$GH<0r X2fKb0 71)@ZQ7(]'ȤS2ykօ[y WUQ᱃P!,t`5 Brd C` F!ŀ%Jha L @N+9:I湹>@O%'8!#4NQ^$#0-/?WYf`amDESuwegr5e-G.09bdpZ[gKLZY\h)EGUTVc-0?(*:OQ^BDR]^j2]jlw%'7'*:ϥK 25DďV 8;J**HT\Ȱ!A>0` šEFb @@C$"$jTQ d9P@JyP7u҅G}AeSQ ɡ(l@Q4 2 7FQB.n6nha %v2@ ,ZX! 1:4] ha0 %3e QDjeðY`kܱʴ ` p/\`Ze@V;<*{l߅:c* 愸B|X#gSf9A{g $\Fm{D0B0_H<Ѐ m(@U1U5j'HDm0 J<$Qk(A NùC(B~R3ղW1_w#nר{s&m*ک}wnkտ#ntGG_GO*^N_>Xog=}_w1I %w .wFЄZxiB'A`'6V\)6 W߈J~49:f8ҏV(A$Biz@2y$6iВF*IeVe] e>> ޗm{ḿ{g';}c;9ԓ>觟~7cǿo4?\7}3`FD@  @ V/L!?rC<AA . |%aB -1tXCpA.$/إ)}It"E r,dQf_C$QODrT9"ZG=9Ta.VяDa m8C".҈Ct#ٸՑw$XH0bcT&EP2JFQtiCQF#-TJ՛Z5X}iW*ӐuZ=+WTSdkUzҶ^[ZSU$ZkԸv`kUyuJ*YWN׀6vD=,\C’li{Z8lP9kƖweZWUjGZԲ-rWMn:֯uq䦶U.x\zOy[YuK["}o7;ξwov^w9r\kWx-#auo·b>/O3 /qM|9< {g8۸8V#|c) 922a2 qt St(r\6f Y.<>yF]hBOяt!-bGW't1c?'ZґlyiP_ԥUjRwЁf5=kN yDV?-[9aQ]kb,\]C\~ve-ҖLk9}5]}lq'5\<܇6vwWw{Gžzw;ࣦnip[W6{ #o*_ Ww m!8˧mjSΞ!j?w}|<@:W1#1w{~]\.?z%nOoubs]Z=UjRVR:+ם^ +&ٲ%Ϣ]uIn;mݵw-Wl߯:jaPXT"{h@qܚ;~w@\3D G ! , @F22~24BTU`[\f+/3CDQVWa+/P+L}2abk]^hS/P45C15:tu|9;H||, 2rs~rszGHTQR_cdm_`iXYcpqxvw,$&6!#3EFR!1e3},-PxR:&MC *Pj՚m4׊If]͸<̑z&thF@„(r L A.PÀ J8`iH` u Ez& 8EE:$UF Q"8<؁c= E) A u5pFЀe"ĕYn p)!PZ#zXd ,gn 48*(X^jG )lF`"UZNv饛jS8&x%lQ\q'gRl C7Pk/h. %y0C|0Nn[xXlIpP'&C G` Jlqx7`@!,@G22ބ裏(*8DEO?@K34Azz{"%Ztwaaf6Z@AK"9TU\HIR$%4rszppsBCM.67Ch__etZ2*EFPKLYjH%uuw)*8KHhqqsffjGHQZZ`RSZstv-/<56BIJS-),0uv 0PQ[;"9H (\ȰÇ,Hb 2jȱǍ*TI1Ǔ(OF Rɔ0c Xٲ8/L`P& 4ipDND{2 CR ph j3x5 +QƖ5[ZlfL[,ܸ,]wާv%7i~baO|3䂔kZ<0s͜xf h/Zꊭ쉵6&<rͽ>ߊ+gVjhW3fjt뒙 pjfΝ35}Nœ$|!w&eP@F(a1ax]8!<jx 1q(! 8 u )6FD-`Wd Q#H:LBAhM2E UZ$iI!@pVЀr&* 6ři )M j$)h% (h~* 4HB*鄞BXqyz6K 6*|BpaYT@^馟DWI^B "h@~niTW /4J?`[l XQgK<C!HQ, aؠ kg0 o!@B1z!,I@33322}}}:::hhhrrr !+"#,*  +$.3112(%&- /33' $**/ !",*/02..1yzqr}))/++/)tty((.]]_&('&3.$78B//1..0rs}BCPTU\*33**)&'.!,hPR@#Ja ,h)X HdNjO&| Q%cJT ̓.(q(Mj ɲ̟H54bҧJ 4iSVM!ѭI/x= ! %# *AZVpV5p`nG @F8ᤍU@N>@O %'8*!",.0@NQ^u%=+-=LN[..1*uw_`eށqr}WYf))/++/tty;@NRS`}./=-15YV}%'8()8del35B/vNQ^{=>J>@OLN[ST]ssxabiV,WYfG(DuwXYcegrUVcbdp-?F[/Z[gHJW05Ie=.m)XYdQR\Y\h]^fEGU,TVc-0?+KLZ79I0OQ^BDR'*:kkq-!#3jlwYZbcdk 0vw~7-,qqwkyy}>?K'8;J25DMH,| )JH ТE@CQE8aj˗K.1BeU0s,)h"*}攋@/Jr 'AZR -TD %0)x %GxI ?c3Ύ4vbP4)!CFK@@@W! /#`Othٸ'| G_=ݳ__W` QCuP@A}p_tD`at @wYp^Kw`00 XSOx1" T%&HxBFi vd .JNd-J%E8 җN(8@7ѥDlg*p@#0Bni( GbeHTy>*UJyF#Eũ  d8h pDiD:&"@r F9ᨁ.`@0*P`@<L8щ(@ @ m"cdШJ70vm.PqS<̚؀@1Ǥ!++m*AKA8:H!,$;wj!&"aDV'*o`5 .l2`0nn@: f[u X0 pp7 EWTm$?c3c!,2@422&"3ܰ.^_jJKXCFT0LN[79G;=L𨩯ghr26:؛MIKYʐ2W"%502B!2~9:I.0@̷2-noxcdn{6=Q滼`ak26[+pq{>@O'0@OP\wss:̹%'8 2!#41NQ^QR^.m.1)(5:?̧腆egrWYftu}uw/Z[g0')9CH]?ANbdpBDR0ijtY\h_6[)12A-0? TTVc#%5opyk?OQ^%+'*:klujlw!#3Ǖ;=Kⓔ9:H8;J25DMH(Ç.T"ŋ'xʎC.@b/ @Ȩ8fع ,jp"戠) )PT0s!SBp%LjUcq=6ڰ '(@ZESG\k!IT$MZċⱪ@_Lh`c >!`+@ @Z  &b 2,(7+A!C ;@smK}G@so>6. d9ɗVh'V(|0\@!!40 $H|(@* gQ h88_DWa (%h2H@!)!`:d6:y#l 0tIH>tB~bY41qA#Йh(=& u'h qV(>|P@zԣ8@P{$&K.y4(# U"c :!j ($D258*p"`k \k(i#T{b [ L^F;b@BLTE `8#K+r0|n9*j`*)چ<*) =H@.,*)ԐĜ qĈZ<)$5LSE!3CIst;=L9:I0{IKYyzʰ.0@>Cr"%502Ḃ聂։-vw>l+vCr>@O%'8!#4OVmNQ^m.޴uw`amDESegrWYf/bdp-/?FHVOP^).B]^jY\h)TVc-0?؛M(*:+EGUjlw8;J"$5%'7'*:ꄅ25DďԐIMEMcu;=KH!@@‡#J4faC3jbÍ CshE(C^hc )cB\)`Q%*l M:0Q4dQ4X@Haă3j4xqLJ1~Y0$ɓM:Ŏ+ tPe? L&,I0(hСD*:uD^uCTTGdժ+ K@ӱWJ-:B\rʠ]~-322 fffGGGDDD&&&zzzMMMt^(Btttpo$$$888!&Տkkk"RRRೳ̀hhh"(!'݆x(((###eee"""@*L(p‡!6tŁ -jH0Ə)z "$5<)0ƕ,aT(L4[\(Ν{)`MC `%ҤiőRMǬZTlرd aˏײ-\UIo .8Qo] I0bĄ1Fn aAM\8+'z]ϘGIi Us&bͻm%wq'pp"+MƥOWaܹHڧ(H5:E%(/eee###@*\ #Jh!D3V(PG^HRE%S"xRK-]SG5mRgF9}6TI=2DZTiAMB}Hi© Tq\b ) hIeK , XpB…0!GVG<@sFС T#j HS$r}@kc|Ao,&HI ؼxK;N}weUbu lӯ/޽]ճ?|7y@ ]8Uw`]\E(a:edhԆ !1(Ĉ@nj (0 Vc'xf?p FY nD%AQIEl9@ C1Ƅ f*&A)[ Bly 0e Un4\@BؐOpâ PTu 8pPe2!,]9422)-4(,3#&,"%+Z`i$'-qww}8-19888kkk 5:C9?K@FT zzz&*0'*1&&&CKX!%-hhh #(HO^lq{LTc#'-###eee @*\P@#JLċV cƍ=ȓpʗAXb&JTpbs$Ε+{z 4ЋDEӥ>H@ͦNN$POYneRWanHi%mGq!ΥGi*K]hLa*^H%ONXr r@tf+W.( $t ~ЃB3<__TD LQ1A,%Cpt0&D؀B kF ! ,No#+22)-4,2<H "P .(q"D3:ȑ`BtaH#!4xeʂ+ tE3kFr&͔1 3D_4ȥ:UT7Z1ѭ\=ze 6M&˚6,۶]Ѳl{jxK_{ ` ,|8c: Aʎ-ĜX3A=|Q@҅S^M 0 /fw؄i+][k]~λ(|y%+.9֝!,^o"22,2<)-4@4(@B|xË #bTƁ=>PE&O, ʖ.WŒ %̗3qޔ9Sb͞>C9gN;$ T=Nuk֮Xgj s,׫g^ t*ۅ[taܺp !,#)-4///---뿿NNNMMMOOOLLLH,8 ŋ$hB!Jdō&\aĉ&Mˑ1KTH91PKA-CϐG^D,zrM=ԝmQlLlT|lR|ˑZxVa[k4oV 9_ǔ ʹgҠ3#LW5˭YeڱF][霥EoNmw=͏?7]t{C:۳.~/óNO~cw:9}׻w=_} q' -x=` 8 RIA`^Hb&z("*a+t݈-c;f3X7#-idHPI%GR)eSU9e[B%bI&zO!JyfWay`mY^wI'g9IX y~(2jB:)Z)|Rکrz#:zEiº꤮:{W2*:[,+2R;*[.z,-fj;-[/{/u.ˋH h`dO\o!_Dḵ 3- sL'l,22L=\5FE/}D<6g \;4L#MQo}c5ۂ wn4v~ ځ7{ ~xӉwm?~C^wGךs:&oNwꡯs{ܪ޺z{K5<#O{ov_='ҏdGBvҐDd&YF&ґ'%JJҒ+5HNNғe,E9KRfĔD/U Iq4\2۶LA5Zk̀9l[LL79ӛ4&8%N;2yus`x{&9Nu2D}>{'BeOh?#Ё Lm(5JQr(H=Ўn#=EIҕN`IaQT6)Js1|i3:uz01g;3:SN)T9TJ̚SjUz՟Ԫ>5WVE5XUnխ]k[VUsk]zWm)NׂVA^ 6Igc)J6L=+YX:Vp-kgٵU%gMW%_ljaZپ6m*Ծ-byXOc727.r+冖%nn b׹mtK]׎7Ub^\VQ׀! ,,(22(*<8!A  Hŋ0P Iɓ&$pʗ0_:X)@ ,@౧Ϟy#8 ɴ)D*P`N 8j;ѯp];Pjٮu ܹHkX{ `fby>nx2d-'?n9EV=5hםakmdۏq/|fz@M[3T5{l~8PFɽL!OIӡ1_OQ#G G1 !, e22R*L8Ç#JHŋd` CIr3\ɲˇI͛8o"Hϟ. 40 І yӧ $ u (j݊QZ, ه(+`ٳp8o:ֻy ڗ-{8㖋6~L+]Á+kY+͠9_f9U?^-5TլO\:veOaތ۩ݷg{ <ᵋ#̏:>8:Z={>{? r&^ok}2|jٺ}(تb1wS)UY PE=X SNVNEF!RnЉ(*T,0(4h8<@)DiH&L6PF)TViXf\v`)d FetfEnYQrNDg݉CzP~ hY螇h蛏iY)yf@! ,!($22 @"Ȑ#JH"Dp C|$ɲ% @PM 0x hȠC*ҢMBTͨVRͪ5)WX +v$ٲG5vmZnA;mݵw-Wl߯:*RqJ3B9t %Gbw 0CC_R !,"&"22 @P#JaC3N$Əx#Mr˖.UŒYr&͏6of̩"Ϟ(t@F}"Mt)SNڔ*˨R:+P={,M.Qz*UM:»x2 !,Km,2<H !,LmG22RW:m%Szd,1_+0}P3@DH}S `Pת *H%PTR8̪ܺ@ 2<v/˞uXSy@x<bG' [i 6tYz=+6IMpeG<м}s,;DN 0ʄ+G^pvl:.ѵn/*|ePI~hRM$`%MHaH^ؑC! ,m22m5p`נ޲s g @oυ `see&h pVD[`С@鶟NAi]Ri524uN@MRZ~l9AF@FTCKXԆ(1BIOnϼL+06bNN\@ްpnWiQTMa @ޖ1Z86Ez M[D8P| 2$ DP.BC-X)6Q{~_6pa'Մ)ofPEQaLHA ߄1Csnb[bmBB4PA Ʀ@^(yam iǥ~Bd1`L9 )Yfإ.)f dRUZr~x|wP8sl7f:de\+C 8㴊"䌗y}jjZan.JJm>福쫎=aVfCCA+] C*D_~%<,*>kJ;j ~)D2#0nAr&7Gb:!IPC.3W3ԥ1وLH@H:vt~ @JЂ,9 OD'JъZhB P64 HGJҒ@::Џ0LgJӉT ,KkӞ@-MӀ4HMRy=jSJժZpA \UJֲ.@B8YJ׺um ZHֳ `j5NP |`_E'?KXPͬfA 5l:EҚU,c7ȾUulgK 0V J Axr\{lu+rKVWm_kzOMwK^ĆMo]ϫ}| }rLЀ!&,K,2<H !,KRH !,"oQ122)-4,2<#&,"%+$'-"&+#'-u񊱿 %GGG &+y&)0),3n0!%*C(+2$(. S2888%)/kkk "'V '*1zzz&*0&&&!O #(hhhyk04###ꌌM.4eeeH*<(Æ>\HEF(Ǐ9IO\P#˗0I̚8=s=&< B{(J@IqY!!DiC*d3$`Î%r ijeҭ>[2 |˟?u 0OJwr@~3D@x4L eE@^ D a( aEqO #Rd<a7B 5@@6`; tA91BV@QaT$c 4p -WepAQa=fE0Q@ iP@] <ZQL* @@! ,uF+22)-4qwDIQ8QeYFZ9@]aEV !C|o;&B Y}0o; TB ]iDCPE7ĉ B 5艐 ,4aN!,{*22GGGlllHHH zzzIII $$$888 tttkkkRRR&&&ڳfffhhhƐ###(((eeeQQQ *X‡:PRbF7*Pd '(*5d)Ƀвй?P'2hcPk0UZʵU'u++e`ٻ EXo $P0R/B (tMA !SXA1gLE'D`iNHpϰ'H6ʧ+L1D߯_81;aGp+gn$%\.aC%H60&09.}I%C 6P\@,d)0AD@aa(B!pH" c*2v(DC 5Z(,4 $64ă 9)P ; `%B"`B ?%BN`ngN! ,~i+22,2< lllGGGHHH$$$888kkk***WWW{{{&&&zzzhhh###QQQeee݆JJJ *\ȰÇ#,(ŋ-Ǐ nIdҤ˗ Hr$̛88%K@]@'BAb `(Q* ӧrʕՁ uk׳ Vh%(e E;]G ˵ L*^8 "%PA/c pq>@ik vY۶Ξc'hd |ZvA?@๟?q:u͇Cx{F*T \{ykX]|MI_V' Z鉴F(! . ]PAKX]FA Ci-] @A`d*ztU@5fTH0( d $FCi@3t0Fx %BY2eEP * [#,T ԁ - 4A~DB UG9@9J7 .Y!,+22 lllGGGHHH ۴$$$888kkk***WWW{{{NNN&&&zzzhhh̀򡡡###eeeQQQ *X‡:H! p`b xG(0ɉ Gedć43p^p=xP"D WH 0 & @ @B\P0001DAȸcB@̰B!pBkS*;!,$.22 lllGGGHHH $$$LLL888灁kkk***WWW{{{&&&NNNzzz̀hhh###eeeH@*\ B# tPł^8qA+j0`hdˈTrE7TID Lcф@%xOB50hsaR HHէ«Rڵ)Xm+h$`۶(ܸ 6Vx^}k``[0 ໗+! Lv<2p)=ЀYOt}cv`!kv; x}[|G J8سkqO< 9p9e@pqD>̓M`=Z]*}1Q/%@00DWAy@!|eXI aE0SA,0+% 6B4 0C q @A@H.A 6@0A Q.4 (l%C|d@!,+422&"3 1.~0CFTACQ9:I.0@LN[;=L0IKYpq{02B"%5!#4-ьZ[h+VWdst%'8>@ONQ^态DES-/?WYfegr`amuw/Z[g|}&(8HJWbdpOP^BDR)Y\hyzst~mny-0?lmxTVcEGU+OQ^'*:rs}ǫjlw$&6>@NYZf25D8;J;=KH *\Ȱ! J8pň3.8F rl0Ih lA 9>,Ҡ688!Ȑ5!0  @P%% #ժKW @TVŒ5g!Bdu!\ru6lƼe2;>f<:دD|谇PHa ҡBVpvLXa#"DРhJ0`@,VTAޅ 7V ַA@@,޲&~:yz^@NVWdst>@Opq{69=%'8 NQ^!#4'0@1;K!#0糴egrDES-/?WYf`amuw/(Z[g')9}~ٗHJWbdpst~yzY\hvw-0?TVc)KLZOQ^BDRrs}jlw'*:룣$&6-YZf25D8;JlH*\ȰÇ  ŋ3j8qǏ C2(ɓI\ɲ%G.cr͛kS"̞@ JtТHYMʴҦP=>JT ʵUZvu`جc^]Ê[V*$B Kuj@roߟH KN!pF Gn:uhޜУI5mԪzn-ӱڶϼs :A!9Z c!A.Рq9gF/A9q&,X0]@ D߁ T`wwpgB ,L^2E@  ot  \K&xBdIh1INQXaAW9Y EE FnEd_Af5't Ix& gx p.(mp**Cjkp. @F54,ɬ ݀@,Ƨ]t*4(T)\C<(lD;< -> 9LoC'؀٠:B-" QTоK. .A G7t-xPc$ZrC@<*/7 .`wCEF $T>@Ffl3,-8 @Gd( l?B!,(222&{"3؛M 1.~CFT0;=L/Z[hIKYACQ67F02B"%5{!#4ցHJWyzmny>@N\"st+>@Opq{D9:I%'8LN[ݥNQ^m.4%=WYf0`am}~DESuw-/?egr4{>u-@Q^Z[gu>IKXbdp')9KLZ%BDR)Y\hvw,={-0?\st~TVc+`С>msEGU!VWdǔ$&6jlw'*:M xzYZf25D[D*8;J;=KMH@\ȰaP谢E>{ âdž,RL*cǓA df x8i$b4-B @ N $ԡ EJC @)aU h 0*Sj-hRep ҔK_Md`> Dhpc+`2e[LL|дI@82 *sp:GN*\밇 #!`8!Bĉ߾=F0_Q z@B ⣿^]Ax!&~gAeh gB-@XQ8%  4!,FFԢEvR@;G@DAg&@!p@C,&㆏0V# d#Z@g-`EA$` pPCD 垭":(*X(甍b*ԃЙD$DQ%^'d!kE.PhC<q@BͰBG.Dk ]̲PB= C 2>4(?LZ@pE hiq4t@H@vA;82D0;0Ao@NVWdst+pq{LN[%'89:I+-=>@O%NQ^5Q!#0.0@!#4ٳވWYf`amDESuwegr&(8󪫲.m')9}~bdpIKXKLZEGUvwY\h)-0?\EGIst~TVcBDR>@M%I{Dz$&6jlw'*:K gi\YZf25D 8;Jd-?1(H`\Ȱ!CI PË @РC"@{@\F*Z\ 0E&ϠCm0&,= Sa<:t= ۵H!ѝlذ''L“ptЗVLV )|CWY 09@nP h&OMd5m&Y8S!\E (=t tԞ۸t\# O y8/\ f@^$}`@d-5}'DaC! @!f0  `#@ CvĀT X(  *aZvw_@a P:qCL> U>@s"X @#ޙXIl ].5pbw"SS7PJ%T!B(uK@BEia d `J@B5"i©N %fJ9t:а&F3k@@B%R t XAߤVWpX0 !(,K,2<H ! ,V22(,3%)/$(.***'*1'+1,,,&*0'+2(+2&*1"&,#'-RPPPH`<`  HhȱǏ Cz,H >8"ƌ"cʜɱ͓ :(E4 i$Δ;Y|9ТFTɳϋN$)T+{ǂҖ<3Ufn$nTm.%+7 ~ͫt,־~LU*^ǑN[n9eE.vMG`0dOW365i;FfݭmϽYic"OVԓc.vɟ5x ~M9r|vuv w5 ~ v'`}>y~HRa)fxވ8s^8"0ڈ.ΧߐxJhc >ɣLNEPZ(a6&D!X"\ZdYVfnne^2*Fzƹ"IIf$|cʨרiw&c~y%j'irhꠔ:U+n j ,Y&FJޤJ ijlP9*Eilӎk*z.^{:/ݺ{/-iɪZһܯ#pԒkm',{ { ,<.1cLs%+:ū}_ yV;/wڮ??Mm {t?]=֗/'O?iϏ+N?N~__=&F_x@fPޅ> `&!pur #zk) /8py!rEEB%ސ1 k!v0*\" $EbGbx(q_hF51:$#aE6эh!8Q~|cCLx@汑" -pvT3yM&d&CIJb%SIJT|*')V>%.aC%0})LC'/|MBwVX %[.'^ٷcQ7䩭".2lb'-cQz4Yd0nڹ7b˼f-')nf7Ƿv2@[9 N g]p#7v{BcZ{~0KḲ~r9mh4YͰ4[gRo/63}1:}YiZԦmazמd]ȜmV:_{Fg^+ִ Yu7Px5z[ߙ};F8oK nc۫xjw|uʮ8S-e69}sq;1-?CrߣJGy‡tpAy 9/'.sd<9. |I.{)/{۾׽;>x+VNwQ3>7ϳo<y^dOakXI _7y-3]ےw}gz3ݎ>_Go}>\Gwi{~=_ƿcT~Yj1!! ,,22,24լ{NPtزlw;p=9d8|ڪo7tA_ 1eOk[~e7 ;>%7_"Da&!^!J}`In!H\UXzt4hbQb%MЁ0b!,@E22.ghrhklwGHU79G=?M89HOP\\]gfgp "2klv9;I]hirz.hnow-&(8ijtPQ^"$4YZeIJV{|JKXcdn.jktz{yzopz9:Hxy.zh.H  (\ȰÇ$p(HŁhȱǏ%\i1 "\Y0 D$Iʙ8F`1`bΊ&)"P- <Ā L "0UN*׭\Iz 6űU˚6ڵ2} wܣa֥xw({bJDฃ>L/8MՇ^Ɏsݛ溝g"Y`h^zj;;싵޶;:;Gr\rwFGR "2.^_f24B9;I\]dOPYZ;4.hȓ?jD+d>w͌g^ЭoB0_TiI}7mRa%E~Q^ׅ^Q[M'C *P@zj; # E0Z"'~#"Le݃F(aR,Ёfa !@Y $…%b4.X#c?L$F0[ؑHS<eSꈄaP^zIe_E]@d.f[+c!(`gR 4p5#nLB~*(%.Qz"F(vgZ}!N0bz W5@> ):kŠh88j4:pQ11-Ki4+ 0 8A,h" EI-<  >k@ n 3QFB1ۀxĨ l$"0,QF@#3(ڼ7p>)! ,@G22MMMIII􎎎{{{񨨨SSS.|OOO,-7../ZWXc-.7}}}"#0EEGWݝ|23:#$067F箮opwcZݽo(()4BCE34;)35C78E%&2hin56=,-699>23;*FFG-c$%2-.8QR\)*49:?/08Աo|'W|JKUuv')7-H  (\ȰÇ6H2jȱǍ4TI1Ǔ(Of Rɔ0c Xٲ8)LxP 4ipDND{>8CRp j;xM +QƖ5[ZlfL[,ܸ,]wާv %7i~zEA` MЅ ȑ!D=rlt>J4!]t-`~} /']u'oܽw{nٕ4،bFIՌY%@=MuSN;yTFCՂ 6xMq-΄$\ ^$$=\`ǥq(@L4x <@` 0hdDPD>6cp+ЦMZPFڕXS i`#S2>9e TB慝j9%Eg~) 0(rP3̘`Z p:yA<>W \馝B\U쨪j+B F5@ʪ;:M~+:E ,>n P -6@;@Im6m94pWdE:p-J#jPkmЋ 2@G7Fe TnPv06@sDN $֓/. W%+3Y„Q @`* `  ),a^ro :a {cӖI_LpJě # *&M۶CeC_I@ J@ d/c_w @@01j#f0Mo ƀw!f r,A p 9<C!A`ځɧ%bF'b-(4hR ܨ#FcG9X9@BȑG!,@33322000}}}hhh:::rrr !+777lll'RS^..0 !*)%&-#%3BCM!",*$%,*'(-$%-gho../(23@!"*(13A&&,-/*LMW(\]b#$+'',!"+uv)PAeX0 #JP3XC@Qœ-j\с0M9S%K @ ϔ7W. ƆH+]IfHm.&>N V3. W%+27Y @`* `  3,a ^2o :a ];bӖI_L`Jě # *&M۶@CeC_I@ v@Pd/c_ l @01j#fAMo ƀw!f r,7t@ 0<C!P (|!0(fTb,b0(4.@8bQ9vt#3. dy! ,@22臇89FOPZcdodel./= "2.:;GTU]mns9;I24B\]d;?KGHRllqMNX 0TA?X0  #JP3XCBœ-j\A0WIS%K @ Iϔ7W. 󇅟H+]IHm. >N V0. W%+2-YUB1 @`* ` c ),a^ 2o :a ;dӖI_LpJě p+# *&M۶CeC_I@ b@0d/c_wH9@01j#f Mo ƀw!f r,dM(pIJ]9PDk?],pկW,O]P~_b} 8 xQG4`N`  4H8f0HP `7&19!/(#0ֈ$pG⥗ (f@D0\vHedifBNn}E[$D!xycb2ydbfX}PCR !l*,﷔Xm5TYwLy]NmhjQBz3pRMs33@|.8~~8i+Nn;>Kh[~9okY{R@!,1/'22)-4#&,"%+$'-"&+#'- %GGG ),3&)0!%*(+2$(. 888%)/kkk "''*1&&&&*0zzz #(hhh ###ꆆeee@h@Ȱ!A:@`ċ#^L3j ` I"9rɓ)UdRKeYMbOBA-jI1.)$ )׮PnԺ׳aǒ-Z+bCmmzwM/` B[Ċ"ȋK6L['s@ѣ|6:CZsv͸\`an9N<\gq@:@ZG x+y*} ^}.4]pë "g6z9qI'S($˖$+ŒrǗ6Q̈s>M3$JR:UT*U6MYUIŠ `DZcG6ǵۺܹƽ+^| o"6X1amSBlr2e/͌3Λ?(ZҦQkV 喜UƖ.ro%hr_޹};일>] !,n%22,2<)-45*5(HP!†8Xb1^P`Ǐ0 2$(SR`J*cdR͗ɓf: 3PEwғM>uUT?sJծWlX_ڳofu*wWs.m[6ԏ`SCtb K|\3yΜ50 !,22)-4///---뿿NNNMMM*5OOOLLL P 0@ A ŋȱǏ CIɓ4P!C%RH"ʛ8sܙr` 6|qb͚<*]SϖBay#ӫXnt2K2fJlS?xӨ؋f.N} w_NE"*X|5]lVwAږ*_ƘrWjĊ3V*彠GYzgėW˾ٺaog6YpeСw Ó{,xlʙ-:t鷁[oȷ;x???;u ?ԫots~ ()9I8aeQ bh[y 8߽qx'h)ؘ7;ݍ>"dY2yfrfV9+ޚ묻몿ÂZlblJ,Ym֙ۮ٭ߊjY.B./X/rدJ+X ~ p|yWv[ukǂ~h*y+#sr+ r2"?%' w+b `WAp\/hB nP_ 5(B !mhAF;aqxd%Sx0(\oAP$dȺ!QP4HD+qC"8F*pRlcEeE"X51{FKb(G>]hF6*#1UsޣfYpݛõyw;4H[W[.˭LCs^tQZh7ӸS4R;YӠ]hUҥ5'm%3\l# V6wmWzӺumw9u-np{7-Pk٭eVּ({>v8nO> #pk8o_,q[wVʡri _ȱ=Wz9c{9ur6zo^*W;tt!=L8©sK#oןl~fɓ~obW9u5};6'ڱx︎5❮vǻ^gh|=_<þyk}oza^|C{˗y%ħE~>Зn9|^>~_?u?}ͫ?~ѿg~w|}l'Ƈ~ćG  g}W }(}x!}#} ("؁hX~2H4(g6{8؂BDX9;CȂHJXLx(&(؄'GG%X't1KH|AS7A:qx! ,,(22./R/^輦r.[trحtb^b.rfྚfR(*<8!A HHŋt(PBIɑp(ɗ0_BX)0PϞ ,愜<*] @V"Ѐӫ?3hgR`Z *Aa$kڴlx 7ʶs邍VUy2,]*D\'<4^BJ+_- 8w> BDƢNAoj*M}lh7$[ ޿u=uE'fZ 8:gPi@v͹P 0ӡCQh&H SF(JQ@!,-22R/̾X/R`ޘ/zXÓ//X/fRfH*\ȰÇ# @@ŋ3jx"Ǐ Cqɓ(ALɲK+_ʜ2&͛87 ϟ@I4J (]ʴӧJ,J5c ʵׯ`>ZlD tp`A l kB5@ƒv#6Ax"=AVe̙osh=_>-1gՠYM]zlS=5iݶySoXBʇ?@zt[NtD۹Dox];vw%'߼Iԟ~4`{t| 'r5҂'H&e߆d)Ub vJ-"yM&R_RZkV\sYhGDDiH&i.8RAfpTViXfA>:`)dI!,($22/ÞR/u//Re/wR*<8p`"JHň 0 C)rtIˆP˛/d`%Ο" hHD*Ej@ҡMe*u*Ԫ@b)4Bԭ/^P ʆ VK(m)t׹G woC,͛t@ 6xpcF;y.SLs1gqI װc˞ZWͻo !',+22,2*]ʴSIJJUQjʵ+T`ÊٳhJ̪۷^KQv/߿c+ #^̘Ɛ#},尔/kL53ϠzM4ѦSVz[ÞMc۸c{Ȑ i㵣Gܵ/?N_~OӞO~𻾏O__4`t` ``v4awq血-+)w!$⊬bK'b2Hcވ:a>RdI$F`Jd> %RN_V҇em%{^~^bGf&w!&*Idrf݉gsz\~h J(o[h= )lNꜥ5VijnZZjJf*)j*IkZ଺"k `띱^.+HB+VkfTpV;M o;/z oLb$ %kL #l Ln7[L;C.yx),e:,P1O6/79R@q/d4'] /1VqbA=4[Sl^\6j5t{ v_vᆣ}#$8q]̉ON{&!-oU1ngNv7y r+2COxJȸ瞴5_M|PKlb/3}zGK4̗W!{~8߾܄#ϽSe6}W{!w  70G#Ϋp7%mYGB` Qh+4YVHЅ1$ahЇSC"ưhF ¥ {(P"ã-v^X @`Hc0$@lh3: qc) ,@ p?` 8pH̑H"pG葎rDHD1 Q1$"9ʂHr"K5VҒo']y]Dpt&!iQrRie$YGdr |f-@˂&,3:NL/pf5Ps+Y3s,3LLc#C1g<y6&"Ph|L'4D XAPN@`hYS\A* Jhn/brL$KJXt@ z:8&'ӅU\O+UT3)}R@Ja~ԍ gFW9ՃtU*!TƀyL@#G^jkAܸV!#]ŢՍ#1@HD= ƙHu=M**FB#eƢtMUj'Yԣ ajIQFҍT@k-ǵ֡H-o[յ 4gCm5Q} VrwPTypG-WؔrɁѢHR0U`i}qID@AJ\ gWpNaLl:ǹo)?\qm"SM5*6k0BؼX*˚Mb+ |R$e. +h;[NT9檚!5%R+b[58':[JoHj&mXkR%\F]1(͉Τ@mm-YT7+*#Ӊ+jfS q `OZ`(_΂5l+T6TAJz~1mGk:f! mj7yLfDGS7̪x1*eU'MpkSy}kag{xt"=r\d&gGy1vABQۿr#,]вRαEmgMuuPmzYOx{yc(sfTVIQx'`!W}ga qD\xd'RxvPDFJSE|fz4zH(@zH"Hcdg4XO$vzehH@h`4NP$KHUeNGqdye55U|G}gN8[wH^dLmLktGD}$'PFmM#4Fdш1x!,RH !%,,2<H !,22,2<)-4*5S2!ObuVk04&+yCjyn0(,YM.4;AHR<=>19?Klq{LTcw}Z`iHO^-19IQ`DIQ@FT7AHetz;AQzCKXMRZ+06iQ~l5:C5248k_˞M66۸ͻvN8Qȓ$yUj=u^O聟O>eO?A?J_&6` v` ``Vadn!W~(bU!hS%bR)"P5݋4]8uci$G&ԏJ6)NFRViVf ZVeQ~ fbdffC&ncrHg4މzb~I3j(A;@.z(biNJi^`&i~ j_jj|^Gk݊kx]nl KxǦil aDdJ[(jbm} .o랹Ѣ[J+k+<@U U 8V \P ; (p[VDM9.=u5 t=qlɟ|Pmw-5Kw \Oͱ |Ǖ\p̀\`E.PL Dw| t/ww=_:/h\;*7`{,&X鑬iAH'qiR;_g]p,]2r+ v! cD@A |G@ :@T PCUiBs*p(@,\9>]O!&["f9<0+4;(σkD B2kgƌNT pX1Vsd\rŵdEh0zVHr0;^bI ^ njiytH!|d ^ a!IBVO٫X'UQd"*-P~H{ɳ'ɁzN6>j5@"A昀AOds^dž(S^>EOtbut€}FcY652-o eR663qfֻ 2eX='VHtyhRԷrei83"eʴF)O\X_ EPVbՇN [W՝)S ]z,z⪺Q@aEZV3,2 g=+ҒEhSZD5-kWK[6uk5;[m=[/rV ro\ĸ̍nr:rJ xKՀz|Kͯ~'z5N'.#L [ΰ a Ox GL÷WEU 8^+L@rIxex` "02U(:*k@xSjeʎ ެEYŲǜ44@&/k msf/Kvٜ,ޤ9Yx4׌MuuH U)Wyx@.-΁zLNtD );@ m|Z7kt5ހӏf ^W߹rS_^ $tm2$ D&8L<zu]ijm䝜{ewYw;9Ȼi6u-{u1Rt|VIZ8yU'ލG.a'y߰V8k D%o8A֌onkG9])W+zM,a H7 @A.szpo'o 7"Ane7z⿶rAPe/Z/oM=IJ?Pп!`'0 h@ɶ{Wu~I mz7; u-{wpiw|W^2=epz{bwƗ|jՀ=d>'}FuYjc|d^YNq7g^'xf܆;!7* ~&~88/6ck[pk jmY4)'KpY#os{jmhnU8l 8iKxaiTg#ǂ0jgm>GmpHlF3clsqwfԆrT6cslXqFghFCi{g}"}V#tXhy~feJ>7yVHIl2_W7'fHz|k@zGPˆxȂOcWhVw^fs4/tRD޸jէuePsi7z#{68n:Wur؏#Ƌ l0V4ׇ Vh! }?&~W^󆴘ӂ67n6x%|Buo.9o~'Xpe'zejoN)LJ:Y^x 8'ϧŶL7§l$MĶ*&d/qƐW1dV5QyvgQ䥁u Wj7dk8|ɔ(|g{9|yyx'{FiHg{*G}ho(s3/h%`ZiCp G eHF&n/T&Fgfgl϶ly(mXwv045#gf{QXXvTX1sd䎒ej6k?ڞ|&\rjȖHCpWiƁYvjlrT3s~LjuaX&MFS_n8(;Fa|'dڨu:Z-&ک :Z &ڪ慪 :J`Z:Zzڬ:ZzؚںڭZ *˚z蚮꺮ڮZZjگ*z  ۰*J*[{ ۱ ʱ"[&{(*3@.[2*;4[6۰0-<0!7;D[F@!A+GR;TI)@;U۵^( %[;˵`j8 E-gB˶v{xۮ1MyZWu+;}뷋-3q۵$۹C[k{[:!(,K,2<H !&,KRH !,K,2<H !,s;22)-4,2<*5&+yVy(,YCjM.4(A *Tp Æ.H1ċȱCf(Ò"OXp%K.1)q&M PqTzD<pRM1_. * ѢG&gӜOmF9fՖWYfM5&΢ ;(`l؉?1my1C pܶڍ[w/]~-*,†M /Ƌ#fb<*U"ժSb]yjԧ_]:i٢gQόV!֒ͫpޟ~ ,0Â&;0Ə!GqeƗf޺k窟i馧Fhk ;g휷m枹fUl&|o@!,K22)-4R @*\ȰÇ#J\(pŋ3jx"Ǐ Cqɓ(3LɲK+_ʜ2&͛8'ɳg>*(MFDIN~**FVFĪ+C^v(Vf~EXpa,]v˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ xCvyg'vs=vyݱ׾{t?|}ѿW}W8!Qt=kIpfᆸ "& Pb,hțѨax/3Y7";#?BCRYGbKro@&mc+!,%A22)-4(A *\p! lHѡċ+jqG?lrI%OLĖ#Yr6WI'ύ2)ԢϢ$"EiPOF95gUWgfeW_O596)F];@![#>LjEH_?.m(x†Mv1㾏!?@92e+Orf̛AwsϨO-4iæY۸s[t !,22O22(,4)-4(A *\ȰÅ*Xŋ)jǃ?qɎ%OtrK^ʄ9Sf˚&R+}U)thΝFGMq)ӎN^*!ժ b]u^nlUR>U˔mR/}ʝKѺv}[W^ LÈ+^ 8ǎBtcɖTWφAM`ӂQV8a֟]=viۧqֽwkͯ}>xm㷑Vyo:h-cn! ,_DX22(,4(A *\ȰÇ"pb3j\yqDZ',\q;oӷF[K!,-=[22(,4(A *\ȰÇT( ċ1Vܘ0Ǐ'IȒ(QLʖ0MZI3̚8Y%Ϙ> *4%Ѣ%"t˝NBt*էU#׮2*v,V u-۲n wnCW9-BvKÈ+^̸ǐ#KL˘3kF ?+sH^mnkůF8kE.~!,K4f22(,4,2< @*\ȰÇ#JHŋ3jD(pǏ CIɆO\ɲ˗-SœI͛+eɳϟ: JǠF*]ҦPJtիX7VʵW[{5,ٳhM˶εnʍ9pݻ/ע޾3+a†E]Ǝ#,2Yʖ3wŬϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μУKNسkνOӫ_Ͼ˟OϿ(h& 6F(Vhfv ($h(,0(4h8<@)DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐F*餔Vj饘f馜v駠*ꨤjꩨꪬ*무j뭸뮼+k&6F+Vkfv뭁+n;n[nbzYorjoK._YW0 OٰBTlq]|1klq lCF K̲.c2d" d˔e]+ΏAo,z-i~e|ԨI׊zUg@!,{!#22(,4(A *\@ 2x0Ň3NĨFC.)R$ɒO(qeH.7@&M6mf䘳&ΞvJ'E?DjhIlQK:QkG^YV؎ereVYm]wܤ+\zާ}ૅx"^G-Bɗ) 6 !,22(,4P(A0@ÇJlXpE/j̨"ǎ+ p$I'QI#aّF/q9gM7Kyf@!,KRH !,K,2<H !,666111000OOONNNPPP  8H B BH >8qNj!5hdƑM:ƒ`RMvbȀJ̐!%L?U3g˩OYJuSVG~5Z5jMPO*װffzֺsW.߸X w۲"vXtfŏ>x̂)CKgӗ;\Zuk֜a7]9k۱q]tn߻EkF>xs˕ΣSG}[sWzqӭ&~ߋ~~Ϗ~?^ h^r'* `G x {yؠ$`~ h*h""H#28HKNF#SJi5V%Zt)HAPplyecyf^)&frY']IwvބnJҡs&皍hJjz)**zj(z>ꧣBZ)r*Zkz**l:,.K2zNnߊ+-r{vF;k/ /Kۯ0{o0S0+\;,0>n7c0,Ϝ2\7,,s4Lt>+-tB;s`_. Usage ===== In your ``conf.py`` configuration file, add ``sphinx_copybutton`` to your extensions list. E.g.: .. code-block:: python extensions = [ ... 'sphinx_copybutton' ... ] When you build your site, your code blocks should now have little copy buttons to their right. Clicking the button will copy the code inside! Customization ============= Sphinx-copybutton was designed to work with the default Sphinx theme, `Alabaster `_. If you use a theme that doesn't play nicely with sphinx-copybutton's CSS, you can always add your own CSS rules! Customize the CSS ----------------- To customize the display of the copy button, you can add your own CSS files that overwrite the CSS in the `sphinx-copybutton CSS rules `_. Just add these files to `_static` in your documentation folder, and it should overwrite sphinx-copybutton's behavior. Use a different copy button image --------------------------------- To use a different image for your copy buttons, the easiest thing to do is to add a small bit of javascript to your Sphinx build that points the image to something new. Follow these steps: 1. Create a new javascript file in your site's static folder (e.g., `_static/js/custom.js`). In it, put the following code: .. code-block:: javascript const updateCopyButtonImages = () => { const copybuttonimages = document.querySelectorAll('a.copybtn img') copybuttonimages.forEach((img, index) => { img.setAttribute('src', 'path-to-new-image.svg') }) } runWhenDOMLoaded(updateCopyButtonImages) 2. Add this javascript file to your `conf.py` configuration like so: .. code-block:: python def setup(app): app.add_javascript('js/custom.js'); This will replace the copybutton images each time the page loads! **If you know of a better way to do this with sphinx, please don't hesitate to recommend something!** Development =========== If you'd like to develop or make contributions for sphinx-copybutton, fork the repository here: https://github.com/choldgraf/sphinx-copybutton pull to your computer and install locally with ``pip``:: pip install -e /path/to/sphinx_copybutton **Pull requests** and **Issues** are absolutely welcome! .. toctree:: :maxdepth: 1 second/second_page ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1541455954.5697649 sphinx-copybutton-0.2.5/doc/requirements.txt0000755000000000000000000000003500000000000017414 0ustar0000000000000000sphinx # Install ourselves .././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1539912749.1422274 sphinx-copybutton-0.2.5/doc/second/second_page.rst0000755000000000000000000000020000000000000020376 0ustar0000000000000000============= A deeper page ============= To make sure that the images / svg still works! .. code-block:: python e = mc^2 ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1535719206.125975 sphinx-copybutton-0.2.5/pyproject.toml0000755000000000000000000000103000000000000016273 0ustar0000000000000000[build-system] requires = ["flit", "setuptools", "wheel", "sphinx"] build-backend = "flit.buildapi" [tool.flit.metadata] module = "sphinx_copybutton" author = "Chris Holdgraf" author-email = "choldgraf@berkeley.edu" home-page = "https://github.com/choldgraf/sphinx-copybutton" classifiers = ["License :: OSI Approved :: MIT License"] description-file = "README.md" dist-name = "sphinx-copybutton" keywords = "documentation css copy code-cells" [tool.flit.metadata.urls] Documentation = "http://predictablynoisy.com/sphinx-copybutton" ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1539824932.7193189 sphinx-copybutton-0.2.5/readthedocs.yml0000755000000000000000000000014200000000000016372 0ustar0000000000000000name: sphinx-copybutton type: sphinx requirements_file: doc/requirements.txt python: version: 3 ././@PaxHeader0000000000000000000000000000003300000000000011451 xustar000000000000000027 mtime=1539722581.719532 sphinx-copybutton-0.2.5/setup.py0000755000000000000000000000076400000000000015106 0ustar0000000000000000from setuptools import setup, find_packages from sphinx_copybutton import __version__ setup( name='sphinx-copybutton', version=__version__, author='Chris Holdgraf', author_email='choldgraf@gmail.com', license='BSD', packages=find_packages(), package_data={'sphinx_copybutton': ['_static/copybutton.css', '_static/copybutton.js', '_static/copy-button.svg']}, include_package_data=True, ) ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1549994004.2254999 sphinx-copybutton-0.2.5/sphinx_copybutton/__init__.py0000755000000000000000000000154200000000000021277 0ustar0000000000000000"""A small sphinx extension to add "copy" buttons to code blocks.""" import os __version__ = "0.2.5" def scb_static_path(app): static_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '_static')) app.config.html_static_path.append(static_path) github_url = 'https://cdn.rawgit.com/choldgraf/sphinx-copybutton/master/_static/' clipboard_js_url = "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js" def setup(app): print('Adding copy buttons to code blocks...') # Add our static path app.connect('builder-inited', scb_static_path) # Add relevant code to headers app.add_stylesheet('copybutton.css') app.add_javascript(clipboard_js_url) app.add_javascript("copybutton.js") return {"version": __version__, "parallel_read_safe": True, "parallel_write_safe": True} ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1539722581.7345245 sphinx-copybutton-0.2.5/sphinx_copybutton/_static/copy-button.svg0000755000000000000000000000130600000000000023616 0ustar0000000000000000././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1549993974.9759183 sphinx-copybutton-0.2.5/sphinx_copybutton/_static/copybutton.css0000755000000000000000000000232000000000000023527 0ustar0000000000000000/* Copy buttons */ a.copybtn { position: absolute; top: 2px; right: 2px; width: 1em; height: 1em; padding: .3em; opacity: .3; transition: opacity 0.5s; } div.highlight { position: relative; } .highlight:hover .copybtn { opacity: 1; } /** * A minimal CSS-only tooltip copied from: * https://codepen.io/mildrenben/pen/rVBrpK * * To use, write HTML like the following: * *

Short

*/ .o-tooltip--left { position: relative; } .o-tooltip--left:after { opacity: 0; visibility: hidden; position: absolute; content: attr(data-tooltip); padding: 2px; top: 0; left: 0; background: grey; font-size: 1rem; color: white; white-space: nowrap; z-index: 2; border-radius: 2px; transform: translateX(-102%) translateY(0); transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); } .o-tooltip--left:hover:after { display: block; opacity: 1; visibility: visible; transform: translateX(-100%) translateY(0); transition: opacity 0.2s cubic-bezier(0.64, 0.09, 0.08, 1), transform 0.2s cubic-bezier(0.64, 0.09, 0.08, 1); } ././@PaxHeader0000000000000000000000000000003400000000000011452 xustar000000000000000028 mtime=1549993343.0190501 sphinx-copybutton-0.2.5/sphinx_copybutton/_static/copybutton.js0000755000000000000000000000557700000000000023374 0ustar0000000000000000// Localization support const messages = { 'en': { 'copy': 'Copy', 'copy_to_clipboard': 'Copy to clipboard', 'copy_success': 'Copied!', 'copy_failure': 'Failed to copy', }, 'es' : { 'copy': 'Copiar', 'copy_to_clipboard': 'Copiar al portapapeles', 'copy_success': '¡Copiado!', 'copy_failure': 'Error al copiar', }, 'de' : { 'copy': 'Kopieren', 'copy_to_clipboard': 'In die Zwischenablage kopieren', 'copy_success': 'Kopiert!', 'copy_failure': 'Fehler beim Kopieren', } } let locale = 'en' if( document.documentElement.lang !== undefined && messages[document.documentElement.lang] !== undefined ) { locale = document.documentElement.lang } /** * Set up copy/paste for code blocks */ const runWhenDOMLoaded = cb => { if (document.readyState != 'loading') { cb() } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', cb) } else { document.attachEvent('onreadystatechange', function() { if (document.readyState == 'complete') cb() }) } } const codeCellId = index => `codecell${index}` // Clears selected text since ClipboardJS will select the text when copying const clearSelection = () => { if (window.getSelection) { window.getSelection().removeAllRanges() } else if (document.selection) { document.selection.empty() } } // Changes tooltip text for two seconds, then changes it back const temporarilyChangeTooltip = (el, newText) => { const oldText = el.getAttribute('data-tooltip') el.setAttribute('data-tooltip', newText) setTimeout(() => el.setAttribute('data-tooltip', oldText), 2000) } const addCopyButtonToCodeCells = () => { // If ClipboardJS hasn't loaded, wait a bit and try again. This // happens because we load ClipboardJS asynchronously. if (window.ClipboardJS === undefined) { setTimeout(addCopyButtonToCodeCells, 250) return } const codeCells = document.querySelectorAll('div.highlight pre') codeCells.forEach((codeCell, index) => { const id = codeCellId(index) codeCell.setAttribute('id', id) const pre_bg = getComputedStyle(codeCell).backgroundColor; const clipboardButton = id => ` ${messages[locale]['copy_to_clipboard']} ` codeCell.insertAdjacentHTML('afterend', clipboardButton(id)) }) const clipboard = new ClipboardJS('.copybtn') clipboard.on('success', event => { clearSelection() temporarilyChangeTooltip(event.trigger, messages[locale]['copy_success']) }) clipboard.on('error', event => { temporarilyChangeTooltip(event.trigger, messages[locale]['copy_failure']) }) } runWhenDOMLoaded(addCopyButtonToCodeCells) sphinx-copybutton-0.2.5/PKG-INFO0000644000000000000000000000037300000000000014462 0ustar0000000000000000Metadata-Version: 1.1 Name: sphinx-copybutton Version: 0.2.5 Summary: A small sphinx extension to add "copy" buttons to code blocks. Home-page: https://github.com/choldgraf/sphinx-copybutton Author: Chris Holdgraf Author-email: choldgraf@berkeley.edu