Parallel safety tagging of extension functions
Hi,
I have gone through all our extensions and tried to tag all functions
correctly according to their parallel safety.
I also did the same for the aggregate functions in a second patch, and
for min(citext)/max(citext) set a COMBINEFUNC.
The changes for the functions is attached as one huge patch. Feel free
to suggest a way to split it up or change it in any way if that would
make it easier to review/apply.
Some open questions:
- How should we modify the aggregate functions when upgrading
extensions? ALTER AGGREGATE cannot change COMBINEFUNC or PARALLEL. My
current patch updates the system catalogs directly, which should be safe
in this case, but is this an acceptable solution?
- Do you think we should add PARALLEL UNSAFE to the functions which we
know are unsafe to make it obvious that it is intentional?
- I have not added the parallel tags to the functions used by our
procedural languages. Should we do so?
- I have marked uuid-ossp, chkpass_in() and pgcrypto functions which
generate random data as safe, despite that they depend on state in the
backend. My reasoning is that, especially for the pgcrypto functions,
that nobody should not rely on the PRNG state. For uuid-ossp I am on the
fence.
- I have touched a lot of legacy libraries, like tsearch2 and the spi/*
stuff. Is that a good idea?
- I decided to ignore that isn_weak() exists (and would make all input
functions PARALLEL RESTRICTED) since it is only there is ISN_WEAK_MODE
is defined. Is that ok?
Andreas
Attachments:
parallel-contrib-1-funcs-v1.patch.gzapplication/gzip; name=parallel-contrib-1-funcs-v1.patch.gzDownload
��%>W parallel-contrib-funcs-v1.patch ��yWG�8�7|����O#-�Hl_;��/�Y���NKj ]k�j���9��o-���TuU�"'>�
]������T�����hL�k�{:\.�����7�O����w�G<���@S�;]�������h��6�'�����uZ�����n�����������/���������/�?���y��5�K����^\u�7��Ov��o����sy�Wk\|�?�>���p4]�
�������n/���~v�����/�F�y�>�v]�������w����������P���jN� 6���o��t���r�<L�p��0����;n������vw�'
[U�.�/��r�G�G����i6�:�v���1}:�??]lf3� � ��<<8t��A��t�}�'���?=�uw]��p9�y�b�W���3
�`�Y
����?����[��+g}�-��S�9��;�I$`����/���|'�%c�|x�$����v�"{�9��3[z#�/��t~����1r��7�^��^&����f�I�������k�]8���r9{��?�9��<�tn����h���_xs�+�w!]e�d��M�34G� �����l�{���t2]��f�l�/&���DPt�k����J�
��h����k$�
�����f3Tf�]��R�D�����:����o�@}#�m�5���9��Du������jt�A��������'���i�F8N?��%���������e�!�b���C:��p��V��`lv7�wn�nCE�m��:{��_�Dn������w�{����n����������+�/��gw��9�w7��~4�He�����n`�2�"q{~y��N������}����py��L=���,�H,���5����M��c����^���?\�F:<���X�����.&�����
�<@�/Fp�D,���t6]3���H����:�
7 MYR.��c�:�<�����3�`�o�yss�N�%@>�t���I~�}Y�B����G��b�
cY�0������,a���F����t��@� o�]�fs��T���p���e��t��K
��S:D�3�i�E���@���GWg����9K;>F���qf]��N
V�����(Q��T\�����+;R7�od����
o�V�U�����uN��Y�.�I��)7�����i��7�'���7:J[���Iu�qM:=���;_��:
d q��"<�k������*�����������7F�W�o������
?�-������g�R�wTm���x�3\e��y�{������i0[.��z,_�F�3uNO�M�������� b�w�l����V
)B�����e�!bhs�~�.E�����YOg���7�l������������R8�*-�M^��?�ac\K�2K�D���_�/Gx�v:Yx�������H\��Kho��"oc�4�� 1B�$�#��O�����a��*`���Y|����_�#{�����j4v)�f�w2�N�Z�58�Kh��u�������I����W�Z�������ax������XE�8{�
�������_��v����=�>�������K4,1NQo���~�LG������!�^]��R?�_>�����}��s��2�9.r>�^\�
A���6v��;��������� �E�Ae�^p���*O~T#�#�(&t��ihb&�)��b/������6�C��9%V�R]��0����$�nf���%��n*�t�$��H���H%�D�@�j$RB�F"�X(
E�;����A��{�a[#B��R)��GdE&� )�p<h��� |)(\�6�����������H������V�9w�����rs��r&���`T? �/)�]�0���/�N>mHl�M��-[bK.���@J�b��FB�S���(�@Q,���W���Ga�\��D�Q`���Y?�i|��W����L��!IZ����t�pM���p*���������D�>R!1��DZHM'��H4�<�(j:�2@3R$0�k$N�}�x�o(����� �wRb!H����!2M�l��q���U/d)h��
)�W��o{�>m��71����w�yFf$���[�"bE����r�t�+�p�B ��s����x�+��|,P�X<zFN�b�,�
2������}�w>&p%��� �]����a��������|TK8J�z:�Q�5���G=�!�w>~h1.�7��3?��SBA\R�^8���� ��;���� 9\�`0]1]�g�b�l�;���|,`��;�G<�X�q��B?�G?����>�hg�%U�ExCo4Z�����$���^s�*<O\�u^�`� ;�+b�>�"�����tw��p �b�B�.��!$����t2b���������]�1g;b:�9�z�2`�m�{���|�:J��G?�]��O������G�D=��Z��P�?{+����n�+��|P�X(�9>|����Rgl��x��3'7���C4-�6<E�X�7��09U1��O���T��k�t�q�Lm��RmjS��>�I<xX���I� ��I�x�����O���-.�|*��f�Q,#�l��"��C[}"�? ��<����=�Z�����vT�\Q���*����PU8�*��1�kL6�����'�&�f����t�E�w���1
@G �V%q���q�R��5�M���W���nVh2,6+0��~K&���.��n&�! r�a!�m2� 7�LF��dH��U��{�&�b[���S���o�d�B������d2$A�b2,�`�MF/��������J������������
EEaB���1#B��f$���)Q ��9��-6)<1�?���V�1-����MK�q�JM��!�JL�*: Om�MK/6-=*����g3-Vb����������F-�A�J
����������m
�DaRh�o������,� �X��M��,l�!aI��[R������+5 �s�U����e�
���h�������I�d`������,����f���LDd���
�eh�G�+5����2Y���mHblTwD��-���=��$�����u���d�-�>I�O��(�kk��I/�X&�t���S�$��l���iVj�����B�s�
�sk����+�=�%���la�����^b"Z��J��V�i2O|��i��o���v�H|6K#�q&�b.[nMn�epVn5�s?��v�U�m�[a��%��YcH�3Y;��r���cfW�c()�R���N]�=�K�.��`D����![�~�������z���[���W�������*o�����=��p{AGo 2������eUb��S�t8�2��U�}�S��d�-�L�C�I]R�������j���^�Q� �W��~
���:CK[�'"�� �"�7������� [lqDr���MX�8�����8��_�S]lcsO�1������L
"��r�1e�����0�(g]l�`�
HBH�Wz���
�t�T�F#�B�����5Ve
���h�"+�!+��~���MIz������
L��(��@`mk��g�mMB�+���j��C�Mn�n��W�����q�o�&��F���Dv�0�����&�] @��w���`�MFB�+�d�jy������
�K�<�4��Z7���U�Z7������0o�0��hn�wzVp�ZY�my�h�a���P,k���G8��14(��Q��8l�aI �I�%���)�o������[�%����lKB0Q�R��$�$lH�����,��f�V����������gjD�+��5 ���+3WZ�n6���8*����)��`���3It�
���o������������6�JM��=�U�
������b�o�nP���G��co@T�mmF��b�� OL���2��aQ�oP�i1~�*���=�r9�}��P�f-�����e�T���mm��jfm��H�9����t;��{v��)t�W�O{�^;�+��������y�\zr����B��'G\��4r���I�������`[����}���<A�L��8I���3�S%n�S%�]����Y�V`<X�z.���\����*�h���J�N�{�����T�?Ubj\��Jj5.��K�2.6��Tm\�j���
�Q{�<jbo\�5�f��}�2.]s�"?jR�q�?qR�q�y��j��S��o��H�����{�b���6��'�q���'���Pj13�F���0���Fz(�7an��X�C)��'�C)[k|�J�LP�P���J���?�R��{D�z#��x�'U~;F|R%��T�b�,�T�n#���
l�L#!��*�� �Vj�?���Tj}��Wd�#>���=��W,����K�c�������W${>�bdn��W�35��Xj12V�Tj`�gZd��?��0.�3-��z�����=���E�L�dJ�3-F�$��������-����O�Tjr�]d�=��0?&�X���],mS�]��NY>�"Y.�A;��~�el���.�Z�,���c��+�5���7��d�R�~�j�4O�d�m��~�~�f�������������K��M�LmF��Y�����^����HL�$?��
�<��vG�Hhb,l�HL����������2�[ml�[���d�9�s2���s2[m{���-�q|>'S��I}\��c��L�V'~xF�9��3��><cik��g,����3[kc����}x������Z�B�?CS���,��T}<:y�<"->Q��?1��'j�OLk���?9������M2A�����'j�������,���5��(��|M�����l�sE�c6��������1�CF���Z�d���|�(z��0���3vJy���x���������(F����
�S�a���u8d�������go��?{cd^�go�3/����b^,���������Ex '���*�y �.�@N��I�?�S�U����J��l�UJ{ G�J����1�)�:7����r���zj���0��*����
=��#�;`��#��_���l�qI{}D�����5��>�#���������Z�+S��O�������S:���s���Y?�Sco��N=���3;���j%=���p��Gwl�r��;�����;[kqL���N�����Q<�S��1y���c� O�6'y�G6:��<��?�cipT��X��y���<�#���y3s#?�S���>�S���y��Z3U-�r�������Y��5)V�l�9�=�#���n��!������>�X���Tj[�'�E����Q?�cij�O�X�,O�l��1{�Z�17A�'�3B� �b�2=T!7����2��O��P~*�7`U�O�
�4����,Mc�����8?$�G�����l��RPT+|�3h�Q�9:=�v�����@F���
�k�W�ZG���#�f����}I��g���/�qp�;{���a�Z;���!OR�\��
o���P����jo�1���f���_��p��!2`Ako���������o����g��h�J@�V�l9D�3\e����a �O�y}����4���ax�l�:��I[?l{��l
���������/�?���$u�����z:��
_����`�E���K*��+*�~��W������]g�y��9s���������u�|�,��Go��p�!)�e����;L�r���R���� �
�rwR��u��}sqy������]R�i8?5�o��i3E��������|�W�I�p��|�9us�1
�t��
s��"�W/��:�S_�H�`K�Cb/�%U>����m����xp��F���`1����;�g�t��}}�����F���P������ky�]c����?FF�IB%��G�[���0@�.&O��F�j�Y�'����e������[��3D�8��c���v&����6o�mi&��!ImO�L!!�.�MmFRFI�$�8�Qx!?i��h`���4��!Om��$mU����j�(|:��Q/n> c��&�E
�������mtiijr� i��y��(H���4^�[h.\f"���H8Fg�j�/�4���-�~�}����~��v=+?�Z��l�����6#�>����/O�20�a:�<��k�;�N6��� @���8��V�����f��
�^@���4� A�]a"D{�+C��\BDz����HQ����R����������f��nF)�*E�B���[������R�z��������f��^F)�*E�B���[�z���1��Xu���$�����:3������IT�8�L�-�����r��K��>��P��P-Y9� 3��$+�9$+��
[+YX�����U��B�^P����� �ObUH���@-������a������iEB�
S"�W^B}�R��P�!W���0��DKW����U�4�D�r"�dFhem�I�q��D���[�q/���P���;!�ao���xa]�z�����f�#��09����#�K.9"=:����]sw'f�V����9�,�s��f�8��s�S���L�?���D��fd������� #������{��$�m6I"M3HiW�$���J�%�$��t��26�(�w-��z�w�a�m3�;mX�����y�M���]��KJ�H����~�$�������)�YD*F+S���k��r����|�6��)�U�����$�}6/9�`�=g}�����;���\cH�(z�C��0
�����e(���
f�a���:�5�Q'���Ta����:9�l��ZT�Ynm�������������x�9.�7���/p�ho�gi~��#=d��,�h�&��G��_�#������=�������:� ��N�r����������/_�6LNfF��z�C�a^Wr*�����c��c�)e
<�����������v��%
��JL�Z��F��~L�@8��`�e����� t�w;WH��8_����y�t������/\r��=��m<�S�K�w�t~Kg�+�w�w�wO�����s� �[��s8�_1�[�0��=�N�����w>�{�]:�������i�|��a���|����]�� 8����{E�G���0����������HD���(��9����_G#�hDk�qz\ qL���0�����+qn�������7wg7o�*�ts��g�����W��?�`cDq��k
w���C���$��I�������# y��O,i1�v�i2����H�D&Y2|3
�3 �*����A��@B{�B�W��*�V�<y�'��Gk��������H�4���49��#�D�$ %�$��q�&M�o��I>�J*/�HNp�#[�L�D��G"��S~a ���� �c�r�X���K]��%y����������9��L�����B4BBA6-� i���cY�rQ�`H�>�������}z-Dt���_�/G8[Pf�b�#�/���9&<,�y�)�!��H����G�C��i�[������ ��*�*s�|����+!�P�����+wA��\�7;qY��}���C���������^�����K7�a���7:��K!a;��g�s�~i�<{���<�tw^u�v^�:Q��Op�qT^s���������k��-a��������������*t�w$5J��d��?'] ������F$Rg�Q�r�������|E�t��6[M�������n6�����g�{���fH����f�e��[q�9����7nl��,���zV%2|���� |��d/����l"��!��wV��j9��m��/2:���a��F�3^-���&j�+���w��4�����kVv�w�� ,���������b�Y�7�����<L�����r�� qC�c[����:��� ����������,�k��%t
��F�x��������Q�E�B��6F8^�0NU�M>T2�+1|���G�A����\?;��� b���4��
��8y�d�f�~lA�C��Cb���q3&�w�
7@��H�i���b�V1�^�L#�X�tI�C�.�-MIOj���"`+�B���_�� �^r=f���y��v��C�����6pA���#�R:t�G��E� �����S�� ~m+S�+����w��[�C����Z��w�z�x�������z����C��:��U�C�+dt�q{�������>����B]:|�.���C7"��Q�K�nP*��H7/U q\z�=O��q��c�9���ql�W���z�^��S{u��j�W�Y{�^�^�����2y�����������c��:���s�c�+dt�q{������>�f��3�9v������*���*M\�w���7�u5���������\Z ����.(�O����Z���%��l�����g%���&���+�������3�Y��>��T�/�h��_��
H9 �= ��T��@@��y8P�<_s�q��Qy8 ��
p))�~�?o[��v�����)7C�>��]+�-�j���#�
@�gX�V��� �J��gVA��H���l�����1(`z ���`�A��QP���)���Q�3�$�T������P)��+o�g�p��x��):ep���Hq�~�@�
������^(z}a���[r������P_��9�7�<:�]�d��\��*&�J��>�b��4�
�������0~�������dE]pWB�`![R���
��*-�f)j��w����@ {UO������]}S��J��K/!��X��O���� �J��
� d>�2�L��"w3T:W�_+J���I���������R��A��R�`+���/8U>uI}���5N_l��� �&�3���������X ��L�0��!��t�8��D����8� �jRG:Q���M������c�>U'�S�L;�H�i �h�n���N;���kdR����i���pDA8��Q��B����#��_ep�x�:����%���-��[�y��~�����}�U���7S�(>LW��X��Q��@�=BMS���s�x�r�S�-�4���/<���o��2�SO��b�$���~�W(S?byG#�Iu����pl�V������\���H�)��y�"��M��T�`m�Q�����F����=�[zZ��n`�����:f��>�[|��A�(H��ooA��.���������� x b��JS�J7?$�a���0~�LjN��\9��3�D~��d�aD�m���:�E�W�+�#�������$7i.dP������yR\����r��J������tD�D�����'�+�X{D���{�����z;~"�/
U�+,k��W���DL� �\�����}���iKb���������1���UT.����o/9!C����[C?���h�*���a'OAU��#l�u�j��������h��_)�9X
�y�P+UN645�Y��p624'����SW�[�b|-����VP0So��e����t��_�����qe8
{���u��<��]�>��
*uo�2ZT�9Q��j}m�����bZkw��Omb�6�V��rxo�A8����q ��e������a��a�f|�,�cd���;Z�!���d��f8H�i��A�H$S����W+�<Y(K����������LY�a��1�������G�'��+e�;��D���*`��X�*A��)+�X�W&�|[�^q&���pI�!f�K�Q�Z{|�Q_�E�3��<��"��4DWkt4�rs~�����a����p�\�������zf�g����DB��g�0� /���\�?Yl��j:,�����&,���$�T�q"�������N�B�~'���y�m��D�[�����5����z NPL}����y!A�����{�����*|#f��(���#�5���3@\*n�3�W���jg=�V��[��L��q�3�w=�d����L�\L�U���L���c�0��L�XHft3��f�a
-��Jf6S�Ed2p�/`N��{��r�Y-���������gSa�Bu
�,�b��D�F���i�G�p��l?���)���$7(�E�)g�]U��{�Am��7��*��O�)e_�"�4oP}s��H�y��o�\�3����W,�L3_�-e���9�55���B}Fh�R�r��P1U��$�(E�9����M�������W���0��e����t<v� b����z5<%��1`��F��l7�O3g`Xqw�q������#�iw��������?���u��� Q��#����f6�u]����N����q[���C���]���Cj��t��uq>'����"���`��>�1���f5�G����~� kr��_���y�9�A9�����-��]�x�t>���X�$|���h��
��|j:�|�L� ~���ER�?e���]W
Y��.&8{�T`���u5a�����������={s�c
>��:Q�.�S��B������w�w���+�\W��������N��|}���A�q��%��p�s��]����^�X�*�?�z���E��r,zFc�:N�W;#n8Z���G����!�����:&�v��t�� ���N��1���1���1!�����:&dF?*d���q!Xq#���;6xt�rvs�;��(�0<J��4Q1�^���F���3_��K �/N��3]���a�e�Q���_D���������
��ts��g�����W��?�`rc�q��kw���C���d8�a��',�����xR <��'��c;B������� ��CU�h�$'Y��3��c�N���VV%������d�2��g��h:���b�����K���>���[�� ��wk�_��D�$�1����bB���=���� * o��5����X�R%�h��B�)2��g� %vLXNG�~�p��b�F�UE0���~a��p��0�u��;���%H��F�XZc�-�
R����%��#S��2���~�hX�PR0���l)�3����XS����=m������A��������r{�ErW�J��-
�0 +�zW�-<�;_!��������C�B`rZ�j��G'*FF}��x!�(T��/�A��f��1��u�b��f�|��f�&^LN����=W:��J'�\���+���������]bW�%�eD����������~]�=bW�#f�8u����9�K��d��F� \� *Rg�Q���w������:]8��V�q��;�����M?�d�������b�eqN:�n�\�w�'�co>�}��3���t��aU"���z��'�aL���:�j��"��!��wV��j9��M��/�:���a��F�3^-���&j�x���+���3.^��[ �b��� n({lK1P2R��Y�t<4�Q�o�������b#@�C�FU�V�i����t
����"Y�`q�,Y�Q<���1������X�����3�"(�M�[NQ��%�"��T�.����U�qa�m���pHE�`}1�`6�x�mU%�bVq����Uh���W=��*K'].���KdK�&B�(�HFLx���V�������d���T�'B�D�� ��
��]8��cUA ��?���@t�0��nU �����#]�!�+�n�DW@tm��u �->���
���nk3� �k@D��D\!c ������@����D����
!z��=8��cUA��?���B��0��mU��
!T�C�8Uv���:���E��QD�&��YG����^�(��)���� BqNL
$z��Dt�PH�2q{����H�}�D�����Qe(��6�L0���p� ����ou�!5![VDXmK`��%�!6�t}"��-B�X_t!�S�AD�,�+5�1�`���2x%��3Du4�4A-o�"���PCHD��
��*� �`�!� �BS��M���G��a��2��s-�Ig��z�3b��~���b�����k��l��F���]���D u�oHU��k��XE E�s�z�1�����j���H�!IZ�&a*eB� �h*Xp�m���Nr[�u ?�'��d�9j|�a�X�1���m��Z9��)x��\���9:��^��-1F�"\�% D�<�`067�x0�U�������mM�
#�HjL�A�
&Jm��g��Yj���Pj f��a \U� F.���A�+!���-)(�P��y�y��]��V��"0���r����� ~W�T���d����)J,U���RwRPm%oj�V 2��O��u'� K�3��y�R�!����;��cY��%bO�H�:����mEp����fk�R�G=��duFb�k=�y�q����0F�3�a��b�`���`�-n��+��9��:�� 3�C*�OU�A��i�>��@� m�
�7��i'?6��LJW���7�v��hB�������="�{�!�����3m����Sr=1 �����k��)C*VeOB~�z9F�����������-1�fK�\�QW�;�����/�&�������9�S���b�2���~�W=S��ey[#�Iu��Sp,�V��A�������H�0��y*.��M�T��*��^�]_�@pn�1� ��s�I��k��� Qo���m�X(N��ll"��M�!��,�������A�(g�R��^b���\[.��������)��
��r�����9S�g1�Q�)�t�y���A.����2'X��i��Hr��B%
��7w�[S�e�����`��sU_$?��GB�h���3!(���[�P��%!�l�."A���"������B�r�^!|��0�Hd�4��LP1�&�J�������\����Oj���8 |U�A����o/�9C��
E����z������tT�aE�[����P���l���N��N�y�><�{�
PM�\4W�
��/g������o�)��;T���'BZ�Cg�)��G�� �N��`�N��s�]?u�{�@'�{�����(����y����N����S��[��)N��� 66�?�W2:�w� ������� DTT�Y_��r�)5>v����C��;�De��CF�3<�����a$����r�}���z�0�����d�����Z�,��zB�Y�C{K~�'���f�;��D���*`��X�*Au��)+�X�W&l|[�^q-��qI�!m�Y�q#�a�b��m �(:��Q|u�FIPx/��5:/�`p���S������lBq���s{�%h���J$�� U����H�<W��q>j������8�vz���F�`W����2?��-�,Bh{|Y����f�?�,B}M6!�����W������v�8�&���o�������[�c�,����� {9����s�K�������^��lZ���t�V� J���02���06���a3�i���y�fcS�e�XX�gb�2���0�fX?������l���{�%��(��V:�����.�F���T��P��%��Xn�������������KE��_gH�Uo��uA�i[�2����_$�<���{U������\I0�����U"1� ����2�}�sx+^�s}�_���o��0�t��5{��C��8H�K)_��TyV�8�y���_SN4ASN�BSNtD.�]a��Dbh�(�__F���i4&� �S$��t���������t9sf�v������x��?h6O��C�������]|�������P_�t��#���|����Ij9�W$���.f�k�sg/�J��L��� )G�yko���P �a�v(��63&�+����l!���v��r����o}����
��M�����[��%���p��j��#4�������w�Ga��eQ8^������M�38=�y�8H�y�K��������_�Xe0� ������O�M~o.����zq�i���>�uv�����_���)i�x}vw���h������,��Y<x�������rK�Z|+T�
�����������+��wa]���������9����jD���b����������W�5�~q
��1#��T|���~ha��� ��.�/$y~4�T��fsx���=*OG�����LT6=<���X�Z�X���r�����Wc�4��rM�N0\M��:��j�8��?��r�����{o�|�z5�����������!�����h���_c�wM��;g�Df��^H�������t�X�8��@>` ��'R��h������S���/�u�OQ���gJ�����X
d�����XQ��=<��[��f(�
k$u�e4�Xj�O�bYDR�H��H ^F�D����,hD� ����X<l� ,F��c���{tlj��:�g�h���8$v���1c;��1;�$3�Z�����Y� ���k���
�o6����y9����g��
b�r��u�W���|�I�tu�p��@���3x�|��� �i:"�a6��_�{�q�x�0#�h,&�����1��6@��G���%��� Yud��8*�:F�z�r�2��S���G�H��h��"��������@�#����9�Z�5��,���'?B�F�!����g/�w�:����;$����t� �����b��@)���b#�v�����h��$Kg
m��2�j���bM��8�N�{����������������>���'d���y����Z"K�Y����$z�2y.�X�1��w�����QNz/�����"����G3�=�G�rL~6�,Q�y�������e�H���IlSLX#y7�W������*I����Wqa[�j����c�B}���c4l�|�+��%+���h�����qA����}.vs��=L��q ��l"����[����GHE�3$���-l����&�1�or!���n�|�+�&^<x���s�M���)��M��oV�5B'4u�Q��<������~�E�C��tk]���x��,uy���!/f��C�
WK���d��5%�@�[|I��������q�k�T��
LJ1s;xi�s�#���I�HUi��~�����ZS����Q��7l���L�� ��AW�HU����7�� K�z���Np�\/
T����n�����2��
*��4P-���ht�w{#}�����}���iH�tA������\�"]��f�$~��6�j+��9Db� ���~��iX������Q�>�3�4���>25���6�
q��$+���!c�{/����~0��*+WQ,c��(�p6�h�!�r������_���il/� ����AjB���F���F�g`�$mk;V>rICq�����'���_/��j�}��m'�!�i^|�N�A��a�AN��1lN�V�U'g��c�-���6$�04L�
M��N}�dx�Un/��B�K��)��#^���n���8���z��o���6���Ww��f\���\<�NV����Q ����/���� �)4
�K
��X�Y�&Y_�$�S��)�O0�]�"^4��������}�����:�Q��|%�����p�?���=���:10�m��t�/��Jh�/�DA�t&����iL����;2� �a��$\�uk���0$�=��+B����_��?�q����������xdh���;���dH�
7���/�r.V�,
k��_�vd��� d,���z{�3�����Lc�= ��������'$����X.+��V�z��� ��8����%�,W�h�W�7o�o�w�w�������������h��?,|u}yyF�����pW(�;
.Xc���c���_"KL��~�����
�v7
��r�Gwl�B�r�C���q�l�t!��b���
qd���4�<�K�o����%�|Y�>����s8���.1�A0�,�R�::i��������sv�p���w?#�IpG���_^ �����goE����G�z�������+�,v5� ��B��>�:/cq�(�-Rzw8t������}�;�UG�-����l����$�����z �3����<hT��Tp��`�N��pR������py�����-u�4p�����?�EB ��B�i?���W�o�R����N�����7�I0�t&�G�]?'|BaPX�����$���K�v�|v���m���������#$Y��(z��%s�Cd.�t.bB��F��5�5DM�"o5[+H�����%�<a ]�u���Ta/�#�(:�&�&z�&��G�X:�4�hKW4E��%��?��H���������k`�u�,u; � �&@h:C�7��>�L�Nh�Y��8kHgT�
��6��F��?-�?�=z �l���Mjv������_�y�k*���,�H-)"������0���'@T�WsJA+�,9g��
|�S�h�<�,.�7�
z���
�w��/�ES��|�b���!^J�F�o���c)�f��5
%���V�zt�f��H�%*p#�y�x�T��A� ��E�T�;*���+�X��.�������P%��9��18�+�
��$4x�������� ?���/���*�T��6�$�qX�Z~* iQ
�q�K���q�v� I��P���Rq�@��������X�(}�:�f�k�_$�0�� ��SC�����APu P�����?*����o��?~���]�#v����?ng_���.���$�����p�������]��v.F>9 ��G��/��l���)o��c��q�p^T�3s"7w{~w������'vw�.b�_�#0oz�]~�������}��7�s0k�����'>u&]Xws��[���k ���b�^���;�����.<��}g��=ABr���:���?�!�8�D
�����_u��~������" ,1bH��9C��=�2�R9A�Q�����G��G9/G���jm�x����9;E�:WBWe�l�zt��p��%������X��i�w�C@�1��Ja@��i����@8O��2_9\a�A[U��V���y����>k�����?��8�{��?-�e?�{��>�r�G��
�5��_�3��2�����|��gVn$�"&�_/%L_��4�PE �A$�W������?��^R�����[����c�-�@�NSs��I����@7��F��U* ���Iy ������Wxp)/���R)=��6�]6��M_
5����&�$@��p��"�
�0Jri: �6X.9&y��$��0irL���K�2J����`�I�!��T���hRe\j�5�2!�T��:U��gO�!��T��?��2��*^RI1�2�:UFuY�q�*�y�*S�z%�3 �$q�P�4�����d��W��~<2&���&���'��D���R�dH��;��T#��3���-oRM"_PR�V����
�� ��)6��n*_/�`2N��+�^������]!�<��o�%b���o9��w4$�u\~/��u\~��uHa��C~ u���e%SL��i����!2J:�D9�Q�$GG�l
Q����$��,*�rI�����\G8L���8�����#l�!l�'l�JXqt����K#��tE)�:��J�a�(��v��j�i;%���f�I<
W#e���F�I<tJm��#�T&�H5�I<RMe�TS��Cj�$����'�dg��I< ���2J�I�a�x���J���e�pJO�((|��"�'\ �o��$�����P��c ��`c� >��'kp���=�[�Z �N�Q�_��*�G�B|��p$�T -����N��t�VF�����=,���Z!� �*�%rF��T��6��'�q��HH�*IH��h��C^"~��=�Y�$����g�{*q�@��������X�(}�:�f�k�_$�0�� �v�U�A��C��C�a�
�8dx��o \x���#q������$�"�%����F��"�hR|B���8�y�8���<�����,�lz6.���!�H��\�F�f&�r�
J=*�?�������T}���������:I��IY��*�1=e�,J�I,��(3��a�����T��T�dInb����ME�&S��B��+���;��O���Py����O���f�d8���F��>�4�O�GU���o��>��|]��z]����*A��q����Ve�G�n{G�����'^k0T0�k)0�+����GU��Q��M��`JFUw����|Kn.�?�������zq�i�y���U�2~x�����v(~�>�6js]��O�c�����VQE����`OG�9+���~\S�R �AZ
�T��x�;9��S ����GR*��J�R����*��o��*��?F��{�����d���6}l�`Vo���&x���lm�db�df���� 9�f��>�� kCd�r�����Gu�@F�����nL��[�j�~$�L��J����[��:j����o���9S���u:���A���3����j���p�W�h����l��F��ndf��P|���j����%"��N/�iE��PL�� I%
`�h*�9q�>8��� ��6�y���������������G���R�����?�I(��i�lfo� �1��6.��������m���;<��o��B��vNz���2����`�����Z�hOr�7����B�����U���_� |�AA�7����g T�k:0�B�q����//p[��%���m��<�� x������.>����x@
����1������H��g�a.1�>ZnP��f��w�;�*�{��'���4����sy}v����?��f��v���I�����^�y�5<�����"�4HR��_�/GA���*������[
z�.��v�������{j9��I%c(��0����+��58����q&�G�JI���I�HNd$'�`��9�r�g�x'�t����6H��K_�Dx"#���ea�m�����L#M���c8:�����0�QA:���C5�
��$H�
,w��2�����/t�0w��6"�O�U$������7%�J�| 4��
���=
�B�j\��bHG=��_����[<�J<�����#��k�X+
&
9��>)�������km�0: V��b6���^� k�&�$� 2^�4�����&��60s����:,fV�f���~��K@d�;
o,�!��j��-���s��8 7��� ����
=����i���� /Oykg���DN��4�c�jqQ�������U=�J^�����?�$�#���h~8W���-*{/��G������p���=�
=lo�uF<'