From f8dfea7f7bc3f3fdc5d2755d63e236fe2d74958a Mon Sep 17 00:00:00 2001 From: Jody Klymak Date: Mon, 23 Oct 2017 11:11:54 -0700 Subject: [PATCH] ENH: Constrained layout geometry manager --- .../2017-09-29_JMK_constrained_layout_api.rst | 16 + .../next_whats_new/constrained_layout.rst | 59 + lib/matplotlib/_constrained_layout.py | 653 ++++++ lib/matplotlib/_layoutbox.py | 743 +++++++ lib/matplotlib/axes/_axes.py | 8 +- lib/matplotlib/axes/_base.py | 44 +- lib/matplotlib/axes/_subplots.py | 45 +- lib/matplotlib/backend_bases.py | 4 +- lib/matplotlib/backend_tools.py | 4 +- lib/matplotlib/colorbar.py | 61 +- lib/matplotlib/figure.py | 201 +- lib/matplotlib/gridspec.py | 145 +- lib/matplotlib/rcsetup.py | 13 + .../constrained_layout1.png | Bin 0 -> 23743 bytes .../constrained_layout10.png | Bin 0 -> 35956 bytes .../constrained_layout11.png | Bin 0 -> 38636 bytes .../constrained_layout11rat.png | Bin 0 -> 38505 bytes .../constrained_layout12.png | Bin 0 -> 44660 bytes .../constrained_layout13.png | Bin 0 -> 35515 bytes .../constrained_layout14.png | Bin 0 -> 40330 bytes .../constrained_layout15.png | Bin 0 -> 25452 bytes .../constrained_layout16.png | Bin 0 -> 23120 bytes .../constrained_layout2.png | Bin 0 -> 34397 bytes .../constrained_layout3.png | Bin 0 -> 52171 bytes .../constrained_layout4.pdf | Bin 0 -> 16636 bytes .../constrained_layout4.png | Bin 0 -> 41172 bytes .../constrained_layout4.svg | 1933 +++++++++++++++++ .../constrained_layout5.png | Bin 0 -> 35858 bytes .../constrained_layout6.png | Bin 0 -> 38503 bytes .../constrained_layout7.png | Bin 0 -> 43862 bytes .../constrained_layout8.png | Bin 0 -> 35732 bytes .../constrained_layout9.png | Bin 0 -> 35005 bytes .../tests/test_constrainedlayout.py | 347 +++ matplotlibrc.template | 4 + setupext.py | 1 + .../intermediate/constrainedlayout_guide.py | 700 ++++++ tutorials/intermediate/tight_layout_guide.py | 2 + 37 files changed, 4918 insertions(+), 65 deletions(-) create mode 100644 doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst create mode 100644 doc/users/next_whats_new/constrained_layout.rst create mode 100644 lib/matplotlib/_constrained_layout.py create mode 100644 lib/matplotlib/_layoutbox.py create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout10.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11rat.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout6.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout8.png create mode 100644 lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png create mode 100644 lib/matplotlib/tests/test_constrainedlayout.py create mode 100644 tutorials/intermediate/constrainedlayout_guide.py diff --git a/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst b/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst new file mode 100644 index 000000000000..05e54d67f4c0 --- /dev/null +++ b/doc/api/api_changes/2017-09-29_JMK_constrained_layout_api.rst @@ -0,0 +1,16 @@ +API changes for ``constrained_layout`` +---------------------------------------- + +The new constrained_layout functionality has some minor (largely backwards- +compatible) API changes. See +:ref:`sphx_glr_tutorials_intermediate_constrainedlayout_guide.py` for +more details on this functionality. + +This requires a new dependency on kiwisolver_. + +_https://github.com/nucleic/kiwi + +kwarg ``fig`` deprectated in `.GridSpec.get_subplot_params` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use ``figure`` instead of ``fig``, which is now deprecated. diff --git a/doc/users/next_whats_new/constrained_layout.rst b/doc/users/next_whats_new/constrained_layout.rst new file mode 100644 index 000000000000..a1af56601549 --- /dev/null +++ b/doc/users/next_whats_new/constrained_layout.rst @@ -0,0 +1,59 @@ +Constrained Layout Manager +--------------------------- + +.. warning:: + + Constrained Layout is **experimental**. The + behaviour and API are subject to change, or the whole functionality + may be removed without a deprecation period. + + +A new method to automatically decide spacing between subplots and their +organizing ``GridSpec`` instances has been added. It is meant to +replace the venerable ``tight_layout`` method. It is invoked via +a new ``constrained_layout=True`` kwarg to +`~.figure.Figure` or `~.figure.subplots`. + +There are new ``rcParams`` for this package, and spacing can be +more finely tuned with the new `~.set_constrained_layout_pads`. + +Features include: + + - Automatic spacing for subplots with a fixed-size padding in inches around + subplots and all their decorators, and space between as a fraction + of subplot size between subplots. + - Spacing for `~.figure.suptitle`, and colorbars that are attached to + more than one axes. + - Nested `~.GridSpec` layouts using `~.GridSpecFromSubplotSpec`. + + For more details and capabilities please see the new tutorial: + :doc:`/tutorials/intermediate/constrainedlayout_guide` + +Note the new API to access this: + +New ``plt.figure`` and ``plt.subplots`` kwarg: ``constrained_layout`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:meth:`~matplotlib.pyplot.figure` and :meth:`~matplotlib.pyplot.subplots` +can now be called with ``constrained_layout=True`` kwarg to enable +constrained_layout. + +New ``ax.set_position`` behaviour +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:meth:`~matplotlib.axes.set_position` now makes the specified axis no +longer responsive to ``constrained_layout``, consistent with the idea that the +user wants to place an axis manually. + +Internally, this means that old ``ax.set_position`` calls *inside* the library +are changed to private ``ax._set_position`` calls so that +``constrained_layout`` will still work with these axes. + +New ``figure`` kwarg for ``GridSpec`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In order to facilitate ``constrained_layout``, ``GridSpec`` now accepts a +``figure`` keyword. This is backwards compatible, in that not supplying this +will simply cause ``constrained_layout`` to not operate on the subplots +orgainzed by this ``GridSpec`` instance. Routines that use ``GridSpec`` (e.g. +``fig.subplots``) have been modified to pass the figure to ``GridSpec``. diff --git a/lib/matplotlib/_constrained_layout.py b/lib/matplotlib/_constrained_layout.py new file mode 100644 index 000000000000..3561fbfef2b0 --- /dev/null +++ b/lib/matplotlib/_constrained_layout.py @@ -0,0 +1,653 @@ +""" +This module provides the routine to adjust subplot layouts so that there are +no overlapping axes or axes decorations. All axes decorations are dealt with +(labels, ticks, titles, ticklabels) and some dependent artists are also dealt +with (colorbar, suptitle, legend). + +Layout is done via :meth:`~matplotlib.gridspec`, with one constraint per +gridspec, so it is possible to have overlapping axes if the gridspecs +overlap (i.e. using :meth:`~matplotlib.gridspec.GridSpecFromSubplotSpec`). +Axes placed using ``figure.subplots()`` or ``figure.add_subplots()`` will +participate in the layout. Axes manually placed via ``figure.add_axes()`` +will not. + +See Tutorial: :doc:`/tutorials/intermediate/constrainedlayout_guide` + +""" + +# Development Notes: + +# What gets a layoutbox: +# - figure +# - gridspec +# - subplotspec +# EITHER: +# - axes + pos for the axes (i.e. the total area taken by axis and +# the actual "position" argument that needs to be sent to +# ax.set_position.) +# - The axes layout box will also encomapss the legend, and that is +# how legends get included (axes legeneds, not figure legends) +# - colorbars are sibblings of the axes if they are single-axes +# colorbars +# OR: +# - a gridspec can be inside a subplotspec. +# - subplotspec +# EITHER: +# - axes... +# OR: +# - gridspec... with arbitrary nesting... +# - colorbars are siblings of the subplotspecs if they are multi-axes +# colorbars. +# - suptitle: +# - right now suptitles are just stacked atop everything else in figure. +# Could imagine suptitles being gridspec suptitles, but not implimented +# +# Todo: AnchoredOffsetbox connected to gridspecs or axes. This would +# be more general way to add extra-axes annotations. + +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import numpy as np +import logging +import warnings + +from matplotlib.legend import Legend +import matplotlib.transforms as transforms +import matplotlib._layoutbox as layoutbox + +_log = logging.getLogger(__name__) + + +def get_axall_tightbbox(ax, renderer): + ''' + Get the tight_bbox of the axis ax, and any dependent decorations, like + a `Legend` instance. + ''' + + # main bbox of the axis.... + bbox = ax.get_tightbbox(renderer=renderer) + # now add the possibility of the legend... + for child in ax.get_children(): + if isinstance(child, Legend): + bboxn = child._legend_box.get_window_extent(renderer) + bbox = transforms.Bbox.union([bbox, bboxn]) + # add other children here.... + return bbox + + +def in_same_column(ss0, ssc): + nrows, ncols = ss0.get_gridspec().get_geometry() + + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + if colnum0min >= colnumCmin and colnum0min <= colnumCmax: + return True + if colnum0max >= colnumCmin and colnum0max <= colnumCmax: + return True + return False + + +def in_same_row(ss0, ssc): + nrows, ncols = ss0.get_gridspec().get_geometry() + + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + if rownum0min >= rownumCmin and rownum0min <= rownumCmax: + return True + if rownum0max >= rownumCmin and rownum0max <= rownumCmax: + return True + return False + + +###################################################### +def do_constrained_layout(fig, renderer, h_pad, w_pad, + hspace=None, wspace=None): + + """ + Do the constrained_layout. Called at draw time in + ``figure.constrained_layout()`` + + Parameters + ---------- + + + fig: Figure + is the ``figure`` instance to do the layout in. + + renderer: Renderer + the renderer to use. + + h_pad, w_pad : float + are in figure-normalized units, and are a padding around the axes + elements. + + hspace, wspace : float + are in fractions of the subplot sizes. + + """ + + ''' Steps: + + 1. get a list of unique gridspecs in this figure. Each gridspec will be + constrained separately. + 2. Check for gaps in the gridspecs. i.e. if not every axes slot in the + gridspec has been filled. If empty, add a ghost axis that is made so + that it cannot be seen (though visible=True). This is needed to make + a blank spot in the layout. + 3. Compare the tight_bbox of each axes to its `position`, and assume that + the difference is the space needed by the elements around the edge of + the axes (decorations) like the title, ticklabels, x-labels, etc. This + can include legends who overspill the axes boundaries. + 4. Constrain gridspec elements to line up: + a) if colnum0 neq colnumC, the two subplotspecs are stacked next to + each other, with the appropriate order. + b) if colnum0 == columnC line up the left or right side of the + _poslayoutbox (depending if it is the min or max num that is equal). + c) do the same for rows... + 5. The above doesn't constrain relative sizes of the _poslayoutboxes at + all, and indeed zero-size is a solution that the solver often finds more + convenient than expanding the sizes. Right now the solution is to compare + subplotspec sizes (i.e. drowsC and drows0) and constrain the larger + _poslayoutbox to be larger than the ratio of the sizes. i.e. if drows0 > + drowsC, then ax._poslayoutbox > axc._poslayoutbox * drowsC / drows0. This + works fine *if* the decorations are similar between the axes. If the + larger subplotspec has much larger axes decorations, then the constraint + above is incorrect. + + We need the greater than in the above, in general, rather than an equals + sign. Consider the case of the left column having 2 rows, and the right + column having 1 row. We want the top and bottom of the _poslayoutboxes to + line up. So that means if there are decorations on the left column axes + they will be smaller than half as large as the right hand axis. + + This can break down if the decoration size for the right hand axis (the + margins) is very large. There must be a math way to check for this case. + + ''' + invTransFig = fig.transFigure.inverted().transform_bbox + + # list of unique gridspecs that contain child axes: + gss = set([]) + for ax in fig.axes: + if hasattr(ax, 'get_subplotspec'): + gs = ax.get_subplotspec().get_gridspec() + if gs._layoutbox is not None: + gss.add(gs) + if len(gss) == 0: + warnings.warn('There are no gridspecs with layoutboxes. ' + 'Possibly did not call parent GridSpec with the figure= ' + 'keyword') + + # check for unoccupied gridspec slots and make ghost axes for these + # slots... Do for each gs separately. This is a pretty big kludge + # but shoudn't have too much ill effect. The worst is that + # someone querrying the figure will wonder why there are more + # axes than they thought. + if fig._layoutbox.constrained_layout_called < 1: + for gs in gss: + nrows, ncols = gs.get_geometry() + hassubplotspec = np.zeros(nrows * ncols, dtype=bool) + axs = [] + for ax in fig.axes: + if (hasattr(ax, 'get_subplotspec') + and ax._layoutbox is not None + and ax.get_subplotspec().get_gridspec() == gs): + axs += [ax] + for ax in axs: + ss0 = ax.get_subplotspec() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + hassubplotspec[ss0.num1:(ss0.num2 + 1)] = True + for nn, hss in enumerate(hassubplotspec): + if not hss: + # this gridspec slot doesn't have an axis so we + # make a "ghost". + ax = fig.add_subplot(gs[nn]) + ax.set_frame_on(False) + ax.set_xticks([]) + ax.set_yticks([]) + ax.set_facecolor((1, 0, 0, 0)) + + # for each axes, make a margin between the *pos* layoutbox and the + # *axes* layoutbox be a minimum size that can accomodate the + # decorations on the axis. + for ax in fig.axes: + _log.debug(ax._layoutbox) + if ax._layoutbox is not None: + pos = ax.get_position(original=True) + tightbbox = get_axall_tightbbox(ax, renderer) + bbox = invTransFig(tightbbox) + # use stored h_pad if it exists + h_padt = ax._poslayoutbox.h_pad + if h_padt is None: + h_padt = h_pad + w_padt = ax._poslayoutbox.w_pad + if w_padt is None: + w_padt = w_pad + ax._poslayoutbox.edit_left_margin_min(-bbox.x0 + + pos.x0 + w_padt) + ax._poslayoutbox.edit_right_margin_min(bbox.x1 - + pos.x1 + w_padt) + ax._poslayoutbox.edit_bottom_margin_min( + -bbox.y0 + pos.y0 + h_padt) + ax._poslayoutbox.edit_top_margin_min(bbox.y1-pos.y1+h_padt) + _log.debug('left %f', (-bbox.x0 + pos.x0 + w_pad)) + _log.debug('right %f', (bbox.x1 - pos.x1 + w_pad)) + _log.debug('bottom %f', (-bbox.y0 + pos.y0 + h_padt)) + # Sometimes its possible for the solver to collapse + # rather than expand axes, so they all have zero height + # or width. This stops that... It *should* have been + # taken into account w/ pref_width... + if fig._layoutbox.constrained_layout_called < 1: + ax._poslayoutbox.constrain_height_min(20, strength='weak') + ax._poslayoutbox.constrain_width_min(20, strength='weak') + ax._layoutbox.constrain_height_min(20, strength='weak') + ax._layoutbox.constrain_width_min(20, strength='weak') + ax._poslayoutbox.constrain_top_margin(0, strength='weak') + ax._poslayoutbox.constrain_bottom_margin(0, + strength='weak') + ax._poslayoutbox.constrain_right_margin(0, strength='weak') + ax._poslayoutbox.constrain_left_margin(0, strength='weak') + + # do layout for suptitle. + if fig._suptitle is not None: + sup = fig._suptitle + bbox = invTransFig(sup.get_window_extent(renderer=renderer)) + height = bbox.y1 - bbox.y0 + sup._layoutbox.edit_height(height+h_pad) + + # OK, the above lines up ax._poslayoutbox with ax._layoutbox + # now we need to + # 1) arrange the subplotspecs. We do it at this level because + # the subplotspecs are meant to contain other dependent axes + # like colorbars or legends. + # 2) line up the right and left side of the ax._poslayoutbox + # that have the same subplotspec maxes. + + if fig._layoutbox.constrained_layout_called < 1: + + # arrange the subplotspecs... This is all done relative to each + # other. Some subplotspecs conatain axes, and others contain gridspecs + # the ones that contain gridspecs are a set proportion of their + # parent gridspec. The ones that contain axes are not so constrained. + figlb = fig._layoutbox + for child in figlb.children: + if child._is_gridspec_layoutbox(): + # farm the gridspec layout out. + # + # This routine makes all the subplot spec containers + # have the correct arrangement. It just stacks the + # subplot layoutboxes in the correct order... + arange_subplotspecs(child, hspace=hspace, wspace=wspace) + + # - Align right/left and bottom/top spines of appropriate subplots. + # - Compare size of subplotspec including height and width ratios + # and make sure that the axes spines are at least as large + # as they should be. + for gs in gss: + # for each gridspec... + nrows, ncols = gs.get_geometry() + width_ratios = gs.get_width_ratios() + height_ratios = gs.get_height_ratios() + if width_ratios is None: + width_ratios = np.ones(ncols) + if height_ratios is None: + height_ratios = np.ones(nrows) + + # get axes in this gridspec.... + axs = [] + for ax in fig.axes: + if (hasattr(ax, 'get_subplotspec') + and ax._layoutbox is not None): + if ax.get_subplotspec().get_gridspec() == gs: + axs += [ax] + for ax in axs: + axs = axs[1:] + # now compare ax to all the axs: + # + # If the subplotspecs have the same colnumXmax, then line + # up their right sides. If they have the same min, then + # line up their left sides (and vertical equivalents). + ss0 = ax.get_subplotspec() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rownum0min, colnum0min = divmod(ss0.num1, ncols) + rownum0max, colnum0max = divmod(ss0.num2, ncols) + for axc in axs: + ssc = axc.get_subplotspec() + # get the rownums and colnums + rownumCmin, colnumCmin = divmod(ssc.num1, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rownumCmax, colnumCmax = divmod(ssc.num2, ncols) + + # Horizontally align axes spines if they have the + # same min or max: + if colnum0min == colnumCmin: + # we want the _poslayoutboxes to line up on left + # side of the axes spines... + layoutbox.align([ax._poslayoutbox, + axc._poslayoutbox], + 'left') + if colnum0max == colnumCmax: + # line up right sides of _poslayoutbox + layoutbox.align([ax._poslayoutbox, + axc._poslayoutbox], + 'right') + # Vertically align axes spines if they have the + # same min or max: + if rownum0min == rownumCmin: + # line up top of _poslayoutbox + _log.debug('rownum0min == rownumCmin') + layoutbox.align([ax._poslayoutbox, axc._poslayoutbox], + 'top') + if rownum0max == rownumCmax: + # line up bottom of _poslayoutbox + _log.debug('rownum0max == rownumCmax') + layoutbox.align([ax._poslayoutbox, axc._poslayoutbox], + 'bottom') + + ########### + # Now we make the widths and heights similar. + # This allows vertically stacked subplots to have + # different sizes if they occupy different ammounts + # of the gridspec: i.e. + # gs = gridspec.GridSpec(3,1) + # ax1 = gs[0,:] + # ax2 = gs[1:,:] + # then drows0 = 1, and drowsC = 2, and ax2 + # should be at least twice as large as ax1. + # For height, this only needs to be done if the + # subplots share a column. For width if they + # share a row. + widthC = np.sum( + width_ratios[colnumCmin:(colnumCmax + 1)]) + width0 = np.sum( + width_ratios[colnum0min:(colnum0max + 1)]) + heightC = np.sum( + height_ratios[rownumCmin:(rownumCmax + 1)]) + height0 = np.sum( + height_ratios[rownum0min:(rownum0max + 1)]) + + drowsC = (rownumCmax - rownumCmin + 1) + drows0 = (rownum0max - rownum0min + 1) + dcolsC = (colnumCmax - colnumCmin + 1) + dcols0 = (colnum0max - colnum0min + 1) + + if drowsC > drows0: + if in_same_column(ss0, ssc): + ax._poslayoutbox.constrain_height_min( + axc._poslayoutbox.height * drows0 * height0 + / drowsC / heightC) + elif drowsC < drows0: + if in_same_column(ss0, ssc): + axc._poslayoutbox.constrain_height_min( + ax._poslayoutbox.height * drowsC * heightC + / drows0 / drowsC) + else: + ax._poslayoutbox.constrain_height( + axc._poslayoutbox.height * height0 / heightC) + # widths... + if dcolsC > dcols0: + if in_same_row(ss0, ssc): + ax._poslayoutbox.constrain_width_min( + axc._poslayoutbox.width * dcols0 * width0 + / dcolsC / widthC) + elif dcolsC < dcols0: + if in_same_row(ss0, ssc): + axc._poslayoutbox.constrain_width_min( + ax._poslayoutbox.width * dcolsC * widthC + / dcols0 / width0) + else: + ax._poslayoutbox.constrain_width( + axc._poslayoutbox.width * width0 / widthC) + + fig._layoutbox.constrained_layout_called += 1 + fig._layoutbox.update_variables() + # Now set the position of the axes... + for ax in fig.axes: + if ax._layoutbox is not None: + newpos = ax._poslayoutbox.get_rect() + _log.debug('newpos %r', newpos) + # Now set the new position. + # ax.set_position will zero out the layout for + # this axis, allowing users to hard-code the position, + # so this does the same w/o zeroing layout. + ax._set_position(newpos, which='original') + + +def arange_subplotspecs(gs, hspace=0, wspace=0): + """ + arange the subplotspec children of this gridspec, and then recursively + do the same of any gridspec children of those gridspecs... + """ + sschildren = [] + for child in gs.children: + if child._is_subplotspec_layoutbox(): + for child2 in child.children: + # check for gridspec children... + name = (child2.name).split('.')[-1][:-3] + if name == 'gridspec': + arange_subplotspecs(child2, hspace=hspace, wspace=wspace) + sschildren += [child] + # now arrange the subplots... + for child0 in sschildren: + ss0 = child0.artist + nrows, ncols = ss0.get_gridspec().get_geometry() + if ss0.num2 is None: + ss0.num2 = ss0.num1 + rowNum0min, colNum0min = divmod(ss0.num1, ncols) + rowNum0max, colNum0max = divmod(ss0.num2, ncols) + sschildren = sschildren[1:] + for childc in sschildren: + ssc = childc.artist + rowNumCmin, colNumCmin = divmod(ssc.num1, ncols) + if ssc.num2 is None: + ssc.num2 = ssc.num1 + rowNumCmax, colNumCmax = divmod(ssc.num2, ncols) + # OK, this tells us the relative layout of ax + # with axc + thepad = wspace / ncols + if colNum0max < colNumCmin: + layoutbox.hstack([ss0._layoutbox, ssc._layoutbox], + padding=thepad) + if colNumCmax < colNum0min: + layoutbox.hstack([ssc._layoutbox, ss0._layoutbox], + padding=thepad) + + #### + # vertical alignment + thepad = hspace / nrows + if rowNum0max < rowNumCmin: + layoutbox.vstack([ss0._layoutbox, + ssc._layoutbox], + padding=thepad) + if rowNumCmax < rowNum0min: + layoutbox.vstack([ssc._layoutbox, + ss0._layoutbox], + padding=thepad) + + +def layoutcolorbarsingle(ax, cax, shrink, aspect, location, pad=0.05): + """ + Do the layout for a colorbar, to not oeverly pollute colorbar.py + + `pad` is in fraction of the original axis size. + """ + axlb = ax._layoutbox + axpos = ax._poslayoutbox + axsslb = ax.get_subplotspec()._layoutbox + lb = layoutbox.LayoutBox( + parent=axsslb, + name=axsslb.name + '.cbar', + artist=cax) + + if location in ('left', 'right'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightwidth=False, + pos=True, + subplot=False, + artist=cax) + + if location == 'right': + # arrange to right of parent axis + layoutbox.hstack([axlb, lb], padding=pad * axlb.width, + strength='strong') + else: + layoutbox.hstack([lb, axlb], padding=pad * axlb.width) + # constrain the height and center... + layoutbox.match_heights([axpos, lbpos], [1, shrink]) + layoutbox.align([axpos, lbpos], 'v_center') + # set the width of the pos box + lbpos.constrain_width(shrink * axpos.height * (1/aspect), + strength='strong') + elif location in ('bottom', 'top'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightheight=True, + pos=True, + subplot=False, + artist=cax) + + if location == 'bottom': + layoutbox.vstack([axlb, lb], padding=pad * axlb.height) + else: + layoutbox.vstack([lb, axlb], padding=pad * axlb.height) + # constrain the height and center... + layoutbox.match_widths([axpos, lbpos], + [1, shrink], strength='strong') + layoutbox.align([axpos, lbpos], 'h_center') + # set the height of the pos box + lbpos.constrain_height(axpos.width * aspect * shrink, + strength='medium') + + return lb, lbpos + + +def layoutcolorbargridspec(parents, cax, shrink, aspect, location, pad=0.05): + """ + Do the layout for a colorbar, to not oeverly pollute colorbar.py + + `pad` is in fraction of the original axis size. + """ + + gs = parents[0].get_subplotspec().get_gridspec() + # parent layout box.... + gslb = gs._layoutbox + + lb = layoutbox.LayoutBox(parent=gslb.parent, + name=gslb.parent.name + '.cbar', + artist=cax) + if location in ('left', 'right'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightwidth=False, + pos=True, + subplot=False, + artist=cax) + + if location == 'right': + # arrange to right of the gridpec sibbling + layoutbox.hstack([gslb, lb], padding=pad * gslb.width, + strength='strong') + else: + layoutbox.hstack([lb, gslb], padding=pad * gslb.width) + # constrain the height and center... + # This isn't quite right. We'd like the colorbar + # pos to line up w/ the axes poss, not the size of the + # gs. + maxrow = -100000 + minrow = 1000000 + maxax = None + minax = None + + for ax in parents: + subspec = ax.get_subplotspec() + nrows, ncols = subspec.get_gridspec().get_geometry() + for num in [subspec.num1, subspec.num2]: + rownum1, colnum1 = divmod(subspec.num1, ncols) + if rownum1 > maxrow: + maxrow = rownum1 + maxax = ax + if rownum1 < minrow: + minrow = rownum1 + minax = ax + # invert the order so these are bottom to top: + maxposlb = minax._poslayoutbox + minposlb = maxax._poslayoutbox + # now we want the height of the colorbar pos to be + # set by the top and bottom of these poss + # bottom top + # b t + # h = (top-bottom)*shrink + # b = bottom + (top-bottom - h) / 2. + lbpos.constrain_height( + (maxposlb.top - minposlb.bottom) * + shrink, strength='strong') + lbpos.constrain_bottom( + (maxposlb.top - minposlb.bottom) * + (1 - shrink)/2 + minposlb.bottom, + strength='strong') + + # set the width of the pos box + lbpos.constrain_width(lbpos.height * (shrink / aspect), + strength='strong') + elif location in ('bottom', 'top'): + lbpos = layoutbox.LayoutBox( + parent=lb, + name=lb.name + '.pos', + tightheight=True, + pos=True, + subplot=False, + artist=cax) + + if location == 'bottom': + layoutbox.vstack([gslb, lb], padding=pad * gslb.width) + else: + layoutbox.vstack([lb, gslb], padding=pad * gslb.width) + + maxcol = -100000 + mincol = 1000000 + maxax = None + minax = None + + for ax in parents: + subspec = ax.get_subplotspec() + nrows, ncols = subspec.get_gridspec().get_geometry() + for num in [subspec.num1, subspec.num2]: + rownum1, colnum1 = divmod(subspec.num1, ncols) + if colnum1 > maxcol: + maxcol = colnum1 + maxax = ax + if rownum1 < mincol: + mincol = colnum1 + minax = ax + maxposlb = maxax._poslayoutbox + minposlb = minax._poslayoutbox + lbpos.constrain_width((maxposlb.right - minposlb.left) * + shrink) + lbpos.constrain_left( + (maxposlb.right - minposlb.left) * + (1-shrink)/2 + minposlb.left) + # set the height of the pos box + lbpos.constrain_height(lbpos.width * shrink * aspect, + strength='medium') + + return lb, lbpos diff --git a/lib/matplotlib/_layoutbox.py b/lib/matplotlib/_layoutbox.py new file mode 100644 index 000000000000..ad7c199de092 --- /dev/null +++ b/lib/matplotlib/_layoutbox.py @@ -0,0 +1,743 @@ +# -*- coding: utf-8 -*- +""" + +Conventions: + +"constrain_x" means to constrain the variable with either +another kiwisolver variable, or a float. i.e. `constrain_width(0.2)` +will set a constraint that the width has to be 0.2 and this constraint is +permanent - i.e. it will not be removed if it becomes obsolete. + +"edit_x" means to set x to a value (just a float), and that this value can +change. So `edit_width(0.2)` will set width to be 0.2, but `edit_width(0.3)` +will allow it to change to 0.3 later. Note that these values are still just +"suggestions" in `kiwisolver` parlance, and could be over-ridden by +other constrains. + +""" + +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import itertools +import kiwisolver as kiwi +import logging +import numpy as np +import warnings + +import matplotlib + +_log = logging.getLogger(__name__) + + +# renderers can be complicated +def get_renderer(fig): + if fig._cachedRenderer: + renderer = fig._cachedRenderer + else: + canvas = fig.canvas + if canvas and hasattr(canvas, "get_renderer"): + renderer = canvas.get_renderer() + else: + # not sure if this can happen + # seems to with PDF... + _log.info("constrained_layout : falling back to Agg renderer") + from matplotlib.backends.backend_agg import FigureCanvasAgg + canvas = FigureCanvasAgg(fig) + renderer = canvas.get_renderer() + + return renderer + + +class LayoutBox(object): + """ + Basic rectangle representation using kiwi solver variables + """ + + def __init__(self, parent=None, name='', tightwidth=False, + tightheight=False, artist=None, + lower_left=(0, 0), upper_right=(1, 1), pos=False, + subplot=False, h_pad=None, w_pad=None): + Variable = kiwi.Variable + self.parent = parent + self.name = name + sn = self.name + '_' + if parent is None: + self.solver = kiwi.Solver() + self.constrained_layout_called = 0 + else: + self.solver = parent.solver + self.constrained_layout_called = None + # parent wants to know about this child! + parent.add_child(self) + # keep track of artist associated w/ this layout. Can be none + self.artist = artist + # keep track if this box is supposed to be a pos that is constrained + # by the parent. + self.pos = pos + # keep track of whether we need to match this subplot up with others. + self.subplot = subplot + + # we need the str below for Py 2 which complains the string is unicode + self.top = Variable(str(sn + 'top')) + self.bottom = Variable(str(sn + 'bottom')) + self.left = Variable(str(sn + 'left')) + self.right = Variable(str(sn + 'right')) + + self.width = Variable(str(sn + 'width')) + self.height = Variable(str(sn + 'height')) + self.h_center = Variable(str(sn + 'h_center')) + self.v_center = Variable(str(sn + 'v_center')) + + self.min_width = Variable(str(sn + 'min_width')) + self.min_height = Variable(str(sn + 'min_height')) + self.pref_width = Variable(str(sn + 'pref_width')) + self.pref_height = Variable(str(sn + 'pref_height')) + # margis are only used for axes-position layout boxes. maybe should + # be a separate subclass: + self.left_margin = Variable(str(sn + 'left_margin')) + self.right_margin = Variable(str(sn + 'right_margin')) + self.bottom_margin = Variable(str(sn + 'bottom_margin')) + self.top_margin = Variable(str(sn + 'top_margin')) + # mins + self.left_margin_min = Variable(str(sn + 'left_margin_min')) + self.right_margin_min = Variable(str(sn + 'right_margin_min')) + self.bottom_margin_min = Variable(str(sn + 'bottom_margin_min')) + self.top_margin_min = Variable(str(sn + 'top_margin_min')) + + right, top = upper_right + left, bottom = lower_left + self.tightheight = tightheight + self.tightwidth = tightwidth + self.add_constraints() + self.children = [] + self.subplotspec = None + if self.pos: + self.constrain_margins() + self.h_pad = h_pad + self.w_pad = w_pad + + def constrain_margins(self): + """ + Only do this for pos. This sets a variable distance + margin between the position of the axes and the outer edge of + the axes. + + Margins are variable because they change with the fogure size. + + Margin minimums are set to make room for axes decorations. However, + the margins can be larger if we are mathicng the position size to + otehr axes. + """ + sol = self.solver + + # left + if not sol.hasEditVariable(self.left_margin_min): + sol.addEditVariable(self.left_margin_min, 'strong') + sol.suggestValue(self.left_margin_min, 0.0001) + c = (self.left_margin == self.left - self.parent.left) + self.solver.addConstraint(c | 'required') + c = (self.left_margin >= self.left_margin_min) + self.solver.addConstraint(c | 'strong') + + # right + if not sol.hasEditVariable(self.right_margin_min): + sol.addEditVariable(self.right_margin_min, 'strong') + sol.suggestValue(self.right_margin_min, 0.0001) + c = (self.right_margin == self.parent.right - self.right) + self.solver.addConstraint(c | 'required') + c = (self.right_margin >= self.right_margin_min) + self.solver.addConstraint(c | 'required') + # bottom + if not sol.hasEditVariable(self.bottom_margin_min): + sol.addEditVariable(self.bottom_margin_min, 'strong') + sol.suggestValue(self.bottom_margin_min, 0.0001) + c = (self.bottom_margin == self.bottom - self.parent.bottom) + self.solver.addConstraint(c | 'required') + c = (self.bottom_margin >= self.bottom_margin_min) + self.solver.addConstraint(c | 'required') + # top + if not sol.hasEditVariable(self.top_margin_min): + sol.addEditVariable(self.top_margin_min, 'strong') + sol.suggestValue(self.top_margin_min, 0.0001) + c = (self.top_margin == self.parent.top - self.top) + self.solver.addConstraint(c | 'required') + c = (self.top_margin >= self.top_margin_min) + self.solver.addConstraint(c | 'required') + + def add_child(self, child): + self.children += [child] + + def remove_child(self, child): + try: + self.children.remove(child) + except ValueError: + _log.info("Tried to remove child that doesn't belong to parent") + + def add_constraints(self): + sol = self.solver + # never let width and height go negative. + for i in [self.min_width, self.min_height]: + sol.addEditVariable(i, 1e9) + sol.suggestValue(i, 0.0) + # define relation ships between things thing width and right and left + self.hard_constraints() + # self.soft_constraints() + if self.parent: + self.parent_constrain() + # sol.updateVariables() + + def parent_constrain(self): + parent = self.parent + hc = [self.left >= parent.left, + self.bottom >= parent.bottom, + self.top <= parent.top, + self.right <= parent.right] + for c in hc: + self.solver.addConstraint(c | 'required') + + def hard_constraints(self): + hc = [self.width == self.right - self.left, + self.height == self.top - self.bottom, + self.h_center == (self.left + self.right) * 0.5, + self.v_center == (self.top + self.bottom) * 0.5, + self.width >= self.min_width, + self.height >= self.min_height] + for c in hc: + self.solver.addConstraint(c | 'required') + + def soft_constraints(self): + sol = self.solver + if self.tightwidth: + suggest = 0. + else: + suggest = 20. + c = (self.pref_width == suggest) + for i in c: + sol.addConstraint(i | 'required') + if self.tightheight: + suggest = 0. + else: + suggest = 20. + c = (self.pref_height == suggest) + for i in c: + sol.addConstraint(i | 'required') + + c = [(self.width >= suggest), + (self.height >= suggest)] + for i in c: + sol.addConstraint(i | 150000) + + def set_parent(self, parent): + ''' replace the parent of this with the new parent + ''' + self.parent = parent + self.parent_constrain() + + def constrain_geometry(self, left, bottom, right, top, strength='strong'): + hc = [self.left == left, + self.right == right, + self.bottom == bottom, + self.top == top] + for c in hc: + self.solver.addConstraint((c | strength)) + # self.solver.updateVariables() + + def constrain_same(self, other, strength='strong'): + """ + Make the layoutbox have same position as other layoutbox + """ + hc = [self.left == other.left, + self.right == other.right, + self.bottom == other.bottom, + self.top == other.top] + for c in hc: + self.solver.addConstraint((c | strength)) + + def constrain_left_margin(self, margin, strength='strong'): + c = (self.left == self.parent.left + margin) + self.solver.addConstraint(c | strength) + + def edit_left_margin_min(self, margin): + self.solver.suggestValue(self.left_margin_min, margin) + + def constrain_right_margin(self, margin, strength='strong'): + c = (self.right == self.parent.right - margin) + self.solver.addConstraint(c | strength) + + def edit_right_margin_min(self, margin): + self.solver.suggestValue(self.right_margin_min, margin) + + def constrain_bottom_margin(self, margin, strength='strong'): + c = (self.bottom == self.parent.bottom + margin) + self.solver.addConstraint(c | strength) + + def edit_bottom_margin_min(self, margin): + self.solver.suggestValue(self.bottom_margin_min, margin) + + def constrain_top_margin(self, margin, strength='strong'): + c = (self.top == self.parent.top - margin) + self.solver.addConstraint(c | strength) + + def edit_top_margin_min(self, margin): + self.solver.suggestValue(self.top_margin_min, margin) + + def get_rect(self): + return (self.left.value(), self.bottom.value(), + self.width.value(), self.height.value()) + + def update_variables(self): + ''' + Update *all* the variables that are part of the solver this LayoutBox + is created with + ''' + self.solver.updateVariables() + + def edit_height(self, height, strength='strong'): + ''' + Set the height of the layout box. + + This is done as an editable variable so that the value can change + due to resizing. + ''' + sol = self.solver + for i in [self.height]: + if not sol.hasEditVariable(i): + sol.addEditVariable(i, strength) + sol.suggestValue(self.height, height) + + def constrain_height(self, height, strength='strong'): + ''' + Constrain the height of the layout box. height is + either a float or a layoutbox.height. + ''' + c = (self.height == height) + self.solver.addConstraint(c | strength) + + def constrain_height_min(self, height, strength='strong'): + c = (self.height >= height) + self.solver.addConstraint(c | strength) + + def edit_width(self, width, strength='strong'): + sol = self.solver + for i in [self.width]: + if not sol.hasEditVariable(i): + sol.addEditVariable(i, strength) + sol.suggestValue(self.width, width) + + def constrain_width(self, width, strength='strong'): + ''' + Constrain the width of the layout box. `width` is + either a float or a layoutbox.width. + ''' + c = (self.width == width) + self.solver.addConstraint(c | strength) + + def constrain_width_min(self, width, strength='strong'): + c = (self.width >= width) + self.solver.addConstraint(c | strength) + + def constrain_left(self, left, strength='strong'): + c = (self.left == left) + self.solver.addConstraint(c | strength) + + def constrain_bottom(self, bottom, strength='strong'): + c = (self.bottom == bottom) + self.solver.addConstraint(c | strength) + + def constrain_right(self, right, strength='strong'): + c = (self.right == right) + self.solver.addConstraint(c | strength) + + def constrain_top(self, top, strength='strong'): + c = (self.top == top) + self.solver.addConstraint(c | strength) + + def _is_subplotspec_layoutbox(self): + ''' + Helper to check if this layoutbox is the layoutbox of a + subplotspec + ''' + name = (self.name).split('.')[-1][:-3] + if name == 'ss': + return True + return False + + def _is_gridspec_layoutbox(self): + ''' + Helper to check if this layoutbox is the layoutbox of a + gridspec + ''' + name = (self.name).split('.')[-1][:-3] + if name == 'gridspec': + return True + return False + + def find_child_subplots(self): + ''' + Find children of this layout box that are subplots. We want to line + poss up, and this is an easy way to find them all. + ''' + if self.subplot: + subplots = [self] + else: + subplots = [] + for child in self.children: + subplots += child.find_child_subplots() + return subplots + + def layout_from_subplotspec(self, subspec, + name='', artist=None, pos=False): + ''' Make a layout box from a subplotspec. The layout box is + constrained to be a fraction of the width/height of the parent, + and be a fraction of the parent width/height from the left/bottom + of the parent. Therefore the parent can move around and the + layout for the subplot spec should move with it. + + The parent is *usually* the gridspec that made the subplotspec.?? + ''' + lb = LayoutBox(parent=self, name=name, artist=artist, pos=pos) + gs = subspec.get_gridspec() + nrows, ncols = gs.get_geometry() + parent = self.parent + + # OK, now, we want to set the position of this subplotspec + # based on its subplotspec parameters. The new gridspec will inherit. + + # from gridspec. prob should be new method in gridspec + left = 0.0 + right = 1.0 + bottom = 0.0 + top = 1.0 + totWidth = right-left + totHeight = top-bottom + hspace = 0. + wspace = 0. + + # calculate accumulated heights of columns + cellH = totHeight / (nrows + hspace * (nrows - 1)) + sepH = hspace*cellH + + if gs._row_height_ratios is not None: + netHeight = cellH * nrows + tr = float(sum(gs._row_height_ratios)) + cellHeights = [netHeight*r/tr for r in gs._row_height_ratios] + else: + cellHeights = [cellH] * nrows + + sepHeights = [0] + ([sepH] * (nrows - 1)) + cellHs = np.add.accumulate(np.ravel( + list(zip(sepHeights, cellHeights)))) + + # calculate accumulated widths of rows + cellW = totWidth/(ncols + wspace * (ncols - 1)) + sepW = wspace*cellW + + if gs._col_width_ratios is not None: + netWidth = cellW * ncols + tr = float(sum(gs._col_width_ratios)) + cellWidths = [netWidth * r / tr for r in gs._col_width_ratios] + else: + cellWidths = [cellW] * ncols + + sepWidths = [0] + ([sepW] * (ncols - 1)) + cellWs = np.add.accumulate(np.ravel(list(zip(sepWidths, cellWidths)))) + + figTops = [top - cellHs[2 * rowNum] for rowNum in range(nrows)] + figBottoms = [top - cellHs[2 * rowNum + 1] for rowNum in range(nrows)] + figLefts = [left + cellWs[2 * colNum] for colNum in range(ncols)] + figRights = [left + cellWs[2 * colNum + 1] for colNum in range(ncols)] + + rowNum, colNum = divmod(subspec.num1, ncols) + figBottom = figBottoms[rowNum] + figTop = figTops[rowNum] + figLeft = figLefts[colNum] + figRight = figRights[colNum] + + if subspec.num2 is not None: + + rowNum2, colNum2 = divmod(subspec.num2, ncols) + figBottom2 = figBottoms[rowNum2] + figTop2 = figTops[rowNum2] + figLeft2 = figLefts[colNum2] + figRight2 = figRights[colNum2] + + figBottom = min(figBottom, figBottom2) + figLeft = min(figLeft, figLeft2) + figTop = max(figTop, figTop2) + figRight = max(figRight, figRight2) + # These are numbers relative to 0,0,1,1. Need to constrain + # relative to parent. + + width = figRight - figLeft + height = figTop - figBottom + parent = self.parent + cs = [self.left == parent.left + parent.width * figLeft, + self.bottom == parent.bottom + parent.height * figBottom, + self.width == parent.width * width, + self.height == parent.height * height] + for c in cs: + self.solver.addConstraint((c | 'required')) + + return lb + + def __repr__(self): + args = (self.name, self.left.value(), self.bottom.value(), + self.right.value(), self.top.value()) + return ('LayoutBox: %25s, (left: %1.3f) (bot: %1.3f) ' + '(right: %1.3f) (top: %1.3f) ') % args + + +# Utility functions that act on layoutboxes... +def hstack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from left to right. + `padding` is in figure-relative units. + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].right + padding <= boxes[i].left) + boxes[i].solver.addConstraint(c | strength) + + +def hpack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from left to right. + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].right + padding == boxes[i].left) + boxes[i].solver.addConstraint(c | strength) + + +def vstack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].bottom - padding >= boxes[i].top) + boxes[i].solver.addConstraint(c | strength) + + +def vpack(boxes, padding=0, strength='strong'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + for i in range(1, len(boxes)): + c = (boxes[i-1].bottom - padding >= boxes[i].top) + boxes[i].solver.addConstraint(c | strength) + + +def match_heights(boxes, height_ratios=None, strength='medium'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + if height_ratios is None: + height_ratios = np.ones(len(boxes)) + for i in range(1, len(boxes)): + c = (boxes[i-1].height == + boxes[i].height*height_ratios[i-1]/height_ratios[i]) + boxes[i].solver.addConstraint(c | strength) + + +def match_widths(boxes, width_ratios=None, strength='medium'): + ''' + Stack LayoutBox instances from top to bottom + ''' + + if width_ratios is None: + width_ratios = np.ones(len(boxes)) + for i in range(1, len(boxes)): + c = (boxes[i-1].width == + boxes[i].width*width_ratios[i-1]/width_ratios[i]) + boxes[i].solver.addConstraint(c | strength) + + +def vstackeq(boxes, padding=0, height_ratios=None): + vstack(boxes, padding=padding) + match_heights(boxes, height_ratios=height_ratios) + + +def hstackeq(boxes, padding=0, width_ratios=None): + hstack(boxes, padding=padding) + match_widths(boxes, width_ratios=width_ratios) + + +def align(boxes, attr, strength='strong'): + cons = [] + for box in boxes[1:]: + cons = (getattr(boxes[0], attr) == getattr(box, attr)) + boxes[0].solver.addConstraint(cons | strength) + + +def match_top_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.top-top0.top == box.top-topb.top) + box0.solver.addConstraint(c | 'strong') + + +def match_bottom_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.bottom-top0.bottom == box.bottom-topb.bottom) + box0.solver.addConstraint(c | 'strong') + + +def match_left_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.left-top0.left == box.left-topb.left) + box0.solver.addConstraint(c | 'strong') + + +def match_right_margins(boxes, levels=1): + box0 = boxes[0] + top0 = box0 + for n in range(levels): + top0 = top0.parent + for box in boxes[1:]: + topb = box + for n in range(levels): + topb = topb.parent + c = (box0.right-top0.right == box.right-topb.right) + box0.solver.addConstraint(c | 'strong') + + +def match_width_margins(boxes, levels=1): + match_left_margins(boxes, levels=levels) + match_right_margins(boxes, levels=levels) + + +def match_height_margins(boxes, levels=1): + match_top_margins(boxes, levels=levels) + match_bottom_margins(boxes, levels=levels) + + +def match_margins(boxes, levels=1): + match_width_margins(boxes, levels=levels) + match_height_margins(boxes, levels=levels) + + +_layoutboxobjnum = itertools.count() + + +def seq_id(): + ''' + Generate a short sequential id for layoutbox objects... + ''' + + global _layoutboxobjnum + + return ('%03d' % (next(_layoutboxobjnum))) + + +def print_children(lb): + ''' + Print the children of the layoutbox + ''' + print(lb) + for child in lb.children: + print_children(child) + + +def nonetree(lb): + ''' + Make all elements in this tree none... This signals not to do any more + layout. + ''' + if lb is not None: + if lb.parent is None: + # Clear the solver. Hopefully this garbage collects. + lb.solver.reset() + nonechildren(lb) + else: + nonetree(lb.parent) + + +def nonechildren(lb): + for child in lb.children: + nonechildren(child) + lb.artist._layoutbox = None + lb = None + + +def print_tree(lb): + ''' + Print the tree of layoutboxes + ''' + + if lb.parent is None: + print('LayoutBox Tree\n') + print('==============\n') + print_children(lb) + print('\n') + else: + print_tree(lb.parent) + + +def plot_children(fig, box, level=0, printit=True): + ''' + Simple plotting to show where boxes are + ''' + import matplotlib + import matplotlib.pyplot as plt + + if isinstance(fig, matplotlib.figure.Figure): + ax = fig.add_axes([0., 0., 1., 1.]) + ax.set_facecolor([1., 1., 1., 0.7]) + ax.set_alpha(0.3) + fig.draw(fig.canvas.get_renderer()) + else: + ax = fig + + import matplotlib.patches as patches + colors = plt.rcParams["axes.prop_cycle"].by_key()["color"] + if printit: + print("Level:", level) + for child in box.children: + rect = child.get_rect() + if printit: + print(child) + ax.add_patch( + patches.Rectangle( + (child.left.value(), child.bottom.value()), # (x,y) + child.width.value(), # width + child.height.value(), # height + fc='none', + alpha=0.8, + ec=colors[level] + ) + ) + if level > 0: + name = child.name.split('.')[-1] + if level % 2 == 0: + ax.text(child.left.value(), child.bottom.value(), name, + size=12-level, color=colors[level]) + else: + ax.text(child.right.value(), child.top.value(), name, + ha='right', va='top', size=12-level, + color=colors[level]) + + plot_children(ax, child, level=level+1, printit=printit) diff --git a/lib/matplotlib/axes/_axes.py b/lib/matplotlib/axes/_axes.py index d61f6dfe809f..76e1798b78f4 100644 --- a/lib/matplotlib/axes/_axes.py +++ b/lib/matplotlib/axes/_axes.py @@ -1312,8 +1312,8 @@ def plot(self, *args, **kwargs): The following two calls yield identical results: >>> plot(x, y, 'go--', linewidth=2, markersize=12) - >>> plot(x, y, color='green', marker='o', linestyle='dashed', \ -linewidth=2, markersize=12) + >>> plot(x, y, color='green', marker='o', linestyle='dashed', + linewidth=2, markersize=12) When conflicting with *fmt*, keyword arguments take precedence. @@ -1990,7 +1990,7 @@ def bar(self, *args, **kwargs): bar(x, height, width, *, align='center', **kwargs) bar(x, height, width, bottom, *, align='center', **kwargs) - The bars are positioned at *x* with the given *align*\ ment. Their + The bars are positioned at *x* with the given *align* ment. Their dimensions are given by *width* and *height*. The vertical baseline is *bottom* (default 0). @@ -2307,7 +2307,7 @@ def barh(self, *args, **kwargs): bar(y, width, height, *, align='center', **kwargs) bar(y, width, height, left, *, align='center', **kwargs) - The bars are positioned at *y* with the given *align*\ ment. Their + The bars are positioned at *y* with the given *align*. Their dimensions are given by *width* and *height*. The horizontal baseline is *left* (default 0). diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 291a8b6c1eaf..bb70972b6c51 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -560,11 +560,17 @@ def __init__(self, fig, rect, right=rcParams['ytick.right'] and rcParams['ytick.major.right'], which='major') + self._layoutbox = None + self._poslayoutbox = None + def __getstate__(self): # The renderer should be re-created by the figure, and then cached at # that point. state = super(_AxesBase, self).__getstate__() state['_cachedRenderer'] = None + state.pop('_layoutbox') + state.pop('_poslayoutbox') + return state def __setstate__(self, state): @@ -576,6 +582,8 @@ def __setstate__(self, state): for artist in container: artist._remove_method = container.remove self._stale = True + self._layoutbox = None + self._poslayoutbox = None def get_window_extent(self, *args, **kwargs): """ @@ -869,6 +877,19 @@ def set_position(self, pos, which='both'): which : ['both' | 'active' | 'original'], optional Determines which position variables to change. + """ + self._set_position(pos, which='both') + # because this is being called externally to the library we + # zero the constrained layout parts. + self._layoutbox = None + self._poslayoutbox = None + + def _set_position(self, pos, which='both'): + """ + private version of set_position. Call this internally + to get the same functionality of `get_position`, but not + to take the axis out of the constrained_layout + hierarchy. """ if not isinstance(pos, mtransforms.BboxBase): pos = mtransforms.Bbox.from_bounds(*pos) @@ -1519,7 +1540,7 @@ def apply_aspect(self, position=None): aspect_scale_mode = "linear" if aspect == 'auto': - self.set_position(position, which='active') + self._set_position(position, which='active') return if aspect == 'equal': @@ -1539,12 +1560,12 @@ def apply_aspect(self, position=None): box_aspect = A * self.get_data_ratio() pb = position.frozen() pb1 = pb.shrunk_to_aspect(box_aspect, pb, fig_aspect) - self.set_position(pb1.anchored(self.get_anchor(), pb), 'active') + self._set_position(pb1.anchored(self.get_anchor(), pb), 'active') return # reset active to original in case it had been changed # by prior use of 'box' - self.set_position(position, which='active') + self._set_position(position, which='active') xmin, xmax = self.get_xbound() ymin, ymax = self.get_ybound() @@ -4148,10 +4169,25 @@ def _make_twin_axes(self, *kl, **kwargs): if 'sharex' in kwargs and 'sharey' in kwargs: raise ValueError("Twinned Axes may share only one axis.") ax2 = self.figure.add_axes(self.get_position(True), *kl, **kwargs) - ## do not touch every thing shared, just this and it's twin. + self.set_adjustable('datalim') ax2.set_adjustable('datalim') self._twinned_axes.join(self, ax2) + # check if we have a layoutbox. If so, then set this axis + # gets the same poslayoutbox and layoutbox... + if self._layoutbox is not None: + name = self._layoutbox.name + 'twin' + layoutbox.seq_id() + ax2._layoutbox = layoutbox.LayoutBox( + parent=self._subplotspec._layoutbox, + name=name, + artist=ax2) + ax2._poslayoutbox = layoutbox.LayoutBox( + parent=ax2._layoutbox, + name=ax2._layoutbox.name+'.pos', + pos=True, subplot=True, artist=ax2) + # make the layout boxes be the same + ax2._layoutbox.constrain_same(self._layoutbox) + ax2._poslayoutbox.constrain_same(self._poslayoutbox) return ax2 def twinx(self): diff --git a/lib/matplotlib/axes/_subplots.py b/lib/matplotlib/axes/_subplots.py index 9c033c728889..f2774cb70e78 100644 --- a/lib/matplotlib/axes/_subplots.py +++ b/lib/matplotlib/axes/_subplots.py @@ -9,6 +9,11 @@ import matplotlib.artist as martist from matplotlib.axes._axes import Axes +import matplotlib._layoutbox as layoutbox + +import warnings +from matplotlib.cbook import mplDeprecation + class SubplotBase(object): """ @@ -27,7 +32,6 @@ def __init__(self, fig, *args, **kwargs): being created. *plotNum* starts at 1 in the upper left corner and increases to the right. - If *numRows* <= *numCols* <= *plotNum* < 10, *args* can be the decimal integer *numRows* * 100 + *numCols* * 10 + *plotNum*. """ @@ -42,10 +46,10 @@ def __init__(self, fig, *args, **kwargs): s = str(int(args[0])) rows, cols, num = map(int, s) except ValueError: - raise ValueError( - 'Single argument to subplot must be a 3-digit ' - 'integer') - self._subplotspec = GridSpec(rows, cols)[num - 1] + raise ValueError('Single argument to subplot must be ' + 'a 3-digit integer') + self._subplotspec = GridSpec(rows, cols, + figure=self.figure)[num - 1] # num - 1 for converting from MATLAB to python indexing elif len(args) == 3: rows, cols, num = args @@ -53,13 +57,16 @@ def __init__(self, fig, *args, **kwargs): cols = int(cols) if isinstance(num, tuple) and len(num) == 2: num = [int(n) for n in num] - self._subplotspec = GridSpec(rows, cols)[num[0] - 1:num[1]] + self._subplotspec = GridSpec( + rows, cols, + figure=self.figure)[(num[0] - 1):num[1]] else: if num < 1 or num > rows*cols: raise ValueError( - "num must be 1 <= num <= {maxn}, not {num}".format( - maxn=rows*cols, num=num)) - self._subplotspec = GridSpec(rows, cols)[int(num) - 1] + ("num must be 1 <= num <= {maxn}, not {num}" + ).format(maxn=rows*cols, num=num)) + self._subplotspec = GridSpec( + rows, cols, figure=self.figure)[int(num) - 1] # num - 1 for converting from MATLAB to python indexing else: raise ValueError('Illegal argument(s) to subplot: %s' % (args,)) @@ -68,6 +75,23 @@ def __init__(self, fig, *args, **kwargs): # _axes_class is set in the subplot_class_factory self._axes_class.__init__(self, fig, self.figbox, **kwargs) + # add a layout box to this, for both the full axis, and the poss + # of the axis. We need both because the axes may become smaller + # due to parasitic axes and hence no longer fill the subplotspec. + if self._subplotspec._layoutbox is None: + self._layoutbox = None + self._poslayoutbox = None + else: + name = self._subplotspec._layoutbox.name + '.ax' + name = name + layoutbox.seq_id() + self._layoutbox = layoutbox.LayoutBox( + parent=self._subplotspec._layoutbox, + name=name, + artist=self) + self._poslayoutbox = layoutbox.LayoutBox( + parent=self._layoutbox, + name=self._layoutbox.name+'.pos', + pos=True, subplot=True, artist=self) def __reduce__(self): # get the first axes class which does not @@ -91,7 +115,8 @@ def get_geometry(self): # COVERAGE NOTE: Never used internally or from examples def change_geometry(self, numrows, numcols, num): """change subplot geometry, e.g., from 1,1,1 to 2,2,3""" - self._subplotspec = GridSpec(numrows, numcols)[num - 1] + self._subplotspec = GridSpec(numrows, numcols, + figure=self.figure)[num - 1] self.update_params() self.set_position(self.figbox) diff --git a/lib/matplotlib/backend_bases.py b/lib/matplotlib/backend_bases.py index 6bd359511ea7..ebe5920df68d 100644 --- a/lib/matplotlib/backend_bases.py +++ b/lib/matplotlib/backend_bases.py @@ -3159,8 +3159,8 @@ def _update_view(self): for ax, (view, (pos_orig, pos_active)) in items: ax._set_view(view) # Restore both the original and modified positions - ax.set_position(pos_orig, 'original') - ax.set_position(pos_active, 'active') + ax._set_position(pos_orig, 'original') + ax._set_position(pos_active, 'active') self.canvas.draw_idle() def save_figure(self, *args): diff --git a/lib/matplotlib/backend_tools.py b/lib/matplotlib/backend_tools.py index 26a561b7e63f..6639763e417d 100644 --- a/lib/matplotlib/backend_tools.py +++ b/lib/matplotlib/backend_tools.py @@ -622,8 +622,8 @@ def update_view(self): if set(all_axes).issubset(pos): for a in all_axes: # Restore both the original and modified positions - a.set_position(pos[a][0], 'original') - a.set_position(pos[a][1], 'active') + a._set_position(pos[a][0], 'original') + a._set_position(pos[a][1], 'active') self.figure.canvas.draw_idle() diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py index 0ae5771a80fc..8dfd5dd532ba 100644 --- a/lib/matplotlib/colorbar.py +++ b/lib/matplotlib/colorbar.py @@ -40,7 +40,8 @@ import matplotlib.path as mpath import matplotlib.ticker as ticker import matplotlib.transforms as mtransforms - +import matplotlib._layoutbox as layoutbox +import matplotlib._constrained_layout as constrained_layout from matplotlib import docstring make_axes_kw_doc = ''' @@ -532,9 +533,10 @@ def _add_solids(self, X, Y, C): self.dividers = None if self.drawedges: linewidths = (0.5 * mpl.rcParams['axes.linewidth'],) - self.dividers = collections.LineCollection(self._edges(X, Y), - colors=(mpl.rcParams['axes.edgecolor'],), - linewidths=linewidths) + self.dividers = collections.LineCollection( + self._edges(X, Y), + colors=(mpl.rcParams['axes.edgecolor'],), + linewidths=linewidths) self.ax.add_collection(self.dividers) elif len(self._y) >= self.n_rasterize: self.solids.set_rasterized(True) @@ -1049,7 +1051,7 @@ def remove(self): except AttributeError: # use_gridspec was False pos = ax.get_position(original=True) - ax.set_position(pos) + ax._set_position(pos) else: # use_gridspec was True ax.set_subplotspec(subplotspec) @@ -1124,13 +1126,21 @@ def make_axes(parents, location=None, orientation=None, fraction=0.15, anchor = kw.pop('anchor', loc_settings['anchor']) parent_anchor = kw.pop('panchor', loc_settings['panchor']) - pad = kw.pop('pad', loc_settings['pad']) # turn parents into a list if it is not already. We do this w/ np # because `plt.subplots` can return an ndarray and is natural to # pass to `colorbar`. parents = np.atleast_1d(parents).ravel() + # check if using constrained_layout: + gs = parents[0].get_subplotspec().get_gridspec() + using_constrained_layout = (gs._layoutbox is not None) + # defaults are not appropriate for constrained_layout: + pad0 = loc_settings['pad'] + if using_constrained_layout: + pad0 = 0.02 + pad = kw.pop('pad', pad0) + fig = parents[0].get_figure() if not all(fig is ax.get_figure() for ax in parents): raise ValueError('Unable to create a colorbar axes as not all ' @@ -1165,12 +1175,37 @@ def make_axes(parents, location=None, orientation=None, fraction=0.15, for ax in parents: new_posn = shrinking_trans.transform(ax.get_position()) new_posn = mtransforms.Bbox(new_posn) - ax.set_position(new_posn) + ax._set_position(new_posn) if parent_anchor is not False: ax.set_anchor(parent_anchor) cax = fig.add_axes(pbcb) - cax.set_aspect(aspect, anchor=anchor, adjustable='box') + + # OK, now make a layoutbox for the cb axis. Later, we will use this + # to make the colorbar fit nicely. + if not using_constrained_layout: + # no layout boxes: + lb = None + lbpos = None + # and we need to set the aspect ratio by hand... + cax.set_aspect(aspect, anchor=anchor, adjustable='box') + else: + if len(parents) == 1: + # this is a single axis... + ax = parents[0] + lb, lbpos = constrained_layout.layoutcolorbarsingle( + ax, cax, shrink, aspect, location, pad=pad) + else: # there is more than one parent, so lets use gridspec + # the colorbar will be a sibling of this gridspec, so the + # parent is the same parent as the gridspec. Either the figure, + # or a subplotspec. + + lb, lbpos = constrained_layout.layoutcolorbargridspec( + parents, cax, shrink, aspect, location, pad) + + cax._layoutbox = lb + cax._poslayoutbox = lbpos + return cax, kw @@ -1222,6 +1257,11 @@ def make_axes_gridspec(parent, **kw): pad_s = (1 - shrink) * 0.5 wh_ratios = [pad_s, shrink, pad_s] + # we need to none the tree of layoutboxes because + # constrained_layout can't remove and replace the tree + # hierarchy w/o a seg fault. + gs = parent.get_subplotspec().get_gridspec() + layoutbox.nonetree(gs._layoutbox) gs_from_subplotspec = gridspec.GridSpecFromSubplotSpec if orientation == 'vertical': pad = kw.pop('pad', 0.05) @@ -1253,7 +1293,7 @@ def make_axes_gridspec(parent, **kw): parent.set_subplotspec(gs[0]) parent.update_params() - parent.set_position(parent.figbox) + parent._set_position(parent.figbox) parent.set_anchor(panchor) fig = parent.get_figure() @@ -1329,7 +1369,8 @@ def _add_solids(self, X, Y, C): self.dividers = None if self.drawedges: - self.dividers = collections.LineCollection(self._edges(X, Y), + self.dividers = collections.LineCollection( + self._edges(X, Y), colors=(mpl.rcParams['axes.edgecolor'],), linewidths=(0.5 * mpl.rcParams['axes.linewidth'],)) self.ax.add_collection(self.dividers) diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index 216353a0c71a..7e21f3ef8742 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -47,6 +47,7 @@ from matplotlib.text import Text, _process_text_args from matplotlib.transforms import (Affine2D, Bbox, BboxTransformTo, TransformedBbox) +import matplotlib._layoutbox as layoutbox from matplotlib.backend_bases import NonGuiException _log = logging.getLogger(__name__) @@ -291,6 +292,8 @@ def __init__(self, frameon=None, # whether or not to draw the figure frame subplotpars=None, # default to rc tight_layout=None, # default to rc figure.autolayout + constrained_layout=None, # default to rc + #figure.constrained_layout.use ): """ Parameters @@ -323,6 +326,15 @@ def __init__(self, ``pad``, ``w_pad``, ``h_pad``, and ``rect``, the default `~.tight_layout` paddings will be overridden. Defaults to rc ``figure.autolayout``. + + constrained_layout : bool + If ``True`` use constrained layout to adjust positioning of plot + elements. Like ``tight_layout``, but designed to be more + flexible. See + :doc:`/tutorials/intermediate/constrainedlayout_guide` + for examples. (Note: does not work with :meth:`.subplot` or + :meth:`.subplot2grid`.) + Defaults to rc ``figure.constrained_layout.use``. """ Artist.__init__(self) # remove the non-figure artist _axes property @@ -374,6 +386,11 @@ def __init__(self, subplotpars = SubplotParams() self.subplotpars = subplotpars + # constrained_layout: + self._layoutbox = None + # set in set_constrained_layout_pads() + self.set_constrained_layout(constrained_layout) + self.set_tight_layout(tight_layout) self._axstack = AxesStack() # track all figure axes and current axes @@ -496,6 +513,106 @@ def set_tight_layout(self, tight): self._tight_parameters = tight if isinstance(tight, dict) else {} self.stale = True + def get_constrained_layout(self): + """ + Return a boolean: True means constrained layout is being used. + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + return self._constrained + + def set_constrained_layout(self, constrained): + """ + Set whether ``constrained_layout`` is used upon drawing. If None, + the rcParams['figure.constrained_layout.use'] value will be used. + + When providing a dict containing the keys `w_pad`, `h_pad` + the default ``constrained_layout`` paddings will be + overridden. These pads are in inches and default to 3.0/72.0. + ``w_pad`` is the width padding and ``h_pad`` is the height padding. + + ACCEPTS: [True | False | dict | None ] + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + self._constrained_layout_pads = dict() + self._constrained_layout_pads['w_pad'] = None + self._constrained_layout_pads['h_pad'] = None + self._constrained_layout_pads['wspace'] = None + self._constrained_layout_pads['hspace'] = None + if constrained is None: + constrained = rcParams['figure.constrained_layout.use'] + self._constrained = bool(constrained) + if isinstance(constrained, dict): + self.set_constrained_layout_pads(**constrained) + else: + self.set_constrained_layout_pads() + + self.stale = True + + def set_constrained_layout_pads(self, **kwargs): + """ + Set padding for ``constrained_layout``. Note the kwargs can be passed + as a dictionary ``fig.set_constrained_layout(**paddict)``. + + Parameters: + ----------- + + w_pad : scalar + Width padding in inches. This is the pad around axes + and is meant to make sure there is enough room for fonts to + look good. Defaults to 3 pts = 0.04167 inches + + h_pad : scalar + Height padding in inches. Defaults to 3 pts. + + wspace: scalar + Width padding between subplots, expressed as a fraction of the + subplot width. The total padding ends up being w_pad + wspace. + + hspace: scalar + Height padding between subplots, expressed as a fraction of the + subplot width. The total padding ends up being h_pad + hspace. + + See :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + + todo = ['w_pad', 'h_pad', 'wspace', 'hspace'] + for td in todo: + if td in kwargs and kwargs[td] is not None: + self._constrained_layout_pads[td] = kwargs[td] + else: + self._constrained_layout_pads[td] = ( + rcParams['figure.constrained_layout.' + td]) + + def get_constrained_layout_pads(self, relative=False): + """ + Get padding for ``constrained_layout``. + + Returns a list of `w_pad, h_pad` in inches and + `wspace` and `hspace` as fractions of the subplot. + + Parameter: + ----------- + + relative : boolean + If `True`, then convert from inches to figure relative. + + See: :doc:`/tutorials/intermediate/constrainedlayout_guide` + """ + w_pad = self._constrained_layout_pads['w_pad'] + h_pad = self._constrained_layout_pads['h_pad'] + wspace = self._constrained_layout_pads['wspace'] + hspace = self._constrained_layout_pads['hspace'] + + if relative and ((w_pad is not None) or (h_pad is not None)): + renderer0 = layoutbox.get_renderer(self) + dpi = renderer0.dpi + w_pad = w_pad * dpi / renderer0.width + h_pad = h_pad * dpi / renderer0.height + + return w_pad, h_pad, wspace, hspace + def autofmt_xdate(self, bottom=0.2, rotation=30, ha='right', which=None): """ Date ticklabels often overlap, so it is useful to rotate them @@ -623,7 +740,19 @@ def suptitle(self, t, **kwargs): sup.remove() else: self._suptitle = sup - + if self._layoutbox is not None: + # assign a layout box to the suptitle... + figlb = self._layoutbox + self._suptitle._layoutbox = layoutbox.LayoutBox( + parent=figlb, + name=figlb.name+'.suptitle') + for child in figlb.children: + if not (child == self._suptitle._layoutbox): + w_pad, h_pad, wspace, hspace = \ + self.get_constrained_layout_pads( + relative=True) + layoutbox.vstack([self._suptitle._layoutbox, child], + padding=h_pad*2., strength='required') self.stale = True return self._suptitle @@ -886,7 +1015,7 @@ def _make_key(self, *args, **kwargs): 'make a hashable key out of args and kwargs' def fixitems(items): - #items may have arrays and lists in them, so convert them + # items may have arrays and lists in them, so convert them # to tuples for the key ret = [] for k, v in items: @@ -1110,7 +1239,6 @@ def add_subplot(self, *args, **kwargs): self._axstack.remove(ax) a = subplot_class_factory(projection_class)(self, *args, **kwargs) - self._axstack.add(key, a) self.sca(a) a._remove_method = self.__remove_ax @@ -1208,7 +1336,11 @@ def subplots(self, nrows=1, ncols=1, sharex=False, sharey=False, if gridspec_kw is None: gridspec_kw = {} - gs = GridSpec(nrows, ncols, **gridspec_kw) + if self.get_constrained_layout(): + gs = GridSpec(nrows, ncols, figure=self, **gridspec_kw) + else: + # this should turn constrained_layout off if we don't want it + gs = GridSpec(nrows, ncols, figure=None, **gridspec_kw) # Create array to hold all axes. axarr = np.empty((nrows, ncols), dtype=object) @@ -1323,9 +1455,15 @@ def draw(self, renderer): try: renderer.open_group('figure') + if self.get_constrained_layout() and self.axes: + if True: + self.execute_constrained_layout(renderer) + else: + pass if self.get_tight_layout() and self.axes: try: - self.tight_layout(renderer, **self._tight_parameters) + self.tight_layout(renderer, + **self._tight_parameters) except ValueError: pass # ValueError can occur when resizing a window. @@ -1711,6 +1849,8 @@ def _gci(self): def __getstate__(self): state = super(Figure, self).__getstate__() + + # print('\n\n\nStarting pickle') # the axobservers cannot currently be pickled. # Additionally, the canvas cannot currently be pickled, but this has # the benefit of meaning that a figure can be detached from one canvas, @@ -1731,6 +1871,14 @@ def __getstate__(self): matplotlib._pylab_helpers.Gcf.figs)): state['_restore_to_pylab'] = True + # set all the layoutbox information to None. kiwisolver + # objects can't be pickeled, so we lose the layout options + # at this point. + state.pop('_layoutbox', None) + # suptitle: + if self._suptitle is not None: + self._suptitle._layoutbox = None + return state def __setstate__(self, state): @@ -1748,6 +1896,7 @@ def __setstate__(self, state): # re-initialise some of the unstored state information self._axobservers = [] self.canvas = None + self._layoutbox = None if restore_to_pylab: # lazy import to avoid circularity @@ -1911,7 +2060,8 @@ def colorbar(self, mappable, cax=None, ax=None, use_gridspec=True, **kw): current_ax = self.gca() if cax is None: - if use_gridspec and isinstance(ax, SubplotBase): + if use_gridspec and isinstance(ax, SubplotBase) \ + and (not self.get_constrained_layout()): cax, kw = cbar.make_axes_gridspec(ax, **kw) else: cax, kw = cbar.make_axes(ax, **kw) @@ -2052,6 +2202,45 @@ def get_tightbbox(self, renderer): return bbox_inches + def init_layoutbox(self): + """ + initilaize the layoutbox for use in constrained_layout. + """ + if self._layoutbox is None: + self._layoutbox = layoutbox.LayoutBox(parent=None, + name='figlb', + artist=self) + self._layoutbox.constrain_geometry(0., 0., 1., 1.) + + def execute_constrained_layout(self, renderer=None): + """ + Use ``layoutbox`` to determine pos positions within axes. + + See also set_constrained_layout_pads + """ + + from matplotlib._constrained_layout import (do_constrained_layout) + + _log.debug('Executing constrainedlayout') + if self._layoutbox is None: + warnings.warn("Calling figure.constrained_layout, but figure " + "not setup to do constrained layout. " + " You either called GridSpec without the " + "fig keyword, you are using plt.subplot, " + "or you need to call figure or subplots" + "with the constrained_layout=True kwarg.") + return + w_pad, h_pad, wspace, hspace = self.get_constrained_layout_pads() + # convert to unit-relative lengths + + fig = self + width, height = fig.get_size_inches() + w_pad = w_pad / width + h_pad = h_pad / height + if renderer is None: + renderer = layoutbox.get_renderer(fig) + do_constrained_layout(fig, renderer, h_pad, w_pad, hspace, wspace) + def tight_layout(self, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None): """ diff --git a/lib/matplotlib/gridspec.py b/lib/matplotlib/gridspec.py index 8bd46c1a7d5f..910d66e526df 100644 --- a/lib/matplotlib/gridspec.py +++ b/lib/matplotlib/gridspec.py @@ -18,6 +18,7 @@ import six import copy +import logging import warnings import numpy as np @@ -25,6 +26,10 @@ import matplotlib as mpl from matplotlib import _pylab_helpers, tight_layout, rcParams from matplotlib.transforms import Bbox +import matplotlib._layoutbox as layoutbox +from matplotlib.cbook import mplDeprecation + +_log = logging.getLogger(__name__) class GridSpecBase(object): @@ -47,7 +52,7 @@ def get_geometry(self): 'get the geometry of the grid, e.g., 2,3' return self._nrows, self._ncols - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): pass def new_subplotspec(self, loc, rowspan=1, colspan=1): @@ -76,20 +81,31 @@ def set_height_ratios(self, height_ratios): def get_height_ratios(self): return self._row_height_ratios - def get_grid_positions(self, fig): + def get_grid_positions(self, fig, raw=False): """ return lists of bottom and top position of rows, left and right positions of columns. + + If raw=True, then these are all in units relative to the container + with no margins. (used for constrained_layout). """ nrows, ncols = self.get_geometry() - subplot_params = self.get_subplot_params(fig) - left = subplot_params.left - right = subplot_params.right - bottom = subplot_params.bottom - top = subplot_params.top - wspace = subplot_params.wspace - hspace = subplot_params.hspace + if raw: + left = 0. + right = 1. + bottom = 0. + top = 1. + wspace = 0. + hspace = 0. + else: + subplot_params = self.get_subplot_params(fig) + left = subplot_params.left + right = subplot_params.right + bottom = subplot_params.bottom + top = subplot_params.top + wspace = subplot_params.wspace + hspace = subplot_params.hspace tot_width = right - left tot_height = top - bottom @@ -156,7 +172,7 @@ class GridSpec(GridSpecBase): as the SubplotParams. """ - def __init__(self, nrows, ncols, + def __init__(self, nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None): @@ -183,12 +199,41 @@ def __init__(self, nrows, ncols, self.top = top self.wspace = wspace self.hspace = hspace + self.figure = figure + GridSpecBase.__init__(self, nrows, ncols, width_ratios=width_ratios, height_ratios=height_ratios) + if (self.figure is None) or not self.figure.get_constrained_layout(): + _log.info("GridSpec must be called with the fig keyword if " + "constrained_layout is used") + self._layoutbox = None + else: + self.figure.init_layoutbox() + self._layoutbox = layoutbox.LayoutBox( + parent=self.figure._layoutbox, + name='gridspec' + layoutbox.seq_id(), + artist=self) + # by default the layoutbox for a gridsepc will fill a figure. + # but this can change below if the gridspec is created from a + # subplotspec. (GridSpecFromSubplotSpec) + _AllowedKeys = ["left", "bottom", "right", "top", "wspace", "hspace"] + def __getstate__(self): + state = self.__dict__ + try: + state.pop('_layoutbox') + except KeyError: + pass + return state + + def __setstate__(self, state): + self.__dict__ = state + # layoutboxes don't survive pickling... + self._layoutbox = None + def update(self, **kwargs): """ Update the current values. If any kwarg is None, default to @@ -209,27 +254,33 @@ def update(self, **kwargs): if isinstance(ax._sharex, mpl.axes.SubplotBase): if ax._sharex.get_subplotspec().get_gridspec() == self: ax._sharex.update_params() - ax.set_position(ax._sharex.figbox) + ax._set_position(ax._sharex.figbox) elif isinstance(ax._sharey, mpl.axes.SubplotBase): if ax._sharey.get_subplotspec().get_gridspec() == self: ax._sharey.update_params() - ax.set_position(ax._sharey.figbox) + ax._set_position(ax._sharey.figbox) else: ss = ax.get_subplotspec().get_topmost_subplotspec() if ss.get_gridspec() == self: ax.update_params() - ax.set_position(ax.figbox) + ax._set_position(ax.figbox) - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): """ Return a dictionary of subplot layout parameters. The default parameters are from rcParams unless a figure attribute is set. """ - if fig is None: + if fig is not None: + warnings.warn("the 'fig' kwarg is deprecated " + "use 'figure' instead", mplDeprecation) + if figure is None: + figure = fig + + if figure is None: kw = {k: rcParams["figure.subplot."+k] for k in self._AllowedKeys} subplotpars = mpl.figure.SubplotParams(**kw) else: - subplotpars = copy.copy(fig.subplotpars) + subplotpars = copy.copy(figure.subplotpars) update_kw = {k: getattr(self, k) for k in self._AllowedKeys} subplotpars.update(**update_kw) @@ -239,7 +290,7 @@ def get_subplot_params(self, fig=None): def locally_modified_subplot_params(self): return [k for k in self._AllowedKeys if getattr(self, k)] - def tight_layout(self, fig, renderer=None, + def tight_layout(self, figure, renderer=None, pad=1.08, h_pad=None, w_pad=None, rect=None): """ Adjust subplot parameters to give specified padding. @@ -260,16 +311,16 @@ def tight_layout(self, fig, renderer=None, """ subplotspec_list = tight_layout.get_subplotspec_list( - fig.axes, grid_spec=self) + figure.axes, grid_spec=self) if None in subplotspec_list: warnings.warn("This figure includes Axes that are not compatible " "with tight_layout, so results might be incorrect.") if renderer is None: - renderer = tight_layout.get_renderer(fig) + renderer = tight_layout.get_renderer(figure) kwargs = tight_layout.get_tight_layout_figure( - fig, fig.axes, subplotspec_list, renderer, + figure, figure.axes, subplotspec_list, renderer, pad=pad, h_pad=h_pad, w_pad=w_pad, rect=rect) self.update(**kwargs) @@ -296,19 +347,34 @@ def __init__(self, nrows, ncols, GridSpecBase.__init__(self, nrows, ncols, width_ratios=width_ratios, height_ratios=height_ratios) + # do the layoutboxes + subspeclb = subplot_spec._layoutbox + if subspeclb is None: + self._layoutbox = None + else: + # OK, this is needed to divide the figure. + self._layoutbox = subspeclb.layout_from_subplotspec( + subplot_spec, + name=subspeclb.name + '.gridspec' + layoutbox.seq_id(), + artist=self) - def get_subplot_params(self, fig=None): + def get_subplot_params(self, figure=None, fig=None): """Return a dictionary of subplot layout parameters. """ + if fig is not None: + warnings.warn("the 'fig' kwarg is deprecated " + "use 'figure' instead", mplDeprecation) + if figure is None: + figure = fig hspace = (self._hspace if self._hspace is not None - else fig.subplotpars.hspace if fig is not None + else figure.subplotpars.hspace if figure is not None else rcParams["figure.subplot.hspace"]) wspace = (self._wspace if self._wspace is not None - else fig.subplotpars.wspace if fig is not None + else figure.subplotpars.wspace if figure is not None else rcParams["figure.subplot.wspace"]) - figbox = self._subplot_spec.get_position(fig) + figbox = self._subplot_spec.get_position(figure) left, bottom, right, top = figbox.extents return mpl.figure.SubplotParams(left=left, right=right, @@ -335,6 +401,31 @@ def __init__(self, gridspec, num1, num2=None): self._gridspec = gridspec self.num1 = num1 self.num2 = num2 + if gridspec._layoutbox is not None: + glb = gridspec._layoutbox + # So note that here we don't assign any layout yet, + # just make the layoutbox that will conatin all items + # associated w/ this axis. This can include other axes like + # a colorbar or a legend. + self._layoutbox = layoutbox.LayoutBox( + parent=glb, + name=glb.name + '.ss' + layoutbox.seq_id(), + artist=self) + else: + self._layoutbox = None + + def __getstate__(self): + state = self.__dict__ + try: + state.pop('_layoutbox') + except KeyError: + pass + return state + + def __setstate__(self, state): + self.__dict__ = state + # layoutboxes don't survive pickling... + self._layoutbox = None def get_gridspec(self): return self._gridspec @@ -364,8 +455,8 @@ def get_rows_columns(self): col_stop = col_start return nrows, ncols, row_start, row_stop, col_start, col_stop - def get_position(self, fig, return_all=False): - """Update the subplot position from ``fig.subplotpars``. + def get_position(self, figure, return_all=False): + """Update the subplot position from ``figure.subplotpars``. """ gridspec = self.get_gridspec() nrows, ncols = gridspec.get_geometry() @@ -373,7 +464,7 @@ def get_position(self, fig, return_all=False): [self.num1] if self.num2 is None else [self.num1, self.num2], (nrows, ncols)) fig_bottoms, fig_tops, fig_lefts, fig_rights = \ - gridspec.get_grid_positions(fig) + gridspec.get_grid_positions(figure) fig_bottom = fig_bottoms[rows].min() fig_top = fig_tops[rows].max() diff --git a/lib/matplotlib/rcsetup.py b/lib/matplotlib/rcsetup.py index df4f0fe7db37..23e4e14e8715 100644 --- a/lib/matplotlib/rcsetup.py +++ b/lib/matplotlib/rcsetup.py @@ -1286,6 +1286,19 @@ def _validate_linestyle(ls): 'figure.subplot.hspace': [0.2, ValidateInterval(0, 1, closedmin=True, closedmax=False)], + # do constrained_layout. + 'figure.constrained_layout.use': [False, validate_bool], + # wspace and hspace are fraction of adjacent subplots to use + # for space. Much smaller than above because we don't need + # room for the text. + 'figure.constrained_layout.hspace': [0.02, ValidateInterval( + 0, 1, closedmin=True, closedmax=False)], + 'figure.constrained_layout.wspace': [0.02, ValidateInterval( + 0, 1, closedmin=True, closedmax=False)], + # This is a buffer around the axes in inches. This is 3pts. + 'figure.constrained_layout.h_pad': [0.04167, validate_float], + 'figure.constrained_layout.w_pad': [0.04167, validate_float], + ## Saving figure's properties 'savefig.dpi': ['figure', validate_dpi], # DPI 'savefig.facecolor': ['w', validate_color], # facecolor; white diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout1.png new file mode 100644 index 0000000000000000000000000000000000000000..a127596144010d851ae265f8b5f38bf66fa0d823 GIT binary patch literal 23743 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 yf1n1b=I^p-Y2)*mBCr*Iskq7-O#Ica`K$k3b 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
)5hq{>_J{Q2{($&$&dQ!R6J)eYUB_{Fq_Joth0 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 z z(aVQ@{xshDNZ$ptKDRc=>|^+eMI8a#{$Gw9c$IzMrpa7b% z9)sMtabqFFM9d4(a}w-_VksG0Q%< z?z28jnHW&>aV1z{yRVpo-UOTBN{QBF3fUJ&oI9L2pm7dPB`8GWns$#)9JsPN7I+$^ zci^!KO$$g@2lNTl$1FHX-)Q~vGtUU#nXNFaNy*2ek$~ZfvFGf%&1aT-jt?VJt`(v$ zPspINGSA3ZT?(*Pq^Pm-!k-hx$K;TzQD}F^<^u zZSp}<)`XlmU^{*cu&R`suV^(ZF9Jk`pp+nHCLkb~{rR2>MC5&x8ZveP6V=sEdELHn zT;QoZ;pJ7RS`ze4F09<*&wYT)frjwV!h!yk6K{wNXWA15%zt7bG__j%$W-oFC5S&# zrej~dn(BUJJp~X``QPqGNRLspj+e-8c#wQyQ=?C%=a?S_^JUVV&7#CcZ2`=S$tQ?( z<3KMXqw)}Q#8q0C%o>tDVn01Fwn`KMe~x$nmQ@V!!Uj29_y0Zf}koU$+P<_8IS5k&GcDQQ82Am9?Q{W(<>uX7-Rp4M(V;Ks@J}i#qX)ZVX(7y_w2YpxuFl`L zE`@IbCBb;o?|4nF9x!`xQJ3vLi9b{-wdmpASQ=3VkhZ<-G1Q(w2`XD!ev})NVV!~g zpG2`bP=1*N$M$gcC{3ivFNTHTcZd^0W5|n!AyX?Ac&4hWcbR;#>G{IPXud>}j`Rgp%cgc5}3 zGoHn<4I59x;TCd$J|OCVh7hJqfS`{N5v@!{C>tM+NXcaPmO4%+ zR{Z$|6y6Eayu?Olco9w78}o4BKtwor3{gkqX)E@iq~P9Yf-VPb2V#G~iH#Q*uLA6Y zNaK|fuHjcB+IXlSWYccG;@)}H!S%Ag*fxz?^Ti~b&C-@I4K$@%nRlO76MG-M9I_D^ zan7*P!??>8Ie*19@EfIVmf|q}_C$ze_UtXlD(^sJWiMn!`1tt1b)J3q!%OCjl+C^t5vJKJgp@Xu`U4h##GFS zIXwf7t0KMFg+3X0C1ReNi6X@B70&W=72vc(tHOR#G#I=F#~(1d zpTun8tr>M8LPO9eZOg#{ zd@e}bTH}a@N{=E{utCP#U|J#&=Pi$c#~D8kPlB0WHv@SHP-rpy4G9k1XteP|bHlfN zD4TWDe2zdMfgsBX5e1nVcd=PSUlW@+jyQ9cR~CL0svN7|?JmCZ44lU*(!+|KH=i1wE5-#965lYMmfVWukgY4&Qi14%8hkJL7}h@?rAwF>Zrad*t*XNijI0=!=hzxBr7Ikc4|Y zg`rwL=}@%AOQ$Os_dhrib|U><(`~WPVs`O3tpK92%YFtI26=9$_dPCBVpwZ`d>5yY zTwI>ZnYNNscu~Tyg_FY{oep5Wq7U-XgQdgPglVWmaI=G6?~FUCHhLOm)aJ<9A4lf{ zka_OB@5AKXp#$;D3u>f840;wVeR6p(=?vditT=E3n>acjp!GFJ=O?;B?lyXlqudKq~;NZ}$mu zAg%FV>SMn%L2``>z#kA)1zAGiI1Q1t??V1iq=~< zU0%yiRDfB+aWbkZOC=3wP4qF=jON+l(8Vi_6gt0ZNr(TTnv4(u5=DOxZPpR=kjFzE^J} z*ZO-s!W%n-GBim-Z^P35xJn2kya0Kp)ra_+s>T`LfsctDjYGP+g zLIQn?0jJ;;9q7)1Tyyda2z($C;=>_<&eH|e)l#@K2SAnsxysV-qSGt49s!Vh?=6;t z=~ou4xyYS~v_^k8jfd+Y%qdGP_Opu2DtQQ*JoMS)_W~*5+Jh+hp_}pj-BjPqksI|h z9-9mT*5qd|$C#-{UIuq1WC{_>95j1ee>*Qg#ei!&4ojF`L9YigdBt$3W+13x00mRK zV~=*jhySOp_W;MbfB*kc(w(dZm6?%-y*Gulq&>}&k-ajy?1oaLq3lX%AxVfxWMm~3 zva*#;viUt<*LC;#e7^tV_}|CTaol$|@9TZN->-4L&gb)doQIzg7$5W_q`FJFm31kE zCzB@Bww@c!CqHz6Nk~|HH!41z|D?5(^~4OFgmYLri?8 zE@ry`C^-VJ91huD>$HpBV0RE?Kx~21SUNj|&QumD7%gJKt)pni;#uzam-C-qQ13TIIw%%C zqodr4tT=*Vw@frRI(1{AW^$uv^Jv$nH}V%QMTWx7xHxy87Sd29U^0Rgpfcozx(&K6 zx46U3X`tXChHtPWPQW-6vOBH39(wa`WsHqNr&Z1SrYV{^gGwFHW>YUhBt)nK$20AD zRow>(i;0{Fkc9a3#?8i|bCuKT5`Qj}3%>I!FR=tFwl3DxYFDzKTJRwU-kgBjqgqtIdBH(s3z9t`$ zijZI`7@P30W4d?e_Y5li1R=q22|o(TXD5ZkjF!MK<8TiORdl~(5T|gui(2X;n75ZvXEYbCRDJHTke0t&Cho4*z;R~a z$B@HEy~;?k0odPX5cK@s-_U)dVAv6c!>g-l)meZJ)E)>7K+sLC={Pn0s0itHW2OOK-s8>V;tG%3ij-YUfP_a zT^*YkM6F;6>a-xqC-Y3?u4bL?sWm*G`)l6oXkEBOzvu`5f}eYfKgG*t^dTv2MeUDW zN!BT>A*w@hf(nd`jQhLt8-G6W+mQk+UQ11sdSk!W*Z9lWdP({U+xBpql+}%F?dPh6 zT$xaSp>HU8Prn-2cr^L4@oW(zDd5HS_V_@;ReUw$vNFe3Z`iy@`Is7q2pddz0C>qGYOxbr7Rg!>(idSip(bVmJ}q*+QEwOsw}t zM&8k5_Z{-Zv19ZpgtRp1e_Q6K4<_wRGb>y|{1)S4CtusHmyoFHtM1cxa&m%v`XRmt zc6JfLsxb6o`%UjmJ;RGw!Awu@!UeU%Gz1#r`v<)Z*E}7dCf~uXO+O z+|wly!s``bMO>nLswXc0X$gr|Ht0tppCJ!*(nmLxc<_kA3I0*n+liK(@W)(Vky^%j zZs`5c+rvW%PWiFNYO}Lr)g-$F4MG}@rPMPs>3GYZAMY0;aTN}cslU>IX}A?GF3Y@` zTM>f7gTM5JMumeKS64|pe1XkfHLQ~piqkb-)jv=9YKacFODM0xhEW(UH5~5Q;hTU< zU@0pr$#OS&bX;$l=0wVEKD%Mp%fnj$6D4e-D~6HS05(M_MkSY~=CFoKDlV)V2}fk% z46}z=owl}iLyo&75LF4#!jJR0WUM3nOCi0D(JYd~U=}h4DJhAdsS9Gi#Z|XII=aW3Bo1nK99T#x}^7!{&N0Z>ku0v}fTB1G{Pu zd}y4Von5+Y*+*w}6OHsoN>Wn80dWh@pf|aI83%LM9@rgTQd(MD7j9NV-z-9+Yh+@A zL@c*A?r*=kzzU5#ueay(=g$b{_>r2pEq*c_p=Dc7kNbye7RNvR$65K*O8I?f3lN>% zO}OE?SzVn-kWL_4LbK8D+G02x2_par4&ZV?QW3(!zVkMI?mU{Qg71F)!<6P!_FdG;8rw~?^nGWKZ8?Zfllpr#fL zeGyNV7k8lx{V4lqVic6p!qsQ8;8J+9Kfc(rj@Tb-4K(#(CBXY9DAx8jeJSzygll~2 z(^q5N;h=hDQx`(61n`r6b{8i>eu0#A41ZRumn4w50l17f1k_O1io`RUP_23R@sZ?p zSfcVfPjiVK({gl_LP@BAu<(Vxl$;RAVm|^*&j0$d3Ahc!z{_zeXeR(vDXAMwd>(!% zWjH@Op;XeLDu6sEL1e>31b;!C=UX_qt2g|KjnMAKE)5i^B-nT zAYrx!b4s0meSBtpy8_Heogu1&_o4KXEG*0+#G?fXXS=DX0OHgLlc@0U?EqRQ8N^lP zo|~O?dS6&5%k>_T9Tv6kBOs>3aP#@u z(bS6e40wo&L;0&A^Y8FyVC=RX00P+Ue1YXwL}~Cz{CT_|E6B z?{ov$KKU}V5m~WCO5BR}zvTitPpw@WB5NMh;n$Hn`EaULuqVr#2hnkZxXO2@**V^% z-CQNgF2&~}n+8t!N*KgAM_=c5nXi6wu;I64I|D2uzv!w80+}Qyr=Uc@riYv!h7xh) zVV1{WFsY*KB%&^Vs+*h15vb89&w*P88cuYUSWCEO`M~Tw8l3^tK#zKgmOn!k6!-p` zu?-tG7!P|Pk=)VK)6?YM>V5RLT1W>eEONppdbMO=tSiHhRXLi0nG$vIrTI=#;LfSD z;T#>4V+-cYm_{bD)1m?b?>2#U1bO*NMIU%uFBd6cpqGz&FJW2NNw@dVp+nsnflO>F zezi~x%jaX}r^h-*cyA2lFT@fF*`<4rvDZ%#OrC$VkmZK!?bqsR{gqQ&O8j9ChI#>b zg8w1}zS%14_(fE`C)cBz=6C-;w>J3a|H*Jo7-)R3H86T1k6ST-$sy}}Ok5m4jHGHq zC$KMAx8y40nx{}4JUg&L^q;ts>5dO{hllgsHrCxNZ*7eO)gJnFx)^fX+3A110QsML z-qx$!CL}x@lHtgRwE5`1H!Qg6`||?{%PON3E#XH&bRbv$JpwZ|*6Y`ku@o4bu7lG- zlBL8ziU61nR>JkLPIbdOOr8e3N!aqp5o|9gf9lgYeq4#BB7pZ`iM_OZEr3t))@T7h z@&%G0lEQo>A|b)*d;O~O9neC{L@Sy5QIc^tj+Y}2>)FflMh9*4M{BuDuGPFcr1;FJ z@iskoYn?v90R3R(6g~WSAHCGUcnJ|Pv1|A53$*ym*nLYisfI1Nj9_9~7v|kVi}!14 zY7S=i@L5zv@5D(wdtrWtJTh$UZ#x6VnW4U#fi_FrZ`fwAxYNmci>a&gmN=z&?VpJw z_+4y(qqrXSEsg^R5Be|6<$&wEFPy=-Ts+gzQ85id5m_W)jfLj<0|#D9@Bs~d=f)%Y zAkdaINmn@W;FRU1f0@-ds3a9@C35l+vbpdhMvRr>@s|LM;|Y0&q*7v3-Sc`ogoK3B zZEHB;)o&;k9#TI4EjNDRXOfiL)8ifzgbL{D`rEUPcmWf#W!4dp4b%2(erAOgMr}t; z7}K*_H0{1Zr|$D8T!E>`Ax zjw!kQT4mxr4g=V8Q^+RE*UDUgl}^^`(|sGS7D3&ss1i#hjz+vrY+3RE1CXW#lan3_ zw)Ku>PmW;`?2ZFR1s5=fz;WE?XB-x3`L5}7)aBEW#o8W5eykhFTEMMEDJU`OFPd;U z*if~)uzf+jCL3Gu(cJiZqH1~8=LZFn^A#Sth<~XulXSj#^Crpw(_=aV7_ocLAT^PR z!$_P4YVu}MK3?v$!*ZQ~aFjZ5+_!1W{XQ5PSBG^S9Vj^9&&X``*$vI29$)fI67N8L zS|D~*PzPcYC@9*vhO$qO+glKrB0>p+gT`VLKi18n4Y(VmdSb7!SFflw4R?B(^=?i%cNYYbtFXB7xbGgKtrNSR}t1moylrnS{+dtakO#e8Yk{q3zzua?3VVkNb^N!HV-LdG$0&V^5bQ-_uz{H40^~; zaH8%oFvw4|?SbC2a?P4j>|W{75i&lrle;;i5lBhHp*EHRzahzlv9q(^m{RHL=_x_F zMCa_;&G0~Tc?b449TGS2RAYPwCn)T(*RZP`#C|(JKamfUZmSe#E@>tLQ)6z}LFcr> z%ld5~^EJ&`eJMrmXXw-9#@JmuaY6yNc(PYWR`;;5~GGQh#ZY^K|)T}`m-khGyB6A3HjfhoJ8a1)2*?_% zQkBfw{q5`M$3I)*y#K64Z1xZ(6%lpt9u>pPm{AyP_&LwJyGm~xLs8K?-=W1Ygj7AQw)X*gxi{uJ9CrUqxA3Oq1U=A}2rQtkr9gww8NN?6tj7_gI&45m!BT?Vv5 zV(d+Rz9urMJ$MPZ4|^h%T{hs+p=iW9!baolx94Tp3pg9X=gfk zqsgl;88H9%@%eh)W6H+S7jm&k5vdv0GKrl0x$F<|h+n=4maA>n;Co+K+0+d?2jM0c z)lGg@dN{H_W&5dz$5(Q3S$->$cR*4L;XiK(kMeu$f=ZsF!dL@@ktH0v#%>@iD!LLy zspJ5I^9c~{)i0Ubx|Bk+DHJt4S#rp^`_{!-9G_l|s#Qc2N~96a>in=f(a{x%^0hF8 z5!#QPS+KXPiZ(;#3i6gKR;|*(f}HAgvR!kguR8Q-s}DfDpI6%*-Y{Bg@ad(b^$M>mM)Vy$V}x1En=#e%yNi}2!9F{ zk(yC?oSKJP`TJgOP|>nVr<4Q*J*x(rfis7MYV+-#$+^Z=9A)x^V+CVM^2w-`X2{vS z)1oSTVEtvyopX8W3H^pvxMe}+&;D6?UyrS~VI^Q6 z|00IWzHWA5{j9GTp?z$@mG55Ajudzz8@iJ-Nu4$lH#=`>S*Czy$jlWP$mo#60*V6- zpjD=fld~I@gz8dV@S^~1y&DD#30H#Xh5^94F!pBvMwN{Rh*A<3oiOo;2FCJT;5PPN zjS@MUviVuKx4ChT{#>=Mt7SbG!k@}>i#g)P>f*RryxZl`v?PfQ*`}elOx`op90(sM zRltSZGI(E~_C~hfCLkbS_w<>K2Kv-gMvs0v|xbb36Nw_kJzkBYscj14RtF zY}IgS7)qy66rMZ(MtMk^vKyzY`qy^c$ogdPc3s71Ux(LB>TgacOig0r#vp9xboiQ# zmQ^4T12U87*Ysb!mZJa~UI4EZEcq1iKXvD4=-Q2p5*D}&UTtBBk{+F~S&i+T{I$iU z-ZbYNH8Z5W{Sy2J1x&DFeoBp_rl*j9sp}8b#BK*>K>Bs_WA~_keItAco91#^%gBp8 zp=!id6m%Y(D0yWdd|vrC=Tw@VxW0}i>TcQuQJb0b-lAhU=ctk)B&*J+1Fa5whtz#| zPMxaQlqV?2kYo@gt8wZSh#U`2>rr0-Mp??o6eDmw61jjJr6w_v2R!v~6Hk;PTqb{! z@%So+X?BfhTHjIYEYNFJyZ_ zLu^eiUB*d6iXKT-0AefI25DE=DWJ5_=>;*l8qfEkBTmbV|1QHzqNl2I7q(DNj07xV z5)fPdXCP2A|3dL~oIJ};%4xi*`&rw4EmSwyw2CLaDx|fE z{VjxYSof^{7?mU+maE$le?CTu9`K|~EQx*>E|X;H%^A-G(p{$}$$)(Oeri(_s|#5IPZ?>8%Q}gq|KfiAdtHG=mh5sHjZm+Tdgs{@GCZdg!2A{~F+< zRnNg-0WvM#MP1d=k{x9PhJy3A4lK~56ex8%?O!2L=+f*5xF7qz?MsRFbV??znZj(` zA5c#SozslX>-d|0{@5z3F+ZOsicZwbDa>~tamcJjWgEt;UsCJ#luz$3Iu5Jt zz0s_}!353qJbHMM@uRMf9d9RaDro~$w@HaAz;bX*$u`rENLyQzYI!q;J&}(P+l*Sm zS4et4bnCApUugo(ANX(HJe9Z#{jq9l;9;U}YJnZ^eiT@!plH;>>uDm2vxy}qREbP| zZjgSmUH(F&*9#RkvGA#Kg5?S~CEg}S_NvwF{Fv*!s_(livB!RTc#%AYLF|5^>Pu=9 z;j6T0{tskJeVN^NEs7et3@uFf()QD{o7IN>(A&%8Cy7<0qbdx=uG0`Uw4uC$vsmWPkgx@N@Lt{7(DSi_UHc_nE_s&-|~D4 zchSG(7;RFtvuqaN)Q>c0t-2Zn#Hl}x7UXpK-kS8)o&(=sc*&y?8rgR}fT9#ZJcgHK zphkZ%(Jx;?2ffWq;g0xf-%nkUYWC|8`t4;+7$4MOV88*JBdq`a z6-{NJV!*d#)9`z|(FG=Nooi{Q+Yq$E{5&_Yo{GrR5zgsl-NCwJccAfG(^(I|I*4AZ zdH#Rxyn@+L;Dw}v|5E-nfRUY-#VCgwZL&fn&0Ct9x2*6|geJUlSjC_Cna86`*IIrw z6PW5jbWR(pVP=C=%2wV#G={36vM!@=l<>M8%`LteEW3bgBG2s$vri8YkDA@m7dyjA(P6yDBgM8=uOaPgb_MNBf zy1lXOdUQ&LeT=7Ns+ZfbH(zd}h~v{_*1y&P1ZV#acWw{L3a{(yG|mZeOg;O*uI!Am%8riD z31FnbqlxSV4$frbzR6v@qfC`pf^)~s5pj^#e-K$YxVg(=AablpZ3fqyWu2TU09+TQ z-{oD4-(CP79$Eu=$xTj?!$_W7NN4wmQxy+dF4>&~3x>E`Ip|xtcMA^+E-Er z2MZAraq*yDwRoK9laawLhAnLJufuReo?Jjy;m-gwS{rqgp#KbYuuH<^g$g8R__~IX zb9rG^BN!=X-44`NLP7-B*Ppd!?K)^!h_$z4A_E>A#p zK{zsl64(Sm6N&jiQg-W;f@}dAzm?ZIgmu8>@6Tj9PXXnn!j6+8`$V=A#g&IFW+4|I zXq!zsk}Wh_1?DU`%NeBH2Mv)EJKxfSP`SfJ@&!+?Jz`LP*?Po{2Ju0)UK!jUDNjgJ!p?IowN%+iBw%fURXYbmzaIWW0@a2wks?9tn?`m)aNr^89iOt9? z0Q~Ww9aZIr-L=pMu12r&P3TAm6}oEs+X{%FSf6#YGZ=@eb0zPMFNbu>AT!m8U!frNn3hlY8To-CM3I-vd}EmRngLo{SroJmzAndP^ZYK zrp9qC6h|CP28!|Cn#TuA$g^_au`57z=mH`(M&^p0Fw+Ryx4STQ-ZcTc>Mq-<(+|Ad zsAFOMdV2IVN?_c_u(Btg8 zWEneihVFa1AOzc!^OS~ebg$2>UKIjJ|788+F!E*uxq4PInpdtvgAiIrTpA9w34m8D zu*wbag^z3}_n{+EInIcqw^bu25a^&V(;Cke@uHZVc;k^bq+#a5%3a*(Bh(wwA@QXM zBKZ$jX^EsLg$V1TTesr$`Gh*9OYb<@(MKq-U^S+;wxcfQ2v>h?v8rJ>`^68(<8k3mH}`FQk+508xz)K*ByYu>h} zQ>QHU4MulA%Wkf!9pNzjCMGMA;bMta#>=>>F5Nf&@oa%*>Xf|++H{Kx8gCXrKX2&B zODZDegVB$h;2&WEQAUsJ)#@4uEGI693BlfueTks9Dz}z$p`f=%&ZKg{A~qz{ba2T; zFM7^xbCp{qcJI2sdguSS`bGf&7f8G9SJt(cpzq#63OpTR7`U31sN0vAnS@=gUwVz~ z5=`sZ^HsHE0{-|pxfFJ{l?L~oJRw@Qufk<$o@Ev^C%1EV#aftTE-v_*tnEWd81!a- z@82A-XykTwFtI798tX?{7@H%-!fa4dGSX2QC4l|~O04Omtb zzQ3xOytk4fohfOtq^oMDJ-?915E2a0YMwV=o+-D;HlEF&(KfcdN(@2t9&_V-$kZln zayAAQ!&WcrY#snzs!3C)@PFN18tpP0Lc%U4b#%P4R==kp-q?PI+ho>ZDMglcb!&U1 zFUZv)oxubhOYV7|>$r47qCPhq;#*;v+1USWPFT0-E6e~5Z~ZwQgwxS6U)ia%_0V|; zr?1j@y8@s%2I>F3P2v`Uv&J&p2Rna7waE@h#kiA+-;KdL_Kp< zV#L)$dJ`czGlF(z2Y`SwIBgz9OcF?}!>73ob{=Sr?Jz$4H}p4CZC`C&m%>ZR_wf~B zv-ol@diTfDQrMLki;9XIG4KNd1Idplws^!3SlxXEP-@=%v<=F_iBk#>J06nZ>(enk z&XR{reVk&UBVvlcr-E+gDjb}g7VDGC8sYoHFUU|kTj!drVB=B3wk)sgJuL^}>XCWb zO;qQtggs(@ZpfFAu^NI{ttek6d%f53r-!0~m8adKCN+Ql7X_MR6^;TgeCUA#}VjWBs9q?z`c&MiH<& zsQUZ+@5LaGhR9qW;<6L3z@3DqbbDbjh(^e(1a5{C8v5AkdmIZPjBBshewdNL?jQv!<3pkdUcT!o_~4nw@e2UCP(;Q;%AIL8c=PV2 ztMZ*6i?iL^jTGuRD@ujWI)0b!_I&&z6C)lR(_aaCiwKQh9`BEsX|2QWqr?@cmH1$S z-Xa((j7Ffhj^z8yJqD7I@X7`@-d&ATC*Hss=~Iibhg9bpqv#jTO)Ke!gqX&!kKuHS zsKbmTwF{*Fu^x!*WUB}Q1;Ts=yG0SjCV9Pe*HKAK%tw$yEseQxG2(dxu1A^Us|~8F z=_u_zhdSbUF%aXB1|LO9vU3~{4Zek`+63!Oj}aRinaXpE8=iZ$hSlc*l^4hm(K(cMtVU0g#$ zL$t#%{r{d|9aO7yMgEf-_b79BZR&(0GHKVH%@xtgw=i&5u2``RJdv!95Y_q|_f){Q z#)k{pYSDHOOVtM~pP&TTkTO`<65zXxglVoJ#6!1gZn<%P&zGY<+Y53JD&w$)uJya% zHUbDl?0V=zYs=h4xv39kbiRofFV>$dpI@_-@#5E|6@r^e1%tlt`Y0hbEVyiafL6e2 zU0tKPi=G{VrSInrJ#L9V=J;%~PjD&IPVGj)g5V7bMaS)5=H&<12iru9am9|=Yw*`s zdUEiY_cXLPwYYparTMhb=T)q2pWa9H1Bzi+`rtJ_8NHxiC$G)9)ZeSgNgf$HfSFoy_g0X6N zX0Cg5)s{_SVnuM=?K^ld5C(v#4*N{iGY$SJl+~( zQCa5Z=BDI67(J-8)=cy12cJWi=d8pV>O*gzzpd~!TG{2s4&l$mw@x1stGcpXPp{26 zn|;~E;r0*Ax9{Bf86x)tSn>Gm?6oW`EFROppD6ROUgiibscC5m`TY5S?e|wZPk(gv z^z>ZA&0UDN#|ab~IxSC6A-I|#PdBq)TLr`3;dz>^SweUJ`Sa!R@$slU zkb`9@!7gs{=Z>m^vhF8lYf7uDkMeFg?a-220KWy{pS;S*I6hzgPN!ebtv>W@8h`To zsF^V5(9f1yJgiLH9cXagQq@Mcef3`?8>#o!XmYpw zB2cjJ`^F!>e*KNd!NvwXJh$vKHcpY*TTINFan+YG#vW#7a=m@~wmSoZv;!OYy4tzp zK0bL&X76n#?Kn+eRyu3d#m7Hj4A(R_U$>Hre5p}C zG_gqQn_6e4W7{^{<~OVH(u(2ytsGd3PA;LQQbCBfY|7kb{@4|rl3vU}PnX}qR%5k_ zZl8%ssH4*Iq}nSUY9YUVoqhHCb>i$C2yEhS^*6oqIdo<2G3ShvMdc-*M?8;4KZT8q zI33UTc?)!pAw?r@ao|>`oMr~C$f&5p+atn1e*Ad5cE4!eb04d(LoeIzCqI3<`S>fV zu%>)plj-T{M;RH1mlv{ME;Qr&WFZgW=nA@*C_(x8>(@<0O*?n*4qkIOp^59b{5Q2YGplK>rQYTG{IQPeSVZ{cKIwWvarKD;u5{#sfps;VE_9CtW5r7dS+ zu`aV)Q~b!q(cD}IE@j1^ZgkF5qi4jklLF@+^W$s0;J5r{+l#ehmjie*+aBB?1s0SJ zu2ri_5!f9r5nyJ%T-ffaa&Xzpr%!ib!+WUu-9%nq{z|jGLD^fFqNj%20tc-UpJ+V3 zY2T8&3H~an)MVqgCuTO~r_;}bCBFBGR_@mmbh8!o;=H~jaI20W2Wk>G*col)pj*Ct zxv8ls9lqd3aq+LbqC!`680O~Yf^-CrWjl-XpUWBCv2b$qemZ&^n_-|fiR-TaBcy+E z?lIR)SZ}LU4m}RJkhB`~eo7p}@l;1gE@x!P1p>nfy4}XI6uKt|$EHGVcJfn#2QDcJ eP=DxAg|B$LRZ_8N#a%l5vr~7kPRcgZfd2>M>l9u9 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout11.png new file mode 100644 index 0000000000000000000000000000000000000000..e0bb47296b2c7b47f48cb4862d60a9da429cb073 GIT binary patch literal 38636 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout12.png new file mode 100644 index 0000000000000000000000000000000000000000..3e24209e18b04228e14193a9d772ac4bca9bafb0 GIT binary patch literal 44660 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 z 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout13.png new file mode 100644 index 0000000000000000000000000000000000000000..92c18947f9e6310161817b1dd9d8fc231e0b41b0 GIT binary patch literal 35515 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout14.png new file mode 100644 index 0000000000000000000000000000000000000000..82fba5397e36b711c8da7f064eeab7c02bc1e39d GIT binary patch literal 40330 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout15.png new file mode 100644 index 0000000000000000000000000000000000000000..fb39155742264ca53976353d7b67d04d9d990eff GIT binary patch literal 25452 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout16.png new file mode 100644 index 0000000000000000000000000000000000000000..2c20f43dcf5f3a16472578306b8e179e1e739604 GIT binary patch literal 23120 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 Vl2)x&bpawdl_x!uJCIXi`~z$IVjchh literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout2.png new file mode 100644 index 0000000000000000000000000000000000000000..7a72a8117335e36844a9ea2777e1cc48e20f01bf GIT binary patch literal 34397 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout3.png new file mode 100644 index 0000000000000000000000000000000000000000..61337c0eeb21aef6dc2381358cf2525bce80fa7d GIT binary patch literal 52171 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0cf2edcae0be16253aa914c370b95f0951ff75a0 GIT binary patch literal 16636 zcmeIac{r6__c&fDbWmgp$w8D1=QyKd9*c~bd(89f7>;>rFr;V@LZ(v2CPOM?Dk)<~ zh!jPc$3lhgz7HDY_x|d=-akHnJm{5SvV8z;L_4C8&_+nq1aCylzd4C zbx0N@8#rdU(*dF@365TV*0LaxY&=}ySm+go(DEQ!>DZ9qMqnPr17Lg`UlJUl;sWNB zU#S&VY8AK%9HC=xVeQ~*2gfaUH`KIrw6P+=@#MjOpd*R|fK>wITwRGIPcQ}OuK-Z7 zaRqOLs5Sa=(aD<|bw}X|9_CYW;c+>T;aP@Sv@UU^U@>`{RxjmQ&p>AXC zU?ETR1>-`KVevRP291K|(1N;> z1I~bliZ)h6Yrt|f8&^A$JzNx88EvSeC&|Oc!Ug7=+-9VHcGq2o^4VJ-tpe$*$In`^ zc!$nq`kvoK%f;j;tlFWM{`Aa+khH#$kqJF7&m_8NA9K0WN2G9<#`B+9mft*|D5GW@ zj31t-Sonquky(;WlWDXKR+1U#S6}i^kUur!7cw`~*h2g=H$RP8z?6SOn|w*U>5Emb z%I(vhDvXwM(7CdeM8Oet=$auTL*>El;dE_U5rc0e*6`g_gRP> zWZ0&>o-sK%pkTo7)rmLj*f>V=4$Z&>o%=k7bpK}y&TG6l^p)Y!$LbNA(<%3L7ukL8 znu(0Rlxp^zF|pi0{NM%c1i=O4!1AT8h`|Bx;CWVb>vYM21L~i_w^o^XGl5^<&Fr0R z3;b&FWgy;FNqt~)zW7bH%#9PmtTZy@@Ak&ogH%^PP9W!j+#H+@rB+yHFmEy@c2UrGo zagXW(ui%F)xn0%Si6%W=Ph)LcI!#%NJ(Db-C#Ls24ZH3EcTa3~`gk1fEqm%p-G*mx z1-LcN$J?63Eco_3wH2Sl^gBnMclmf+$Xm7md_Pi~9J3ww_|g8Mnkfx$c7wvtX!o-7 zaVEvjUOpva!%li~myN}+dR2C??1A|)9#qVE^QbDgZEWdXZ*m$1)0|6j)v$tmuLGVl z=Vj{M@sRtKPKDOH9T0SB((Dz_*k0xFZxJrYF#i~M`2zoG#!YTGRkt*nOZWUgm?xet zv@K8|?b${t;^c}lToY#M)2e4MkN?eJH2-ur=%!@j+I+|Mh$ zN5(JiI6CQ})=7hWpH!UYRHy&>Td3r^2!8&wUaQ11JZY{&H}_EkO<_^$R$sG^JPM-5 z$OFbmSM_Akz7tVFy5el8u)ZKg8IFk}Ax!_ae-saf(>%Np$#@{}oZJ4|q;wVAtu#+k zV$CH|5k2lVC@mP0Yj(DF??2RN*+5&sRp=wqoNt<|*Ax+kaUL(JN{fl&6S;P(Gk^G? z0r4xN1#@)P?a7Z;x86=`Nwec)5m6kqb_4Y9xBE#6EFB8po_UlYmau8?tvT$Tshbmt1;6gYZF5h@@PXn1Zk(j(MF_u|6+%)&00h^?_0$%@(0^jfpU%y)!#-BUT zI=+PN4<$GAbk196q^ZVPBk-?`q&s_Μ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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e26c37c1a234fb90f7db89e94b6a37b19e1068 GIT binary patch literal 41172 zcmb@ucRZK<`#$~>8ATx#%1BWmvQm;2iWai>uI#c`WMo8Eq=Yico++!OtWY8&gpe{q zWR>tcuI}#l=kxiF-|wHF`*FYD?w6OB>v}%V=XoCIaUACrqH^{G-3HbTBoc{E>7=|G ziA2sxBCXS=ro=0EUHlyIe-w^#O6t`3@}f2m#(&c|oYZk7kv5wU|B_`$Ke~h$)tnTx zozB}^I=Px$u^`!+I62tZJK0<^<#e&Q;&{p4j#F4b2>&?PJ30v+6crLMw{SVgcfri; zkg14}&_Q#4&Wlb?4ibWb|Mi;!_E#}26SuL7x(0poF zy1B18Coks)LsdWV^VCukQbRlMyT6+rZTK%yYYff&z(j^ytwK-Q6q}Ra>`iZD?ts zB5CXBRCjlG?_1{P;<6NvDl;aRvpmJ5z{JGF?411M$&-S@!s@-rUVg3v-rGsv^L))Ajb8PFUb6SKu-vPa{q1c%RWp?;5v1Ej_L-j1hN)1!8uF#X&RMVA*99Gqq9 zvV}pg`p=Sab$_R&R;8Qjs|bpYW+eHRl!)cz=4N}lEKV8p6@`XwVA{4#vp0g1y5Q+k zdxv9Kzmum=%j@d0&d$yno0*Zjy1GjKXcoEHSMKb;cuwA&23PXs8XZ0|j$cP@Lj7jb zZNV-BR+X_2g=QC9Qxr;84ogT3b>`~L=cQ(3P@lRjP&+%)ba}Wg+$uR+otKtHnBr6% zf2#rc8Toc~p^A`Za$Kmes*aA1+wYnBnW>8DPB#+y)S8R!;#A*gYbw>IorgIc1LfuC zE;QS5t+-JJG{~eXhRflnmuEjKHOC8)lRka@8nl&9Q(aFhH*Y|?aH1ApdQOT3U7rJtYQyF7!VOxw2)V^4yEgI~0!o_Nqgc`;*`Eq68@ z;*_Vf8hHL}Dx@@aCmUPqQ+uP-@R_z#f@7PEy?@PB=NVLd`uthlqO#hbYWJQ!6z3nF zmNhru6B-&y&(41HRnX=gxtqASPE~*75oW8TxY1B^@9^by%Zt-gq|(w-p|j#}}o9gjzpvGcZK4 zW68$cHd9B@>=zWQ?=HUJER6u)i3Oq}1*c@_t$tnH{PuD5?b~~gr_0N$hjgDYXU6^W z?2(qPY9t$P608z+vG^*l+ zhJ!XT!KZ_7+&C4Rtd*xvgXjs&!r9%AsJT9PW>lW1rl+U8QF2~MNoj-Tad~;QgB2mP zuP6gDk`R^7(@jlH;ZFw0$SFtr>+9-RZL8$vYp{^(@u}lu)l{bqs;>53Tuzj9FPd6G zjQvay<>K0nXx|@!h&<*z-mbKm@Hi)jKP^2S$>5piV%>dNf6~Xb$&Wu;qy@)l%AVQ} z)Dh=i@2MS2IN>1j`ePR=WgrNW2i{=xpN4dq*7U znVG3CT)5C@|Bkh>uaE6S1bc0{^ThYAs@0OW&Uz(Qfe3fA>HcRI-#-jjt=r30q>k&b zpc(Ryn0jm+7#MiiV{RYgmMxb@8n=Gv=}B??`j%P5lGeu7HdY|wWd4oqfXl5x+$SCJ|?`!k1lp$vCx$CK^yOBn5 z%A#Uo{GZtN4)xks)uu*BWjTc)+Q`3%GelWj5~e$;sksfu=hO6bzTU#h;(%F0 zH#gV~J@IW{w_cw!}Ido$)?w-Q*p7Q`J$N;*G$Eop@GYpZaR^Jw6Ens?QcI>Q%9~sMeNo?UzHKe9cOxxrKz24?o_?9%nS?_o1JAvg#qD;odyMW%KedM| zh4nvS)ARU}e}vR8Y6N<@#R1*NFQnIgp5xb5U!>Fj!fW&SWcsO$+floZ#|k_!d?^>i zXCU`1Fz}{Id4LBC%eIG3G<*CX#tnSA+eiALXV+{etaWBwX%zM6I09z&#}5>}jc%Tv zsXE2w_HUJym0u1=NZ(Apy4r1HA1}P)EYMH>y{z z2q%qqYzzqr8STtXXd8*AJN_e~+gAUIr8wu>nbD%?BLk;rc$^$-z8%WraipXm-4(N@ zw70iUZ{ppv=KuF^+LgD8W$Ha{;X?k zinQe??W?-1(>ar)-~0NIrcP6k`Hqbw`5jd5^~F{^!^XmEyZ3fC{7mkQF5ZE?K5(Rh z%pG@kMs0?c`X6|Ao$mkpn}10h`O$lB_$@GS(Dm(O4u14GBP?lbb{ zI(JW#3!A*8kXKNse*1P)Qc_Z>%OvYI0sUYp?_b6(NyjdB7p1pxGcvR$qu2!VpNlD@ zK%Lom)a9G6Vrunt)!I$#uDn4cp85#s)!@L5+j$Mx@!`J2hr8cxW{Ct))A*^Au4d9- z>8@Sja$pmiMA~Upq_DjJhEXGzgfGZgnE@-Ig8Z{N#NTPwim{WyI|IIbv*~X>DQ~Wb z8YurI_w^ypt~`TRX-YAlhKK#d``wO@T?r08xsLd#pVq>QzLFXD@00u~>Ex7@Xg0A+ zQhR!OKI?71E4K0G&6^r=f#Ewt3RF{BvrlsgI|>yRet5pp#M`uC!v?0Ty5Fb_CpR@u z)pdPljYJ&^2ngWhUA{3d zObQ~$$bm8QF{XnsPVSDSR-Zay++IJV5K;ZR)G zw>%rOsLIdH_NU(3$@Kqz^7$L(=QsA2;z}Ln9P%gsoTOPGsz2Wpnf%|s$vm`C^U|gL zDJdze-k)w8dStfNb8=bn61QY7kR`^co4XCL@ERv|_@NA>u3!cR76ufP;AVx~7BU6} z)wdGC!41@Z-ad}Ezey0U2iD4wKY*Azhr-MyyuE{!9vh#d_w;OtZg6l$(m$Vlcq77| zXpa8()AO)Xr+_vpD(YHIjr`}45!vjHmw*Sm6~hkJ<%I-iL=iE0l4jmchL@MO;L3>v)zD3Mw6Ti-4~K~Nl38zaT){bj{>xK2k~&Fco4lrRNJ^SO=pR9*SiW= z`_su%Z1}~XeWB%Awv?N81_uOC?3BK`GvSbJmTNWcK>E)etfv&`L~q6{dXb*k!J`h& z6PAU_-G)N;a)xrbO!xQQPYDTbIQZxHw&M4IH|k!;>?I>fNl6{P z`up(Jm3gfk-I5JtWMs~(Jhs3GBws+3!SRmldHy@W!L+sCc(}OEo4h;5iM;&EXKmSt z+K(hIE?!ex`v9dO`ss9QYS5Iol@%{h9gbfYzuVk=8n}N5z20b7K1XF`<(%Dl)mYOp0>^6K-cx7RY2jS!}HAkmY@95d6^`y{lx|a_xsi^W! zSCKDjJ$ij8ZhS$kyDqEdo89j}k@dfZnS}~DBL_#s%a?N0e!gXnUp0^V()g)-T>yk` zdscqI1Tnpyo#?P5zh(x*?={zVbzq#z$Qux+sSf0%EV-Y zhP?bkyWS-GLfdIqjkv8BONzRxzgfC$iE?@v-51w#_>zA6_Mr6}w|(k! z9q6bqK>Dl;-x0*8l_x__Q90LkYF1`1R=ubXPCLQzS zI&gr_b?PG-nlb7U-SAw!r=5p4Ze(B(WB;=U8~j^*Nir8N?nBGJ9_SwLQe{FbP51fh z*W>gQ`V}s8Rja@FfSsL^j~+Qs%=)AeWU?daIb;q{$NYUvX>`VPuVmoAmM|KMqCZ2UAd$x1 zY5DecBDzl6&6iUJpif8clll*&VfCWXw6ha%`S#%&l8(8Bg=}goiF7Y9ad2cL5bJ4L z6U^Y?>T2&$h(x^e&m}8A+YyNn_!KVQ{{n1^D!zs#_MW}>0`YRt@yqFe>(_^X1~(%w zJn-0lN?xAs6|r#X9TSW>OG|D}V{Pk=uKwh1Y-)1;QQNh^%g1;8^l94PzkfUYUb<}N zL&e1vO#lV?hc7;fa6UShOf;M->gp6EdJ3{<9`kYz4hJP%r@}OIb;(Eoi&1fL*Ym4Z zS*6#07u)HmsL-FicbJTWgJbtqIxeoPjele3PyNKUa#F8jcmK>l^i#(?<}xn#Z8vly zbNtd=Ju_S{@|5INN*(Neb~A#0vuPbyP9g~Mip{6lV=vkA_%J}C;1 zO^Vw~q%XPi{1a~8c}?O6#yZk&6os!RDRfOWNF?cvZtbpPv>%AH&7l&i*pYnir|oNW z2?+yn_xgM*f4=#~lSx}n!3U!1^5x68HMXNJ@?KtExl{#I$7X7_5bYz;E0Yd8jncnO zmNu#iMTX$~lhC;-#W?G4vb}$11kwz9#ckh<7ONR=S`^9O%fl57-r!HBpld*dahe9> zbMd>etgLMLVpqPA`2R>IbSFp7gp$C&{G0x+|E9bd96TQJXA5eO4SIX^7N1LXk>R*> zl?rlkSxNrqBG811e*E~6L_#xo$gLoJhxj^@gwv=m_<*)glek`o|Gd?Y^V6%%(gFKI zmzIVj=hRz{WsaLtn#TM0(oDR#Jv%|Np|}`>C}?>7I@5WD z=$nbaLxtU}%2a4vy)GayP%Psj(gf|Fn^q{HV(14wP<)}Kv%=)IfWi0W=_<3awsh?$ zHY~)}BmNXz{ZkZEWl_7@-oM`!$|bK_gC06GTPxr6*W8%)bFZ?QDmn($Eq_XcqiQZ$ zndhQ_)XLm>YQOug!;Q|U_YS}2F5Q#zF7J^@*(XO&f#P%i(b>WF%=4rd{>%(f41e;u zzPhyxZ%E3;cQ?m%*IJU5j>rJ>4gLqDY}&L*yWA<0v4oyM_1J%Y!N$hsp!Y8)ZmTE- zAVpJC)BCL#(a1-HY}xy=x>|OuC^(okfY_WbFF)xNGvN% zRRcS+L;1F%ynM-jASS_~3=R%bZ`dHGs7QHp=Mg`okKIR)?y!IU^I_Wv5F{OOY1dyj zH_O}D@OS1LMWCenKUtZn=MciV{yng^!g0vHKdh*zNHMbzI1~6p?($`!Z3lEIK+4&(vKT+M8UeaZY5y+aUT|MTkk;oT^j~*Q^tY^tLIuC^_s!zyg& z5k{oQ+R&|hv^@*AjjmQ#t*zLfPL$Y+R2m!+QI9GSSXz1*Ae6bP^ZL}MU-J_uPo9)P z-m~i~4@5Cl>X~}B*l#`hj`DS5qhC(`VA$K_P5<7i#KGA) z_erI~jcw&E6T-`rIu1@wIYso~X>K zeW#H@^t`+z%UvcnT)6O+w+ZxT1PC*1Uqzh}Wrx-?)<}z{xWU|~{c;Klf&D>-G=9d6 zn~MQr_6Z8+KdHQ;Gg4ApqEobIodNke*7PS-Wj*2qAe(D8v$bH$zoYy-dsVJ~To4)U z-E_HP=gh|wm7KlWXASofU1(@t|1D?92O7h_k1~t6h}MO%8CdAFO+R8d?Btai_Goi) z#pTy`{wB7+S+3dcl|iLj>wT6L-KTcp=-QZ{-2{zDyW>z!&n#8TA-*18q6Z~nZ|Vim zb>KB}Dz3eIsg@Te{Sy<}EZ^P>@$*}U+PPawiXEsI8S>h-Yt)-I9nzh-?r{0C?A5DR zOGd=)``f+G%A02rvG8zYsP@M9@zHC-?JFA}Q0eID4Fhv4+RBCAxS^`4sX1I6o0epI z=vFmd1763ur;vTod`G0vZN@Z1otL18UFng?lI&J`pV|*2BfP}s1#j7V*7!q#NxYbK zoKThj9)ofxS(Gb$WNW3nW8Z9hyL#VO^j)DilIFU0A4{(Z2fJ+(aPV6d$$09pIp~!A z5RRgvtqgC=9`VmM#SdsD9^D1aiE4|aLG;tFqq$YajvVMMvN*-BT|g2N5+eD!_PbLJ zcrO~P@Z~*`f~(ru=8J8m4Sd#Ry7k%5&p6cyYINpA@l);Dm0B=BjsrE@B6rKESltO!)`^kmiv^S z(KwVZ9`jttnbjGQy$@o(bMn#YJL^a%Po2u1IdzB!V9a}Y;lc5sP1wWhw{LIP%+bCE zz|JKpso#ly>@#R%E@1;rzq#8&7e!e=fBB;Mv-bSSlhmkv5ou|A`ik1x)V}pU+W`pR z7ZVe6nR1Q8UtpA%_m|m*BI)GN!s22`OlYx3Mn(#Xin5-p_;-yzeE6{O>SW%dM|&9= z86)r9p$S(cx3{0RdN0DrpuVV#d%N$lh;gprGgjb}TL+6w zfFdTUk4~+5(a+A$cRXAB`8C=4<7)N!#k%JSNx{KZb^k1Eq|4^u*Z>jEr*?gQ`$EN@ z^Cm=qU=2>uo-E2D3Iqwa;s?Yy~(4#&qcedA;v9U}~-N`JCY^#q~ z!O)d2{ywvfAxe@sd3ypmsh1{<){A{In_i zhQ22I)O{a(6%`rji2xN1{u= z{AZ10(wg%3^k>)!&_0hBN5r|(IiOaqBPVxGF0t+1X5>A;6@q}~#O_`r0QkxuZ;#IN z-v$cuCrajX|}yjw2RD@%)Z@4HKze^Ie9hu(V)d& zeuOUFZ-!m|A}*FD@gKnc94a00-N{{=jDpoe$2k8GD(%L+A?Lqk@w>AchAX}wJy*V! zf(#kard=rPOgf`6_p3hXJeS#pfEbU*x1A-eS$bVftO9Jz$Yf^vK=T|G9A1AbDPk_# z{vhdqy-|#F<&}EiT8&oWD%FLiZ+Un0{~KKWH>*$m8f2j-fvYcdp4dhq>$@*hkuB#+ zvfp}V2PEJ>1YeRHufU_&&E=eC?%x0q^bYGhJdUknUzAZG`lFY2E}lTqls?6PO?-eJV}_l1SJ(#yl| z07Wj5?|6|x7p$4BaQ5sb(u-HG$idpzef0LnTT_jyuI}5n@7;mk3Rl6+rtJ9q9Z zfJ#!i*zft_nWuP?`^!V0i~jWjd|^5MJlaq(G28dro&woF zaCG$I9&YYk0s@<=)>e8QIL0=IK{b+k;Oxp-O!ySU> zh!WWps7#UVc7GZhn=0?;nOuLrv+(@~+V;3O-cyw{PFNeJiZb;)ggdt$gYf5`xOa z6Hr*CfZBHbl{yygc6N5Dzh@sQ^#z($4)2lNdLvJcp|rUXv?=y`12wW+nWm70#O_T7WyWF*v8!XdD_ z@U%+l7yI>tO_ZM>C0~_;0?3`~Io`g1>E}-|w`QGUOAXHktq%=R)H}qos+W1VnwWl! zoUQq`l+{?|*ZXv9mZCc@K$z;vg{La7R@l5J@4f4Ko7q?t=IJUltZ13LtV%$({Qfj` zf$U1bG#&uGdL&FjRsRi{ECASuAc#SZ3<2#deU3Rt`%~HDjs-b_#=oKAq|(F_>#n!^ z%mDp4IXPeKTjol6Xreyq5VnEM&_d@*qrF?owBrViG=6OG9rChbJrx@IJ(8b~@5}dO z1Cs(CL`%=m-6#lxb1uN>LhtB@!rh={jV+vgp68;_eZrq5lHS8}$u|M(Msrnpi)~~G zJxD2rXTJd@m{}qXs3$6~&)6f%$$RYl31_tYfHnIB1QfyEI5(X?f8IH{i|5!eHo$=n zF^<@E>(;5Ls$N6ScGr%42w-r#krxB$)6|q*v%wYy)!imwO!uECP?IfalNQQ-?kp!K zR{$apnje*kiAniLVPTlvHan|Cx!kb zvF(6M;IE7UmjK)Yo<0=^2N8%y#$=>1w%qc+aKg2i_bbb%dCuGosJ*e>Z1(eO!Y}dd z+qVMOX+wf^1sg2Vc+7pXaMP)RaXv}O%ElIy4+_F!Gs6i{E(JB!yme1MdCIgbC*ls6 z_!W#B3_Ewyep(Il15cY9m+EuKXVnW3GX2zTQ><$F2tnBanuJU7J&@hZ#V;UGhxLg{ zOtfw1`pgw-8lGQNB%FR~H;Oy}Ii(1sWIoNcYRa)~1wg zcFyOU%Xj8ZTCkmC`n+76qte@WNR!+0spS8rD!8tIgO+_cu<`g?IZ%Ne+1o&ZE-fv! zTk9QfpQySAa$$9Onm8&>-###`tu9tw{yA%5)`hd6_y=Ad^Q$T5h!%J+yao8=(4j*_ zw@SDq9=#x3O6aFvp%8%Jf3Y~=GoW3xsj`7 zg1LA5n&=t{Q3ITr?&9IaMsi(PlU8RUd|trikY72wfsh8w=7q*yhJtc5=>AwKClAj>04I9|jt%KlXPN0b4(l^`mSF%7i5OHBa;{J0X z!s@(R)ioInw>fP{Q>_X~NZ3I%`i9Ru$d(2q>;3L8ztIKsO0~4 zlAj&q*H*l;ykMK7UAS&_b#?Upqs^vfX3kWCvh?rrjigJ<%f~la!mJQ~_%heS(|6jK zQNf}ph$#O_qZ!%htG(YKbB4Ku?B~dBqwnw?RilNnubiQ5Yio0&%4+P^LK75(R5aL@ ze(J*$+a17#WFMt#Il$inV>1`;;o@o|kYL(Q*&%LiwWK&Z0oLDVz$O-0zF~EO2y;&A z=bl5hJpo5ur$#p!f>?Zko{uoI;8?hMc&sax7WCHEW`=5W6UTLYVLJ;;_q%`PJ%;@X z1_N~Gk|aaGBb&jgvX7si!eLF^gk)@OeS>hBjJIbJR<8LeYowkJMHU;QqodKy=nVY( z5mA>iD{GV+J>p*8r%anwUj{SbbY4i4y_EC;4jNXJ{#(y|#&A)vQ7*qoA@mE4jgnIR|o3qsE9-|=hR?u3gEXv)HSq?$STL%7SzxQ zAm@Q!WF$HRfoP3_X1zU20%6+SjU@JwVllD@ESc+8IneogW`J64nx z>FGyqeaHTy70=8s1+&QIiX&RVzqEw8_*mBXbIn(8?BB3$=b3GyH$wEAcfnAw_Fngj z3;FC->3?)KOP4OkF2!=HJ^w3WJ7o8f5GiSy58kh{h29c^wIr;2pw3Y`QH%XkQ&Z;z zO-UP96Vy5)cO5UVACNkH_%H#q!O6b-{qu*=#dn-&Xvtw6RlW_S*ykm(&8fW^6iSP( zqk4P!__FH~YWZ$=IPdR(a5)GD6mC1SpR*(200WiNUj{SmF0kv9NEPQg^Mx^opfM0> z2&Kc$<4k!*RW~7)e8N6t&WakL4P!$#D01SB-N4I7BdF20_S68l^>DAo2!EinfnR#- zMTc)6gyc`0FheOl3CBsL`;P+0uV=$pL>`(L6;Ph}Lfa6{eJbmBj%M~u>j@5%$(|B| zm{j39%|&87#ghLWTA!cXyoDs7U+PPoe2~CyBe7a@Qx`gObUN%_(Cj$EXp*X^ z#CJFN?!EXA+BOm4xkWjUu^w36s>hZ)8s~MhF*5prv?8n})EhUxKM)Zf9*7D-u$@>T zg8n1$+{iaj0EIqlSD`^`+}S??SWHr}wamRP{C~jW8ai>eZwH|>61DH&iNhc5#3~Kf zFRpGr>vr(nhj3~z&%cl*k)mT_X4LZy|2rg3XS^T%ol`D0Nv8nPDj_lu3O&SOqJabf zLc~grewkXA&FO?gbZ8O~b`DprtRtPiD@w!RJ;#6|?_{)^D$g&I7bN57Ps;LI@f~uVHrU-{X*Vwjk^3=99J)9SY!~ z5Z}zlJVepwpgJW;x=!f_1O;`K*&<|TAkdn8EWKRbq_hBP;^vF4uCAq8lz?!e1c<57M6=SLbkhv}-^jAt4-^#?cJcCN^*n*94(Pp( zpyVnmCEeWI?h{sks_VO&i^wt~5ObW!0U+HEyM4dkns2e2i)$DeKPo-uiog4ahnhPu zTLn8>X4J$^PtW~-ZAS2HnjsUMJbPC0%9WxikrOBC72O*)Ak`9*4u9f(HQA*BoAbXq zid-P^mJ%C8IH>^;8*^hZDKy^!Vk3c{?oL^_Wpkugfx0t z?wKQ;9;}fNA`raldWL2Es55UTrJ?PCK{3V&^RT|O??0=(2N>d=BTbxUc3^h4b;$^f zj_$-$@=6k{`}VLE_g2PRPv+bCTnriD&*;*i8* zs%EyTp`jtccr-4{SxbHcR!FZr^Q;WW}cvrcSgymCrp{^dCr z4$MGQ?Uo!;?CRbJ$1^+=A(q&57p?bP_$I5Z9dG9jArs8-yAo?H(&CPraPXB@RKVy# z3&oDeMhn})8Ka9I1l|iwOiVNxP>O&XuRSd-jRJ1_%#z)}{_hF@!i^Nhxum{#xmrQ* z-l-5e4g4QLuwz#~dsb-G!MpRQ3oUy10M3sCSO23IT!RG|?PV)`-Ehptw<&~5|(wuE=Y@FCQNVM#d%zp+dK;E0e)Ity+)_qd& zuAvvT*M_p#)9k^QWHK1Rgx-9$3SZm{~G zIIkD4Kf-PQX?$&2P}DV(Am zDEI89dS=NVz(Jsmc$cFif=J^t*!0&obR#9&jVA7vbF)1BmoHzwe3z>yPC-F&9~Qob zH*bi^0>Wwq-Fo`W5Yy`a70=HxDlp)15h~3F*qWG_0v0Ccle6}$Kw*!Hj}J!kPq5cK zK5zDs2&N`z6Pp}n0SG%4VdnY%sapBALU=&;n{N-t* zT}{T$&R*&?#z+|7krzxLCGvR2Si+c%?FfRP+gF4QxZ5tv|9@!x?mOu?H^O`n!G6r? zob-BMAj0_HvNkURXo5pS{Xl$59y@j!17rO9rS!zy5bo$5MAP(BIRJCJZn7T>1@%i@ zAzBK!Ek(dkn-#4soL*m?(A^i`d;k@AHkz+ueXKIN__+7JGB$)VTnjoTxITho`?+MP z197pjER_-H(L+h{C@+QB@05gu1ZtVN@89WL5|4IKYwV~;6IO%U4FSQiMM0Hmy02pI z+jybl6r5MTS5s}!(yD+qDg=?~V}Xf(Da2(4-%=2N=}m1RVPQtDumbxG;tY{ipO>1|Zz@bnlV?&; z2)GfAjI3Y#`S`X>PEOW>X3`u}+tdBryF!Vr2AuF7*h2JaX=qwklKr98w${}tqTNk- z*`c%uheyI2*_=bToUIkk6AztOO0dUFKFgC&d7Fqyw4M(if?Fhigvn`$9cZ>2iPv?x zkz#>Kk%}2H7ncdvNU@DIL%UTyjOsi23*sqj{N9c%M2qzPoV2Y=nMq!J-yG+c zrrQvweDY+dhxQSKFHB~_jVRH(Vcqv&8|FtpwY}_O;$xmwjlaDfSeONZ~D(XwxSq) zsB{;B=?_B(yP7_v>`TFBx0Ry>qz@SXp=ea)-2ixUnA(T1SOa2pO6za?-YAE$yK4UzQ-a*ODV!Gh?I72RdBd^*T~ zpn~kn)3*3NpA<&Ye)0GpM>yji?0Qh{FevwJpo-%U2L)#d;Xw>n`6vZ3Bhe}5CgXSaW%uph zUk$O>#NIyNNy+1YK{*o&1BnD0*9&RWZ9MZ4Q(oimgB5rB=xTp!ZYr*z^xAateOshT zcu0sWxD)}aZC6Eys&Ju;51;S?5DYb!@ro;~{mgy=zsPco=HgjpG} z8?I^^&Z_ow|9^MGIM1X z(j1jp$))#{F+694-HyVdi^8Q}>L45CvoxREt6o-G%87OCnT7RaTx#!d1q3i6p+c^A_JLt3Im=tiJ zHec+_VS(x&EAU8h3(sj8c$Od)+(797E}oEbbaJYJ7{Zj3X9u?(CCT8;fY%SYD~^s2 z)H1)1XXo>3YQggH1Y{SiB(MyeekytB&^9Q6MFv`iM)2YzfMlWElRlxxC3sTO={v%; zdjw^vH*ctsaykdi;!;iDwO@v=e%F=aMxZ@jT z^HCH8oJR3`oS`WhP7Gi6z@h-$avb6&L7@9yHj8u zEOUnFJ%O?t^rM_g-ej0sSOh{~xs(0#xQ-4ByXQ9{td|*-;=i21cev=xpcCOjwQ>&a zzjyDR3ciLffH8v)P*^K%V9Pm4)rq-ySW1W{ta+=_4}z)&VFuq5L9NE}X%$?0&qGk7 z#84Jc(Jg`2A)$(q3t8QC@vcO6e~;`Ak-VP6XD3Z7-@D2D#JPMQ3G!q0XO5eiasgy$ zPI&C!zdtx6t*m=x@2{gLf=z}1FSAV_O%X0e8SB|^+ z0FSM2-=3wo?};CWK!55ub|&^N;pY-Mcu-~0wVFuyM_u#UETTf(k=YffsDgOQh%v62 zD^6Gq`+4S&SC>|EQ&V9 zD*dvzcZa5CoQN1Ji-3s87Vs*Nl_A)vm+uso{XY$vSt{S|NIO`O$}oXvN$x)KU09$=(drRP4(`-Nls%pWoz2t&+exRI$o| z;IRo4BBB=K0O75I3FiO!JNAeekQaH=l{{?G-EyE9hZm`w}> zkF}76L_`D?7dw`8&k{Ndln&kLSD9xZliyd%WF2|%2=l+hSF=8hap5A48Ujs?jlvgw z2umm87o4?Cz<8GMv$CE)Z@Wt^o9@Rs$inffv-Mva<7^RMt|njEL!h1Jdq=habr5_! zxBcF&e~FWHbwks6-(1hl#=Xy{v-$bnZR;%C0UsC&22rq-ycL^)@d+LnPP_ z8Qj~iprYi{@ct7R64Tj17>K@)VS1{~?D7OlvG8pC#lLh=3a1Q{ zI-{Xn;xeW%h@!Lbt^2&ifA1uHVIGEgl--Ll2;**!Eysc||2+(Hai-)&>n znBAc%Q%-5h>2h#ynX^1adJPO*%pZ7MQWE&=*)#rO)~td8mBro|xMyGB_zZ>y2gmpQ zI#}^0KA?C<`TRKjf2qyoLAiO5jR{{Kn1x-x^RL}GWXlS?_W;)5&z~tsZi9i_LGb#) zwY3#DifQrplZ%2rKQ|JlrnPA;@+7hcJdZF0mzS4Eq!Ku>`Fl%|fjh&O(cd>6%6ri7 zHcV%bsQ1K1wR|TR7pd9KJH9VXGrJJHz0>GBGGP1fv$HQ@u|4=7-f_f27pOo1OiFAQ z$nh|v?AFD9M!wppU#{G~H9z7&X@nvN^M0Ye@j|3)vwLc)ciXftLm zWx%+Ww6N{m`JG5W)0IEYrml5kiqgbo4da~c2jku=M|Fchua7&R=Tvn>uhLBjz*}YF z*N#Ir@7P}46}P_$+gualOK6X;;NzT-^d*x4%}Y$8p%r3%yavo+hBmBZN*X32lq0M{ zM!&Z=DiI;vp>edvuPkz?m0WD)nw#p|0qR63Lle&lS@gzquSCc>xu_ zd3$u4RJ!KWi;;_A7#2D@k3zD6!|36%JLDa=xz-aF*~PFL5$Zglst#OTro&POfxgCk zFdXsk9-ZUpbB%}nhZtyATK?luhZ{oFx|0?Fx=GLO~noR0$})7!k{voIyepH;L%zT`?TuOd&Tq@b=wwqCheZ2k?m z!s`Ru^_6SW*H5lwmQ`v#jC+3prhsBa#^0E*u5W;U(4!0vrixS>b{8r_|ydY3Tv;F$K1(_A4>~AJn>muW$o>& z@-c#7x1|^U)8i9MSd^_8AgX-=lC$%JU3-SAX##@olFzWbx`2?Yh-=Jcphap@z<{m^xL&+Dh`5xx|QO@Y~!eI!V8t`HA@2}oxA@$H2DMUYjEqCKXcXI0?a@Z5}b*K zhK3giLQZNwx8FEkLlfu*62JafT--jrRp1OPy!32rboW084dZ;)*nb1yCfw*s)9E-i z!Qq%e!X823(NdG{-pDaUd0*Z=)cC*T70zdaZo43Uz2mD03Pfm@QxI-o#ggDA%tG;74R^EikR!P-5?7 z)sdC{qkoXtgg1A^(w_jah>srs24GL@>n-KY%R`e7OaV#JSO04Y^bzgnPz%b@trYG{nu5Dv-z*%!CFtu9CKM_|; zAR}h#cGx$tHz5StrCt!OH6gRQPaRrDfv|JIsM+4r0vmR+&uUqY&^DvcnZWIaG6HF*UNu!T-GqpxIKB?1SV-bSMPL2LmSIGr$3Q+5h~r zQ5SklI5t?0Jw*E(k`E)Q?l={*%Hd2E4uG2Io~>0{r5DQ@xL{gWw_cnZJ5Q`}{$XP7 z_n){u?$uTn;G#x6hzWhEB3drE91hxiIQTldbp<9XLIX&W@(#tpFvajNt4~l{xW<R4_q`o$ZC4&90k3ts5GfKTm6nwlc+;)=iK*wPp0+R;S>C$|&SUhnX74Hw z50B{!U$Tbg=Jq2C=qYP_4$>0`CZQ~W|2^{PcSJ*T(lNbCTi(NmnZXj&p)@NS9J9rI z6;wq+cilBLfiVQoltHKrEXOpFQMR=V9IZ5e%_s`*vwQ{da29CA>qs+6LqmMQ@r~$_ zYPv9?DT474KZwu3%2Y&-!7xx0UHZ%0lOQWd~v=VDDk{3WnZqL=z8lHh~ zZxBHBV(*jOw~lzQ+g3b>C0_JWbPsuf=%w}y25=3*V6yw~mxg3`nNA7Rd_1G5HODEJ zs5cfPgLGflkq7;;X85k8_b(>+St#elZeg^tI^)8gA|VKdgtwg-O#%B#zi2nGOK)`ju`BsBjP`PjqBysOB3UBUBeme=CN-z!oj! z8k2q_JiL~eNZhjb9M|E)+LIsR-Xs)`d`<3Huz;yv-bs`|oY*18uh~XbQh2Tbk<7w} z`E?&t13d7x3c^YQ3Ws>O72+uL=zLt2r7beO9a0t%>B&_O=4vpM5h#66-cSU$6K`9<_hbAll?;`TV*|TS(2d+zL z|9e5ok#6hdBd9Jgm+yRxt;GJ*jc0G(_K$7ElFQ=i3Du)|m`Nr`lZMk2AzCsvW37Yw z>*0OGm-#EczwcCA+T+xBTij-B1NGni5K)y~WUNq_v|0b}3k;l-p(SJqcqZar6e zc!}}9TevRG;A27JENV@ZBC21*+qaY?Ox=RY?%wxRBU2q?VdNwtzrvp?-sm0@99))= z6GIAV`hHiE@h7TkHa9ilAP@663$z9XZisj^12F#v5;33f9TY6{$Zw#?Yrt549I45GS!^O@=$8p& zKt7ChBSX{yQ~cs1BJL-4sP!<9qrWD!ja$mxXfO#w1c7HRR6%egg!#Sal4{U%5sx&$ z-rk3tk-ji2Tq#c}fd}aT*AVgrbb`A_!F)vfmL;6*6Cd#MC-hL9Rk%uCfN6Y(QG$K3 z%8B0OvD+c&Z!OEZ@hB9)F+0#sy1 zG!c|4ZUcFF3ksC9%)X$#ZXHns*8((^cJ}|N?YrZ-{@Z^)wzSN<h_PiLZtb4OGZh zNXSejB{CW$8YCettFl*CM#-vZP$?s#QnD2(>pU;jec$Jt-|w9B&*^dB_v8ERE}zeP zyk4*CdajFGbeo!@D$@YU;#hz~sF?h&?P@)zi%x0-s{ag+K?hPgphADu-~;U1VLclA zIcTvS;@&{2wkU;-)1_n*dR!42BPFb-uqOycNnjhen%g<|@dHt2lv((U#s5$WYCnI; zFt3k`GlU&Kdjs$@--i}A+wQAtR02>b^TPR$O90^py=%B zSR&IwPu+Hts082`l*`Wl6NzF-*U)QQ3q;I)bU35r0Pg3W)`xz^Kt~p=^U!b0!~RUN zVr&X$eyH&Agc)IvPPu;nUdEBnhF$OS4V*0uZEu}-<+Nf-4T2B^y&_(}MEwN4Husud zze{Jnl*6FJzS6c@1&{*|FKhIchCsFo+|nAzROUc& z67w17Qn5bsO^;OODIM=-E-D&H=q{M;vtYx$BQHFzL;iCUXzRs_vllLGva}Qif~5;C z0UxXE>Ddwg5aKM-;LF?BvVtX&$d{Uv7m#|fhOgg(%$iW< zy(sqbq%w=4b9d<8D%P(C zbEdv=qo#uy{wBk>pkNK)X3hB^k_0YjQMgLs_^(dFpKwf|qcnB!#D?iHFf=slMu1rv z(oY~3mur}fvXFoM19Q*rRm51~wB9i<4Vor0V3GL+Vtf>W5WW%hvoYvoz#~IBoZfl~ zzRY2F566>{#oay6d=CdJ>w8quC?UE0)S4{rPCKlk;`_`MC)!O&#;Jlu?TNx|`ZcdS zu2~^|O4tM7BAb4*FX}W_Sdy2o0GR*N*d)#*8Bv3bWTtQ#fLW3#Sp3oBeSG>B*gNGy z!5lCuyC94UN0J}N6l_jqV<T32epdP*2kwoSP&RM%f^G4*lYzheVRKbwXIN z5KvQm&Ji$TR2|=dh|MMQEi9gBTvuG;V&-Cf7bRg>GFSQ7KUhtt3F|}upbF&&5o$Qo zp-C-LZ~UAlf@($p3sV&oG^t~yEsA$Gp#zF_+u3|V!+JM_5t79{2*it1hIE75qOz=P z_8PJ@9M6xMCN}uhUn14_A7tI&Ev0Cw)ox!!d(iVOKtGwBULC|R{f9`0o}d|f|b{&mxfzCSHHV)-}_C*g5P z!({Q|W#V$pKX^gB-y8M->9lbT&R49>PZE&JD$+s!NTqzC+~E5Xme^}Y&~3JLA_HaM zcZO=u60OB{N58!P7L~9xy6O!5%()6q;@+W`u>)XNi@lnQRs5y7XpQefm(LzQdSsBM z8W|Zmj2@+LxPMP}?b*{8aOfADNe70yOz7yqu|l%Grn36J8C8t%?*AwC`vYc1_FE(8SJwH#j}VrIA?yj4cgNX7hEe>v|6war-O ztzZ}BH((DGW&5VcQ@9CjeH3ec?ofGvgy4?_*0J#g$Gu*s9Q_vpSWw5 z?sR8d+=p#5k}K$2;~_f1a58hjTJelg^8>(69%66Sz3=U{?XYOfimJztOYkJPd3l*< z&YbCbdXK^P$1Qk@*4owYDhztKf{}V+1yF&(wQ!?6%9=u`mP{MrjHGxUhZO6a&4c?h>6!b1BD_hJ~TGy-%^Zj!U)pa(zfywEXDTN@KYrIdvaS zT&qq{iw=HO%{y_v^B|g$v$K`-s%1p4DgTVhZ_JDPxbK1Hx7?c#KVDD{k@cyHC}4{G zrs$fhs(-?lS%NL#%#vuIZ%-8w*02`ON`oTGaCRZsM*=tvJ1n)2KRGtwNXB;44*Pj(|4Pn?DB1=Ba$3n>+KPg{Aaea^cK-#MXk{_%LH7e*53G^ zzy3wV|NQEb_I%Z1-ZO8815|0laxHssoQ1$T^of*Mhy$5S;^}}ZAAkOZ8Xo$~@Ho84 z+Pj^U+&Bs^K63@IPHJT!T9>}>e|pfum(n)4{7&R<;N~%z)9xaY$)@3|a%kU@2o_#| z+(`0zm1MNt*$1#^NMz(0#ItFAR)X};pPX?3PcEi8g+-aAZya}RF~=57Cp*P}pz=|L ziIoD~ffl@MT7>8&cB}{WTOrtf0b_)}wfJ7X4a!9DU*=zx;N&@pDCn{0(xCe3{0c3Y}1W`0K~2Bb@A0J6oPNEt+ku zVjPjbL3qxk+)?M0{CSq+m*=_WI=_&gGWNX1Tcf&Um&3@x%uDgtH*vEf<3w}rOCd%;NR`s|C=PI8bOekgsR*D*{Ai8Gw}xIG)dauDR93FO0&v9Ebz~iLf`9 z!2fe@?kaRX)uE0y{0jST(zjEQ+N#Zx^8F-(!EV~Ies1z$FIUIy!cQ)aPv7|tj&Cz{ z9JlSsna(E3#P)n^AE$TG(i0ZF2|2xWpQa8w=)0tRR)YNw0c5iF)x*Q?c;XL%Jg~8e z2}X)H>~%>i(uY5KHryyEg=&(FWVd{nC85ZM==Fd8xrs;6J_E4l_p;Hg>N%S6(Ttk9 zRC#0`lj}v^7Qi5b0Z;>NrPP775P+{ueTt>BAE~so)FENK4Zo!9OzcjSFGnI*oCcS^ zn5A<4hAy=9gjMvI^lrwU!7~ENJUDlaurLE8+eu+g9e&UAT1bd;-x&oMgYf{Yt4&AOIR<{Fj6_>tan`?CJprsr6^z}l(*^b20{pK^Yn!a7xLDF zEXFczdrp7_T-I7nsN9g0z_&p8SO6(xKjfkCpkLMMVw>d4tixmfs{swk*m7v-?1-UFS z2o%ha=YrN|_FDJ!#}zhzd-p4bCAD?W_~$C_JNxbPb21*l6ap*o%e=UK`udmRzQK&T zdGEZx2!&O$LHd&?aQ?)7mOall85bN9IonY{+VSCE&_enXR{)*(gd;?5sgX1WXTU zX#CT_@rlAL2IqOP@QIZj?gH}>C3v{FM8xgjcv|+SCZyuscUC&WGSH60qICa^KQYD| z#SREa&r4kY_seJ<7rv?TP+%60yMKWstunv8Frrb+z#|5@e*e|5IcdIcp>=!KijoJA zm_I5C(m6+vK$D^Va`Wq{9PT~P)h?rF>34aPkCyC0_u19Y2{Kkh$4X`o& z=q0q?v;|9KZko@L1rX=-tj&454t5-b!jz zXf5`ySj-b5u$w+AMo+a(#`xBp2{9uE3($oP|N3Qxu)g*grvm~+0q2OA#amy5K?NJ_EFX3UteL-k&lVkMYky zo5@Ly4mIZBrzfjNAoyd$vFI@J5E&zH9~{5M6&jG-)GlMz_wBjaBxV~SF}D-=hWbJA z?fE0912?Iv(rA&XYYHCDizU{Ar10RBjngev6LJfnDV>khoHEptYlx8%}NdHB5<6WmmU1v z!+a+6Mf}|wBbaf}66yeR&K^UdU4hN49}dZAAPS}K(}Z&x~n|z`m%}?E|D6bl+|~ zKIHGKKxz8Ez1<&A2cU*yx6!^-UyvEm_()XV>xm?ximiPHki0{akId-i?ir7Y*3WG7 zu2#+V`l)2{U!PBOCVk=BXwO%J1gpM}kNHR;yvnhz3@jjBCh29d=rqjD7brNry_w;H zq7>*5d4I9%aiB*nA;M`7P}SMW$MWXH!XUU6ckNMo0xRcp0byDB&a;A7+zcCU7rM>a zd;i#`PJ4uT9tSY2H8<1lVO~+uI#>}j=ga;+fyA$@8~|AbPY@IA(@YGKf8frL@&NvW zv;z{&2Y2}5t!6Mtw2dc_DCBzN$mi3@XJngPaJTigcs{zBYU7UKFu)fi?5ks9C=^Xn@_jy{h3yN8-RqkvJ=uD=j3VFdvajm;o0Edyuv+k0+O;D_LsG`c zoo^60hmG+){P)9%aCmK4wffkw9N;W-j}EbOcp1?$(=X{Web47}OGIT%U#L7E%cqp& z#{g}J*@R{jxs1%HV$EYxa&vPViotr4nnXDEBO3Y?|~v16SxDlJflvQEv>+ zD@&E&;s%P>^{zmWa@xUHmw7?DQ;LqxZRiLTYiLjUp;QYp(t!+`deq&pDVdG{GbZ?P z1)nN|b;=PX&4?vd!Km#%;P&Pn{KSPO4Y{)N%bw1|T!{=Hc!_8|!J$AcEMRGAw}I6U z{v3Qxtg2|QcNhpy^bHQm?3e(upt%o-4P81x`BiNm;za0m-4lo1-lEeU%bED5>iUtoZDLb*9cTmV0)H^N(^Pc}N7EkVxh%Qyc~H zl0gA?3Tf?SF4GHtyQ*B$xLq%Xk)WTz3sS=7yz!)Q6~5fMEfmc#Jg`}Fo}(`Q0Qy*< z&HwQS3^m*4bBCssI@~{HG_vl4@DLKAt65QmY6AWDO8s$ z8214!?t7FfR5J_?YTWl8J9~f zL1+4@9VbB=s2~3s2n=DTRh232=c*Eyoh5MC|Ij_331!rf7XSgZLKNE;A6vU@I#Gi} z!hi{<{EU+<2r?|i*2ZJ9p!J55@I3{ydu&?0%%V6N2!F=zG)C`N+v!3VAokSR^_TzMp}BKFPvU?>7xaXuag(E~*M08HQTEo=6) zkgOR#Xl4Kk3D5gBy25dR`zX9}B_Cz@;{81|q?^FX|48Sk^0A991Iq)=1U=2_`kS3U z$ut`09-a`R*xgBHx2$g0ugh9wQ6#PL3j*H4=0RhPZR0Dmw=;0YA;Zm~tzv{^^zWRZFoc2=y zxUx7xz#%SlDH@!GvM4e8f_bhb5);p)ZBSGD-oeFyuvEZeudVIZclVPi3=HZ;64U`( zO6dZG6UlpB`G%(2{DwqZao7foBHLdtD!H_ z@Sp)naRaX{!vREzz;vopG%P;*(9i@%1(7HO!qiqUNkqH=C?NsL6uu>P-M5XH^ol&( z`rUw1DkEVE;Xd3J1qB72?`~l8r%J;*U!OO;HEhLpbqgre=#V0nECg4V+5Uq|AwfaI z`bCSFKtFD@v%8Zg3okE9NJ_M=^Tv~GZk~ubbr=n@*F9zid83MgNDk7E@qat zZ-Z;(UFTa7Cl~yet+Aw+Y5?|+R@^3_d*dyQJgiN{Uh}YCYH|AJtx`089kH}maf(Y)g0gWy;Iq# zA=|>)!vB<~!?|;$8VQICU2`PLmDdC2{R-L3U*Dw3Ed#loNMQ4w;x znNipV;Myq=^=;PP3zOFjMa!4QTv^h2Qj!)JbaLOg4OPJvY35So2Y62{TE`ND*nUlO zUV?3ALBWk8Ya3le=T2nC+DzxGcsdE!XDUq>5$o`v|@}VX)IsPd+nEBPqAa zQ}63hR#ly-ETg$#j!`3HcLq@tUv>ca4C93oPZ4@nnnQv{Q?%Lt)0ZzKd~M5qWB#&X zdoKsivn#8#c3yS_M)0NO{`$7IHu;>VfH~2%z5v-osibJ((G(K$T3m|Qs5z7S*%FB6 zZ%XPkO5T6Vetp-HB<@OR~EX|@AZ|* z33QdX*{f0?f~~(*N^fc-#GO>@Bsfza&c94L#{R%X;DP<__7qr#^yE396nR}fPoFkT z9b^MZKaRoI=rA>!f4SW{I*2JSaQ1SmQ?tKAZgx{g9RJx5wxbC`(or22UqH(g((gVt z_-6VXgqJ)4T^#U;dCc|o2F-$6Y@rnSnikE%%uG2Nh}2eCnEr)p3+?R1fNJx+Mifx2 zm|88{jSK@yp~m)Qe|3XZ--#X)Mx$@YfXo<#6G=rK7Mf~6{YaT#Xbj@ZULJY62p(dD z(2xyv(k6t>k(q(BxIx;niI3;8AAOrl&J&t?Od_0;u@{7(g8adk_Pn1Sw&EB*fWy35?) zd|;qt#&i69aKNhwVk3Pk&J@Za)&%UATS$ zByp!TtHh#-!i2C8D-;N2?**C|fX+q!A7h{a^QhdZvg$EQuU73{8qK1D&J9M(boiw( z-cp78lwK}GN95Ee?YrC8OBpSb^C0Mv9lh?u&@ob~HmO zL*ZaxCXNGtU$FCoc)$K)%c8bVDDjJU+aK>KaO`1K}I3FWC>x^n1KeQm%amdB^Lu zyLS(*oU`%gjg!lBk?=jCm2Ew*Q?G49eFd{`R>yW5q26qc0U0e1*&!GDt*(*n)vvDuHIsMtUD%dJ!duSwD5ewZ5b+4oD6(-*D)bGAotNiHhB4wVOKdGpgi zB2k=1|K8^9+UlY+C!dHI|DCei(c#5mFPT4L-)ZZFs^{xEzSD%{Mw_!YDyh$Y;oA_+Z;Fa zuoOdjTH%U=t>fR{ulY%bj4_?s_%9O!d(UgnbO>Kq7)0%0gZ}dGQ@q^n(xM`8Sf#VidgNI z`0PByUKsSoOf$Oh!BnT=ciLFX0fJ)3c#p;F7j{kfeSEn2Lm-NB7`_Kh$=l&x|A0GJ zscILY?gGto3G(YX{M4eeTy;sDKuIT1+lw_oV+Juc>V1I0Xn$E4>rq0Uo!r@13xLIeue6lSHLVk}}JYzYaL=1tz!bLTw0naUbsIUa3yiuYO zf#4;Qg+Oq_Giw(6nl;@k*P+!iNYpQZ6K3!Nf~>3kX^E_!lK61xHSlRpl$Hc*2ZTpu zUSJt&lNfWr!N3xH7UE}p2vum;f)e!*z#5zv} z#(T(}9zu_s?o_{GbfjgX?(OzogY@KjTy8)7+O%cUfrOd0zEGlk0C&+o;~a5)xc6qZ z&kWM9K!8b|7787^x9QQ%V>m`;pgJMjX7??&W)$=zmW_jB4{{=?>IV!M`A3ez7m~tvUD^NZ>I<>4dm@b#q<=AQetB#y?nAc1b17G*0Wj_KqX5U_>n}$ewy1APzEynAjQOU)xSaA{X6+tuMpyQLjz6=Ng5`1*6?x%94JbE>ueLN{CsiAoM zcS-E7${Vt^{%-FPr{;-*hT^lyPAfHbU`^mX)m*x_C)F%BweEzP#UJM5RSp!gHVd9Z z@FF0ok9cI$Gkc&GVK7i4ob#G4sRAe9DJ@p>J{zJ#eorw5!isfT7#KUyGC(M9zE z^i3*v&Q%&I2x{}_(ceW{ zPCpzGV3VOXImKIvZtXpm4@zXauB0PO2LWC~#jZPQ>G0wv6Dqbq$Y9{><3dGGr!3ax zeu_xlw25Ynpgx8IK^7Gv~jWrg8~Euk=QMp*noevzJLyE8Fg53kIBw)?B_wU-ZLn#7iyZq zGS{{KGZ&h-P3Zsvj%4Jiq)xzwEdtFxwZjNs>4&}BQD{dRGngJW{Aho)Cxpe<%VY5r{reZvfpd zEFz*N{SO>tFo|*^C~M>17RYog0qtR^!y;07AmM^0#*rTr#cTG^%Or-9*RQ+7re-<~ zJyJdBuy6%4;7+lx74`C86^M`j?-jeYmp!A-{QY<)^yKJ>%+;|!1dQMhB2ApWsWG&VN#c3ka5f#8RPPWmj*^pBNXe#@GsaA z=8g#7Ka}R!eHeA`460EwMbWpH%NA6YmnR5)>+k2eVOW48;M^F%BbnlMMH9r=(jJeW zX2diAV(1|PSs9wrm3MT+xpB~`aue_Qy}MD6ATc!LgnFQ`Z3Xhl;0izD)KXj&(#(uS z^5-I&XNq)ThBs2&ahV8#O*q^IOy3_bCF4DfzJc^Mkd)l$=Z7%~f{EYz?bgT@8r=)5 z@s(vJzcRl^OZ7aYj5M5$K%XUf1p(jJ-^%O@L?|f z^c@k$uFie7#6(afsc%+u=6R!x6CD%Ng2XGT0gE%-uj~-+bbn(r`s+dE{gh)TneJRU zYEjqEwbKz}1rr^vYxwMc0k1~1|nvO7;oY|3TXoK3E|mp=`pU7`~yo6 zXl6zgrFxy3qtL#tnQ}X>g$4wSQ}rGoz3YsWFcI6^w<~Uv#(fi>yl=DSx){5;xrMEn zfmUPjVpUBbysSS08>L~kxagkp2^fLdJlW(H&7mo4h5`l+I5-+v>V zG8<*!l_2R68v_)OG7N<0j{aJ4CMakF2yir&i+UPi%|dl{rwQ64jEI>tI4c?3ivVmj zH2Mh!ljYlY+5RbNXwEq{&B~@$h%ctmce@x`1AO{bb{jcDP>?V)a`wG*Xt%@VO{K;8 z*e~=2cq3F83V%rN%?gJ3T$hD8kz*D1st#zRh>H|3aThB7IMZvHKZ01W!)qLu1ML^* zv}w}cA`r+c(I1?a&cwp4u-`KBIp`DnZ*|>o3!P8n7_HV`sjBaw_lXV`id zgS^?uoU?>5lm{tEn4!Ti<`wzoN}r zw)aMSc+g2OK1r10(OAbs4NEdXRR zxeDR>4-9|M3ojcfmO$lh0#mU6{R5^Q<>+kK|Fyqaxwu@w|2ygAz*HRIv~h=Jd+>87 zw|k%<$d-SA6G2-5FVYrb&D1ZK-84%F>`3PlMQl(Y19Yqu1nqru*L`mxfLdhDZ1x^; z#sSy#_5k*c>-1_p;=OcqXd9R!ngoDtd@2DjL~D6Rd}?pEf;EGfW<+^sz?NohYdd!_ z-fl@Mi!lo}R%RikK~q#aQtYTDr_5w70m*=ccIeTE?@x@Zhmxxmp4bxj?(CDJ@qsE- zA&4r*rdiz55vKq*(kT;jj1!qe(+oeUbad;ajZ_DQ_5wTsA$4eLRvw;>+Ja+peFbe1 z)WO!RKr;-1YA}nB`hp;8Q*^`-1E6ZG(1;RS9<^dJnU~&5?Z={Qn{92E(8ddvw-vBt zDN2R1nX=dqfkDOq@@+d^kNTbrnuK)mV>u%LoxUzd>?~oj83OOtMQuTl2rjUV!=UD? z6jTC~kF+1r>Ldq5fyS!ier7%Jv-@L1QOh^rEfk_#y?L9>G8K#!$$)W}NLH||CFB$Y z1KeMlgnrW)!xOMP8nhdDS10F8a9g<`?GyA(m39 z1@{>CJSOqcCDRzl#F0Z72nB&6hd%I`D>R5R5Y5R40}|!FZTQz0dern?QYCO%cA9a9 z+Rng?FDIum=0c7^#nJ5L%;?tNNCiK5phChmb7d2MD`1Cgb- z3x2gH$Clx>Iy1Td(~<#M1iv8B8f0pObwb`$IK?!ZQb5igR>mLw{o1RiF_)qF0Te7} zKt}~LJuK@j+P|RirC%{^)6D(f%q0f_H1Oq6?vt?XE@l;B0NL^*#t!^kM=O(zRhyZF zx<1a^-t)t7m)Mtm*6IS*qglzq-z>CMcb6t?>9IIC&vH6WxF0?#lN{2Iy?;5RP<@3_ zMU7o}ImuW>1~uq+340|J1|bPTl*Nj6F@FR35on{Tzkbklsv)!m-1rNquK)vl0189E zK87+S4N=Z^=6t%2oZDzoiN2lZQpn^v@-Rpll^@g=Op>s%0QOHs_~ ze0U5f^ya#4(fnJabQ-2k4F+AY7@!#>OmauW@h(p`c5Ycu02B%fD=Hf4nGu>VpS*KF zh%SOYA{CVtuR20y3_`)!LN5~Nk-{dLBO{ZKp$*52%R12X@?Vy!_ zr`pNE!%GUXkitLetq`aGmw$Kyd8zdrey*Ptnc=Q-jG@B==l52zJ{sAZz|Cq>xj0i{ z#qAv?)S}{cgzCd=H5r7Qx%)SWtp5M;A8?VIF*Xw-Y(JVIfJ>thP~N{fmV(xcTq7S^ zpLsM3x=YRvmv3ZO>`OTidZ_wcUAgI=y-fp|b$O57pKN8~g@*;Az{#2!RvO|qc9;5> z{2s~BKI6G)&gkg>?Pt^iU?x*5G%5u6QF001STZI@AaOCj6z~eFrZWLf7mD&(f`gFe zd&Y~Z`YQ^~fgmlSNH0-4$$?<$NeN$p2(^tyV+{_j`j0gx1?71l!OK80OVJBtfRLd) zGf1FJ8$W;i$Y4M79dNI+Q9zD7b1U}D}QWp{NnDKj|t>*YsVs2D2f*Fe@P=RwOh1*vAGq%o) zlVz~@=Ojx^PC@O18Lmvo5&O4ZE_0tDC>UD>7wh%a{aKu=l6FT?e0l`q#jWaS&)Fcoq5<$iKC2rPsQ24XZ!&R+yhX6 z3oQ|^ke(ZE7-R#TEWQ_Vrb;2vXvLUnK&}*GPv@P%uuUCmSCHw^aJ18Xr+O~+|B2mBv@~Cz_wK!Z zv^~rE=!NH9U0HD15|_-YMq9b>z_4iVo~Q1<_KKt1xz$FycD-Z@1FWeKv(_SNW;MXk7}@KR z?c-T@0$IDM+6I&1vsQUrT-Eg^p$_BL*+o!^+A{ zh*2UmTDAbiuZkwZQ)BfK1W;?LV4e$yD0d0`nbp^HW7AwrBqL`#MFcEwVb);t3 z+C&P>o-Gb1w=6&w`ZVt`Qz*c>7*>GexQzDhgm{4=jFUnG7YYgUX@)QmJq>N`v$da0 z)=}E*3jOj?+rw2s^}CKbIWY8iu){0`M39u*1Dch-59YvXM<+hnc>Cp)Y*QI9a%qPo zX4U7q+%ULS1~HoGd?6u%mEtDm@4WB53##$}6mn8KuYCe_W@59=sv@tTAP6tB)GmKr zJh?XPe;%C>3oZg;sSd9Nf8vuIxq`4g&h;{71tBffJx?mTQr9YsE&85`^|5UEhbI8+ z15rGSATa@7qyjuDei?d=9ADLl3=Xtt1Os*`1Ov1sItBS8#|@JV^3)o4cc*_ zIxg>^j(CAbA{joo%WodV!*Yhnt%kVi*f|bsVe)q&t_&pXzFD zxDPlmpr{19&ZT8lx8w@6dUsXr^Zl73Z>w1Uoe{S-`W`?pQ1Z-F#P?wc&`qqLFul)> zmm)_@&iloz$pi;aP#70 zXRu!rqzn}oK58a>-ufmObXZu3a6JdzMtCZ>_x1zG{Sz09R8}Ss^(kk0r%P^sS9b@J zad$A7X9ivBOjfTG4>N~pnQA4N_Xtx)tfXeRbqH4J9@K?EeJb&q)1+(^QoC`8X@(od zQxQD8OE>99Ea8tM*6pe}i=$Nc~d zh<(~5Wc_GnopTD&j~IK%+qrV(%J^>me)B^2<3tNBS;9`0DQ?oGWsj`@z5@s+y*s9= zQ-&;{drR0fVZSxHS15TByU{Y)_T15kcluYi&Qy_Hp^wAr0>mWmK}m_(nr5&=-AHs7 zCD)+$4jXk&<=YA1YY9CyE>@Pk_>zD{`BsI zf#n5K;n}u|I@#Z%>QmO*9{HJoEwDo*@gnX}Eac7P`~aIh#or>{4P@1Iu_qp;c-YdeRP`svCU(DGg_EMSt4o@(c|EEC zQg_zoCS2@>a)=*Nm@xCH*b3=)5f*P~i#Oq6dAWwHBJ_?D#S`P6kdmYwI;wyN?6Su@ zR0(@)=@FGDwAq0`rcpR>NWz%|4Pe-^ApT1TK)~2#q~Tyro8+z;CeeT$7C|#iwoH?( zCCF^i#Y+)il_`O&z*9fBVtbL|;P`7USrb1M><4}|mN5PCh4{1l_5od-{;xkZt}#+4AKe|{^2Me6l;++&F3Pgz9cpBZ?MHbD1et+dbETN&pzg8^a)a~U${=ibG? z(i_g8FNITtKNTQnz4MH$s6^gk7Bz*XXaNcO0^dpI)%x=VNd4*{lSx>2Ui>PrUxyN& zA%r2mYLN)@gD!>B^;-?5{J(s^{fs|NOsjmMXaVj`G-e}tV9pdGk+pkv7#jzmvhBz~ z;wx^bR7ypzn5Zab7tWd(`>~LMlMRz`pI1Oc%r9g0ca+CpFN{q)372 z>T<$;$R(+Bn7L5-)W%qnq)^H+`jKehN1qbI0-OZ1%rHCc&V1I8YM?pl00vnZOe%^XSnjDTZe49~|Z9Cde8Y8O3&ER;vUK7!mN-BH4=HKYaeY6i2lEP#%z! zT4gA1_|!PT=-b|%z^wBCR4G9>jE)^EgtkWzu!`JUcA7d7ijAX>BKM&&s0%lH*8? zC<8X7z2HZ8=v#!@+2vTEz`)ES%ONE+O51@mnCd&Cum^)ddW%CBqyf&OFn%XDaCv+XnxY8iAVVz@MpTks zi{PzBV+cKC+V}Zr`TfvvnZ4>Ip#d;R*qwz46hXy|6?6dwG2w@ZzGKn(et8soLjRYV z#j#$LRE<92a`Eqg%76eBsPL|@_c;&0Fl`Y4#n>6}Uh+Zt8pSe2PmcHQuNOW_%G;y7l9>ps5B? zW~`6x4z$o<5e84W1Yzh_>CS*iD9Y*85av#DTu8FbtW#K#rieTog;w70u^SE}dfpseqrwi5VGI9kO9 zBQIaJO@G(8Gy{R1QC&Z*n%HhKrvNSY-+7eC(t8fxCF+g$(eXHj zZYgU7!|PG!yt9s?{S#yzBhc2Y{=SdT83h1ep_ifZvm44o)->hEF+j#~pxIejFq5aI zG2&eX#)edXkS~nOL!OFdD?&r=9ZEQ~{lLC`sdvZV@Ch4i-n{|yIr^bifGTn!f^;5L zRh{HkYZ&iq-C(aICRXm`0}wT&M?k>_S__b(%sK-f-FutY0rUB-G@7YA{2=BtbUT75 zfQ1H9jJwaU9N5ww}0M2cjyBpKAUSe-evIN!-mv)iVYA{~7+SB$r&woI zhj`aOQck3EieXZ&dAwc;RDgIOwc-0Q4zCqbIYwY{a@AFQvY9^Z$#FL4Hpb?r3_n)J zaKx_OlHlAM^LTXa7M?C*$4{^z&Z`PH?!DpyE!FyUgs zvvP@)l$NRY$P+V^g7G%6&CiEXQ-2jVvc0kzta-nBLUrAaP zL_T0Qq+k}E6w}AyNoi@a=uD*wZ$a;Or{>>3jrcRr~tq&$qjnVULWLvPU@x+pe_1bai!`@-BsQSa)+d zgyZf2TU-o~RHdd%1gH&*&LN8~QuOUAA{V>)O(O-c!S?k{uPBALF3O{pSB(>nL{w1#66^Z&;q-UkLK6!0cXEuVmGMD>F6J#?iAv+)+qGq?L!|@gHDIHo7hnb z7iYwI1_nJB)-!>+N?fKFQZ>vse*n2uKNt{Ve86M?eG|bs>W4|67{QUPKQ{8~mm24B zbZ>jmG?U~F%>y<@8b?pLFenl^7*yx|^Uqt$_4vv_GFfrLGciz5k_VI29=KQ75H`ft zkjDxYz8V}%z-x}?KaY5Y)X251h zNeFUI5SW!Q9xbCNGv;(TV!oVS6xbr;?`yM%Ar{+!@`s*dIqZlxwh^YBwa4)Cf|d#wJ1nWi(BJ@P(I;Ur1&}ZT-=$3aAeFx z_>z528iaOj=<`Yc-YjT2rwyzfW+z+WowG@d3UK1fD&WMk8`W3ij6TGpUMG#3pMt$% z&pEVO2n;0a!i6`uqSW*_kK=0Tjm12G>2u{(phVKterK0}=S7DpU>FS`W%xUgulwQb zE`b{uM{Q~_rZ^|h$%=a9f$jD;+Wari@x1>-+4=9XjxlK=L-^Z&U%y68u*_FV)D3fQ R*~GxFEgIX@Q`Ia_{12F80et`f literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg new file mode 100644 index 000000000000..1f194eb09342 --- /dev/null +++ b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout4.svg @@ -0,0 +1,1933 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout5.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc15ba74e29025e0c1b3cf6a76b4dff73dda584 GIT binary patch literal 35858 zcmbTe30RM9*Dii%7G+2xREVfFs0^uuieD(DG-#kn^E}VSB#B69LZ!Jhr({W5 z8sa^0;H;XOntz0+C$(_Ff_-{8qhG#Usr`-bCiP`h z;r>#l!ac$B=RGi;{yu2joSm+oX`Vngf6)U?MygQy4wohK0NursIE@!6Z0AU1u`} zvdeRSw79Se8QhHEDJi|5Hlyq|HLegQ;Z~-xm3sV@+_L48wPdZL&aYT<>K31NetdB7 zMw)+8Qj)8i+p@g-At7cVfni}u6%`eS`;%39@dUg!;#j~NzP>drc`kNS<3{+~PEJlK zhi1D##=2qvqIGhX>YjDmL#BFk5XZ9^vW@$4rGLk(} zdv>CXCuz<4wVwjCQ}U;W4y0SOYMIo=TUlSFC>6=jLWO!PYJ^2=e)eESW13C3obSf{ zivHEH$~r*Z_Jz$q+T?fj!5jywqBa-ZqV%}1`O z7JVJc8LmyyFJH59qsF;hFE;06&DnNU&(9aF*|aGkKAx9>T|%S3Ho-=96XiL2B($&w z8_@PF!=g1YfJa5v-?%nDCh~aT+9f_FPEJlnZ*HzPu7Cc7(`a^T;&Zx5V3jd;S)*g= zM&CsXEKjFisLYT%I94GPs}TOiF7U_LSk;FoM-nPklC(6<)9EM;?84D-I=ZInYYZFW zt2DE1lY7Mn8#6QIO5VH?&E}*$mm%s65rkP!a&yHti8+3la>YJO&5TuUqg^|%+WpIF z>T}$qU7(}-P?m=}mX^(DSkiV4Zm$ra}M6zAt|EFG1_O|EtS9}q}pr99)d$e&`vVZJ*#HKiUkHafa7qh&FhW1(oC-rLn)2`tnp zL2^)pIXvGc<~^)J7~uzAUS51QiiJ<3H0cc0)>X=sMUR`(I~lYmea@Jfojobf<%g(V z-lhZgN_B~v+cYP)4Sexp&*(Kz>#hu|n;tGmvgv-mKZ23+w7HFI2VY@)P*GQ>qM2h~ zcvWSV=-cMdB&;t+wZ5_@LI0T&J-$t5!V;KkCQ5b0=-ps#UB4 z=RBRi55$~FP>)ehH!dqHQ?#~D`TF&1n!!6(90OV0=BZzEvzxL*5Dn6yg~}g1Ddxg^ zJ5R4+VhYFha_`!8(x$6o=Qrn5r%uJp3&({%ry1Qv(uy=|%;^0TdHj*MONK#Z=wS3G zI*NG-VzY3ws^r3zYu7$&&T%lA`8jgq`t?)DM+pUI0+f#(yS~TlbA(!|LGQC5^X#D% z5##C)x_;u%I?Ds&k~IQ`2}wMa7Qc;iR>@ z)T6Zv+(&=>*qb9(XypED*1@bbUo%QR?2LiIvw8F9D`%Q(ideL0eEITabo8sk(l+N( zrZ)P~1(BVC45cjEu1~N%JUezA+q`*mS!wAh9i69rHE~hw9y1DiTU}Edw#}n7D5rUp ze!C#UF;~~zl$4a}Y&(6j!*(M?TZDit9lFo$7`0jhL((`QD`}b!KAHF2&Fcgo?d#HJ^%n>y9 z`kTP)^pCxq>;0E&YiqY(ULhecIyUB`>HhN4!rD%!Z*4D&LfDtB<+c2pncTls-Vxsj z?>S0y`fBAODKR}DeTJyras#aR(9zpnV#NI;v3@7@cUjo^j$tT>Ae5hxpLj1Lp7$K*@|-fi%K#cZfYFl z4%_TvrFz?~l&Nl#_cm9D_vt%a+q%4uhF#&K;TZUzUngom@Sq`*qBPcF^D{<%F49BV zOi|_C=uA;Nn6S^L?SfwC7$ytaKW^EwMJdPLEHWa(5Cud%S?B81kKv?jyZ%R-Td2Z? zx4EcOd)TTxk>HOG=T9f@77|Jri#?MN%cA9Y$Rba9^zDfu&RBW&)Z>;}5^l~xnwO49 zPYfB^FJ)w|$q8)OwofT6dPnMUPw&#Zzc$NrON>V7j8%(`L?3vfo$so)bm>w+2W6DG zns_xKYtp&l?%*U2JUk$Ro43+EZp-g`J{x=2c=HSPmdEcIwKA_FtM;i z9T2rWh1f$TzhJ+g@1mI1t`2WnDU+YBNvLB5+e%ujQjGs25fcOZ^%TW&G?bF;bu#xM zh_0~rA4tQ%u;h2SenLl}Pn)nX2l;F8wM7f?#j^_O1Ai=8Syz&;a;Q`IQfMUBC)bl$ zDp0ZEKx@UzZOUcu1T6-tyiRU7Fnl7#NcXtE!{DN4z9DB55{+~>xGSI7aMpkMuR{7bXx_|(P!zn|2u(Cs-;^QBV z7z8e)ECoB3QujhjggNFfTK?hE!ewh#u6+E)cSC>2+q=%~zI$zdG&}So^{S*B*HrMW zqT1%+2=Cb7w|_w#?e6xet{{th_wPUZHTR=H)M+$gyIgRzw)>>CMefM8hE9|@lw^`H zTqLzz2Gi$N0ziy^Hc9GDt(2(3Qoq|tPqkV9xnRS5#f<=UC?}6J7g2@9BqMC_GncGQ z)Qr1wWr5tr1=PKzBm&3k7j@v~ScMI5zk2mbSm*VU)N&N69f-t%cEN5>4IXiEP1FQs zIk{WzbCVYqE?RW|XK1o+3HOd2(S^Cu5^ig1GA*0}mQswFj&E1HP1Mva?23$v3R3b# zMxY#HQ#!m$L^yy;`)U({zP7igyU#jb_3~;Q&)<3aSu~P+r^Y7gUQ)h-Lf-~v<#SpZ zO>)gv-67kRJF@X8q4B&(~mj7_`EOliiW-v*!g4z~8~se1E0Mxib(dE3rR zgRS^W**m_#34bo;WllPbqpvr1c<(oTclR*EF&UX_05aQsiobq)nuz2ew_-V}H1^Q* z=^B?M_s_3;A3vXJdxjM#Os5y&AcYxt=w0+es!ayplvKbsFJ8Qe6Lx=nIz=_1Tv9u3 z1fog6pKlxg?JVu{X^G3W{uAh&Sn}9X^aig(^Jv=aO>a1?Dzf-me1*N8RpH#4BqyG zpL>%$X5-W|Ow|Ua@kq}aEebTRo$tvR&gVJ(k)rC5KRhp_T{xQ_NjpoI;>614Tm#o@us&Er|w1)$ti#tX;%cr^z{vyvX zHPLT^)+P3I)U9{J0M~hT&Xu9!v1coMmM4mH2nq_8RaD&LJo!N2$thJ; z-uwOe1x8iRYI}7{ZZ!xAQ-!|d>MsV2B^lWzOhb^tQ=2a@T)0pzsxs`L#gAz^YUrXE z9aX7cw^_COeMqVtKw8d+{%x~50eA0?669ne7I~`BrePvMGtb$s-`3bT7Kmh!m3Q;zm!g`f1}Ae``j;HNwNU{bSHS)I1|fSr z=3M8^r-E<({zR4et65o%Ls~M-&R*=!_}Lp37GJfu+4ipHu-yW7cJ_(hs-v0B_CeOx z*5f}4el>Uf=<423R?a_ngSWGD{HjKjpHt1HO(iE0?4h^PhFb%-ZcCi;Gty=M?C=J$ z9W%G-%QIg$_hRd+H}4DdS}vUQKOCAdJ6-xQ_kEb{)Ps(tPG3(T)JvIcvJQvV+c6$1 zxwWaYzn`bKEX43vk8@6i(C*#Bx^I@#6n$Ams-K^QHVR zUA~;|IHDsC+;=Oc>8+NtReY?bO|uiNuZm07?dj7Ku}i3d%${lXbi>KMd1If1cAtp7 zCidcn7+srjnLk%#zN0hZ9<8GU8iSJ`KYj!rle*}c6^rD?y3g|Qn_HXC_Q+)>c7(h= zUH#1LY-%~>x!WoJD2sS)`02_NgkD8_`Q2oL`-Uxs-B&!d3G{rwZ)Ew)HhSI;*4I+5_`nNfR(#6hu2eWY&hwb z7K|p68q&75X^68lk6-SzPk=V}9zNVjW8Gu=z|~c3NFG^hAwE~Oq&)Nw*k8PO zp`PoQ3@jaq{3hzW0XK*Zp(=HMu-$f>{vHGHfELN06Mdsy&xb?kR~7I{O5rjLG)0_c zvYzbjKMw`%wa9qikHkT`=I74^7Mr6Q)%;0X=91S|uqUF=#x+PAqU}0z^>e0$c1Mbz z*y!~)e(XskwE~cn4cfhX_jqQ(>`AZ(J8edgGNpf~%>I?}MP4gNwnL2}?YEAO&J6}1 zlVfW^e+7ob3m5ImM6Vd1*`0p0$d_>I~(W_ouFwxANqNu81Nq}z zeheX}q@gwQ(VY9y>QQ%n)zOR^Tt0N z-YWHL4E@hgrnN!TOfmfRPpj7H+?1<*med>{BYH#@Dr?%MLA5AXK2#xrrr^-Ok$ z)s6R7Z7L9(G+^!VzFbd>q6-@jSEVHN8&w@g}g%czIzyZZvbS&MNNEE9lQ0=Sih?fR62jIC}E zoHp{cSoZkw(};$Nj=S=)vH{!#A)9;sa|d6$yQ8|pJX&t5mo<}i`Fzo}m_wHrk;p-w z4=2lg!`oW{T~h_$3aW|zH-u?cd1Zt-7n*i_kAt)aqdsZ>}a>qFOf%Hs7ca3NV;LrIonm1P?ie`yz>QQM@5g-%F8x? z(RqK~*l@uwcbrQaenBW^H|5E*87;A?*fTnBKR*>T&h+mJMENBoT3##!E?Yxw(hOlHTVyZ?v#_leh0o&818975#s*{zetORmO|YaMw*} zS88Tf3jt-ucIdY-W}E8{?KK;4k&k@1Cxi3qxby3@g5d$Dv6_n18bAs0R~Gqc)4KtEZP`?YU4A?&KFs}GL> z4Vk#jI=4I&lQ#RDu`BR1Rj9_+|54g+qDS#u%dKBSr=|S3PQ;LBt5do!mYhSUmSdlQ zGOEvTar?|q8z~m;*&HPjwveo1F`~@KLzwWi~4+DWoe1>nYc42QC&VE%(l^x zN~=KgBu$5oen8DgH~e_G^5C!BGf7$rKYu#F#%2K8i4ZbU=(BDNtUuC}a zVEVf-x9<&G0(TCrYaz`{Tj9ms%a4Fy%ebKG^=)M2BbLh+4P-3J69It|GvAH?c^<+6 zaBvo<+TQ-nUtDs*&*hHF$gFi7?BkaJ!^``9w&)teUCzPgoI27wd7(5UUBA8r2U^8HaY1=~vTg#``gxQX6KMCu#&@sK3abvVq`)5*~6aXK$Sup)o$l)SppM_Du z<#z7e2@bN3B=aXnya)i%=U(?uojcKK-Fq7psnKZ1+s8oj+H>gf|3rgiK?NflOL^0;rQ$xv_Ab_TvpaT(h$kY%V)knoA0_GC8`r35XG%joa4}; zL+=yAoAANCBPHy01kEGs7&T>C83Zn%%>D3lGj~dw7Du32okDTqq!IY`wg$8uGfCw| z`i_Kk+UI-Zho_#N9^zQRzdBlBD^b;~C!i`G0)CpdHk>~?`=ho0Emzn*PC{~rh}v0q z^d&%816gvid}?xXf5&cL^n<%>d2N)!ByRLIW>)ksqAsY-OepS}>uLmEuMFE8^XMyZ z)v4rwZSou48LtZ^md`slpR(EeSCcA zas?k4gs)gwONqowgcm3@(y(4}%*bu3H_AV;srXE`wT><_9;(pzc$IvR8Y_5ZAfHpt zY&D+C*(Gud$Kv+-kADBYU4WwYfa!TWE*48CxV&g!^+4CKZi|BTW@R2yggU!|eiYPA z28*E^6q;-`(&rzWd)N7MVL3&i;PYnzJ%?gaV+dwp^QL{9BwSSw&V0Mj%7`~!a;O<6b-@Xq|E=Ta3*GX25FVGpRPd)@xH#_WMQhIxHtad@Z%*}OAAeyNk`O+64$GAx}BHg5}@8?LndYa)KknxqL`HWen&f=qJ;y zg%T1sZro5*Qo8p{J}mLh)}yliPs77&faz22D@S*ev>g5D=UDe!M?eN7n)&_m2cSOxG@r(jd>UDg0hD_)TisKyU4iyRm|-BiUT~n! zU#_x{o-}7!3?zo;;p7r@ViSP{Gt!VSvlYQ^DaS;`!L7hs z*l$9lPE-h0_Pp6(!E3V_(5VVujBp_K`%an}=fqFr4=-tMR8401_yjIr<*$=3KJ!F2sQWNF(bn1J0f*}=6 zt>ssHnslFcrvSgWcyq5E6sM(B-5G%Hb#+?pAEaNuejWXV6JVG2>}o`DnO9jEasXmY>(AA6xUUolE<6RZfOLqGKO^rE3c6H%--NjvG=H_H;1#gygxzr`xj3Z1WAf9*+h z%r!vL@n_9n6c6}=Pq_}lCuQWpBE3RSI`oMj!9phj6BHL0t7)U-S1fR!JrU1HwQ*yM zAg~xoejjMqN}H-Hn2Yq7?blwYW%4OvDL}(>qJltEVJHRYdIv(NZPD-F;7?sfN=e)P z|DZ>)*{l}T@GI77sh8N!IMlBH^_q*ok*>MsUDwX{{q#JrRle;+2kk8!8o0>6d^-Pc zqSjxN4_egT-d+Mu=SKWI41a$6!g|0yzN<1U2~EL6%|}(c)N<-!Hp$zei(Fcn-MMc%coyR|b$j5)%-6lH&Np56jV@pIk5u_P< zde>wh4`joA4vpJ0qI7IB2QRuoB(y52yp&_c)Ob4iMdSDSGRVXm+#>(^^Q=q9N4pJoez?aYT*_}F8EnK{qW!f1KBh7Wv zIz-&%3{sz+k~h{`^7r}b*#8&fZA?i-0yTnrLezaG3xw9tZ9CWw=3~jY6Xdp$b7Nu?ty0EeC%KjFYVP!O) z6?`#Dq?RG|a!W{P0qUGW+GKO?*_>K_X=&+QK;s?q9p2NHZ*3%H+Z!%~)ik}Zu|rnq zC*H5wK?{$n*WOH>?Yd|A?;`}zDRT4ik*+CLJw28<%|L0D)zxL@mhtaJVW~rnA-*zv z&ao0db`^9J+4h66pp4&i%H6x^<5Pti6-RjHTv$bNDi*t-G7>TuOfvCjh);IhCAG6b zKcEZ`Q=RYT5*Zn(*8L9cqP*D16>sH$_nvg~)6Tt|hh~8^dPK+t@L1Z-$^pn%map*JEEafYJ@lmXiE1s>hte-m-F9?Q?|6Q0V!8U*U!MgLIL*w|XbitC&dt?=+H zPS#hCig4U|4s}2md1hhPF3s%fZ{NS~0UAB8sC+9RD9B{NqD8Dw)x#Ph@4Z#gcI(`I z(Q4+WRXE5Z8PGcMU-EQI7>g<^D;<&IP9`P}xKH(R1v1|JS{6jo<@Uz z4aX6As1%?J58GRO$hH-9mdYq-HN`$GfM6DCD_RY4fUqx7*xsF6w-$BKE38qO3!dqf z_fP~ix~#$l(9W(q#3B2ggPQcw(8pr8xf0(79OR08%fz~Jap~K)3bL{{AkA0s6>q-J zrx{yatrWQbea$9P+p+K2o%heuR}{d!3CO(-4dT0qvQxq2G(ihYkl@0Nfo-!58s4oU z75X?H#*}t%r>}zGQPV&#^x^D?x=p1KEvu?)twopWh2L#B zckCAN4BU;g7Kb#csDSk^x;yqde8cS&*Uh`Ma#aKQG>MxH2z>(ZLHVd3TMdz*wL0(b z_}_t^YTvyrs%+anNAfnd8@sx?-U|#=F`TP$%FwE1>g3_!IS%6w(Ww3bKB>pK;p3P- z!R|JGM=p5Z6Le@WmneujetT?C@!-6@5#Lp@N%qm#8Xevy-^Rs8dOWV`PaY;l+jHk0 z$EqYHLWGbf_eP2hc&i|LrdUzCK0^=y_67V~w;l;O;806^8`WNq(;C}v{7*i2Qx`FT z5v9_t?0A*I{WJ0A&DlnCGm}$u)5FZn%=#e(=$fGv zw2rsGJkA5agk1Kyz@vcE2)p)M_h;C!r$V1`;W`P|Eccm_qvE5bTghHAvWXeGy=!gN z1}+g!7A-*u3gKOQ{0>+0Q-nL59wf6Rb~`)ifGe?drzP@mbIXF;BqSvY`7YS3jbIxk zP8Rg%`-y|jAkZ)n2ecpAUpl`wg2sfNy#6h7fTooS|H$|6XMl(9#wDM`7f2UtBcDC% z^Wo1wm1^*gi0CM1E`;I|cKvCYdYm@^MHB8EmPvJZOyI)$+Hpg+`+K7W|MyP;=xeKC zhzr(GXkb{sTZ#}FQc_n)X-9>67ji&_kYvPyws6_n2bxbCxBfPb!L`htsMtw!YG(eZ z3Da*ALPmg7jU6t#Hz2y>9X2kM-3p=PI_S{39JIee+fO_=XRl^?nm_;NQw4yJd9C_* zauF@ZFALkjq8kKuuY$vtWpu%NrAK1tR~*~f(b3U^LPpdinDU_AZ3hzpco4J??g&zt z;ZQ?w^iY$rsUB53;P&mu$da&MD+98e#wS$pm51LZIAUpVaf{erOPQ7d3xW8BHvhp) z_8*YH1b!`RcaeZCT$MDiNr5<~U+!7)Yvo2)RGgssqYZ}{BV>1C9vpdgDBCneU_x+A z7p$d!`*>kk$zu8LN$KAPU?B}Y3Log}xsEiegNV=mEV3|FZ_7;gt6x^=*sdi-jO ze4?M275~4PcmBh@XD#Q~_)ON~?p<9swsq@v_!L_={~#8gS67$ScF)btfx6?%Wc}3x zKlo=HK4Ngy*Vo@EAaDx(7BMhD{Vh)$nwfDee*L-!T`@uV411d%AN)00iR7UcQyUl% z5Q!AM6ZEK&kr6#3BcW$VEhB*IMEX2Q>BFIGP<1rcdoDXJE4v$+LI2op&h^L){3GIU z$UWy{U%S=-4C_7TnY1+F{%m;6Z)lo>`h6o*DW-en$`#c>{=QY~*Bi}%Puq6u0OZAf z7jiBz5}}LZTAcVRF=uEudOO`Q`%R*@r9D7UU*N6om_l&t++;tP|GJL}D!flCJHpijpTR|3I23IJsE&*(oDf zhNdb#=E6Z;134UlR84^BQ2w-e|DKy{;_3x6qdq75XF-RJBR9t>M#?((Mh2$A>Os;f zgrE=bX;*{4q^a0@pmJ&g@bcShLV#8Q^E6?e3MQZ$2acQr#* z)`J=2NviDRC(9JT=F%$TuMqR z8qJY^qDDhUkVXE^w2I*UHt|)Mxv}LwPf!<&T7o{3m`kqs#2?C%`qtIoMnQxz%pGM}cUd;0dxVzg${g^gKWG!2`n( zIayh5D>vwDnQVbB;>2$Pu{Gk=A>z9U*=KdwUkRqMX8T67J!Z#2R;B|p(})=!Yj5hz zPAS=T&_=N8%nVDK-UBi+qv3@_+CR{cT07}?a4w5*R64DhaD{AwV=cRXs3k84XIWNR z1;DArecFuRD0t^Hdc|?Ld8{77WcfKQ5hi=psP^{uWw{v+!w`VZuY(Wu)WvR(;QXmp zbo2ct8RksH{vKh7nTi{W7MPbbHl76n;r-T6!)^#;WS~Fa0)Bx<2ONg%0vj++6Eja2 zCE6LAc@KKqx%^_CJIKh~Dv73fUupoV?uCTx>Miq4mQ^Iy6=V3)ui1(2+LcgfQn$#& z*x1Lqk7blBS(m=kYh|y4v1i1u|sMfJqr_v zae3>}TWJzuz~F0nRUZTG^zp6)RBdPRXyK39H zK*9w-TJo$jQJgOmrwSAr8la1vd?T;vH;H<$xfAjdu4{Sz9y@mgfZBE4#F}K z6D4OaM3VGgf6rU@{QY%8_TsCsUw-j7pQAy zSsvn1Nlc4dL|Jlmyqy3iz(W!MG#Yhuy8gDEvTOu5WBBXwT)+0OlsUz5j3=%AIm&B+ zQdisS&v*GJ2nXh@itt^q#w=!cwQSZW7Ev6DbYe(X!o@h`h!m3 z*=*Ywg#DnR?+E^J%`{IHfEB&QqGY&grP(sY2${Qh@$u}G#$3?FqHt$=>#}1iiS<3z z)(4QgpwkZpYS^!&7ud2S8$&GgyMACAtOs({UC#cIoI0(9@Z9B_M5{$-F~86Y-lZB% zCUKtt-I;(TV->ZH#)K0*9Inz*QuXO`*izVw2uvkoa;TW$$R69cxcUiLM6t7lxA&UlA(GC#1C`eN<7fk>@_TM@%bPAuE ze(vQZ#W}m*vuveI`@HG0o};pC01Okt5XnunhMEqOK$Gp)Hkd!>`}Ng_|Gv?Gul%q* z)OIHRaD-pyCS1DeVe-NIl1nGx;Hb&2Kq0*z4ZjJFSAiqnV*gDthLe zB(Y`dRv(QzQtZns9*LAcE7(arxG1(+zD*1RhR1Wh?`uZB=>bukKQxLozsquF2m?rI zKqb~mHlS#TL0<{&#un`YEO?rAr!3f{M5X>Pf%BKh1PfeX$)$C}Il~fU5(sExhm|H& zvQL-}6agVIZ*LH{EJ59HA-MrZM8XTb9R>6hDe?dd!Zl%vCh@W8nfGdMUwjA|C{ z?)i$RPj90k$cXdmNbNEz`T+*nzYMJ9Vg?a!W`cmx#UBk1Wjzrevf2j^y(Ba3S5{M5UL8dGD89;EEM1GUtBuWuHwm{Nibh`82o)>M^Rq#=mc$Ds~AF71<&b zo~o_AWr8W&c6lgcHnkcBad+JkD*7k6<&FQS@Q@7dg#)AUaB&^=$Cx0Gwsz~`B>f8) z&UPabc!Y#fKR83$#1oWj$YTNF4o^q%B;+`3tMp5ke$;emj)eC#z-bnL(n61 z8p0z|thER1U2kpkHx;vn6lv0KriDI!%mHQ~vD%Jkv!D|nNw{U>Fr4nOLw9Tk)CfqH z!Dg}iw?99NiSgyUCJnF_L^H}8E#r|Ur6Dk$_+v0|S%>Nqtg)FYWX4G08uU2ZdmA&8 z%yS0!4E`xS_c%ds%VHhRKhbw{mHnY0Zr67Y401HE98K}^A_igTl!VwJqpBd$h(!sk zlr$O6L&r*H4D0Jv-CxWj%0gico^1P428Q$&x9_odkY=O^#tpiVb8DYxLFXeikkIAp zhGFbc1RW@BS}y?eFkxRnde*^kyz$Ip>hTQjRsHeOjE}$v;3VpMO{p&suUZ$iB{06xpQ`AM%cFJRR0*9$AM>I zEU3f1e#FVyn|{7%QNJw+B~xd4;H-qIZOfopp)LhF_A z!-hF^;_wxq==H!eAuB6ONQ_0x*O3VU&^~7{A@>M2Lt@te&>~b9@dn~Hs|!3lyv(_% z$F6@yZ6y~9U@)3Azt~=I4^;r_^to(n)+ogmMneuJ1EyMe&PI)TFO}8)dI2)bvTb{b zz?}da)PY!AN^&9kCT6q`r|7O+y=nx8jrE{=E*b3u{OnIs)@NS5`YD=dLi&(8pO|9` z;$^&E*Utz%Jefi{@@6r$kEHi=f{A%~ksJP_a)6PhcYG@>A0Z`a!r)kkQS<=FFRDb+0UXlJn?H*V6ORm@h#Ag$@TtYG`w&7H%J?nJM(kT5_RSL*XfNNY z#eYW|KQ8X>?Cd0j!TIy&4FZvU&qM01f8Wkmv;j&8W>|@!MO^n#{pmHI4ymI-{0K*7 z4cu39d<)v{r=+HmeiiL0woTn2uzfd?YfHPt1jSCkbjLvSySlo%pKX^{+=PEsCs6y} zG`!%SW&7AjbSfE7t4G=3h4Zw|P+v%%MQigL?%Y)AE?LBdj2qeu3>!8Bq0bxpwnO zHt4lzWJPnDtf8fJtZvkKTbb(Az|&a$#!9za)Bg9pXg7rJ$$TK>zJGztsZ%0B871Em zJH92G8I;)PlwBy*+PGE^l(L<~GBT8-)IozZ@R94uaYd}H-nwfz{RZ}bjW%Xt`E+W( z$;@S5Y!p>S+&+zt6`NI$%nduH!4nCi%~|Mf=)@Aw#H&7moE`^K)gTZSYdUQ5Z;LfC zpAnA}h_e1%oW{PZELtDVS_HW6zI(vCuc`#UKrTl?t3!y!6h+46U#=4 z{(tjh{vDEatlrOozL;2D$ol|5tnApmTaoxs8uU>ImO}@Q{PC+XXDlnaY<5Lkn2_l_ z?k&cAF*{Ng80x&Zr)E^=`>EpUC+nT>g6xND%#GFOKBc5oxTM!qn0K7{dOy-2G2p4r zcEfAYOP+deC@amc9GjlsU0TSI%5Km#=AP&1|)wteWt5}DT+rDd3WXd_1++? z!RzoZVPxE6m;Wu05NtZb{Lu;F9X7sCdgI zr|b!<^LYTCeO6x=AcTt-NJ>dB%Fuv1Cue6JyikE&=BSj^_ef%En6-NUQECFUh@X*{W6hS7PP2e8TO19ULUW_>TYf-J_AV6zDlA zsSYt!&y{$q#i~2+o>SNe{0T}f^<4r}lNUmGGY`))$f`@|>0g1N=M@yjbytz=mRzu= zd-~Dv8`e`7*m0l7T<-g9y#6Ca=G9L)!=Bp@svq;ef=}gu9ilqM`+Dg`vU>Yj?lQj2 zcAnryj9rH8`2}{ym4{0Yrmq(`N8Q@E{}OOYyhcou<{|Iv(R1gpx7HFeEF4fgNc6#) z)xr5O;q2ZS_%V*Es;VY5Vn+KZh=!Gi+t9HH@EBslJ;;W?f7>%p@5`&J``l;tQ5-vV zEU~h(`iXw{Ibbp#yJ_Tf9A520QE=i|b(S$R9ofER%h5utV@L2!(Zvz*@yo&P3Ubm8 zgCk7_TSMggw!s{SVLpDY?c1MXH0jL=c_}Hz-y!3)euCkcsVOg5NjeIWc)}fCPFi;R zcXZ7Df&3a-=PIhP(vsw?1qUiDEQJrSqZ8~4tN25VOXdbc+8_UppIGKKp@n=%_zp1dhDsVePV2cZ77vQfbNLnM_Yj zm6gLSM63hGDNq`m8X(q3o9)`XZQDY)LcG)y?l%%D;nb@Sh6}ib)5BI8?NYnixhL$j z$w}8|2+G2aP&4MB18&n{H{OK=+iE7ipnE)V`6d36V-}}lVil0YXJ^!AsMsk!oy za!}=4*H^AO$1AwX&Pga-6YpROr@x(HW>Mhjw{ic|v7F7|{de)VqFs?OGg+FLn79t< zVyNJkJ5abHX;MC9qR<%NFb9zayo*XTvH!)#nu2Fp5H6We062g*w}kkCgHg;M@wcGP-DC zZgVaLdM&=WUZ}$75i%_s$+R}Rr#@{4f>BL3W)5|qGNKC6C;Op;XG4oRs%g^x_3Hss!>)iLf zJDqFTxVtba5?J=t0lLXFx4)fo}{niWcj-yj?H53IWJC4p{lz?@D zIt#$<>e@fQZ#mX=GV%x#s`&3%y8L!wDP%=Kw<%lGmfZEMzA_eJU{rKKxkKeyB!lfD zZ?7O@TW?>YmbQ~pWX&hjx^xo-ref9FwbwwZJ$?Fg-r?&9=3t4~x_$d12uIg_d{W0H zR<61e^83(A$as)Z-Ya;APWa=;Xs&3hF~;l*{&2If@EQc%LQ3z#g?6|}$n?5p&xg$~ z%)lM)a~|IT*?~7}18{-G?;F1RabYRYI^HTo(fn7gUVRBxuSLWN*64tW>SE1#YVi9=g?#tEXD!)PU=eO{`GcCYLTCa4+#kzugu!IXHQ10o&v$*mf%g( z%o^8H&%we3AM|KRyN<*@^v~JNr`zxP^LcJAWTT%`Q>?jWAPBz!my+{FQGlNy{21Sy zNZMi5Us9VwU$*8!`lnFchd16aP+N1-6itV!qEglbO-E;|BIC5(F)7n*=$4(4F7D#X zQje~0qCPlx=ofdbeNks7!8PVRC>XZm@}$&yq#Xg_uyqp*1i^H6;$>^=SXOx=xt5jV z$%LF;{_C7a&y#XF%s~koeR|#V7A}hY>sVo;h9{2W0+ipllBV6logv7V4Bag zI&y`>K>bA+qYwLYy21b@vshM2>egkl*iP%+xW=IsGJ-fhs;0L78cybVAp;I^@x0nO z%(K15AsB&7d3ec1u3m(N9_+=L_?`w4I{Y?VAyvqq{yw9t42_LnE zlXC&O&e6A?K$DmU*ylDSd}Zaz!;fKE#et`X8}AxiU8SQgfO!*(a8OqDo(`vWa&x~z zpG!~k@5A8S(eRHPJ9jPx*(fr#WHZ7N&xO%4tI-Y`bq;vQ+LD~*2>FD)Th_eFYUFH= z@tCl?#<}(Hf-5Qe&WnI~T@@n=tCQ=YrE#rfVw#_>?u(9A7xFN%+kHBZRo?h7r1Is< zMWBM6t9)wQ#@_9HAZ)anXu!5TALwAn5RsVssr&lP8}jZAS+Ao~9j8dxA7c+sx}={3 z$@vOqUCxoC;V`t3yiW=tw|Unt2B;XZpS}R$g#6ANe!z+lSfs411R;}%XJwypA7NUx z>LR8yiJDegUVeJtVZeyRP85gUb#c9wEaV1W{E}j4zB8 zUie;}p+$A{o!rpt*Y6dPfZTY3Pm*!tK2L)1AtZ?yxt!%%uA%}#TdCTxF2l&LJ>gw& zoxzi2KR>y~Xa$9J@bbLim@pg~G^iOF?)c(zcITeGR94Kr=}UapUAi~kHUD^|PKx=v z>*w(o&bDYB8y1ZhPjIw2MAF~&oBdbSp#Sx2D*jbkLc9Fch|HIVbBM z;cV3oTk%0;r#iy|tM+TTb8;=e&aKLpky72ZXUmqeP6j<3VnVjJ<<8D%(|QEQ_e*~z zDKbSK-9Y&7KIAI|oq)TNl9CiyD^G}Hri~d4;2=qUg=fGL&Ns5(NQ?fQPhj|32g!7k zkSd_xI?V5%($KiMh=H|q5D`A=j4j*rr(xG=IQ=D407Cy1~SK*qkbB<%t=I0$8s zP|VnvfVOl=rk9gp=70$g#+)TM8F=H)C0Hh?SkYT?@JR?la`eRe5~xB@Y0q&x2h4RD z2(U0T+(Awsc<3!6BFxZtUt>B|&|yeJI{yt9I;G$Bu{?TSL|^(lj1|OY%A1vZLsPR6 zP7<$`^Dq@EV4&_}X=hgqLgYiD=7Hs`!b^ZZej-l@;4&xRYwQ{Um=gNE7)V{PhcY|8 zK&cb$PYe6GhJ~drdlp><-VZ4k;_nxb9!dIB#4|ZIc%$VFye>@#FFo7ihtl8hPi~hx z%)evD?Z7zg&Z6@2Wz;Dpr7JgX&}U_3RoCbDc{^bPZiGa$V8*#LS4v9B`%iM4V7Q){ znVGAhq!f|*zPncB-PM)HH$vdrg;1wO5IN{hIqfW#aGO#!WC0*;`Q5GX zhg(Sfe9a^;x#S}De+ypvaiJOWinm}prlar%&&6UO-wd0xi6(XtG8Gklf)`cKUw$__ z&+gacrh{)vSlXlW939C3r7Z(RyTcB`+be<+qe7kO(Oo%bvLAF8L!|2JWT6Y#@wb>C z19|=ply!A>K3>m9ayYz(H-L%0;2l2S#>b`b?*eceOUcMQVirIiUGyjZ1CDz^>7!?N z{dQ608u}Wp-}TM$ro>`2j`&lmll`m%U5{S4PR7uC@M%#FxDs zzne-uAzsNppJZU{${u$nF2P*|{xQq;HwgX+m+V$92 z1<#+8lZO({@T~GthOqt^(`N)3HbTNJyK+cMZ`<$d{jb)(1RCqDZ~Im$Q<-TnN6JvC zWXP1ELS@KYhG-BWQ-(~HLPDlPNknB%I+;Qw+|3yx88a8D5ShK#)^pDHzU#ctv%YVw zuVxwVuii98pe?#L2>kgy88Oox|Sf)LXX^Y1{N+Iems1w zG=rXwvcp8Px_SZIpU&H@clzcw{1KgyrMn}aM4QY`KpD>DM=`59;|6`OLkA?ci*PMZ|>h#*`LvjvFlzcuN%M710i( z@?Snq=EHJ$RgML4g#F~9v|?9q9x;(;R}K|1Y;*;QrN3(=AW zT#Gr^CVl_bl{XH#@j6%0(EP?p-oHtq-G}S}4;W^OEo@dqg8ts`Wc_~*HZp=2eb{>q z=PHn#D<1CL3*bxeXQzz;jXp96$cy!ol5e!S@P)T8A`TV^>=4G9JhEja%?m1Vn2GuY z>`BctI*rds{vBX6gRJNUA7Ew~6T&<|oTv~=hoQbQl}GOTT^qfnrZ1^__G~G-hRY=- zyGRB0394U0`G5NUJ%V-p9xG4^O;=*^T+7J%jBU%LI3u(J#f(H|BG?#2iU)Z>Bs4!f z&WL0e2%%LMMi8o?Ny_1r!K;({9p~!>P5#xKp6P$R21VftWShW*goK+4kX1(DTc$$i z?D?&DfK>6?)B^x70!W;miuYa90S(?!n2R7hQ-N8BB1%3FNxgGt86+OOe7-;RFwoQk z<&PSKw<6tG;uXIu6p6F^*B~^oLf5xgbYb2ALJf}1n>V|R%DNA7%#Y{#-^OEk!deES zxBez}h~_Q=T6>6Q_S5vB(ZS_y^J87QY;C&)0PkCX{`nU%=F!9lEO_h2l!4oWAO zbuvJ*`3Kt3;IBMnscaq&Ce}i~69$_DCP13Yb+7Li){IiFz7i2Z#V}|D7V0R(#!XC@ z@SiO1zMcnKG*Jl&p*l)a%aDI-NXo`Cz6wEQ{&TpM8?;dz`(AHvc{Hycau}(I6GnpfYy`^(VKd$S&7c2!L>WO)D^oP!XdWo&zK?i9uE}FSx_0g9pEQ59pwrZQN-6gUBnDi$4;;qwL26qa<1~ z^bIZS(xSwT3W|y&827XS^Ie2qeUOKUnji+1hE-uC6iRmcJm4P2LTWJNvcU3kWvF^b z(7_!AXV(1a6gxg3XIpNuux4>_yE(^Ao`3|c;;Gm+56iIhl4#E2jgv(s8z%#~qdq24 zo41H`+E(~ji~p`5Z5@GYuAVGf=T7$ri|Ui^=a3Es5p)m~@VuFVfB*%qCy)d#M?<}^ zCPv~><+Eor6r_e78-y=HA!ZH9I2w0ZuTf!O373s6ylCMkToEOroxM#I%?tIf`hbCv zQ3_xIltlb4Q3y?|w;iK{m*;tK?z1zU3zuPnU3b2yxOh!jm=pxAOBLoPd(OD$WNVoN zmBBHuY;9eK0nGftHncX29kJK-pS+PQORzbpXkkX`wYS{HYdx`I8-9%fI9Xd1?H_H{ zXx-I+ilhGR+qazw(ZRuvizT8GA_?#t(8m?%-=(0I34KxrJrX-cksdXBUT!Y++76a) z1SLkZn}v|j$-ln`ya>+x__W);+Ip+tGNA5EgF{_iG@9?|rC={yp}nPyg!|IT?ojve z?e5E@Q!i(! zU5JpugOWnkP|bb&DlV3t>w#qbGdwTryP7%1LR^6ZE*}dSliHEg+~-~il!Aqq*Fm?F zjD-#Sg7n84k`uhmW(*la&ji>;^mjhc^H(EyVo>Ezjx-__OW%d}*@5Sgzw+zdQ8u{SCvq1Eu|3v)w;Z$<3v zx)aWEfx2#fLVIg`R12zn^kw{({@YJrVq`(}i}mQZXKXLn`|9F&|Qw-PO{eHUr zF(>9RcVd+E0($48m_UQ5%}{S;HR zLsF6QctYwhGon)O&b>a8vMox^{(~}mTlv-G4$y4#{9z?5A|kkJ*E#}SAlBr;#O6*~ zS`V=)mRG>nW+$TW9IKF zv@v(pP+soB`l=t3O`BS-F1~s5D&zY{b{iRSfk?kJI_e@}_9(q+UPD8J5`Y%0Sxi0a z)r%Lq0s7V-HHk?bX8)Du_h-%gJ`|-2HnyFekG^{xTiwr2J?F4AyilhtY5L8nv5*I9 zfCNEFt@)W+XX{qri|dGmJa>&rQ2S z+{zBICwhQK`(}aQz($P~`tz-*jCX(*{&ME@B6a7&^hOkC>PX4im6*1O-t8N-a@}Q^ z6TE-y2XT1wV|Q`KwxaWBW=zG@vD!G8#lAdlp4}m$F{?s3Dtz>J^|L?RfLC`E zUn|}ksn4X?MFd%*uK)}2iGN{o1v>r}#>UU=@^Dhf(?RQ5w9on+)0L_wEU!22Vx%-FO#_7p5CL$Pft&}2h&Spi7X8LwLb zO4dnav^wbc?yBv8_)UobLx^sFb%H<@&{{fpb1 zGTIQxl9HXhzZ78mk^oPPpK^x3^+dyOji$C6qwq;4MQ3hP1c+GH&188P6pFE|5`G35cH*VES*!tYB- zQAIJRLt(+;G?0~VP~W?kky1&e?hU+r`3i6k21*KG*ly%wtsvv?Qc3R-NBy@Zy$4ww zixwj<5c2U*eAC1Nq-{pDAX3n%T}pYFjicW+JS<6uRNXe7_z35bcHyf~Xuu|DDQ0gr ziGIhP!=4vJ37B@qt-rPGT%oz>)fV*ATG-16zHHqe6%{2kKRc$ASb#Es9$nlB>{!G( zVqK3ak# zC_N(!KuJEqE(DgYNozdgp<_1$k}x zbMI@>W1I2eJy)lyPTjw7{1nJj0vkh1_Q0-D3{-{E`mcfsM|HJuCd9-v3~upW<$iri81tHS$rw=arr$HY$j z;tEuEXwrnYa_MHLpxl$MoYSS%De(;jf{ zlNh$Th|p`Em!J#hzJHWl>Bd`@9QsA&gRL0ybIG0=Fj>9hcd}DbgqYTBTZYc10_#?l$@5Rq~ILO>lJMaw6B&}@Ax;*#3_{Y-ExCa1Gl5lT7>otLm#ss7RR z%o#W5z_qshHnScBGc$lu)QMI!*316&ZtnQum-W7<4Zce!_yc`p<(oGvVHu?-&y$M# z7q}orUA_GT6MQtUUArcbJ2o=%6aq@lt8aIZmWlFw<{_qn0M)D9)jtX`vDRgyEI8jI zR;^W@pIndd)H{L3F%^8!6@F&N%zsB&mdJ5f{YTNsNmJ0u7lk#wb*x2(@Wht!I)ltO zc&=$aLiB=x!)gyLu^&)buR{@7i_uR!lNBtDnxFXYvhbTa?t_j|E66qmBshuh-ycIm zbaR)-+ZxvExdmBqz-N<7OWSJdR^KZvtJJ^M_o^LTB~u`r?tEMTjszs8j9lb(%{o1kYSgFd|j zu|YvW@sQNjAC0_7EJD>m<+^vgLLwF>)>Wb1-PU)XxiTO)N#Y;vd%f(aGA=|#u^lNo zLj$4pZ62^cnnx@(DvVJLY3tgxVP(F*D_ zh}U_31OFIZeIxoeZfT&k0_r0Cd3*7%a{m9V7$-%m(76qP6<8Pw1^fbFko*^=FztE% z?%fIsszkJ!tsBPHii6`3WGp?Qx{enA@5jctQIF#u5oe!L+N8>awTIuVvr zXUno~T_{>@LRe#1wQ?!5LO?}@N^}iwhrvkq3Idg)WWqj6#!2`5d^-rS)zK&$B`p0| z2vW{NvE9e02q5Y}(U+l^E``&wyCX4#D)z@bG|0K_UViyzk`aA9J%{Ye!HI+tvl)2% z?D>}aJq@LwH4ruTwGj4=Wx8(^US}xvZ?L8WPc=wloxfBo(dZKo4VH z4L;3|Hx!z#uk>U1-^bn(q?D&^7{sY z>ui>Ii~VvGmlKeBmeeDp$_JUSPg|QrO+L8ic=5wc;XJz9H_6Wa5GR+yrsIsO>oYXV zkq{i7s3i((N2c~U;+@F>^3u73&{~sq6@I5 z;z7B%oI(&LOcw0*@+y{NUdgIgRsqUTb!W=yIkjVJfLL~8#s5&|g`g(_QjoY0kVA(M za%T?gp2W7?+es$Ga4)@aP@b9~=Xy_}BQ-+F%)UG`$%KXlGNEoT(eM(t$a*$J`$bUJ9s@-^K7Lr&lIAFST5`$+aWj|{T^@+<<;AFESXzApxqF)UGKKa~9 z7t@oGAHpz6?8pq+;gD>5Cewk{m&LYh;YP1N8jsIuYR&boj0XY4OI5_kl8?!Gt-EZ< zD(Q6t0NdiIun#gx%&V!celfSp?Q?P=Gy8JZkL&xR0j*yX`N1OLvYOC32!F}?hDtdQ zru)vqz|aJKodklTr~v4EfcroYS9M?L+V^#LUqBJ?yqq7_Z*LtyAfj;j-kb&&@^gC$ zAW-oHh(R;@(vO$w zK0(jOxZO6pwpQ0m4pwp}+aZtdJubKm^a@sYp&&oz%C z81xgj*bL74p%RnqWngVAt8ct6>w?3;N2m&ueKnLD%@JiS*j zqBLlPP(3No!$SS+bN_m2x5-J)EgiiwJA;xi485Nf=2eQEdzPc83?m)>{rl2M(}2wP zpbwGcYe2Kz*9S(SQ_7SQEBa&2dMT;8WIw}*S1V!jXZj)IkZ7VGQX2eN&g(hjcd`B6 zqQyuvE~^ovvXho;Ae8) z`Vk1Dv<+IiM0a#vvC8>kP`{uH2)lAV_<7{kq_#C<^w&elv4=`!y`0<{mA+U7;(|hn zr6yxIqi|GI1JhWy-zKExL-zafmAm8RD?0xCAwbveNeo* zHDwuy!CJv$ehy_*jLs2ZA(x%6MF}OR4didt?Lp_qnCOGNYAF!g-f^_Ou{y#Ws#cJ< zEH`IwXUnt@od;c$o!^PQormH1=>AEB1^c;}FNkdNal3h>tOGlG{y6#O#wDahO8RVz z4~9J9JCNi04Vcf%7uP{XFXp0g?6?x+IoWoMa4`L9bJYp+TlnR_5CraqCctObu`$ct zaf5;2G^=uB_8z$I^RQX$TIrOFS z)bE?k9?^kRc;J1LXpP8q2QY;-`96K_Tk#6a7*SDS?_cW=r;16y;zW5-HZ(In6a;cF z1&$N$;nG$W6e9D4M5DI&V~i4RB_h4q2#)J@4jEQG-={wMK>tqfW>clRdr`oJ3(b}6 znNJkl+oEe>5e^beNJ8SZb(}qiDtTQ%VlHD*F(6cnq_;Lsb4Sdc)TeMeBDou;4XEsS zP+RUn?j}-0WbDJjjv!j0|NprCZ@5@t*}u5kzftM`R0sawV9NjhKj>-}&~&-SV1T-D zCbWW}5IA-XV?Vl2Jk zQZ%W|5PR|vCE$)r@p!J*yt&06nUCOCAz(PIU7vG2PHfI8$5>OEdeOkW_3)7S5xdh_ z!?};8)9yr3hJPBi2sh>&w{1OBav-z*ti7q>-IdZU!if%#Y-~La^BIf07(3;`SlCp& zkIkUvc;oO${@js#*UZeHS@lNlrhGajorPRS45N6)hW%=HeIIsqr=H1>zkJs6PV3Ae zck}Tn5zPyXk0O|RM;=AA54%V4gtqCNOng%8#&0~_X4n&Rr?uyWj;6tsf90^hVdGlE z^wHAvCd*4VdbA8}uJvSZ+Z&rFEGV|lX-<6iQo1)e1&7zstrT`hDA2R*bx5vj>oD5& zM|!;uU-_U*zH?TMbJl_SHEO$zt8?y&Id|N!v=yU-olRg!bg#7)=$&tIPjN}eoD00? z@-;KhUQFQURq@QL>vN-R>gL5WCG30WQ&e5;<6AzQ>S;6xZtXFm^Ga;{-ZZP4njsZe zYuh{N_-<3?>ond%I|updQNFmU#PeNTE(*(R~f>}V`=PRew_lG--!a6?|T8Mbtm!ViW9LuuRh#F{v! zFwHPH5d}1g3Oj7ej{)zK=?yyGh{yFQPv=($G8#0tW^#$hI}{dXblj`|@UFtaDMIg0 z+1gWC6V!r(32n^xoWwOYFK! z`G#%y|6dKpTMbTSrFR(V^+k-yw}@qO%W;nKxX|e8kfGb z&ir3lwVz)bPvr*OGuxdiNhfBLiJvi2x6S<7aBBN8g|K@sr^Q?i_;a;r^aZ&Y3K;`3 zUrEn=u`d}bXnA}JtQE@y!fz^zZSU8ehFSz>aOa619YOMUf zPV0SPVVY?8wJsL_DmC;$ocF@hC#?mC@wWwCwVHR;wl+_UUDpb-dN8LUrxm1P;6%nn zt}Aj17)N~6p>a9=&WQX>xa7p4fYT3BmmF)~Ipg)jQTDVl?Q@+|apafGgqjAhoI(;? zq_h(L$yQyC>k@fLqvylEHe>p@yVJtv!56+NJ49$VzR=1Koe7BH?pyz>dre6Z^FBR4 zzRkC$vL5E#>RchLEW@2Pui(i2iv|{?yHzVk4!1Uap9$#g?OU%ja@D+Tg>d16)zpT~ zt<}CNqgt=di0w*i@f;sh61a4O;Z6+aNBnhg_5rq*k{*`GY7%A;xEJX$4m{|^qLLES z64zyfgtPF($Bsjmn_aqIp3sbh)d*#NDE5DXEq&r|q0IjhBP}k+J--mhf~fvKWK6A1 z=~9?wx|HNUzXlCBsr>;jCF`3G{CNRA1TTicRiV_zlWav3yu-G(BH7{9%a;!v+vR70 z+~7GikY~wo1CmuyM>PWlvoa>-ev07q1vS}F)Ncj!-3GdSe6vvw0O(Huy1=GL0u{9# zk)>&{$w^PIKzHg4VL5ug6x6++JIj@c>*U$}!1+{AoWHk|#;pcd;XFjHu37Fd1F6eV z5F9|RiJ)yOye^9#n{8>l&X$D~1(`RIm;lX9MPem94I!HIWe=>x9k87$Xi!4Y{+Wp!{3jK} z)X~(GyT!%oLa>Ao>{UUD(-~M?FsHCUB_eHi6}n=2N(z*iWL^l04+8h&W-1B3?`Wxo z(b}UCBrPi!de0Q}=TQ31!n8i&D(as2o*RL8FoTDO2M7cSv_^w%6DU9Nv+(C$kLdtO1F=|7Opt3hJLkO^ zF;+*Ute~J!h01ZrFdLTcWQ~>tU?a2OVsTa=>?zQ~bQ1@1t!$Kx?9f8X%h`cLUhd>H z^nqJ$C-y&ARDAqK(91$ZzY&58aIJa3*Oq*33JYnxTfw@DP=eu})SQwBxX1{=WH4lx zdmv?|6AVNV6mZ7bnRNk{)q`#G=zZ`_QDOEK0QO)2vP>A34_PLd!_z>uqX8{lHA?)x z2}lX9l+RCRVW%_#0;)p$vju+TIr;%6-Ew4tp|}}f8#jbd927K}S2d-MpEz*^0L*8O zc3e>ajfom4xo_dEd~z=86c#{Iv8_ba3ET-5MjNVaa!gbTJYEpJw)j+^6BXO12A%=$qFe`4xgNq*>-@ST;!*(;>IFA@iP*|{`Vp~z^ z5yI^=?qaC6;ZzOAbe5FY=&=zr%U2*us)AaK>|h_Dkl9w~Q!)7lfQ1`V*=(2{k{<>! zMdW^PoP|9xg#|`*^27Ksc9el!c*!1Z^XN7?0M6X6>%fG6*T4XzyohLd6anysR&_-` zrDTk9Fk;vB?b~Jqh)b|wH)LSZt~N7-p#nuetRL0s z1hFhc6T1NjGF0&JEUtrtdUSW5QTB9if4|0Pv@eCixJy%gw*f<}mIz{)#F~37mD}<* zY}f#Ro_Pcq+ZCYGS)2m>Rnw#-{`uz5jMpL3n9?QFq_+Ihb}>*j=X+*14tJEb{-wU7oBY>kwKnvf~wSgDrtT^!3>w-;`LJde@p(>|M@vOdAkT9iXp?$ia$j zc}8i99#!q_?Y;5XRL)qIrr?Z6k2o-=Rop|!ze~BfPGKZMMB?5_{ryeBhWs)zGU*0l z(flR5u+nI>(12JI1Oygc5`311{Z)^_%YmY2ij0f|n5l+GfX;pJcs9v7n7+W9bZfz# zkhSQcv#RV@9WHoa|OQ68T4{xqMCNCK+Gj~T7pY6buAmIS%*85o*vRsyab|< zH13dZE&0Nfp0J;1%^Mt;H=4> z=L*Y_*RC>a2f#^7AuRf7zG&%*frAo?o$$RP#PO(&hiHEdc!#8Jcvei}WJ>ZKcJHss z^vwZrb9f-14`T?is#P~lP6B*HYCDSNm`DxCLRnOE`ySMtn4l&ZR87ykQ7WtiR23tj4{>L@3)CIk)8$K zw-qOoe3t`a38fk(%H?G?+VLp)tj3VlQ_TI7jD`r&l~dTE3gRA~%xT{2Ll^)I!$^pA z@AJsf#wrkhd9a8jVl=L>h9g>~zu$U&4@k-7mTY6-%;}h!W$cxPk2AqU)h@fCpz&;m z+97LqcX#Pin{z-!brlcXdIl3xV&nmK*$Q8sjL#4SpFd!NaUrAOJ}@JpBk)t}h9HeX zA=(Vg!x6d_3Hi=1{nCPP!_+#f`a7DzSFi4v9=)ffup$#Tbuy6)SHQemgREZeWSp2G zb$x7FD)ug4IljI%w1H56ti+N##cDeyun!UT6Uk>Op5RZc~Esl-wW zN*OYB0hou(w80WPhda-)^9e5^9TgDa2yXmahY=7$aS`~MtT1diBdWW1#Icd!=u^Y; z1vx7aq}#=5vu-6e&_2i>yKx&=n0t#&p#99xx)>Aq(qO~bL-|GKcJd%RnQBeKoeN;c zR>1~&6&ZbdFKc8HVglhGuAsXJWkB&{E$&fOhF;?gW}M0vf(pXNAyJ{C9{GX&ZVkrF z<=m-Ln+Q1#%qkgq(mVHKZk4NwIL3_pXIeWy4GaVUCaa`Usma4XrKC4tTnBYov(Svq zMr{Q@pv*Nk5sJ$(wvVyAp}8IHZ2QCDJ5)x-((`QVgc1ji?cPmuT#XP7=kyj}c7#W^{6)TzVgf2x5 zerFO~S#mL+zL7mPG^%&@0#VqCxSsH4puhhz7i@z`MzW=>qkwX!if25p{l zAd7rZ#Hj&hM#e1nR#Y-54~cS5dX*wDg$klk1|5I}vK%ov|FZHk9!R<+U(=HAw#Tl+ z)J&r+8p^^XRoO0E8zMmxpG36(utF(#g_;=~8F?PC)l;ytn7ojhVg8IOKjHG7457-v ziQvmsILk&uLwoP)oBoVA=4wM503ViF7~rd6c`(-N^mC=Q18dfVoE(`~9lC#{_yU=w zKtg^7Xq+>GGu( z2I1?K;sz(2QVN;$^~q0ys+ZK_Tp=XofOSqiID;RogD=0^a0@4T+8Su@<^6Rbn(fAS zhCz8;D;Zb<*q97B$`%*reH<|rGXmX)>b?hWs~Og}jk(^(?6NUC(>QbUYwhi&MBs@B z`678RCYUUm{f@PeKv|w_#naNLgk>3ST4Rs>at0Dh+Z}5Y9dbta?6RkSObdxx4Gqn+ z$-$5Oj}YakZc4&>tMu!K-WeB+eqSGcIfoIq%85OsG$K*3E^L$KGatghBTfNV~2 z=HlYIf;i3S@9&=nFW1PMHzh2*zlhMN_yDeTuaQSA^I9O}7BDYiOjHpD4o{Y2oChSG z*x6||)>2jQ|msbgm^~ zQ&SL1ZY5H3FH`v*fq;Inyk&lJ7ExUtC%tzVrHcEv7<)}J+_ezAOaPkgYIs2ErY1cx zVPs^i7SAme!hC(-u!trbfaL5VXgSNS7}5zYYMO=(#bQ_ErWKUUxgL2&Cv%pl(~ViX zJ3D8LPdOeeMY>1RCTiMWXXkft~SG)+}VjrV8awTAsU|Sm>5X>eVg+~W z5|$-oLiYicui^`QLz!zkld2eed;!73k=43Y!Ln!qUV& z0k6D&^u!kabIksxj2bTdI;h&1I5^#V zXpDMr&%xHp#=*+mkmix`Lwj=@YZ`WDM{7%K8z*ZP8Z!q6TLCt<|2)KM^U##d_`w={ zJq=1m{DzuyAfO=nG(bG|TpR3%!-kMQ6x9_%PI{AGk)PZCGWlh}o=p1P0@jCv?TL!15Bk5ne)&?V!gJRufRvre1HBY`MywU{^3Qqia3yW+_mch; zTCt9%O_9mZo*f%3w4-zCJ) z??{BjTMrgb|9Evqz-d7zdSaq3q&;5d-T1`nwp2t=P;7iWz0dvQZzT1-OEJfkxC9J^ zPS9Llt**cXjsN@;i4Ak9^B+R^3u(19H$s;jIo z4Enm4#Yw%LDOoIUU!Cpl%rjSAoo<&p%dC<2OAu?$ryS+ddh(;0!w=0P5J6IOStS!6qno{5G=YFXsWC=We{XLuMLjh% zHa6Cw|3LxM_3J9Io%ZAX=(*QNV~Z5xhx%^rEH`(i-eKdm?7BVG6xCj2KZSSgIlY9q zI3~(zs8w*WG_J6akCOkPxDOGvhKfp1wC9#N&Se~mw@2gfocAs)`u*GX`Lkzc4dEO` zKGYw$EkD0H!)P(~)34ZJI_T?3^zuhGF+B&YE98_+=MxQzvSF7bq@H3<3QON@jKZT+Wva-|mp+PV*li}gVCcF4p@GGJ9vCA(O{SKt z!jKRjPg)ZF_U+rge9J^w`4xWtUUV&L`P0!P1y9hhVirmkHE!R21N*(Y+O2On+m-%2 zL(sH|LbuTNhOpaO$J%_q<8&JXrKqP)eHhyvFiMJWa`qF4MkU>AhZl-Z&TSFAwm6)5 zN8dyJPNtsvd|$rfpV2C;Zum=T`PK}xAEls%ZpouY-G%x2`K~JO?f-0*Ady@X!=|lU zqGF7OyL;)*&Q3?xy<6%@N?$S3-sY`jG;9KBQa}G4e>5&~m3%nnNYkF;5LqlwHoo@v z4~>b5=_|0w94d1QbKaisFR%M{_NR zq0MGiq&%FcE8bn}=QeAhQP0rn#W;Ka!r)TW8G3)Z<)clnm7^PgE5G4TnrT=MGXthIi zYy6!eDH&NJoZmR>;y_VuQzU;}PmiXQ`0-Ox`rbLSLuDnNTholXWv-o=E8a}4#63@w zC(+58*@oFp$9jtF6ScosMVOk(2Eovub4{DCUcUU(|L;xcy>DVNGuNAI(U+Ips*F;N zrOP5~*Lhy-vTRcIRgm&6hoWR#TYQq&$?!%LNwl>^oGd%Ml7`sHczA9$G9*#q!X zbZ%Q%q!=0+l9G_ndU<)pjrCA^+|Vk#tG{P9T<#&@ww6XhLX!7zLRPofLB^Mijn%=! zb;NU^h&srT@)Pw!?PW@iEm~6FD#Ie@Kd}j(yIY~3$`WrESDxf*l6eE zVxo^URcAbTnP!;!?9ITMcdHn49V2PFAE&mj7VXSL|r^X?U^( zZ_7}0rAnAZr%-9JY(1J)uQUlfsM$cF-Rsw{+kB`!HAlAiE8?o;LX*I1c6h1j$=$VEIT>^&^FF~9bP}s{ZXUCOBs|j+AJ*u$`3K|ZUJ#0@ zsHk*+R|Ox3xQ(j4iPfbg#05J-IB|c=Ku<3nWC8Y#S>yM?xtnM9$!(!1@lZ=o7 zqo;C%nQc5WM9U<#yuzN_ReMTzIsQo74OnuDPx6#bn0=YP9k?60&`SKB^`@e{eCI79 z;rLrVgy!Jb8TP7<;o!{H1k!DWQbTx%j*hk%DlJNn`xfuHDdD;(Y~Dtn{BqYUOiW)% zW1)l0a=@;dGDnj|z<%=0Kbyz7b%N%?g$pzN1(}Z)htk<9c2w4f+-x4tGF-kq1J^ib z=a<6QGS}6%>Gnj3czZ(41=fQCj&nWAum_KtiR_*KNF+acz{J&op1riS5tr}Bs3T-8!FuI+BkW^Qeaz0JS({RG?(@q&SezOBUQ zTdl-=L6@)tB2{m8W$31Y+njVsGiiKZB&c@$&+>A6x4u{U*QYqCM%Dg7@fMvaOtiE& zgLtp2vn3(sF^B4gGBjXfnsz&;I zJ?CG?8>59wUS69w65HS7@oL)J-R|At$61-R9Gh}$_}t7Wvx{>oYtz1%j??jn?!RMJ zZG2`;04QRt`YrRdYx0dBc-dN?vje!e16G`GGb|ET(bEx#)DuTfbrD zE2%#~=CL{GcafL$%$YdmI~hq}g%)k`uj<0swy>HbhdaF<&F9ohL?)=WNMIx~^y_?E z(lws=S}m78BVf(S&&S3g#0>dU4rWjXtx|GWiqgM(6i@2qq?=FoV)#Wto{*5xz-ZUU z8fIbPZQ4E`sx1#wys9|1g;(X{>gDb(+~#dRFy|p467#)oClnir9`d*&;HI&)Wf}Jl zH7TW!LYds}dEkt;WT2PMHIZo+qO)7q{Ajjv9A%(!N^FG7q#+x!6olJ-KXe;ua_fS~v{B}2A zzYNgx)LL5S{kNnMtMlHK4#<)^-$i>3Vd%X#k;ij?(K>|JtNcvf1-|k{=L@UmRTX2Sz+x!Qn`Z+6v2Ud{EJmLNY71v%WGe;c%CP&9W^Nl zXV?TN=M?XQ_i7oDT*j}D_MlnkKn)%@upS3-9?8STb8x}oEt_%E! zhLGV+N5kF_dadmRL0gKtO4aMbb?F?3b-heuG2d}czJ-$v0rlV4W;}yW{KzqGdyL)Y zwfCLgLd*`CX9x^WxZZCAXS=${Ht3dlxUM_jQSe6B-HK*o)PaqSSilZ{V$}-2p%*Sy0GxKl-Znos6^rzb}f`AK}bN7v*tmvv-Eb{uT}(Hqt9 z#$d%B!|qOQo+;70By`m$u%jX%WwnE zV!<1YJ2%;_pHO6X|`ss%tULqNXI= zANk;Rj#w9-IK~qa!Q@BH=D5Hjy!7&DT|Z#K9YG9jzrME(mEDd#K?->nY5*~C&f40x zV5YW_uPXgt4lQH=yh2aIMH}f?uiEB%B^l8TkOH9&Uj4DT+$*TIzv0u76nHc`*f$S{ z@$2#VYh@d;ho|NAQv!1(_m)q5f?R^raEQD6kueDRdw;ym5<1ualIOuy;oZE$alp=u zR~mU$;DoKC)Q0L_aiN`V!4ZHDsT-MWoU^fCEKzjDTsqv<8aVdgzR{|-*0?rBQI1#S zN)+Hh#CTwMwG92{@^{TGpHybM4p;RXGMy_SaE$Tv)17w?J>ZBFIFNk%sd$&=_!gz) zd$*28_eJBT@wnuu<)?6&2OX|zyh;L-RR$w43~Ei*cJ+} zdi~**KndUYGmP;Q^%3F(R|w$}eYB-O-^dOM0{5Lzu`6%US$FvSYdC&pxV+4Dec^!vOC=ZNL(kE;c=_P(tRnIZ9;>Cl|GVZ%9;+VqYj?lgR!>n=2Ap&j zatJ`5)8*R>?P2>7%Y(!cKaJ4MhC8Hq$S~kF z_j9bl3emyezW?1>J3SZ#vfoo=y;#pbLVlufPK>HML#F++jG_qBphv;q)iyD+vMMNw zY{tLmd643@Ge%vNA$srIvCWN*aV?&YUS0&}`C9adf1y%EcGY4$z6dnuSaxSz2>z*) zHjTS$tGhOXi+y_hPoHI*O@$1nDS6Z}cG0cT$PC?*&p6cXO4HNRuiv~0E+}xy?r(?^ zyptZ@H#BjIf?W(7=TuGZT;=1Z#RaO2Pe~%4=0i@CQLjf?%ZWNkMAU6lv8yraCoCky zWn340{kXTwj~~)D71!h=uXLt@KZWSI;8)I<7#vIrm|U*4wG~o|)c4$$CJywKYH+ld zno;AB^5406^X4mF6Q8>L(w!W&ILWo+`B$hs>}*!5Hse2kp84cM)dp$n%6!4_lHax8 zjIiB7rYI6>Y8y4e^Hz&`=9>@ATWOOm)Z^OuaJELvF}};SH8o0*p5?o(TYIc_-YEvW z>*s$g91pTkI|AJM+0tXxa!x}`1l0cw!XBXy$~Px33NO{rK~|%prlz)F6vBL`3uvu- z1_G7N@TF>VD0;}?0ivm@sRhF);w$!T-VZ~RJ$#rmc0}^il4RapURr4=L70t@h=^oJr~8EI=f-B#&9@w;7rnw33Xdj$h4Owt zDu8#G_k>8A!+lT2^H>Bih&`;W3zR8{BC6RiPYQgJO_No1Q<##^acMZAkuTnkzn z_z}mgmFWS>&!US;^F7(OAgRGSbt=zNtfzXqy=`Z+cPh6#*$6gJN?!*F;gyf@D7{w} z2JZ%~bf_v$Y?bDTyvB`O?!m+Th#>d9!^!4@SBd$x}5K*bYsFWdRcnq`ed-=Mp z54H{OnK+Pl-_+M3LZ-g)(ka-$;*n-k&D)%?3qL&HRT_giyb8y?c`Ug z@>|G)HD(%FQo9sy*XM0+|6Lfr?AE z8~d5y`A0QT!5mzNtgLL??)q@%$B!Qk3tsvAcZFWNi|1}t6L2X-r|4nwa$$hRf^kYNXU9PQK%mMXmrg> zVmdID;O$(*vRQQyG6s`TvQSr+wAS+J*3#OVhJk^>v|dNO-0t@J9f(@N(a{-@eQWMg zAmnncN#l|*n`ap3EA3Q`ww6zliFU#VMu9?6&^1#@gX@d7(PEee;xLRJD1u3m&|EtE zosB;#WoB^G^9;UX$*A1Fe?K`o4t8Qr?Ce->bG)!yeB%d(X4S+Y1zZ;hN-kZGCcVhq7-i`|5{~v@LK449J6Q(>Nhn8*j*U4225^5n=sKIu zL!=%Ic`*|U%WbdCdVRGrS4T<#2kFd;y<$KW>3}m*fi0~Pkuoz&a(8!MV!6m=762aj zer6A0NB~Xadj^1o9kI__&8=*zUZ2&@Hk61qhN=eV6?xB>lzwZY@@z~_R9ft(g9@@AyHAF--@TA-4H)a5=FP)b=PJ(+HE1*^!BaBNG4+w z+4j#DqJD_r^=%GTcvWZ@SU*sTwOXm-N1P-@YKv+XP=u?M*hC1I3f@>1f(Exq!}-Pt zPAM2a6bLMljS*}qlWS_e=dN{R=nC$xv@1$VaSYVHYujFwV=E6A4ntEsE$3rI408+& zQ>(x_3b;zr3m1~X7;5_a?*e71tf?8kwlJ6~;<050Ou2u9Ha!~~8{D7^l;3UNU6yg2 zkp@T7Dl>o&aSUKSs+xI)Gz}>cnYVw2s~#9X*Y9j{|Ngkh-l#8IiiGbu0k6H%83_Mj zwy$2jl9iEB24)E<*6(Ql_ zSHLsNsK5>GOpqfRbnMnm(ault+}kv5jO15MPEK~6P6$hD`gIlPQ$}UWL2YuO9t_ul zPdOhMvQc*6jJTji12#nVU+^4tMG=O@$g zMod5Qzyb0-ClsS{9zi3<3plI;VgItS*wY~#-MDdM>Gy9X4UN#t3X$R4@~Qbiv1`u> z)Q4Vc2Xc6cWqYZf&2e|jvFhi~tAI_=XtV|JvdPyAU+3k``I>F71TK^`!}?y8^AREI z%ZBx-B`MtiN6@re1Tj&-eIrXFLnnE*J2TZ|du;~j_FFgiv>*VHQczgcSbk{T*=*Zf zCb6%-0DJUz3|TJXd;Z{(h4*)s*Xo|A6uN7nkJYuzEOB88p}3`q)zNqrlNvH z)9tzYn{~`TCsC1T;O7?0)`a*J11b$&?4|06sC$u-G97(iLQW8J2@v4j(r-A3qO1&5-f6Ja0QO80 z>yBxp1+2}#n`|^9;m(D1AXzv&*`CwfeHGPQMrF4Z%uF8k?<^Is2Xn@kV!y@4>xjNCu1sg*LSUYh40r5glMYRi2(8;0m}~ zbAGai!~83j`O^Jl6ZyFIk!FnV-%U#elm*YN%;h#C)j=dK1L9c)m(G0Y($~Pv-=b$2 zWeLcop*RzD?D!|PNd$$kXWqo2frD3Zb}mF{Z`hF(06yfRo~1M0nVHqpUOHgdkM1iJ zd~r<8^DN^s^;gS|Z8cXqy=6#+_y&9CHQJS>iTYF^ks)}$gF;Wj$upPDkb-J!oR4+M zJP+c(pvvT5GZXsova;o{9yxm@h6_?mj&q1{?4%XrYYY}UBJTg=M;a}bbGqg3TA8Iw zud%SPSHaf%nd9z4(kEam=DI9j`yJ3|)(Hx7k(~un~JPnFv1EWHr_;516QAx|m zwZA^gywdEor|PygrwnL@8xl_8zT4V~Se2``LUqeTQ}% zDfbCDnKw1k=3|o6xy|AKQvb?L+hae(uX85+8Oyb~wAEvDn9Gku@?ja$#<#n1D z!}(-8qr)2BD6wD z(l74!%cn-W_3kZeOt}<$V5fG8Zg)0oRQ#+p3QHgQyinGdrY&mz-8EI8j`@4>uuWNF zwPt>~sY;~!?Dt|%>4kn`%k4`=)>5!A@W9hucN3K3-u$DhD>v}K(LwJLm{j9$ zJdJ-ee@IPL=Ch+X#GDHqCSG&7eK}lm;kgqugpYnbS^0UfttVT>;Nv0XQ%D7G@EE^V zE6Q1ElRMoj}fM@}@NqrTU4^mL8^QyKJ&nP_#bCD7=&Pcm7#E za2d_NJ~1{UP&InQuqNB3R<7>pF4P9HW#hfAPph zJSfoFxxlGecE{h*|5qk3;Wi&VroP`k-?Oz&{c#Wb#Q9*{FIh|VHhB+sKMU1o=vG)O zkxxm8>V%aEd_(>4Z;AqE|L*3kgck&U2ZZtCh(;HW4DBx##tx@?dd7&>JK#@4uGRi8 zBa8LlN>54n8Ml5F&vg+S=P4cQ))~+WtWu z8FCK8XQdnXxCpIvWk)_I`!9XBx1DfA-|?vcs0CUlbbA?~QXZ%PWB}pcQqKo+Bo_Ty z3_f^D%xW%XKiHo-Y;V^F*yGo?^hcyYF~Kc>Wncj;$2V>o9>^}>_GaB9af-u!jT8lJ z72#u;)$Ux=hbBPyIwN;?{RirYWK(p=kh>~5uR@Cc@X?ycuuorf*_@c$#J{Y-^^Xxm ztpj<0!{_KdyL!kQhpxz* z;*^-|bbfdIu;)9IrlTp28=zG1Oq+nhit^x%aa}#UnJBLxsCZH+QKcx~!o%l0T+t3O z*{8cmacQC+@v-m*6^u}L-{6h3yNo~*ffs=i%i(H2 z(omq8KD~JZrP+~G1C?+w<7l7ARMxM6q@5cOHsVz?E{w~w2jo^zK!cODm;HIaY!W^Ak z_&m9WX1X^xI2vajER;BOrmV6pyv^U@RvGoowb(7*^~|^MkZUte?ecNl4Hzi+$3U>7 zm@09o?+-Vc4hkHWp1ipWPmC*)oJqLA8Ba_XKVop`F1+*4d+*eyX|?%X?B(RgzJg?s zs4hd)5>9JtTgjqHOtWYGwId5@Gk`ZB0YanO@Yw()L3qVNp=6)>w(Og(TSIt6N()F` z`frg5l>qf2W5w9DZ}=+pp>0|Bjt0sBcOT!Gn(#M6R(x^)pa_Y&f?qJ~A+6Y4{&FqT zD}>4!P|#ogT}i{*>)3eNdVG)ObZX|IV?h~DbV-SkkmO8poaa}uX#IBhxB;Rc}Ii@y*1cwz>RL|>AWS?UG zpU4p6-2cDHm_p{}DfnnS_KH?Ay<|d|!+6Rz(>1ei0v5e4aKh?Yc@G%^;W$q5V?CVd zVA|Z=oc_{p-45W0`{B4WNQp{*^aJ&w4kE11pMDn|e~;Wi;4Gj$RaaNnS6{qluR(?! zf9aO&Heuv<0AFwXQ5QcVb$9STr$ED?r>8eF{Fm}@8usW;c>uUF^#Z4f*$Sprz;z|* z(ZWD7TlvOKgmai|in<#+#rIJBJ?~qYju8rEUu+p(%&Bl$bV%c$V`%|FMQ5pted-t8 zEQ7~TKhK2X!33+@#xI}FWL3s%+IdOh&8-Q(9r>y1Z20G20Fp!98Fd&oUl=G-g|dSh z&^t>ki(Tm-nxchM!^6W3W5zb8=1B?JFCcc(@N?Sa=38Km;@*n9w{ZbJW?_tff6o;1 z&!G6cJfpsfVZD=$W1x%cTO_nm0~uE}{qEicx{Dr6{0Krb;_F1wgE9bQnret#QdlEh zn_H$0G>rIzB2)cC00a9NVlL!c5B6bj3D1HWz@Ji(obo#<#&`9A;F?kc@k9R$6BCn3 zHx^SZ<$`krCr`FQ%1C(o&4xj57>H}t&$qM9PgFKwaDNLXl6y<5*xF|K zQ}74bYzERv0l#d%s`~_WM^b;}3NSIQ3zc8!dy1Zve4?vdyzN1j1_Crd(hBE%8Jx5- z^~xN89u^|=1!BPr>|>@UI}SvielPLP`2N!X_s=oFyt zw}1p$sb{Oe*m!N<{nWqT3);ne&t2DqgaimgkI03bZ3D?B-+zVk%d_abiU@F;1Q%Ia zxBdQ`VflORDDr-#MpxA-jM=v?%qU~{qV+(az!ak{YGS8JX!O`bg_2#(O_ve|%onchKZ2TG9 z0?G)H_fZNyx@~T5u3hS!J=q+S2?tR(JX}#T1)d?rq#^v%xog@r&CQC`o*SP;wlH)a z+w%n}pubBV{vdo!w^)r%@{JNu`kjS#VM~Zw6aUJnh%NGfSZ8PFn(AsP5VI;bM+>jQPMbkF z24R(8crNRKLfV4i5~oaL(yeh)vzXSnK2QjjZ;ax5z%ITQbjo--^xP5Qq(Q61L{I-? zX8pt1?_b}G?ZzadMG^5()VnbMu&}VL^~KER_+&GKPQ&>YcTIQP=UL))5JUyOOS`6-B{oqX)(y<}!!Y5U-`^1>Gi>zz^|=J)(De@px4N{nRJUB6 zhE$qBf@TK%u*PtD?FCVNw>Y+y1okg`?%nBk85I>3(}6yhf6o<|Xgajt$z?O7142JU zn%LP)P>3afnq=hL`jPt0Gp%^M&#ZPECY|zIWtbC z`t3%@;1J4o2BcE?cW$fN{%r0Z!pQM#1;wO`4ue*i8yqRrUO`cOY~k(0M_-`kBS%ec zYY0}?l#D|IWFM4t8VZC=wHzGsbiZ)FzIMF;w(RTIuPJv6GJuVMRN?Z)L@pd;bN$Ni z$FXhpZY`(lSClKnh(whvuS`Xyf??LQx93)N9~(eZJ}$AJLDwKIu=ImG&=e1;*`$H{ zg|dfM$^$>OzIA39guDPk6H&B6Rsl?}Vi=pg2GojHfy(c{mP;JDx}49u735bwZv3{n zz-e(PC_XXT_3AKhq1*aG=d+V%I^v{=AaaFV=N=ir;0{E&D4MaN+1N6%7-wp=GQsOtmvZxO45ukFX-d70~3z9y-k(;8Mf_h)l!d)pGE z$Vl-Biq=A#7cC@C?q^4f3jcd>M~P6{5!;=vywhv^_OzGr}{JXMJf4g#h@gmDkkO)^!E7d zY$}uLXUxdgrxra~_abt!o8BO|Y0*-S8H9zF5M2tCtMze*gSSLVt@ zM|Vr#bJI9_BF1wod8R8p6|xxFAkh9fE)4K%v4jfsM~ir9gXFDQH#9KtljCexGKle@ zI_KE%A?v2rkj;(QxVU^E{s!hFLsH%UZYNo_XE|_Y5H`c0&M!zQ$Tor8kG$g!E2`i;FLK#p_NW26t1RzS^T4;uZveERY)}0KLXcPcIHk zz6Ov{+~Cg)aooLAp(Jdo;DHwk4hSseBf_|W06v&rJxx;?dMmn;l;d6xbb%|@_u9=r zK}3}XQD3&Md`wPU{27!&@BQ^1Zp)MMe$=8O&Cfp<47sL?Y|rHmOkIy_X=xD>lm(`` z6;eZb8PJzr`wel-{@^q*zHwVY00_W4C_-CDE7X`eitJ50laz0fvFfw{q0j9&qlPH* zAqw1M8e$mPL9T~SmBfplM1?37L&MnjT;{aY)G;JBrrDYfkhmf-59*#!F3X`*?Ncxx zT79=x}VD3YVymt-Jb$V1$yTi?htZwES_ z1^Hs&wvGKB-1(=HT-|NjPclx`VCb71sTxjm^~;*TNozXGQR=5YyI7L@v@`RMk>UH! z{@WDYz5huj(zbUW?RImeb`5*&kmXZv5dqFsMDDJ7e`s*3Lp;}iB^P{P$)b38cvm|g zfzZ{WHTJn*dyl^PkPUblS;t@Loc3J@F7XdYv!nR!CBd^DU(l3kYgZIa2ULoI5+vbp zk$?jx06c#J0GvUWsi>{~;XMsZ;H65vhCbpgw3OY9r5NzR(E4%)sxiqe)nlWhY8g8G zKGf>k@c&R3N{1*h3&9$XfIuBeVGf&1#y*p%h92b8hA1plRx;>i)d()~bbxgP174WQ z2KoE}QAt4Hh+%0)&JW%K0edXmNQt`z)}7$z5d|rn06z;3O++T$3by~`^+W?S>J6vi z4_pQYhKaqo#e)cF0VS~F*^H8hY+1sv6p)gi1#Yp$o!VK zd~<2S6*S^%fL47>p15(?OJQ&*{Ge^(V*~Wa1OrYs?S;F<%H*~X7+DR~-ODlpo;!uN zmLYhmLPTkScpGKv0#&p;hiR3A1|Os#!TGf;ya<^jXpK-xCJ4Z9C4NmxNvS)+TgP7y zo`Uisu61<-s8ejYGSHy;D}{OnnKN%pWV>vJe#HXP$I(K>M=k}M{pek2=x1n*LE4sv zjgTAi{h_mq%S43cb*ZMD$mJpYWl#pB>?QKw|3@K>L&43-B{j#fsKj4=R!+r5akgA^ z?rc{h6wLQk4F53i%9K@8Wm|X*f22(0ia(?r;?*~FH-OQ^2>@1`#o z1V(HAi(~{QE#l8u^(?f4bOA}W}sT%{f|VxS?f(us^5X&O%ar=U*Y+l z-~Ka%9A;{2YEVgwBS;yM+7pRvh=K1QtVK&t9xMVHtg>W7u9`z#@gP+IUy%$cNKnq= z*TH%}Q$h=Hp!shQfl?jRx3fb&N>7 zPPt=DhxaYOR-oql1~&3TNfV^RTn-o|n7AAnn_h?4{>B%`TFFFq3-oddWojgc71UA$S6an;+oJBZ}vscx! zwl=|<=xl5j2VyS5XfQtuDE)7;Izyp0WwP-@m|LA}7_06IaODy9=G#N;b6&Wqu6k1Jt2ahaQnFApL95n1%RSV&YHW zBI>)ly93;z7;Mr0+0T8?pGIiy(t$~vKgl35093jT%MJIKe!2Ts&#%?$QREyau?hd zq$&-q40?klPQ2`w3|JrysYd+}LxOGm-15Nw2K9TuTu4Ub(&YiwGpK6idfqw4Ifw?R&`vb+)%8CQPg=@pb(7#cW`}71K zo`;<^UBboe>S$Ab4zh5_K-AV}T@DM$;H@VUXX;5KQ2n1Gz!z?;g2e$gu8 z`21}dkgKPXQd4Kbv?1xf;^gAs;P7}>ztHwmi!sZ#_G|;0Iu4{736xIIT9dz)(@wcjf(wkQTcH88&Jsy@Ej1l>o*7Z2^y0z zSlvXYPN{(@2S-FO!3O$K@T&mVRI6JJI2b_!(H?7Bi1gx|uS5`{V?>y+M^og5)LWxM z&{OK?j|wLTj%ey$?Pdi-WFJ(u0XU>X4v`9or7FV<096#EA_U}IE!PSLRK{JweITHf zoXhMZ;NJf0JO;R1qt4Jll~DX3rxj^3g~?l1AK}k|)r(b`D>%OE(fI=1XCA!XciWco zl+y=goeCR+cA5Mx`mI*JXWiE$Y@k0SGkdwM-)kehPgqC|s&e&Zo6qU^jHG1SiE2Fr z4IhZochBQWiRnCp)>7z3l`SoYECpI_AAF%2xsCBPLZl(UJ83{`V*9)S+8^pV*5NNt z14rro{jkmZ6asasCtg6?HtxVl?9(W3dFY3`!oPOEZIS#Oc2&D($L=D&>ZqFU(&P;v%x1xK6kTY62h*v5dKF*5puh2MU+5TA`k^ceY z`3Uzf6kE`;*iQiqZ~%Hs{)xlDCxS~VcHhj=gMNtPCr->vAUz&b z27KUepiKc~z>74l;U2+=hTOu-To=mQ-e1w~}Z5Ex4=@36Zn=xaM3W8@65v@8nkCnOJY)z+^|*k<$k0!l^`q zh!)^I@*SqzNYd|u^bH|9A#H$Ggmhn>bqI+T{a?~)X=yuvDY!^~{0-8!Wy=c1_A5X) zgOr)2wHWXK(!39BT42fCE5_&+Kp$Wc8A7u_Ctn5G3UGxyjriwZA@T+t{*i-fX*G1sPl7u-3uzbt>G9|9QGuO-~^3z!|<>^0MVJ=+{7W**=uoQsLx1QH;W(xZFd9ttpt#} zX3s)9K@!AdL`)3H0cF4`cIty-1fbR%5Mc_CHfSoU421QDEb^MeAc$!&-=5)tg1sVw>lV97sy}mbqc_;wg4+~ zJ(|;WguZ2`qJjcmK{Z=^q{durh#IBGE5@h?9Yhu0XbKS6b;6M^rMtloE==6LQ&;Z1 z2H%Nbbx?s$0GtIjC*|gIJf2!YK60cWReI{8Hw7?7a2+*(ibT5mLDILnFbMT1o8fX@ zFtaK^DhgUWZ7Cnum+9Qcs{s8UGl`YUs=scCfulhM)!QP(okKBVqA zS>xm4Rzd(HMpVi}K$EsYHMX#*=t7xikPo+|cYWC7=lJO7)&<)<%nkS#p5%`|fBAA; zF^G-^YJ6V-L$ty#ONdKJ(Sh^ajf{(<+uL3A!bTxwE32L?G@zdu$^=N=3~PfJaPjcI z0oqrJlO$+}PDlsT?AcRb1g`bHUvN|YJ*ve5U z>ewQi;xn=hILj&=ldwxQTn&$~Zgw$UC($e*-1sBasc@D!#1B~%f6zFqruf!rtZ=TA zW__d}FqpA;Iezd~(J1lh>lZ6_Pf!Ts&Gljj=X&!JKR(z9osM*EUspJBvWot4ui2rNa+^gbaU z`jXc6D1K$<+3@QUGqNwo-y)N;uk>w^`LefjMzexSGaJj+F0h!K)&;S>8lB(p?JBLb z7M`A!f{W5eBPlo^dv@Qvn{{Nv&R|iGHC9rM7}>0blly9cbK{dKP4~R!xkpyJ6Ea>% z4~3J><6g3b#8zBV5*RIPpy+;2 zxwXvA2^!f_`hgQ_jAD+x*?=2C4r^mhPOf}&LClsN6sv!?&-c;X{5pqjXv$iZ6ADt@Ka;&URzB{;5; zc_K109$9M|Kif^*`=+Lro!vu2RCsz3iW)C2T(Yk`i7TUkYcMMQ(OAyl2X1oer669* z=6VQTt)RD0-_k3zMT2^Ry=Fb?x-lMj1n#~QWvk~-5KvhK{E;EQcejAfsy~zbL9)3y ziMr8wmHW>&vvhve;lg$lQ3`siCVFGzpe|ngH?ACrmx%!}sSkrgyg0Ybs+om?q6trr zGdW$Oh*kaubs;gDL7Q41JE7lzS&p4Gp zo&P55=PgljZ9~Z#3gjW}a*CIJ$31uRN6W>#{1GFPLzZ}%;dnUz8RvD~O0h)qGg>T@ z2@gZr^a;iCM>$b*{RM!rPAXjuaR#nCp2bi492^e=9M5(8DXiY!$~3LNHY_&*#bL=Y zyVh7s9v+^7B3dlYo1d#-^wCNAk?qCD$*Pa1qTl^B(W{EMmmE)u=lpyVz+`vnX3!7Q z7&H}CB?#RPuY(o|75dUUd?K80-@F4(&)yaHlfHvo6D@M&^{d+A^Uuk=KhhlR9CEBI z#BaR=ppVs0S*L7ag7iJs!K z8=IydE!2;8APo(M9mk|Cp6+OA(8Kqv(t=^RX#87B4g$`z$+v0WLI?DtkcJXHKU)v+VYssDBJ0NJ!|w zlN`jTvv56ZV%)JhQgPgOvX8bS{u_8~w(7Uof=*Z$d9eryk9NFORS4^*05crkEu4}0 zf`9%OqMbbQIzGX1T3YXSjOgb#k9NEb>^lBk!|hI5i`{MPD8VBm6=#5%3TWjVD|8~- z*s?r2yd-*qKA#Llz-F@+>URE zUeNDk4djP^#%s@{^J-in-GB}b0zFb0I#KFyK4nMzRy1~eh9tzX*@M|mOBrEZ_u6x( zXJ9Zd<8Vr10euh3Yo8!exL%?o?`x?hFXD`(MajDzt1Z^X&zVu_oPDBuBHa3hp2i>K;8hj7D+RLkn11D=h>)?Os)(aYb{tI}|u>b(f zP^N%5X9OrgJ|KQ&@EFD-cnGoza76ZX0DN6sHl#%CKemo(nKTW$g$*jb(eTS*!XVOq z0g^*=AyI(&AkN1Feo>Mw=*`r(;|BBE23ro5gRu1tWJjN8w#Uk`pHjFIB5T$Eg#c(0 zrK{W}JP-OvL9SBhvHb;^cZARdvkqM6eUD^j4x0vFM*{?PU(IY#%~}|)Ac8(QD9oPq zo;ep=b#~qWN&w{9Lf1cIKCpsh(By65`HXJ)+i z9mKoeYim3fkMC1#Zl);OmpGue)h&cWAkBULSPIh9uVy zXhK0BP@sGSEk}|b{A7hM{rBx@#?H+-ubrBXmLjP7M(K#NuFlT?r?dBtr@D{d$B&gQ ztIX_#k|?qrvQk;8RI;gzjO>hKg-{{lE?H5Mkf`irG*lENN=76Ul0wn9lloIT+G=`uav+xFA5Z+CO1SaHKsu zyl_l{=D;0x!|hZfPgAQnA2-%mN-ke(sf@b*3;0R?1oKW&Pu7vzf0FuLFinC0{ggND zeFy6e%T1+Yz=2GOw6wI7aE2R1>jr}~Nm#B?9Xu$WWuvb@J$#;$C(dKGS#qS=dlS)r zo!s}?+RWZw4E<*e#u}n>aw~Nhq_~;T0u7)aU0Gn9d0_CEmV}L&8QG9wYVkXzsHn5c zQfQ?4=JM~in2jv=Z!q~%03IR_<}IK=y3e0KgW>&ND-xuRcr|rPGn_(wx3`>XMQxz_Nif zYa5uq14Bc*2b3_LR>n0JKEnin`}FD4L9ZMNU*4eGXtQGJyVi{o#|_KxyMX}gJSV#4 zn_64*(6Ekn7IImi_@r3)SS*>1m?B})NhpkiAAC@m@_C1v3*P%b-=i_tpQ zSg%)WZEDJfMA8sg=4}+A#zkwc0gbT(u$8a*3d{bpsfM`5nsg;rUL}?zuZ+iBHemPi zrSm+7cE`gOgEUV+zmovB031eQbeoGYUw5Uuz;W{4Gkl`EU!+qK1XVbJt&X(o5U z{vv{o>>@MOwa0wZ{x=?s{r&_AklxN-W6RVC{mBb* z-pT4}H83B=eN}F5@s;VHU`cWTBi8dvy+VsdG#`F`e&*+OBzCkh@a@jcFPuS4BpV*6c%#s+08j)Z=KFF zBNj#W^Q+t&0^`vfso}lOAc6&ej@p44hJwd)vf~Z35A?&vWcX!9z$<|r5U(!u&xIk6 zT(+hOX#{0sgu#F2#Ozo!;=L^}!ULJ&^#RlN82q-RI~lo5TK7NTK)v3;Y4StP{liuT z1y00{)T?5vMw->-)R|@_)*2uf(``NWrlBTqM&=Mj6wECa%rP3W!j`0crIQ~&rjayRQRPp+^zIkB zp7DD%>FY+Ce*$ae1$FwsEW!P38N#*ZAXQ-X-GhxuJ2|GBb;Iwj?`7fMBoYnZcBh1=a5qfFTF)7Z}*s zKrT?*gs~#Z9;wR8N{o2VRPS0 zHwX?^2jq5Ou(DG(Edrge>4@Ga*oV4kQ3r;H>BznU&n{jRoSn%E`NjuBqgbGyyv29^ zMz+k3)q|#huayS`TfeAT@N$0PYBOdg>N)MGqj*LLn?fd+)V0ZE68uLK5N8H3s6AUH zA-3O6|3N1*>)_yEL`{wQ><}hV;+mS)i``vat8^INAVdOudND5$6BQ+*rgpGasS#|V zvq?!*{)xyyJVW4@#Y>u9GarifdXI>? z6tvc)3y(AhAvX?ST+G120{g8GM7Eqge&fcC)yKEdiG>h*8aEx(zX-%iQ2>XC!K2+} z;#j1Sz%TMZAxKv_F6rjx_O-6)88(mNMtk(mW?ALRz|ygT&Q~3>wiW`8dD%GA5CrG@dJE_=pf?^e_;u1;6x2pBnMtUxu=T!WY}49^Y{1>n3rZan`p%q%=VoVqTA z&U)_%?R(gCYU5oz0kPIhw+N)G2P!l+Huet<(M0QnM?_EugWox3a=>>Mz&g_pKyE_B z*!)Oug)0wmU9a(%vT(M@MlC?39BW0(WVt%iVw)*w*7n(FVk;y6pU)MK(X~)T+9+;g zjLpnkL(Hl|-(c)+RTIF0S({E!kgBTRL@ca`yCn29A2&DCVK*lSd#Id>CA}=BNt2_u zvbubuMHP=dl4!`2(~SLVOR(NFm*yNCx^#l1(Dei!?|B(Cwre9GOT7> ze4rgs55CuSp#B2e%puex=3P3f2kvslo?g+|cqjHR?&T{)-|#T9h1PKZdb%!cRij;W z&TS<91kxSrv%ni??h%c}LxYUe$i$r= z9et1~!xwvozV3&y?^a=r)m@TYw$|@|UpG(YY06pk;3bv*&ulv{ZTP39c*yLbd(;^j z+;&Lcwo9hr_5OdlkYr)}4ufdI9{Qu&%P^E4vxu_gn9EhMw)k7ioo1lS41=M$IVV)r z5tu_$k*tG0u8lf*vhnHDr;g1@1(|B$DeJ-)e^3!9Q_f&I&;0M(Qi#F>^n_-krr<~}B6 zF^E9BUm8U3y-u>Xr+CyQRdLF&&WOn^*G0jpDpZB217Y0~3sQ<(&n-q!FIr)K4!`w~ z8YpUzF-xV#Z@HWiqS}0zda{P*mYcM%q6Pnmp62f>ESeJgicxYuthXC6dS>V1ibO*1 z2V-LNb@{rb*^;mUkP2I1|FX-hsOv8^o(GSpou2@EzQ!;krm?(a`h0#X?FR_{y09>V z=+xA}ww)K0So`|==AdFp*ps)XI*`lqrmnB%iA+@_)GAx+oy#a|vR1LA2y%A|`0}QR z`Ye13v??kpbD)WM{aOlnQ{~G{fbkFxz;oM=x7xaBX8r>uCT7ep*HI{)=i_pr`eomU zdqDZko9z7jr@)30S63G#W*DZX>~MxAocQ~2jB1Qt_a>azE{?}8z z&NiwUG1=wXKlq#q)ihcmJ3b35V>Sc_a*1_AQ3=q4qmhA07#5&~vVL@ta@Gf4AHG|& zGS&XTwdg=+a$mRyJe*5T*)z_QAjrsF?Uxa2bg%K;Tdu#k0L1pn5H=<|jue$p-dJ@R zJ^h2zKKSWLEha86-|#&D+RW>$6R0r%p!5nRH7j)WHGi;N-NOtL%^&Q+wZL@r<-5JF zSV`S7zVBMNX?==zh(;yJh^jc~-vUyqOqCS3`7lNHASEl5`r2N!a=)?i*ft)Md&%Ls zdYuO12c(E7(nHAFf{Gj#ktB3pbMmd#znY!!NVA|p7bMBvu z+rWH=l5VLT?!r+~=^oxd{s%yL@MVf2HqO0|<)RwBpvFIQ3y%FlOWU{RT;I@jcfzBN z(Pv!ppNrcsDMTfolfNT8inhOj>K_c{fx->Z| zid0~7{%?#eb_35k5lQwntQ!ulKrl2dFZc&SaeS>zB_D30Nj3J8t|c+$-`^0B)7g4+ zs5KmzIjaDPp8h|VfludH#Z5|)r25oL13SKdzb`$$Z*IG3|1+&{u61`}`OWl}k~ z){K5~MqyQKrHxkh4xWGCD+sqF31fsewah=4s{et(95n)Hn;1B`!tWjrFLS`K^j~yt zypb`M1Ji8Pn8n9(|1SIS#@(eX6JvX9o0Jk3d(_Yr*YImmcoV!~|DKQOHscC}P&wr0QZ^s{_g2W9 zHX!?aea|@6%!6BT&BQ0}_pad3i05KoBYS{WJ^1Q@$COy~L1zUqfU-y1oUZ7)x+Q^+ z$QQQI4?cMKFzI^16Fa-TDg`Q?M-tzsaU7r5C>xPqPrSv?nU$NuG^aWY$a(sI?({=F zLqmqX;F(>)0C zb0d$wu<)OnA7uWsQQi{`@Ez}ACU8x>rU&)lL{5*{eJdI^d9Oj;!pGvtf~e|R;@c~H zro~E~SustfR9FAGE8ggKQ#jqhEZYVnZuV8H)@tkNerZfNTZns=CTX%aQ(wV3;m?Zo zKA)MH2nJCOsL+3Rl3ZsfM+W+}ZGVN@_9`_z{X3Z61xdCQXBk8SVf+cW67tde5p>Lt z-b$jlB@v_9$d?exoI*l6_%_|V^D4W}mFZJ`* z@QuDQ`4gxexO9jDy{PWnw{NE02ZNo#&YpuD0u-6kr{{3MLp#RN-mS6m@ie3wF2Ufc7%A)-M*TJEW+X;~a{)NN0|2IK@IA zL;71|Ck7hnz|GKERNkxf^O-T^40-WvUd_iB2UrMsj2Z{V6qbhRuV}v`KlSA? z`N&m9CW+dQ3w`Fz03Dp31_n;`QxVQ$dk6tl%6ShkzI!CopO-AfFS?wQA z$4v1WB6)cH+0ku@?9`xSZv&x;s7neTizcsej!K9#AV1pV&fh=E5WIBv?-ij0n|Jij zD*)u2jESL#F&czfG8dJ-fNf7vnaGM3wPG!KQJbHt|Fr^$QrZTpM=FZRu?;n6e+B}1 z1SK%w%lo*hCr_TRf+pLH7P~@douc9@;2RA@qcqv4ap%sRY^TR*yy^j)CS<&xeFR!G zfOb3f%ozia$OvXb&9@%cpfmJWHEZia7gaG*PD0y8Fi3)eTq@ixEVxlZpG{7VfcDHD zq<#QMH!L(rM7;;<(dGR794zXo>FJIW*FmCZ2J>1U#1KdbPNU1sg}gE7%=x4wl)EOx z6T|M01S0}+4g$fpY;NvqW7urY5qVhGG6`=-MMg9`*IRPfL^L=g`oTkaGdqi;J$1J) zYXF?w?_dogOcPjJx^RcWu04f~@ggvRpm32I-@ZKrlrIi=1{0|f{C=zY&_gAJ+ny|m z0Uahl0_K6wpEr_Xp$v=zx-qH9Rmc*QC@8yd!vL@;;O zgKJ(ijz%Gg5cm?fEMISQUECzzW*Eql$ze_NC1LT$9_B(>OVToINt7#R@0Q-aZGf(_ z1E;EN0kRI{QT0p*q?gd*(m_vtCtzBP0Phf?h5$jOD|_Wy`@-u{5KL`tBO@m0iYWxd z59_z?+aAJ%>*%X=>~*4d2D9W*ZSz$5=f2u_@c$YBz7R+W2#p*e+TA%>|J!dUZ zd*d7EdV4FN>(4WK<;IqtbV^=)MO&=(3z5xxI#7;*ix$(42Grv}c zq7ojlyxhqyNJxNXIF&-}`GtT$1BO%g$!IJ~AD4VUkhx1unL}r>rN7(Z-7|qqn`x!7DYT=%p6u+dmgk&{EPT) z@C?k4+@tRA5buY__U|#1g8zSb6Q}HB=Ako*L?6RSLNgpYS@(mD5R7!D>*3i>gWHz} z7?T&m8tsTfM-6?-%r86G(3HJ%TX^;zd= z3ykS5UZj|4VU$9QmmhHcPw>xS-MV#P#@&1Sb`3E2Ch)+@2uL1Is+01<8bMK*^N3+5 zAjFd4IwEuE$_>!3fO@>=`~+F>*oWc&O^>q(YD1vN1rPx2>pnyBzv?__Vb{!Idlbv5NubuJz+& z*?(9M6gl?Qt506PzCl@8`D$;xrsB7mna$hR^gL*5YZCCN3CEczAfmDp1eQnNk9OqJ zMX@6n+^%9o80Oq;o?ORQHnzJoiX>@F%fEGneq!>Urp1U;ryqIas(C&Wu)ixa-~K01 zn0lxBv@{g8#4Z7S?D>&*HG!KUxsC^nwcR440H`DZ`2kdIMz}}_N^Ai>m~AR$R6CV^ z>wZG|B^Ae}YiB4EZ1kuR=^jP9d{`bqs{yG@6!Obv#fAgg~NHm30+%= z=(UXz5fPrSdI9Ne5b7LdIDamv?Ax~wfPikv0U!iyq_JsiH2{;em|NDsg**S)X3u_d z+a(PF#M#KAqV@3gD06$QK+plfV{*vf*axE$Z9hLH7+o@vD_$fcA(D7iye}JnczOo2 z8OVPPP*HHKS(Av_)a-Gha>59%_;?6N*leIj5J{KeQ&EWl${PHScPWD2!QbIs^soUcYK8EVSH z<0nsc?SyO1`;ieOmlVleTUypH4G#_F`4>AS9(8co{n-yQs9dP2$CePj>=6QkUYRv@ zbyc+eML2lz6KBjgorb>xYwZ}}qZUM)4< zT)3HD0uzB-?!Buq>r(c=!P=5Q1*(IR`{f%6GDUMIdQW;>)!rnR79ZGQgWH54LO3-n z(RQ}9=#SlG*@z(-SdLS(v(ZJVR#T}LF2p0bz%ArHU`Wi>t~TDURdvwca9(t?*hgtg zXkCDQkPjT-ukxQ{0}xbv8wEPPvY!Cjrdo%<61GO?x?i|B{#sW+~?9$txOa(wCbp zM}80{F~ORKTFwp;#}X20dSDObckx>3CblvD z{>`R|msBcX(88&f&fnjEIY0Gdk)vua@=W;tj{fT%F2SVN%b23!v9@Dt&I0#`EkTLy zi4JNhtQDt?CzCTW7)eKZzA}l4C+^7!M&Tm%oZniC0<8=wU_mH_X(o3Wr2}Qtg*rJk zH5#}-ft3f`IO28T>({Rex8)XYeSh~$$obsD`>UuA%+K4J!&Vb>&6G~32h=mUYRf>? z9Dd#0r?(xEiSya2id27BGZdEu>J5|+xnPTNl0@8p3x3DQz?|hlvc%f*3lto%#EPo3xcsz6$TxSFqUSk_{trGl)FjwiL?k4zkQyMQ6u*1C|b|pBxNaC0zh!R4Ty8X@N-rn8>Z5RY)Vmd{$f`tswbH~>mJ9joA zw?V;80eK4pYvv4LmZs1=}|A{eB?#EeHmf|j%iY-aPxH#8(*r>$tP z*kS9W8T0z#Lq}kvv#6?8NSL9(g6bY9poT^2_xa|(Q93o|djgJAY zN!}z{lXmz_5OaC#v^&A`3UKaHMX?WJEY{f3VFs|;^6e!2b20O_X5rsrc=^f|X3;1^6B8ahRHDfumcS2c zcGz#f8vj7HSnaI41WvbD6gx_D4&dBkxaCMxOrlY-2?^XpIzrPpeC!AGZVV)QtnRT& zEM_K>J!(w-;)6D+fwg*S7HBNE@7}%3Z{v-FP}YH_p-~1EG|_-$`dw|CUPN~g9Vi{I zQdj@-bJ(vRS*Sx!!QFgi6O_e7Hj6!d`i5uqbH5u#<&FeaR?xIIDA!n!s1dJyzbCxjtEFvzUjo22}>U znn)rT1j;3TgNqjf?ks0LskwIMsah`dU}7-4&Z|X3-T30g3#r+?d!4L3I@r2UekL3$ zF#CzJTJ@7@2A-Q+TRhW@c{0AdL=)6{d73@5gy_C^XlO_e54~ky$Ca}DPgYQF#bNYr z3RZ5hP9|!Oy^{NA^7HSG$ugmN@I6$Z;7IknOOiq^nfMas1 zq;A0o)y+ZT0YeQmTbWjMT<=Rm!h`esv)-IQt#qfldWcZq9+~XOqbClw1XoHp0B4jy zO@YarRj6>>;^N(u!#Lft7wZI4jUG!-LIo@)s?f>)QF00C|G0mK@ z{^>uDU*=VCjMZPpUGCk>Y2rl-VE~n>88{8ZaAfMsmk5k4jW4Okp>-4@9{pn0;u`5b z2&o)ML@hvwRIpk&L(teVf;RTnS}N&MI>)@iIHMs(xrJfe@jdnq4v*hf!uw$O*!tUA zcZj7#=Fmwfm z$=J&-w>;p5(Yb_^E0FzP5b`^LH*emw1MVPQGx00|#cyhA%BV&s_mQ3c`zP1ei68{R zNlmW9x^wT#PvY@Cv#<9WE!0_)ePx;fGPXmL3Azytm*ma{XjE*GpAfhB{`YsR#NH$# zI#SxnD_7Q`W0OaMAVe%E^1F@_wm>=z;jrHB2lYZ5d7c<(0xC8Cp{Al@2ghlI2O_O) zg8AFT+iD)77RQPp^$(rV(#PxMZ5v2#Z|-mqoiAt)1e*cRX$Vx#)FnRl)EK@bt@2A0 zB0m!4K@T)XozKpJjuTa8l?{66wP0q8$b~u>07zxZUgM zVl@&BM77zWiwgvt4S$Yk;!w-CSFjtEy#{Gv91@3=k%OoV#-cv_1leILU@evUfH$3E z#`dMKD>k$!Kv85w{+MSQadJ**U5$JE!YcpY1qr~P&MCTm<_IeLQEr-t7S4ti&I&3R&>9SZ0%h*dE|%Z=DaBAe2(3y% z81;duHm&>_g2?lxmKHH}b*tLUyEo5$f7PAN1AdS~pN+zGbd`Bvgp92zItA?-L2}Fg zY^l+U1?-23_WCjhJxAko4w{sa&-EvhE?ig-2yr70vrr+vG6xrzILbc>QYd;YI`t8^-i3gEF2bdZOKrwqmZ?zEE4AvTj} z%|#K_I(wvS8@|-wB!}&XpjbYQX9IWk&ZqKFk6q7(xsE;K2hj9#uO|mKNV9t?_$1 z6!Om4Yfj2x;L8)ALBZe`Bh8-~vwEX|Vu>L#qzx#+#KcktXrs`lK|%-l!17NN_>9TR zKY8Hzf4*q*W}JEhQ1)YmJB9&MaGB)2C4`IyE>%Oe11BF7Q6EcaU8JOEpdJR}8ZQKd z2}>uI113PbE~y9Fx68+|{H8hxA1q`R0a2wIH)jB$!2G64 zsDbQw$T5UHg1SF?JgiDcr)*-(3m5Md0xlBN2;#=jM-MO;-0))Ix6{zvoZq=bl<#E@ z^e_?v`WQ_`vmzVK_u2)J)a*f|Dn^JsV(=KZT-v5F1q&4I+sITu}$;@+JgJT3XuCEzV%; z5MVmiTLYpOPLDUh3h+eH#QC9KEAR^~Vk8j&@ol0}XF31?RrZ@mZ+ZG0mxzVPB1%hK z2S~0vFDi53-bB~ehYg3Z>mIPRHe?gh3})bdf3Kxl;N0mhDiTvZE4NYpf(^-3ib;4q zH|2RjX%;6_G%L4~kra0{ms39Lx#*Di1@c6+wFil`>g;x1Z3{DHYdhiS#Kf`s_{0(m zsccgjQuJ8;p5ALc+@{$_0;0{SqI0_)qH{eDlA?Q8CC<8OMGt;VCuLKpjnefc?F0;-Rv)`qAjB`vwj^0`oD!uC3ccY3YFS0z$gq_Mh zb-6R`ap*9RIW;&L&wfo`G@DE%!bEA5jHQ;+rRrqOC9zXOr7|n~#&~wmoFFNi{I;OS zy8PXX$^FWH+MxsY8z*f{N%$~os@ULca@P(1YvhVu;ZiS6DvEJjo-y>7`Pd-$qes#YE!5m z$hoZ-6q=Ws*xh}jXSEc?^t-`;$F8~-zvdPmy`iGISK{vnAEZbiSfAx$KVA;_3cS7{ zlsqj6f#E0~z|v|QE)pJKdeGmfWw49(g5DNJS<01oaO+BNd2YFeiW+A zyQa!_v_D$xo_%K|&~-kM_1suoRANih``4k(z2}TBB!`^3{ra5SZka4&{!@NW<0YBL z9&We0aLvQ+EmQLg_xMk9MYm;pZg?u>Zg^QTSE91w((hjLx z>lTW-X^k}GrSprAnA`7G-d`?V&N|j}?%7VVk?RS+n>ibtsLhoPEWXoUGA5s@%W}DJ zxTkYSqxahc?PbrKrom!nHN{h29kkjx9p5G#^T><&$JR?-v6*Hx)UIvAD4M^M?P+di>Q+72du@z!?QK~pDK|MKD(RleZdwT& z^~Kv0N>9Gs>|ru}WNErf_mrgae857D=#-cbBSv?&kT?_LX#(2-MkERnG2p1u^70pf zHH1@`e*uYTOnJ8+6GSP!e=uSnMqL{Y+%gP#WQ3+h9!7eEQsaz}1~m!(t}9C`Dw>hW z1|}x1_k9Lu%mCq*u&kckvFG6wpFw2giH}C2v z-~c2FJa8c-9YTm-yMVdrZU_3r2NuiBlgAB=vARHX*txl*cx-|>z^84(YDWaN11^Lf zm;oQ!HEPrIl$#V49W5#^&w&az8mC`XX(%aGb}nJYDO+9)O8;0GDCa~yQfn=clmnP% zL~fx|bIbU(-d*B`ySqo8@cw*BhMeA2ZQ~oVaJ|0ydAr#F)>vIs#z`3&aoCnaAF{$) z@O|a|KUudAJBiVe5`V5wCj#2TpdbWe4f12`E_^PNuwWUCR&u zDR7HhfdI%uQbBY)SIWR0We}x>2@VCdGtB8b2--3zf;&DOg9f*^H#5d57WQk-_9y-*`}XOQ75(L0 zU-BbfEsodSr^B$|bLvzQGy^!QqOV%ls$z0}!#50N4XR+?>%vJYcGiZ%V&fc4r}oOo zDRr=0F&-*PZ9gt_xL>=?=|+_G*I**|t-2m{X_*o7YtU#k)sj&|c0E1MXN~vEe|gIe zfq87~RYBAp5hW#ZKmadqjE*(*#_*0n!w8qD@4Od@+HVgbB13bU)9J*{vHj`&`+4Rm zD=B~1d!l`G@&88&Xvm4Gr4?0ISQu;y=qffW&CyDH%Y-wNm;2>?3U zMUhRL*efev-ac{V*|SYbN~>`ytMu$$c(4I`>)_3QM4ZBl()thH>AEN?l-)X+BO;be zUZxbl^0J9As~DUod<2mnViEor0jFoSVv>ImWQMLIXt_9nDs1Suot;epaW1#OGv9`y zwffB@f%Rdk?sFsYy{v+Q`JJjNrmM%!$dO{fh#B9~vfSIipnu0S$hS;resIpH(a%f! zZ^GA}=!Nj{y2vWg0MU+gT}y=ss>rh!PYS~i)NA=gy(?jGskg8YTY zTW*ft?7#lPO(tAc<`|c_YKET+V}GaAa6XlEZ012j?y@vdsSn?ul{~prVf#^SHkfm1 z^ixRB%tb+|+us8}e;OaZ4^y&Ogp+|QS)q;M;~N`(5$O4mE&Rdo5QJkI-xu#KBWem6 zEWjt0>D_oOV(YbQGQo?puLuQ}DU8kj`iq|kws6L4KeEL-R(a}HWo2$@DLbI3BS(+k z1BjH}<&yJiybO@}6`NK^1v^_?^3+fp%cCQN?tsV!&~p(n;no3J7gtxT%5dZqwi6TB zM`e&j5cS`#UAx*p`YcnemwpCvuUa)f%JTDBrr-g^EnB*~GORX!_kJI~O(t~^K7A16 zo-nhrQqOfbbYq)I!bM&Ox69Wzi>PLv#?v?oyruF3%L*DQk>b5On4%k%XmYz;+&}$# z+1F=GIs!3RBl_H@NMldX!kU81r}m`~LeBbF-c(6xWPOCuc9O{KU4Aj47rA_NohO&L2Gn3?ax z36nYHA#KXTD7<&j``KUPD8?Zp0_DQr6U&C6L>wqyjUhnAtV+nj7T6;$vpkB5n1gDC zAOTC?a+H%GP~KaVa`Wl<=#vhl`|a$IO9ekGD=Rp9H?qWL)?^wl56!umw5tykw_q%R z6*k#9POxRL1V+ckzUZfiUU~769dmG$SH!FI!@{)2#>P%+C~0V{!Q%02?L!h>vt~^n zgG&FMlx^$dnhum_#^iugB_mcgf)pZx8VokB42+CaqzA*^ZWz+6h`d+0a@XpB4Xc@}s;V{t z_pbhM-CaMg_eBFz@E)B?X)oHkH1d2ff1Vp?dC z4w%+LCUwVpIn6?=C%;l|@1%Cv(2r3(4W?+=hT6D5RW&sNxe1FIz6ofQQ7FFI9;g;m z-Jzo5Vm%!lYMh7RwpmNpvAP~^v~<8E>X=mxIXHyW1Ntp&GIox9%YNmiL_@jXxsooJCWgPz7J^F zTP(?hwiB-Gn=#3?1*CvH`o-UHBQrB|xhoeQl0e53=gn2s)zfGadS{E557TyMFjo(Z;y?RY)Wn$%8^Ft2-qx-I>M;e8wu|gvh$DC&GEh2Is z&cvY}9v&7~j%*lqxfD_M)N0tcxUkFRYM0Bsp?%hYbj0u+Z2~yS^?{oGB7??jH2Jz7 z@-hby@eU;=fz1JK?zI!n*tvq__par1ORX|dpQ1G&hF42$Yp=pH+zvs*cy_j_0Gy4a zvxX88yJU;6mmfrH;{PKg_+hFbu=Ktml~QZT<8YGV5Ei&<^(4hYMh{4rX;(&(`XN`M znQ3doO`TcoKX#U0B%zE#z%%HAxRLk3I6U6nTE$^?{CK&ogU;cSSJ*Jo&GueemXPb) zQiaYB^Z5AriD_!~y&Iq{Mvmg<=AN5aB<8>8&P9PAQT>5mKtMF*q5iGA`$Rm~#>k{H zK}JZ=!MM@2d_*tb{4RIAg$(O8I({rxR18sdb(;6SG(LU5J>Q&l|6%(wUZecyGgR~< z{@%*xY>PH~cvrB^OZv1}Hq3$8;Ry|ZI!@tb%gTcD4NljXf)yoEOdEyl9oslb zuVD11E~NL^uM9AHh~Y9SzuOf!K3Etz2R9(xy(8Q^t10gzImme;ytW1O5uR!wSVTn|u?N?sRf3c`> zv9+auqF}i3{0khDc(u4V5tX|Ei8$!AG8D4~S_-zWyF11w1sKAZqS4>8Z(qti+ibYa z$Lor5EMj85q`aoyb6pHXWBC{wofunJ6Yt;BK9 z)MRkoZ!WG8j$eFoqrJC<4g zT*D^L?>!}*WJtRxxHz*@7tWO`y^`lhQmU$d!OS^$RVew0i%TvxbC35_=Wde@vCh|*`PF{!9oS2SeN(X=`+7Q9TAp_m7XgW=C_QR)cxV=_ue@SWR z5`-KwU4k<%`zc$2drVCHfVO@NGSTzRdd*sun#$UgE6GLS?I+=>XXq&(PR!%N1Sj2t& z>ZMB?d5?m93b>$}byJqajrZ+tN_pkwT*T0G=gx%wFXWM$q~EuS_(%uM`&)B1cZN@hvgyxDN5T}Dn)nVnncze{5^1}hvF;5W H+lc=M?)JTu literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout7.png new file mode 100644 index 0000000000000000000000000000000000000000..492bf311a4aa322bbcca3682f766e821f0850fb2 GIT binary patch literal 43862 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 X?jN4lJDhw?{=u%D`_!^`9QFBsmL&hK literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png b/lib/matplotlib/tests/baseline_images/test_constrainedlayout/constrained_layout9.png new file mode 100644 index 0000000000000000000000000000000000000000..b0cc59893d15b21600e038591a09e2ba3f202ddb GIT binary patch literal 35005 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�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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py new file mode 100644 index 000000000000..5333ba8c85b5 --- /dev/null +++ b/lib/matplotlib/tests/test_constrainedlayout.py @@ -0,0 +1,347 @@ +from __future__ import (absolute_import, division, print_function, + unicode_literals) + +import six +import warnings + +import numpy as np + +from matplotlib.testing.decorators import image_comparison +import matplotlib.pyplot as plt +from matplotlib.offsetbox import AnchoredOffsetbox, DrawingArea +from matplotlib.patches import Rectangle +import matplotlib.gridspec as gridspec +from matplotlib import ticker, rcParams + + +def example_plot(ax, fontsize=12, nodec=False): + ax.plot([1, 2]) + ax.locator_params(nbins=3) + if not nodec: + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + else: + ax.set_xticklabels('') + ax.set_yticklabels('') + + +def example_pcolor(ax, fontsize=12): + dx, dy = 0.6, 0.6 + y, x = np.mgrid[slice(-3, 3 + dy, dy), + slice(-3, 3 + dx, dx)] + z = (1 - x / 2. + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2) + pcm = ax.pcolormesh(x, y, z, cmap='RdBu_r', vmin=-1., vmax=1., + rasterized=True) + # ax.locator_params(nbins=3) + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + return pcm + + +@image_comparison(baseline_images=['constrained_layout1'], + extensions=['png']) +def test_constrained_layout1(): + 'Test constrained_layout for a single subplot' + fig = plt.figure(constrained_layout=True) + ax = fig.add_subplot(111) + example_plot(ax, fontsize=24) + + +@image_comparison(baseline_images=['constrained_layout2'], + extensions=['png']) +def test_constrained_layout2(): + 'Test constrained_layout for 2x2 subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + example_plot(ax, fontsize=24) + + +@image_comparison(baseline_images=['constrained_layout3'], + extensions=['png']) +def test_constrained_layout3(): + 'Test constrained_layout for colorbars with subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for nn, ax in enumerate(axs.flatten()): + pcm = example_pcolor(ax, fontsize=24) + if nn == 3: + pad = 0.08 + else: + pad = 0.02 # default + fig.colorbar(pcm, ax=ax, pad=pad) + + +@image_comparison(baseline_images=['constrained_layout4']) +def test_constrained_layout4(): + 'Test constrained_layout for a single colorbar with subplots' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout5'], + tol=5.e-2, extensions=['png']) +def test_constrained_layout5(): + ''' + Test constrained_layout for a single colorbar with subplots, + colorbar bottom + ''' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + fig.colorbar(pcm, ax=axs, + use_gridspec=False, pad=0.01, shrink=0.6, + location='bottom') + + +@image_comparison(baseline_images=['constrained_layout6'], + extensions=['png']) +def test_constrained_layout6(): + 'Test constrained_layout for nested gridspecs' + fig = plt.figure(constrained_layout=True) + gs = gridspec.GridSpec(1, 2, figure=fig) + gsl = gridspec.GridSpecFromSubplotSpec(2, 2, gs[0]) + gsr = gridspec.GridSpecFromSubplotSpec(1, 2, gs[1]) + axsl = [] + for gs in gsl: + ax = fig.add_subplot(gs) + axsl += [ax] + example_plot(ax, fontsize=12) + ax.set_xlabel('x-label\nMultiLine') + axsr = [] + for gs in gsr: + ax = fig.add_subplot(gs) + axsr += [ax] + pcm = example_pcolor(ax, fontsize=12) + + fig.colorbar(pcm, ax=axsr, + pad=0.01, shrink=0.99, location='bottom', + ticks=ticker.MaxNLocator(nbins=5)) + + +@image_comparison(baseline_images=['constrained_layout8'], + extensions=['png']) +def test_constrained_layout8(): + 'Test for gridspecs that are not completely full' + fig = plt.figure(figsize=(7, 4), constrained_layout=True) + gs = gridspec.GridSpec(3, 5, figure=fig) + axs = [] + j = 1 + for i in [0, 1]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + j = 0 + for i in [2, 4]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + ax = fig.add_subplot(gs[2, :]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=10) + + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout7'], + extensions=['png']) +def test_constrained_layout7(): + 'Test for proper warning if fig not set in GridSpec' + fig = plt.figure(tight_layout=True) + gs = gridspec.GridSpec(1, 2) + gsl = gridspec.GridSpecFromSubplotSpec(2, 2, gs[0]) + gsr = gridspec.GridSpecFromSubplotSpec(1, 2, gs[1]) + axsl = [] + for gs in gsl: + ax = fig.add_subplot(gs) + axsl += [ax] + example_plot(ax, fontsize=12) + ax.set_xlabel('x-label\nMultiLine') + axsr = [] + for gs in gsr: + ax = fig.add_subplot(gs) + axsr += [ax] + pcm = example_pcolor(ax, fontsize=12) + + fig.colorbar(pcm, ax=axsr, pad=0.01, + shrink=0.99, location='bottom', + ticks=ticker.MaxNLocator(nbins=5)) + + +@image_comparison(baseline_images=['constrained_layout8'], + extensions=['png']) +def test_constrained_layout8(): + 'Test for gridspecs that are not completely full' + fig = plt.figure(figsize=(10, 5), constrained_layout=True) + gs = gridspec.GridSpec(3, 5, figure=fig) + axs = [] + j = 1 + for i in [0, 4]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + j = 0 + for i in [1]: + ax = fig.add_subplot(gs[j, i]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + if i > 0: + ax.set_ylabel('') + if j < 1: + ax.set_xlabel('') + ax.set_title('') + ax = fig.add_subplot(gs[2, :]) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + + +@image_comparison(baseline_images=['constrained_layout9'], + extensions=['png']) +def test_constrained_layout9(): + 'Test for handling suptitle and for sharex and sharey' + fig, axs = plt.subplots(2, 2, constrained_layout=True, + sharex=False, sharey=False) + # ax = fig.add_subplot(111) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=24) + ax.set_xlabel('') + ax.set_ylabel('') + ax.set_aspect(2.) + fig.colorbar(pcm, ax=axs, pad=0.01, shrink=0.6) + fig.suptitle('Test Suptitle', fontsize=28) + + +@image_comparison(baseline_images=['constrained_layout10'], + extensions=['png']) +def test_constrained_layout10(): + 'Test for handling legend outside axis' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + ax.plot(np.arange(12), label='This is a label') + ax.legend(loc='center left', bbox_to_anchor=(0.8, 0.5)) + + +@image_comparison(baseline_images=['constrained_layout11'], + extensions=['png']) +def test_constrained_layout11(): + 'Test for multiple nested gridspecs ' + fig = plt.figure(constrained_layout=True, figsize=(10, 3)) + gs0 = gridspec.GridSpec(1, 2, figure=fig) + gsl = gridspec.GridSpecFromSubplotSpec(1, 2, gs0[0]) + gsl0 = gridspec.GridSpecFromSubplotSpec(2, 2, gsl[1]) + ax = fig.add_subplot(gs0[1]) + example_plot(ax, fontsize=9) + axs = [] + for gs in gsl0: + ax = fig.add_subplot(gs) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + fig.colorbar(pcm, ax=axs, shrink=0.6, aspect=70.) + ax = fig.add_subplot(gsl[0]) + example_plot(ax, fontsize=9) + + +@image_comparison(baseline_images=['constrained_layout11rat'], + extensions=['png']) +def test_constrained_layout11rat(): + 'Test for multiple nested gridspecs with width_ratios' + fig = plt.figure(constrained_layout=True, figsize=(10, 3)) + gs0 = gridspec.GridSpec(1, 2, figure=fig, width_ratios=[6., 1.]) + gsl = gridspec.GridSpecFromSubplotSpec(1, 2, gs0[0]) + gsl0 = gridspec.GridSpecFromSubplotSpec(2, 2, gsl[1], + height_ratios=[2., 1.]) + ax = fig.add_subplot(gs0[1]) + example_plot(ax, fontsize=9) + axs = [] + for gs in gsl0: + ax = fig.add_subplot(gs) + axs += [ax] + pcm = example_pcolor(ax, fontsize=9) + fig.colorbar(pcm, ax=axs, shrink=0.6, aspect=70.) + ax = fig.add_subplot(gsl[0]) + example_plot(ax, fontsize=9) + + +@image_comparison(baseline_images=['constrained_layout12'], + extensions=['png']) +def test_constrained_layout12(): + 'Test that very unbalanced labeling still works.' + fig = plt.figure(constrained_layout=True) + + gs0 = gridspec.GridSpec(6, 2, figure=fig) + + ax1 = fig.add_subplot(gs0[:3, 1]) + ax2 = fig.add_subplot(gs0[3:, 1]) + + example_plot(ax1, fontsize=24) + example_plot(ax2, fontsize=24) + + ax = fig.add_subplot(gs0[0:2, 0]) + example_plot(ax, nodec=True) + ax = fig.add_subplot(gs0[2:4, 0]) + example_plot(ax, nodec=True) + ax = fig.add_subplot(gs0[4:, 0]) + example_plot(ax, nodec=True) + ax.set_xlabel('x-label') + + +@image_comparison(baseline_images=['constrained_layout13'], tol=2.e-2, + extensions=['png']) +def test_constrained_layout13(): + 'Test that padding works.' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=12) + fig.colorbar(pcm, ax=ax, shrink=0.6, aspect=20., pad=0.02) + fig.set_constrained_layout_pads(w_pad=24./72., h_pad=24./72.) + + +@image_comparison(baseline_images=['constrained_layout14'], + extensions=['png']) +def test_constrained_layout14(): + 'Test that padding works.' + fig, axs = plt.subplots(2, 2, constrained_layout=True) + for ax in axs.flatten(): + pcm = example_pcolor(ax, fontsize=12) + fig.colorbar(pcm, ax=ax, shrink=0.6, aspect=20., pad=0.02) + fig.set_constrained_layout_pads( + w_pad=3./72., h_pad=3./72., + hspace=0.2, wspace=0.2) + + +@image_comparison(baseline_images=['constrained_layout15'], + extensions=['png']) +def test_constrained_layout15(): + 'Test that rcparams work.' + rcParams['figure.constrained_layout.use'] = True + fig, axs = plt.subplots(2, 2) + for ax in axs.flatten(): + example_plot(ax, fontsize=12) + + +@image_comparison(baseline_images=['constrained_layout16'], + extensions=['png']) +def test_constrained_layout16(): + 'Test ax.set_position.' + fig, ax = plt.subplots(constrained_layout=True) + example_plot(ax, fontsize=12) + ax2 = fig.add_axes([0.2, 0.2, 0.4, 0.4]) diff --git a/matplotlibrc.template b/matplotlibrc.template index 7ac32f71cf8d..8660d0e1c8a6 100644 --- a/matplotlibrc.template +++ b/matplotlibrc.template @@ -433,6 +433,10 @@ backend : $TEMPLATE_BACKEND #figure.edgecolor : white # figure edgecolor #figure.autolayout : False # When True, automatically adjust subplot # parameters to make the plot fit the figure + # using `tight_layout` +#figure.constrained_layout.use: False # When True, automatically make plot + # elements fit on the figure. (Not compatible + # with `autolayout`, above). #figure.max_open_warning : 20 # The maximum number of figures to open through # the pyplot interface before emitting a warning. # If less than one this feature is disabled. diff --git a/setupext.py b/setupext.py index 0872bc0bc5c2..99c30128e5f4 100644 --- a/setupext.py +++ b/setupext.py @@ -1435,6 +1435,7 @@ def get_install_requires(self): "python-dateutil>=2.1", "pytz", "six>=1.10", + "kiwisolver>=1.0.1", ] if sys.version_info < (3,): install_requires += ["backports.functools_lru_cache"] diff --git a/tutorials/intermediate/constrainedlayout_guide.py b/tutorials/intermediate/constrainedlayout_guide.py new file mode 100644 index 000000000000..ac55c6da1fcd --- /dev/null +++ b/tutorials/intermediate/constrainedlayout_guide.py @@ -0,0 +1,700 @@ +""" +================================ +Constrained Layout Guide +================================ + +How to use constrained-layout to fit plots within your figure cleanly. + +*constrained_layout* automatically adjusts subplots and decorations like +legends and colorbars so that they fit in the figure window wihile still +preserving, as best they can, the logical layout requested by the user. + +*constrained_layout* is similar to *tight_layout*, but uses a constraint +solver to determine the size of axes that allows them to fit. + +.. warning:: + + As of Matplotlib 2.2, Constrained Layout is **experimental**. The + behaviour and API are subject to change, or the whole functionality + may be removed without a deprecation period. If you *require* your + plots to be absolutely reproducible, get the Axes positions after + running Constrained Layout and use ``ax.set_position()`` in your code + with ``constrained_layout=False``. + +Simple Example +============== + +In matplotlib, the location of axes (including subplots) are specified in +normalized figure coordinates. It can happen that your axis labels or +titles (or sometimes even ticklabels) go outside the figure area, and are thus +clipped. + +""" + +# sphinx_gallery_thumbnail_number = 18 + +#import matplotlib +#matplotlib.use('Qt5Agg') + +import warnings + +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.gridspec as gridspec + +import matplotlib._layoutbox as layoutbox + +plt.rcParams['savefig.facecolor'] = "0.8" +plt.rcParams['figure.figsize'] = 4.5, 4. + + +def example_plot(ax, fontsize=12, nodec=False): + ax.plot([1, 2]) + + ax.locator_params(nbins=3) + if not nodec: + ax.set_xlabel('x-label', fontsize=fontsize) + ax.set_ylabel('y-label', fontsize=fontsize) + ax.set_title('Title', fontsize=fontsize) + else: + ax.set_xticklabels('') + ax.set_yticklabels('') + + +fig, ax = plt.subplots() +example_plot(ax, fontsize=24) + +############################################################################### +# To prevent this, the location of axes needs to be adjusted. For +# subplots, this can be done by adjusting the subplot params +# (:ref:`howto-subplots-adjust`). However, specifying your figure with the +# ``constrained_layout=True`` kwarg will do the adjusting automatically. + +fig, ax = plt.subplots(constrained_layout=True) +example_plot(ax, fontsize=24) + +############################################################################### +# When you have multiple subplots, often you see labels of different +# axes overlapping each other. + +fig, axs = plt.subplots(2, 2, constrained_layout=False) +for ax in axs.flatten(): + example_plot(ax) + +############################################################################### +# Specifying `constrained_layout=True` in the call to `plt.subplots` +# causes the layout to be properly constrained. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax) + +############################################################################### +# Colorbars +# ========= +# +# If you create a colorbar with the :func:`~matplotlib.pyplot.colorbar` +# command you need to make room for it. ``constrained_layout`` does this +# automatically. Note that if you specify ``use_gridspec=True`` it will be +# ignored because this option is made for improving the layout via +# ``tight_layout``. + +arr = np.arange(100).reshape((10, 10)) +fig, ax = plt.subplots(figsize=(4, 4), constrained_layout=True) +im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax, shrink=0.6) + +############################################################################ +# If you specify multiple axes to the ``ax`` argument of ``colorbar``, +# constrained_layout will take space from all axes that share the same +# gridspec. + +fig, axs = plt.subplots(2, 2, figsize=(4, 4), constrained_layout=True) +for ax in axs.flatten(): + im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=axs, shrink=0.6) + +#################################################### +# Suptitle +# ========= +# +# ``constrained_layout`` can also make room for ``suptitle``. + +fig, axs = plt.subplots(2, 2, figsize=(4, 4), constrained_layout=True) +for ax in axs.flatten(): + im = ax.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=axs, shrink=0.6) +fig.suptitle('Big Suptitle') + +#################################################### +# Legends +# ======= +# +# Legends can be placed outside +# of their parent axis. Constrained-layout is designed to handle this. +# However, constrained-layout does *not* handle legends being created via +# ``fig.legend()`` (yet). + +fig, ax = plt.subplots(constrained_layout=True) +ax.plot(np.arange(10), label='This is a plot') +ax.legend(loc='center left', bbox_to_anchor=(0.9, 0.5)) + +############################################# +# However, this will steal space from a subplot layout: + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten()[:-1]: + ax.plot(np.arange(10)) +axs[1, 1].plot(np.arange(10), label='This is a plot') +axs[1, 1].legend(loc='center left', bbox_to_anchor=(0.9, 0.5)) + +############################################################################### +# Padding and Spacing +# =================== +# +# For constrained_layout, we have implimented a padding around the edge of +# each axes. This padding sets the distance from the edge of the plot, +# and the minimum distance between adjacent plots. It is specified in +# inches by the keyword arguments `w_pad` and `h_pad` to the function +# `fig.set_constrained_layout_pads`: + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=4./72., h_pad=4./72., + hspace=0., wspace=0.) + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0., wspace=0.) + +########################################## +# Spacing between subplots is set by `wspace` and `hspace`. There are +# specified as a fraction of the size of the subplot group as a whole. +# If the size of the figure is changed, then these spaces change in +# proportion. Note in the blow how the space at the edges doesn't change from +# the above, but the space between subplots does. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + example_plot(ax, nodec=True) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + + +########################################## +# Spacing with colorbars +# ----------------------- +# +# Colorbars still respect the `w_pad` and `h_pad` values. However they will +# be `wspace` and `hsapce` apart from other subplots. Note the use of a `pad` +# kwarg here in the `colorbar` call. It defaults to 0.02 of the size of the +# axis it is attached to. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + pc = ax.pcolormesh(arr, rasterized=True) + fig.colorbar(im, ax=ax, shrink=0.6, pad=0) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + +########################################## +# In the above example, the colorbar will not ever be closer than 2 pts to +# the plot, but if we want it a bit further away, we can specify its value +# for `pad` to be non-zero. + +fig, axs = plt.subplots(2, 2, constrained_layout=True) +for ax in axs.flatten(): + pc = ax.pcolormesh(arr, rasterized=True) + fig.colorbar(im, ax=ax, shrink=0.6, pad=0.05) + ax.set_xticklabels('') + ax.set_yticklabels('') +fig.set_constrained_layout_pads(w_pad=2./72., h_pad=2./72., + hspace=0.2, wspace=0.2) + +########################################## +# rcParams: +# ----------- +# +# There are four `rcParams` that can be set, either in a script +# or in the `matplotlibrc` file. They all have the prefix +# `figure.constrained_layout`: +# +# - `do`: Whether to do constrained_layout. Default is False +# - `w_pad`, `h_pad` Padding around axes objects. +# Float representing inches. Default is 3./72. inches (3 pts) +# - `wspace`, `hspace` Space between subplot groups. +# Float representing a fraction of the suplot widths being separated. +# Default is 0.02. + +plt.rcParams['figure.constrained_layout.use'] = True +fig, axs = plt.subplots(2, 2, figsize=(3, 3)) +for ax in axs.flatten(): + example_plot(ax) + +############################# +# Use with GridSpec +# ================= +# +# constrained_layout is meant to be used +# with :func:`~matplotlib.figure.Figure.subplots` or +# :func:`~matplotlib.gridspec.GridSpec` and +# :func:`~matplotlib.figure.Figure.add_subplot`. + +fig = plt.figure(constrained_layout=True) + +gs1 = gridspec.GridSpec(2, 1, figure=fig) +ax1 = fig.add_subplot(gs1[0]) +ax2 = fig.add_subplot(gs1[1]) + +example_plot(ax1) +example_plot(ax2) + +############################################################################### +# More complicated gridspec layouts are possible... + +fig = plt.figure(constrained_layout=True) + +gs0 = gridspec.GridSpec(1, 2, figure=fig) + +gs1 = gridspec.GridSpecFromSubplotSpec(2, 1, gs0[0]) +ax1 = fig.add_subplot(gs1[0]) +ax2 = fig.add_subplot(gs1[1]) + +example_plot(ax1) +example_plot(ax2) + +gs2 = gridspec.GridSpecFromSubplotSpec(3, 1, gs0[1]) + +for ss in gs2: + ax = fig.add_subplot(ss) + example_plot(ax) + ax.set_title("") + ax.set_xlabel("") + +ax.set_xlabel("x-label", fontsize=12) + +############################################################################ +# Note that in the above the left and columns don't have the same vertical +# extent. If we want the top and bottom of the two grids to line up then +# they need to be in the same gridspec: + +fig = plt.figure(constrained_layout=True) + +gs0 = gridspec.GridSpec(6, 2, figure=fig) + +ax1 = fig.add_subplot(gs0[:3, 0]) +ax2 = fig.add_subplot(gs0[3:, 0]) + +example_plot(ax1) +example_plot(ax2) + +ax = fig.add_subplot(gs0[0:2, 1]) +example_plot(ax) +ax = fig.add_subplot(gs0[2:4, 1]) +example_plot(ax) +ax = fig.add_subplot(gs0[4:, 1]) +example_plot(ax) + +############################################################################ +# This example uses two gridspecs to have the colorbar only pertain to +# one set of pcolors. Note how the left column is wider than the +# two right-hand columns because of this. Of course, if you wanted the +# subplots to be the same size you only needed one gridspec. + + +def docomplicated(suptitle=None): + fig = plt.figure(constrained_layout=True) + gs0 = gridspec.GridSpec(1, 2, figure=fig, width_ratios=[1., 2.]) + gsl = gridspec.GridSpecFromSubplotSpec(2, 1, gs0[0]) + gsr = gridspec.GridSpecFromSubplotSpec(2, 2, gs0[1]) + + for gs in gsl: + ax = fig.add_subplot(gs) + example_plot(ax) + axs = [] + for gs in gsr: + ax = fig.add_subplot(gs) + pcm = ax.pcolormesh(arr, rasterized=True) + ax.set_xlabel('x-label') + ax.set_ylabel('y-label') + ax.set_title('title') + + axs += [ax] + fig.colorbar(pcm, ax=axs) + if suptitle is not None: + fig.suptitle(suptitle) + +docomplicated() + +############################################################################### +# Manually setting axes positions +# ================================ +# +# There can be good reasons to manually set an axes position. A manual call +# to `ax.set_position()` will set the axes so constrained_layout has no +# effect on it anymore. (Note that constrained_layout still leaves the space +# for the axes that is moved). + +fig, axs = plt.subplots(1, 2, constrained_layout=True) +example_plot(axs[0], fontsize=12) +axs[1].set_position([0.2, 0.2, 0.4, 0.4]) + +############################################################################### +# If you want an inset axes in data-space, you need to manually execute the +# layout using `fig.execute_constrained_layout()` call. The inset figure +# will then be properly positioned. However, it will not be properly +# positioned if the size of the figure is subsequently changed. Similarly, +# if the figure is printed to another backend, there may be slight changes +# of location due to small differences in how the backends render fonts. + +from matplotlib.transforms import Bbox + +fig, axs = plt.subplots(1, 2, constrained_layout=True) +example_plot(axs[0], fontsize=12) +fig.execute_constrained_layout() +# put into data-space: +bb_data_ax2 = Bbox.from_bounds(0.5, 1., 0.2, 0.4) +disp_coords = axs[0].transData.transform(bb_data_ax2) +fig_coords_ax2 = fig.transFigure.inverted().transform(disp_coords) +bb_ax2 = Bbox(fig_coords_ax2) +ax2 = fig.add_axes(bb_ax2) + +############################################################################### +# Limitations +# ======================== +# +# Incompatible functions +# ---------------------- +# +# ``constrained_layout`` will not work on subplots +# created via the `subplot` command. The reason is that each of these +# commands creates a separate `GridSpec` instance and `constrained_layout` +# uses (nested) gridspecs to carry out the layout. So the following fails +# to yield a nice layout: + + +fig = plt.figure(constrained_layout=True) + +ax1 = plt.subplot(221) +ax2 = plt.subplot(223) +ax3 = plt.subplot(122) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) + +############################################################################### +# Of course that layout is possible using a gridspec: + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(2, 2, figure=fig) + +ax1 = fig.add_subplot(gs[0, 0]) +ax2 = fig.add_subplot(gs[1, 0]) +ax3 = fig.add_subplot(gs[:, 1]) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) + +############################################################################### +# Similarly, +# :func:`~matplotlib.pyplot.subplot2grid` doesn't work for the same reason: +# each call creates a different parent gridspec. + +fig = plt.figure(constrained_layout=True) + +ax1 = plt.subplot2grid((3, 3), (0, 0)) +ax2 = plt.subplot2grid((3, 3), (0, 1), colspan=2) +ax3 = plt.subplot2grid((3, 3), (1, 0), colspan=2, rowspan=2) +ax4 = plt.subplot2grid((3, 3), (1, 2), rowspan=2) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) +example_plot(ax4) + +############################################################################### +# The way to make this plot compatible with ``constrained_layout`` is again +# to use ``gridspec`` directly + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(3, 3, figure=fig) + +ax1 = fig.add_subplot(gs[0, 0]) +ax2 = fig.add_subplot(gs[0, 1:]) +ax3 = fig.add_subplot(gs[1:, 0:2]) +ax4 = fig.add_subplot(gs[1:, -1]) + +example_plot(ax1) +example_plot(ax2) +example_plot(ax3) +example_plot(ax4) + +############################################################################### +# Other Caveats +# ------------- +# +# * ``constrained_layout`` only considers ticklabels, +# axis labels, titles, and legends. Thus, other artists may be clipped +# and also may overlap. +# +# * It assumes that the extra space needed for ticklabels, axis labels, +# and titles is independent of original location of axes. This is +# often true, but there are rare cases where it is not. +# +# * There are small differences in how the backends handle rendering fonts, +# so the results will not be pixel-identical. + +########################################################### +# Debugging +# ========= +# +# Constrained-layout can fail in somewhat unexpected ways. Because it uses +# a constraint solver the solver can find solutions that are mathematically +# correct, but that aren't at all what the user wants. The usual failure +# mode is for all sizes to collapse to their smallest allowable value. If +# this happens, it is for one of two reasons: +# +# 1. There was not enough room for the elements you were requesting to draw +# 2. There is a bug - in which case open an issue at +# https://github.com/matplotlib/matplotlib/issues. +# +# If there is a bug, please report with a self-contained example that does +# not require outside data or dependencies (other than perhaps numpy). + +########################################################### +# Notes on the algorithm +# ====================== +# +# The algorithm for the constraint is relatively straightforward, but +# has some complexity due to the complex ways we can layout a figure. +# +# Figure layout +# ------------- +# +# Figures are laid out in a hierarchy: +# +# 1. Figure: `fig = plt.figure()` +# +# a. Gridspec `gs0 = gridspec.GridSpec(1, 2, figure=fig)` +# +# i. Subplotspec: `ss = gs[0, 0]` +# +# 1. Axes: `ax0 = fig.add_subplot(ss)` +# +# ii. Subplotspec: `ss = gs[0, 1]` +# +# 1. Gridspec: `gsR = gridspec.GridSpecFromSubplotSpec(2, 1, ss)` +# +# - Subplotspec: ss = gsR[0, 0] +# +# - Axes: `axR0 = fig.add_subplot(ss)` +# +# - Subplotspec: ss = gsR[1, 0] +# +# - Axes: `axR1 = fig.add_subplot(ss)` +# +# Each item has a layoutbox associated with it. The nesting of gridspecs +# created with `~.GridSpecFromSubplotSpec` can be arbitrarily deep. +# +# Each `~.Axes` has *two* layoutboxes. The first one ``ax._layoutbox`` +# represents the outside of the Axes and all its decorations (i.e. ticklabels, +# axis labels, etc.). The second layoutbox corresponds to the Axes' +# `ax.position`, which sets where in the figure the spines are placed. +# +# Why so many stacked containers? Ideally, all that would be needed are the +# Axes layotu boxes. For the Gridspec case, a container is +# needed if the Gridspec is nested via `~.GridSpecFromSubplotSpec`. At the +# top level, it is desirable for symmetry, but it also makes room for +# `~.Figure.suptitle`. +# +# For the Subplotspec/Axes case, Axes often have colorbars or other +# annotations that need to be packaged inside the Subplotspec, hence the +# need for the outer layer. +# +# +# Simple case: one Axes +# --------------------- +# +# For a single Axes the layout is straight forward. The Figure and +# outer Gridspec layoutboxes co-incide. The Subplotspec and Axes +# boxes also co-incide because the Axes has no colorbar. Note +# the difference between the red ``pos`` box and the green ``ax`` box +# is set by the size of the decorations around the Axes. +# +# In the code, this is accomplished by the entries in `~.do_constrained_layout` +# like:: +# +# ax._poslayoutbox.edit_left_margin_min(-bbox.x0 + pos.x0 + w_padt) +# + +from matplotlib._layoutbox import plot_children + +fig, ax = plt.subplots(constrained_layout=True) +example_plot(ax, fontsize=24) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Simple case: two Axes +# --------------------- +# For this case, the Axes layoutboxes and the Subplotspec boxes still +# co-incide. However, because the decorations in the right-hand plot are so +# much smaller than the left-hand, so the right-hand layoutboxes are smaller. +# +# The Subplotspec boxes are laid out in the code in the subroutine +# `~.arange_subplotspecs`, which simply checks the subplotspecs in the code +# against one another and stacks them appropriately. +# +# The two ``pos`` axes are lined up. Because they have the same +# minimum row, they are lined up at the top. Because +# they have the same maximum row they are lined up at the bottom. In the +# code this is accomplished via the calls to ``layoutbox.align``. If +# there was more than one row, then the same horizontal alignment would +# occur between the rows. +# +# The two ``pos`` axes are given the same width because the subplotspecs +# occupy the same number of columns. This is accomplished in the code where +# ``dcols0`` is compared to ``dcolsC``. If they are equal, then their widths +# are constrained to be equal. +# +# While it is a bit subtle in this case, note that the division between the +# Subplotspecs is *not* centered, but has been moved to the right to make +# space for the larger labels on the left-hand plot. + +fig, ax = plt.subplots(1, 2, constrained_layout=True) +example_plot(ax[0], fontsize=32) +example_plot(ax[1], fontsize=8) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Two Axes and colorbar +# --------------------- +# +# Adding a colorbar makes it clear why the Subplotspec layoutboxes must +# be different from the axes layoutboxes. Here we see the left-hand +# subplotspec has more room to accomodate the `~.Figure.colorbar`, and +# that there are two green ``ax`` boxes inside the ``ss`` box. +# +# Note that the width of the ``pos`` boxes is still the same because of the +# constraint on their widths because their subplotspecs occupy the same +# number of columns (one in this example). +# +# The colorbar layout logic is contained in `~.colorbar.make_axes` which +# call `._constrained_layout.layoutcolorbarsingle` for cbars attached to +# a single axes, and `._constrained_layout.layoutcolorbargridspec` if the +# colorbar is associated wiht a gridspec. + +fig, ax = plt.subplots(1, 2, constrained_layout=True) +im = ax[0].pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax[0], shrink=0.6) +im = ax[1].pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Colorbar associated with a Gridspec +# ----------------------------------- +# +# This example shows the Subplotspec layoutboxes being made smaller by +# a colorbar layoutbox. The size of the colorbar layoutbox is +# set to be *shrink* smaller than the vertical extent of the ``pos`` +# layoutboxes in the gridspec, and it is made to be centered between +# those two points. + +fig, ax = plt.subplots(2, 2, constrained_layout=True) +for a in ax.flatten(): + im = a.pcolormesh(arr, rasterized=True) +fig.colorbar(im, ax=ax, shrink=0.6) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Uneven sized Axes +# ----------------- +# +# There are two ways to make axes have an uneven size in a +# Gridspec layout, either by specifying them to cross Gridspecs rows +# or columns, or by specifying width and height ratios. +# +# The first method is used here. The constraint that makes the heights +# be correct is in the code where ``drowsC < drows0`` which in +# this case would be 1 is less than 2. So we constrain the +# the height of the 1-row Axes to be less than half the height of the +# 2-row Axes. +# +# ..note:: +# +# This algorithm can be wrong if the decorations attached +# to the smaller axes are very large, so there is an unaccounted-for +# edge case. + + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(2, 2, figure=fig) +ax = fig.add_subplot(gs[:, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[0, 1]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[1, 1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +####################################################################### +# Height and width ratios are accomodated with the same part of +# the code with the smaller axes always constrained to be less in size +# than the larger. + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(3, 2, figure=fig, + height_ratios=[1., 0.5, 1.5], + width_ratios=[1.2, 0.8]) +ax = fig.add_subplot(gs[:2, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[2, 0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[0, 1]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[1:, 1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) + +######################################################################## +# Empty gridspec slots +# -------------------- +# +# The final piece of the code that has not been explained is what happens if +# there is an empty gridspec opening. In that case a fake invisible axes is +# added and we proceed as before. The empty gridspec has no decorations, but +# the axes postion in made the same size as the occupied Axes positions. +# +# This is done at the start of +# `~._constrained_layout.do_constrained_layout` (``hassubplotspec``). + +fig = plt.figure(constrained_layout=True) +gs = gridspec.GridSpec(1, 3, figure=fig) +ax = fig.add_subplot(gs[0]) +im = ax.pcolormesh(arr, rasterized=True) +ax = fig.add_subplot(gs[-1]) +im = ax.pcolormesh(arr, rasterized=True) +plot_children(fig, fig._layoutbox, printit=False) +plt.show() + +######################################################################## +# Other notes +# ----------- +# +# The layout is called only once. This is OK if the original layout was +# pretty close (which it should be in most cases). However, if the layout +# changes a lot from the default layout then the decorators can change size. +# In particular the x and ytick labels can change. If this happens, then +# we should probably call the whole routine twice. diff --git a/tutorials/intermediate/tight_layout_guide.py b/tutorials/intermediate/tight_layout_guide.py index b3cbb0861113..6318032e6412 100644 --- a/tutorials/intermediate/tight_layout_guide.py +++ b/tutorials/intermediate/tight_layout_guide.py @@ -21,6 +21,8 @@ """ +# sphinx_gallery_thumbnail_number = 7 + import matplotlib.pyplot as plt import numpy as np pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy