Gajim - 2014-02-28


  1. bot RSS: Feeds for Gajim • Ticket #7307 (T[…] https://trac.gajim.org/ticket/7307#comment:2 • Ticket #7307 (T[…] https://trac.gajim.org/ticket/7307#comment:3 • Ticket #7670 (Auto-complete to occupant when entering an MUC address) created problem User forgets who they were chatting with in MUC-PM. analysis User can not find an occupant by entering an MUC address;[…] https://trac.gajim.org/ticket/7670
  2. bot RSS: Feeds for Gajim • Ticket #7670 (Auto-complete to occupant when entering an MUC address) updated Status changed No idea what you are talking about. https://trac.gajim.org/ticket/7670#comment:1
  3. bot RSS: Feeds for Gajim • Changeset [15366:744f04e46576]: get xid for windows correctly get xid for windows correctly https://trac.gajim.org/changeset/744f04e46576f056bea4298fbdc9ed7240cd2e61
  4. Asterix Hi xmt
  5. xmt hey!
  6. Asterix I try to understand why Gajim crashes when exiting
  7. Asterix and the problem seems to be with libxml2mod
  8. xmt Ah
  9. Asterix I did this https://paste.gajim.org/view/e6116030
  10. Asterix Gajim exists normally at the sys.exit
  11. Asterix if I move the sys.exit juste after the import of libxml2mod, it crashes
  12. Asterix so there is maybe an incompatibility between libxml2-2.dll and libxml2mod.pyd
  13. Asterix where did you get your libxml2-2.dll?
  14. Asterix the latest one on official website is 465ko, yours is 4.4Mo
  15. xmt Hmm, pretty sure I built it myself.
  16. Asterix ok
  17. xmt Try the official one.
  18. Asterix 'cause I can d/l it from official websites, but I can't make them to work. the _gst.pyd never load
  19. Asterix I always get a DLL load failed
  20. xmt Hmm :\
  21. xmt I will take a look at it, now that you've identified libxml2 as the problem.
  22. Asterix if I look with depends what _gst.pyd depends on, I see libxml2mod.pyd
  23. Asterix xmt: https://paste.gajim.org/view/f9348960
  24. xmt :S
  25. Vincent bonjour
  26. Vincent I would learn the best way to add a new protocol in Gajim, I guess I have to use a plugin ?
  27. Asterix Vincent: no, just a transport
  28. Vincent mh, could you explain ?
  29. Vincent no way to add a contact list from a plugin?
  30. Asterix Vincent: which protocole you want?
  31. Vincent Skype over D-Bus
  32. Vincent Skype need to be launched, and it could be done over the skype-dbus package
  33. Vincent (automaticaly)
  34. Asterix you just need a server witha skype gateway I see that in google: http://code.google.com/p/karaka/
  35. Vincent thank you, I'm going to see that
  36. enotep Where do I enable carbon copies? I can't find it anywhere but gajim should support that feature since several years now. I am running gajim 0.15.4.
  37. Asterix enotep: preferences -> advanced
  38. Asterix look for "carbon" in the advanced configuration editor
  39. enotep Asterix, ahh... if this hidden place is up for dicussion, I would rause my vote for a more prominent place. :-)
  40. enotep s/rause/raise/
  41. Asterix yep, you're not wrong
  42. Asterix somewhere in account configuration
  43. enotep Asterix, ack
  44. Link Mauve What is the reason for not enabling it by default if the server supports it?
  45. Link Mauve Imo the user should be able to disable it, but by default it should be enabled.
  46. enotep but then again, at least I am not sure how often this feature is used yet. On the other hand... well, putting it more into the view of casual users would make it better known long term. Especially as mobile devices xmpp support *may* be on a rise.
  47. Asterix it's not because this server has the module that I want to have it activated.
  48. enotep Link Mauve, I kinda agree
  49. enotep Asterix, could you rephrase? I did not understand what your point is.
  50. Asterix it's not because my server offers invisibility that I want to be invisible it's not because my server offers carbons that I Want this feature.
  51. Asterix but that's my POV
  52. Asterix generally we are infront of one client, not several, so why would I receive messages on a client I'm not in front of?
  53. Asterix when I'll go to it I'll have to read all messages I already read
  54. Link Mauve If you use only one client, having it enabled isn’t an issue.
  55. enotep Asterix, it is still kinda foggy :) so first, the server you own / use does not offer cc, right?
  56. Asterix right, but that's not the pb ;)
  57. Link Mauve If you use two or more clients, the most common case is to want to keep the common history, but maybe that’s just me.
  58. enotep Link Mauve, no it's not :)
  59. Asterix Link Mauve: then it's MAM, and I agree to synch histories with MAM
  60. enotep but either way, IF the option could be found in a more prominent place, neither default setting would be that bad imho for either use-case.
  61. Asterix yes I agree.
  62. Asterix Not for 0.16 because string are frozen, but that's something to keep in mind
  63. Link Mauve And your parallel with invisibility isn’t very sound, you don’t want to appear invisible all the time just because your server supports it, while carbons doesn’t change anything to your correspondants.
  64. enotep Asterix, how often did users come by until now and ask for cc in gajim?
  65. Asterix 2-3 times from what I saw
  66. Link Mauve enotep, users mostly don’t know this is even a possible feature. :p
  67. enotep Asterix, maybe woth adding a note on the website / docs / wiki / whatever?
  68. enotep Link Mauve, agreed, that's exactly why I vote for a more prominent config place, to make it more known :)
  69. Asterix enotep: if you want to add a FAQ entry for that, don't hesitate. We'll add a checkbox in GUI after 0.16 release
  70. enotep at least this is (or maybe MAM, if this annoys me too much in the future, we'll see) exactly the stuff I wanted since using IM.
  71. Asterix there is a patch for MAM, bot in repository for the moment
  72. enotep s/bot/but/?
  73. Asterix there is a patch for MAM, but in repository for the moment
  74. Asterix :)
  75. Link Mauve In the gajim_0.16 branch?
  76. enotep repository == git dev branch?
  77. Link Mauve enotep, Gajim uses hg, but yeah.
  78. enotep oops :)
  79. enotep I did even read something about mercurial on the website I guess... but... well, I am not a coder, so :-D
  80. Asterix Link Mauve: what in gajim_0.16 branch?
  81. enotep Asterix, the patch for MAM
  82. Asterix it's in trac only
  83. Asterix #7364
  84. bot Asterix: http://trac.gajim.org/ticket/7364 (Support for XEP-0313)
  85. enotep ah
  86. enotep prosody does support it already?
  87. Asterix ho ... but NOT in the repository for the moment
  88. Asterix prosodu 0.10, yes
  89. Asterix prosody 0.10, yes
  90. enotep well... I hope the serversI use get upgraded soon enough to work with gajim as soon as it supports it. :)
  91. fedor.brunner XEP-0313 doesn't specify encryption of Archived messages :(
  92. Link Mauve fedor.brunner, it’s impossible to encrypt messages as it currently is.
  93. Link Mauve The server is doing all the work, so encrypting anything is kind of pointless.
  94. Link Mauve You’d have to do the encryption on the client for it to be useful, but then since the server already got the plain text message it isn’t useful either.
  95. bot RSS: Feeds for Gajim • Ticket #7635 ([FIX] Can't connect to Facebook chat) updated I can't find how to vote and be added in the CC list, I guess it's done since I post this message? https://trac.gajim.org/ticket/7635#comment:2
  96. ilpoht45 @}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--@}->--ॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄॄ
  97. mathieui would it be safe to assume that anyone from jabber.web.id is a spammer?
  98. bot RSS: Feeds for Gajim • Ticket #7364 (Support for XEP-0313) updated Unfortunately I saw your reply too late and managed to crash my machine by using py-compile from the official Python website (luckily I had recent backups). I managed to start the application but it doesn't seem to retrieve history from the server (Prosody with mod_mam enabled). Is there anything you need to click in the GUI in order to retrieve it? https://trac.gajim.org/ticket/7364#comment:22
  99. bot RSS: Feeds for Gajim • Log.xz attached to Ticket #7364 https://trac.gajim.org/attachment/ticket/7364/Log.xz
  100. coyo http://i.imgur.com/nSO5pxf.png ah gajim, how i have missed you
  101. Link Mauve :D
  102. Link Mauve What did you do to end in such a state?
  103. coyo i poked it with a stick.
  104. coyo just kidding. i tried to click this link: xmpp://jojohnon@is-a-furry.org/?chat
  105. coyo it didnt like that
  106. mathieui coyo, but it’s not fatal, so it’s ok!
  107. coyo XP
  108. coyo i lost count of how many popups it spawned after it reached 100
  109. coyo i gave up
  110. coyo i'm just glad i was able to forcibly kill the process in time before it froze my system
  111. Link Mauve coyo, there shouldn’t be any / in that URI.
  112. coyo yeah, i think that's why
  113. Link Mauve But it sounds like a fun bug. ^^
  114. coyo it choked on the //
  115. coyo is it reproducable?
  116. coyo try it ^_^
  117. coyo if i can reproduce that bug, i am a helpful coyo
  118. coyo helpful coyo is helpful
  119. Link Mauve I use a nicer-looking client. :p
  120. coyo :P
  121. coyo which?
  122. Link Mauve poezio
  123. coyo i've never heard of that one
  124. coyo i've tried miranda (never again!), psi (it supports some more arcane disco features, which i like), pidgin (barely supports anything, but at least it's stable), gajim (hilariously buggy), swift (too modern for my taste, but extremely fast and light) and i extensively use jappix and jabiru (web client and android client, respectively)
  125. Link Mauve I don’t think poezio would run on Windows, or at least I haven’t heard about people who did that.
  126. Link Mauve And it’s been two days since I last found a bug in Gajim!
  127. coyo i suppose in theory you could, with a combination of compiling-from-source on cygwyn, some makefile hackery and then using putty to connect to localhost (because native windows terminal sucks)
  128. coyo two whole days?? OMG! @:
  129. Link Mauve Yeah, because I haven’t implemented any XEP in that time. :D
  130. coyo all of those delicious xeps
  131. coyo you must gnaw on them
  132. coyo because delicious
  133. Link Mauve Yummy XEPs.
  134. coyo om nom nom
  135. coyo i like gajim because it refrains from over-complication the gui, it supports nifty unusual features like account synchronization, which helps when migrating to another server (all of the friend requests, all of them!), the groupchat support seems pretty solid, it supports autojoining subscribed chats, which i like
  136. coyo pidgin does not support autojoining subscribed chats
  137. coyo annoyingly
  138. coyo swift does, psi does, gajim does, but pidgin does not
  139. coyo i really like how prosody presents multiple clients from the same account and using the same chat nickname all show up as one account. it silently permits multiple logins, transparent to the chat participates and to the clients that actually support autojoin
  140. coyo is nice.
  141. coyo i wish all mucs did that
  142. Link Mauve Yeah, same here.
  143. coyo for one thing, i hate being bound to one client
  144. coyo some clients support some features, others dont. why choose?
  145. coyo also, i have a multitude of mobile devices, and often connect from VPSes and with web clients from libraries, university lab computers and many places
  146. coyo i dont want to have to fight over a nickname
  147. coyo also, autojoin does not automagically reassign nicknames if one is taken
  148. coyo so far as i've seen, anyway
  149. coyo autojoin is not like irc, i cant give it a prioritized list of alternative nicknames
  150. coyo i cannot ghost one client off to replace it with another
  151. coyo i suppose a client-to-client protocol may, in theory, support a client-to-client negotiation, but i've never seen anything like that in practice
  152. coyo i think i remember being able to chat with myself on the same account between clients
  153. coyo if i can send messages between clients on the same JID, i should be able to send IQs as well, and presence
  154. coyo when gajim isnt spitting out thousands of error popups with no automated bug reporting (it opens a "how to file a ticket" page that makes actually bothering to open a ticket a royal pain. no one has time fo dat), i really like gajim
  155. coyo it reminds me of certain irc clients
  156. coyo there are things i like about irc, that i wish xmpp could emulate, but xmpp also has strengths, which i wish irc supported