Hot Standby: First integrated patch

Started by Simon Riggsabout 17 years ago5 messages
#1Simon Riggs
simon@2ndQuadrant.com
4 attachment(s)

First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.

The patch tests successfully with the enclosed files:
* primary_setup_test.sql - run it on primary node
* standby_allowed.sql - run on standby - should all succeed
* standby_disallowed.sql - run on standby - should all fail
plus other manual testing.

This is still WIP - its good enough to release for comments, though I am
not yet confident enough to claim it bug free.

What this doesn't do YET:
* cope fully with subxid cache overflows (some parts still to add)
* cope with prepared transactions on master
* work correctly when running queries AND replaying WAL
* work correctly with regard to AccessExclusiveLocks, which should
prevent access to tables

These last four points are what I'm working on over the next two weeks,
plus any other holes people point out along the way. I have worked out
designs for most of these aspects and will discuss them on -hackers,
though most design notes are in the Wiki. I'm still looking into
prepared transactions.

Comments appreciated.

--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support

Attachments:

primary_setup_test.sqltext/x-vhdl; charset=UTF-8; name=primary_setup_test.sqlDownload
standby_allowed.sqltext/x-vhdl; charset=UTF-8; name=standby_allowed.sqlDownload
standby_disallowed.sqltext/x-vhdl; charset=UTF-8; name=standby_disallowed.sqlDownload
hot_standby.v1.patch.bz2application/x-bzip; name=hot_standby.v1.patch.bz2Download
#2Simon Riggs
simon@2ndQuadrant.com
In reply to: Simon Riggs (#1)
1 attachment(s)
Re: Hot Standby: First integrated patch

On Fri, 2008-10-17 at 15:38 +0100, Simon Riggs wrote:

First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.

Patch with --context=10 to get around apply problems reported by
Merlin.

Thanks.

Some additional info on categorisation of changes to give a better
overview of the change footprint:

Major changes for Hot Standby
backend/access/transam/xact.c | 679 ++++++++++++++++++!!!!!!!!!
backend/storage/ipc/procarray.c | 787 +++++++++++++++++++++++++!!!
backend/storage/lmgr/proc.c | 107 ++++
backend/postmaster/postmaster.c | 75 ++
backend/utils/time/tqual.c | 29 !

Minor changes for Hot Standby
backend/utils/init/postinit.c | 8
backend/access/transam/multixact.c | 14
backend/access/transam/slru.c | 16
backend/access/transam/twophase.c | 2

Required changes for bgwriter in recovery mode
backend/access/transam/xlog.c | 670 +++++++++++++++++--!!!!!!!!!!
backend/postmaster/bgwriter.c | 206 ++++++++-

Minor utility changes
bin/pg_controldata/pg_controldata.c | 3
bin/pg_resetxlog/pg_resetxlog.c | 2

Changed header files for above
include/access/xact.h | 27 +
include/access/xlog.h | 54 +!
include/access/xlog_internal.h | 6
include/catalog/pg_control.h | 6
include/postmaster/bgwriter.h | 6
include/storage/pmsignal.h | 1
include/storage/proc.h | 4
include/storage/procarray.h | 17
include/utils/snapshot.h | 67 ++!

Prevent operations that would fail in recovery mode
backend/access/heap/pruneheap.c | 8
backend/commands/discard.c | 1
backend/commands/lockcmds.c | 12
backend/commands/sequence.c | 2
backend/storage/lmgr/lock.c | 9
backend/tcop/utility.c | 21
backend/utils/adt/txid.c | 6
include/miscadmin.h | 3

Additional/Changed Comments only
backend/access/transam/clog.c | 3
backend/access/transam/subtrans.c | 3
backend/storage/buffer/README | 9

--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support

Attachments:

hot_standby.v1b.patch.bz2application/x-bzip; name=hot_standby.v1b.patch.bz2Download
BZh91AY&SY3a����������������aM\y^�8i`�m��N%^7���T�w�����Qss>>��������a���s�==S��gY�����{����H�
QB�R���!�'�=������!��=��R���
E���/J%R��`����s�w}��
�D�Z����H�}_^��E��IQ($D��@��B"*J*Bul��j�H�������}��fm��*���tW *���pz(oy�����k(�w�-�=f>�&�PB�P7����.�w�� �^���Y���w���Z�%AG����C7]Q(C�j����v�["�<�*�0�����FfQ�5y
������sC�vgM9�a �gV�v�0�_+z������{��[=��r��.�p:J��c�����Q��f��-��>�R�����]��l�AB��QnpQ���Q+�9���dIJ9zq������J�����[�wTm��������X��{]*k�cR�����y�}7�.�������A�V�D���*����0��P���P��
k9��4����lB�����V�St5�����F���!�kTd>�����Z4�}4�����i�_mOL�3��)��-�=�2��� ���Wf*-�����4S��$}�eI)V>�h25�I�����]<�m�%Sf�`�j�6
T�������ET�;;�R���:��)�@�C@T�����=E=5?Td����Jh�	�&�4�$�d'���=M4��M�JI
4�0h���i����<�
�

'�JIE<�S�z��
B4P�B�  M�I�2Lj5S�1i�&�?Q������P���
��&����$z(���z��x��6��h�
U����b�	(�4E$�"4�`4����R4Q���f�BE9�,)�
)���C%�}�:U�m��$��-2o�p
��@��/��/����~�W�A6?���`Glc��b�����I�C��q*�����O$���]�0�$��������*���!; GI 3��t�H�I_�]iV����6���|��l}J����[r��u�J����W�km�~���
��H
F�#F��0,Y,�fll�dR)&�0k$����Q�)�j�J��d�*��W�>�n~��3��a���D�� e$eZ��L
r�h��$�3���Q��
bB�������vK$haQ�a�4��c�8q���Ru�?
��'r)	+"���L�50�����g�~?��Y5Ik�nII
O|�����7��),�IY$Ll�]���d���v�����<���;���R&��Y���\������Y
&�+L�_Wn��l�ZCD�)�^���z9���"F6�(��K2�Q�L6I��kC�
�����3s����m9��&7C"�c92e�51\fJ���5����lQ���j
�p5MQ0��HQ��s@�q�@��S����Q����<s��6�����)/#��Q�g������6XpK��aAR��Q�E�	2�����^_�7�vI�gR}��`#��*b�H$�Qe6�$�)a�b���%���(�$h�iR�e������J��
i�S��(�����
�,b��cH�(6�#I����$��H�Md�Id���%�ma3LjFeIcM$��"*J"iDl1����#*@�"��D�H�$�6���`&�AtH^���(���V���M*ZZ��wn(>S������@Fa H{�r��a�sE�����)y�f�z��OHDlF��O	�����\Xa
����D�S�wq�.>��
x �N>���Uh�����[����~|����������q��ZM;����QH?��3\�B�$$�R��������J��������W$�D��6RV���*���
��	��<A�5	�H����z��1�Y1�)�����^�2�b����|���L��	�0�e�O�:>���&���D�4�|��T�W��6����DD;.b�L'�h1�5�T�4���,�j�UW����������U)X6��l�1sI\v��AU������1d�\��V��u}���%Z�&L��4V�%VSQ�e���d�So����	J1h
@��	���
��ScL&�����d��,�R�fR����H���H�j�h��{lO�Zp��cC��
�!���S��������YG��9�"�HK!�a���

�}�M"��f{�4,�3@��`$��c�s��LP@zs! c��>�=;����fD������ON���n����cUm��K+�:��GM�#r��B���R�kMVa�Rb�����
��4)�l�
|���D�X�KK�$Qt�D�T�,DC�����[Xk~	�����69D�rj���t�P���y3�v( �K��d>#������-�m��R�fw�E��
)(MD�@�r�2��d�%��f���v�Wn�����+K*F�e��CV)�,M��Y�d���4�
��#�������$s*M���&_�(�Q���z��y����[��e���&P!�������WPN���Hj�:p��cq����m��4����!��}V� �)���Kl�
��C� B���E/I��&��*L[ g��U�YD9un4�������8���d��C��������D���q��bZX��H8K�!���Jy��S�>�����r�s���-�:0����
�l�#c�b*d<�]O��B��EE����5(X�*\�p��Q �&jM�.P�����S�T�>X� i;�L%{���0������{��H�����$Mz0�@����Xq��E�9�R�u	�L�)�1!�y$B�P��"��z��a��~����_�.�����*IDq���7���3��V���U��M6�R�kh�C�Q��U�FBxxA�p�����|7��!��1���,f�0���To�dR�Nuq���::Aq�6O ��7�����%������kJ�T6�\bU6�nn�.��(�j���<��M������S��JNVD��7!���1�R�i��*���Z
yt����^ky�+���������^ZJ`�Dx����C�.�]��x���p��NX��L�y��BG����H�sdeN�S6����1������nK.��Cp�m���;	�����1Zl���l����
;�Kya���?A�1���Ds� ��%R�a5,��`Qg`�����z����D����C���3<x5&w'���B�@�=$����oSh?� q;���}_�(nO�\F
�o���	����������}%��s��
���A�WrF��0��%�&���s2*t�"
�H%�y������9�#z��ss,��\�3�����P��*��w?���p{,�b�L|��V	���Be������3So�-'#�<����W��^�8S�5]��N�k���2m��_R��>�JA����j5'9���N�L����>i��I�c�I	���#�:K;�H�@>I���O���m����3�LFN��i���Yj��e��L��gO!��.2��w'!�(�(���eF�$`�!�wv(Kb��h"-�����Q�h������+�������lf��$DZ�D� �G�bG�yuBdZH����#�I��@j���#��(��$&o�7��;D����8�	��qe��dZ��L��V���u����<&���7o>��J\�f?���~'!��DB���'"I���C�LA	��r�6G��l�pz�'d��{�������I�3|t�<K�3����N���	��xM��L��go�4��>��pQ=%�4�����G���zRu�����sV������M�g]"!	�9�q�px�x�����|	V�������������I$(�hn��_��n�<(\����Y���'(rS��w��p��X^�nC��V?g0��I�8����M��>��u>�g�����������>s����(�1�=
*��h��,��E�����u�w�!��'�������p����)��Q����p���[��~��'��lw������6�/�%Y��C�w�����o:���h/�����?��NUx�c��D���G��T�#�M���}zY#�����w�D����@.Rt�	�R����^�3��G�����$�:Ax����^!�[TE%�U���5)����no�������wMJ������vbB>���P>lB�=y������$�G$�O����:��i;��bS�"|�t5�
c�.�v�\5Zy�S��B	Bd�����H
XZ���#���Hi!�{z���!K514#����������w�9f������wvYRyg_��|v����n�7�T������;�\7�G�2)�(�L>9	=�jEw���x!�������^Hx: P�}L<���u)���
���Q]`���{[�.8��$b�3%�$�P�hq������>�������\,���oAHPZM�o�n����Z��^�j�v�&{q4��c�4"��p�$:}�<�P��2&S����q��R*������n�?QJ?~9���=�#;�$/?Dc�r��=�6�>��pEP\�n���~�I?
���_��5����k0���v.�/Ps�
e���.rD���]��<4�-����@�^�QAW���y*�XY�<�k-1x���
Va��;0��T�En�O���!�*�3v�[!�X��Q�2Lb7�\����E�����sl`�|sY��Kn��\-��������Y7���D4T�eI�8a��A�����
;:g�N'�)N���Z�98��j�S�vL��)�'L=���/*����?6��O\��w��w4�g��#-}Q���$�����a�������EE�{;���\tP��8�������1�������j ��9�,���$��LS���������"b���oOF@R<#��G&����>��7���r���������t����r��its/
��(��MlM�^=\5@^�QE�nR�,�c4v����������l�'�C�����Fi��'UXZR����G�bD�MI��/�����C�����N����U�T��&�w�~p�]�=���W~��M'N�cm�$%�.��}z�JS�����C|���P�����O�e���,U6�e���w�^��{�X��M�\�su�����Y"�I%���+$B8�EC�)�`��vfwn��%��W+�������[��(��(�U�]S�^�.[rE��6�5� �hW����� T8Q�MJ9z!�eEN��2,D�B'.�J"��m����Q��������9��s���sp'q�zBA�:��m�t�nv���s�{c�kLs�M�AL�1"��8�~,�����a������&vh�V�;i�aA ,�K���I���q7�:b����DH��*$��)a�I2V��9E�y��{���Q�[�1����bH�)�3���;f��a�:� �)aW`s�d]��PG�w$�WiK�n�����?S�:��2s�:y;�#�e�c�� z�S��i�k;B�BeA�G&���;2nDt]�A�H�V�Y���.\�KKR�#H�����$G.��`���:q���.��v8v$a�����H�J.DreI��LD�.�9���c�H).p���)���\Q�H
	���[	�':�r���V��Q	��"�JK��R�f�r��]�5DH&h�"�d��,f�
���I�d�^����U�"4�6��Lf���7H���nZ���h���,������4��	S}���&���6|{�n�����U���\�zY��F�����/w���y��]K����&�b�wI)Tm,�E�(2��U6�A3��48�`I�(��\���A�F��J�XQuXJ,��H�D;Jh� .	1l%[C���\���LRh�H���[L9\�[���p&]��N�q-w}z�bJ�0�K��71��T��6)��lYnX��M�����e��z���ta&m�����Ta
�Q�E
\,Y��X92lkEsm�Z��lmDh�������r�E���Q�E�����m��-QkEh�����P!C���]O�aLTR�{u�C�����wa��?6`�~c�#	�bof�����l�\���l}����(�?.}��K��(I�����gC����ch�Y
d�%��5#A�����������5LES�O].4�J C�J�#J�ZE�Aj
�wY�H����


	E�P��)H�4 
/�tu��5
`.���0u��|�N�e����������;00@�W�z�vg*���k_����;=��G�k=v�6p�9���+X���*$!Q8�@r)T�6�M�rn�k#h�6��l�D�����P��#��qD(�!���.r)(��W3��t:��&QY,I	��0��#�C$8��`0��3���y �DE�rt�0$HDP���2�H�n+��=����ZS�vA��xW<T�=�p�������_(�)X�������=���~f��������4�p��/5d&R>�������^��@k 9�a�X�$z��?�J}��;d��HU}$9)4I�\��H���{\��s.�fA0�*R���8'����{�������Ba������	:E�#���� B���D�c�������`����5�7�g�����s��1�,�	����t{ Z��(<�2>��Q��������t@���=���J����G����-���H}c���� O���w{Nl}���{;6��������\�z��Z7�c���
h�o����k3��1�O#�k���^������%�/���0��������X{����x|8G0���������N���c�x�/�!�n4��t�:�E�;2&M��p�N�Y��=������3C�x�O��I������������Y<�a2��XF�J�h�j�SP�| �92������!����\  �L��B`r�&�����u-�ST�+�v�I�W���8����3AK3�3F��+�l��s�L�I�b�6��b�&�$��t������}G���"V}����M�7b�<��L�3\��Q"M�]u�n�L[��+"P�I5�44�������d�q��E�MI���wf15#�p�L�Y���$�P�\~��r*OV�m����9�DD@Y�����TVI�w�w[�%3H�l'��/��xn#������DaIC$��g$����(�d�I�O�`���d�f�gQ�*�>��s��+V�S[[}<i�|z��f�4K�*��{�u����S���;�-����L����?!���v�������Nb>h����
j�rM�IL�S#�U��yy]�$���$&��q�.F�d���
��]+�Ebw��,���,��sqC�w��,a��M�X������p��)C����D�9�
�a6&���C��}S|k�9`�RB\^�����iIz0X �TD
��3H�*��w��"���r9bG�f~���Z��������� iR8�����gn"��}�A��p���#�7��>?�RlrG�rgo??���"9���;!��=���A����9�����:������J	�h�<Z���V�t6�Lm
�f�t+j���d���������8UCT<0�ED{qOc�a�/�k���%��$��n�����>��o^������D��K�3�9x~������G��� �*����i,�CT��c����������KI���f!���7�p=d�~�M`_����"X��C&��d��\���qO��B�C���#�����p��!��{[�3;��O��iH��s��(J�����G����?�=������������gR]���ff�nf���{}�[��W��>��P��#y����u|��}�fnw/����ca��e=%�����J�j!������<X6����4=f������*�B������+}���m29������>���?W�>�����!��t��Q��=��J��}�
�<��M�h��y��R�-q*��������(�pD���B��;&v:3���.T��p����[�����NQ�%?����W��m����w"bB~������HI��}w�H��"��Y�=�=zF��w�|��^��NS����a�������}����8��Hq�B�c}L~�������~�?����*�a�Ia���9���&5�5�'&n�sU�A��������9F�{L�X������3z�#j6�36dO����Q�!���qGrK�D�\��]�H�C��:�����[��&s��d��f�)����0gS�5sK��5���&�a�YA6ht$���Q+�]��0�2���:fr79��	���e0�h�\c�@���|�f�m�6bD_�g�����t���a���Fn����� ����x�v�����`��9y��Pd'_���g?l��H}$��h�����(��C����Lg*�9Q�����jA�m	�	9\t��=�4�+�z�^���^OD��H�p����s�@��
��0�K{��e���AGd�����G�ULwh`���gn�X7H�F��NU���D�LqA�a��O��	�#��'���o��S�>��oI1��!y?n��������Gw`��������>�{�����^^T+���3����r9�A}���B�*�~��=�7Nf��N���U??��&�0�v2��_���x��F���������y1��O&�t�XP�D�����g��"��K{���Y����a�50I������^�,�qj�E����������\��'��LP��>������M�c��'k�N�������FR:�H*��.~�����+����	�JM�cj��8�c����py��@�����2bO����0�0������ ������l�A����f�����'���}�<�q��G�s��*)�4�)1A1��<w���P�m���=�"��;Hpn� ��B}��O^�J����"�w��C3d��LM��]^l14
���`����MZ��zkO�w�a��}G�?���{F�V�������������M�f��c�����s|����Y�fY`>C!� ��l��5���C�f��n5
�����B��I�	x0���3s�d`z@z�gH��@>���.U�����a�C$/X�Y��!����)�&Y�	�$y������;#�:8������`	�em5H@����u�������c�[��	�Zh�h?���0#RbG����2�u&�[�RC��@@}������N��w
a������)�w���: ���
�E��Ir���v��:��e�AF�"a����4Cz$j�S��������r�h#��
X�)n�[��@���f5]z�*�wr�[j���f,eR���#<�'3������X}R[�)$�f	�wz�������9���1��dq��&(�=��&���97���o���xHm�w=������ i����W75c�$��v"��� $���j�����l!0]��<,�,�t(l�EL�Oi���JM2^uB5'�(!���{���?E
F�>c|^���h����A���u��J*�6�"�Va����*������|=��{�E�7�����mk
l�[��EP���S�%�=�K���y(�r�2
#�����	�c��="I/��Rjx�jWx�z�S����I���8�����E��d�Kx*�2�a�����|p���E��x$~Vr<p�8�"�/�O��"��sA�A��na�H7]�Mq�����5to�u#xd-�,���cJ�pBz6o����������z'�����_���4����DA��@��p �gb~���Z�?.������d2��.e���B���O����=�9�V�k��*��d�'��-|3K�CN�+w�Bc�m��im*ksC3H
�j�h1��u��,0��3�1���.;p��YDL*�D���2��[T��]x�W=Vi������q����x����I���D�!�����3x�7���%�&�ra��3���;������8�O:�������5.W0%���@��st;�@9C���Z�;����� F��s��o8�7B�������d�_#������Jc�~Qu������>G�2���;oS&�q�k��-����^�KA���������F��q!���W�f�]���&|�e'��oC1B��{6�hh8�t�TA
��%���C�I����J���&�����i]�3J����&-�����DU�818{�>}]0���/M������"�$�����.;#�%n��@����*G��o��-�l��y
��(���>Hb����QG�1���e��~$�����3+�Ki�nAc���~�Y�\�������D�b��R�p�l��Ubt�ZJnJw����/]QSiA�kS3Z$�mZ������������g�nKsAGd���\K�$��a������=���(�6�6v[SS��(����2.�w Z�;����z�#}c��m�*&�����v!��(�x�8�dW���=���q��$���s��s$�7��[���L���H�*}�3��~��a����#�O�fQ�!6tU����a�Jv%V9����s��^Y=�kn\�Z��:v��K���[����h��+T��,���~rz�"��'D5��(�;��]Rf������3Y/��9����L��bZ�����U�T.^�Wj�H��aC����j���#�U�j�	'2#r�L��A,�"iL����(jpxA�G(`|$�$ �$k
�����Ot=N(�%�\�i����	�3Q*!)L��qI,AD����F-d[�T]���=�D@��r_���|J���qc�FE���
XH����|��{�!�X">
�_�C��/r����s4x�-%�����
v-W]�@B�������}����M���Q��~:�e���2�::���>����>~0_���3MEQ�"p�y3��&�A�7������,��������n�}�{�PQ���O'=����|��A4d&�0�(c`�5u�Y1�I�nLM�P9O��p�Q.�������L�k�#��$�M��k�%#�MT�r�q��K.(l�0?P��;�F�O.2'j �"�t��#�7�b�I���>�5������F�T��<���Fy��d��s���|q;K��M�6M�N�8���	.$i(5X\�����|Gn�e�i��&����:�Bh  �n�:(�������MT~v��%"&R��V�aH��O�J��G��4H��d�|��0nsZ�����J�0\�a�X�X�d�P���y�X�,;vw��l�'�@������u�S�X�Z�9���R�.�,q��L�f�RGaS�����q�����h:%�1��v�6A�?AA���}����;�@��%I�#m0AQ����y%;�h\��A������9���"O4M���>�/��=����n�l�/�f�CF�s��e��
��!����F��&R�����A�z��jZ�:3�ra��(��E�S$L��.����/�o,d����`}EM����^�g�w:V8���2���L�7,�'9�E	�X�9�R���0�jad�v�^�����i��2E�� �SX��8����>��:?.��FbM�D:��Q0��B��Bx�T.�0�����L?��#w*9�n����J��vx���Uy�:�;S�{kics=v�fK����eL�f����Z������]`���t�gx���ap��p}�H�����;����.�#Vr
�tQ���8r��3
�/��;#�9�;��<j!�3hN19�,��z�����s�f���F�
�Ts���'��w������'������q&�6���a�Y��&E����x9�~�$�h�8b�s8�#�/:��F�����C��f�=M��<�Lc�����V�����2Cd#�y�\�*�d	1�;����c���P�9Zn�t���$�b
P�}|^�<�h<��f�%
.=�	4P�oI�3DY����a#.U�$,=��H���`	F�ps����m(jHx(9�$���T��5@����\7K���.�����9��f��
��g���e���h,f2���|�d)�����|����FY��^��H���s8���� Nh2��k3��[���T����v��6���Y��,T��t���BkN�,cL���s'�=��dF�^���>���j]��xj���=L���csy6���xs������r?��o4a��u��&��%�(��������/��y����p������&egs
�b���4�z��'���g��H�O���wM��z������&�8Z��:�i��I�
V�[����3ea(� r8���O�P{�hD(}�2���&r��m�x�'.�� A%Y����$��g�����3�z
���D�'�u0���,RQ+���s�NX����C�Z�1�L^��!���dX�o��M�KH�d"�y?R�3NQ
Qz�$�EV�Nq���y��9�F������y4��b�i6�>D���K�d�,?��ZM���WH�6�d�lV+
A3�Q
���$[JP��V��1g����ms����H&��V�O�Dd��m`�����HTY�*������a�9��0��|�C�l�4;'g��B=1�Vl�J��"��8t�"��9����s��-�����(�\�8�bHb��)fX�9}���=����e���M� �r���L@@�u��q�$i3���.?RL��{�2����H7"&�e�
W�4���d�s]�H�CU��h�p��9
���������uj�����Z��~}�o$���F�r������LH�g?T���SH���|��� �kb$T�r�#b��Ri��d�i��R8s?��*M�F�fV#A��%R��������=���_�R�*;/��������M6C���Q��{����������.�x�����l���U�g����( ��pK?���D1�DY���<V^��lk��OG��g'g�k�G49����rJk\.������.��Q�_�>	3�u�����vL$��#�"�]��
@�!�o������3�<�/!1�r	����������B����c�qS���v��������w9�t%�����G�����N�;�H�"���%#J�*�5��x*f�3��S&�?g��?.������;�w���s�������ic;P�3�^=��8����	|L4�����F�B�dD��&{C��nk4	�M��1�������q�X;�����f=hl���pY�`�&F2��WS*3�������&��[�\v�/"��#;�pEb���mt����L��,����i�������DS�p���=��E�t�#\�ZnDE��M�6�1�P��4��UC?�c��ka!�z�^g�bT�`I���!������������������3��M|��T�}�p�L���������p���G���'�Ba@�4��!�*�>MT�<��������(�hF�D&��&�a7���K�Kz����Sj����TF�:�@~�pT�1���z��8oN�+�\�N����!�Lm����8K�(�?�V:�$F�������Z���;JpB4j��9��a\5�mE��j�1�����^OGCZ2�5-�D���pm�
��.�2�] ������B��u$d���9��y x*�b����}���X��,4T��1���N(u/�C�0KB�LV�	�qS��(��Bt��M�;��,g�G��WZ�g�2f����l��W �Z+�g�!���~%���Y�"���|dhE��b���,�@�<�vdW�N��.T���7��eC��<�����6�e6/��c��B�9�G�Ue��C����ph�������l�7�Z_@������,�T�DB=��9d�.�4�$���#�C��#B�B�E.����"[������%�s��e����������X��G�9����O2&��w.6��^���rr��F�H
g����Y��x�y5�kf[�)<���l4��Wt��\��%�/Z3L��|J���:F M���6�*s�!5C+7�#[3�
���m��������[�A�Z.b6�om/�>X	6d�� ���U�slX|Vw�Gqy��rEN�o�e�����w�}6��s��-KR�
����f�������&��]���dT���?�>���%�a�o�r+�eS�1"D_�dJD��L�\;l����?n���;J����~����*C:�����9���q����RI��0�E��\��UE����EZ/�����?��F��2~e3���th�&Ro������#��MYUt���MT��s�fc�W�;C�A�w
D@��nk��I�sG�2j�6���	��<��������x�p���(�O8G<���>�_����JQ����Ij���X��������&=��x�^ZG����������BGm�r<����?�E��4J\6�8�-�����S'8��cS�&�d]T��XH�%B��q�n�
��&�����,4��-���&g'2 ���u0?.giw�goM�	L_]�����nB':����������9!������&�?Rc���0�*���"�|���C�&k�&c��Ilj\�S���,��rm��1��M5��>��C�G�*f�	%bmv8����7����cp-�U<����k6����k7!����-W���X�����+5�wIO���������y90�������r����Q�#���I}k������l	�)��M�1 ��8�<�q:��O;�E�-����]�0�sS�����vm��S:`G���ca���P����b����Q����
�\����T��;q�I�����8��mN��#�SQ��txm�1�N��^D\ww�<�r�ne�S-5���u&�b���HC�Gv\�M��qfH����H9&)^���M���e�����E5 �p��z�_�-�- ��{S�V�����69,z�@��M�~���j�%f��jSc�����qu���FbdHp�G�j�:U��0�`��vvd!����LCG��ggx���2��2d���EL�
t*���uo�=K^��pl�i��T��R���2EXG��q��'��H�~g8��NXq6�����r���+������s�<��h��@���������X��b���k��$A�6�7'QC�Yx��DC��������uM5SUT�MT�UT�U5SM4�\��;�}}3�y�7�v������nL����4�"�I��N�44/C
�iq.GQ�/�u4=^�	[��g�0=M��*�����������F�-�=���y��z��������$s�'l�����I&f$&!=4�`G���o��j��������w#��j7��
hURz`n)����rA����?,��I�S�s������<���S@�O����_�G�y�m�G'�����.J5�T��]�f��1�m���������=�c$-'i�|�	�(�'��������,u�Lo�&n=�������������O��\��*@3��L��k2������yP���J��O�4��,�>7a����V�<��qG�E����s��������D�~T&sg1�;�T�"(������>�#-��4hS#�L����7��c='7Cl����T3sGf��Z#6�d��1�^*lI�u�!���
��s�.b�kR�Dmv8jeS��j�ln7�Y�y��l�;���7B,��~��0F��$8�KIB*��}T�J�82�.�_�$�e&�����5���2m��P��6��v8�c����
Z���F�
�����r���@�Ag�N"�s��M�$��GW
��F���-�*���9���)�S�@��$��S�zv�n`������#Y�X���htWBgc�x��������%���a~-�Dx��������<�|)"8#�'\�R*�C���eM���Z��>e�r,�;����]�������t�{����e;rO�zl��<3V�b�;$5�'<�^��0����>B���J���{=��_�H��G���*6��������L�����g��r�X�t��-�1�/����h��:����x�waM�"F���-���V���F`��ph��M#�9`�f���Qi3�*}��(9�)���N��������<�q�k�w����sX"�O��3���}��b/N��_l��S9�CGR	����Px=�*���
��#����9�v}3��6z��y�:���8�X'
�[����z��*-��~�����[h!����M����P������pA��|��W�#	���*,�������\>�1��������jS�@�#/7m
F�4se4������ejpW��O)�f�X�9�@��D�#C^�)��:IF���K�����s<��b0�6M����N��>�4s����dL��1Y"�Voe��q�k[_���������u�2q�o�x�~K%d��8�Kpt����-���17&b��!��������)hk���/?�����z�����~TXA���Y���<:���S�y������QyL�=�&����c.���32�t'�|��G�$��#��P������(3u��ggZn�����C��I�g�w:��1�j��`��$�Y6�

&����\���=�����r,W s���x��6p~Fh�6X��&���C�HFE��)J6�e�F���������������c��j�R�n��X�e�Q�-z><3�y�t{��8�����U��U������ggH�0���������o�y&bQ���%6v��a4i��Ea��h�$L-g�1�|5!�4H�d�����i���� ��D����r�bgY�X0�2��EzH��r6C�y��Q�9m���g�� S����q]�Y�+���[�����|�;�\=��2�����F��T�-�l�(B�7
l>9��#��a"��:����b1_$��(�/���hTQL�b�hDw�?7Tv���bN��}���dH���Z����
N �<%�q�T�O3U�78V=��[$��	Jgq ?J������(s�w2/��)�LW���d��� �!;^��C�\>Y�M����������3�*E�p ��7+����^�DN/?Q�nmY�q��om�����C����0��C�:��D"���S��@��������4D~p���u�A�������^���c�H��
N'���&]Z���e�(���6���6��4����2�1D��lOFw�q���x�����.�#����t�����N;�QY���6���2��O
�����D�n��\=���2cL��<�d���������go�,�����B���bdM��6��OD
B���G���y[��z{�j��I28~-����?a����C�/q"�����k~0�7f8 
R��K2"B!
�/�?�$�����������d?���������qv�.����FUB��#�����a�t�W�~Z}�7����k5as9�u��	E}��?B�<21L�,q?�u(�H��oL��������t~����_���������y���^T�\����������hLB��&@���A��MK�^���D2~[�(%aD0�Is�M������?�dc*D�4�o��ob�u�D��l��Y�I#.�\��!\$U{������?`�)���>��iT�O�OL$?�S�M!�?E�p�
�{
���G���������l	$�������Rh��M%�(�?��!�
)�>s����=��v�B|�.���#r�L����<N����Z����j��U��Q4���a��b`���a.���9�nTy~�N���)��M
����?3�f���������QD3�R&�{#����w!�����S�j�
��C��fk����&�d���J.�A��G����b~��'B$9�K��_�=���d$�-KB����lMk��52$��8�DH��`q_���QZ���&cZ���AyZ��K{��F�Y�����<Xk���	��C���s�Mu������K�=_>>�wq����L�M6`�����11�C�_32A�V�����K�`L��F���6�\�Hg���&�#Z�"���]3�z[=����9y77n�=��p��x3V<~������8��0'.���t��$�Z[qwY�s#�n'�B�����t1��w��4\�[1��I&l�%q�L��;pM5�8�=�c^@0S�`�3#`�@�v�M�GwAS�m���O�����dU{�8���I��V2R�������3X�Ixc�7�������m�����v����G���	���Q��m�4��l�4�0�A�.����4_�
Dd8U���bpl;�����N���#��>���2=<du����q>�&�����T�<"��W��r�=�A���2�N���2�8/���DT{a�\�Y2�s�g�+��;����pN?��*;	��#�q�z6����&}����y;�;��"��T���f�QZ��n+*>��l�>����<;���;';'b���#� ^7jR��<�@���}f��BowKf3{��k��>N�������'�v0y�g?����M���f~�$����A?G��0�d�@��3;�����C�8*/��.�&����bc�������y�[1_�����v��5&4�7�����U�"6����ym2���>%�V�/���X�9��m�����z��T�]�d�"3�s��.x���������,��w@I�N"�8D:��/>�g]����.>��Ur��a�{�++��N��r�������K��.��Od��Wn��W=5��E��u);w���'�"��xHB4[�[�}�������*i�Y�Mw#���9����?_!{�z��7���$��%��d�5<(���r���#��:��>s��>�a���\�68������7#v��vs�@����A���?!WL� �-O�#�s7�)�8#�s���@���R�;dH�Q��G���}��2��uT�#,��	&g^1���$U��~'��)�?���>�����7=���������-526��C�?� ����L�]��Hm��dt[���@��!%���*._��3�#:j=@���k��d��E�"I����I�����C�����0��(<�)a>�v���S#�K�i�	���������~�m��������O�n|(���vf,�=�$!����9�r��I	���_C���S�TJ!w�LHo]6*O�&gP���)6����3�$ob&�����	�������o�81����D;grGL�:99��$p�cG����91��>�/�I��f�k��YTwM ��_2�Ns2S��VbV6����A1vE��N�`��X�K��'�����	Y�%�p���nC�v�jv9�2G�W�,H�\z~�w��q{����x]W�630����W����\g��:���j`�K�}.���o��w��:Pqf��w&.���#������p����N,��E�'w�K�q1VpB�Zt���qrr��s�:Ix�����/w�Y���o�\5�U�/(I������G����n#EQJ(R6,���:��.U����<$c����7�y�9w7�_|��}�&�S�'�8S*����������L�w=$��r)�8��m*M���0Rq�D(���{�'��1�x��?,��3<�3�OK�u����|�����c�^��k����@��_�`D����Z[I��*j)#,�RT���Rd�-,��,�-5�[Kef��k	��TQ,��I�'�j���+-�*����Qm�k����E�f�&��i4�d���DA�RI�L��M2KA������Y���Y-6�Y�L�4�T�L�4�&�&
��&#,�����ci4��l���	���kIX�\�ID���f��S��h���32����ZRj2��Mj5�h��56����D�'�6�i4��Q����k��E#��4�E&��BYR�I$k5Il���5��I�$�i�L�MX���`�D���F1$���cy�I00IHHQ�A�'���@�J�Q#���V��#��5 /� ��A��A"���v(�K����I�`a&��(:"*!	��_�1!&�U�(������K���������L{>(��~1��������_w��|&��1pG�?0�����#���;��t)H�&c_�l6C�� �y��n��A��M2c�A
���lP�T\��(1C��L�B�j��Y0��;"�<���#��k���9��������e�z��7��#��_O�O��t|�����fvo�-$�����i��R�C����������|lI2��e$�A.��5���x���Iem����YpXR���/B����.9g��\��7���6r]���P����{��
�(��������jz���������p��y��kO��c�[uR4,��+�����B����(��#@�4�6����tI����Ayb�7C����������o#��l�!�/@�c���(x�=%	��������S9�'�EE_s���^�oC,�"��D4�^�9*�
�g+}]��d�����`����~����Q���yKv��b�m����V�#V���@�(�H!��#F^�
,Gsr��z�� ���*�3|s��:Wj�#jL����GiI���eOnv��|\��f�����7%1����D���yv(d:	�����Cr�g3U�+C&;�br��	r*j#�l�����x3jo/I^��b��D�Cr����M��fb
�����6wBhv�����$y+�y>f������:($��,���4��Z�S<��\�G���T����9�����b
2:rf������1�Z_@���Fzt�����R�N�E.z��b�K%E;p����� h��$)$A!��o/���^����8=�_\���A'HTz�S��f_������m��|
��U���4hX���9r�<�c�����""�=V���!�[��j�eEo(x�f��D9���x7:���������n�qTk-���5�u1SyuWF�WM����_��:BI�hb����Pk��$�-,FM/�$�j�Z�h��V����"#b���l5�����i��G����M�t:O�����y(�G2��dgB�%�l�K��'o1�&-_�0���!��b���N�i�hMH��S7�!X����w�����8� z���3��KNE���U84��Wcw
k�h�	�t�3
M� dj������`�4��C`����!�v�F�:�I���j��&�8�D&��525������2l2��b*LTs!G���X���H�������J}f*�RM��brZ����)�c�\�s������s�Sdt�G�hM��]Lxw�L����cj�����kF���-NS$<��N
N���
����oR}�c_��,B,����=���=���Q�&d�5�����|����$|.{D�g���\J����uV�vI���mc%<k~~oZ�>����'���n��9�F!���<y9�����(�>���r5��;�5*����������|�����A�k\2) ����s�����NE1�F~�dM��;���P���&G��(����g|��:=}�}���;������
;f�W��(�
j>7��0��/�2)��|Zm�#Y�S���C���R�)JKi:#�L���O�����^����I-�v��Qx-]
�p��������������;Q�
�����vxz�	O��������;N���L�������j=D��gk\�<��o���\t)���u3��]=����/m5F.z�k����x��W���@��a����?8N�{�E�tD�o�".H����r�wt���{v���!�k�.����Z�B�q�F�80�3�oz��\<�������!�&;	`��tu�Z����J��������G'1sQ�L��7��$X�����
�Y�''�}7|�Ni�zLI�!��Y#A�rC�~�� �B�*!��AC�&6�6?V4l��
3c ��M��3Y@��P�����&����/-����Wu�bi3"�|U]{q���m p���Q`.0uH��`;����Jj���b�8�g�����?���>��}�>g��'�?0��jM,u8&��nq����##Pt+z��GV9��}��jh����d�{��cqO��i<R��������~",�T�w
�M�+����Q�c��)C�RC��?����o�nk����]]��X�09���6huE]qY�8�f�[�����7���W�1�:���i�S����oZ��f�����9:�d�!��>�C���q���C�9�m�=��t��;|���r�����7��5�l�o:�x�q���|x�>��QP?j��������.<2m��6v����Lm2�ff<�p1��>o�(����,��sM��-��J��f��[������!|�����V��I�d���a$�{y���<qI���q���u����%�N����������EUUUUUUUV������o����h���f��D�,�9B����L����[�a�Kh�nq��&2$��H�:c
:m���1pb��N����w'd���w���f����e(vA���sf�����)d$��h+�xr�6-�P��<h%��l�Lck��C��'6A\\t�\uC���z�#���������&��	n��I��h���3m��7,�����
�n����s��k��{��A'iC��e�!��� >�r�V�"���<��j�!�����N
�����c��3���>=7��Hg������{���`o���8�j
$���h\7�}�H�'Kn���z+�8�����v��|�:%�9����eml2d�.��\6����Q�wpy�r��=y��'��x���D����g���JE?U�U�9�3��>��Sfk|�X�!��O�;�u����Q������vq��W����o���&��x�i
H�
����4�����1�M��Z��<��,�o:��f9��pnZK��5 �c���,/��[���D�����@�~�VC��������80���{�1\\ag�������q��i-���%z�����eT��Zz���������{^h�\��gS\�����"�.�������0DW9���U�>�+w���|�2���6����^������N���&b9����]L����2�%�7�Js��[�r�����L��W=L��$$��3��T���7k�^,��x}�����x�R������'K5�5����;��%��0�����?�+Cp��!�����L�O��j�5�`�w0�}������Tprq���
����!��Vo����!%���iD:]:���X��n�70�����OR����$�j�K����7�3v�����Q���*i��	,��G<EgO�U�C�vEq�t�v���P��������]��S�����S�.����S��vsfGkP��^��"��T+r ��1D$��>��������.g��]r\pJ�0}���7,q�
���:�����U5��o�f�7Z���S������c�����2�7��_9�s"��wz*cz�<�o�6u�;�������,��t��tOx�Bu������4w�/j�1F�W'�+!�7��oa��G�3J#6�s[���7���|1��q��i��5�r��n�S�s�H���*l����0��Q�|�$�7���'�a�P _��� e�G�~-�v�����3���������P���_�_�����w����n#�,L>w_��#��o�Xl�S D���o/Cy7��z����G���8MR�3�������,�$&����I��`�>GyCw�O�D���
I�3���"FL��^���L^�6(k#�f{�=���m���# �*�"f�F���������� ������#�&z8�]u����:fQ�4�����bN�L4;Q0h-�6�s.{~9�����C��<�`6��[���|^�<g��r���Q��f��!�D�{����$qgA����&m�	D�)�b���Bo��##��m\���zx�v���Nl#�w�c�jew�j�I�"~���iP���� �2���v�X4q�9�D_K���Y���[� ����B�v�$"N�/�6����v�W��M���r;�� H������$�g�
J���Z��8�`���)��;�n�8=
\3����=&r�������#cc����qz����z�bc%c��	�,��0tfAa{k����A�4��������f�Nz�%rW�rX�s���;m���T�?���D�2�����RP���j��(D&�o	qP�)!������#���D�����������I�_���[J^�<u��	8������KK����a&�x�/���x������������2�'2i:P����Z�;@���8�&L�� ��U�^�G��T:������+T����m�tTpH�<Q�M�^N�7t��3�����o��nR�*��b�%l>QSgvD�$|�fU#����J�8�0��3\���l{&k�C"������=�M�s�|�{e�Vj$w�J��u���wE�,�����#�]���
k-]���lf4z����{%�JC�GIzk��}��8@��/#	�S�s�������G�Q0�#�o=���������BH���K���W��Y1�!�k������29��#���4��H$��Z�����{!�������4U4�gH�F��J����B�s�y�v��?a��.���P�;���N;��y�Z���0�(�H��s~q���0�go�O��aN������
&����2@���l#����;E�+b���*�MOj��p�����p1]�"�$0�1"��p%��v�y)vv��p�m���1C	]!KUS�k���s����DO�@��Ow���=u�$��fVt��&��<���p�$�����>�����P�?�}K��;���p%�x _����#�
��	����D����b�LN�R�=�9x'������������x�t�9i�������'P�V��'ztG3�C��m�'������t?(��4�<|6�-9���Zvj���y��'�8��?������m����Ay���p�O�#�����������M�6��b�#�?����>�^��q��?��������%�s��/!�	�b�^d��r���OWH������tp�US�Rp����3�s����{��G��������ds�W��H����Ji(�����8��w5�3<_����|8�;�Hwf��q�+;�3*?!5�.���\����M�Taz%A����A���M�s�zZ�c�f�������>��H~�+l~��MM�CP���6V���>/
i�q��L����^����I��J�U���\�4f��1<�'[7�8w���V��@����,���k����$N$���}0vGne=�+�"��HH�;8�W�;��Le1b�fL;I?Ll��������.���(�5�O�������C<��E_��M�����cr�?�+���4�����<49������h�#.����S�q�7���;�,���C���Yk�������`�c����fkj9j�xE'��	���
� ,@j�y��X���5l��r6<%��]�H �#��0��L�-z)��!ql�?���5#�E�:2��+�\�|�_�W���hR�,Q��u�:s����o�[k63b���n"�x6�M���~���^�=d}?��v�]�A�KT8���F�Sk��4������]}��^�������#�kz�C������yp`�H����.J>�p���cG����f��z�U�`�����r���fTp�=
��SX���1'y���~{�=���sr��@�~R]f0E�����8��EeV�o���ra�s
F{�C7����
���/B~���Hz.��}'��>�����~��������cM��~�F�Mq7 �x���M���u�p��6wa��q\E"/
q#� 0����j �I���`�5"���;������KVL��4N�F���:�{\u������O����&�A�U�&2;Bmb��������!����
x�HZl�
s7~���h��gr�N����"x�������z�a���=%���Z��C����?=����|�����{��pp�x�c���X�?D�V�z���V���j�3�������r'�k�����t��l��������_���4������!��/��|��I��[�i�&�-9���K�(���+���mRx�M�����N�(������A���[���XA�/�N��J���JH��b�?ZV����~R6�:$G�<�-3�z/���A����K�dJ��H��X��	�k��3�R/�����1Cb8�!���;��g8�������Id��
��~��?[��~w�6���=
�t��X�q�
`.��s��Ga@w�%�H��ZO?�p��1�a��g��{>��=�P������7�0��{Nt�KmI�X�����Nop���1�p�����*dc�X�e8cWY�'���	dYD��O|���Q<��>�����);�����|S���2-
�.a�A����[���8��+�w�=�����/si==�������'�<�g������h��{���T��T?1b�-"������Q��0I�;�F�(�p��u�QU"��1i����i�j���#Y<���w����_)zi6�vd��,��i�NI��D�_l��c\��rpm�q�T�����1�>����$;Vh�������Gp����9x�<�"7��:��(r)����ca0b��u[���:5gh�j������o�cq�tX������}�0�5�TdK��_U<���dT���zy'��S��	i`���
�����Qbn���k`4H��vy��}��|�=�!�L�b���
��}tev?��(�d/����y0���4(����3bLI����tp����9H�,���}j*R�a�N�dN�|*�Qi4�����Y=��-]|�MV�H����M�_@��H��#��vxf~`3 ��z=�3��b�~fc��H���
i�E�,7�;��%��4S� ���p��'(�	�����t(Aq�^
��|zh�������7E��<�^�{���s��[����ez5'�������(R�>q���4��b�������RZ�����O�}J�8?k�#�6
�h_�ca����c��'t:}C��n�/`g�.''�+����7�����"����~�G��O��R�����<Q�������t_K��3va*�i���tOJ�Mvl����;e��cTL���htA�J�0e�}�~/��5W��f�����nj7��Y��nl��[�f��m�s�{���Sn���Q��X0v�}jsV����UT����'b�G���������9�����!�%��:/$�2O���@��R���	��*��E�*"`**���������Xs�p��i��6�����|h'����A���pu=��H���M�8X[S�}�]l������T}s�V����y�b)��_�MG���!K ��6U��A����;�O�� ���<Q��7
�,����0��WE55�B}]W��#��|<�$���z���p���:tVGy#��c�%�5��������!��@>���L�2O����uV��d�-�����R�>�ak�}����n����Fy�A�L2G�X��[CO�;'�'�CO����o����u���>	����Y))�=leJ��=3�������N0�&s�������v
Eb�d����L�+m�
rqd�G�TU�Y:j��?������{��x����m^�������O5��s�*5]e���7i�
a�u��5c�%�>��^5�w�Z(�7��.J�*8G3
3�e�/�� �d��L��/7g��]�0�iT8���O��`#9p�o����.���d��"Y-G�US�����OI
mQ������I��rF����7��rt>[4P��]~�+_��b��'xqxx���'y���r�O�%�gr�c��a��f�Tm�~/�{��X}�W�Q���;��M��:U��
n��?������
4��b�����I1��U__��GH8�����O?��w@����h��K����:�������S�A{�����j	��#�<�C��nCER1IL�=��s$�8�����.'�%�	L�D��?��'������f�kTk�����0$J"�?Q�6�E~�����E�k�1�e^8���nl'�59��+re�V��������������#W�uFY��v�������j�C��T�����+��<���A��M����6l���1���������:�z#�,P�!:�$����'���������2t����Z�M&:&�\����)������w!_[�HG�gY��p%�09��Wn�Zd������4SAAJ���������5L��G?���GL���.����\���_?�L�T�n��=�'����r��t|E�i�T��a�{BS�u���:�D{A����H�y{�O_�&��;�������^��F����������"y�7g������#~�=��97'OF� K�?yK�r~cI��_c?W������n���F9i�O��nI�'��G�nv1��c$��?�&o�+Vf&k	��D��CzJ2�C2Q�5 �7-Q�����|��ln@L��X�4t�
{��V?8A'���6��{	_�!��2�$��>&&/����!@r�&$�"������E�8N��0]B�.�8)��A0O�mM��+����;��TNj�dQC��>�y�����g)��B(L��:vt��\������;��^T*I����w�4|_:7���*�o���L�;Ra9
��K��T>�m���������	�u?h.'HSx���<y����#���G@7�t���U;�����/A�#��(�������L�=��x�z��UOD�a����Y����3P��>�o�f1��ACZelY ���!3H9�T�l.b�[�
y���+K86���bt�[��<���9N#����z���?���s*3��a�*��[FK$b�:k��{�_�0�e?����6����_��u<
����R1\�.TR�*+�r�^Svps
�_V3L���r��9�d�&0�j?nL����h��N�E�r�x7&��$��q?g����j����#;���$0�g���t�x7&���	�-�������������&���rk-F�!�)��p<#V��b���`rb�<��vb��f,�fwt?����;$����~��O�}�'�?�~�?��S�H'�.��U��$���\�5�_����zI����fC�Lc:5���O��tG��;r����N��;�'�dx�w����J�UE*����?[.�Y�V���	;.��h@�$6G���?I����N/��������M'�?��,s��a���������S�v
Jos�wZ�CLF��V����X����-v�J�Y�N�X�S�t���m��!���Q�N)������!��+�-�����\u��+��?�E���AB'��"W�J���bS���R����d�d����8������1Fe)���U�V'���=��u�vE"M�}EF�I�o�����32��@.C�����%6���kJS2}����\����v���#UP#��&7���Go�=� �a?�	��.6�g�p7,R����
ul��+�#aI^sY�c2����#���������mX����'J�cFdq��.�����'6����3������������5����8Z�MZ����RG��������=a�����3��a|N�R�O7�-(N��>[tj ��71@�#���������yy"G0��"���"�����#��L���O�c��vx_��0�d;��C��������Tj�q��;v�R�<$���:DnN�,F@A>�|�����y���������a��{��o��=��OR��k���
;���nC�l�t��~��v���dc�$���5(f������`21��=\>C��xI:_�P��?kI�O��L�;�g����Gtl��	��2O�k������h����u��74%W�/��{
t�5�
M>+Fn;�����0��r�!�,������s��5��^A�<H.x�4�Fi�6A�J7��j3#<�1�>�� ���"%>�\5�0;6���i����W��%7m,���3r����&� �����`p����������Fc&j"K�r��������hK�Ff�n@���*�n9]0����d�3~�HH���W.�,R�F99o���!������0�c����R8�'c��s'�}���}�$��1�j?{�p�=����������q�Xp����N�gN$r�)��su����7�q#:�$�������6F��F�T���*��Cn��=�s�;�Q�4�~� �����X�wO�s���!�22����x1"��b���D!��3-��lY����Hl����6��2g���f�F����yx�CK��J�6�q�;H�4�%y�<8c&L������L��f��L��B�*
����n��������m����^t8m�Lq��vp����Q���=n��w���p�I��<��^kC�N-f���9+�0i�*CF"��k&��������|i�vfY�nF�w���Z�����;��O|����#$���x����+�����8FR�3�R��p3b00�P�h2g`�w�r3 k��8�����t2�' _���k���]2U�;�6���!4�Q���H������1��2
�m��W�<�C�N)��B�1$QD��O&� 	�����F��b	
`���?��z;Nc�c�� ���T�0@�0��b6�4��iG�����d��?t|�Z��]��X�o[V�TK�*�*�%T
�Dn�
�^@�GO�9��Hw@��Jb"Y��Hm��)�"HH��wC�'����D	��dt�\~���g�1$�O���A�:&��~B�f����ag��:A��{d�2N���k�J���� ��nh��9�������F�o}1�F�s���h������t�gdS���?d���zM���S]��$���.��u({Hm�5j���	w�rM:kr�s��l*shLR5@��Y�N�Y����c�3j:1���������<�H�;����1l�A����9�q����-����}(*A�h���d��J����
��>-���Gq���-&%C��d�r*�����s����I�c�"d�y
��HOm��#�
��=DB'����;W����>�wB!���{���y�8M�k�����|��8L.�9(&!�L�f���al�-F��������`���b������=��������q�A@_�rH��y�J�/?u�r5����`����v$���b!S��:4p���e����y��%�@��)������ab6#x]��i���o�_��kd�>i�Y��4�w�!�2n}S&YU[W��s��cI�������:�;#�R;*H���u7�}������?�l�$�r1�R!e	�1>���Ip{��Jm�<��_���������D�B[���;�	�cH5E42p�)���6��s�C��U�EX	��1�|bo�s�]xo�}3��P��bAMe�E�9SD$[	�P�$Pu�����c�x����
�B9��26��S ��t1���o��c����)��=g�$��J?XW�0��tWZ�nW��k"���P��)�\�aq�{{����0�KJ����(%�b)��g#4���H���1&�2���&�����6(�����[��:O����!A23J��ch�����f���*��\xD���c����@��zHsc���CZc��h!������-��"�����8������Ql�MMM��,��5 kp�m����8���4.�;2�d2~�`��m��N�[��p�[#��K��B$J4"x_V1!����"v�$�&�b�<����ti���&[I��x��-���*kC�*a��/m�M�dR��>����9{���M�0Nc�G@��z�8���1���4K��{_L�-=�+|��xbF��n��Q>��T(���\���g0<�K��������@���k��W��ZdioE}�mWJ�u
a&�8�(��c���4.�O�������~����%����T�Y�J�${�>��D}vC�R4|�Uy�;����J�J_1�VHk��iU��NHzIS�l~����@kZC�n/K[��C�PP^#O��`|h�vc���Dl�j�$swC�`B���
�
��Z*��eu,��X���Q�U�8R" ��A����9�l�,�K+�e!����l��t�,��jB�+��'K�����>���m��`x����A�:L������0��0�*�|V�����W{�&tLa������=�xM�RI
#�d�L�����
{N{�N��!���R~e���s# b����d�h*����gk�<�n�q�Bg|;���lFFX��DD�0�lfA�9��������h����)��YH���Z2)Nd�%nI-]�Z�l2�
lFete 1�,��J1S���M�
�f���8��Z1s���C���x��R��*�����2�P�&���������kl��
�g��!#�����N\f;S"�\�
i\����,�����HO)0�H��^!��������#�\��%���#wC�c���4l�rD�y��w+�}�I,�y�:����d�%�62�L�A�qqX,7�t�{�	$H�H�@!: ���jUB�f�n�Uf�e���K�kP�zGh�X�}F*|H�+�FD|��US�+�����7X��a���h���&���������~��G��=�	���IVI��}����c�0��1f*��^�G�`�q��><�z���8:���$<��������H��V����������j�$�����+7�_%�3JI�(�T���N�]"h ���e
F�JQ"%�j��<X������`E
��DJ���\�����"�S*���R4��!��e=2_a}�������Y��]&�i�t�em�Z��������N�F�6=
G����Ef���g����Y�=	��Z���g=Th�P4���H�c���::��<'%��4b+Y��0�~��U%QV#f�'JYGE&%{��zd�v���f2��o/�i� p$��R�1�� z"
HE����u\�X�����n���������C��EA����/���*I��y�������k���#�t8|I�^�|������0Ha
`,�R�P	���>s{�Jk�4I��������kI������7Y]6�������!
	�IB��b�����D�JE���Q*(��c�bH�SB4�����eL
�"JI8H��ED��Qiz'��N��cx�N�G��m��W������s����E;M�=�0�H��q�����G�*��f�8��2�e�J)��U.QC���r�@�JS�<���r�����x�4��n�����#K�n�+j�����qf����J���_7��+��y8��X���=9�|����[��Ve����R�gp�		�^m8.�l�!�9,nL�3��q����/)��������i��UKE�jEr���c��1���oaVkx�x%�O
�#h?��w��n[H�[9���d��)��t�m�	�N@P����9��G/$���4�)�c�9z ���P��U8����U��.S�d�U2^o6-
\iUq�\4��&���]��\����L�eE�hR+�<0���i	3�����c-������&�]*�������t�@��@��q(��	"�AY>Y$��
B�~3"� 4�458�9��.��$��U	��������h���r�#.�����y�6�]��f\N���d�a2F��ySbx�M�1r�����A	��=���X��9.�J(���XF8v|�.���F�����B�[�8���%�L���t����a���f��I����qgYg+9����.4�8�3��T�F�;F���( ��S<��6�������0q*�{4l1�V�l[T�D�T�f��o���7MQjq����vKr�����	���<8��3��d�J}z���k��|��_,jV���X������0sd5���I�rp�m(iTta p%52)�P6
<A-7
d��C��-pI.9LI$�X� �$���44�.}3]��fI����(�X�����Vk
t�m�b����zYB0$&�|�@.r2Ju����O����m3�6d�����sP����,��`��8FD8M�9��#8jM&�1N"7&�R�����L��l���L��rX�f\8�s$�CC$�:���C�.$,@����{8��r�����&���
�b����	�<��cL����&#�@z�M�e=��z��g���b��0�����q��8���j��f<&R��(z�z�	a�6:
d�Ja�rM@!�T��:N7��<���F3����
��Jp6;�m��%~��������H�gh�������Z�������%��MN]L�W�#9���h2�x8q�x�c�[We(�����v����i��+�}���wN''��O?����W��ez��; ;�:�g#)a�JYjB�e�H��__�]�<e���v�M��H���bD�"B�8��y��\|\8t�Zm�d�z�3��[�Hz&��3�o<�{w����o^���������O�y�BH��B�P�N6_lJK�ij�e�4�$�� �����h!�����$��`��$���~���h_	�q�B��7g��O91Cb���f�h�5|
�
4�
�|��N9��F:�/����yZ��km��6������D��3EU������R��I��kc�jI���D�5��W6�
b8�m?|k
�"Q�d�)Z5��F�G[08�����L����M	�+D��I<��r�U�u��M,��Yo/�������h$Bcd���vq�f�y[n�b-	�G�4�y4��C�#�.����������MF���r��[/
�8�����
�8����	S���$��EC�HV���M��(GOX=��4��x�)%�+��t�h�i�zoQ��&���-��n���
e�V�s������a�����|��d*BM�����;9$'�3�0�9�d�~���w��5�\�Y1��:���
�R���
�;�\X��]������vT�����w�x��l8lxAT�D@Gu�_���B�gfEH,N!�0������g�8��|�G#����A�xP�5�u#Q�h�m;����T�bl�	��!0�Gv�'w����0�������h���\sa'��Q���W����w9��y>����#�����
a�:tD82v�[8�"bee��Ozz>=�[7\����8���E��80���8�@��[��1�+L'8�pv��� �{q�$x#���)hyq�!:���Rnk�d�F�UW�2�6��c���G,�n������8�����"CgF�A���SjLn�&;G�1���%7��38��r����gR!r���&�����p���v"6�3��4v�m�M�gD���88�5	;��r5����i��r�D�E�����o]�3
|�T{����+�n���� We�L9�4i��v��~��va��m��n�o4�(�i��u����t�Irp���G4�T�1�a��M���1���eC����%��������r�a0&�����f�6���H���	�u�����a��XF*�(.�L�d�V�E������6�����V��9��
��=���w�<���r�8<�Ldf�t���*�YI�8�vt�15�'8�2������I[n�~���q�;�����ai����
I�t*��R�"�a'����`��q�:��0!7�3�i�x��n�9z@�O��#+\�a73cy�G!��A�"���*�~�Pi��/Q�@����������J��i�3dc2��1�ja�<����4A�������F�0�z)�E<7hz;�Bt�e�CP�Gz,S���+
 �[��i�	�=����#Jw2��6��]SW
�r�j��2K)���{3��%.(t��9;u� �"��u;,�2���y(�\��^�X��2M���=x�y�;5�9���1�P����#���6��`����0I%���WAA
uGA��8�� �@W#�<��M,��M!�#�����+��}6�����r��'�z�U�[0J������&�]���z�Y�����:WI���wn!�T�d�)��H���y�dy�Tf&��\	��$�9�4:((���r��~#����K4;l����T�I�t�9����pO��0���,C���lfGp
�d�"�H�IJq6������N��!��Bt{�����t]�nkbf��R�����lL:m'�B7��V�����nZ�o�*����G6(1\�B��$�F Q�SI��Q\�i���[�2lk��
!����F�uQv��1QEV�q����/#i�o8e	���8�Z1rx+��x������y�I��� �h�8��OH4w4M�3�����q���M�{�h�a�st����wvNa�.��	�s1���5���S��Hdu����Ub�bf����w*#,��$�U,���������T��x��G
��Q���)�����t�o�LC���0��B!c��|�'��"lS������S�@����B/9;T�����,����5M)�ZMkf[(���mJ��T�"P���aZ����J�K$�����������L{���<�M��2t�%�>@��)��53zfd1����y$�K����*��Ob��,�o�?��$�I1�
7Rd$305	��"Y��{�b�'w��j�re���Xl��%���2&�&ODj�4�]���=��;*������xmA�P�6���
��`�a���v����v�5��P���$:�c�mh�9n��{)����c�#R�������Pp���$�5�d���Ad�����P H�m����O�����4�R_�I�"7��)�@���26�����D����e��a�L��w���G����8HV��$�O�T+4�������t��ngh��$Z�i

��M�b��\8/#��A��L�N����^&�'����&�dpN����T�1�2��bT�d��s��<bI_��I��.1*�-T���@KW4z������k��'���@���'��h�hb!�����I��v�;��� ��JT���_���t�=,�����G��h����k,4�1���x\i������������������D���DA�a@D���� (��L�%O��:,�4��z>�>O�\g���g����g��DD%����9�iSgyD�C����������Z���Z���E2Y��Lf�F�m�Z!�?�0o�g��l���_��/&�<�5�,���N�����w'�w��aG-$���$'bW��I2Dbv�k�xQn�d� R���Va����#N��<S���*��I8� �GSN��gI�S�{�<��ZAd����v���h��\gD���R�h���c$��FOd����c����x�������f6;cKT�z<��OOl��nuF��X�����z�Y,KE�S���p�N"����f�$����"�{��bq
��N������G^�U-����K����l����0�\IW�f�_����������s��%���=��W��x��x����bUUa����<`_q�^��D���� �>Fn��C�f�'���\�vrD�����!�(�
N����3�dYQ��wb�s��������4+vn#6U^��=��(�L�jg�B��x��4�%���B��#�`��|w0A]�J%��
u���-3�����n����N�
���9��x�8�4��������8�@��xy�#iP���D��0z�7�L�%X��)#L��:db����=���km�����\�����Bh�}�OvmZ*��;���r�t��C�j��[i7Qa0���]�����J�&T>rV'�)��t95��
�����`X�B�q�������������{:y6�Er������X����~�C���`�a���VB
Isp�5�q8=l=x�
kXD^�1���&��������e����b*�����iX��C������`&a�f"F�+����wG�y�,�7S6���6�.�������������W��?��N�����qR �����X��x�Yt��A�������zm����rK<�����4�����L��Mc����u�������8���bGk�(��(\����r��:���B:������H����I0[C��	�g�NzD����vv����RL�R�-kI��'n��+���s�Yo�����-��i�##d������Y�S��!�<f�)N
R.����wq��N�$��h�A�4��m_�p��|8�� (��t�����1�5����Q�9d�e����Q�����"�2H���*�\	�a�&2��4E�
h�O^^�?�T�7�����Y+����=R��!t���rc
�����Q;��y'���9�@;��D)4%�1���(=G��2M\�����;^u@6E7<�
@�.*O��������!�� ��Y���O�A�0�M���D�~k]�4�M���)0� �TC#�(��_��
�,QT{��I";5 �Nd?OEaQGa]�~���C��Q�C�d�M8<��=��I�����$��J d�����!�C������k�W�.�8�)v����A�jMC���;�EI�b��K��f#Jf��G��p�[C�:BDD
R\��4����?��� bq|���m�\!}P���p@z�D?����T����H�0�|N��~hW�w�.WG	OE"yt�B��)|�/5��(�"�
P�;#��G�FI��ieO��d��
�h�^�eO�`���P��~�#��5��M��nY4�S��+�=xg���Apa��!"�����'�D��h(�Cd���@5��ccg?v��	D���c����`Ncc�?����y���(\��a�L%	6=�a����:�������E�a�FW,diI�#w2��%�6�����%H	�����C����M#0�4K&�a%%"jr`���U0��[���" _\MP���=�e)�gha��Z�m��p�N&��$��{�Rd�FgV5���Q�
��hE�U2�9�R2���b`i&G���^T������Y7N*1��&��bx�I�I�!{�o!]���X���A�2n�96\�q�)���m�h7b���XX���5��II<������ D)K%
D�FqOl@�c�����]��x:>�}Dav0rx�'R�b��G���'���S�!?yGYd�H�#�������1j�SV-����
���=S��9I�|���w�q�z�]*���zO�=��|��0�w��$�(�<<0��'���C��<!�Bc���H�L���8���v�yr��m�j�7������T�*�������aB�v��[Ei�rM�il��j�3i�EG1��rV� �G��$�j��!)�!�iD��E�_�� C��4���D'`P���Sj�'ag����+[-�RYb�i-��6�j�V����;N��i!�HLi��Tm����r7Kl���X��u7OPa�=��������Rki*�&�,�����b�6��E�XD�����8���|�-_~`����vl��-#��DD��;�����'�SQ�����H�����8��k����|3�������<�M���7D�Dw��UET��������,��x��#�(iX��T�i&Rf�����%B%MT��MKLiZL}Nd�����E��o��:GJ�'��-��)������I���*����ZS��,Nk�!��,A$R�,�/?>g��)[�CK�jB�����������c���$T?���A��w�/�1"R��������/��e�����l�����3J�w���k)������&��-Q���/�!� ������#���M9��-�qj�:���D�&6�q$F
�:M��
>z��&T�s���!��Z������5����7����qb��{�%�8�V��C����f���bE��u�x���a1�l��2S"`h�w$���4B�H��}����p���i,��$���e�a�����\5Mk��}W���m!�E����}��c��(�k
[ ���&]<5�;D���I��-�2L�+��,k����J�1�! c����F�_B9�B'���4:�;�Z0�3"�X�������	�`��XdK�������C��yF�����vs/Q����d���X�&h�w[�t�E�]l�$+�uXR�(�m&T��&���3��5��)�T�������*'�p�4dH>�9������>�
B�?���R�Boa&��*a�����C%��N�\$@�V����9��!���2��Mk�g�y:�R���"�r"Z;D�1:s\7G����!�����,�p���LY�b���Q���[���,����'|2
J!��GS��O�������"����8�^�l���O@m�z��S���T2����V��,��)��!�����u�B�y�OI!��Y\�"��rP������s�����
�y�,�(��H��&���	�!���F�$6#�
��?q��������G��mz��X�'��(z~a���y����=����j�<%~�����"�LkT���|���W{�:������[g��d�Rb>{���ll����B4=���r�<�e��.�b54�3S��L����Xd���3�o#A���y���kJ���E"!,�F"��>�K�83���5��������Wv�(��������������8���l��j}�q����	��?��}��D{���m����H�6����e�oV�B�r��+�����&�!���CLp��x3-DFB��]��7&���P�W�B��9��X���m&@�Lxh��Q[���K�(������
���bLfd�w���x��l�>
��|������>$�+�O����EN�?��L���y3���#�Y#p{�Z2T7���m�
�U�H��v@J�� r�	��=x�������%���h��9�����T��p��v3�!������T���! ���;��z���D�8��JP�	����Y+�[E�����"����i$&o����r�����C�#rU40t �wu=��h���N?�����2�4����ZT�j�����6l�*l��Q�-l�������(���l�e&SfT�cZ5MP�N�e���4Fg���������������|��15�c��a��$�=�>j����-�])vCA���
vN8�5U��E�!���_�u�V�5�A������&Sl�I=�6��u���Q(h��Z�$"8m&�'�h�L�sNU��
�,!�u��\M:	���]�ba��W�G�NR �.'.A��
��D��9	����o��<M��SPj
����.�c_3���7W��u8��Z,,K�NY.����=yNl���y��McU�%nkL���K�5�G �6z&kE�`j����z|���_��r{��]�l��wkKJ��h��hN�C���D���=;����(�O�M)�V�x�mM��75-��n�X����&�,����xa�4���'��.��nT�c0����1�r"�p�v��mL�-�F�q�%do���VY
����UmGd}�c�p�N+�����'��~��>�{�l1�����\�}��|�@���Q����(dF!GP��XdO���)4G_l�|�f���7�����q��]2W�jf����%U�V�M/L��w�V��a;�Dp�b6rf��G����&2���nx��r��Z&N5##m��
p$[�'���2�.�L����-j.5�����E�q
8$lN�C)�=��1�������	��(�+V���o�b:1�����-��I�X.61���v����O����`�C�&IdP�<S����>��������.��H�U���e0���O���o�q�X����<G��-�_����E4LDu(`�� ����^`�'	��c^��bd�HR���"I ��X/��N_P���N����f��cT�LV�%�ME���4�U��_��j�~JHn�+.����;X~2[T�lG��9������t��������t��U�c�/
dp-ns���w��*�bL;:�	2X6 ����T"�����(�b
��Z1Bp�&0�kF�������D$�T�����i�l��L���LI�H.H� q�
�Bl��z�m���7c���E��I�|�"ts!��Jz����gG���L(��?����V��7���;�Bv�5�c�}}��:����-�YS������t|���zT��w�6����'������_�|%���{?c$�:�r����$�Y�f"�X<���3�7xp�p�!�l�u�����#�n:��6����D"nm��6����TU6�"MX�Y�T�J]��4A!#�
P���3��N����"BY
)J=�ns��#p�����~9�d��b0��N]k}l|/6y��~���������=x��#�>�:a�c��Y��
XS��\��W�H�S��q����,3�T	��0=��a�������I�T�����$�I�L�vG|unB�i�~��n����,�C�}="��u5�3�j@�4���/b����	���)����c&�QI�u*L���n>=�Lx@m���2�#���D���/a�X*K����4�XC�D!"%����O��w^6i^�>�K�>����6��x�z��{�aH���A	����wE��q�b��,��{T��w-����5���x	��I�8�a�����Ik�Fr�j2r��S'���fm����k[r5���^�,0#"(t�i��$M����4]�q�b
Y&������8e�'^Zix[P�4Z����YM8v���	�f0�P����,��et�@����#�$8��&4�������6�? SS�<�k��c ~eB��������N�w]��K�ZY��q���!���� |S���7�i#m�R-:�fI$���T�%���-��
����4��I�|"��������>���6�?xO�@G�t�x������0���T���O���&��a�C����L��:=_b�V>��d#�t��Rx�x>�?=�J���e������<�4�Q����Z���3��[Y���~�;��x���H;��@�����4�����i&HE��9��������G��	�"hX�����	A#��mg���C#��MM'NHa�H����@8��9'��a��&
�U�����{5���4�8I����.��/���s��d��`��w�	����&�M�l�,��)����
��U�����7�o�.����N�7+j�[T�;7�Hyvh�Zd��G�=�"J,g����0�G�,E(�a�;x��)����IzQD<;s�����b�;�����k�2Z�lh9�53��q��7�7�c
Ke�L��GzI�����BKI��9�j1�nK���
�MNkeI�m����&�b��%���1������V�1�M��V8W�,�dp�9$�����*�"�<9)�MdB{v���SW�U�i��m��7uMZ�F���7�*���]0S,��\y�8F��i90��:�Gc�,i2M��l��fG����^q.���J/
�hJ]�e�;��q���b����b��F�[G���A
	S�������5��������8�
�H�1Y�c�)������tGf���o=����3sN��\�E�U�t��������-��MS,��b:"�J:����v�9�����L�w��K<�����[��?�_���8v�a�f� yB�R�!�bpcU%�aa�(�"�Z�o�(rf���tT��T�?n�i�3�<�5mY�F�ja�0�J�������}���s�;���RY�ID!b�����0�x(m��xtU0Lk01�������"]�1 ��:8
�����p�N����U,�)�_��������o��e����xE�:�C����b�� ,;g�~�Hg�z{m���Y%�loM�cwS�U�5�
5�-����*L���7�a�pq������;���;�1@�A`X�iqc	:fI�f�r�o4�����oX���I��I�-&������Z�t�@����h�Jkpg�m�5cjN$#�{{�����[���|~8�E�#>���>���g�������#SFR�?[5��CF��%�����j(�,���r��(HI dCI
) ��x��(-�H1!��
!��$93�G�S�6�[{x�����U�d�f,�6#.z5hxal�&g0t��0K3C%L��S���F�JwO���2f���e�S"�&w �PJ�6��Jxv���{�
�N�[�8YY��}=gc!
�u���|��2�-2lF&�~�j�V�h��D�0�s)�O>����D�'���K7n�T���G���:�1�;�>x8�/�+?7��cx7X������������6xQ
j�d$60L��c$SZ=�lD�AR���Y:P������&�9�;B^�N�E:�f����:'1�@���3O��k��L�IFT��������DXb7B��`D�,Yf_:��-v�bRL����L�L�(owK��+��0��M������������NY��Mf�i5I!�I�V� �e�p��Z6��(�+K,�Q��$�`E�f8{������wb�����aA�q5K8�!���,#v`�

4YdH�oD���cV�6+���S�WB�
���YR�I��bYF�aUw�u����k����)�!���@i5��vJ[{��(rS����YU����F����vw�Sc�0�a�v���+���0�~c�}�#��Y6�o���n���5�fe\��wI�m�*j�2At�q�-I�������F�p���qni'r5E��mN���ITn���i,s�mgJqa�����]�u�n�����p��T&I�J�8QN����a�HN�<d��v4h������\V�c�������Je��@��'tF@�p���]
�t��0��	�V�z�H���8�v��pM� �c��9�CI��qw��A��"D��8� ����P*(�onY3+3{�R5�2�FL�c�a�KZ�3Fw�+�;��`q��5�����x��7$��q`�e�A�@tLR9RHVVD��e�*)��Dd�4MC�"yM�KJUR�J���aIN��J-F�fa�--T�!ke4��kt�cF�a�zO�����)�RKNDDBrp��������b ����3
$��
{����=z��8'�<�H}��wd�,��Ly#������3!���\��)Q��
��UA*SD�R���$H�*�IJ�@@���D��eS�CR�p�S!��1�|��?�O�E�D�QD���V�V6Se%a�4�VJI�K6�Y���k�j�*Z�40�	#*(�;z<��<X "BiJ@�(�P���p��3t#S�y�hM�c�J����o��,;���Xu/	����u���N�|4?��0�	,
1���R[5��zWM(R��hH����=8	��J��4o������l
t���\�Cyp\�!�>�����Lt�=\���*q�|�0*Ca:`��;!7;����>O���N���KQ���	��f��c������Y^v#��i����������8����G��B�
��Q&(�����P������H�g�bW��G��0�@�v����dX�]�����`$�S�	n4������L��<8Wd���I[8�����f�~����2=����SL������}K#��
2j0��}�
Z""�����+�]�}K�F���$��%�7,JW4��3�Mdi@=������EA9y�*z�	���8AE>X��R���h���njl���N�>\&���b����7C�&	�`�5"D<���)������.��$�%��ya��76CZq��#e.�=�Hb�`�z�"�Tbd�1c0K��XZ�tV�zb2�$)y��(.G�&�&�J)�
l��v����rP��q�("�:�Hv���;�rB<�J�����g��c"}���Y��'Y�����'b|O��B]��3���$�1��>��f�HD1	8�����=Y�xR��Lt9'� ]/���B~�|��t���q�8f�9N����,=cL:718�`�j^�}F=��v>b�q�%6;��Np~}'�(�1�l5�pI�9r��`�;v0�%[��q�\s	+�h�*@P����S�S�X��z��Hhf	"Q�&u�t�p�C��A'�\0����`W
�U�sH�#������X�5	���g�RD@���M����q��Kn�B������Y��I�jZ�xX�5���8M�4���8h��a�������H�N���y}1%9T�}^MAo����}�=������_��W���1%SwO���TC4g�_���$�����
ApM����7�X��c�S����]����KP��g���:/��>��+H��nvF����Ft�+	�Z��_�A�=�N��u�������9b�(
N�@i��C!������!E4UG�$3���?_��Zz������Em�<�&!C����������������"�EU��9�����<��S~B;&y��3i?hHD'�h�%pTE?nS(G����Q��Dq�B
�(�������4������6�p��`2 �(��Axt|)D>o����
�E��� ��_�,RY������?q"!��Q1�X?�����_h�_�����x���O�����]0h��n'bb������pg���LHV�oP��v��/f&.����Q�x�9�((8jc���ALx���>F��%
,�Q
p�L�zX�l���<���M�P�����d^S���kG<� ���>b��>d�t��725+wO�
�w?/�����v�c7�M��w~Cp�}�������P��:Z;��aD������0q���� �LS�h����q�<�hW.�1N9�������Z���[;A#%�8ma3�	&����=�{D	�G�kp�W�s�2��5/
dY52e8d�Snk������N�tl�j���h�.�I�![N5�$�c)������3(!%7�q���lp�!���Z�P��5��d"�	�.$�;(�����p��#�!�"R�p��Srr�11�%L��.�K������E������E��c��l�LXe$�%����V�T�9�8�����,�R��������H(�!z�:Dq03�eS�����Hj�S�n�q�����������$�"���!e�(be�(�Y2��a$��KM�d�9a;y���ex��wC[T�����U�EN���JI��d��I��G)�D��)P�B��(PD?8u��a��CbJ��`f�q�`�M2<������(95:<@�����wr�[�X83��|65���2w��N��p��%��h��(Wm�iY-.���V�K�8���s�f�+kJ�]�V7f��OU8m��it�����l�h�1�����E]oQ��7���c���s�&���S#�����i�[�u���b����!�H����b=���h�{�fE�b%�����\;xkT�p�4U��F=�����Dz�Q�4�|)��f :H�J�0��!���8�e9W_�0t��!���	$�	�bF�7v2'L�����xr���=o���GK#��V�U���jof��[v�ia5��
�CR�|���$d���&��P8��4��$�}�����L�K�T�n{���O�����[������|���\��K��"	.�f��p���a��	�����v���Xbd�.aR��B��>!(E#������E��#��%�>����SFXf�������������v�}��Q�����k|����������M�Y�P��b2V*
��,�E"���M��5R�.�y��!�,>/5;�e������dt���:�e������m������E�W@��OZ���?/���Jh��SVF�MH�	
����x�D����O-W��6�b�P�	JA����������Gr?3����>�u7$���w:Y �I(�
Q�9���
���&iv��
��qSg��d�'d��2jifl�F�(�Q4�&Q��b���eM�R�SJ2��J�,�A!YMM�d��j-6���A�d�@gj��@�r�a����/����
����~|���'F}��jzD|�zz-WI�#��y_�3���n���v'�79�^��04���MjY5MU*��$|Qv�������������I��JH�J:e�P�B��_BH�j�$�qf�i�H��t�E��k�u��]��Tl���!��h;9�@��LX������k&���F(cc-�`�0qMK&�AVJ����F#����-��H'�����*k���""J4�����(��[���<�>��d}q����w
����	E��#������[���M��!����E3�01p�
`D0:Bv!L�VE����������F��Q�
J$IK��%����<$I�?��&�����0P��7���M���:�g��J���q�b�HF�W��S�C~��R{Xc�Y�531:�$���<�X�,��z^���s�!=�#��#�������E���S�u�/(~6Y���M��h���X����tk�8���^
i�j:��<����S���N�����>
����]�^�.��� �\U�����5����$}s'�:��P`:7�ra��L��JkA=&).�s�Io���%M�V�lq�����sOeT��qA����8�t
!�Ly����|������
d]�N�L�'$!e�p
�������=��F?���c��)����D%�������j�iO��yT{�-G����J��"��C	h7����z��e�C���B���=@����z�nV��
i$������Kq�;;k������ �
�y9������M���m���i���JC��6�����f��gC���V�`�J�dOpl����A���::����E�KE����+<D����=`�������g�l��K�%��	9G|8���p����@��OVF�����}I���tS��Z�	,�R$*��M&&oy���{�&�(A����o��e�v!��h �k��tJ�u%�veN���v����� � tmy5K9a�d�.H���y>��D�c���P8��Lb�\���=��aN�FnJ�-m���������='����%�5�5���-����a7��(���j���r���Q�3�S�>����0���!�2�8����HLv�H1M�k���/W��c7�34�����.���L�CKRi����r��\b���1��B
��;v�,U.����C�����I�\�h@8�.X�������+,��)�6lH4�]n�j��|6����w9�%I&O��6�J����{>	^���������=�}tU��.[m��--���*r�T���^��=X5������p_��5�X�]����~}���$��e7���=�v���>�/O���O����G�pgjn&�������~�� �� ����@��X]`�I�I%7Ck&P}b$���)]��<�c�h������n����a�����P��E�N
\������c��V:�0�\�UsZ����x%���4�}��fw�z`A2l:M=59z�'�g��o�-X	�?0dX�rP8�d���2��:���q0��bp�
�z��/8�������G�'T����If<����ZLy�o)�f�1P���j�%,���������.�J�5���ei�����������]�Ndic��[���\v�9��h�h������CO�����6�&�c����� �[�q)�ju?7�m���jb"!�N}�x,8H��Fk�Z�4cn11	T�vH�#�����b�"���������Q�Y�UO�#����V��y�{�za�W��"Ie)�X��*!fipI
���I�R���T
��{Q��RCH��S*%�D��s������i���EC��
a�a1.1�����C�>�0!7�7�23%������
��#�Rc��������
`!:��q�>�b��u�y�������G�jA� S�h���"�Oy��
UB�r��7d|���q���~>+��hS�L6%p%X��(���:�K��Y�g�������rH��y�`Q���;��{
K��:^?3-�N���m�f�_8��Tx�a�6C��]�p2���qX�1K��w�6���Wi_h
f6���2DUK+��aK���:u0������B %!��������G����1�%4�Mc�1�fc�1�d�Lc&2d���z���=`^��)��%�p�
CC��A#C��r�
l
�4��*F���J�4�&;;�O�;��`�c9�
*DC;��F��/��
��N
I�f��S�']�+r��\7^��d�Q	&�*����5�H*����g,r������w�wH�y-K	@��$��#P*s
��S`a�a,�!���u},['44�@�5�@�#^D�'
$5����Cv�iQ�}����$D*����tw=��+8XL��h�Cq; �&tH��rb���Y$�l~�9����u%<�XK��Dd����t��{�_��Ly�n�4�R�h�!���"w���)�O2��������MO�+��h�R���_r��@8{C�i_`��b��t'����&
��0�n�\M��[�O��R>�����7*���p��&���1�1_-��d^a��g>�h����Wg���,���vg;�>��yD�n�R���f5�}X�����~�-(!��#�h�_������;���7�Ma���*j��&���"Y����nr��D��A���q}���"������P�vh���������
(Y5v"U�D-��M8@@�0�I�����CMx''C��p�����t:����O�[���Se�wE: �N���W���?F��H�7��$r\&�*$6j�h�������J`�T���&�I-�0���o�N���n�VZ�ls���n�6ZMk�6h�� ��"4jGRlZE��c�rq��6��:@B��,q1DG%�U��Hl\%����nY��)���6 �NL� �N�9�x��R�G[s,T���/7x�kPvZi��e"���nh�!�"S�c&AQD�Y�,X>���q����tn��K�cr(�Cp;&��� F�'WD#Mum���"��a�R�e�'mK�b����o�!1���:����;C@xq���C���+��[%��-;�@���j5�g0����V�}��4�GD6��g�H�J/E�$����
�d$n`��Lh�g ���	�!���!��V���,}�U��4�Qd�/F;����d�6�hG��� ��6t#N�����O$�z�W�.7N8��#r��I2�=�����q7zh,D
"�������k,��sDV�rs���+���4���7fn�%�nu�d��:w0t?B��d�*t����h��v�������D���e�tJ�`�kz�F�����T!<lA�����jL���MhR�Z)����0���r\��p�sC��HQ�h��!��`I�$#��3�B����B������s�t��}1�A�&�5rQ��j4��w�8�j����;
w,58����OF2��b�
�%>��%�P���DLB�2Jtm	�0rt	!k���H��Md"N�B�����%*Z��YM��c�����#!1	*"��@���T��	����Lo�;T��9�rw���K�����"�L�&��h�qY�h���fth����$�eX-�||�o�Z��,A��,B$D��i[�w�!���P��!��DL8���P������g5j�R���m�^�����GI�?R*�������O_c���8A�����b�:���4��A��^�`[W:�6�Z��$n�Yl�d5���S#c�&�i(#�#�!�
�1�M���d�Y$���,�gG<I������2&���Z-�U��K#Lsm���\��]7n��HK���KMo��O	�T��*��q��1����������H��er6q%6]:c�H�0��)���#F9�I���q!�YmV����0�	�%����-&�W]����7��L�� `�2Ae�L�r�4�[FF�1q�$���zG*��a��NX��!`���u�S�X:���N#����V����N����9��lNTt���.1X�b���h���WX>?����V�����X������/���n62BI|�2�I�V��U�#J��Lll��m*�i2L4�5����t�eF��L����*�����R��vcK��HRz���NA�!�I��k���x!���M���I�?p@��';��z�A88w�:I��������5#���B���nT�y%�ey�j;�J����1!g}��4���`F*p|GOv���g��[��.�r/�����FSx�@�E���r��0!d��4��IRG:S�:�sM1S&:mv���r��9jG.|��j�W�:V�vF����/�NR��;N'#F`|
�7�d����*�&��r���HC+�4�[&����q�cY9���t��65��Bh���8do��
������f2�$d` �\:��U@�J
.G:�/��G(8�/9n�

��!�Y�G���1�4�����v�*��5�)����P|�D�B���P��b��^��m���r���V
�����0��dI��'r���k\�Ul�T��@��#��6OD&�J���
���(�����c,5V�t�r�^�4�%JGA?i��C�8������,�M�{�Or�T6�S�o���p�������c!����G���=p��=�<�����"H|n�m�Z"H��;,8@z�r8�E	O>����
I-�)��`p�&6�(i&:&�5/l8�������T�J���m�5�R��_v��$D�](o���z�������*���S%�NxM�"����t�k�F���[����^�,%�8<6F=n��%]���if�!�������>G�������_q���0��k�L@f`��^��3��"��1�GpS��$J�4�D�� L�ad���M>#���z~u�'���Z��c
��CUS]���?R�c�4������_���1�_;mn��$��L�����b�%��_6���H�2���'����Po��Fm%~{��)F
b��<D�$1��wi���6�"�p+KII�����M�w����U����Y����������;��G��R��ri9(�����i����f�P���Zq����C(df���+y �����qi�l7"��&0r��i�YRio+�l���Gi9����Y��#���Dw:�IS�� ���w�v6Y1�;��:D�DxN�ut�)UU���Cu�����p�-;��2��;��d��5a��c���}0���3�N2H`��T�^_�O��4��j'����IQ��2�hD��:?&?�c�L����!�xkA�.1j�\����mn���������I��pC���<����_�"F(dhd����R;�N]&�y'��6=v$��7��m:�{���O�/�
��\��TOW�n
���A%�$�������00�S����bed#��9+A�;k��<�	�l��=G�1��q<��6^q��~8}Dz���Q��'R�x���b!K=�����e�2~�{�dmn1���nWc,�����K&������M�7J��nc�RW�����9����%�����q�H���&���,3c6v
a��?�$@�,AB���t�O�] 4)J��P'F_g�xm\Y;{sf�2�j�i
48`a��G�.�8�L��a��$~I�f�I6!�����5��S��\
C���=�����K�7��
�?E�?����������uO�����"�7��]���J�JR��X���.&��P��B�����^_����;%�``�a�zC�v�:��{�bi��>�!��5����=�/�~����|O�e�������~����
���(fjUdOZ������r��1N�.	��<N���*�1���-n+]��Hxsc^��v�������mAa$��G$!L@�H�P�pD�@�SNXO�r�s���h�PqyX���\�Q��24c��d��6w�P��hG$Uc�<�v��������\q��`\�0��IV�h�ldH������{oN?}���gE(% ""F"X"$��(%
���24����3� ~y���|w@:��M�2j��|FH	��L3��bv�c!<���h�4DK@�%E�^�#��Y���e��S^/^	�#��]���x�,/{*d�o�~_>�#��z3���5l�K�x���Z�� IrI�l���M�O�	*'�`�_TF b��@0�f2���`���X�:����\r�p �'��VY�dd���1�)���}&��~��[w�l�w?5�Z�0�e���s���#e�^p��a���11�8�i<%>]Z�2xt��?������^��n�x������X��1���"��=giw'���5�Z3+{[��k�3w�,�G^\�������><�p�3~�F�)�z�'N�m��	�6�I!�����f�5tP�~�~�c��q���\��r�1[Md�V����5���j��m�Yb�n�������T�#j�V���3=">��
�;�,9g���dL�"��Bu����R�D~��x��r'��_dvA
n��5$��<��#�B�`�Y�K`����,�k
��B�$�S�ki3�d{d���f��5���(��&:��e�e����!WED��{�m�7p�X���2���5�5�5M��t����1')#�,���o��Z[R������0����6/�fo��������q-p�5��������m�	d�%����7[lS�,�������v��C��M����2ac�-0��[)gh�$;�	�
x��M��h)�D��C�gV�IZz*�![�R�p�F����]i���o�1��g�w��7�0�k���X%����p=���#����8��gA>�Q�2� ����b�J4��O$:�pw��?f���.8����0��	�mn��p;Q�g;��rAN����f+��*����tx�+L��T�V������v�c�L��Tp~����>�gy���#�dw��Z3�cXG��F���i+Fz�;#0�	�����@��+�
��7Z�Y��i�q����F���%���J2���8�H�H��Z"D��Hh���S�gD�8m�n'Pp��t977��
Av��r9�~���S`^}��a;��Z�=��Dc���
����}��>)���BA�15����C?�,$A)*���R�F*&������5�r�uhU���%��.��p� f�"
#3Merlin Moncure
mmoncure@gmail.com
In reply to: Simon Riggs (#1)
Re: Hot Standby: First integrated patch

On Fri, Oct 17, 2008 at 10:38 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.

The patch tests successfully with the enclosed files:
* primary_setup_test.sql - run it on primary node
* standby_allowed.sql - run on standby - should all succeed
* standby_disallowed.sql - run on standby - should all fail
plus other manual testing.

This is still WIP - its good enough to release for comments, though I am
not yet confident enough to claim it bug free.

What this doesn't do YET:
* cope fully with subxid cache overflows (some parts still to add)
* cope with prepared transactions on master
* work correctly when running queries AND replaying WAL
* work correctly with regard to AccessExclusiveLocks, which should
prevent access to tables

These last four points are what I'm working on over the next two weeks,
plus any other holes people point out along the way. I have worked out
designs for most of these aspects and will discuss them on -hackers,
though most design notes are in the Wiki. I'm still looking into
prepared transactions.

Comments appreciated.

It appears to be working, at least in some fashion. The supplied
tests all pass.

At first glance it seems like I have to force changes to the standby
with pg_switch_xlog().

hmm.

This probably isn't right:
postgres=# \d

No relations found.
postgres=# select count(*) from foo;
count
---------
1000000
(1 row)

I created a table, pg_switch_xlog, query several times,i dropped a
table, pg_switch_xlog, table is 'gone', but still returns data

exit/enter session, now its gone. Sometimes I have to exit/enter
session to get an up to date standby. These are just first
impressions...

merlin

#4Simon Riggs
simon@2ndQuadrant.com
In reply to: Merlin Moncure (#3)
Re: Hot Standby: First integrated patch

On Fri, 2008-10-17 at 16:47 -0400, Merlin Moncure wrote:

On Fri, Oct 17, 2008 at 10:38 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.

The patch tests successfully with the enclosed files:
* primary_setup_test.sql - run it on primary node
* standby_allowed.sql - run on standby - should all succeed
* standby_disallowed.sql - run on standby - should all fail
plus other manual testing.

This is still WIP - its good enough to release for comments, though I am
not yet confident enough to claim it bug free.

What this doesn't do YET:
* cope fully with subxid cache overflows (some parts still to add)
* cope with prepared transactions on master
* work correctly when running queries AND replaying WAL
* work correctly with regard to AccessExclusiveLocks, which should
prevent access to tables

These last four points are what I'm working on over the next two weeks,
plus any other holes people point out along the way. I have worked out
designs for most of these aspects and will discuss them on -hackers,
though most design notes are in the Wiki. I'm still looking into
prepared transactions.

Comments appreciated.

It appears to be working, at least in some fashion. The supplied
tests all pass.

Cool

Thanks for testing so far.

At first glance it seems like I have to force changes to the standby
with pg_switch_xlog().

hmm.

You'll have to explain some more. Normally files don't get sent until
they are full, so yes, you would need to do a pg_switch_xlog().

This is not "streaming replication". Others are working on that.

This probably isn't right:
postgres=# \d

No relations found.
postgres=# select count(*) from foo;
count
---------
1000000
(1 row)

I created a table, pg_switch_xlog, query several times,i dropped a
table, pg_switch_xlog, table is 'gone', but still returns data

exit/enter session, now its gone. Sometimes I have to exit/enter
session to get an up to date standby. These are just first
impressions...

Replaying and queries don't mix yet, so that is expected. I'm working on
this in phases. This patch is phase 1 - it is not the "finished patch".
Phase 2: working on correct block locking to allow concurrent DML
changes to occcur while we run queries.
Phase 3: working on correct relation locking/relcache to allow
concurrent DDL changes to occur while we run queries.
I have designs of the above and expect to complete in next two weeks.

The reason for the above behaviour is that DDL changes need to fire
relcache invalidation messages so that the query backend sees the
change. The reason the table is still there is because the files haven't
been dropped yet. So everything you have seen is expected, by me.

--
Simon Riggs www.2ndQuadrant.com
PostgreSQL Training, Services and Support

#5Merlin Moncure
mmoncure@gmail.com
In reply to: Simon Riggs (#4)
Re: Hot Standby: First integrated patch

On Sat, Oct 18, 2008 at 4:11 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

On Fri, 2008-10-17 at 16:47 -0400, Merlin Moncure wrote:

On Fri, Oct 17, 2008 at 10:38 AM, Simon Riggs <simon@2ndquadrant.com> wrote:

First integrated patch for Hot Standby, allowing queries to be executed
while in recovery mode.

The patch tests successfully with the enclosed files:
* primary_setup_test.sql - run it on primary node
* standby_allowed.sql - run on standby - should all succeed
* standby_disallowed.sql - run on standby - should all fail
plus other manual testing.

This is still WIP - its good enough to release for comments, though I am
not yet confident enough to claim it bug free.

What this doesn't do YET:
* cope fully with subxid cache overflows (some parts still to add)
* cope with prepared transactions on master
* work correctly when running queries AND replaying WAL
* work correctly with regard to AccessExclusiveLocks, which should
prevent access to tables

These last four points are what I'm working on over the next two weeks,
plus any other holes people point out along the way. I have worked out
designs for most of these aspects and will discuss them on -hackers,
though most design notes are in the Wiki. I'm still looking into
prepared transactions.

Comments appreciated.

It appears to be working, at least in some fashion. The supplied
tests all pass.

Cool

Thanks for testing so far.

At first glance it seems like I have to force changes to the standby
with pg_switch_xlog().

hmm.

You'll have to explain some more. Normally files don't get sent until
they are full, so yes, you would need to do a pg_switch_xlog().

This is not "streaming replication". Others are working on that.

right...this was expected. less the missing parts, things are working
very well.

merlin