JezK
Edit File: autorules.dde62feeae8b2ac846fdb743773792fc18951fe44a4f17670ab2d9ff5d0f3862.srule
ћ �pc� � � K � w � � � � � � � � � j � C uuuuL|EL������ɘ&˘&��\\w^\w^gJXgJXgJPoJPoJPoKQoKQoKQ-[�Z�Z���Q��Q���'C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C%C"=Ԟ?Ԟ?Ԟ?Ԛ;Ԛ;Ԛ;Ԛ;Ԩ C"C"C"C"C����d d d d d �֕4ԕ4��UCaWCaWCaWCaWCaWCaWCaWCaWCaWCaW������� �� �� �� �� ��B��������7��x��x����&��?ˡxɪsfϸ"��l��n��s��n��|��u��|��f��b��|��v��Fȩέέ�%�*�%��4��;��4��;��4��;��4��;��4��;��4��;��4�;�4�;�4�;�4�;�4�;�4�;�4�;�4�.�!�.�!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.��!��.�4�;�4�.�!�.�!�.�!�.�!�.�!�.�!�.�!�.��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��6��9��6��?��0��?��0��?��0��?��0��?��6��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��%��*�%��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��6��9��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0��?��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*��0�*Üh��H��H��H��H��H��H��H��H��H��H��H��H��H��Hīīī� Ԭ Ԭ Ԭ ��ӻӻӻHī̫̫��=b(?b(? 8�O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��O��