XMMP/Jabber clients DoS vulnerability report

Andrea Barisani lcars at ocert.org
Sat Jan 23 08:07:52 EST 2010


Hi everyone,

oCERT recently received a report about a DoS condition in Pidgin and Psi,
other XMMP clients might be affected (libpurple and libiris ones most
likely).

The sample message attached to this email causes, according to the reporter,
100% CPU load, the message can be sent by non-buddies as just the target jid
is sufficient.

Can you confirm the issue?

oCERT is mainly concerned about the issue not being exploitable as we
generally don't issue advisory about "simple DoS conditions.

However we would be happy to coordinate with vendors/distributions if you
want any help in pushing the eventual fixes around in a coordinated fashion.
If this is the case, and the issue is confirmed, I'd like to discuss an
embargo date that would allow us to contact all affected vendors with a
patch and request not to disclose this issue in public.

Cheers!

-- 
Andrea Barisani |                Founder & Project Coordinator
          oCERT | Open Source Computer Emergency Response Team

<lcars at ocert.org>                         http://www.ocert.org
 0x864C9B9E 0A76 074A 02CD E989 CE7F AC3F DA47 578E 864C 9B9E
        "Pluralitas non est ponenda sine necessitate"
-------------- next part --------------
Sample:

--- simple
<message to="TARGET" type="chat">
  <body>:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
:D
</body>
  <subject>xyzzy</subject>
  <thread>1337</thread>
</message>
--- snip



More information about the security mailing list