From 7b712579fbb6f9300bee18228ba4b567ab4f9045 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Fri, 31 Jul 2015 18:19:15 -0400 Subject: [PATCH 1/3] Revert " Merge pull request #4019 from myshen/annot_neg_coords" This reverts commit d6e15779e9588d8d2f58864d7ba435f666cb0326, reversing changes made to b280f7d98714e2eaa60bec5f0b332a425bb94e39. For 1.4.0 tacaswell refactored annotations (#2351 ) but missed that {'axes points', 'axes pixel', 'figure points', 'figure pixel'} were special cased to wrap. Presumably from the function name to maintain back compatibility. This was an unintentional and undocumented API break. This API break was noticed in #4012 and fixed in #4019 but that catches too many of the coordinate systems (should not be all things that start with 'axes') so fixed one API, but broke others. There were two reasonable courses of action: 1. revert back to 1.4.2 behavior with nothing wrapping. 2. revert back to 1.3.1 behavior with somethings wrapping. In the discussion in #4292 where the consensus was to go with option 1, hence this reversion. --- .../test_text/annotation_negative_coords.png | Bin 18308 -> 0 bytes lib/matplotlib/tests/test_text.py | 169 ------------------ lib/matplotlib/text.py | 23 +-- 3 files changed, 6 insertions(+), 186 deletions(-) delete mode 100644 lib/matplotlib/tests/baseline_images/test_text/annotation_negative_coords.png diff --git a/lib/matplotlib/tests/baseline_images/test_text/annotation_negative_coords.png b/lib/matplotlib/tests/baseline_images/test_text/annotation_negative_coords.png deleted file mode 100644 index f5be853ae2e0ce22a19fc7f36dad1e28682fc705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18308 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 gyZis;7vt;)K8y%I?_K+Vff^8f$< diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index fb698eb7e661..93ddab6e6e0d 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -305,177 +305,8 @@ def test_get_rotation_mod360(): for i, j in zip([360., 377., 720+177.2], [0., 17., 177.2]): assert_almost_equal(text.get_rotation(i), j) - @image_comparison(baseline_images=['text_bboxclip']) def test_bbox_clipping(): plt.text(0.9, 0.2, 'Is bbox clipped?', backgroundcolor='r', clip_on=True) t = plt.text(0.9, 0.5, 'Is fancy bbox clipped?', clip_on=True) t.set_bbox({"boxstyle": "round, pad=0.1"}) - - -@image_comparison(baseline_images=['annotation_negative_coords'], - extensions=['png']) -def test_annotation_negative_coords(): - fig = plt.figure() - ax = plt.subplot(1, 1, 1) - - ax.annotate("+fpt", (15, 40), xycoords="figure points") - ax.annotate("+fpx", (25, 30), xycoords="figure pixels") - ax.annotate("+apt", (35, 20), xycoords="axes points") - ax.annotate("+apx", (45, 10), xycoords="axes pixels") - - ax.annotate("-fpt", (-55, -40), xycoords="figure points") - ax.annotate("-fpx", (-45, -30), xycoords="figure pixels") - ax.annotate("-apt", (-35, -20), xycoords="axes points") - ax.annotate("-apx", (-25, -10), xycoords="axes pixels") - - -@cleanup -def test_text_annotation_get_window_extent(): - figure = Figure(dpi=100) - renderer = RendererAgg(200, 200, 100) - - # Only text annotation - annotation = Annotation('test', xy=(0, 0)) - annotation.set_figure(figure) - - text = Text(text='test', x=0, y=0) - text.set_figure(figure) - - bbox = annotation.get_window_extent(renderer=renderer) - - text_bbox = text.get_window_extent(renderer=renderer) - eq_(bbox.width, text_bbox.width) - eq_(bbox.height, text_bbox.height) - - _, _, d = renderer.get_text_width_height_descent( - 'text', annotation._fontproperties, ismath=False) - _, _, lp_d = renderer.get_text_width_height_descent( - 'lp', annotation._fontproperties, ismath=False) - below_line = max(d, lp_d) - - # These numbers are specific to the current implementation of Text - points = bbox.get_points() - eq_(points[0, 0], 0.0) - eq_(points[1, 0], text_bbox.width) - eq_(points[0, 1], -below_line) - eq_(points[1, 1], text_bbox.height - below_line) - - -@cleanup -def test_text_with_arrow_annotation_get_window_extent(): - headwidth = 21 - fig, ax = plt.subplots(dpi=100) - txt = ax.text(s='test', x=0, y=0) - ann = ax.annotate( - 'test', - xy=(0.0, 50.0), - xytext=(50.0, 50.0), xycoords='figure pixels', - arrowprops={ - 'facecolor': 'black', 'width': 2, - 'headwidth': headwidth, 'shrink': 0.0}) - - plt.draw() - renderer = fig.canvas.renderer - # bounding box of text - text_bbox = txt.get_window_extent(renderer=renderer) - # bounding box of annotation (text + arrow) - bbox = ann.get_window_extent(renderer=renderer) - # bounding box of arrow - arrow_bbox = ann.arrow_patch.get_window_extent(renderer) - # bounding box of annotation text - ann_txt_bbox = Text.get_window_extent(ann) - - # make sure annotation width is 50 px wider than - # just the text - eq_(bbox.width, text_bbox.width + 50.0) - # make sure the annotation text bounding box is same size - # as the bounding box of the same string as a Text object - eq_(ann_txt_bbox.height, text_bbox.height) - eq_(ann_txt_bbox.width, text_bbox.width) - # compute the expected bounding box of arrow + text - expected_bbox = Bbox.union([ann_txt_bbox, arrow_bbox]) - assert_almost_equal(bbox.height, expected_bbox.height) - - -@cleanup -def test_arrow_annotation_get_window_extent(): - dpi = 100 - dots_per_point = dpi / 72 - figure = Figure(dpi=dpi) - figure.set_figwidth(2.0) - figure.set_figheight(2.0) - renderer = RendererAgg(200, 200, 100) - - # Text annotation with arrow; arrow dimensions are in points - annotation = Annotation( - '', xy=(0.0, 50.0), xytext=(50.0, 50.0), xycoords='figure pixels', - arrowprops={ - 'facecolor': 'black', 'width': 8, 'headwidth': 10, 'shrink': 0.0}) - annotation.set_figure(figure) - annotation.draw(renderer) - - bbox = annotation.get_window_extent() - points = bbox.get_points() - - eq_(bbox.width, 50.0) - assert_almost_equal(bbox.height, 10.0 * dots_per_point) - eq_(points[0, 0], 0.0) - eq_(points[0, 1], 50.0 - 5 * dots_per_point) - - -@cleanup -def test_empty_annotation_get_window_extent(): - figure = Figure(dpi=100) - figure.set_figwidth(2.0) - figure.set_figheight(2.0) - renderer = RendererAgg(200, 200, 100) - - # Text annotation with arrow - annotation = Annotation( - '', xy=(0.0, 50.0), xytext=(0.0, 50.0), xycoords='figure pixels') - annotation.set_figure(figure) - annotation.draw(renderer) - - bbox = annotation.get_window_extent() - points = bbox.get_points() - - eq_(points[0, 0], 0.0) - eq_(points[1, 0], 0.0) - eq_(points[1, 1], 50.0) - eq_(points[0, 1], 50.0) - - -@image_comparison(baseline_images=['basictext_wrap'], - extensions=['png']) -def test_basic_wrap(): - fig = plt.figure() - plt.axis([0, 10, 0, 10]) - t = "This is a really long string that I'd rather have wrapped so that" \ - " it doesn't go outside of the figure, but if it's long enough it" \ - " will go off the top or bottom!" - plt.text(4, 1, t, ha='left', rotation=15, wrap=True) - plt.text(6, 5, t, ha='left', rotation=15, wrap=True) - plt.text(5, 5, t, ha='right', rotation=-15, wrap=True) - plt.text(5, 10, t, fontsize=18, style='oblique', ha='center', - va='top', wrap=True) - plt.text(3, 4, t, family='serif', style='italic', ha='right', wrap=True) - plt.text(-1, 0, t, ha='left', rotation=-15, wrap=True) - - -@image_comparison(baseline_images=['fonttext_wrap'], - extensions=['png']) -def test_font_wrap(): - fig = plt.figure() - plt.axis([0, 10, 0, 10]) - t = "This is a really long string that I'd rather have wrapped so that" \ - " it doesn't go outside of the figure, but if it's long enough it" \ - " will go off the top or bottom!" - plt.text(4, -1, t, fontsize=18, family='serif', ha='left', rotation=15, - wrap=True) - plt.text(6, 5, t, family='sans serif', ha='left', rotation=15, wrap=True) - plt.text(5, 5, t, weight='light', ha='right', rotation=-15, wrap=True) - plt.text(5, 10, t, weight='heavy', ha='center', va='top', wrap=True) - plt.text(3, 4, t, family='monospace', ha='right', wrap=True) - plt.text(-1, 0, t, fontsize=14, style='italic', ha='left', rotation=-15, - wrap=True) diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index a6f70c7ab1e5..92f17a4c9f8f 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -1704,17 +1704,17 @@ def _get_xy(self, renderer, x, y, s): if s2 == 'data': y = float(self.convert_yunits(y)) - tr = self._get_xy_transform(renderer, (x, y), s) + tr = self._get_xy_transform(renderer, s) x1, y1 = tr.transform_point((x, y)) return x1, y1 - def _get_xy_transform(self, renderer, xy, s): + def _get_xy_transform(self, renderer, s): if isinstance(s, tuple): s1, s2 = s from matplotlib.transforms import blended_transform_factory - tr1 = self._get_xy_transform(renderer, xy, s1) - tr2 = self._get_xy_transform(renderer, xy, s2) + tr1 = self._get_xy_transform(renderer, s1) + tr2 = self._get_xy_transform(renderer, s2) tr = blended_transform_factory(tr1, tr2) return tr @@ -1763,17 +1763,7 @@ def _get_xy_transform(self, renderer, xy, s): # bbox0 = self._get_bbox(renderer, bbox) if bbox0 is not None: - x, y = xy - bounds = bbox0.extents - if x < 0: - x0 = bounds[2] - else: - x0 = bounds[0] - if y < 0: - y0 = bounds[3] - else: - y0 = bounds[1] - xy0 = (x0, y0) + xy0 = bbox0.bounds[:2] elif bbox_name == "offset": xy0 = self._get_ref_xy(renderer) @@ -2120,8 +2110,7 @@ def _update_position_xytext(self, renderer, xy_pixel): patch. """ # generate transformation, - self.set_transform(self._get_xy_transform( - renderer, self.xy, self.anncoords)) + self.set_transform(self._get_xy_transform(renderer, self.anncoords)) ox0, oy0 = self._get_xy_display() ox1, oy1 = xy_pixel From 0f7b217cddc1e7d81064d0bf3b7902aee2f35788 Mon Sep 17 00:00:00 2001 From: Thomas A Caswell Date: Fri, 31 Jul 2015 18:45:37 -0400 Subject: [PATCH 2/3] TST: add tests for not wrapping annotation coords This is codifying the API change that went it in #2351 --- .../annotation_negative_ax_coords.png | Bin 0 -> 26245 bytes .../annotation_negative_fig_coords.png | Bin 0 -> 27469 bytes lib/matplotlib/tests/test_text.py | 59 ++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_text/annotation_negative_ax_coords.png create mode 100644 lib/matplotlib/tests/baseline_images/test_text/annotation_negative_fig_coords.png diff --git a/lib/matplotlib/tests/baseline_images/test_text/annotation_negative_ax_coords.png b/lib/matplotlib/tests/baseline_images/test_text/annotation_negative_ax_coords.png new file mode 100644 index 0000000000000000000000000000000000000000..e070d0fe9d51160a9bd2eabeed055029e676ac4c GIT binary patch literal 26245 zcmeFZcT^PJyCw>VVg?lj3fjuj$vH$(&I?Mr%$Ii~xLM`habD7?-U;Or-o7ir zyHocJ81du8WN#?dym6=RzlUNRjtQ`2tZPW``a z4Q7|aSVF^Q-3=P;b;u+N4Nit?&0aY@;-}XT9W^cSQ-GF%_`Qrln)tzdhKd?Lu5SL< zi~k=E!rU%<>QX&j-Ed*c*3@_J1SQ7aui3bD>rDQzuhdFnoMOn}pQg9@!(>WbhJn=l z+#KWeY}^FtapNX3iOGIjsR};Y{LbWcclQl>e$MA=GB0Q7r^yE#-l||tQ3?${*YT*)_?%?lU*Y8lNzCV8axZTQ< za}d9QB*lFvx4PfKSK`h!c3Q+KWxf|IT>HIowo~mzP*BjYWZ&^V(GW4~&U?YUI`L6a z?DLC@O#099&fNVse}t>JxfQbFdNoomrzKW!Jzvkh_Ir8xxt%^LNk z7pH$YG-VmNERC0M%9g~3b&IN`R&|#bXZZ(@D;%Ub&#`{PhM)W;Oa7$!AFsrEtVHT! z<#+fFha1XDt}fXMk(%EfQOeVdwD4M=3Uz2Cs_wL5m?Je%JEy-6h zW6DXV3iR*|>byGSqf4DC-MH1C&D{5OOcxiAxfmEY6=g`-g_PLP`sv<#_>kwofiop5 z3n{Tr8rN8FWoHw2db4-yL*gdSPxkQ~I#jyzsJ>IjTBVo5N|=4QEAv&J$qGT-E?qt+ z?Yh5gs|-7l@P(BgBcNQjo;{EGluc|+P0d01U?VPZaovuN4*%FA5l*L#DuRQIv}{Cv zAK9^K{rc*hHjfmK<%NNfg3(|Sg*a)+l{v#~%eL03PdF5n_ZFJ-eEtCele#xYe&=BV zTabHjHFYB`1v~fbNqKv-Dj9Q*TQA@4THpq}KaiQ$?{q`1byo}@b?FuSrxHSS7uU)E zcTg?gyXrn-;5_YiRgbv%|M!poDrNtw=l|8FRxGC{ZB2Gxbl}y^RsQ<*t7&UtUWD6( zd=QT&UzGzBpRV$a8?or7@h5KnNWAvx!C+fS2@MU+X7w$YwnW|gD&ypotDS8c_vq33 z(y}ts?k~?xTk^C0{rzo7A)%p(I+jHmC@YP#ZJrsSq0B`~6BWq@CB+TtdS;0(I7XDy zelI6KKffp@eJ2?#h@Y)RuG!a1H_Dwm$0I4J|N5-Yx9nlD(ZbgT9`kaOeN~O|N-y7; z)^iX4&Ql9E8YpEl5S&_%<9KyGrs^cl1+`Srx>NSlUZ%*H>T2ct_wSp0xU&}Jrz&$e zU9UhrUH8=VKy7*UQBKbD`$X-k@wbgd4#b&=9Pn~_W6>hImX#eax1trHaXu+OQM>b7b_;R_x}dgu`QO1eqoCipb0>?Je&a@e62<$;lZwpY z{-3YyYn4tWo%3bY&bLdtoTeQ|T%``#{3p>v9%-z>*Os!qz3OZ=(Jfz}sB(ZZv2iDN z?nu>Fl*%ZgA{V*NUiM{`I4F;X_Cnk_OVn{hS7a^mxkI!!rNzglr!_8LzD(}%?YuwfGAv6~Vk2BQiK*d$N-#RiRPEu58o#y^f;6?)XSd*bEGT3pfAzP< zm8X+;<5-+4>)BbSMp|@G|Ley(K4rVj+YD23E*X|RRk5>sSN3e*khW!ib#$^$PCDwo zZbgL4AQz_bU{XSa>V*qWJr;*g7R|Q0z7R4C#v~6KYT7}Zq4qhZqx5M1j5~M66}vAc zD~9l8k#vl{1^)b%X()8#3qzwzuu&eLdjC}KOUrK^R=2(dauG1boDyuLHCUe#5`XcP z=|VIPMOEr;L?P?d$uZtsoEcWLvB}ykY~KIkLF1mjsz^;V^B>`-Ub{>WCh6wcIFqes zxPBKppD>ih2faCpGxQ{Wcy)7#h+O&b;lsQ|-_TG+P!%yFD~_%EuNH=XHJ5)imw)Ea zf6yX+q>x!yShU~WdM-?Aj!jKHDr8!Bo?dF{4b7T0oAOLCOQYuYdv&t|O5LTSzub~< zzjN>2)GEov3$+QC8uRUk)Z-L_bSWcPk$~h4DE%54`V#XC3#K!Fnwm2WA4<-5?>OU& z<4|#WU?ro7^xtRFR}SIRn`&EK(cJp*jDUcEDTSPN)@OIzDcj!eUo*e+Y+d@JAKEQU znE<8A^J>2XnwE6ewzjs8XC+9X@=<|xpYM*1SsC59ajWz5V;d1ZNxA6g=#85;)!tdV zDKH`;!jR&*y4coS4p-nb&lF_!@9T1HI6^f=4~EJzwewTD5kG zN6~dd!|D0H$P_duqQjK=>`9oKvg6gue^)(7lzMM5nnwf|`iB3=zw^E~p6pAg?6B&e z8mN6C;YvmoJvh)g_x#Mmtpfp**2l^ReB|1T&vN!+#MRTZHRR>xn}U!0Z4~l2 zLA$Yb8KTKpRERnJNxURE4;~=kyw30Wfpf{KaS9d{=nag!cJ&UQ!9m_@ct3iiEGv7D zl2un%w?DbJS%zwy{op~_=g*&i`~E#JGBVPPU>HVP!KY83wlSxqYMnq=K9BOrJ3Bu9 zoJ7eYiB&CM3Ogw1m$FR!Yg;JuYi@(=mP8G4D>O-y{ZK>RE!G*ho|RAlLrh-x{sjr#Ll%)Jzo+IXVf z1@jxEgTR@54;Ao!_N)OVU2ka1K2df1p$7YxEq_~smDQUF=Ux`~<>|)e0>=!L^JK7# zE12MFwed<%IyrD$s!|%gH{xUC<0|UvfeSOkDVP&q$fO`HwX=rh&+7d+&gc$l1^47D zN2?9g#1WlodbG`;rNA+SM6nUsOSB1st-SEy#Id9^Pg8xBxq3B9*!))%PLAu;DXlGg zgzc0*4G97gpmCqnp`cHge0s2@xx};N8Jko(8akL>rTW0%&&yGLJ%iJ}bN6mWA_)f~ zmT2yNycE@aeKUces0`P$6F;7Eco9F2J)k01%X?;;f4%sxLHIwO32smFy*kZ-Wwdjx zq5+oc3!QBx=DP#9HPdyA$=kqwv&|ZlQLYEE;y5%2Z8323e?%h+TgxC2)V;lVX$!0P zmDRa&sg0T1_*B#lRMY>EI83;RSr$zP9~_8(X~CVUN-Xv5_y04JV7sTlVYmiGP|&R5 zXb=kV8^ynvnHGf<3Xht!v=_i&FS!tl5Cu%#&dx4kvb;DH;X1TcZOEN_lj6a6J2O}WpOmc zrsv!J%LnjQ?N3>WDT2*=^58aIL9R2Mi}`mjmqgB@s=dhe`% zbL~uJ_$i`GFZ93m)%{!1!6!A*AGj~4avB&I5b7Rf2I>*UWG4f|)ro7w!AiGMe_q4J z#wI5xmt@&iJXjO=#GGmF>`^UktO^3ahZM1xK@aeCGJ<5db~b8lW+o5y0>n{R*bJ|oR}R+MExBi%Y9;wu|z z*F_T)?_VYOUxV;pZpLLfiJLfokS*KN?{8w_25hK&d9o2;F9|iJr@4$wO4G@?Xx5ls z|KTnj)*tU*{Q#=^7LETCiN~?;mE&Nm>nH&m-#H9x7eRT*2VtI`>+&7?cz@G_WTG5- zA3=fJuwjEs$9<-{I7O!6mI6(l%c;ts;GJDvAPtGSlvZ$U?L3<}C`XJtcD#Ol&eyd4 z{cWJf>YI`7#{C2orYhY5r1qa6_awE1!Q#ac+m@Nh$=Y`&wKueaFQ;Bn`4va3sM6gy z0B{@^JG*q{3n5#b)?#;8BV%K3QBhF?3Xeu|AeR5q($dDP3wU?bXO4dl*vZiFC$fu( zb1*VWa-AJntImOUDj!E#7IB`4{T9L>Npilwai{LA>rjY+$Inm!L%Y@G*%Zgo*0uke z3f@|&@7DgF+J2x$4yRU+QQP$HEb;XRJ4OE@@cJ&hg2#^^r!P+WLns5?NP*k2fI?nq z+9mk!RGGq7qFtq51ms4={v8|_AHPdQsBtT900#$$_tU59#>VlK_v7GO-?EP0zjv>@ zdFAut9fQ@;cYj1kq|~Qqrd)g_I^Vn+$fZW~3!dbCINsV%|MwM|^a`cgzQ0=L$i?t# zLjG%SziMdz_b%*%bk*NdkW=Q%meKL)VaoMVZ_{6IqK$uqC-wK=a-aHnE`9pHOZakd zF9Huv_y0TtL9X#_m1GL$sY!jZM*6f_Lu%4FR_D)Cp9sJW+5Hinq@<*`x3_9rv3osc zS`#_#xY4&;e|}}|K7QkonFKID6SrM+wpqy0ikc&lZvLbKi1}iF{l7*bn)6!$i?gqN zT1SXPgdB>qGTW`6fSPRzCEua~xZ2{MxgpE(S9%GxCb*I`^)&{ef;<7Jzf@J7ptFsD@y}-nsi3@4@netx|4ZfC{tw z*j4Fmm(>LcRThA%k>u&=iKZF5o`;5tQHW-}^3z{XzYaxt?UnM-J#g-sU5iC^)CYSO zX-vYN8FBTL%RW>zj0_ZVw(G3LaC5dIZi=Y;!n+~cSi6B5myx_a@7&YxPtdIQ{)~wv zbnPQ;<1jSEWH2nbE8CPs!f%q(9fOUwy}3=}|NMD0?zIlY!5VmZ66tDrHb(d$FY)2W zJC00^m$ND6&y^k&5ecQbW46nnkeV?N*8;qH5ezr$Xa(s;;g5;zy)Z1|d#htT%4ntPYI;teA&z602OEdqT!rk*OJqGL1E%oLsiu!LelU48esdXa`63a!rgVy=@mCBMjz3oXa~o^y46U% zB0zCR+1h>5A{_cgg4O%;xBgoeATTgcmo4Gosl8jXEn2kK&~2^5vVPgO;C#)zDl++U zTJk_`0+T%pRXRtT+oTVlZf^Ua%k(cpUz4f+pK^M;{48l1*y%zXUdk&fs^wU;yn|}* zJ1chSZlsvwMcdx*1mh0o(@Snh)9K6ey)&3n;IZr?u{8Dx=WmlzsW!{jCkf0Bfjt#M z6w`UCYv%M`{;9cavQ7E+DX~&gwz(FJ3fwg7{nqsDal`E)&?}~YUh#K~qaMU$4U~Ao zKP0sk>uG6er3;ro+gE#+UNR9Q&Mhcd*EREsk}rO*TS)(X?eh5e_~7rnw>7o3EemTG z=jW5GyUOxA9_&$%zrYfgkia7#pirBg@vJ5t7r%*!vz!)ET<=FZYEiW)A=ukx#A&pDA zFWdqbvoJh=kn7knW!M1$2Z>n+vS7dVA&`3M=g-|P#-BT^a$8tW7(XReUGv#A?QB7l znu8EZDoDzmaSp@HaTz5m+S|5mOV>^}I$SoRJ6K~a>EGSe70~7MQZ3;k7Y|QGioLCW zP*5Cx%j4zIA*W*Y2W61Vf4z~}bJC(N)3DsG^YaFn)hSRZOdC?eMD6;cV0Lt;q^AU7 zLXyPQFwWnCc~iW+sBmS;7$eiBtV8bYDp$RSWC9^;R>t0utA{Tq52yrc3oXYCTGBkB_N`qy|a{S3Qx7y*r;(!yfb8~Yy3aXk)8uttg z3=nD=kK5ehq8VTS3@MNFVT`1_?npVCXR3f!H!~H3@TY$XFJR zKiGBjO8c%Ce30o=P@+sf-rHbW9d)}gTkkQd)xdP4fu^jiY`V}Xtcn%~3dyB6?55zY z>ZsFcTaNW0G4buo7eBl4sInfqCzweR7qvUBM6&iB&0Uf{2Y&O`UPvG4>H78Sfxrl; z%1~1Eu&~qv4lCKD3UG1BzZ53bK;W|n)If3hN+uCL7l=5)oh(Y0XZF%R&`Tm*A9Pki zLIR(P#@!^Ghh&x44_*kG#E6aLo;lg-WO#dI$J#GvGc%nhjdlEsoF{u@_~NQDrz*)u zD;z}jl0S94X>;y-6~p(nrzga~A*C|wXn}cC)(i-8k?CrUB7a^piX{|*CQMMfXG50F z@4k|jQ6&0OTEPQz>nX6v-Lm=59~!WChkx~_u1+10bd=0nVY4hU>R8MgvQlDP`CS`a8%TXcWT$kS^I7z#VPFj$g{l%k_)h@-#^aN-vE=cy$`m ziW2%dY8DlPxQ)P0%k@dCXaN=^l*x#jF99!_u#SIZ$A_Dm)yDg1+EYg`=FGm?cHnGo zk(Be|j=g)sNjj**jygw#g&T0AFJ8FtF4A+wnbOuKMR5RzT+Z-Z=An@Bl5xqzH=Y^Z zoZp=@j-j;>GL8NKX;T0li<0{eoH$V%amqHn1>Rpq#6x(S%{z`7#FpKe+bQV>y` zv2)iCFRHvZtE*SM(cp$4WlSVj5-yYLjCteFDfA~fSy{$rl_r$j913n7PvEjH&!5w* zlz>{v$?dGH>AQHfZ(&Jf9aV%6sZrvwJheRA*4NA@DyofuM;7H*q^7=eX^O`XfAL(5 zB#NYYz%GElvsgKAiBgOTIfTAhizTc(d(+5hAg?b%O;y!j-($Wi#Un3Ys<+UuM_!!Fekjd?p*o8U`%xr8fGyAqdYzX2v4axpeym0KM{o(*eZ zy_lI-`5#gwmJFN6oD8vceb%x-0fD)vn~`8^e#zL__;!N^kOB$&u4r)0SAFj{Nl>dLGX@V6;i>H>bxc9}LkbnqY{ zK<7{X5Nja|KtUjmraAXWVh^egkMb{a+8&Es8BC=-@Su10Lzf{t3_Rg4u11eXWk38% z)LsE#+8n1+jnzY7ksX9X8Xid}d)_d;}sf2xu_rvRtv)eD3VoL8v^_`R?e4KKm*Y zQCW)@3mk_Uln@{Yoa$50xsM@`MV`jq-Gl<^oYj3w#eJ^hAskqX=;54Lp43bU%`P&< zqL$F$KyDfz{<*hdhh3G#Z2xUK)-U80FX}aRs9}xy;EmN7|H-AXmN(b#>U%ER=Zp!! z=`Ov9crhK!;QHg`2$v@G_bha-TCgv>=0P<-Z) z{b1c!A?h;Zj)(w*Mw)iL;Ub2Zpnfi(H1+XHdxCg%gejtkL*eE{V9F@H60!a`og?8i zcC`fslK=%1skSIzF0dJN=^9`dXJllo+squrWZ#|EKFEGWb-g|lc>bRMDf|% z`>#g5WGYnmUt|P@&e5#9G_Bx4l%UQh{JWYB^W0LUM_Y>~i+r%wa;Fs?MfN(FnkJXq zXEsoR!*;;}Yb)8UglTqn=aix>bE8 z7ZP=NQI8@TaOBbt;gK$k>a6J^z4(|HWwdw4CGie>62v=)C%brmH&;bUNtI7e zo>+GSE7T%G1r?|;eG}*U(s_yRWKsdVCyU7YaQ`RsNq5(65r1aA=Y;WvVp9>D?ne?g zf9zd^p{Jj7%3~?F1yXWOGm6-&n+2$L1(@d+LYhgcrTPU9X^o4|e0;JU(YL1;S~;HB=0Q?UJS&;;m;Ef+qFeZo{xRaG@zOw@M0Tq}-72h?88)2HvG7(<>UDnWX|$b?Iq&u$@A z*i1$GY{m@I%2#cMp1japt>YnShK3u=h}&0=m-P(ut=ee#L3B?=n@YJ^716Y=Po62V z4gJD>vhpNmcnIU}-N{(k15mE*_efb4aitr&Limk^*xG2X@Ml$u+(%#%8yg$4HQQ{9 zV#CC&=;<455t^7M>96} z#5rgJrt5mvCM6|#KYskxdim+o&6S}7pN6F?5X-11lXTP$y=D+tN4vK310CD<#tVX| za{0?M6g`7(LL~rUb8TtuE)7Ya+T=IDe-WjPu${@~O+>`APAIWiO#*QsB6tX6P0+UY z!g8O~Dp28c7AYW8V&uZJVJHSchc88>LW<3k^nxgX)x(){JCrCRh0c?OTl>)c9qKK$ zf)TO_A8p1G!aVO04e*bMK>WlZ3FTqFwIS~GnKMMHCBNYV{yIgFl7*>(WVM7J8l*k% zqslLrV5x7WjDn6{j0517m1K#>}fo zdv|yD$@*5>zLyavnPeur!K^HDii*5i>H&e{2w5cT#7)zx2nlV>bdZ_^A+v^lK%0XcVilY1)=NMrtA2PU z`pm6L_#Nkc!+ zu@!YT^KCi4R;bJbrjT}#OE%=UzGeq-mE!r{J(?jopeuh%Hz+_|p6yL2YK&ist%vh2 z)5kF0yAw)Ym>cgRrfN(~%sb@l;9ZDR35OJ0q5*a1w&La;Ty`#dkgnOdtBe48B+B&R zP_~eqB%&XB$WLEJ;UR34O9Vp%a2s_o%pvK($DaE2;GcQ@oNw!PHevHCHmZ3mA-Yl`a-?bCu5q%(E`U(sEQ{w4mybQCEG|J?wfSBCmzL74U8`qZ#OWcj zhNk-(&|LG|o4&h+OuOx0BH*3BVyVT%KNcKNQ4kR}x4ma{Gy~+ez&`Ah+uR#fHMPGv z>f>cIjJgFpJK5MW!1at4$69fS;*|w6bmPh)(y8*xB3i4f`}Nm;XlpBxCLhq-%(1#W z>X~ibb+$4>LI*SKC#r(ptO4tJhd;lfW$vyUcR z)^i?UJV~~FKNbcOB6X{(daBegeF*vuLR!$`*!!IYIE|Rr9)o*VJ9Nv{Pa22HP*E2i zLnS8QgnpXqU>%p-*|YifK``qTpABgyDt{QBiL?B1e*hV;9}TZKB_vvSz0N-!&I|vV zDM6&SA|>4e!^8i~$e3#dL&Atkh;UKBU9I;y+1g(}Bff9^H(1V2&uv`h1ZxF7BNVdX z)*=c?ycVglgUd}4XZ(dNe)j`G&$sPNztlJ(6Bu*cs$E)h&T3`31sTG>8F$Pf?qkP} zmA~a#U1%&3v}%9Pv(e%EBS%v7rd@uU`u6;R;izliG;!SGw@A*)7)(t<9ktahK_Jnh zaq~PtQkMHy-pxO(xi1DAB>@rMFK+AXGzHI3K2|=1PoD*aw_9diSX>0quAYvL3=E9L z8M;WUwE*LI>pmuSgN=vZGqyA zGX@)#sUY1py}db&h2GcH=Gj{4`~r3&<#{wJd(wrlIHH22X2G1cIF=K}{T2Krb_J4OKsTno z@nkq>_nIDCh7d$TkZ^#lVmGpGCl*svY=tm$}XX;YaA;!L;Z#yVVZdM&{xEq-6| zT%@#3{4PJ>E8aP?*7WnEZA2#N9GiPAsM%=)_vs)?RovpGix(RxmL+NL-%DeqC=uWU zY~|S^`l<>B8m-}I4u1|{Rb}~G)rnK(Gu`Jra4UW0=A3ZyUxud#kl|goWp^w=3@5t3 zT9ojQ7R^R9GRggc380e`NAN&p*1KFi--2pUom+xYBe@P7c>Rc*CS5P&*`iTOV zvfB!s-yR&zSA*WEP!ri=?1{zYHoU2nGHso^BbVj}zX{-64FE6^ZP_R8q>PbK#dLvH zv_m6NSq6R(5%Dr>*6Z72hDpiD!V)&@vLRwKfHj-vQl?q({=QW82;+D#S76?zXN8ec zo{|*xI08+;h9{^dbOFGra-q=K8vYz#iJ2?uEuYgh?w=y}DV!>I*KKZzLTMqwn?o}_ zjdXcHd<2$;^MXTQewbwN;Y2>9_6I~w|4 zC>(>nM{Euub`2l`owMm3Tyl)dP{C;N^{6IFkH$Nwz)4XZ6U z8QxIb_ZGM-Ote&)AN~%ORBTV2{H9IsnMG2QFtNPy5 zBMEE(6=+L(LyZ}Y57|7ND(SyQ)0fu&O$9q#tnh) zZ2N3@B)4lTp^hFn`_#`);GQ``(zu}A*ekPc>)!tHKP|vi?`~GHrfI!Bi=2HN*lrTC z5oU-jYp&AvcNVVhIDDZRgq#4H5;MOHVOQuqYY`{lH}t?Wh^efm4~<{&;v!}l{@S_V zx(9o$T&DV;53!VkcqXFxD#*)!os}sk;3*NofVRMag@Dv3arcR@ZO*YAtry0vgKal# z?@LRx;0a=9*Wjf)T#5fH_IW+YZ{k^$<+8(_^%g_JCn4(~n|;=B0eal$w| zGKs{Vgo5zm-q`|G3XD8Fii513?jH6+Az0}kjCQdXqAJ~ z{f{C~oJW420^Q=`=2oaF?JLwTa@n|ky&sWP6c3oZ@HMWZ>+z9@YLsc!b|Gp%qND)c zz&mne0+=Zn$ybD!6irOW9Q#WV;zHU+}oo&HGgDE5YxkB zY5bhLjnA;PjpVw%t|UxGxF0Vv=#N{LokH&aEU<-5%gpSoCKk`PAfCQ@N#m-BG?c;o z_#|;`B_q;_5IuXEi!6`%PgIEqWK=!Gts6wTHwSYw5w|9veA08ptuj)oZTRX}AW*_~frgaZ z%rsjSGgLp_IKD?Z`Z|0gn>__xQ{d$$FhwkeFo3)U9Oce|Z&1h6NvTLV5OJzW^F`nW zVrvP}^bocW<-OtLA_>pmu2Ii%02}yJb#-;g0|^=3&VI3d5v~^@T&d5Fv}nXB?93=T z5yYpb?JGX-ydrP!Hep>ck)bOtKuze z9<=Cq4Qq_pZr2H7Z^}RCT+!BMfTdjhXxjl|5fQ{q)T-SJd;5ZdgX0M|5Qh53 zjT==VJQ6s{{H;w7QLgo+iqQ)Pn{Gzd!*1gl=+vlm1ai*J66y(^ov_y?GskvZoylA z<@OVEm;f$-Q@MJf)wK?&V0HQSW?Pt#N#kP1T%?ZOMZT1K#nAOa-gw!b`V!C8 z7``(#r75pqvqU9Uytj{q9XF3MmYzEdBj>VL(0SsT4OSO4i83X%JQYB!4q{)D+x$c_ zgnR5LOaVDA$Ywcq)eDQ#s&w%vP8Ri$SWyGu%Z;eh#Prz*vl;pnw?T0skrPHY>whLT zqAV@_zFzVIqyK7S>#K4NjdWM4)wJv|#v7M6(J6mcmR3=T?xKp};to?_rK|fc8dlyJ z`io;v;l9xU;r@hlmvk-dI{S}%KOXB7ICz9%t>9jUQm!zS8@+j+cC(^KXC6qrWr-N= zdn=XI;L$cMX;w5+)OOP+-0N6_S8p-XQ-Lz(6Gs#k6`$@FQs|+XifB-U2-fB*erGrpU6 z`G0=v7|Cgm^+3&`&!wf&Z{9F~4TPS!xz(IR%1(BLJBS7sRam(9%!ADzzK5NNR_460 zSKyy-socXxZ6a-MeiXR%9_rTq6DM{&Vd6h4Elq`aF4&+~>~;$I@i$1@=@vR|!-_j| z>lSBna`Fpyn}0ha{)^Iext^<%yZCe;y?Jv?x5Q%~)PxTZR{UPQ@;Rg!ET}yTm+eaC z^|b&}_n=OMi#u-z>n=m~ejL0}_~-67!Pf!gdbi#d;uskv-(M^sb*va)a1HlLM6mUV zxA#Uj=)4T2Qo@7>34?GmI_(xv&n*plB_0x~si|)u44ddXIf-CWJ|MK@?##Er_dVY< z@A`Mgvj*K1Id$qoW22_9l%OCZw*HDh)Ou~dyu94e-X5iT^2iao9LqLg`S1UXb2cr` z;(1WeT6%i=pm|nSR`&fj;MHho&P)C?gruEE*iFS(jv}x9n@^QI^eBOIWIw-rT1R#$f~0#mW`*qw3|nx|htz#1w} zZtl}2CS3V;1N(#K0q7soOU_Y&i;T_A(ov~vXnd%x-GS{QB7i2f>6`y;s;)PSS;!X@FEn7bW##=*YD1KE6j!pMJ)S@P>8! z{goIKI?g8${F~3}ul=*mn%dRg)G2c^{wi?f2ONHeIn1!l+}wN&`QR>o&-o|n7a3>= zWbP|mym;|fiKi4)!^bFlw;x@#wDbjBJ|HOgE=lwLKa0}%{-qB!?J!(9j~=}j5)xv^ zqensvE(WWwwYBvPnJlbw@89Ot-f%C$=h)!JfpNlS%CX7GPvNI*ubP>qXtV$!uyb%w z_w@8IAHT64-?-ua>1&;j!Z@Y|EcbszhwuvxeH0$PSA4oo4SNDV05`wjG>zv!BiW{a z`g{Ju1zA8I23A&!nDb!*%r$L0ckYB2#Ab!f@YpUA1?R*GT0qChh(%{&Sn<^GXmhi+ zd0X*5$jF>LJaaHB zw{D$3`}*$gZduqD2hN>4x1IJjzEloNM2S(NHi#qAGVa?qg+WRV|Asr#u*MEQ4QBb~ zxANoLw-~4(0i51-DVqEfGc)nPdOwl8Zl-;H!o8o;=Ird;-Pd<6hO-8<{}%Sm-Y_#$ z#Lb(6{2-_@bwLw~0Q=3GH}QS6GVCghCa7xKjeP^oCqjkq)OX{7c`nPd0 zZX}qXz^5B$uRmS+@#RYtF`B5%NeJX%h8jMYnng`L&nUNmK$FtG!zZ?%S#U+fqAvOj zUC=zL!2uo~p4a8yo{qwAIJo{!!-n;~O?IDhI)pM2a`^D|>jrF-%9;l)N=!}tjIOXd zZD@3qo{o+#DF4){Q@QSoWclmH3mA|3%y;kZae8ObUC-+MRK0R||My5KHiXJP;=oEQ z+$U)8#aO*o_V#jDt}wGoc|1kdTghRQW5W_=xW2wVX6~75*P_i=V4YTDZUlU;`2M8a zJimkX^XIIrtoDwM=;LjlKCO|x2X0g}$lZ3c@(IUs+C{WKQ&ZEqm~P{5)hqgMjkn;< zV*qnuoTrU1JeYDcHRT439h)s#-It!8j*UmR-@ZMuveYMKyT9fFOHCW1@BOVsVn93h z?%ktB;BGHuWLX7;jnDy&J|>3cjfEp(KR0q2ogVdgz+ERI_MD{LHT;A^=5R(5uRT2H?_Z5|l?`0@0? zLx(ufvq41eV9|p5jdd z9dpb|cg&09h=cwESs>-^wnzZD3^|U}ug0w#9zgh1pSGF~^a1tj&)=n(Hhr zEo*6iOkF?kIoeXdgxP_F1??_={iis-Ar!VNSvNLVv=vvLlh9#deLL_h=fUH=++1wx zlQsgPDV{18-FTm7W@g5v-l+GrrDvo4>Wcfl2M<2h)NF@Z(CJ}OhC+sTN+*(YbFd*8 z*x2aXeTQTe6cw@G;x=?TCs)_5u$vJAdSe%EK5#46)6;t%5O5bm-LwQ$@%Kbw7M`Lu zF~;bYKov);d%p^s;4}j*l{9o`tDy#7xA9V@N8aA2v3Qksh?v=60q!$cbNxDc=9h2Z zP8%7;nR~dnh|k{2QhlkY_=G*|D*F1*u#4hT zWo2bx$MH1-ls5DMG+&IBFxd1Ru<5IS(Q|MokWYM!U&o$j7=Q7r%E`#!re_$4Y@T8|}MXTJ1e z!^J)e3yc1?5-BRU-Rsd1G?H8=dzE72;}s@>@7_SQ*t|!0Glo0ffI5E1nS}zp4TF1D zU!N8G{!(iLG{c-xZ84)xTUexjtH8p7c}QFunnFwL&_}@&-IEe{VnAI(Lnn;4ta-q~ z+wALA^%~qTeGs_#2nMbZoU|k{iV)x97-OZ|<>qIvlJ`*MY^$%YM+)u?PLYTtV3TDG z^2^)ho;PF|@CUsVGTVhh4E408@Xj3?h!_X(v>Rnr)$Q;#Ed>D&RXG{$=Eknsrf#i$ z@3+D#aGe(K-?Zy!6k(yw5SvF&U4CeC^}J`wrz&cbR^04~37d(jsaRGCmufVZ0jP*m zsCNNDK|3L~y)?8BU58Z&28cq4&;uV_jT)#WCRj!{OibjVa|xFZ9^-XKPGAaJw5qx~ zBfgP{0Zr+oy0IVfZQ5ME;rtGuqJ0MqmN zps0vQHLC85V=nPL?u(TA`XE^q^~FvZlS!j5eFeqPO@4xCnti+#7L9X9Gx##djY2L= zdQrB@^xX~107bhHe<8gBd#fAwJCAmCl-V+{?Bj?U62xgN`+c*p~m z247KMN5^e!p9&KYEqk#GT#dle#{216#ouGth>V=L^MouZ3`%qd9w}te`Gxre+h5W( z3H2k>bJfEnA1bL6vdrI^pF0Eh9)LRW0)eO_A3uGnWZq`TtD~*G`>Zdk&+p&5K?yON z?ojPl4XXlL2MJ596!TmWM|C=?gzyddEA2r%5Qn_)@Wt>ic-192DM<#^Yhq&J#@7eg z*+Q_kH)BMT%&~>~J2RJ|lJ5?NGUi3k!Xp#(h5MLK{6_x4YPea5Yu?Jr>OD%N0D_>L zj2mqqmWOIt6HIT__tL|wPgyE3{iv4~U3(ytenwpE``(>~m227_gb3_&gT&h3koIy4 zj)Z{Y`R|WJ=7|qLW4zJEg(oivfS?NTyV2eg*eC9>#Edl^$JK z7!91SKpKJ|gYQ3li2lHg^5cUZ$&Su7JKAR^yd6IT5VNAC5Gkr~n zi{lUw*hahqMTeW48;NT=>|fjIzA*J6a%Jj>h^Xl9Y^8?6zvG9w5rvJ(;S#Qwhh1f9 zLD#ZJl_Dkg;i(|c<0mI4e?nq4Y5w_BMYLrWdw?H3dsc>_*6?SMVPIfk;Zl?~H8ZmY zW+GrPoZM4pyPOiZkaH4lB7U@J`g`mz=le8i>p_O3%<|LH!l%MPCI zBy~;Aii;u2Ip1uM6EXYOq6G0H#LJ=(GI6BZq(@J`ztX$<#BFkYP~1a^(?3PzIEj&&anD{sQT; z++ktiT`DRnHIC9P_DK}74eK@zF0KuDQWOt#f@1fi?kkgz}d#Z%nFZkZyV%8!Nl}o&BF*+eSu4`hoQU8rr(oDA@kq#HB5fz#KnakM)3{apkIm?-Ns{`|QO+fa8Qnfs2lyR5YI8lG)XV|U}m!Q#~w z*K8x$dK%cCa^{5t03#sW@87@QnGQiJWG!VvkIiOFLW@DEK* zEKm%bmgWSq-oCY-9nnjA#=bt+wr?x8ELuY+2UanAs$v3H{0bhBa&%mIWw@h*8Vdv? z7>!;G?u*%!-cVtjwqBs&j?dmx{=fwKXtEspW6%~|hO-;Ll$D*G@n{JN2-uN!CG!sY z`fidTc*PdJGqr?+w1saL(u1JUH%4%T22(9u7IboA3xwdHu=z8bi9Dm+fIXDGe7E`I zgq_gLYTw2rry_g_%x-oz0iKm!$_yS-aWF*+5$<&r!GVE(;JvBC;2LU5N!-vlG;IASUOzP|L>Uh#Fs z(w63<_S=OG=dGY*H6d7)47fv=3jDzVf7jaZNpP075Sq1ZTkDGrmn=KVto1 z*{xf*3L+BK6jccU&ZxQ}csoOnXyb4#FX$*dcg-2SY6Pc|W3A4_51zOAsZkdUX4Axb%_^A(~ew3|6XMjbs!dWmav@wqWoTk$Wd(CH>Q8VWCiw}uTLdz| z13P)eUXWqGFX4%v=PzD7i(SNj)|Vkcam-`MDJ?jyuq7jF1otQ1*3ENeG7>0NINaXS z(tLeSntM=%gk8U%N^k|U8bX{m$BrYz`2ev3b`cR~h$dDJ4i5?n#P9$BfvfMSf6SWhgt*4De(IGjT=7_mRbGr zl;mV9NX1QS3h{ul6kBsBQ@7fRB|tBwWkrxp{ZXNO^NSxxO`GgJqz<b}p~aA~-$}N-0b+&@T=MupO(ghwS)aU6FUFk^FR+JsH?QU@V@AH1m6ue+wb-rO zlK$wL^(T!!ZV1t#ANEVj%W)--6Ms&I z_*{c1O56kN*O(IQ0D$DW4ekHuU_N~uqQ=;WCcny`mX@ZXtxX8qO|^H2R&_k}!TO20 z|L|6DP*C){cXjOtJ5W31kV>-#3g;?YUC3Dd2yVNLm6g!BpE3*3Kv6o8xUX!AP#BOM zPWxtRD;j%>WkRdSre`C;jo{u_Jp0^WL?Ug0syLvoik;-!n?5-X9XY6g>rYHe3*v38 zqn9$`WkWC2Fd11>kI3M)_g>Vwhy_g<;W!F}Ni2NJ*3t2#*5>A07OwQuET0?L)X}w= zdG=<*ry2*_xr#jzoc#PDy^Td9uTiJ8`A5+fvIYQz?>_rpzi%(`_HeKDcf1gRfzs9v zm9pl2FZw9%`6h%TXxe=}m=Oa7Y!Sd7%d|-5s?g{c3o*mJkUwdVp>-N-za8jyMO*ti z;#r|0*88!uwi-BpUCAb5mqV&SiGBuokHTeUwNBc5EcfV=^A{l~2)NBzflpo8{Z7Jp zf)?lrdsQe@R75+G(NPhA_H&gkUJBX=iTfUmD&EE2hzTwCde?# zHQg-99Fk*R1G2rY^LFwG9`*YWv3Emkx5mU;7bSYD0InUTEHphj)cot8*MI)}x!-<^ zSMiJ5)-&!i@%0(Cj6-k1qlsLLsp9;nRggFiF)^Kl$rvo9*pjs}UU6}UAWv_3rouoA zQFb&17>XW?at^-U7-Ih&pln&Tr9sP4zjvYSmg4LMurm$27pWm>p42}2lnbVF*>8@} zR}-^m@($cUf=Tq%A?4YvZa&*+sZr0fUO57&m|EVg3f+E${rgpM<$66rh{L8|Y`LY! zCMgkE^yZdoEi!wk!bPlU5I}zq-psIPk6HEF$A4#=qJqNa^e!k!saAFQuCsjDHg!O$ zarhHh$c2}}ThKpi7PgY?1GenH1EH?rYw;;O0QZ2n_}=X7Y!Rpc*fKMn|7adhw{h>}TmSk%iFIOo#IFMBgg?Fkj3gC%} zn^}(267feWDnw_?0hQh$=Sv7D+>5xI*U&OT5#h=EXq2kqGB+0eC#MUyu3_NIO~A1~ zix&dG;5!krQvH~Pr_i{~G~KK;r8{J%Pt2;0+sW2gjnE5dX=&S$$e^evX0mHF8xPsI7cprH7X1v~_e0Q3)|0%M4Z~m`qlP+Jrfe zp*7Quhsw#g@&1(hG%7&2nB!JLWovQ?^`2ODfWC$_*)!B8#ZlY~ABY!EFHm&)g=0rf zWW5t`p14tn&0{rFm}J|Sm>vRH4ZYjj;4pS~y;e%iZ!ByAnn9kw4@w>MWGIL!CCB00 z?L{Q_V{hk@A*0_&phsS^j*;U!9OpUocB4M+4DIZV&{p3grg{fP#y3_~Ob)l-`Syxk zHt>DDKr$-UZHMA5_*GOe2vXuzY=p`hejX8FG4h7l%$|5ET)`oCNC4@&c`+I-xE_U* zHPyj6IVT}2aW0yllauSfK}5@cG_M1SPN`O3qXEd$WCzAG@?kI$JYwezK&&O8=Fs-bomu5Zx?ZBaL z9;*`-{7N1n!fKP#(?Loh!ND)MwwG!1Q9vpw}L_FDaMRH|fD8q#ITn)*gE>YU6*KR|R&0m|CKo-BHwzb&s`gL&W zB#l?Z_M3R@pV$ih|8#>N1n4)kU$dcR%f4fY0}HykDmy&`T%))-Opp2X1BK zXsGpMl05ktX;nHJ+~}pokm`s=rNNwR>;@iI9Kbv`&cc8<*%ZgK0nH-e*7(;C)&X6E zT!fNy{XplEFlAzJv=Y=tA3}h?LNK7rAjhlAoYq|p^ipqihWTYApKr90oK9$)O11{1 zscql%!M_GpDj?oJ2tB6i{s5t&8Ty5GwYmpaA7KIe-?%sUnX1Un`}Y|b0t>W=wQw1g%Hbv7mHO7AOBgH1wx|r zd5aKcB&4iKwuNXj7wq9@@OBat26vM?h%rz-sCkJ7&@^>FCMOSW@|N5ka+aCd)JgO| z0`9xwWo?E{dpbVCO}TvMaNjKwj`4>R?Z#rU6t8rli6ZYmxQlm5rdTi-&TFl~bWa2bQ7;bZ^b>ii(Q87>qnHk9M+ACv_33pU1T|JhvQ? zNc1c=G%QRKtW+pG%PxLYsl~$SSbl1y^)Hmy7p@Vo0%o~5JEx_mLyvX50Jmsjr5>o= z36x!>zB2SNzEYx;wSNU}N;htxRnW8Q z^%c3ZAmu0ft@z-^YIhb1y$X`X!W*B)IP}YNT z(8wVZF&}^qWXle2U}=?j3O1s9;VNE`tw2C)O}}%erut@mRp+kTOw%6{hi2o;6$)f| zX}4cI*QQJoCL|_$7j1D|xzesf8d1=?Z~}Ki?>sPa8sis^m<+t4qDtdjxA3g?!8o9T z{!}u6w}y0q5)RI08?YGML71N4Am|4*Mn;mn;GUg+?|wY4D^G58V8@x`!!$$a$2O^q zPwMF9-~wvGw&*h&%d3?1`u(4W%sT`>gE@nt!o4g$3{MN*x-_Ly`JD+%nuhnLm9w1^ zL&n+yI?LlPvW{FTF7|%(dH*YIuY=i+=;%yXHOs>S#WLYgIL4Aq8kj?x&~wn9Z)sui zvxDaqm;BKf92W-e9u+JO-BBT`voBDD*N(S7#E1SAXyt_Q4NA;R*0U5OsHgAgF#FvNSSZcEX)m)_C=OOAZtF%`zkMA;(T6 znTC#Anwv)rx96lafmEXd<1tqtMd?6`Q8|3u!c`z!^|b*NP@{zt@8wX}?Q?fDGTY8R(fUb+ef{leusYkGBqv6SlM$Dp=4zr?av; z%AezOFJQCJLurx3NQ+;Z8xUW93RI5(Sn-AeQFgXt#Tbz5H``w0!%^u>Ab2v>stUoI zhl{pdPl5L+t}7fW2G<565!XYI)VdLg9Do@GDiGcRf7>d2bzo%yJ$wlICJ%IBBAO56 znSp)CWHKkgUkhbD&v3p&ueU=%?}HJn`!HfYq&UMymhr5t&9bVlt{HDiI%)`Qz-hCa zJ7+9wm-;(7IW3QSY7L;Cj<@i3YwI+EmvB?2Kza5m+H!W`h%@>+QUM1%6Nb&`N5P0A z64}qSxBq)!;3U@e5<=h3y$%>kK~da+%{4nO?>O!tGpyZ?y6hxBbBpCxiP*9Yhh#;b55Xq91 zASw!iB#9D~oRj1?ntj7Nb>4li>el`9s*Y8A!vfZ~`skU?CFW6Ejv{%S~RB__5 zCKSp}itOoAYB!z@wmNC6+b@-m&D`8*%I$k;_*VcAb%=2AAEDvnFN2?kJTXuW=nK-dao)r@V&%#DT0ya^qe#5z+342BZ+{$l+yNiyMZX2JRv@^)WWWSI2_U2-8eJ5Y10zKY4Kb)ty zVZ(+X&JuwP z8UjY^KahsTsgBPMVZs+^d(9qysXiy$-!uHR- z=$9{BwRl(F)Vax*Ww0?#%DgGVdOb%_ZKj!Kgs6*#QRTA(ufO0gJUgW+*0f~hgIIE7!lXS+pFDXsbO!+vqjUOi4}SGf@bkH%xpS1~bRI*jDnXD&0h?Y@@Q z@;CUJq2cepUmYqPz9n~dc4k~DS&OU1Y3JGu^K8Xmdf80%t4p6blXxbOJ>g=esdcF8 z?ky62VX?8XuCA{192}8d=@p^;@<9n|@tqk%-kVsCTyGS}uE&IVHfP@$)8E8)A|t1Q z>*4yH7T=?#H!dzrR2{E8BO~*rq(tiG&6^6%KmYh1)XmrW_VlQ&(cK)WdmQ4r>DRt- z4+VlmHn9kO?Q_-3@ut{>Z{4;nI3(nCQ>IyS)zon7rPPAy zr<+-YqlC!orPphe7F$r@K&pJEQhY1wGO3h8=K+N`S+%&8q&7xQo8roL+gJ`aB(|}72AI$t^Z2U z|Htas{Z}~~a~`psyrIOSk)$Lkc?;>|RqS(Tx!)C`RoOZY4q3&;#dg2mQ|S~qtKVli zR{#Bl)bE}iBgr}h{QC(1V>@%Ta;#oRN=jy2|9Oanc~^O$W}d?k$vQ@P$U2FL@Es@Y z;tCh1FG-(1ZCn#0YufncMV4i|h04^*Meb5MPhY>DBooM*ZTq@^PPaO?*HwuxC%uvnHLZFs+Vsvo5qaE@$y@hE$C^ilq;6Xo?e-K-v+9t1 z6&q{TUmHI@nlr{jO-)_%V3$;e>#WVISFe6IO^w06sFBRRS_bwGWU1n zzS70}qGEP>3U5K(^7Qm%?fGZbs;ik785kIX&6@9S+n<1Y>TfS9s!!2LOum$DI@w#@ zlx-P#t@2sl#{`lFL^u*JAAcAW6y0B!*dwf$rY}9;lN+y-m&M4hn{J?0CY1BS zLB?-kf>NR`({_p<@R<@DKCsa3Kgj6+_U&7nXW0?yS~gYY1NF(OJ(Ur4xwb|_Z3UMe zK78mrkeq$wO7ZG~$r^c!L}t8^Yr~CyI!_04t3Tt*c9|VF#D_Wk4%Vc{WJvoneiopS zRY7XEo0~NG_FVK**T?&+5hv`&2R#=4j*U-E*$W@L`iX86^P!k1y*0R+7g=`ROIcq# zv{h781l4V4FcsCPAzofy2lnidYHMqop2+%bcPYd8p; z#cGKfyld91kqttLVc52<%j*18e_aG_2$3pVQ!vvu@cO^aEmi4VGKYBMj~wf+4C^i# z+>RW7!DJ8?^{CVM)p>i=4dvE%_QB7dT^FC3{Gm925OALBi)Gld<;AxB3dVoFKA9UW zp=H>*HK?a~8%FrcqMYvF{*$7jnHH@lHnE@7DsY|(sxwvp`PPtJQFMMVeR_bVu}RNA6UfGh9t?%}Jk3K1&UgFB8{ zT-Wn%U}#9y)3me8NYO1wK)}Yi&W_J!rQJW!lIO^8D}i?oOPow?6>IbCe(AnAm!MbV zezO^2;vhzVki`eq|H8UEF%kcT>;F^xlSc1I^{KBmUiE~1|KqJ&x7z*w!f+v3LssR< zA;ZZQ+bRZId(4|e#}t_&sjAI|;z6IEjs z{Cs^Ma58&e@ff(mdlZ{>H->Y2=(lX?pgW1pqW)55Q!tNarF%qbs-<-> zX|m`ytU4zI`&5g|n|0Z@l-U>TfG>5!C25US3)ZviLgoW(|q|Ul#Ta>mKCf2!D$d z*Q>dIjAm+}q3GqRv)bC)KwJ11_9umQr;wLZp4I5DQ^{Isl1T5SbqVS>y=6!t0c>na zHwr|Ot&Nf0COZCU&-l!YV-6oLZ}NM4jDxaQJ$}Q^HJPY8_jeqXvmdBe$7rYeVk7&} z?=%FkiKyk;{65+I97zYcyY};={dG~N{=qio)p{f0vze`CexxWBZIJ9SZym#H*Zvqs zq7uZ!aQfIHYb0o;MVI8()~XpA8vYD)b9H6CrD0?9HtYJ&XkXv;WgkCsBgJB{KYX|B zp=V+WGg}-R8zbWlU>8j|Y*fhwSPP`;?(U8%^bR;Yc6z8;Bx=K-mClC=oQiat zzK~*m`0(MnY)d_zTpMYZ=|N@mR(oYNQ?!-U)E+NQXBYJ$Dcd&HXHjdQK-s!7qTHY< z^06g-ldvNo@==qT(-{5SeEV_=Ab3AUyV;zkM9H6#*Jkwt+%8!hQsAy$y;?XQ@c4kL z4EnnmU8mm+N72nxnN0*ec@j@rzI3CidKBLA0x{eR`J3l1!^Z*O8Q$sPe&}ge`EEl) zr{?VZ?zKV$H*FxxMlaM7lTQzJUCg@vi(*;FIM&g!tBtf3*e@;2YWqaAHjSW_U^6Y4U8-!_;r-&?JsP+1&-*XF zy?R${wtE{Xn(wEU|8@oLICmD&26+##Fc!4K`h#}A?tt$uT*#ICPqua6kEFQ=uYC7Nkq)zM7=4ay8m;d(Wo2dR_3J-bi|yPgfsZR!iVJ5Gwvs^WUBi=_ zADy6{m;lH@dU=$$nC|YYsM7LJo;;b34EMS8bCtx68#yIM@%jXcYN34~^I@6o{JM`h zGtC+lcr;VgR8)fa^a_(28?`Vw=a&&UHmiBUQEB_Vw(EWm;l1?u*|Q{4z{>;JE*7~L zkZrT)OaK=jpTbDdav?tcTIx^JOw-ypWxu<3KWEFxHWj+%J$Iio0n|AAZi^?-)pMsm z%tP%(dTD8Ch=kDkRJ~LV_rIrbXV^ABg7(T!e%ce**e-`u5Y^qW$#>g<0|yA=3z*1~ z{e|yyv(BGA`@J$k#D1_*kQXg9!O*zU)Z9QS4=?X|vxXG=8=el+*GfuCUP{pZ%yMBB zch~m5VqAP@!&4#iiva@|g!5$Y!>;_mz(BFZN!9uAd--Y!YO)@)6?#XEzwbmeNCW5v zSu7}At9qW?_anCFrMt^-E;TOOmJ}fZH zj-}eWj;eHne_7`wRf7Xxs*fElEiKu@8yOFNAMsdrkv;Y&@R^9C0*Bk=Lu8ewJ=AJm zhAhQLF2AS5cI@FlYF1zSLs48ON(k|Y08Fd}_Cp@~f_eRLYmM_vtK$TXBAIS|1A`$; z1>8-2@}*d0j?j4vv;sFxfg;~Wpc5vLbcL!|K>8nw?0JpgKH)NbJs>#go#RMKpxE5m zEnBt#EMkvUfQ;#A0k9vB=rvE%veCIx!L~!_dYqWsoG}Iw6oUkcUPCzIJ6~%fi(%!n zj<{pbyZmKnBDAwrL8L2mJR0Y=0FDMx5*|TTQP(|aP z*Z9K|j>FmkFVvquf3C3KQ{=E&{lPWs*5zrZ4qYiUs(Ow)4yhROlSC#Tq&gksFwz!b zM)`>_LS$ZFZoT2`+@I>Pn0UY*NRR&Ue+0HZTenM~i#clh=UixN(bRbvEv>Ks*5g4& z;Xh&(2M{Fv)h~U}WEkoVA3b>RT&8KAijvZU7?ug6Any?b}s&><50=6s}>j>p`O$Rn6DlFt#{bs${oVih?MC`s=#^Dti; z*=~WzBqk`W7qcxQHnX4Xt@)yHY^42RSXkJA{kqMp4@_B}pO)CLm znypNcHqvyA;T}mXi`XrIX5-1ANU#pyopsd;a{lOdW0QXC-OruLAI4R*pOmsY-*-&ssQ4NZFhs zDSUsVs|uPHb$r55#c0#Piy3E8kG@o=oVvYsZmgWc9&Hjyrc_i^gm}AY%6E^Nftx-- z2UXg6dJtWl!|z7U>W>u_@))@~pa82_p7T^f$vD6e>Ua-B-BpChvh0+(1BwYR1uv+ITUrwLkcxvb5GW`Qe^LedU zUIZ1lkK1u1%hxymS@*71EcHCIrTQy51|PQ8iKqOCTF*Syj-?-B!#e=VLMNL`N7D?- z-?56tJexQ%ZZjZ|fhr!_jKBLeEI~Q&+v54mt^@7gHd|&oj_As!Y>IuG{KR~~65Q9C zenQFb<)DgroM+W>tHk=$pCl}fwD`j4?TQI;K+&tq*=VAW^hs^B@gP$&yME^@?NcGu z1$D8J?g^+6p{X9fZmv@+aJHYfc5raGDHM#BQR4F%d^GZSht&d@g528S!Jp~QLzxZK z8FRte+1c3nMv<2KnHP^*ww*L@&PtXzija@$-tGC=hE{a)fz-~hLxz5xU0oB`ZI>3D zrtog1M6Jc&{2t1HL4$6fU*pkT5musN=I?AzBm*<^gg;qDxvy?domC|)#WnJ1#=d=j8J3Zx@3@AUWYUoLEBU0vO2x}c{|6HxePkh;Q< zIff?PxASR(fc39U)Z|BRc@g;H;6f;L7m2h359d9jdcju9kPSA8*pq*^MG|Q|1r$a+ zvV>`Mv=?%h{aB|ocIsJXX6ESuaFYoiZm%0q^q5n<>8` zpH2cOl?0VnatWHL&p~@U#*ij@s(=IP+X@B3*~!9IDw(eG9V*IdH}}&&HkNDK!wr-G zB$nP@1(c9ub*gA-&MaVHQ;8C=P$sArx7pvJUI_-@qfP-VH~ji=+kSfRf{**7pdg$4 zjyIdOVDcqCYjAsCX7;u|<3oGN%`1M)p{ePHlamP$z|-TluUFPGHGIU9$$Q5U{OZ+MJvZ=2TQv%(QIRo%r)j75IPSq8nKpR~nw> z3$p=f|8fb&7#;QI&3qv{Ks`^D(25%)D&HX#Nq>!98;3oO4Wth8s-=F0zi1(v0A!@E zcXoY2hYlT5dm*`oKr9gA{oh~Q#$>hBi{nn*hwt=c2Bp-}e7I$npPyg*N`5;*Xp@C3 zs7T=2pSJNMl)tLtelaLY&f)*R3ritrWO|W=<>cgQfW-zmRzr*cty8A81NY~dcmMa& z{D|Y+DG+rVcH$=#zsDtX2TKH4m$t9G3Mvzz2?l(hX>&=%gbi}krs(7`RUp(TR>$5V zDX0*}D>l~1x`F)c7oQQcz-0;R6^=dX@nvR0x&0>%@1U%#>~RHW7nejN6%_WuN&%YL zzkh{Y-La$1+ww2?&~j)X*>lE2WOyoY<(8|Pn=S9JuTKs)6?qh)PkRjYC5l2hxiqbO0gLt9~mEFhb~Hd?-N? z5u_>OMt(r-d!8;#ndbMKjz3SBXu9)VfX3&+Se>R`-{<|2P^TJf%x%rMF67@xBS1HH z#-Sb)wU?8#_x`cA@3+=$%s@c^@z&j>XF#mOnkjlKT2)l-c&u2xXUrcVwwT*RO z7(0WO;Q z0STfANzsa4?(KN-pBYo-y2$5b3a7>Q?{XEB!%4}K^swsj= z*@e+o#X{@4|M=YK`xx$z{?-)jCZ8h{J9`SS>f+K&kz?++rN#NWG2B}b@u4ikI39O`jb3~-DwIpCm18^})wn=-706%c%l}r5% zPySiASy-E8#}4P_DUxJzM7^kYGWtt1aI10I#r9N1Hr&~;EknP|?__F)xvgY4IGEU> zB#lI{WvrDDU+MFe@GgpUf)Z5>cv-LEQ8dQ=^~vFAbJ+IzwkMr?a)|p~1pFugbk{64VA|ehiySQow0<+5CMF17<8V&7gGlZ+(~hcG);lRHf3iZ*GRe_2+H$7zbFQl_* z5nex>C zYe^DrO9YjkJ9n?mZANE)5ry-$W1G{Nk^G4OV5S#n8WSbGs8N|!ARLrD-?fH$n#eRe zE!R-*%+B+B3`;I1KbwzuZjKg*r~?l>niv(J{=y0MISJS`kQH^&hX#A4Smt zwR2)}9)Wp?pOiO&yA@JzXiBX99!SC-1JCJR1G&V$N_3`i#C~8AiPzY8Me8eAoNhke z&lT5E;xhoMnUvfFjpV0BMc!B9uK#>Xcq@$*?RX@d?Q`=aj{e@i!u#=?U{FxdBtX0g zU>sp4H8es%TE*-;|1=Jb81C_5^ITh=W2(bY(<`uejWgThL6R;kF4hsz$=f>t8_!~( z{fXQB^Z`!J(=Ic^>Q+{7;@yBbcX|-HM777Wg|xFCe@i&1^Y=I_uivmi8F{mBkqqM1 zlla6Hn8wxm|LO{Qt)=M!%!ji+aO` z>bHg!cA$jr!$|>Cj4E(J#muL#Uu!+7{yAb=%jNTp9-G{=#_vCpum4FK&2fz+jCqh+ zs;;PGFxkD2xj-C}(hXAie8dTLcJ^cL(x*xlK=(JRnp&yxZG z2-c!=2=7$dP4~Z)KPRqRqJ6UIJ`1ae8tIut8l)O2sSt`0xXb!o%kTOsh@6ywi;vpY+o{RaI4eO(lh-#aeEGVM?rwFddPO-E_z`88 zdawI>VuSJwx=kVX{6EZl2gZ-@G%+!G=f3!EF$c*GCbA5U{hXYH27(gx9k<;5`}Zqk zr+BP4;m{D_<3nA@G;;Ftk2nD}>N?Wz-Me?v5qo4(4Ip$p-$P$Nni$G}+WU*WHp(d| zgj`{I*Yn&(E&1Y65c7$+dzcAq;#ZoFWAsiGfW$!1Zr8+@kT&bk^brtk=`kNps25P_ zBIcLkRrV67^z?{H(7})v`T73DRGUFLlgx{IW%XRgybAF*Y<-zP!Jb!o{U=> zSzb~kB8QBOOv=m~xZUo7e@sHeCL)u~>JmKp*g;xsH88CYhwKTPZr`R1lb3`X#fmAU z3erd+cu54>wY$yqb(Z<_O{uGiE&Vkh3I`(W%h#`8r{-H)jG%r9U2lv63TM1P!vB5i zS6(n&Z88Ai{@eLYQUAccCM|Y|BKRO}1wjVDN|K!AA_C$N@(+jy6O2{CkukfqdAcZT z$wDj=L`y1YI+TNFC5w;m zSW-^t6Yz+#MGNEpWORr?;?5wqiGn{sx7mGZ)<|@DVM1X<6x26(X70m>RiXD}%@{Fx z6Rv*VsL~yrD%-Fj(iJua1g7S!I&|TnmQ%sT^%X5IrWS&)aGM{>K4I7U090y*+q}d1 zr$=M~kPm#(W5KYjG;Qa(wNMcu)|f%b!bYyNKL2Rn`3%sIWJ#y9X`!p>xzE0Wtz#hH zik5c1>KmzwgY}V@+C2wba#f*)gxKx5hux_~I>&5_R-2aQkNRnGQa+oBE5i<-cK(@g znm`fhnxkq34Vl}pM|zG6wp^Q=?1O{lk?5VXHF+b21NBWHNxAy6JM=&$5j|1cVx*(v z1!`hW;z_*uS4w9+Mc*YZQpo&iMMYiZ)1wtH7NI%V>SQKx!H_1*s+oMT&YW-}lvfeW z?VhL>Iw+9#vvaWGalvtSMSm9CqgDAS=V!pi8cSOZ{GvOn5O46TsWhi5ot}P)0L-m? z^$8rW8|NY;H3%!6?x~+G9?Od>K#9n6AWhyP$G6n)#~YO{<}PkJtE8lKvl+D2$0f_e zx&+)igQ4tZ*oA6g0P%6!fB4#0CA8X;rP~zYmy@2BC9*HYBCz?Nv#?}rZ243F%Dk(q z%RhlNR&0LouzHe~a*d^>1!&!9Ak;Fm?$ zG{t7(w(FJV?(94#Wn=XExa(vz(f!E1!4PEJY)it;-m+m1W=NW3cbilOUV2v`w(|DN z){g5C^4YDgQQV}}6$$|dULm7?hByK;iZs%&L8YJwpIQ;Nd}ep+c`RlkBwOC8kS5+L zTflJtWV5*{YGX8axgnqvVt5CDAOv%I44rHi4^+>g3F+%X7Ak$jKi)c`DIWl4eb!NTI&kErBp)}8wE-uRd;B73bFES ztUd-!Pp+=VfK?m>nOh86XF-kH2`k9UAAY5WkB#EAHKU{zu!SK%f?v}%J?y@4!>7xK z-T5pywp?93NF4J;$r_13QyMw?8+-p0NFb#k8J+7Rv%~edWeGh7LEUh9{uZG(Yss-D z5}s%dk{Iy$@1Og)xISHZ(pKU_YX&xouVK2=pWk%2CHI}pZ@&t2^f*TWP-KgEtD3=} zhc*KwQeFik_9P@cad(9a1O;lPYMG3EqS3tpqj0542yLmp8BwkBd4|jNHG&#@jOdNZEfxUs4~YZV`E~BKL_n4qI3+4R33KD9_Y8g z1ijb@X^b+Q-ZF4 ztro{C_z4q+!jK6082)TcM*lJs4NMHp5@pv8qo8yXgAY5o&<{ZJ#iP_GAgTd24t}wr zE;Y>r2P{SA3n-Up>#!Go{_#T<`Gzp*U?oTa{@v&i!!`IX>}x{Pa_jbO|Ai$CAV-w6 zBH6Sb-jOV_b~9@n)R(8N_JxRVtYO_d`+-hA00oM|wM&WwlchZx9vN+2Pc=?O(f6pjpvrZV* zlO$g33HczHH+8-;tfXD#Zk8?4zp$b0z`Qbh?~;87NkCAOG>ZP1_v$3IT-Z$Q*2g#7u87YInVx7Me@sndxK$TzbE;HW3E2OEyM5`^8K&ja!$Mb z#5_-Q3~Q9cZse%ZS?E|9Mpf*9&s;n_@}MKs5DmnZ0z3JiW*^8)5au|+XzndH0#I_w zs!9z6wjV;hhTcX155k`q@`?8wlx`4dEMfcsBN_*&Ia^Pbf_@E}9`J|nR(kL;urBeM zdT#1)>ovemL*(4D@^TS#WXTXP*zZU5OV=;XR(Vv;kfiX-flgxFYGU*a z)Uc_(A7?}y2Ce3D>r8{MFag}v8b!Lj25d4xG6Hv`Q|Q)st9*!58g{4dEo5A^f3Amx zCo7^DW6lS@1oN!05;<&CoU~a=4}*hWQT?-)I3}ijW>GcbVa+5iq{>L~RA6InaFA_( z04qrbAbyIdsGYGh*{uWhbV2R;Oh%Dsa0&skIDqzwI)tVv5e#|)+^k^25}`-y6uMp@ zh8F-&>iI+xFw|a@pmoi+m!P#q1InSl0^TNBw!bwmTZ%3Rd6G;t{6j8i2!pOL$(=h_ z8+Gco9SmDO$2o(#M@CY=emy5!^IX&gOt>lSX0X!V0huRU4|jHS5%7vUU*-}%b(p{K_z zQ$R$Tb(Y>e;rjQD{0bb)e%Tn>!FvG95Q}IP-o$Z?<%scveG1QvIaUz}3&E1~E9RMO zu!R8P2U)BR#eM!^5woZRaqak+9Lf^j>DgVv$O-fq3xttddkt+GG(EpXVGxfMA-uMl zcjeBWwGvLbn3>SL!r58C^dVh!a^hY^12_R);uZ1PE=x=@d2+T|ZyNwmkcKebHkUl` z0TNdjezHFJ^yw_n!;jwsmaS*@K%*eUT&~;9aO)J%TaN4EkTHDSNa1QxLT+=D)$j`J z?8|;-(fSJJ3erjqmgJLKExt4sh`D$UT5}-FonVz)+;1r`^1eic&3`|1oktYZi6ZE1 z+xYuem`L;;pehx(ryW}TO&*7RSObXpy1TpEwdVo7H`4QS=l%n3e>;4pkMR-10f1~B z$Vuc4MX0wbxPSkAOWZ`%POUW+YrLHNmC~=BN5K<5_=<&tVDoGx) zh&ZVGn6On5B95kTBu=;gNDgP&w|~DGJb}){WKB;WgA~;d3{Z{nwQ8(@y!720cZxbs zen*PdSpu&b8qS0ybi{p2DK1}PW2o9&kUfJOV7+$Jmwqh6-47 z)3dTB(Te?*;BXziNwj24yczcX93+@Y(2i&4c<%v9fh&(g?IXrQlcOlsQFi*wy4xEa zB>8=bRxBdY+@TFOhkpWRC~&&VM$~YT!Nx-H@SS|5a62Af<+~Bm$17ZW zd)zkyQkR8jq%iENsisRl&s*pIl(Lb{1Y*3sLmNCP=){(`V`Mt`SNZy5Sii=+%ryNn)}e3Tv7el72rorST)g=703i&c>~@olwHsvlON2;n?VqUzJ;%nr zR$vVz!^){SM7!|nn~)fK!rl*W&aPBN1CC{MbSc6oauuxK$tOS~g*5zQPvFU*5nXoq zkb}g8GWY=!C;@~pg?!6A4~iX4vaxv9#pE?j>Pu+nYZ6ln6VMCP{T2$E{1a|@g4M^{ z`-}b+OF3LOhgLD1Z**pcc*99U3;-!ZJdgN{-O$13kHW0x+!NtQTsS^ifHHN_2_mas5n$K7BGA$^k=n6t!sxk^3|id=TIc2c*L@0y2N_+`F zfBxJ&A%^Um1j@_F$?11n>3jVMjt2}vj~JkynW9&ef}KJ(P>{u- z2vMKlVv7gKOVnp1dHasyHS=!Q+sD$%*(+?rm@q#|^nRkAjqIKySD}B*0VYntqt^?c zZK$2W^N(mI1{+%Pn{$v_lwW$2V;R_z?`qGWuQ&pC7hE&N?y2D==iDt8*_tH3Alr_c z&%hOJf|A5HMOuWG0R4!6^qD@gafn^#R*Q=QHq`*mPzAp-l-a((hS3w%1Rf=VI88wy z+?+FReU}--@~CkgoQ_bS<00!pg>Yz!{C2qN>;-hHHuYvpL|MFTG)xO{D5=-wlGs+BPBvm6!kI zu!mj|cviwx8D_Bdu!VsDYv@AAcx_yy@=Q$RxkKmc?|&PFN86D3&$nxK++Pdk znPDqGK=77o|63b;H($7L!OFow21kMDo6XJ5sU&nSXmcQwl^}h6e|d&>^}2Q8M-+DB zU-b4(mLF<96c?}BasPFr!;sL%jf>-1kiT~e2+(1Tiy=0h-?8W4OZ#d{*jZUweV@%~ z1%92Kczg23Cz=5%=PLu=5pcTrfmvqYW7 zV}hccoCK(Wy9-&N8>O zv z@Tb7ar|;gKer1*9${$@TS$)UXH_>p^5a4O$xd8viF8W^=`v0DIGDjbazf%Jk{DoxO zJ;Qr3Ljnxs`5m?Xph(&0XGTKXkD1i0MivNWB5Sxsxz5OH)mCQayV#BuBPfnja{G2- z|Ese4z^3wVco%7eRsiSeICKNpQ|;VxQj@}QQX$Nljtb)Q?itEI;W4%q8Jjk8j zq4H~KJ)SrDyb{goer0g}3m8?h7AV>{jA61S_qr-NE17&n{^gY~IlYYr3A#mPCMMWn_gC*JfQSC?; z3h^Bu9|MepfpI&DqKCP0oU+AW>Z_49K>~+mSYNtyX|Sz;1z71HrJNfb;7|oE+wu<$ zxGzpMG^QKTB7@Vd3gWy1qmwakO8nGwF*iSOOa?fM;x`n;`QgI{DwF{kd`LCWLt|4D zcax&5>?sKe%4QBR?WG95Q^v+zug^VMbzkOX?~lsL%~)+o_$;bnt)h5_hqGYWr{u<0 z0#BE7oO2RQV+V{>$DG!oYcIi6|K4V?Yc-J@7Jv)(*5}&wZ6#!-u<~++-qJ0Ef9TJ4 zN-}o9ku@SleC}B%_M%_q^Ca` zfB>#1INQoZ)b)JvAkGeOK#wftfB0NX_V)4dk^MJOB%Dh?W&dIcOoLsFI(WWK8P>ft z@PJwuE*zM9D&m-;4aj};FKns5IVE1HbU;*-LO4}iUv9Q6lEyirg+j=Lz@fC00jbau zh$7+25EB&@RT}HUOwLb?VJla24rx4wtHKrb=5aIdBf)GcuReYLtjy}u(}Tmp2=|VI zFnn*sS*p`#&Q!4AOb>h>@{b(rkw0LUp+*)8eRK~r2P?!aDYRVzge+vZ2XcwDU(T7y zZY`-<7EXWCX;_44B3;Mtx*qKXep#FS!hgEDu*o415UC;f$(QlJV+QAN*us5ecsKwK zCJp`5!8o%bWzCA`<_Nkk{FS>$LZ-JYc9kb6N2C-^FMaF-g8?0@wHqeRD$+(pUta2mXl6wxVi7X?2~$HKBvHs}HJFIc$a zyR3o#%-VeFv1$*3gZD;qK{H~5chmR&{b0-ZnyHbAW=QRqjf{Mfk`7WNG&C3?)SzwI z^m2Lzfa(k&yfrA=;~&9;(BoLiDJ3PkRsZ}0Uza6Q-5Kd>b{3KZcdNdkC|wWmif{PG zNf$8m4dTHLX%`LX_;mDy81a=mx>WH;hebq~*YaMKUha$t3evY*wOe*8n9W;=_g_d( z<8_hPjd;S#Kj@Z0wH-fBMS;cAA1u>AfxfGBr`|HDZJ!>iQ841z#=i?OeSY5))Oqr! z>M!{v(jk+f4FPUD5|<3lO264Jh0o%XJd1zGw5e|z6lhey^~A9@cqWMRr27IB<&9mR z3RGhzghw$#<$BQ4CS@pL@MUc9Sel3&>k(gOMp_qgp&`X+(&jD2ul<@qK#}t@vQ;DK zqn6O==|p4`QrS~dQk=7cLqqp_@XBsQ;!}=QV7uLUfQ#!ry29TxK$36XzP*LR`lp5- z6W-W2AmAgUh&PaqKq{?R$LdgzFt;1-;#f7rfVbPR%D320MmZ~|HvFZS2zR$rA`fAjVE@J^KD zwPkjA2muPCLVy9RQDJDYPMP=eaB-~%7UAOJlDK-66N_mDo#`3eoP|$S?aV_EucUCm zkf`TXDn+K@Djzo`$8qGj{>$69rM&F5l$1PSJmaY!w6eConVFgS%=fgk^cAog&e<2h zMU~Ct9EMG~QRQ)3?qF)fbTK6AmDCD5(lOizmALo_kxxl0_*4JistP*_-L`FeEFW-g zfJ-~&&E}qO;XZ`1&Sq9e1cM=y#$i`|w+ATTQFz64#8~Nxc^0;iY34;;bx{!!76?kG z!MN~T7w4{l<#7z2?Dthww6yFeA7p!=6pv0#d118rd#6w{SVbIYkeQLz@5sFTfI_eq z?9L>TVk2wh+x5HXHOp#Ej}mPv{kn|I+9Nye>l(^OR~yr3M^ky;zkk0?^L>Unj_z&7 zhY}p{;PKufh@a4kcr|W899G;~A;y35 zq;^WIc^7!BAaM>nMk!whJHgVDAE#`lO!H83C4)F~m*DG-bJUhxzXj}XV=8b$=*1-z zH@|T#{@STndCVteCo;$#I!V{5I?Zu0Dmn^2wi5*E7RmL%Li=%qg`1U?wcDnu2y7l7 zxF_N=n+)gz)$S*R`XhHRPrr;>`a%-`#1!OI3S6dh{sAW4Tb*9`nf$dSK_^ z;Go>ewLzR4OC&OKS?S$v75CzM1#vzvk+?S7(vbI+ zf8SVgy-ySC=jW%QO+|HiR5fl=*{;p!Z~KBbd4R7WaKi7w|8y_9E}7^CaqdEH4nJlo14|km z%*;y5a|cfg8+@dpfqcfte@Ei%*|TY9_Jm#q6T5!n#z*tY@oJ5QZX&uaLz#yLK>bq> z4-Z3#xZO#$s)}P>)F`zqa1u^D--Y3!m*JArvy)C+F+Qy#celHOq8#CLt6+mJ2h!v| z$cG&moghiX^0Kv%i$T}5#6%b$d8$7l26xjfBA0%ti&Opwy*Tp8Dy19xjLgjO4X!H& zWkKdefRev(`WioFi{r!r`xDt_M|RNQ!5M|Y=Yu$rQ#)|_KmrEn?})6~KAonk!+_K% zLA2x;r4o%~px65B>pxd*-@ZL}5Ua3d>sFO(1+af!1}A6JiHwa?+x~d^%Ao-$49tX! zOWLzXc56~{GD7#Zrzd5hgVsX=8I^v+6YM1{Vj4WChvo&;u3tY01=$~Ey-W<8#|zxb z4FLbK`b(BC&^X|X5Zm?Z*K;bVvCIX|er@{ED)Fa5F2#qQ`(nGXo&<1CaM_nHa;W&B zTJ8|XJ7;qMi#4x_LqOuz7#YfLXH<+7<4w1yzVwDub}PibS09Z(@oK?Nw3XOBK7IMZ zebhTTbP`?wFQ~zt(>xTiuMo-=Zh5)6cR@A#0jx`33S<}E3d0N?BO{}qu&Ai0w1R>{ zytOgd7k2*|iw`x#TNMY7ZD%9@#f-Spaq!&5Wo6RV^12Xd{D*w_aO{#-s1n(e0TzO- z;HApGL>{-5`8zkqJ@@v_8#J_0HecVa1idu6f8Qi}T77 zN$?4QjW}ZzffSc!+oMo+w-7rTEXm$!gR`r~!FE&22Au{JFGIbN#+ld~3xBQCY?>^4 z!L0kk_xpKh`+eCwMQl}&GhMuAzk@0(rGwVOh+RlLgdy|o&HdqBZ>&rQ9Bu^$h8!lQ=Q&aOrwXs|hMnX>K`Bv1| zXO)g*2WjUye2W?Ikv26oeZoK^D}hr1r-A5xzvT{=12HzhpoP;X z#%=kz(W$`50}C4+l@VL|z|(%)rlR#kL`3`%BK|a4JX6DEh_yWaHgN1_m!@HVjW_MnT`@1v{;wKRdo}r{sD;IO3#R zflK_+d+I35h*;}fl1bL^N9ymdD+JfKdsd)(*ZSPt+%oo@H>l@ZD_DX&aZ6l<93a~# z1N=#PXT|NsVrn6&l*2MXbJ0_2y>kD8ClFJHq5ZdcF4^kYolSFKjW+^QtDB1Q@bE0a zzFQ3Wb``##)pd=s+Wa0dOUK4`|IvQM-G>fsMbE2pQbwZ!93djH1W9caE|tqzV`6!p z7bd9(Ok*+D(i*;R{h2xWARIGTO&TlkRqH|G9(>NVbj;)Z$B%2t13$F&^4vhP8N=}N zbKTbWIJZP^mKPHnYXB#XbKTKeB>#>-e_n^VU}bi5yu_)Z4yYbC>I5FhL?n4O8axAAZh`oY&lh$`ffoYR_&Cul{7xSbKKRa$~H9u{> z0Qde)lpg)vZ&UvI5BqS+_BNz)kZv3;?QS6`p`k zo1~P~Z+p2rbcAOlTmx`8I*fB;YUvoX0gQLfnFYYdvu1rBipqy4Pm9AWy~Iv0NqEEY zIl+&B0--?tzpx{n&;QzwTXwEH+qqX%{v9}1VtAc(Gd1OA7k9r0$PUs~>SgtNbc(qB z+sVnipa5V{0%D-hKR*qMl5S~f2_Oo*3*Z$U_{LuY1DBGDkfyQdzu>4og~bstso^9& zlSBviAAs3Xm<|LXXrZxK1L@O)Zu@qh@<5I~hYxSVvfY>-WG0{;N(|#mnfpQ8JHtgB z`5TIcKWvW{qOET6C2 zf=xq66>e^76pCQB%8j3+-~JQF1xH9D9(s1l-mfiX?;QzA$yG2Th|JpVT5Zvme-}r! z7!r-l%>2>V5txB_FTs5MuDX5e7UtF;YPNn`zSHRRbiI@Mo)af_z?F70JKOPYqNjXN zOuEGda!mO~adn%|e%Q#D3KZCU3G_NltS#W8>OPx!vRP-Mbh>F9((3U^S- zamH5#lkuqo>Crg)`K!PGViNC=(9q`_PR5F+72!ut>W$3a{qg!5W*>HKdif^cW%3xh z+f6W$*XOo=7vy{T-WbOrnRATZ9Y1lR6Nl~AQ&R`cb2s6sN@vjD#fFJzL2c|1@AqKdxG};YGpV4 zB6q*rhpPd<0-MqJC33!-=EuWS#>B+M^+vj)G!j99+`vOh*|RO%Wk9cz>!=0J}k)cd>=Jz7Q;fGtNrxkx!p;qbAcE;<38B)wqL+yDOjf*fGr& z!~^0_JMG((!)LaH%e~qPwPJ1N7)ZMcdv)$$rW1C?cMU-m$M;r2O&xK!XfNa?{zG3p zV6}R@2NR@`0kd!!sP8z@{?|fd*h;X(o#C3?UBG)bnc< zKXCKQ2K_>^M_%Y81OP65AI3NE5gS3f-&~RIKt^vt?Ef~0SB455rvOfAk?tC!WD;>W zINV+oI6Ki3e()nYh&~;mJ$pzq%^;V6#8`2?sMo;Ji%!^W?g&U%^QH)a!#V?jSFc^ukmMu~n>$y!az}VsmG*e;7DI27z(C{`pyBzG;orMKgfP3k#*U+l$P&&12b`#wCMJ>@SXlg#a^6EgBW?lu15a)Vc11jTbQ@cICs00EBe3ix zIKlX|1JvtX06MTWVnvSi zo*V`K7rrsN6OAy=8tn%dF?)uo*Cv<3<>3w6+Ur-T2D`J3lkF;kPc6+sePL4)aK2b zJ0bQMPMdt@7ou0!4k<}TuiJea(a5Y zxViZf{fG9YLNyJUl)L7J_Rk^gw; zT7Fk&=V|mwcQ6qkbD~iuikq4)=0k71=KJi+%lxj0$B#K--{D1OC4x>bEL?FgIRU4I_30&@HLbE1|C&<|_e8}kd_*U#hN%V^laqa?>Q{S5_D_z~~k+H#d znx#^0!zcKY2scTvi{fqref|HdyYv61I?v;{TTLRBnMi6XMyW2TtI4Dqv%bx4jwO<7 z3h5@6=!>DDT74PKA`=y}j8r7!x<+i0lpzP%$=0boOcDoOX=`scUn(<_eZ05Xe_+r4 zv_EpL>vP{Ek`%ji;_vN4IB~}DP4tSM&YU~1bD_g>4Yz!F?em8W%mA^qQ z2$(|AQ4f*w!l5A8q4D*86A{!X#D(m)3@GFdL7VgocF78aiN^l`4Dq zF>p-$C9Hxv^8R-&nExxB9u^E-{k-p3CdnOw_#391&%o_B<$V!6_BWTI(DgtC>@lfS zZ8Bqe+8B`ixTo3gvkqF5kyYqZq^Jq%jO&}TW!tt5PcjbEt(nBSy_tHZ<#cIPW#uHe zEtrRTcDVZFu7IUbv$EYiF2{+g_@eovot-}A7zdZ<^m6UWi)#i>E&8pis~+{X>uQSI z7S%I&=z1Yt)=0m3A;KP?4-QVJJ4jgx!=j8_xM0Czkn1V$rx+tmU>m3707yHTnzuCa zJ@4pjW^yK>a3Fi@vJMuCJ_nTu&-kg|Y|!>m-zE`8CRQ4vq+8|HtIH+Ix)f6_h4`ny z@alQ1Ju+@*_CKT1x%ASdB^7@}RLZ0M(lRx}U5ie-&Bh@h{pBgm&x1?g4jFlG$-6(? zTdAu)zyZc*cJF)!nGZR-Biit_~^{?C|p-NoP%E&K)*e$u&Ssu0?1z;Rk42Hpp z2)u{M_7mq0zZr1)lB36&BEt*r=}X0q`{l~O8wz~hmi8eOQi5ZX2Qa4Y*>+P{V$Kv$ zFoj9Nr9{cb2~=8E<_IkgzSjpOp+}V5TYtr^r>pDit2Y$))23UxBM0a{e|*P6uo5JK zIQsj)9}kX&_d*cmGhlYjeWw@R9Gdx)|b!+?&k|xin+4fQM zF~mt%`P-h5Jsc&4s1}a^7@?`DNmO;Ga&m6I{^X#PMX2fSKEyp}f%+)xvoJT8u;qzHlKQb) zN|$A^&$|@um&URh8X9t0e(+x|i00$QjdPzhan{|a1Zuj z9D{QyjR85O}0xVE0){ z@T$g?SE$@FVq8R}Ld#xB>CC@IvudF}Km}%SEnsp~WL*&tLa~%Z%e|M5s=k+Gv zwYevM`(WC>j_Q3TOs>F=bPh(|eftPxnxCZ{$%t<`HWb<%tMZYq+4s@_Yr7NZL1NVT zOE#4_tb7+I7c632!vv3BMRP16M3bDqGH~3rYgvKknW?j9&wiiZKnU0JN&DME&us8} z5FCF#=c4H^BV!w`pYys7Of^!aZ5OddXP)NyssufS#D5k^IGNS6&o}(v1E|dtSb(4F z;B0X9cdwLh>7An$k{|xnVSKEm9K||E1|1P%spk)I6`bSpNxqa&IAA(BsCoQ25yT;e zKUo91KxG(D$<;g|KUo%Xjes}j%Bm^_U=PwqM|{Bqtdg$4MC7j~W8n04?+V`Idb{m( zXp?qKt|xc85QNthhobY29VLnpwjVdtt&F;(t<`%p8_P7)<~eW$_AFINn=<<+9wb0# z=t;|Dgx!^UhZeDetZe;lz2k1IUa`U$(FqSdhugA=)8?iKEe4(fp}7H-DXv$g&*^rR zNJ1!A2h$dBRg2*f&-~)FOyz5q0FLFj=A$Bk<=QfvYJay?p+xsdZ?{E@X&0gacQi|R zaRuJ&y0$h`44yg%X>lQyc!p{p*m}+WVM87DSksONl@j2G$HwBrye+Q~k4yUzk6Y+y zb-}xLkv0}p$`B8U&C95m7*`lT)Vc&t#q5~Pg%NBvyd(1{6IK#=q!>XJHduQ?UF8!q zb9pBkKqa`o%#JHr$H>9{c%VN^Ane9Woq>S?q=LrJ?E<74N$rJ1ih=Il-USR$1B2j7 zk5wj7YwMIg3f$FES73V~-s`!|)R7P?dEkHn{WjOl%=7zlA)XEsB5Fm@$6~;_C5GBxU;c_v_W7U` z>Yids%6Dr!Q)F~T z!A!;7Di}ZAaCu^CstFx@$4&AtR#eOYllY{Yt_V+Gr)p{NSciz{0u!gsD3>IXu#zR) zYwHttqy5gEvif(7;=DJ;u#QL9aPajLCL<3j54PUgI6|$ET!naR!1tpxYbT4tM$0IQ zQ$_d@u9N`8L}Mag{KLV(G;`5$)uZicZgw|!`A1)bQ2R35+uD)@Wo^6X+>a*{y1xGI zQ4~ufzn}oCkaN6swgVk!y9w=6KYEmhFAhibA;lJpqHlj(-8rP_iLKell7TF2y8Hn0 z$ah^ru-n^*plYzNvYJfex+Cre=`yz>DK>6lsR0U`Y;ylrU-lpST=)EF7~B8Ovq|yu izcGLQpTE(gF`Xx`w Date: Fri, 31 Jul 2015 18:58:07 -0400 Subject: [PATCH 3/3] DOC: document API change --- doc/api/api_changes/2015-07-30_annotation_wrap.rst | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 doc/api/api_changes/2015-07-30_annotation_wrap.rst diff --git a/doc/api/api_changes/2015-07-30_annotation_wrap.rst b/doc/api/api_changes/2015-07-30_annotation_wrap.rst new file mode 100644 index 000000000000..ead5a085d037 --- /dev/null +++ b/doc/api/api_changes/2015-07-30_annotation_wrap.rst @@ -0,0 +1,9 @@ +No annotation coordinates wrap +`````````````````````````````` + +In #2351 for 1.4.0 the behavior of ['axes points', 'axes pixel', +'figure points', 'figure pixel'] as coordinates was change to +no longer wrap for negative values. In 1.4.3 this change was +reverted for 'axes points' and 'axes pixel' and in addition caused +'axes fraction' to wrap. For 1.5 the behavior has been reverted to +as it was in 1.4.0-1.4.2, no wrapping for any type of coordinate.