Welcome to mirror list, hosted at ThFree Co, Russian Federation.

.elkarteauth.py.swp « Elkarte « Authenticators - github.com/mumble-voip/mumble-scripts.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: bd986cd5a0ace36abe6d9c0df17d0448217f25f4 (plain)
ofshex dumpascii
0000 62 30 56 49 4d 20 37 2e 33 00 00 00 00 10 00 00 ba b1 e5 54 66 af 66 00 3f 0b 00 00 61 6e 74 6f b0VIM.7.3..........Tf.f.?...anto
0020 6e 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ny..............................
0040 00 00 00 00 45 75 63 61 6c 79 70 74 75 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....Eucalyptus..................
0060 00 00 00 00 00 00 00 00 00 00 00 00 7e 61 6e 74 6f 6e 79 2f 6d 75 6d 62 6c 65 2d 73 63 72 69 70 ............~antony/mumble-scrip
0080 74 73 2f 41 75 74 68 65 6e 74 69 63 61 74 6f 72 73 2f 45 6c 6b 61 72 74 65 2f 65 6c 6b 61 72 74 ts/Authenticators/Elkarte/elkart
00a0 65 61 75 74 68 2e 70 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 eauth.py........................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 .........utf-8..3210....#"!...U.
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 74 70 0b 00 7f 00 00 00 02 00 00 00 00 00 00 00 25 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 tp..............%...............
1020 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 3d 00 00 00 00 00 00 00 27 00 00 00 00 00 00 00 ................=.......'.......
1040 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 66 00 00 00 00 00 00 00 61 00 00 00 00 00 00 00 ................f.......a.......
1060 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 63 00 00 00 00 00 00 00 c7 00 00 00 00 00 00 00 ................c...............
1080 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 2a 01 00 00 00 00 00 00 ................Z.......*.......
10a0 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 84 01 00 00 00 00 00 00 ................Z...............
10c0 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 5e 00 00 00 00 00 00 00 de 01 00 00 00 00 00 00 ................^...............
10e0 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 56 00 00 00 00 00 00 00 3c 02 00 00 00 00 00 00 ................V.......<.......
1100 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 92 02 00 00 00 00 00 00 ................\...............
1120 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 67 00 00 00 00 00 00 00 ee 02 00 00 00 00 00 00 ................g...............
1140 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 23 00 00 00 00 00 00 00 55 03 00 00 00 00 00 00 ................#.......U.......
1160 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 61 64 00 00 f0 07 00 00 a0 08 00 00 00 10 00 00 25 00 00 00 00 00 00 00 ea 0f 00 00 d6 0f 00 00 ad..............%...............
2020 d5 0f 00 00 94 0f 00 00 5d 0f 00 00 46 0f 00 00 44 0f 00 00 ff 0e 00 00 ba 0e 00 00 af 0e 00 00 ........]...F...D...............
2040 ae 0e 00 00 63 0e 00 00 29 0e 00 00 db 0d 00 00 8d 0d 00 00 52 0d 00 00 0f 0d 00 00 c1 0c 00 00 ....c...)...........R...........
2060 89 0c 00 00 88 0c 00 00 42 0c 00 00 fd 0b 00 00 b5 0b 00 00 69 0b 00 00 21 0b 00 00 db 0a 00 00 ........B...........i...!.......
2080 96 0a 00 00 4d 0a 00 00 06 0a 00 00 c1 09 00 00 82 09 00 00 81 09 00 00 7f 09 00 00 30 09 00 00 ....M.......................0...
20a0 ed 08 00 00 eb 08 00 00 a0 08 00 00 66 08 00 00 9c 08 00 00 62 08 00 00 48 08 00 00 31 08 00 00 ............f.......b...H...1...
20c0 04 08 00 00 ee 07 00 00 ec 07 00 00 eb 07 00 00 e0 07 00 00 d5 07 00 00 c7 07 00 00 b8 07 00 00 ................................
20e0 a9 07 00 00 95 07 00 00 87 07 00 00 78 07 00 00 77 07 00 00 5a 07 00 00 36 07 00 00 17 07 00 00 ............x...w...Z...6.......
2100 f9 06 00 00 d8 06 00 00 b9 06 00 00 97 06 00 00 74 06 00 00 51 06 00 00 50 06 00 00 41 06 00 00 ................t...Q...P...A...
2120 fc 05 00 00 e0 05 00 00 cf 05 00 00 ab 05 00 00 81 05 00 00 6a 05 00 00 69 05 00 00 67 05 00 00 ....................j...i...g...
2140 45 05 00 00 43 05 00 00 27 05 00 00 f7 04 00 00 ca 04 00 00 9d 04 00 00 69 04 00 00 37 04 00 00 E...C...'...............i...7...
2160 04 04 00 00 d7 03 00 00 96 03 00 00 80 03 00 00 4c 03 00 00 16 03 00 00 de 02 00 00 c9 02 00 00 ................L...............
2180 9a 02 00 00 72 02 00 00 41 02 00 00 19 02 00 00 ee 01 00 00 da 01 00 00 bf 01 00 00 ab 01 00 00 ....r...A.......................
21a0 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 ................................
21c0 20 20 20 20 20 20 20 20 20 20 20 27 69 63 65 72 61 77 27 3a 4e 6f 6e 65 2c 00 20 20 20 20 20 20 ...........'iceraw':None,.......
21e0 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2200 20 28 27 77 61 74 63 68 64 6f 67 27 2c 20 69 6e 74 2c 20 33 30 29 29 2c 00 20 20 20 20 20 20 20 .('watchdog',.int,.30)),........
2220 20 20 20 20 20 20 20 20 20 20 20 20 28 27 73 65 63 72 65 74 27 2c 20 73 74 72 2c 20 27 27 29 2c ............('secret',.str,.''),
2240 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 73 6c 69 63 65 27 2c 20 73 74 ....................('slice',.st
2260 72 2c 20 27 4d 75 72 6d 75 72 2e 69 63 65 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r,.'Murmur.ice'),...............
2280 20 20 20 20 20 28 27 70 6f 72 74 27 2c 20 69 6e 74 2c 20 36 35 30 32 29 2c 00 20 20 20 20 20 20 .....('port',.int,.6502),.......
22a0 20 20 20 20 20 20 27 69 63 65 27 3a 28 28 27 68 6f 73 74 27 2c 20 73 74 72 2c 20 27 31 32 37 2e ......'ice':(('host',.str,.'127.
22c0 30 2e 30 2e 31 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 0.0.1'),........................
22e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 72 65 6a 65 63 74 5f 6f 6e 5f 65 72 ..................('reject_on_er
2300 72 6f 72 27 2c 20 78 32 62 6f 6f 6c 2c 20 54 72 75 65 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 ror',.x2bool,.True)),...........
2320 20 20 20 20 20 20 20 20 20 20 28 27 61 76 61 74 61 72 5f 65 6e 61 62 6c 65 27 2c 20 78 32 62 6f ..........('avatar_enable',.x2bo
2340 6f 6c 2c 20 46 61 6c 73 65 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 27 75 73 65 72 27 3a 28 ol,.False),.............'user':(
2360 28 27 69 64 5f 6f 66 66 73 65 74 27 2c 20 69 6e 74 2c 20 31 30 30 30 30 30 30 30 30 30 29 2c 00 ('id_offset',.int,.1000000000),.
2380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 ................................
23a0 20 20 27 66 6f 72 75 6d 27 3a 28 28 27 70 61 74 68 27 2c 20 73 74 72 2c 20 27 68 74 74 70 3a 2f ..'forum':(('path',.str,.'http:/
23c0 2f 6c 6f 63 61 6c 68 6f 73 74 2f 66 6f 72 75 6d 2f 27 29 2c 29 2c 00 20 20 20 20 20 20 20 20 20 /localhost/forum/'),),..........
23e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 6f 72 74 27 2c 20 69 6e 74 2c 20 33 33 30 36 ..............('port',.int,.3306
2400 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 68 6f 73 )),........................('hos
2420 74 27 2c 20 73 74 72 2c 20 27 31 32 37 2e 30 2e 30 2e 31 27 29 2c 00 20 20 20 20 20 20 20 20 20 t',.str,.'127.0.0.1'),..........
2440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 72 65 66 69 78 27 2c 20 73 74 72 2c 20 27 66 ..............('prefix',.str,.'f
2460 6f 72 75 6d 5f 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 orum_'),........................
2480 28 27 70 61 73 73 77 6f 72 64 27 2c 20 73 74 72 2c 20 27 73 65 63 72 65 74 27 29 2c 00 20 20 20 ('password',.str,.'secret'),....
24a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 75 73 65 72 27 2c 20 73 74 72 ....................('user',.str
24c0 2c 20 27 65 6c 6b 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.'elk'),.......................
24e0 20 28 27 6e 61 6d 65 27 2c 20 73 74 72 2c 20 27 65 6c 6b 27 29 2c 00 64 65 66 61 75 6c 74 20 3d .('name',.str,.'elk'),.default.=
2500 20 7b 27 64 61 74 61 62 61 73 65 27 3a 28 28 27 6c 69 62 27 2c 20 73 74 72 2c 20 27 4d 79 53 51 .{'database':(('lib',.str,.'MySQ
2520 4c 64 62 27 29 2c 00 63 66 67 66 69 6c 65 20 3d 20 27 65 6c 6b 61 72 74 65 61 75 74 68 2e 69 6e Ldb'),.cfgfile.=.'elkarteauth.in
2540 69 27 00 23 00 23 2d 2d 2d 20 44 65 66 61 75 6c 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 i'.#.#---.Default.configuration.
2560 76 61 6c 75 65 73 00 23 00 00 20 20 20 20 72 61 69 73 65 20 56 61 6c 75 65 45 72 72 6f 72 28 29 values.#......raise.ValueError()
2580 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 2e 6c 6f 77 65 72 28 29 20 69 6e 20 5b 27 31 .........return.s.lower().in.['1
25a0 27 2c 20 27 74 72 75 65 27 5d 00 20 20 20 20 65 6c 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 73 ',.'true'].....elif.isinstance(s
25c0 2c 20 62 61 73 65 73 74 72 69 6e 67 29 3a 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 00 ,.basestring):.........return.s.
25e0 20 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 73 2c 20 62 6f 6f 6c 29 3a 00 20 20 20 20 ....if.isinstance(s,.bool):.....
2600 22 22 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 63 6f 6e 76 65 72 74 20 73 74 """Helper.function.to.convert.st
2620 72 69 6e 67 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 66 69 67 20 74 6f 20 62 6f 6f 6c 22 22 22 rings.from.the.config.to.bool"""
2640 00 64 65 66 20 78 32 62 6f 6f 6c 28 73 29 3a 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .def.x2bool(s):.................
2660 20 20 20 20 20 20 20 20 20 67 65 74 4c 6f 67 67 65 72 29 00 20 20 20 20 20 20 20 20 20 20 20 20 .........getLogger).............
2680 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 2c 00 20 20 20 20 20 20 20 20 20 ............exception,..........
26a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 72 69 74 69 63 61 6c 2c 00 20 20 20 20 20 20 20 ...............critical,........
26c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 2c 00 20 20 20 20 20 20 20 20 .................error,.........
26e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 69 6e 67 2c 00 20 20 20 20 20 20 20 ................warning,........
2700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 2c 00 66 72 6f 6d 20 6c 6f 67 67 .................info,.from.logg
2720 69 6e 67 20 20 20 20 69 6d 70 6f 72 74 20 28 64 65 62 75 67 2c 00 66 72 6f 6d 20 6f 70 74 70 61 ing....import.(debug,.from.optpa
2740 72 73 65 20 20 20 69 6d 70 6f 72 74 20 4f 70 74 69 6f 6e 50 61 72 73 65 72 00 66 72 6f 6d 20 74 rse...import.OptionParser.from.t
2760 68 72 65 61 64 69 6e 67 20 20 69 6d 70 6f 72 74 20 54 69 6d 65 72 00 00 69 6d 70 6f 72 74 20 68 hreading..import.Timer..import.h
2780 61 73 68 6c 69 62 00 69 6d 70 6f 72 74 20 62 63 72 79 70 74 00 69 6d 70 6f 72 74 20 43 6f 6e 66 ashlib.import.bcrypt.import.Conf
27a0 69 67 50 61 72 73 65 72 00 69 6d 70 6f 72 74 20 6c 6f 67 67 69 6e 67 00 69 6d 70 6f 72 74 20 75 igParser.import.logging.import.u
27c0 72 6c 6c 69 62 32 00 69 6d 70 6f 72 74 20 74 68 72 65 61 64 00 69 6d 70 6f 72 74 20 49 63 65 00 rllib2.import.thread.import.Ice.
27e0 69 6d 70 6f 72 74 20 73 79 73 00 00 23 00 23 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 62 63 72 import.sys..#.#............*.bcr
2800 79 70 74 00 23 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 64 61 65 6d 6f 6e 20 28 77 68 65 6e 20 ypt.#............*.daemon.(when.
2820 72 75 6e 20 61 73 20 61 20 64 61 65 6d 6f 6e 29 00 23 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 run.as.a.daemon).#............*.
2840 4d 79 53 51 4c 64 62 00 23 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 69 63 65 2d 70 79 74 68 6f MySQLdb.#............*.ice-pytho
2860 6e 00 23 20 20 20 23 20 20 20 20 44 65 72 69 76 65 64 20 66 72 6f 6d 20 73 6d 66 61 75 23 23 23 n.#...#....Derived.from.smfau###
2880 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################################
28a0 23 20 20 20 20 44 65 72 69 76 65 64 20 66 72 6f 6d 20 73 6d 66 61 75 74 68 2e 70 79 20 62 79 20 #....Derived.from.smfauth.py.by.
28c0 53 74 65 66 61 6e 20 48 61 63 6b 65 72 20 3c 64 64 30 74 40 75 73 65 72 73 2e 73 6f 75 72 63 65 Stefan.Hacker.<dd0t@users.source
28e0 66 6f 72 67 65 2e 6e 65 74 3e 00 23 00 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 forge.net>.#.#.................a
2900 20 4d 75 72 6d 75 72 20 73 65 72 76 65 72 20 61 67 61 69 6e 73 74 20 61 20 45 6c 6b 61 72 74 65 .Murmur.server.against.a.Elkarte
2920 20 66 6f 72 75 6d 20 64 61 74 61 62 61 73 65 00 23 20 20 20 20 65 6c 6b 61 72 74 65 61 75 74 68 .forum.database.#....elkarteauth
2940 2e 70 79 20 2d 20 41 75 74 68 65 6e 74 69 63 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 .py.-.Authenticator.implementati
2960 6f 6e 20 66 6f 72 20 70 61 73 73 77 6f 72 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6e 67 00 23 on.for.password.authenticating.#
2980 00 00 23 20 53 4f 46 54 57 41 52 45 2c 20 45 56 45 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 ..#.SOFTWARE,.EVEN.IF.ADVISED.OF
29a0 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e .THE.POSSIBILITY.OF.SUCH.DAMAGE.
29c0 00 23 20 4e 45 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29 20 41 52 49 53 .#.NEGLIGENCE.OR.OTHERWISE).ARIS
29e0 49 4e 47 20 49 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 20 4f 46 ING.IN.ANY.WAY.OUT.OF.THE.USE.OF
2a00 20 54 48 49 53 00 23 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 43 4f .THIS.#.LIABILITY,.WHETHER.IN.CO
2a20 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c 49 54 59 2c 20 4f 52 20 54 4f 52 NTRACT,.STRICT.LIABILITY,.OR.TOR
2a40 54 20 28 49 4e 43 4c 55 44 49 4e 47 00 23 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e T.(INCLUDING.#.PROFITS;.OR.BUSIN
2a60 45 53 53 20 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 20 43 41 55 53 45 44 ESS.INTERRUPTION).HOWEVER.CAUSED
2a80 20 41 4e 44 20 4f 4e 20 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 00 23 20 50 52 4f 43 55 52 45 4d .AND.ON.ANY.THEORY.OF.#.PROCUREM
2aa0 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f 44 53 20 4f 52 20 53 45 52 56 49 ENT.OF.SUBSTITUTE.GOODS.OR.SERVI
2ac0 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54 41 2c 20 4f 52 00 23 20 45 58 45 CES;.LOSS.OF.USE,.DATA,.OR.#.EXE
2ae0 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 MPLARY,.OR.CONSEQUENTIAL.DAMAGES
2b00 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c .(INCLUDING,.BUT.NOT.LIMITED.TO,
2b20 00 23 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e .#.CONTRIBUTORS.BE.LIABLE.FOR.AN
2b40 59 20 44 49 52 45 43 54 2c 20 49 4e 44 49 52 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 Y.DIRECT,.INDIRECT,.INCIDENTAL,.
2b60 53 50 45 43 49 41 4c 2c 00 23 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 SPECIAL,.#.A.PARTICULAR.PURPOSE.
2b80 41 52 45 20 44 49 53 43 4c 41 49 4d 45 44 2e 20 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 ARE.DISCLAIMED...IN.NO.EVENT.SHA
2ba0 4c 4c 20 54 48 45 20 46 4f 55 4e 44 41 54 49 4f 4e 20 4f 52 00 23 20 4c 49 4d 49 54 45 44 20 54 LL.THE.FOUNDATION.OR.#.LIMITED.T
2bc0 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 O,.THE.IMPLIED.WARRANTIES.OF.MER
2be0 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 00 23 20 60 CHANTABILITY.AND.FITNESS.FOR.#.`
2c00 41 53 20 49 53 27 27 20 41 4e 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d 50 4c 49 AS.IS''.AND.ANY.EXPRESS.OR.IMPLI
2c20 45 44 20 57 41 52 52 41 4e 54 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f ED.WARRANTIES,.INCLUDING,.BUT.NO
2c40 54 00 23 20 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 T.#.THIS.SOFTWARE.IS.PROVIDED.BY
2c60 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 43 4f 4e 54 52 .THE.COPYRIGHT.HOLDERS.AND.CONTR
2c80 49 42 55 54 4f 52 53 00 00 23 20 20 20 73 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 73 70 IBUTORS..#...software.without.sp
2ca0 65 63 69 66 69 63 20 70 72 69 6f 72 20 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 6f 6e 2e ecific.prior.written.permission.
2cc0 00 23 20 20 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f .#...contributors.may.be.used.to
2ce0 20 65 6e 64 6f 72 73 65 20 6f 72 20 70 72 6f 6d 6f 74 65 20 70 72 6f 64 75 63 74 73 20 64 65 72 .endorse.or.promote.products.der
2d00 69 76 65 64 20 66 72 6f 6d 20 74 68 69 73 00 23 20 2d 20 4e 65 69 74 68 65 72 20 74 68 65 20 6e ived.from.this.#.-.Neither.the.n
2d20 61 6d 65 20 6f 66 20 74 68 65 20 4d 75 6d 62 6c 65 20 44 65 76 65 6c 6f 70 65 72 73 20 6e 6f 72 ame.of.the.Mumble.Developers.nor
2d40 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 69 74 73 00 23 20 20 20 61 6e 64 2f 6f 72 20 6f 74 68 .the.names.of.its.#...and/or.oth
2d60 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 65 20 64 er.materials.provided.with.the.d
2d80 69 73 74 72 69 62 75 74 69 6f 6e 2e 00 23 20 20 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 6f istribution..#...this.list.of.co
2da0 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c nditions.and.the.following.discl
2dc0 61 69 6d 65 72 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 00 23 20 2d 20 52 aimer.in.the.documentation.#.-.R
2de0 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 62 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 edistributions.in.binary.form.mu
2e00 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 st.reproduce.the.above.copyright
2e20 20 6e 6f 74 69 63 65 2c 00 23 20 20 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 .notice,.#...this.list.of.condit
2e40 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 ions.and.the.following.disclaime
2e60 72 2e 00 23 20 2d 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 r..#.-.Redistributions.of.source
2e80 20 63 6f 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 .code.must.retain.the.above.copy
2ea0 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 00 00 23 20 61 72 65 20 6d 65 74 3a 00 23 20 6d 6f 64 69 right.notice,..#.are.met:.#.modi
2ec0 66 69 63 61 74 69 6f 6e 2c 20 61 72 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 fication,.are.permitted.provided
2ee0 20 74 68 61 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 00 23 .that.the.following.conditions.#
2f00 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 73 65 20 69 6e 20 73 6f 75 72 63 .Redistribution.and.use.in.sourc
2f20 65 20 61 6e 64 20 62 69 6e 61 72 79 20 66 6f 72 6d 73 2c 20 77 69 74 68 20 6f 72 20 77 69 74 68 e.and.binary.forms,.with.or.with
2f40 6f 75 74 00 23 00 23 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 00 23 20 43 out.#.#.All.rights.reserved..#.C
2f60 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 35 2c 20 41 6e 74 6f 6e 79 20 44 65 72 68 61 6d opyright.(C).2015,.Antony.Derham
2f80 20 3c 61 6e 74 6f 6e 79 40 78 79 64 72 65 2e 63 6f 6d 3e 00 23 20 43 6f 70 79 72 69 67 68 74 20 .<antony@xydre.com>.#.Copyright.
2fa0 28 43 29 20 32 30 31 30 2c 20 53 74 65 66 61 6e 20 48 61 63 6b 65 72 20 3c 64 64 30 74 40 75 73 (C).2010,.Stefan.Hacker.<dd0t@us
2fc0 65 72 73 2e 73 6f 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 3e 00 00 23 20 2d 2a 2d 20 63 6f 64 69 ers.sourceforge.net>..#.-*-.codi
2fe0 6e 67 3a 20 75 74 66 2d 38 00 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 79 74 68 6f 6e 00 ng:.utf-8.#!/usr/bin/env.python.
3000 61 64 00 00 6b 0a 00 00 13 0b 00 00 00 10 00 00 23 00 00 00 00 00 00 00 e8 0f 00 00 de 0f 00 00 ad..k...........#...............
3020 b9 0f 00 00 b0 0f 00 00 a3 0f 00 00 8c 0f 00 00 6e 0f 00 00 64 0f 00 00 46 0f 00 00 41 0f 00 00 ................n...d...F...A...
3040 1a 0f 00 00 d2 0e 00 00 a8 0e 00 00 9f 0e 00 00 32 0e 00 00 db 0d 00 00 d2 0d 00 00 b5 0d 00 00 ................2...............
3060 66 0d 00 00 50 0d 00 00 38 0d 00 00 18 0d 00 00 aa 0c 00 00 58 0c 00 00 40 0c 00 00 26 0c 00 00 f...P...8...........X...@...&...
3080 1c 0c 00 00 d4 0b 00 00 9b 0b 00 00 7f 0b 00 00 72 0b 00 00 54 0b 00 00 43 0b 00 00 14 0b 00 00 ................r...T...C.......
30a0 13 0b 00 00 12 0b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
31e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
34e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
35e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3b20 63 6f 6e 74 65 78 74 2e 5f 5f 65 78 69 74 5f 5f 28 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e context.__exit__(None,.None,.Non
3b40 65 29 00 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 e).........finally:.............
3b60 64 6f 5f 6d 61 69 6e 5f 70 72 6f 67 72 61 6d 28 29 00 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 do_main_program().........try:..
3b80 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 2e 5f 5f 65 6e 74 65 72 5f 5f 28 29 00 20 20 20 20 20 .......context.__enter__()......
3ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3bc0 20 20 73 74 64 65 72 72 20 3d 20 6c 6f 67 66 69 6c 65 29 00 20 20 20 20 20 20 20 20 63 6f 6e 74 ..stderr.=.logfile).........cont
3be0 65 78 74 20 3d 20 64 61 65 6d 6f 6e 2e 44 61 65 6d 6f 6e 43 6f 6e 74 65 78 74 28 77 6f 72 6b 69 ext.=.daemon.DaemonContext(worki
3c00 6e 67 5f 64 69 72 65 63 74 6f 72 79 20 3d 20 73 79 73 2e 70 61 74 68 5b 30 5d 2c 00 20 20 20 20 ng_directory.=.sys.path[0],.....
3c20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 64 6f 5f 6d 61 69 6e 5f 70 72 6f 67 72 61 6d 28 29 00 else:.........do_main_program().
3c40 20 20 20 20 20 20 20 20 20 20 20 20 73 79 73 2e 65 78 69 74 28 31 29 00 20 20 20 20 20 20 20 20 ............sys.exit(1).........
3c60 20 20 20 20 27 70 6c 65 61 73 65 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6d 69 73 73 69 6e 67 20 ....'please.install.the.missing.
3c80 64 65 70 65 6e 64 65 6e 63 79 20 61 6e 64 20 72 65 73 74 61 72 74 20 74 68 65 20 61 75 74 68 65 dependency.and.restart.the.authe
3ca0 6e 74 69 63 61 74 6f 72 27 00 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 3e 3e 73 79 73 nticator'.............print>>sys
3cc0 2e 73 74 64 65 72 72 2c 20 27 46 61 74 61 6c 20 65 72 72 6f 72 2c 20 63 6f 75 6c 64 20 6e 6f 74 .stderr,.'Fatal.error,.could.not
3ce0 20 64 61 65 6d 6f 6e 69 7a 65 20 70 72 6f 63 65 73 73 20 64 75 65 20 74 6f 20 6d 69 73 73 69 6e .daemonize.process.due.to.missin
3d00 67 20 22 64 61 65 6d 6f 6e 22 20 6c 69 62 72 61 72 79 2c 20 27 20 5c 00 20 20 20 20 20 20 20 20 g."daemon".library,.'.\.........
3d20 69 66 20 6f 70 74 69 6f 6e 2e 66 6f 72 63 65 5f 64 61 65 6d 6f 6e 3a 00 20 20 20 20 65 78 63 65 if.option.force_daemon:.....exce
3d40 70 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 3a 00 20 20 20 20 20 20 20 20 69 6d 70 6f 72 74 20 64 pt.ImportError:.........import.d
3d60 61 65 6d 6f 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 49 6d 70 6f 72 74 45 72 aemon.............raise.ImportEr
3d80 72 6f 72 20 23 20 50 72 65 74 65 6e 64 20 74 68 61 74 20 77 65 20 63 6f 75 6c 64 6e 27 74 20 69 ror.#.Pretend.that.we.couldn't.i
3da0 6d 70 6f 72 74 20 74 68 65 20 64 61 65 6d 6f 6e 20 6c 69 62 00 20 20 20 20 20 20 20 20 69 66 20 mport.the.daemon.lib.........if.
3dc0 6f 70 74 69 6f 6e 2e 66 6f 72 63 65 5f 61 70 70 3a 00 20 20 20 20 74 72 79 3a 00 20 20 20 20 23 option.force_app:.....try:.....#
3de0 20 75 6e 6c 65 73 73 20 74 68 65 20 75 73 65 72 20 65 78 70 6c 69 63 69 74 6c 79 20 64 65 66 69 .unless.the.user.explicitly.defi
3e00 6e 65 64 20 77 68 61 74 20 68 65 20 65 78 70 65 63 74 65 64 20 77 69 74 68 20 74 68 65 20 2d 61 ned.what.he.expected.with.the.-a
3e20 20 2f 20 2d 64 20 70 61 72 61 6d 65 74 65 72 2e 20 00 20 20 20 20 23 20 41 73 20 74 68 65 20 64 ./.-d.parameter.......#.As.the.d
3e40 65 66 61 75 6c 74 20 74 72 79 20 74 6f 20 72 75 6e 20 61 73 20 64 61 65 6d 6f 6e 2e 20 53 69 6c efault.try.to.run.as.daemon..Sil
3e60 65 6e 74 6c 79 20 64 65 67 72 61 64 65 20 74 6f 20 72 75 6e 6e 69 6e 67 20 61 73 20 61 20 6e 6f ently.degrade.to.running.as.a.no
3e80 72 6d 61 6c 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 66 20 74 68 69 73 20 66 61 69 6c 73 00 20 rmal.application.if.this.fails..
3ea0 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ec0 73 74 72 65 61 6d 20 3d 20 6c 6f 67 66 69 6c 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 stream.=.logfile)...............
3ee0 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74 3d 27 25 28 61 73 63 74 69 6d 65 29 73 20 25 28 ..........format='%(asctime)s.%(
3f00 6c 65 76 65 6c 6e 61 6d 65 29 73 20 25 28 6d 65 73 73 61 67 65 29 73 27 2c 00 20 20 20 20 6c 6f levelname)s.%(message)s',.....lo
3f20 67 67 69 6e 67 2e 62 61 73 69 63 43 6f 6e 66 69 67 28 6c 65 76 65 6c 20 3d 20 6c 65 76 65 6c 2c gging.basicConfig(level.=.level,
3f40 00 20 20 20 20 00 20 20 20 20 20 20 20 20 6c 65 76 65 6c 20 3d 20 6c 6f 67 67 69 6e 67 2e 45 52 ..............level.=.logging.ER
3f60 52 4f 52 00 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 6c 65 76 65 6c 20 3d 20 63 66 ROR.....else:.........level.=.cf
3f80 67 2e 6c 6f 67 2e 6c 65 76 65 6c 00 20 20 20 20 69 66 20 6f 70 74 69 6f 6e 2e 76 65 72 62 6f 73 g.log.level.....if.option.verbos
3fa0 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 e:..............................
3fc0 20 6c 6f 67 66 69 6c 65 20 3d 20 6c 6f 67 67 69 6e 67 2e 73 79 73 2e 73 74 64 65 72 72 00 20 20 .logfile.=.logging.sys.stderr...
3fe0 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 73 79 73 2e 65 78 69 74 28 31 29 00 ..else:.............sys.exit(1).
4000 61 64 00 00 ea 07 00 00 fa 08 00 00 00 10 00 00 3d 00 00 00 00 00 00 00 fe 0f 00 00 eb 0f 00 00 ad..............=...............
4020 b1 0f 00 00 97 0f 00 00 80 0f 00 00 53 0f 00 00 3d 0f 00 00 3b 0f 00 00 3a 0f 00 00 2f 0f 00 00 ............S...=...;...:.../...
4040 24 0f 00 00 16 0f 00 00 07 0f 00 00 f8 0e 00 00 e4 0e 00 00 d6 0e 00 00 c7 0e 00 00 c6 0e 00 00 $...............................
4060 a9 0e 00 00 85 0e 00 00 66 0e 00 00 48 0e 00 00 27 0e 00 00 08 0e 00 00 e6 0d 00 00 c3 0d 00 00 ........f...H...'...............
4080 a0 0d 00 00 9f 0d 00 00 90 0d 00 00 4b 0d 00 00 2f 0d 00 00 1e 0d 00 00 fa 0c 00 00 d0 0c 00 00 ............K.../...............
40a0 b9 0c 00 00 b8 0c 00 00 b6 0c 00 00 94 0c 00 00 92 0c 00 00 76 0c 00 00 46 0c 00 00 19 0c 00 00 ....................v...F.......
40c0 ec 0b 00 00 b8 0b 00 00 86 0b 00 00 53 0b 00 00 26 0b 00 00 e5 0a 00 00 cf 0a 00 00 9b 0a 00 00 ............S...&...............
40e0 65 0a 00 00 2d 0a 00 00 18 0a 00 00 e9 09 00 00 c1 09 00 00 90 09 00 00 68 09 00 00 3d 09 00 00 e...-...................h...=...
4100 29 09 00 00 0e 09 00 00 fa 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )...............................
4120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
41e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
44e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
45e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 ................................
4900 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 27 69 63 65 72 61 ..........................'icera
4920 77 27 3a 4e 6f 6e 65 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 w':None,........................
4940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 77 61 74 63 68 64 6f 67 27 2c 20 69 6e 74 ................('watchdog',.int
4960 2c 20 33 30 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 73 65 63 ,.30)),....................('sec
4980 72 65 74 27 2c 20 73 74 72 2c 20 27 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ret',.str,.''),.................
49a0 20 20 20 28 27 73 6c 69 63 65 27 2c 20 73 74 72 2c 20 27 4d 75 72 6d 75 72 2e 69 63 65 27 29 2c ...('slice',.str,.'Murmur.ice'),
49c0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 6f 72 74 27 2c 20 69 6e 74 ....................('port',.int
49e0 2c 20 36 35 30 32 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 27 69 63 65 27 3a 28 28 27 68 6f ,.6502),.............'ice':(('ho
4a00 73 74 27 2c 20 73 74 72 2c 20 27 31 32 37 2e 30 2e 30 2e 31 27 29 2c 00 20 20 20 20 20 20 20 20 st',.str,.'127.0.0.1'),.........
4a20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4a40 20 28 27 72 65 6a 65 63 74 5f 6f 6e 5f 65 72 72 6f 72 27 2c 20 78 32 62 6f 6f 6c 2c 20 54 72 75 .('reject_on_error',.x2bool,.Tru
4a60 65 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 61 76 61 74 61 e)),.....................('avata
4a80 72 5f 65 6e 61 62 6c 65 27 2c 20 78 32 62 6f 6f 6c 2c 20 46 61 6c 73 65 29 2c 00 20 20 20 20 20 r_enable',.x2bool,.False),......
4aa0 20 20 20 20 20 20 20 27 75 73 65 72 27 3a 28 28 27 69 64 5f 6f 66 66 73 65 74 27 2c 20 69 6e 74 .......'user':(('id_offset',.int
4ac0 2c 20 31 30 30 30 30 30 30 30 30 30 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.1000000000),..................
4ae0 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 72 75 6d 27 3a 28 28 27 70 61 74 68 .................'forum':(('path
4b00 27 2c 20 73 74 72 2c 20 27 68 74 74 70 3a 2f 2f 6c 6f 63 61 6c 68 6f 73 74 2f 66 6f 72 75 6d 2f ',.str,.'http://localhost/forum/
4b20 27 29 2c 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 '),),........................('p
4b40 6f 72 74 27 2c 20 69 6e 74 2c 20 33 33 30 36 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 ort',.int,.3306)),..............
4b60 20 20 20 20 20 20 20 20 20 20 28 27 68 6f 73 74 27 2c 20 73 74 72 2c 20 27 31 32 37 2e 30 2e 30 ..........('host',.str,.'127.0.0
4b80 2e 31 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 .1'),........................('p
4ba0 72 65 66 69 78 27 2c 20 73 74 72 2c 20 27 66 6f 72 75 6d 5f 27 29 2c 00 20 20 20 20 20 20 20 20 refix',.str,.'forum_'),.........
4bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 61 73 73 77 6f 72 64 27 2c 20 73 74 72 2c ...............('password',.str,
4be0 20 27 73 65 63 72 65 74 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'secret'),.....................
4c00 20 20 20 28 27 75 73 65 72 27 2c 20 73 74 72 2c 20 27 65 6c 6b 27 29 2c 00 20 20 20 20 20 20 20 ...('user',.str,.'elk'),........
4c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 61 6d 65 27 2c 20 73 74 72 2c 20 27 65 ................('name',.str,.'e
4c40 6c 6b 27 29 2c 00 64 65 66 61 75 6c 74 20 3d 20 7b 27 64 61 74 61 62 61 73 65 27 3a 28 28 27 6c lk'),.default.=.{'database':(('l
4c60 69 62 27 2c 20 73 74 72 2c 20 27 4d 79 53 51 4c 64 62 27 29 2c 00 63 66 67 66 69 6c 65 20 3d 20 ib',.str,.'MySQLdb'),.cfgfile.=.
4c80 27 65 6c 6b 61 72 74 65 61 75 74 68 2e 69 6e 69 27 00 23 00 23 2d 2d 2d 20 44 65 66 61 75 6c 74 'elkarteauth.ini'.#.#---.Default
4ca0 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76 61 6c 75 65 73 00 23 00 00 20 20 20 20 72 61 69 .configuration.values.#......rai
4cc0 73 65 20 56 61 6c 75 65 45 72 72 6f 72 28 29 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 se.ValueError().........return.s
4ce0 2e 6c 6f 77 65 72 28 29 20 69 6e 20 5b 27 31 27 2c 20 27 74 72 75 65 27 5d 00 20 20 20 20 65 6c .lower().in.['1',.'true'].....el
4d00 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 73 2c 20 62 61 73 65 73 74 72 69 6e 67 29 3a 00 20 20 if.isinstance(s,.basestring):...
4d20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 00 20 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 ......return.s.....if.isinstance
4d40 28 73 2c 20 62 6f 6f 6c 29 3a 00 20 20 20 20 22 22 22 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f (s,.bool):....."""Helper.functio
4d60 6e 20 74 6f 20 63 6f 6e 76 65 72 74 20 73 74 72 69 6e 67 73 20 66 72 6f 6d 20 74 68 65 20 63 6f n.to.convert.strings.from.the.co
4d80 6e 66 69 67 20 74 6f 20 62 6f 6f 6c 22 22 22 00 64 65 66 20 78 32 62 6f 6f 6c 28 73 29 3a 00 00 nfig.to.bool""".def.x2bool(s):..
4da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 74 4c 6f 67 67 65 ........................getLogge
4dc0 72 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 r).........................excep
4de0 74 69 6f 6e 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 72 tion,.........................cr
4e00 69 74 69 63 61 6c 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 itical,.........................
4e20 65 72 72 6f 72 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 error,.........................w
4e40 61 72 6e 69 6e 67 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arning,.........................
4e60 69 6e 66 6f 2c 00 66 72 6f 6d 20 6c 6f 67 67 69 6e 67 20 20 20 20 69 6d 70 6f 72 74 20 28 64 65 info,.from.logging....import.(de
4e80 62 75 67 2c 00 66 72 6f 6d 20 6f 70 74 70 61 72 73 65 20 20 20 69 6d 70 6f 72 74 20 4f 70 74 69 bug,.from.optparse...import.Opti
4ea0 6f 6e 50 61 72 73 65 72 00 66 72 6f 6d 20 74 68 72 65 61 64 69 6e 67 20 20 69 6d 70 6f 72 74 20 onParser.from.threading..import.
4ec0 54 69 6d 65 72 00 00 69 6d 70 6f 72 74 20 68 61 73 68 6c 69 62 00 69 6d 70 6f 72 74 20 62 63 72 Timer..import.hashlib.import.bcr
4ee0 79 70 74 00 69 6d 70 6f 72 74 20 43 6f 6e 66 69 67 50 61 72 73 65 72 00 69 6d 70 6f 72 74 20 6c ypt.import.ConfigParser.import.l
4f00 6f 67 67 69 6e 67 00 69 6d 70 6f 72 74 20 75 72 6c 6c 69 62 32 00 69 6d 70 6f 72 74 20 74 68 72 ogging.import.urllib2.import.thr
4f20 65 61 64 00 69 6d 70 6f 72 74 20 49 63 65 00 69 6d 70 6f 72 74 20 73 79 73 00 00 23 00 23 20 20 ead.import.Ice.import.sys..#.#..
4f40 20 20 20 20 20 20 20 20 20 20 2a 20 62 63 72 79 70 74 00 23 20 20 20 20 20 20 20 20 20 20 20 20 ..........*.bcrypt.#............
4f60 2a 20 64 61 65 6d 6f 6e 20 28 77 68 65 6e 20 72 75 6e 20 61 73 20 61 20 64 61 65 6d 6f 6e 29 00 *.daemon.(when.run.as.a.daemon).
4f80 23 20 20 20 20 20 20 20 20 20 20 20 20 2a 20 4d 79 53 51 4c 64 62 00 23 20 20 20 20 20 20 20 20 #............*.MySQLdb.#........
4fa0 20 20 20 20 2a 20 69 63 65 2d 70 79 74 68 6f 6e 00 23 20 20 20 20 20 20 20 20 2a 20 70 79 74 68 ....*.ice-python.#........*.pyth
4fc0 6f 6e 20 3e 3d 32 2e 35 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 79 74 68 6f on.>=2.5.and.the.following.pytho
4fe0 6e 20 6d 6f 64 75 6c 65 73 3a 00 23 20 20 20 20 52 65 71 75 69 72 65 6d 65 6e 74 73 3a 00 23 00 n.modules:.#....Requirements:.#.
5000 61 64 00 00 5c 00 00 00 04 02 00 00 00 10 00 00 63 00 00 00 00 00 00 00 d7 0f 00 00 b6 0f 00 00 ad..\...........c...............
5020 b1 0f 00 00 8a 0f 00 00 56 0f 00 00 09 0f 00 00 ea 0e 00 00 b4 0e 00 00 9a 0e 00 00 8c 0e 00 00 ........V.......................
5040 73 0e 00 00 6a 0e 00 00 51 0e 00 00 44 0e 00 00 1d 0e 00 00 f6 0d 00 00 a9 0d 00 00 93 0d 00 00 s...j...Q...D...................
5060 6b 0d 00 00 55 0d 00 00 26 0d 00 00 f2 0c 00 00 b5 0c 00 00 84 0c 00 00 72 0c 00 00 34 0c 00 00 k...U...&...............r...4...
5080 0a 0c 00 00 f9 0b 00 00 d6 0b 00 00 d1 0b 00 00 ad 0b 00 00 8c 0b 00 00 5c 0b 00 00 4c 0b 00 00 ........................\...L...
50a0 02 0b 00 00 ea 0a 00 00 dd 0a 00 00 9e 0a 00 00 99 0a 00 00 80 0a 00 00 5e 0a 00 00 2a 0a 00 00 ........................^...*...
50c0 e8 09 00 00 d0 09 00 00 a7 09 00 00 a6 09 00 00 8f 09 00 00 89 09 00 00 63 09 00 00 15 09 00 00 ........................c.......
50e0 ce 08 00 00 ad 08 00 00 98 08 00 00 54 08 00 00 4a 08 00 00 25 08 00 00 f3 07 00 00 e1 07 00 00 ............T...J...%...........
5100 dc 07 00 00 a8 07 00 00 8b 07 00 00 64 07 00 00 57 07 00 00 24 07 00 00 0b 07 00 00 0a 07 00 00 ............d...W...$...........
5120 e5 06 00 00 bd 06 00 00 96 06 00 00 85 06 00 00 5d 06 00 00 2b 06 00 00 08 06 00 00 fb 05 00 00 ................]...+...........
5140 d8 05 00 00 9d 05 00 00 8c 05 00 00 6a 05 00 00 55 05 00 00 4c 05 00 00 21 05 00 00 11 05 00 00 ............j...U...L...!.......
5160 bc 04 00 00 9d 04 00 00 8d 04 00 00 67 04 00 00 5a 04 00 00 3b 04 00 00 0a 04 00 00 c3 03 00 00 ............g...Z...;...........
5180 99 03 00 00 4d 03 00 00 3c 03 00 00 18 03 00 00 bd 02 00 00 80 02 00 00 5a 02 00 00 55 02 00 00 ....M...<...............Z...U...
51a0 04 02 00 00 03 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
51e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
5200 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 28 27 43 6f 6e 6e 65 63 74 69 6e 67 ................info('Connecting
5220 20 74 6f 20 49 63 65 20 73 65 72 76 65 72 20 28 25 73 3a 25 64 29 27 2c 20 63 66 67 2e 69 63 65 .to.Ice.server.(%s:%d)',.cfg.ice
5240 2e 68 6f 73 74 2c 20 63 66 67 2e 69 63 65 2e 70 6f 72 74 29 00 20 20 20 20 00 20 20 20 20 20 20 .host,.cfg.ice.port)............
5260 20 20 20 20 20 20 20 20 20 20 23 54 4f 44 4f 3a 20 49 6d 70 6c 65 6d 65 6e 74 20 74 68 69 73 00 ..........#TODO:.Implement.this.
5280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 47 6c 61 63 69 65 72 20 73 ................error('Glacier.s
52a0 75 70 70 6f 72 74 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 79 65 74 27 29 00 20 20 20 upport.not.implemented.yet')....
52c0 20 20 20 20 20 20 20 20 20 20 20 20 20 23 69 6e 66 6f 28 27 43 6f 6e 6e 65 63 74 69 6e 67 20 74 .............#info('Connecting.t
52e0 6f 20 47 6c 61 63 69 65 72 32 20 73 65 72 76 65 72 20 28 25 73 3a 25 64 29 27 2c 20 67 6c 61 63 o.Glacier2.server.(%s:%d)',.glac
5300 69 65 72 5f 68 6f 73 74 2c 20 67 6c 61 63 69 65 72 5f 70 6f 72 74 29 00 20 20 20 20 20 20 20 20 ier_host,.glacier_port).........
5320 20 20 20 20 69 66 20 63 66 67 2e 67 6c 61 63 69 65 72 2e 65 6e 61 62 6c 65 64 3a 00 20 20 20 20 ....if.cfg.glacier.enabled:.....
5340 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 .............................war
5360 6e 69 6e 67 28 27 43 6f 6e 73 69 64 65 72 20 75 73 69 6e 67 20 61 6e 20 69 63 65 20 73 65 63 72 ning('Consider.using.an.ice.secr
5380 65 74 20 74 6f 20 69 6d 70 72 6f 76 65 20 73 65 63 75 72 69 74 79 27 29 00 20 20 20 20 20 20 20 et.to.improve.security')........
53a0 20 20 20 20 20 65 6c 69 66 20 6e 6f 74 20 63 66 67 2e 67 6c 61 63 69 65 72 2e 65 6e 61 62 6c 65 .....elif.not.cfg.glacier.enable
53c0 64 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 63 65 2e 67 65 74 49 6d 70 6c 69 63 d:.................ice.getImplic
53e0 69 74 43 6f 6e 74 65 78 74 28 29 2e 70 75 74 28 22 73 65 63 72 65 74 22 2c 20 63 66 67 2e 69 63 itContext().put("secret",.cfg.ic
5400 65 2e 73 65 63 72 65 74 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 e.secret).................debug(
5420 27 55 73 69 6e 67 20 73 68 61 72 65 64 20 69 63 65 20 73 65 63 72 65 74 27 29 00 20 20 20 20 20 'Using.shared.ice.secret')......
5440 20 20 20 20 20 20 20 69 66 20 63 66 67 2e 69 63 65 2e 73 65 63 72 65 74 3a 00 20 20 20 20 20 20 .......if.cfg.ice.secret:.......
5460 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 69 63 65 20 3d 20 73 65 6c 66 2e 63 6f ...................ice.=.self.co
5480 6d 6d 75 6e 69 63 61 74 6f 72 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 mmunicator()............."""....
54a0 20 20 20 20 20 20 20 20 20 63 6f 6e 66 69 67 75 72 65 64 20 73 65 72 76 65 72 73 00 20 20 20 20 .........configured.servers.....
54c0 20 20 20 20 20 20 20 20 45 73 74 61 62 6c 69 73 68 65 73 20 74 68 65 20 74 77 6f 2d 77 61 79 20 ........Establishes.the.two-way.
54e0 49 63 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 6e 64 20 61 64 64 73 20 74 68 65 20 61 75 74 68 Ice.connection.and.adds.the.auth
5500 65 6e 74 69 63 61 74 6f 72 20 74 6f 20 74 68 65 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 enticator.to.the............."""
5520 00 20 20 20 20 20 20 20 20 64 65 66 20 69 6e 69 74 69 61 6c 69 7a 65 49 63 65 43 6f 6e 6e 65 63 .........def.initializeIceConnec
5540 74 69 6f 6e 28 73 65 6c 66 29 3a 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 tion(self):.....................
5560 20 72 65 74 75 72 6e 20 30 00 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 65 61 64 44 42 2e 64 .return.0.............threadDB.d
5580 69 73 63 6f 6e 6e 65 63 74 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 isconnect().....................
55a0 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 69 6e 67 28 27 43 61 75 67 68 74 20 69 6e 74 .............warning('Caught.int
55c0 65 72 72 75 70 74 2c 20 73 68 75 74 74 69 6e 67 20 64 6f 77 6e 27 29 00 20 20 20 20 20 20 20 20 errupt,.shutting.down').........
55e0 20 20 20 20 69 66 20 73 65 6c 66 2e 69 6e 74 65 72 72 75 70 74 65 64 28 29 3a 00 20 20 20 20 20 ....if.self.interrupted():......
5600 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 77 61 74 63 68 64 6f ....................self.watchdo
5620 67 2e 63 61 6e 63 65 6c 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6d 6d g.cancel().............self.comm
5640 75 6e 69 63 61 74 6f 72 28 29 2e 77 61 69 74 46 6f 72 53 68 75 74 64 6f 77 6e 28 29 00 20 20 20 unicator().waitForShutdown()....
5660 20 20 20 20 20 20 20 20 20 23 20 53 65 72 76 65 20 74 69 6c 6c 20 77 65 20 61 72 65 20 73 74 6f .........#.Serve.till.we.are.sto
5680 70 70 65 64 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 pped............................
56a0 20 20 20 20 20 20 73 65 6c 66 2e 63 68 65 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e 28 29 00 20 20 20 ......self.checkConnection()....
56c0 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 61 69 6c 65 64 57 61 74 63 68 20 3d 20 .............self.failedWatch.=.
56e0 54 72 75 65 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 66 67 2e 69 63 65 2e 77 61 74 63 True.............if.cfg.ice.watc
5700 68 64 6f 67 20 3e 20 30 3a 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 hdog.>.0:..................retur
5720 6e 20 31 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 65 6c 66 2e 69 6e 69 74 n.1.............if.not.self.init
5740 69 61 6c 69 7a 65 49 63 65 43 6f 6e 6e 65 63 74 69 6f 6e 28 29 3a 00 20 20 20 20 20 20 20 20 20 ializeIceConnection():..........
5760 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 68 75 74 64 6f 77 6e 4f 6e 49 ................self.shutdownOnI
5780 6e 74 65 72 72 75 70 74 28 29 00 20 20 20 20 20 20 20 20 64 65 66 20 72 75 6e 28 73 65 6c 66 2c nterrupt().........def.run(self,
57a0 20 61 72 67 73 29 3a 00 20 20 20 20 63 6c 61 73 73 20 65 6c 6b 61 72 74 65 61 75 74 68 65 6e 74 .args):.....class.elkarteauthent
57c0 69 63 61 74 6f 72 41 70 70 28 49 63 65 2e 41 70 70 6c 69 63 61 74 69 6f 6e 29 3a 00 20 20 20 20 icatorApp(Ice.Application):.....
57e0 00 20 20 20 20 69 6d 70 6f 72 74 20 4d 75 72 6d 75 72 00 20 20 20 20 49 63 65 2e 6c 6f 61 64 53 .....import.Murmur.....Ice.loadS
5800 6c 69 63 65 28 27 27 2c 20 73 6c 69 63 65 64 69 72 20 2b 20 5b 63 66 67 2e 69 63 65 2e 73 6c 69 lice('',.slicedir.+.[cfg.ice.sli
5820 63 65 5d 29 00 20 20 20 20 20 20 20 20 73 6c 69 63 65 64 69 72 20 3d 20 5b 27 2d 49 27 20 2b 20 ce]).........slicedir.=.['-I'.+.
5840 73 6c 69 63 65 64 69 72 5d 00 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 73 6c 69 63 slicedir].....else:.........slic
5860 65 64 69 72 20 3d 20 5b 22 2d 49 2f 75 73 72 2f 73 68 61 72 65 2f 49 63 65 2f 73 6c 69 63 65 22 edir.=.["-I/usr/share/Ice/slice"
5880 2c 20 22 2d 49 2f 75 73 72 2f 73 68 61 72 65 2f 73 6c 69 63 65 22 5d 00 20 20 20 20 69 66 20 6e ,."-I/usr/share/slice"].....if.n
58a0 6f 74 20 73 6c 69 63 65 64 69 72 3a 00 20 20 20 20 73 6c 69 63 65 64 69 72 20 3d 20 49 63 65 2e ot.slicedir:.....slicedir.=.Ice.
58c0 67 65 74 53 6c 69 63 65 44 69 72 28 29 00 20 20 20 20 23 20 20 20 20 77 69 74 68 6f 75 74 20 6c getSliceDir().....#....without.l
58e0 6f 6f 73 69 6e 67 20 74 68 65 20 66 69 6c 65 20 64 65 73 63 72 69 70 74 6f 72 73 20 6f 70 65 6e oosing.the.file.descriptors.open
5900 65 64 20 62 79 20 74 68 65 20 49 63 65 20 6d 6f 64 75 6c 65 00 20 20 20 20 23 20 20 20 20 41 6c ed.by.the.Ice.module.....#....Al
5920 6c 20 6f 66 20 74 68 69 73 20 68 61 73 20 74 6f 20 67 6f 20 69 6e 20 68 65 72 65 20 73 6f 20 77 l.of.this.has.to.go.in.here.so.w
5940 65 20 63 61 6e 20 63 6f 72 72 65 63 74 6c 79 20 64 61 65 6d 6f 6e 69 7a 65 20 74 68 65 20 74 6f e.can.correctly.daemonize.the.to
5960 6f 6c 00 20 20 20 20 23 2d 2d 2d 20 41 75 74 68 65 6e 74 69 63 61 74 6f 72 20 69 6d 70 6c 65 6d ol.....#---.Authenticator.implem
5980 65 6e 74 61 74 69 6f 6e 00 20 20 20 20 23 00 64 65 66 20 64 6f 5f 6d 61 69 6e 5f 70 72 6f 67 72 entation.....#.def.do_main_progr
59a0 61 6d 28 29 3a 00 00 20 20 20 20 64 69 73 63 6f 6e 6e 65 63 74 20 3d 20 63 6c 61 73 73 6d 65 74 am():......disconnect.=.classmet
59c0 68 6f 64 28 64 69 73 63 6f 6e 6e 65 63 74 29 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 2e hod(disconnect).............con.
59e0 63 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 43 6c 6f 73 65 close().............debug('Close
5a00 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 66 6f 72 20 74 68 72 65 61 64 20 .database.connection.for.thread.
5a20 25 64 27 2c 20 74 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 74 69 64 2c 20 63 6f 6e 20 3d %d',.tid).............tid,.con.=
5a40 20 63 6c 73 2e 64 62 5f 63 6f 6e 6e 65 63 74 69 6f 6e 73 2e 70 6f 70 69 74 65 6d 28 29 00 20 20 .cls.db_connections.popitem()...
5a60 20 20 20 20 20 20 77 68 69 6c 65 20 63 6c 73 2e 64 62 5f 63 6f 6e 6e 65 63 74 69 6f 6e 73 3a 00 ......while.cls.db_connections:.
5a80 20 20 20 20 64 65 66 20 64 69 73 63 6f 6e 6e 65 63 74 28 63 6c 73 29 3a 00 20 20 20 20 00 20 20 ....def.disconnect(cls):........
5aa0 20 20 69 6e 76 61 6c 69 64 61 74 65 5f 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 63 6c 61 73 73 6d ..invalidate_connection.=.classm
5ac0 65 74 68 6f 64 28 69 6e 76 61 6c 69 64 61 74 65 5f 63 6f 6e 6e 65 63 74 69 6f 6e 29 00 20 20 20 ethod(invalidate_connection)....
5ae0 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 2e 63 6c 6f 73 65 28 ......................con.close(
5b00 29 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 49 6e 76 61 6c 69 64 61 74 65 20 ).............debug('Invalidate.
5b20 63 6f 6e 6e 65 63 74 69 6f 6e 20 74 6f 20 64 61 74 61 62 61 73 65 20 66 6f 72 20 74 68 72 65 61 connection.to.database.for.threa
5b40 64 20 25 64 27 2c 20 74 69 64 29 00 20 20 20 20 20 20 20 20 69 66 20 63 6f 6e 3a 00 20 20 20 20 d.%d',.tid).........if.con:.....
5b60 20 20 20 20 63 6f 6e 20 3d 20 63 6c 73 2e 64 62 5f 63 6f 6e 6e 65 63 74 69 6f 6e 73 2e 70 6f 70 ....con.=.cls.db_connections.pop
5b80 28 74 69 64 2c 20 4e 6f 6e 65 29 00 20 20 20 20 20 20 20 20 74 69 64 20 3d 20 74 68 72 65 61 64 (tid,.None).........tid.=.thread
5ba0 2e 67 65 74 5f 69 64 65 6e 74 28 29 00 20 20 20 20 64 65 66 20 69 6e 76 61 6c 69 64 61 74 65 5f .get_ident().....def.invalidate_
5bc0 63 6f 6e 6e 65 63 74 69 6f 6e 28 63 6c 73 29 3a 00 20 20 20 20 00 20 20 20 20 65 78 65 63 75 74 connection(cls):..........execut
5be0 65 20 3d 20 63 6c 61 73 73 6d 65 74 68 6f 64 28 65 78 65 63 75 74 65 29 00 20 20 20 20 20 20 20 e.=.classmethod(execute)........
5c00 20 72 65 74 75 72 6e 20 63 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 .return.c.................raise.
5c20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 threadDbException().............
5c40 20 20 20 20 65 72 72 6f 72 28 27 44 61 74 61 62 61 73 65 20 6f 70 65 72 61 74 69 6f 6e 20 66 61 ....error('Database.operation.fa
5c60 69 6c 65 64 20 75 6c 74 69 6d 61 74 65 6c 79 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c iled.ultimately').............el
5c80 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 20 3d 20 63 6c 73 2e 65 78 65 63 se:.................c.=.cls.exec
5ca0 75 74 65 28 2a 61 72 67 73 2c 20 2a 2a 6b 77 61 72 67 73 29 00 20 20 20 20 20 20 20 20 20 20 20 ute(*args,.**kwargs)............
5cc0 20 20 20 20 20 6b 77 61 72 67 73 5b 22 74 68 72 65 61 64 44 42 5f 5f 72 65 74 72 79 5f 65 78 65 .....kwargs["threadDB__retry_exe
5ce0 63 75 74 69 6f 6e 5f 5f 22 5d 20 3d 20 54 72 75 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 cution__"].=.True...............
5d00 20 20 69 6e 66 6f 28 27 52 65 74 72 79 69 6e 67 20 64 61 74 61 62 61 73 65 20 6f 70 65 72 61 74 ..info('Retrying.database.operat
5d20 69 6f 6e 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4d 61 6b 65 20 73 75 72 ion').................#.Make.sur
5d40 65 20 77 65 20 6f 6e 6c 79 20 72 65 74 72 79 20 6f 6e 63 65 00 20 20 20 20 20 20 20 20 20 20 20 e.we.only.retry.once............
5d60 20 69 66 20 72 65 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 73 2e 69 6e 76 61 6c .if.retry:.............cls.inval
5d80 69 64 61 74 65 5f 63 6f 6e 6e 65 63 74 69 6f 6e 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 63 idate_connection().............c
5da0 2e 63 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 44 61 74 61 .close().............error('Data
5dc0 62 61 73 65 20 6f 70 65 72 61 74 69 6f 6e 61 6c 20 65 72 72 6f 72 20 25 64 3a 20 25 73 27 2c 20 base.operational.error.%d:.%s',.
5de0 65 2e 61 72 67 73 5b 30 5d 2c 20 65 2e 61 72 67 73 5b 31 5d 29 00 20 20 20 20 20 20 20 20 65 78 e.args[0],.e.args[1]).........ex
5e00 63 65 70 74 20 64 62 2e 4f 70 65 72 61 74 69 6f 6e 61 6c 45 72 72 6f 72 2c 20 65 3a 00 20 20 20 cept.db.OperationalError,.e:....
5e20 20 20 20 20 20 20 20 20 20 63 2e 65 78 65 63 75 74 65 28 2a 61 72 67 73 2c 20 2a 2a 6b 77 61 72 .........c.execute(*args,.**kwar
5e40 67 73 29 00 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 63 20 3d 20 63 6c 73 gs).........try:.........c.=.cls
5e60 2e 63 75 72 73 6f 72 28 29 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 72 .cursor()......................r
5e80 65 74 72 79 20 3d 20 54 72 75 65 00 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 etry.=.True.........else:.......
5ea0 20 20 20 20 20 20 72 65 74 72 79 20 3d 20 46 61 6c 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 ......retry.=.False.............
5ec0 64 65 6c 20 6b 77 61 72 67 73 5b 22 74 68 72 65 61 64 44 42 5f 5f 72 65 74 72 79 5f 65 78 65 63 del.kwargs["threadDB__retry_exec
5ee0 75 74 69 6f 6e 5f 5f 22 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 61 6e 20 69 6e 66 69 6e ution__"].............#.an.infin
5f00 69 74 65 20 6c 6f 6f 70 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 48 61 76 65 20 61 20 6d 61 ite.loop.............#.Have.a.ma
5f20 67 69 63 20 6b 65 79 77 6f 72 64 20 73 6f 20 77 65 20 63 61 6e 20 63 61 6c 6c 20 6f 75 72 73 65 gic.keyword.so.we.can.call.ourse
5f40 6c 76 65 73 20 77 68 69 6c 65 20 70 72 65 76 65 6e 74 69 6e 67 00 20 20 20 20 20 20 20 20 69 66 lves.while.preventing.........if
5f60 20 22 74 68 72 65 61 64 44 42 5f 5f 72 65 74 72 79 5f 65 78 65 63 75 74 69 6f 6e 5f 5f 22 20 69 ."threadDB__retry_execution__".i
5f80 6e 20 6b 77 61 72 67 73 3a 00 20 20 20 20 64 65 66 20 65 78 65 63 75 74 65 28 63 6c 73 2c 20 2a n.kwargs:.....def.execute(cls,.*
5fa0 61 72 67 73 2c 20 2a 2a 6b 77 61 72 67 73 29 3a 00 20 20 20 20 00 20 20 20 20 63 75 72 73 6f 72 args,.**kwargs):..........cursor
5fc0 20 3d 20 63 6c 61 73 73 6d 65 74 68 6f 64 28 63 75 72 73 6f 72 29 00 20 20 20 20 20 20 20 20 72 .=.classmethod(cursor).........r
5fe0 65 74 75 72 6e 20 63 6c 73 2e 63 6f 6e 6e 65 63 74 69 6f 6e 28 29 2e 63 75 72 73 6f 72 28 29 00 eturn.cls.connection().cursor().
6000 61 64 00 00 1a 00 00 00 9e 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 a4 0f 00 00 69 0f 00 00 ad..............Z...........i...
6020 60 0f 00 00 f6 0e 00 00 d7 0e 00 00 ca 0e 00 00 8a 0e 00 00 40 0e 00 00 33 0e 00 00 f1 0d 00 00 `...................@...3.......
6040 9c 0d 00 00 8f 0d 00 00 65 0d 00 00 5c 0d 00 00 2a 0d 00 00 1a 0d 00 00 db 0c 00 00 cb 0c 00 00 ........e...\...*...............
6060 be 0c 00 00 91 0c 00 00 67 0c 00 00 56 0c 00 00 18 0c 00 00 17 0c 00 00 e4 0b 00 00 d3 0b 00 00 ........g...V...................
6080 97 0b 00 00 43 0b 00 00 dc 0a 00 00 a1 0a 00 00 88 0a 00 00 17 0a 00 00 d5 09 00 00 9e 09 00 00 ....C...........................
60a0 57 09 00 00 e5 08 00 00 b5 08 00 00 9f 08 00 00 51 08 00 00 35 08 00 00 24 08 00 00 fd 07 00 00 W...............Q...5...$.......
60c0 e0 07 00 00 df 07 00 00 bd 07 00 00 a5 07 00 00 9c 07 00 00 79 07 00 00 69 07 00 00 20 07 00 00 ....................y...i.......
60e0 ea 06 00 00 da 06 00 00 b7 06 00 00 b6 06 00 00 a5 06 00 00 5a 06 00 00 2e 06 00 00 18 06 00 00 ....................Z...........
6100 eb 05 00 00 c6 05 00 00 5c 05 00 00 3e 05 00 00 16 05 00 00 15 05 00 00 f7 04 00 00 ad 04 00 00 ........\...>...................
6120 8b 04 00 00 82 04 00 00 67 04 00 00 5b 04 00 00 0d 04 00 00 e1 03 00 00 d5 03 00 00 b6 03 00 00 ........g...[...................
6140 9e 03 00 00 95 03 00 00 72 03 00 00 51 03 00 00 28 03 00 00 16 03 00 00 f3 02 00 00 e6 02 00 00 ........r...Q...(...............
6160 80 02 00 00 28 02 00 00 f2 01 00 00 e5 01 00 00 bf 01 00 00 b6 01 00 00 9f 01 00 00 9e 01 00 00 ....(...........................
6180 9d 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 ................................
61a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 66 75 6e 63 00 20 20 20 20 20 20 20 20 00 20 .......return.newfunc...........
61c0 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 75 6e 63 28 2a 61 72 67 73 2c 20 2a 2a ...........return.func(*args,.**
61e0 6b 77 73 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 kws)............................
6200 20 20 72 61 69 73 65 20 4d 75 72 6d 75 72 2e 49 6e 76 61 6c 69 64 53 65 63 72 65 74 45 78 63 65 ..raise.Murmur.InvalidSecretExce
6220 70 74 69 6f 6e 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 53 ption().................error('S
6240 65 72 76 65 72 20 74 72 61 6e 73 6d 69 74 74 65 64 20 69 6e 76 61 6c 69 64 20 73 65 63 72 65 74 erver.transmitted.invalid.secret
6260 2e 20 50 6f 73 73 69 62 6c 65 20 69 6e 6a 65 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 2e 27 29 00 ..Possible.injection.attempt.').
6280 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63 75 72 72 65 6e 74 20 6f 72 20 27 73 ............if.not.current.or.'s
62a0 65 63 72 65 74 27 20 6e 6f 74 20 69 6e 20 63 75 72 72 65 6e 74 2e 63 74 78 20 6f 72 20 63 75 72 ecret'.not.in.current.ctx.or.cur
62c0 72 65 6e 74 2e 63 74 78 5b 27 73 65 63 72 65 74 27 5d 20 21 3d 20 63 66 67 2e 69 63 65 2e 73 65 rent.ctx['secret'].!=.cfg.ice.se
62e0 63 72 65 74 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 cret:...........................
6300 20 20 20 63 75 72 72 65 6e 74 20 3d 20 61 72 67 73 5b 2d 31 5d 00 20 20 20 20 20 20 20 20 20 20 ...current.=.args[-1]...........
6320 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 20 ..else:.................current.
6340 3d 20 6b 77 73 5b 22 63 75 72 72 65 6e 74 22 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 =.kws["current"].............if.
6360 27 63 75 72 72 65 6e 74 27 20 69 6e 20 6b 77 73 3a 00 20 20 20 20 20 20 20 20 64 65 66 20 6e 65 'current'.in.kws:.........def.ne
6380 77 66 75 6e 63 28 2a 61 72 67 73 2c 20 2a 2a 6b 77 73 29 3a 00 20 20 20 20 20 20 20 20 00 20 20 wfunc(*args,.**kws):............
63a0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 75 6e 63 00 20 20 20 20 20 20 20 20 69 66 ..........return.func.........if
63c0 20 6e 6f 74 20 63 66 67 2e 69 63 65 2e 73 65 63 72 65 74 3a 00 20 20 20 20 20 20 20 20 22 22 22 .not.cfg.ice.secret:........."""
63e0 00 20 20 20 20 20 20 20 20 69 66 20 61 20 73 65 63 72 65 74 20 69 73 20 73 75 70 70 6f 73 65 64 .........if.a.secret.is.supposed
6400 20 74 6f 20 62 65 20 75 73 65 64 2e 00 20 20 20 20 20 20 20 20 44 65 63 6f 72 61 74 6f 72 20 74 .to.be.used..........Decorator.t
6420 68 61 74 20 63 68 65 63 6b 73 20 77 68 65 74 68 65 72 20 74 68 65 20 73 65 72 76 65 72 20 74 72 hat.checks.whether.the.server.tr
6440 61 6e 73 6d 69 74 74 65 64 20 74 68 65 20 72 69 67 68 74 20 73 65 63 72 65 74 00 20 20 20 20 20 ansmitted.the.right.secret......
6460 20 20 20 22 22 22 00 20 20 20 20 64 65 66 20 63 68 65 63 6b 53 65 63 72 65 74 28 66 75 6e 63 29 ...""".....def.checkSecret(func)
6480 3a 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 77 61 74 63 :......................self.watc
64a0 68 64 6f 67 2e 73 74 61 72 74 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 77 61 hdog.start().............self.wa
64c0 74 63 68 64 6f 67 20 3d 20 54 69 6d 65 72 28 63 66 67 2e 69 63 65 2e 77 61 74 63 68 64 6f 67 2c tchdog.=.Timer(cfg.ice.watchdog,
64e0 20 73 65 6c 66 2e 63 68 65 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e 29 00 20 20 20 20 20 20 20 20 20 .self.checkConnection)..........
6500 20 20 20 23 20 52 65 6e 65 77 20 74 68 65 20 74 69 6d 65 72 00 00 20 20 20 20 20 20 20 20 20 20 ...#.Renew.the.timer............
6520 20 20 20 20 20 20 73 65 6c 66 2e 66 61 69 6c 65 64 57 61 74 63 68 20 3d 20 54 72 75 65 00 20 20 ......self.failedWatch.=.True...
6540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 73 74 72 28 65 29 29 00 20 20 20 20 ..............debug(str(e)).....
6560 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 46 61 69 6c 65 64 20 63 6f 6e 6e 65 63 ............error('Failed.connec
6580 74 69 6f 6e 20 63 68 65 63 6b 2c 20 77 69 6c 6c 20 72 65 74 72 79 20 69 6e 20 6e 65 78 74 20 77 tion.check,.will.retry.in.next.w
65a0 61 74 63 68 64 6f 67 20 72 75 6e 20 28 25 64 73 29 27 2c 20 63 66 67 2e 69 63 65 2e 77 61 74 63 atchdog.run.(%ds)',.cfg.ice.watc
65c0 68 64 6f 67 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 49 63 65 2e 45 78 63 hdog).............except.Ice.Exc
65e0 65 70 74 69 6f 6e 2c 20 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 eption,.e:.....................s
6600 65 6c 66 2e 66 61 69 6c 65 64 57 61 74 63 68 20 3d 20 46 61 6c 73 65 00 20 20 20 20 20 20 20 20 elf.failedWatch.=.False.........
6620 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........else:...................
6640 20 20 73 65 6c 66 2e 66 61 69 6c 65 64 57 61 74 63 68 20 3d 20 54 72 75 65 00 20 20 20 20 20 20 ..self.failedWatch.=.True.......
6660 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 73 65 6c 66 2e 61 74 74 61 63 68 43 61 6c 6c ..........if.not.self.attachCall
6680 62 61 63 6b 73 28 71 75 69 65 74 20 3d 20 6e 6f 74 20 73 65 6c 66 2e 66 61 69 6c 65 64 57 61 74 backs(quiet.=.not.self.failedWat
66a0 63 68 29 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 00 20 20 20 20 20 20 20 20 20 ch):.............try:...........
66c0 20 20 20 23 64 65 62 75 67 28 27 57 61 74 63 68 64 6f 67 20 72 75 6e 27 29 00 20 20 20 20 20 20 ...#debug('Watchdog.run').......
66e0 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 73 75 72 76 69 76 65 73 20 73 ......""".............survives.s
6700 65 72 76 65 72 20 72 65 73 74 61 72 74 73 20 61 6e 64 20 64 69 73 63 6f 6e 6e 65 63 74 73 2e 00 erver.restarts.and.disconnects..
6720 20 20 20 20 20 20 20 20 20 20 20 20 54 72 69 65 73 20 72 65 61 70 70 6c 69 65 73 20 61 6c 6c 20 ............Tries.reapplies.all.
6740 63 61 6c 6c 62 61 63 6b 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 61 75 74 68 65 callbacks.to.make.sure.the.authe
6760 6e 74 69 63 61 74 6f 72 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 nticator............."""........
6780 20 64 65 66 20 63 68 65 63 6b 43 6f 6e 6e 65 63 74 69 6f 6e 28 73 65 6c 66 29 3a 00 20 20 20 20 .def.checkConnection(self):.....
67a0 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 54 72 75 65 00 20 20 20 .................return.True....
67c0 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e 6e 65 63 74 65 64 20 3d 20 54 72 75 65 00 00 .........self.connected.=.True..
67e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 61 6c 73 65 00 20 20 20 ................return.False....
6800 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 63 6f 6e 6e 65 63 74 65 64 20 3d 20 46 61 .............self.connected.=.Fa
6820 6c 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 lse.............................
6840 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........raise.e................
6860 20 20 20 20 20 23 20 57 65 20 64 6f 20 6e 6f 74 20 61 63 74 75 61 6c 6c 79 20 77 61 6e 74 20 74 .....#.We.do.not.actually.want.t
6880 6f 20 68 61 6e 64 6c 65 20 74 68 69 73 20 6f 6e 65 2c 20 72 65 2d 72 61 69 73 65 20 69 74 00 20 o.handle.this.one,.re-raise.it..
68a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 ...............else:............
68c0 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 49 6e 76 61 6c 69 64 20 69 63 65 20 73 65 63 72 .........error('Invalid.ice.secr
68e0 65 74 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 73 69 6e 73 74 et')......................isinst
6900 61 6e 63 65 28 65 2c 20 49 63 65 2e 55 6e 6b 6e 6f 77 6e 55 73 65 72 45 78 63 65 70 74 69 6f 6e ance(e,.Ice.UnknownUserException
6920 29 20 61 6e 64 20 28 65 2e 75 6e 6b 6e 6f 77 6e 20 3d 3d 20 27 4d 75 72 6d 75 72 3a 3a 49 6e 76 ).and.(e.unknown.==.'Murmur::Inv
6940 61 6c 69 64 53 65 63 72 65 74 45 78 63 65 70 74 69 6f 6e 27 29 3a 00 20 20 20 20 20 20 20 20 20 alidSecretException'):..........
6960 20 20 20 20 20 20 20 65 6c 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 65 2c 20 4d 75 72 6d 75 72 .......elif.isinstance(e,.Murmur
6980 2e 49 6e 76 61 6c 69 64 53 65 63 72 65 74 45 78 63 65 70 74 69 6f 6e 29 20 6f 72 20 5c 00 20 20 .InvalidSecretException).or.\...
69a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 53 65 72 76 65 72 20 ..................error('Server.
69c0 72 65 66 75 73 65 64 20 63 6f 6e 6e 65 63 74 69 6f 6e 27 29 00 20 20 20 20 20 20 20 20 20 20 20 refused.connection')............
69e0 20 20 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 65 2c 20 49 63 65 2e 43 6f 6e 6e 65 63 .....if.isinstance(e,.Ice.Connec
6a00 74 69 6f 6e 52 65 66 75 73 65 64 45 78 63 65 70 74 69 6f 6e 29 3a 00 20 20 20 20 20 20 20 20 20 tionRefusedException):..........
6a20 20 20 20 65 78 63 65 70 74 20 28 4d 75 72 6d 75 72 2e 49 6e 76 61 6c 69 64 53 65 63 72 65 74 45 ...except.(Murmur.InvalidSecretE
6a40 78 63 65 70 74 69 6f 6e 2c 20 49 63 65 2e 55 6e 6b 6e 6f 77 6e 55 73 65 72 45 78 63 65 70 74 69 xception,.Ice.UnknownUserExcepti
6a60 6f 6e 2c 20 49 63 65 2e 43 6f 6e 6e 65 63 74 69 6f 6e 52 65 66 75 73 65 64 45 78 63 65 70 74 69 on,.Ice.ConnectionRefusedExcepti
6a80 6f 6e 29 2c 20 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on),.e:.........................
6aa0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 76 65 72 2e .........................server.
6ac0 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 6f 72 28 73 65 6c 66 2e 61 75 74 68 29 00 20 20 20 20 setAuthenticator(self.auth).....
6ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 71 75 69 65 74 ....................if.not.quiet
6b00 3a 20 69 6e 66 6f 28 27 53 65 74 74 69 6e 67 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 20 66 6f :.info('Setting.authenticator.fo
6b20 72 20 76 69 72 74 75 61 6c 20 73 65 72 76 65 72 20 25 64 27 2c 20 73 65 72 76 65 72 2e 69 64 28 r.virtual.server.%d',.server.id(
6b40 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63 66 )).....................if.not.cf
6b60 67 2e 6d 75 72 6d 75 72 2e 73 65 72 76 65 72 73 20 6f 72 20 73 65 72 76 65 72 2e 69 64 28 29 20 g.murmur.servers.or.server.id().
6b80 69 6e 20 63 66 67 2e 6d 75 72 6d 75 72 2e 73 65 72 76 65 72 73 3a 00 20 20 20 20 20 20 20 20 20 in.cfg.murmur.servers:..........
6ba0 20 20 20 20 20 20 20 66 6f 72 20 73 65 72 76 65 72 20 69 6e 20 73 65 6c 66 2e 6d 65 74 61 2e 67 .......for.server.in.self.meta.g
6bc0 65 74 42 6f 6f 74 65 64 53 65 72 76 65 72 73 28 29 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 etBootedServers():..............
6be0 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 65 74 61 2e 61 64 ....................self.meta.ad
6c00 64 43 61 6c 6c 62 61 63 6b 28 73 65 6c 66 2e 6d 65 74 61 63 62 29 00 00 20 20 20 20 20 20 20 20 dCallback(self.metacb)..........
6c20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 71 75 69 65 74 3a 20 69 6e 66 6f 28 27 41 74 74 61 ........if.not.quiet:.info('Atta
6c40 63 68 69 6e 67 20 6d 65 74 61 20 63 61 6c 6c 62 61 63 6b 27 29 00 20 20 20 20 20 20 20 20 20 20 ching.meta.callback')...........
6c60 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 23 64 65 62 75 67 28 27 41 74 74 61 63 ..try:.............#debug('Attac
6c80 68 69 6e 67 20 63 61 6c 6c 62 61 63 6b 73 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 hing.callbacks').............#.I
6ca0 63 65 2e 43 6f 6e 6e 65 63 74 69 6f 6e 52 65 66 75 73 65 64 45 78 63 65 70 74 69 6f 6e 00 20 20 ce.ConnectionRefusedException...
6cc0 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 ......................."""......
6ce0 20 20 20 20 20 20 20 41 74 74 61 63 68 65 73 20 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 73 20 66 6f .......Attaches.all.callbacks.fo
6d00 72 20 6d 65 74 61 20 61 6e 64 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 73 00 20 20 20 20 20 20 r.meta.and.authenticators.......
6d20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 61 74 74 61 63 68 43 61 6c 6c ......""".........def.attachCall
6d40 62 61 63 6b 73 28 73 65 6c 66 2c 20 71 75 69 65 74 20 3d 20 46 61 6c 73 65 29 3a 00 20 20 20 20 backs(self,.quiet.=.False):.....
6d60 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 61 74 74 .................return.self.att
6d80 61 63 68 43 61 6c 6c 62 61 63 6b 73 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 achCallbacks()..................
6da0 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 75 74 68 20 3d 20 4d 75 72 6d 75 72 2e 53 65 72 76 65 ........self.auth.=.Murmur.Serve
6dc0 72 55 70 64 61 74 69 6e 67 41 75 74 68 65 6e 74 69 63 61 74 6f 72 50 72 78 2e 75 6e 63 68 65 63 rUpdatingAuthenticatorPrx.unchec
6de0 6b 65 64 43 61 73 74 28 61 75 74 68 70 72 78 29 00 20 20 20 20 20 20 20 20 20 20 20 20 61 75 74 kedCast(authprx).............aut
6e00 68 70 72 78 20 3d 20 61 64 61 70 74 65 72 2e 61 64 64 57 69 74 68 55 55 49 44 28 65 6c 6b 61 72 hprx.=.adapter.addWithUUID(elkar
6e20 74 65 61 75 74 68 65 6e 74 69 63 61 74 6f 72 28 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 teauthenticator())..............
6e40 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 65 74 61 63 62 20 3d 20 4d 75 72 6d 75 72 ............self.metacb.=.Murmur
6e60 2e 4d 65 74 61 43 61 6c 6c 62 61 63 6b 50 72 78 2e 75 6e 63 68 65 63 6b 65 64 43 61 73 74 28 6d .MetaCallbackPrx.uncheckedCast(m
6e80 65 74 61 63 62 70 72 78 29 00 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 63 62 70 72 78 20 etacbprx).............metacbprx.
6ea0 3d 20 61 64 61 70 74 65 72 2e 61 64 64 57 69 74 68 55 55 49 44 28 6d 65 74 61 43 61 6c 6c 62 61 =.adapter.addWithUUID(metaCallba
6ec0 63 6b 28 73 65 6c 66 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 ck(self)).......................
6ee0 20 20 20 61 64 61 70 74 65 72 2e 61 63 74 69 76 61 74 65 28 29 00 20 20 20 20 20 20 20 20 20 20 ...adapter.activate()...........
6f00 20 20 61 64 61 70 74 65 72 20 3d 20 69 63 65 2e 63 72 65 61 74 65 4f 62 6a 65 63 74 41 64 61 70 ..adapter.=.ice.createObjectAdap
6f20 74 65 72 57 69 74 68 45 6e 64 70 6f 69 6e 74 73 28 27 43 61 6c 6c 62 61 63 6b 2e 43 6c 69 65 6e terWithEndpoints('Callback.Clien
6f40 74 27 2c 20 27 74 63 70 20 2d 68 20 25 73 27 20 25 20 63 66 67 2e 69 63 65 2e 68 6f 73 74 29 00 t',.'tcp.-h.%s'.%.cfg.ice.host).
6f60 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6d 65 74 61 20 3d .....................self.meta.=
6f80 20 4d 75 72 6d 75 72 2e 4d 65 74 61 50 72 78 2e 75 6e 63 68 65 63 6b 65 64 43 61 73 74 28 62 61 .Murmur.MetaPrx.uncheckedCast(ba
6fa0 73 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 62 61 73 65 20 3d 20 69 63 65 2e 73 74 72 69 6e se).............base.=.ice.strin
6fc0 67 54 6f 50 72 6f 78 79 28 27 4d 65 74 61 3a 74 63 70 20 2d 68 20 25 73 20 2d 70 20 25 64 27 20 gToProxy('Meta:tcp.-h.%s.-p.%d'.
6fe0 25 20 28 63 66 67 2e 69 63 65 2e 68 6f 73 74 2c 20 63 66 67 2e 69 63 65 2e 70 6f 72 74 29 29 00 %.(cfg.ice.host,.cfg.ice.port)).
7000 61 64 00 00 0d 00 00 00 91 01 00 00 00 10 00 00 5a 00 00 00 00 00 00 00 bc 0f 00 00 b0 0f 00 00 ad..............Z...............
7020 62 0f 00 00 1a 0f 00 00 cf 0e 00 00 9a 0e 00 00 91 0e 00 00 59 0e 00 00 4d 0e 00 00 33 0e 00 00 b...................Y...M...3...
7040 0c 0e 00 00 f7 0d 00 00 c9 0d 00 00 a4 0d 00 00 83 0d 00 00 59 0d 00 00 2b 0d 00 00 01 0d 00 00 ....................Y...+.......
7060 df 0c 00 00 de 0c 00 00 c0 0c 00 00 80 0c 00 00 5b 0c 00 00 35 0c 00 00 1b 0c 00 00 1a 0c 00 00 ................[...5...........
7080 ff 0b 00 00 e9 0b 00 00 d8 0b 00 00 ab 0b 00 00 8a 0b 00 00 5b 0b 00 00 40 0b 00 00 3f 0b 00 00 ....................[...@...?...
70a0 27 0b 00 00 12 0b 00 00 df 0a 00 00 cf 0a 00 00 8a 0a 00 00 45 0a 00 00 35 0a 00 00 e9 09 00 00 '...................E...5.......
70c0 98 09 00 00 83 09 00 00 4d 09 00 00 02 09 00 00 ad 08 00 00 4d 08 00 00 f0 07 00 00 d0 07 00 00 ........M...........M...........
70e0 bb 07 00 00 8b 07 00 00 70 07 00 00 5e 07 00 00 1a 07 00 00 19 07 00 00 01 07 00 00 ec 06 00 00 ........p...^...................
7100 b9 06 00 00 a9 06 00 00 64 06 00 00 54 06 00 00 31 06 00 00 d0 05 00 00 a2 05 00 00 8d 05 00 00 ........d...T...1...............
7120 39 05 00 00 e0 04 00 00 c6 04 00 00 7a 04 00 00 5f 04 00 00 28 04 00 00 f9 03 00 00 ec 03 00 00 9...........z..._...(...........
7140 ae 03 00 00 a9 03 00 00 74 03 00 00 3f 03 00 00 35 03 00 00 00 03 00 00 f7 02 00 00 b3 02 00 00 ........t...?...5...............
7160 98 02 00 00 7c 02 00 00 3e 02 00 00 3d 02 00 00 0c 02 00 00 f7 01 00 00 a1 01 00 00 91 01 00 00 ....|...>...=...................
7180 90 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 ............................."""
71a0 00 20 20 20 20 20 20 20 20 64 65 66 20 61 75 74 68 65 6e 74 69 63 61 74 65 28 73 65 6c 66 2c 20 .........def.authenticate(self,.
71c0 6e 61 6d 65 2c 20 70 77 2c 20 63 65 72 74 6c 69 73 74 2c 20 63 65 72 74 68 61 73 68 2c 20 73 74 name,.pw,.certlist,.certhash,.st
71e0 72 6f 6e 67 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 rong,.current.=.None):.........@
7200 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 checkSecret.........@fortifyIceF
7220 75 28 61 75 74 68 65 6e 74 69 63 61 74 65 46 6f 72 74 69 66 79 52 65 73 75 6c 74 29 00 00 20 20 u(authenticateFortifyResult)....
7240 20 20 20 20 20 20 20 20 20 20 4d 75 72 6d 75 72 2e 53 65 72 76 65 72 55 70 64 61 74 69 6e 67 41 ..........Murmur.ServerUpdatingA
7260 75 74 68 65 6e 74 69 63 61 74 6f 72 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 29 00 20 20 20 20 uthenticator.__init__(self).....
7280 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 29 3a 00 20 20 20 20 20 20 20 20 ....def.__init__(self):.........
72a0 74 65 78 74 75 72 65 5f 63 61 63 68 65 20 3d 20 7b 7d 00 20 20 20 20 63 6c 61 73 73 20 65 6c 6b texture_cache.=.{}.....class.elk
72c0 61 72 74 65 61 75 74 68 65 6e 74 69 63 61 74 6f 72 28 4d 75 72 6d 75 72 2e 53 65 72 76 65 72 55 arteauthenticator(Murmur.ServerU
72e0 70 64 61 74 69 6e 67 41 75 74 68 65 6e 74 69 63 61 74 6f 72 29 3a 00 20 20 20 20 20 20 20 20 00 pdatingAuthenticator):..........
7300 20 20 20 20 20 20 20 20 61 75 74 68 65 6e 74 69 63 61 74 65 46 6f 72 74 69 66 79 52 65 73 75 6c ........authenticateFortifyResul
7320 74 20 3d 20 28 2d 32 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 00 20 20 20 20 65 6c 73 65 3a 00 20 t.=.(-2,.None,.None).....else:..
7340 20 20 20 20 20 20 20 61 75 74 68 65 6e 74 69 63 61 74 65 46 6f 72 74 69 66 79 52 65 73 75 6c 74 .......authenticateFortifyResult
7360 20 3d 20 28 2d 31 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 00 20 20 20 20 69 66 20 63 66 67 2e 75 .=.(-1,.None,.None).....if.cfg.u
7380 73 65 72 2e 72 65 6a 65 63 74 5f 6f 6e 5f 65 72 72 6f 72 3a 20 23 20 50 79 74 68 6f 6e 20 32 2e ser.reject_on_error:.#.Python.2.
73a0 34 20 63 6f 6d 70 61 74 00 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 4.compat..................debug(
73c0 27 53 65 72 76 65 72 20 73 68 75 74 64 6f 77 6e 20 73 74 6f 70 70 65 64 20 61 20 76 69 72 74 75 'Server.shutdown.stopped.a.virtu
73e0 61 6c 20 73 65 72 76 65 72 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 al.server').....................
7400 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 70 70 2e 63 6f 6e 6e 65 63 74 65 64 20 .............self.app.connected.
7420 3d 20 46 61 6c 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 49 =.False.................except.I
7440 63 65 2e 43 6f 6e 6e 65 63 74 69 6f 6e 52 65 66 75 73 65 64 45 78 63 65 70 74 69 6f 6e 3a 00 20 ce.ConnectionRefusedException:..
7460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 00 20 20 20 20 20 20 ...................return.......
7480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 56 69 72 74 75 61 6c ..................debug('Virtual
74a0 20 73 65 72 76 65 72 20 25 64 20 67 6f 74 20 73 74 6f 70 70 65 64 27 2c 20 73 65 72 76 65 72 2e .server.%d.got.stopped',.server.
74c0 69 64 28 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 id()).....................else:.
74e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 28 27 41 75 ........................info('Au
7500 74 68 65 6e 74 69 63 61 74 65 64 20 76 69 72 74 75 61 6c 20 73 65 72 76 65 72 20 25 64 20 67 6f thenticated.virtual.server.%d.go
7520 74 20 73 74 6f 70 70 65 64 27 2c 20 73 65 72 76 65 72 2e 69 64 28 29 29 00 20 20 20 20 20 20 20 t.stopped',.server.id())........
7540 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63 66 67 2e 6d 75 72 6d 75 72 2e 73 .............if.not.cfg.murmur.s
7560 65 72 76 65 72 73 20 6f 72 20 73 65 72 76 65 72 2e 69 64 28 29 20 69 6e 20 63 66 67 2e 6d 75 72 ervers.or.server.id().in.cfg.mur
7580 6d 75 72 2e 73 65 72 76 65 72 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 mur.servers:.................try
75a0 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 66 6c 6f 6f 64 69 6e 67 20 6f 66 20 :.................#.flooding.of.
75c0 6f 75 72 20 74 68 72 65 61 64 20 70 6f 6f 6c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 our.thread.pool.................
75e0 23 20 4f 6e 6c 79 20 74 72 79 20 74 6f 20 6f 75 74 70 75 74 20 74 68 65 20 73 65 72 76 65 72 20 #.Only.try.to.output.the.server.
7600 69 64 20 69 66 20 77 65 20 74 68 69 6e 6b 20 77 65 20 61 72 65 20 73 74 69 6c 6c 20 63 6f 6e 6e id.if.we.think.we.are.still.conn
7620 65 63 74 65 64 20 74 6f 20 70 72 65 76 65 6e 74 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 ected.to.prevent.............if.
7640 73 65 6c 66 2e 61 70 70 2e 63 6f 6e 6e 65 63 74 65 64 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 self.app.connected:.............
7660 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 """.............This.function.is
7680 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 76 69 72 74 75 61 6c 20 73 65 72 76 65 72 20 69 73 .called.when.a.virtual.server.is
76a0 20 73 74 6f 70 70 65 64 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 .stopped............."""........
76c0 20 64 65 66 20 73 74 6f 70 70 65 64 28 73 65 6c 66 2c 20 73 65 72 76 65 72 2c 20 63 75 72 72 65 .def.stopped(self,.server,.curre
76e0 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 nt.=.None):.........@checkSecret
7700 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 29 00 00 20 20 20 20 20 20 .........@fortifyIceFu()........
7720 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 56 69 72 74 75 61 6c 20 73 65 72 76 65 72 20 ..........debug('Virtual.server.
7740 25 64 20 67 6f 74 20 73 74 61 72 74 65 64 27 2c 20 73 65 72 76 65 72 2e 69 64 28 29 29 00 20 20 %d.got.started',.server.id())...
7760 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........else:.................
7780 20 20 20 20 72 65 74 75 72 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 ....return.....................e
77a0 72 72 6f 72 28 27 49 6e 76 61 6c 69 64 20 69 63 65 20 73 65 63 72 65 74 27 29 00 20 20 20 20 20 rror('Invalid.ice.secret')......
77c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
77e0 20 20 20 20 20 20 20 20 72 61 69 73 65 20 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........raise.e.................
7800 20 20 20 20 20 20 20 20 23 20 53 70 65 63 69 61 6c 20 68 61 6e 64 6c 69 6e 67 20 66 6f 72 20 4d ........#.Special.handling.for.M
7820 75 72 6d 75 72 20 31 2e 32 2e 32 20 73 65 72 76 65 72 73 20 77 69 74 68 20 69 6e 76 61 6c 69 64 urmur.1.2.2.servers.with.invalid
7840 20 73 6c 69 63 65 20 66 69 6c 65 73 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .slice.files....................
7860 20 69 66 20 68 61 73 61 74 74 72 28 65 2c 20 22 75 6e 6b 6e 6f 77 6e 22 29 20 61 6e 64 20 65 2e .if.hasattr(e,."unknown").and.e.
7880 75 6e 6b 6e 6f 77 6e 20 21 3d 20 22 4d 75 72 6d 75 72 3a 3a 49 6e 76 61 6c 69 64 53 65 63 72 65 unknown.!=."Murmur::InvalidSecre
78a0 74 45 78 63 65 70 74 69 6f 6e 22 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 tException":.................exc
78c0 65 70 74 20 28 4d 75 72 6d 75 72 2e 49 6e 76 61 6c 69 64 53 65 63 72 65 74 45 78 63 65 70 74 69 ept.(Murmur.InvalidSecretExcepti
78e0 6f 6e 2c 20 49 63 65 2e 55 6e 6b 6e 6f 77 6e 55 73 65 72 45 78 63 65 70 74 69 6f 6e 29 2c 20 65 on,.Ice.UnknownUserException),.e
7900 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 41 70 70 61 72 65 6e 74 6c 79 20 74 :.................#.Apparently.t
7920 68 69 73 20 73 65 72 76 65 72 20 77 61 73 20 72 65 73 74 61 72 74 65 64 20 77 69 74 68 6f 75 74 his.server.was.restarted.without
7940 20 75 73 20 6e 6f 74 69 63 69 6e 67 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .us.noticing....................
7960 20 73 65 72 76 65 72 2e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 6f 72 28 61 70 70 2e 61 75 74 .server.setAuthenticator(app.aut
7980 68 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 h).................try:.........
79a0 20 20 20 20 20 20 20 20 69 6e 66 6f 28 27 53 65 74 74 69 6e 67 20 61 75 74 68 65 6e 74 69 63 61 ........info('Setting.authentica
79c0 74 6f 72 20 66 6f 72 20 76 69 72 74 75 61 6c 20 73 65 72 76 65 72 20 25 64 27 2c 20 73 65 72 76 tor.for.virtual.server.%d',.serv
79e0 65 72 2e 69 64 28 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 63 66 67 2e er.id()).............if.not.cfg.
7a00 6d 75 72 6d 75 72 2e 73 65 72 76 65 72 73 20 6f 72 20 73 65 72 76 65 72 2e 69 64 28 29 20 69 6e murmur.servers.or.server.id().in
7a20 20 63 66 67 2e 6d 75 72 6d 75 72 2e 73 65 72 76 65 72 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 .cfg.murmur.servers:............
7a40 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 61 6e 64 20 6d 61 6b 65 73 20 73 75 72 65 20 .""".............and.makes.sure.
7a60 61 6e 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 20 67 65 74 73 20 61 74 74 61 63 68 65 64 20 69 an.authenticator.gets.attached.i
7a80 66 20 6e 65 65 64 65 64 2e 00 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 f.needed..............This.funct
7aa0 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 76 69 72 74 75 61 6c 20 73 65 72 ion.is.called.when.a.virtual.ser
7ac0 76 65 72 20 69 73 20 73 74 61 72 74 65 64 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 ver.is.started............."""..
7ae0 20 20 20 20 20 20 20 64 65 66 20 73 74 61 72 74 65 64 28 73 65 6c 66 2c 20 73 65 72 76 65 72 2c .......def.started(self,.server,
7b00 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b .current.=.None):.........@check
7b20 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 29 00 00 Secret.........@fortifyIceFu()..
7b40 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 61 70 70 20 3d 20 61 70 70 00 20 20 20 20 20 ............self.app.=.app......
7b60 20 20 20 20 20 20 20 4d 75 72 6d 75 72 2e 4d 65 74 61 43 61 6c 6c 62 61 63 6b 2e 5f 5f 69 6e 69 .......Murmur.MetaCallback.__ini
7b80 74 5f 5f 28 73 65 6c 66 29 00 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 t__(self).........def.__init__(s
7ba0 65 6c 66 2c 20 61 70 70 29 3a 00 20 20 20 20 63 6c 61 73 73 20 6d 65 74 61 43 61 6c 6c 62 61 63 elf,.app):.....class.metaCallbac
7bc0 6b 28 4d 75 72 6d 75 72 2e 4d 65 74 61 43 61 6c 6c 62 61 63 6b 29 3a 00 20 20 20 20 20 20 20 20 k(Murmur.MetaCallback):.........
7be0 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 64 65 63 00 20 .................return.newdec..
7c00 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 66 75 6e 63 00 00 20 20 20 20 20 ...........return.newfunc.......
7c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 00 20 20 20 20 20 20 20 20 20 20 20 ...............raise............
7c40 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 76 61 6c 00 20 20 20 20 20 .............return.retval......
7c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 69 6f 6e 28 65 29 00 ...................exception(e).
7c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 72 69 74 69 63 61 6c ........................critical
7ca0 28 27 55 6e 65 78 70 65 63 74 65 64 20 65 78 63 65 70 74 69 6f 6e 20 63 61 75 67 68 74 27 29 00 ('Unexpected.exception.caught').
7cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 63 61 74 63 68 3a 00 00 20 ....................if.catch:...
7ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b ...........................break
7d00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 .............................cat
7d20 63 68 20 3d 20 46 61 6c 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch.=.False......................
7d40 20 20 20 69 66 20 69 73 69 6e 73 74 61 6e 63 65 28 65 2c 20 65 78 29 3a 00 20 20 20 20 20 20 20 ...if.isinstance(e,.ex):........
7d60 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 65 78 20 69 6e 20 65 78 63 65 70 74 69 6f 6e .............for.ex.in.exception
7d80 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 63 68 20 3d 20 54 s:.....................catch.=.T
7da0 72 75 65 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 rue.................except.Excep
7dc0 74 69 6f 6e 2c 20 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 tion,.e:.....................ret
7de0 75 72 6e 20 66 75 6e 63 28 2a 61 72 67 73 2c 20 2a 2a 6b 77 73 29 00 20 20 20 20 20 20 20 20 20 urn.func(*args,.**kws)..........
7e00 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 20 6e 65 77 66 .......try:.............def.newf
7e20 75 6e 63 28 2a 61 72 67 73 2c 20 2a 2a 6b 77 73 29 3a 00 20 20 20 20 20 20 20 20 64 65 66 20 6e unc(*args,.**kws):.........def.n
7e40 65 77 64 65 63 28 66 75 6e 63 29 3a 00 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 ewdec(func):........."""........
7e60 20 54 68 65 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f 20 63 61 74 63 68 20 61 6c 6c 20 6e 6f 6e .The.default.is.to.catch.all.non
7e80 2d 49 63 65 20 65 78 63 65 70 74 69 6f 6e 73 2e 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 -Ice.exceptions.................
7ea0 20 20 67 69 76 65 6e 20 69 6e 20 74 68 65 20 65 78 63 65 70 74 69 6f 6e 73 20 6c 69 73 74 20 61 ..given.in.the.exceptions.list.a
7ec0 72 65 20 6e 6f 74 20 63 61 75 67 68 74 2e 00 20 20 20 20 20 20 20 20 63 72 69 74 69 63 61 6c 20 re.not.caught..........critical.
7ee0 63 6f 64 65 20 70 61 74 68 73 2e 20 4f 6e 6c 79 20 65 78 63 65 70 74 69 6f 6e 73 20 74 68 61 74 code.paths..Only.exceptions.that
7f00 20 61 72 65 20 69 6e 73 74 61 6e 63 65 73 20 6f 66 20 63 6c 61 73 73 65 73 00 20 20 20 20 20 20 .are.instances.of.classes.......
7f20 20 20 76 61 6c 75 65 2e 20 54 68 69 73 20 68 65 6c 70 73 20 70 72 65 76 65 6e 74 69 6e 67 20 74 ..value..This.helps.preventing.t
7f40 68 65 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 20 67 65 74 74 69 6e 67 20 73 74 75 63 6b 20 69 he.authenticator.getting.stuck.i
7f60 6e 00 20 20 20 20 20 20 20 20 44 65 63 6f 72 61 74 6f 72 20 74 68 61 74 20 63 61 74 63 68 65 73 n.........Decorator.that.catches
7f80 20 65 78 63 65 70 74 69 6f 6e 73 2c 6c 6f 67 73 20 74 68 65 6d 20 61 6e 64 20 72 65 74 75 72 6e .exceptions,logs.them.and.return
7fa0 73 20 61 20 73 61 66 65 20 72 65 74 76 61 6c 00 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 s.a.safe.retval.........""".....
7fc0 64 65 66 20 66 6f 72 74 69 66 79 49 63 65 46 75 28 72 65 74 76 61 6c 20 3d 20 4e 6f 6e 65 2c 20 def.fortifyIceFu(retval.=.None,.
7fe0 65 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 49 63 65 2e 45 78 63 65 70 74 69 6f 6e 2c 29 29 3a 00 exceptions.=.(Ice.Exception,)):.
8000 61 64 00 00 04 00 00 00 98 01 00 00 00 10 00 00 5e 00 00 00 00 00 00 00 c5 0f 00 00 b5 0f 00 00 ad..............^...............
8020 a8 0f 00 00 76 0f 00 00 58 0f 00 00 3a 0f 00 00 2d 0f 00 00 09 0f 00 00 ce 0e 00 00 9c 0e 00 00 ....v...X...:...-...............
8040 8f 0e 00 00 7e 0e 00 00 bf 0d 00 00 8b 0d 00 00 65 0d 00 00 33 0d 00 00 26 0d 00 00 05 0d 00 00 ....~...........e...3...&.......
8060 ed 0c 00 00 d5 0c 00 00 94 0c 00 00 62 0c 00 00 5d 0c 00 00 0d 0c 00 00 00 0c 00 00 ba 0b 00 00 ............b...]...............
8080 81 0b 00 00 6c 0b 00 00 47 0b 00 00 01 0b 00 00 e7 0a 00 00 b6 0a 00 00 b5 0a 00 00 3a 0a 00 00 ....l...G...................:...
80a0 0a 0a 00 00 e0 09 00 00 aa 09 00 00 a9 09 00 00 81 09 00 00 65 09 00 00 4a 09 00 00 16 09 00 00 ....................e...J.......
80c0 15 09 00 00 bf 08 00 00 83 08 00 00 2f 08 00 00 2e 08 00 00 c8 07 00 00 9a 07 00 00 8d 07 00 00 ............/...................
80e0 68 07 00 00 53 07 00 00 24 07 00 00 14 07 00 00 d9 06 00 00 c9 06 00 00 bc 06 00 00 6b 06 00 00 h...S...$...................k...
8100 39 06 00 00 18 06 00 00 17 06 00 00 fd 05 00 00 e8 05 00 00 b6 05 00 00 a6 05 00 00 6b 05 00 00 9...........................k...
8120 5b 05 00 00 4e 05 00 00 30 05 00 00 0c 05 00 00 c9 04 00 00 a5 04 00 00 98 04 00 00 87 04 00 00 [...N...0.......................
8140 13 04 00 00 df 03 00 00 b9 03 00 00 95 03 00 00 88 03 00 00 67 03 00 00 4f 03 00 00 37 03 00 00 ....................g...O...7...
8160 07 03 00 00 e3 02 00 00 d6 02 00 00 8a 02 00 00 5b 02 00 00 52 02 00 00 38 02 00 00 23 02 00 00 ................[...R...8...#...
8180 f3 01 00 00 e3 01 00 00 a8 01 00 00 98 01 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 ................................
81a0 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 64 20 ....""".............Gets.called.
81c0 74 6f 20 67 65 74 20 74 68 65 20 75 73 65 72 6e 61 6d 65 20 66 6f 72 20 61 20 67 69 76 65 6e 20 to.get.the.username.for.a.given.
81e0 69 64 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 69 id.............""".........def.i
8200 64 54 6f 4e 61 6d 65 28 73 65 6c 66 2c 20 69 64 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 dToName(self,.id,.current.=.None
8220 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 ):.........@checkSecret.........
8240 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 22 22 29 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 @fortifyIceFu("")...............
8260 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 5b 30 5d 20 2b 20 63 66 67 2e 75 73 65 72 2e .......return.res[0].+.cfg.user.
8280 69 64 5f 6f 66 66 73 65 74 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 6e 61 6d id_offset.............debug('nam
82a0 65 54 6f 49 64 20 25 73 20 2d 3e 20 25 64 27 2c 20 6e 61 6d 65 2c 20 28 72 65 73 5b 30 5d 20 2b eToId.%s.->.%d',.name,.(res[0].+
82c0 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 29 29 00 20 20 20 20 20 20 20 20 20 20 .cfg.user.id_offset))...........
82e0 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 ...................return.FALL_T
8300 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 6e 61 HROUGH.................debug('na
8320 6d 65 54 6f 49 64 20 25 73 20 2d 3e 20 3f 27 2c 20 6e 61 6d 65 29 00 20 20 20 20 20 20 20 20 20 meToId.%s.->.?',.name)..........
8340 20 20 20 69 66 20 6e 6f 74 20 72 65 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 2e 63 ...if.not.res:.............cur.c
8360 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 20 3d 20 63 75 72 2e 66 65 74 lose().............res.=.cur.fet
8380 63 68 6f 6e 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 chone().........................
83a0 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 .....return.FALL_THROUGH........
83c0 20 20 20 20 20 65 78 63 65 70 74 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 3a 00 20 .....except.threadDbException:..
83e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 ...............cur.=.threadDB.ex
8400 65 63 75 74 65 28 73 71 6c 2c 20 5b 6e 61 6d 65 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 ecute(sql,.[name])..............
8420 20 20 20 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 69 64 5f 6d 65 6d 62 65 72 20 46 52 4f 4d 20 ...sql.=.'SELECT.id_member.FROM.
8440 25 73 6d 65 6d 62 65 72 73 20 57 48 45 52 45 20 4c 4f 57 45 52 28 6d 65 6d 62 65 72 5f 6e 61 6d %smembers.WHERE.LOWER(member_nam
8460 65 29 20 3d 20 4c 4f 57 45 52 28 25 25 73 29 27 20 25 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e e).=.LOWER(%%s)'.%.cfg.database.
8480 70 72 65 66 69 78 00 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 prefix.............try:.........
84a0 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c .....................return.FALL
84c0 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 _THROUGH.................debug('
84e0 6e 61 6d 65 54 6f 49 64 20 53 75 70 65 72 55 73 65 72 20 2d 3e 20 66 6f 72 63 65 64 20 66 61 6c nameToId.SuperUser.->.forced.fal
8500 6c 20 74 68 72 6f 75 67 68 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 20 l.through').............if.name.
8520 3d 3d 20 27 53 75 70 65 72 55 73 65 72 27 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c 4c ==.'SuperUser':.............FALL
8540 5f 54 48 52 4f 55 47 48 20 3d 20 2d 32 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 _THROUGH.=.-2...................
8560 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c .......""".............Gets.call
8580 65 64 20 74 6f 20 67 65 74 20 74 68 65 20 69 64 20 66 6f 72 20 61 20 67 69 76 65 6e 20 75 73 65 ed.to.get.the.id.for.a.given.use
85a0 72 6e 61 6d 65 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 rname.............""".........de
85c0 66 20 6e 61 6d 65 54 6f 49 64 28 73 65 6c 66 2c 20 6e 61 6d 65 2c 20 63 75 72 72 65 6e 74 20 3d f.nameToId(self,.name,.current.=
85e0 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 .None):.........@checkSecret....
8600 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 2d 32 29 00 00 20 20 20 20 20 20 20 20 .....@fortifyIceFu(-2)..........
8620 20 20 20 20 72 65 74 75 72 6e 20 28 46 61 6c 73 65 2c 20 4e 6f 6e 65 29 00 20 20 20 20 20 20 20 ....return.(False,.None)........
8640 20 20 20 20 20 64 65 62 75 67 28 27 67 65 74 49 6e 66 6f 20 66 6f 72 20 25 64 20 2d 3e 20 64 65 .....debug('getInfo.for.%d.->.de
8660 6e 69 65 64 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 57 65 20 64 6f 20 6e nied',.id).............#.We.do.n
8680 6f 74 20 65 78 70 6f 73 65 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 ot.expose.any.additional.informa
86a0 74 69 6f 6e 20 73 6f 20 61 6c 77 61 79 73 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 00 20 20 20 20 tion.so.always.fall.through.....
86c0 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 ....................."""........
86e0 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 64 20 74 6f 20 66 65 74 63 68 20 75 73 65 72 20 73 .....Gets.called.to.fetch.user.s
8700 70 65 63 69 66 69 63 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 pecific.information.............
8720 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 67 65 74 49 6e 66 6f 28 73 65 6c 66 2c 20 69 64 """.........def.getInfo(self,.id
8740 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 ,.current.=.None):.........@chec
8760 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 28 46 kSecret.........@fortifyIceFu((F
8780 61 6c 73 65 2c 20 4e 6f 6e 65 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 alse,.None))....................
87a0 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 41 55 54 48 5f 52 45 46 55 53 45 44 2c 20 4e 6f 6e 65 ......return.(AUTH_REFUSED,.None
87c0 2c 20 4e 6f 6e 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 28 27 46 61 69 6c 65 64 ,.None).............info('Failed
87e0 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 74 74 65 6d 70 74 20 66 6f 72 20 75 73 65 72 .authentication.attempt.for.user
8800 3a 20 22 25 73 22 20 28 25 64 29 27 2c 20 6e 61 6d 65 2c 20 75 69 64 20 2b 20 63 66 67 2e 75 73 :."%s".(%d)',.name,.uid.+.cfg.us
8820 65 72 2e 69 64 5f 6f 66 66 73 65 74 29 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 er.id_offset)..................r
8840 65 74 75 72 6e 20 28 75 69 64 20 2b 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 2c eturn.(uid.+.cfg.user.id_offset,
8860 20 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 75 72 65 61 6c 6e 61 6d 65 29 2c 20 67 72 6f 75 70 .entity_decode(urealname),.group
8880 73 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 47 72 6f 75 70 20 s).................debug('Group.
88a0 6d 65 6d 62 65 72 73 68 69 70 73 3a 20 25 73 27 2c 20 73 74 72 28 67 72 6f 75 70 73 29 29 00 20 memberships:.%s',.str(groups))..
88c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 28 27 55 73 65 72 20 61 75 74 68 65 6e ...............info('User.authen
88e0 74 69 63 61 74 65 64 3a 20 22 25 73 22 20 28 25 64 29 27 2c 20 6e 61 6d 65 2c 20 75 69 64 20 2b ticated:."%s".(%d)',.name,.uid.+
8900 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 29 00 00 20 20 20 20 20 20 20 20 20 20 .cfg.user.id_offset)............
8920 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 73 20 3d 20 5b 61 5b 30 5d 20 66 6f 72 20 61 20 69 ..........groups.=.[a[0].for.a.i
8940 6e 20 67 72 6f 75 70 73 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 67 72 6f n.groups].................if.gro
8960 75 70 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 2e 63 6c 6f 73 65 28 29 ups:.................cur.close()
8980 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 73 20 3d 20 63 75 72 2e 66 65 .................groups.=.cur.fe
89a0 74 63 68 61 6c 6c 28 29 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 tchall()......................re
89c0 74 75 72 6e 20 28 46 41 4c 4c 5f 54 48 52 4f 55 47 48 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 00 turn.(FALL_THROUGH,.None,.None).
89e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 74 68 72 65 61 64 44 62 45 ................except.threadDbE
8a00 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 xception:.....................cu
8a20 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 74 65 28 73 71 6c 29 00 20 20 20 20 20 20 r.=.threadDB.execute(sql).......
8a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 67 72 6f 75 ..............sql.=.'SELECT.grou
8a60 70 5f 6e 61 6d 65 20 46 52 4f 4d 20 25 73 6d 65 6d 62 65 72 67 72 6f 75 70 73 20 57 48 45 52 45 p_name.FROM.%smembergroups.WHERE
8a80 20 69 64 5f 67 72 6f 75 70 20 49 4e 20 28 25 73 29 27 20 25 20 28 63 66 67 2e 64 61 74 61 62 61 .id_group.IN.(%s)'.%.(cfg.databa
8aa0 73 65 2e 70 72 65 66 69 78 2c 20 67 72 6f 75 70 69 64 73 29 00 00 20 20 20 20 20 20 20 20 20 20 se.prefix,.groupids)............
8ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 69 64 73 20 3d 20 73 74 72 28 75 67 72 ..............groupids.=.str(ugr
8ae0 6f 75 70 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a oupid).....................else:
8b00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 69 64 .........................groupid
8b20 73 20 3d 20 73 74 72 28 75 67 72 6f 75 70 69 64 29 20 2b 20 27 2c 27 20 2b 20 75 61 64 64 69 74 s.=.str(ugroupid).+.','.+.uaddit
8b40 67 72 6f 75 70 73 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 75 61 groups.....................if.ua
8b60 64 64 69 74 67 72 6f 75 70 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a dditgroups:.................try:
8b80 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 41 75 74 68 65 6e 74 69 63 61 74 65 64 .................#.Authenticated
8ba0 2c 20 66 65 74 63 68 20 67 72 6f 75 70 20 6d 65 6d 62 65 72 73 68 69 70 73 00 20 20 20 20 20 20 ,.fetch.group.memberships.......
8bc0 20 20 20 20 20 20 69 66 20 61 63 74 69 76 61 74 65 64 20 3d 3d 20 31 20 61 6e 64 20 65 6c 6b 61 ......if.activated.==.1.and.elka
8be0 72 74 65 5f 63 68 65 63 6b 5f 68 61 73 68 28 70 77 2c 20 75 70 77 2c 20 75 6e 61 6d 65 29 3a 00 rte_check_hash(pw,.upw,.uname):.
8c00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 75 69 64 2c 20 75 70 .........................uid,.up
8c20 77 2c 20 75 67 72 6f 75 70 69 64 2c 20 75 6e 61 6d 65 2c 20 75 72 65 61 6c 6e 61 6d 65 2c 20 75 w,.ugroupid,.uname,.urealname,.u
8c40 61 64 64 69 74 67 72 6f 75 70 73 2c 20 61 63 74 69 76 61 74 65 64 20 3d 20 72 65 73 00 20 20 20 additgroups,.activated.=.res....
8c60 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 46 41 4c 4c 5f 54 ..................return.(FALL_T
8c80 48 52 4f 55 47 48 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 HROUGH,.None,.None).............
8ca0 20 20 20 20 69 6e 66 6f 28 27 46 61 6c 6c 20 74 68 72 6f 75 67 68 20 66 6f 72 20 75 6e 6b 6e 6f ....info('Fall.through.for.unkno
8cc0 77 6e 20 75 73 65 72 20 22 25 73 22 27 2c 20 6e 61 6d 65 29 00 20 20 20 20 20 20 20 20 20 20 20 wn.user."%s"',.name)............
8ce0 20 69 66 20 6e 6f 74 20 72 65 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 2e 63 6c 6f .if.not.res:.............cur.clo
8d00 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 20 3d 20 63 75 72 2e 66 65 74 63 68 se().............res.=.cur.fetch
8d20 6f 6e 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 one()...........................
8d40 20 20 20 72 65 74 75 72 6e 20 28 46 41 4c 4c 5f 54 48 52 4f 55 47 48 2c 20 4e 6f 6e 65 2c 20 4e ...return.(FALL_THROUGH,.None,.N
8d60 6f 6e 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 74 68 72 65 61 64 44 62 one).............except.threadDb
8d80 45 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 20 3d Exception:.................cur.=
8da0 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 74 65 28 73 71 6c 2c 20 5b 6e 61 6d 65 5d 29 00 20 .threadDB.execute(sql,.[name])..
8dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 69 64 5f ...............sql.=.'SELECT.id_
8de0 6d 65 6d 62 65 72 2c 20 70 61 73 73 77 64 2c 20 69 64 5f 67 72 6f 75 70 2c 20 6d 65 6d 62 65 72 member,.passwd,.id_group,.member
8e00 5f 6e 61 6d 65 2c 20 72 65 61 6c 5f 6e 61 6d 65 2c 20 61 64 64 69 74 69 6f 6e 61 6c 5f 67 72 6f _name,.real_name,.additional_gro
8e20 75 70 73 2c 20 69 73 5f 61 63 74 69 76 61 74 65 64 20 46 52 4f 4d 20 25 73 6d 65 6d 62 65 72 73 ups,.is_activated.FROM.%smembers
8e40 20 57 48 45 52 45 20 4c 4f 57 45 52 28 6d 65 6d 62 65 72 5f 6e 61 6d 65 29 20 3d 20 4c 4f 57 45 .WHERE.LOWER(member_name).=.LOWE
8e60 52 28 25 25 73 29 27 20 25 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 72 65 66 69 78 00 20 20 R(%%s)'.%.cfg.database.prefix...
8e80 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 ..........try:..................
8ea0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 46 41 4c 4c 5f 54 48 52 4f 55 47 48 ............return.(FALL_THROUGH
8ec0 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 ,.None,.None).................de
8ee0 62 75 67 28 27 46 6f 72 63 65 64 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 20 66 6f 72 20 53 75 70 bug('Forced.fall.through.for.Sup
8f00 65 72 55 73 65 72 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 61 6d 65 20 3d 3d 20 erUser').............if.name.==.
8f20 27 53 75 70 65 72 55 73 65 72 27 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 'SuperUser':....................
8f40 20 20 20 20 20 20 41 55 54 48 5f 52 45 46 55 53 45 44 20 3d 20 2d 31 00 20 20 20 20 20 20 20 20 ......AUTH_REFUSED.=.-1.........
8f60 20 20 20 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 20 3d 20 2d 32 00 20 20 20 20 20 20 20 20 20 20 ....FALL_THROUGH.=.-2...........
8f80 20 20 23 20 53 65 61 72 63 68 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 69 6e 20 74 68 65 20 64 ..#.Search.for.the.user.in.the.d
8fa0 61 74 61 62 61 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 atabase.........................
8fc0 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 .""".............This.function.i
8fe0 73 20 63 61 6c 6c 65 64 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 20 61 20 75 73 65 72 00 s.called.to.authenticate.a.user.
9000 61 64 00 00 1f 00 00 00 93 01 00 00 00 10 00 00 56 00 00 00 00 00 00 00 f3 0f 00 00 d5 0f 00 00 ad..............V...............
9020 77 0f 00 00 4f 0f 00 00 2a 0f 00 00 ff 0e 00 00 f2 0e 00 00 c3 0e 00 00 b2 0e 00 00 4c 0e 00 00 w...O...*...................L...
9040 18 0e 00 00 f2 0d 00 00 ce 0d 00 00 c1 0d 00 00 a0 0d 00 00 88 0d 00 00 74 0d 00 00 4a 0d 00 00 ........................t...J...
9060 0a 0d 00 00 e2 0c 00 00 d1 0c 00 00 98 0c 00 00 7a 0c 00 00 6d 0c 00 00 43 0c 00 00 23 0c 00 00 ................z...m...C...#...
9080 16 0c 00 00 fc 0b 00 00 e7 0b 00 00 b4 0b 00 00 a4 0b 00 00 60 0b 00 00 50 0b 00 00 4f 0b 00 00 ....................`...P...O...
90a0 31 0b 00 00 24 0b 00 00 f8 0a 00 00 b2 0a 00 00 76 0a 00 00 52 0a 00 00 45 0a 00 00 0a 0a 00 00 1...$...........v...R...E.......
90c0 df 09 00 00 ce 09 00 00 6d 09 00 00 39 09 00 00 13 09 00 00 ef 08 00 00 ce 08 00 00 b6 08 00 00 ........m...9...................
90e0 9e 08 00 00 54 08 00 00 30 08 00 00 14 08 00 00 07 08 00 00 ec 07 00 00 98 07 00 00 83 07 00 00 ....T...0.......................
9100 02 07 00 00 90 06 00 00 58 06 00 00 2e 06 00 00 06 06 00 00 f5 05 00 00 d0 05 00 00 b4 05 00 00 ........X.......................
9120 98 05 00 00 45 05 00 00 e1 04 00 00 b9 04 00 00 a8 04 00 00 70 04 00 00 37 04 00 00 f2 03 00 00 ....E...............p...7.......
9140 9c 03 00 00 74 03 00 00 09 03 00 00 e2 02 00 00 98 02 00 00 76 02 00 00 48 02 00 00 23 02 00 00 ....t...............v...H...#...
9160 11 02 00 00 c8 01 00 00 a4 01 00 00 93 01 00 00 92 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
91a0 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f ....................return.FALL_
91c0 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 69 6e 67 28 THROUGH.................warning(
91e0 22 61 76 61 74 61 72 20 77 69 74 68 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 76 61 6c 75 65 "avatar.with.an.unexpected.value
9200 2c 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 22 29 00 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 ,.fall.through").............els
9220 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 76 61 74 61 72 5f 66 69 6c 65 20 3d e:.................avatar_file.=
9240 20 61 76 61 74 61 72 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 2e 2e 2e 6f 72 20 .avatar.................#....or.
9260 69 74 20 69 73 20 61 20 65 78 74 65 72 6e 61 6c 20 6c 69 6e 6b 00 20 20 20 20 20 20 20 20 20 20 it.is.a.external.link...........
9280 20 20 65 6c 69 66 20 22 3a 2f 2f 22 20 69 6e 20 61 76 61 74 61 72 3a 00 20 20 20 20 20 20 20 20 ..elif."://".in.avatar:.........
92a0 20 20 20 20 20 20 20 20 20 20 20 20 61 76 61 74 61 72 5f 66 69 6c 65 20 3d 20 63 66 67 2e 66 6f ............avatar_file.=.cfg.fo
92c0 72 75 6d 2e 70 61 74 68 20 2b 20 27 61 76 61 74 61 72 73 2f 27 20 2b 20 66 69 6c 65 6e 61 6d 65 rum.path.+.'avatars/'.+.filename
92e0 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 69 66 20 66 61 74 74 61 63 68 74 79 ..................elif.fattachty
9300 70 65 20 3d 3d 20 31 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 76 61 pe.==.1:.....................ava
9320 74 61 72 5f 66 69 6c 65 20 3d 20 63 66 67 2e 66 6f 72 75 6d 2e 70 61 74 68 20 2b 20 27 69 6e 64 tar_file.=.cfg.forum.path.+.'ind
9340 65 78 2e 70 68 70 3f 61 63 74 69 6f 6e 3d 64 6c 61 74 74 61 63 68 3b 61 74 74 61 63 68 3d 25 64 ex.php?action=dlattach;attach=%d
9360 3b 74 79 70 65 3d 61 76 61 74 61 72 27 20 25 20 66 69 64 00 20 20 20 20 20 20 20 20 20 20 20 20 ;type=avatar'.%.fid.............
9380 20 20 20 20 65 6c 69 66 20 66 61 74 74 61 63 68 74 79 70 65 20 3d 3d 20 30 3a 20 00 20 20 20 20 ....elif.fattachtype.==.0:......
93a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 76 61 74 61 72 5f 66 69 6c 65 20 3d 20 63 66 ................avatar_file.=.cf
93c0 67 2e 66 6f 72 75 6d 2e 70 61 74 68 20 2b 20 27 61 74 74 61 63 68 6d 65 6e 74 73 2f 25 64 5f 25 g.forum.path.+.'attachments/%d_%
93e0 73 27 20 25 20 28 66 69 64 2c 20 66 68 61 73 68 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s'.%.(fid,.fhash)...............
9400 20 20 20 20 20 20 23 20 57 65 20 61 72 65 20 73 75 70 70 6f 73 65 64 20 74 6f 20 6c 6f 61 64 20 ......#.We.are.supposed.to.load.
9420 74 68 69 73 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 66 73 00 20 20 20 20 20 20 20 20 20 this.from.the.local.fs..........
9440 20 20 20 20 20 20 20 69 66 20 63 66 67 2e 66 6f 72 75 6d 2e 70 61 74 68 2e 73 74 61 72 74 73 77 .......if.cfg.forum.path.startsw
9460 69 74 68 28 27 66 69 6c 65 3a 2f 2f 27 29 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ith('file://'):.................
9480 66 69 64 2c 20 66 68 61 73 68 2c 20 66 69 6c 65 6e 61 6d 65 2c 20 66 61 74 74 61 63 68 74 79 70 fid,.fhash,.filename,.fattachtyp
94a0 65 20 3d 20 72 65 73 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 e.=.res.........................
94c0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 .............return.FALL_THROUGH
94e0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f .....................debug('idTo
9500 54 65 78 74 75 72 65 20 25 64 20 2d 3e 20 6e 6f 20 74 65 78 74 75 72 65 20 61 76 61 69 6c 61 62 Texture.%d.->.no.texture.availab
9520 6c 65 20 66 6f 72 20 74 68 69 73 20 75 73 65 72 2c 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 27 2c le.for.this.user,.fall.through',
9540 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4e 6f 20 75 70 .id).....................#.No.up
9560 6c 6f 61 64 65 64 20 61 76 61 74 61 72 20 66 6f 75 6e 64 2c 20 73 65 65 6d 73 20 6c 69 6b 65 20 loaded.avatar.found,.seems.like.
9580 74 68 65 20 75 73 65 72 20 64 69 64 6e 27 74 20 73 65 74 20 6f 6e 65 00 20 20 20 20 20 20 20 20 the.user.didn't.set.one.........
95a0 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 65 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 ........if.not.res:.............
95c0 20 20 20 20 63 75 72 2e 63 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....cur.close().................
95e0 72 65 73 20 3d 20 63 75 72 2e 66 65 74 63 68 6f 6e 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 res.=.cur.fetchone()............
9600 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e ..........................return
9620 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 .FALL_THROUGH.................ex
9640 63 65 70 74 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 20 20 20 cept.threadDbException:.........
9660 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 ............cur.=.threadDB.execu
9680 74 65 28 73 71 6c 2c 20 5b 62 62 69 64 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 te(sql,.[bbid]).................
96a0 20 20 20 20 20 20 20 20 28 61 74 74 61 63 68 6d 65 6e 74 5f 74 79 70 65 20 3d 20 30 20 4f 52 20 ........(attachment_type.=.0.OR.
96c0 61 74 74 61 63 68 6d 65 6e 74 5f 74 79 70 65 20 3d 20 31 29 20 41 4e 44 20 69 64 5f 6d 65 6d 62 attachment_type.=.1).AND.id_memb
96e0 65 72 20 3d 20 25 25 73 27 27 27 20 25 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 72 65 66 69 er.=.%%s'''.%.cfg.database.prefi
9700 78 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 20 3d 20 27 27 27 53 x.....................sql.=.'''S
9720 45 4c 45 43 54 20 69 64 5f 61 74 74 61 63 68 2c 20 66 69 6c 65 5f 68 61 73 68 2c 20 66 69 6c 65 ELECT.id_attach,.file_hash,.file
9740 6e 61 6d 65 2c 20 61 74 74 61 63 68 6d 65 6e 74 5f 74 79 70 65 20 46 52 4f 4d 20 25 73 61 74 74 name,.attachment_type.FROM.%satt
9760 61 63 68 6d 65 6e 74 73 20 57 48 45 52 45 20 61 70 70 72 6f 76 65 64 20 3d 20 74 72 75 65 20 41 achments.WHERE.approved.=.true.A
9780 4e 44 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 ND.................try:.........
97a0 20 20 20 20 20 20 20 20 23 20 45 69 74 68 65 72 20 74 68 65 20 75 73 65 72 20 68 61 73 20 6e 6f ........#.Either.the.user.has.no
97c0 6e 65 20 6f 72 20 69 74 20 69 73 20 69 6e 20 74 68 65 20 61 74 74 61 63 68 6d 65 6e 74 73 2c 20 ne.or.it.is.in.the.attachments,.
97e0 63 68 65 63 6b 20 74 68 65 72 65 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 61 check.there.............if.not.a
9800 76 61 74 61 72 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 vatar:..........................
9820 61 76 61 74 61 72 20 3d 20 72 65 73 5b 30 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 avatar.=.res[0].................
9840 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 return.FALL_THROUGH.............
9860 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f 54 65 78 74 75 72 65 20 25 64 20 2d 3e 20 75 73 65 ....debug('idToTexture.%d.->.use
9880 72 20 75 6e 6b 6e 6f 77 6e 2c 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 r.unknown,.fall.through',.id)...
98a0 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 65 73 3a 00 20 20 20 20 20 20 20 20 20 20 ..........if.not.res:...........
98c0 20 20 63 75 72 2e 63 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 20 3d 20 ..cur.close().............res.=.
98e0 63 75 72 2e 66 65 74 63 68 6f 6e 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 cur.fetchone().................r
9900 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 65 eturn.FALL_THROUGH.............e
9920 78 63 65 70 74 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 20 20 xcept.threadDbException:........
9940 20 20 20 20 20 20 20 20 20 63 75 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 74 65 28 .........cur.=.threadDB.execute(
9960 73 71 6c 2c 20 5b 62 62 69 64 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c sql,.[bbid]).................sql
9980 20 3d 20 27 53 45 4c 45 43 54 20 61 76 61 74 61 72 20 46 52 4f 4d 20 25 73 6d 65 6d 62 65 72 73 .=.'SELECT.avatar.FROM.%smembers
99a0 20 57 48 45 52 45 20 69 64 5f 6d 65 6d 62 65 72 20 3d 20 25 25 73 27 20 25 20 63 66 67 2e 64 61 .WHERE.id_member.=.%%s'.%.cfg.da
99c0 74 61 62 61 73 65 2e 70 72 65 66 69 78 00 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 tabase.prefix.............try:..
99e0 20 20 20 20 20 20 20 20 20 20 20 62 62 69 64 20 3d 20 69 64 20 2d 20 63 66 67 2e 75 73 65 72 2e ...........bbid.=.id.-.cfg.user.
9a00 69 64 5f 6f 66 66 73 65 74 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 4f 74 68 65 72 77 69 73 id_offset.............#.Otherwis
9a20 65 20 67 65 74 20 74 68 65 20 75 73 65 72 73 20 74 65 78 74 75 72 65 20 66 72 6f 6d 20 65 6c 6b e.get.the.users.texture.from.elk
9a40 61 72 74 65 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 arte............................
9a60 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 ..return.FALL_THROUGH...........
9a80 20 20 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f 54 65 78 74 75 72 65 20 25 64 20 2d 3e 20 66 ......debug('idToTexture.%d.->.f
9aa0 61 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 all.through',.id).............if
9ac0 20 69 64 20 3c 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 20 6f 72 20 6e 6f 74 20 .id.<.cfg.user.id_offset.or.not.
9ae0 63 66 67 2e 75 73 65 72 2e 61 76 61 74 61 72 5f 65 6e 61 62 6c 65 3a 00 20 20 20 20 20 20 20 20 cfg.user.avatar_enable:.........
9b00 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f 54 65 78 74 75 72 65 20 66 6f 72 20 25 64 27 2c 20 ....debug('idToTexture.for.%d',.
9b20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c id)..........................FAL
9b40 4c 5f 54 48 52 4f 55 47 48 20 3d 20 22 22 00 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 L_THROUGH.=.""..............""".
9b60 20 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 64 20 74 6f 20 67 65 74 20 74 ............Gets.called.to.get.t
9b80 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 65 78 74 75 72 65 20 66 6f 72 20 61 20 75 he.corresponding.texture.for.a.u
9ba0 73 65 72 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 ser.............""".........def.
9bc0 69 64 54 6f 54 65 78 74 75 72 65 28 73 65 6c 66 2c 20 69 64 2c 20 63 75 72 72 65 6e 74 20 3d 20 idToTexture(self,.id,.current.=.
9be0 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 None):.........@checkSecret.....
9c00 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 22 22 29 00 20 20 20 20 20 20 20 20 20 20 ....@fortifyIceFu("")...........
9c20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 ...............return.FALL_THROU
9c40 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f 4e 61 6d 65 20 25 GH.............debug('idToName.%
9c60 64 20 2d 3e 20 3f 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 d.->.?',.id)....................
9c80 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 72 65 73 5b 30 5d 00 20 20 20 20 20 20 20 20 ..........return.res[0].........
9ca0 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 69 64 54 6f 4e 61 6d 65 20 25 64 20 2d 3e 20 22 25 ........debug('idToName.%d.->."%
9cc0 73 22 27 2c 20 69 64 2c 20 72 65 73 5b 30 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s"',.id,.res[0])................
9ce0 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c ......................return.FAL
9d00 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 L_THROUGH.....................de
9d20 62 75 67 28 27 69 64 54 6f 4e 61 6d 65 20 25 64 20 2d 3e 20 22 53 75 70 65 72 55 73 65 72 22 20 bug('idToName.%d.->."SuperUser".
9d40 63 61 74 63 68 65 64 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 65 73 catched').................if.res
9d60 5b 30 5d 20 3d 3d 20 27 53 75 70 65 72 55 73 65 72 27 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 [0].==.'SuperUser':.............
9d80 69 66 20 72 65 73 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 2e 63 6c 6f 73 65 28 29 00 if.res:.............cur.close().
9da0 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 20 3d 20 63 75 72 2e 66 65 74 63 68 6f 6e 65 28 29 ............res.=.cur.fetchone()
9dc0 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 ..............................re
9de0 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 20 20 65 78 turn.FALL_THROUGH.............ex
9e00 63 65 70 74 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 20 20 20 cept.threadDbException:.........
9e20 20 20 20 20 20 20 20 20 63 75 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 74 65 28 73 ........cur.=.threadDB.execute(s
9e40 71 6c 2c 20 5b 62 62 69 64 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 71 6c 20 ql,.[bbid]).................sql.
9e60 3d 20 27 53 45 4c 45 43 54 20 6d 65 6d 62 65 72 5f 6e 61 6d 65 20 46 52 4f 4d 20 25 73 6d 65 6d =.'SELECT.member_name.FROM.%smem
9e80 62 65 72 73 20 57 48 45 52 45 20 69 64 5f 6d 65 6d 62 65 72 20 3d 20 25 25 73 27 20 25 20 63 66 bers.WHERE.id_member.=.%%s'.%.cf
9ea0 67 2e 64 61 74 61 62 61 73 65 2e 70 72 65 66 69 78 00 20 20 20 20 20 20 20 20 20 20 20 20 74 72 g.database.prefix.............tr
9ec0 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 46 65 74 63 68 20 74 68 65 20 75 73 65 72 20 y:.............#.Fetch.the.user.
9ee0 66 72 6f 6d 20 74 68 65 20 64 61 74 61 62 61 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 from.the.database...............
9f00 20 20 20 20 20 20 20 20 20 20 20 62 62 69 64 20 3d 20 69 64 20 2d 20 63 66 67 2e 75 73 65 72 2e ...........bbid.=.id.-.cfg.user.
9f20 69 64 5f 6f 66 66 73 65 74 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e id_offset.................return
9f40 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 20 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 69 64 .FALL_THROUGH..............if.id
9f60 20 3c 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 3a 00 20 20 20 20 20 20 20 20 20 .<.cfg.user.id_offset:..........
9f80 20 20 20 23 20 4d 61 6b 65 20 73 75 72 65 20 74 68 65 20 49 44 20 69 73 20 69 6e 20 6f 75 72 20 ...#.Make.sure.the.ID.is.in.our.
9fa0 72 61 6e 67 65 20 61 6e 64 20 74 72 61 6e 73 66 6f 72 6d 20 69 74 20 74 6f 20 74 68 65 20 61 63 range.and.transform.it.to.the.ac
9fc0 74 75 61 6c 20 65 6c 6b 61 72 74 65 20 75 73 65 72 20 69 64 00 20 20 20 20 20 20 20 20 20 20 20 tual.elkarte.user.id............
9fe0 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 20 3d 20 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 00 .FALL_THROUGH.=.""..............
a000 61 64 00 00 20 00 00 00 ac 01 00 00 00 10 00 00 5c 00 00 00 00 00 00 00 ce 0f 00 00 97 0f 00 00 ad..............\...............
a020 8a 0f 00 00 79 0f 00 00 6f 0e 00 00 43 0e 00 00 24 0e 00 00 fc 0d 00 00 a0 0d 00 00 7c 0d 00 00 ....y...o...C...$...........|...
a040 6f 0d 00 00 35 0d 00 00 28 0d 00 00 f5 0c 00 00 e8 0c 00 00 ce 0c 00 00 b9 0c 00 00 83 0c 00 00 o...5...(.......................
a060 73 0c 00 00 2e 0c 00 00 1e 0c 00 00 11 0c 00 00 f3 0b 00 00 b6 0b 00 00 96 0b 00 00 95 0b 00 00 s...............................
a080 7b 0b 00 00 66 0b 00 00 30 0b 00 00 20 0b 00 00 d9 0a 00 00 c9 0a 00 00 bc 0a 00 00 9e 0a 00 00 {...f...0.......................
a0a0 31 0a 00 00 d9 09 00 00 9e 09 00 00 7e 09 00 00 7d 09 00 00 63 09 00 00 4e 09 00 00 10 09 00 00 1...........~...}...c...N.......
a0c0 00 09 00 00 b2 08 00 00 8f 08 00 00 7f 08 00 00 72 08 00 00 57 08 00 00 3a 08 00 00 2d 08 00 00 ................r...W...:...-...
a0e0 1c 08 00 00 91 07 00 00 5b 07 00 00 35 07 00 00 1b 07 00 00 16 07 00 00 f5 06 00 00 dd 06 00 00 ........[...5...................
a100 c5 06 00 00 73 06 00 00 59 06 00 00 00 06 00 00 ba 05 00 00 b1 05 00 00 97 05 00 00 82 05 00 00 ....s...Y.......................
a120 4d 05 00 00 3d 05 00 00 ea 04 00 00 c1 04 00 00 b1 04 00 00 a4 04 00 00 86 04 00 00 2b 04 00 00 M...=.......................+...
a140 cc 03 00 00 98 03 00 00 78 03 00 00 6f 03 00 00 55 03 00 00 40 03 00 00 05 03 00 00 f5 02 00 00 ........x...o...U...@...........
a160 9f 02 00 00 8f 02 00 00 82 02 00 00 6b 02 00 00 4d 02 00 00 40 02 00 00 18 02 00 00 dd 01 00 00 ............k...M...@...........
a180 b9 01 00 00 ac 01 00 00 ab 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a1a0 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 ................................
a1c0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 .........return.FALL_THROUGH....
a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 73 65 74 54 65 78 74 75 72 65 20 25 .............debug('setTexture.%
a200 64 20 2d 3e 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 d.->.fall.through',.id).........
a220 20 20 20 20 69 66 20 69 64 20 3c 20 63 66 67 2e 75 73 65 72 2e 69 64 5f 6f 66 66 73 65 74 3a 00 ....if.id.<.cfg.user.id_offset:.
a240 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c 4c 5f 54 48 .........................FALL_TH
a260 52 4f 55 47 48 20 3d 20 2d 31 00 20 20 20 20 20 20 20 20 20 20 20 20 46 41 49 4c 45 44 20 3d 20 ROUGH.=.-1.............FAILED.=.
a280 30 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 0.........................."""..
a2a0 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 ...........Gets.called.when.the.
a2c0 73 65 72 76 65 72 20 69 73 20 61 73 6b 65 64 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 20 75 73 server.is.asked.to.update.the.us
a2e0 65 72 20 74 65 78 74 75 72 65 20 6f 66 20 61 20 75 73 65 72 00 20 20 20 20 20 20 20 20 20 20 20 er.texture.of.a.user............
a300 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 73 65 74 54 65 78 74 75 72 65 28 73 65 6c 66 .""".........def.setTexture(self
a320 2c 20 69 64 2c 20 74 65 78 74 75 72 65 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 ,.id,.texture,.current.=.None):.
a340 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 66 6f ........@checkSecret.........@fo
a360 72 74 69 66 79 49 63 65 46 75 28 2d 31 29 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 rtifyIceFu(-1)..................
a380 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 ....return.FALL_THROUGH.........
a3a0 20 20 20 20 64 65 62 75 67 28 27 73 65 74 49 6e 66 6f 20 25 64 20 2d 3e 20 66 61 6c 6c 20 74 68 ....debug('setInfo.%d.->.fall.th
a3c0 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 74 68 65 20 65 6c rough',.id).............#.the.el
a3e0 6b 61 72 74 65 20 64 61 74 61 62 61 73 65 20 73 6f 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c karte.database.so.the.additional
a400 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 73 74 6f 72 65 64 20 69 6e 20 6d 75 72 6d 75 72 .information.is.stored.in.murmur
a420 73 20 64 61 74 61 62 61 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 52 65 74 75 72 6e 20 s.database.............#.Return.
a440 2d 31 20 74 6f 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 20 74 6f 20 74 68 65 20 69 6e 74 65 72 6e -1.to.fall.through.to.the.intern
a460 61 6c 20 73 65 72 76 65 72 20 68 61 6e 64 6c 65 72 2e 20 57 65 20 6d 75 73 74 20 6e 6f 74 20 6d al.server.handler..We.must.not.m
a480 6f 64 69 66 79 00 20 20 20 20 20 20 20 20 20 20 20 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 20 3d odify.............FALL_THROUGH.=
a4a0 20 2d 31 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 .-1.........................."""
a4c0 00 20 20 20 20 20 20 20 20 20 20 20 20 61 62 6f 75 74 20 61 20 75 73 65 72 20 74 6f 20 68 69 73 .............about.a.user.to.his
a4e0 20 64 61 74 61 62 61 73 65 00 20 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 .database.............Gets.calle
a500 64 20 77 68 65 6e 20 74 68 65 20 73 65 72 76 65 72 20 69 73 20 73 75 70 70 6f 73 65 64 20 74 6f d.when.the.server.is.supposed.to
a520 20 73 61 76 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 00 20 20 20 .save.additional.information....
a540 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 73 65 74 49 6e 66 6f .........""".........def.setInfo
a560 28 73 65 6c 66 2c 20 69 64 2c 20 69 6e 66 6f 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 (self,.id,.info,.current.=.None)
a580 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 :.........@checkSecret.........@
a5a0 66 6f 72 74 69 66 79 49 63 65 46 75 28 2d 31 29 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 fortifyIceFu(-1)................
a5c0 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 69 63 74 28 5b 28 61 20 2b 20 63 66 67 2e 75 73 65 72 ......return.dict([(a.+.cfg.user
a5e0 2e 69 64 5f 6f 66 66 73 65 74 2c 20 62 29 20 66 6f 72 20 61 2c 62 20 69 6e 20 72 65 73 5d 29 00 .id_offset,.b).for.a,b.in.res]).
a600 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 20 28 27 67 65 74 52 65 67 69 73 74 65 72 65 ............debug.('getRegistere
a620 64 55 73 65 72 73 20 2d 3e 20 25 64 20 72 65 73 75 6c 74 73 20 66 6f 72 20 66 69 6c 74 65 72 20 dUsers.->.%d.results.for.filter.
a640 22 25 73 22 27 2c 20 6c 65 6e 28 72 65 73 29 2c 20 66 69 6c 74 65 72 29 00 20 20 20 20 20 20 20 "%s"',.len(res),.filter)........
a660 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 7d 00 20 20 20 20 20 20 20 20 20 20 20 20 20 .........return.{}..............
a680 20 20 20 64 65 62 75 67 28 27 67 65 74 52 65 67 69 73 74 65 72 65 64 55 73 65 72 73 20 2d 3e 20 ...debug('getRegisteredUsers.->.
a6a0 65 6d 70 74 79 20 6c 69 73 74 20 66 6f 72 20 66 69 6c 74 65 72 20 22 25 73 22 27 2c 20 66 69 6c empty.list.for.filter."%s"',.fil
a6c0 74 65 72 29 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 72 65 73 3a 00 20 20 20 ter).............if.not.res:....
a6e0 20 20 20 20 20 20 20 20 20 63 75 72 2e 63 6c 6f 73 65 28 29 00 20 20 20 20 20 20 20 20 20 20 20 .........cur.close()............
a700 20 72 65 73 20 3d 20 63 75 72 2e 66 65 74 63 68 61 6c 6c 28 29 00 20 20 20 20 00 20 20 20 20 20 .res.=.cur.fetchall()...........
a720 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 7b 7d 00 20 20 20 20 20 20 20 20 20 20 20 ...........return.{}............
a740 20 65 78 63 65 70 74 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 3a 00 20 20 20 20 20 .except.threadDbException:......
a760 20 20 20 20 20 20 20 20 20 20 20 63 75 72 20 3d 20 74 68 72 65 61 64 44 42 2e 65 78 65 63 75 74 ...........cur.=.threadDB.execut
a780 65 28 73 71 6c 2c 20 5b 66 69 6c 74 65 72 5d 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e(sql,.[filter])................
a7a0 20 73 71 6c 20 3d 20 27 53 45 4c 45 43 54 20 69 64 5f 6d 65 6d 62 65 72 2c 20 6d 65 6d 62 65 72 .sql.=.'SELECT.id_member,.member
a7c0 5f 6e 61 6d 65 20 46 52 4f 4d 20 25 73 6d 65 6d 62 65 72 73 20 57 48 45 52 45 20 69 73 5f 61 63 _name.FROM.%smembers.WHERE.is_ac
a7e0 74 69 76 61 74 65 64 20 3d 20 31 20 41 4e 44 20 6d 65 6d 62 65 72 5f 6e 61 6d 65 20 4c 49 4b 45 tivated.=.1.AND.member_name.LIKE
a800 20 25 25 73 27 20 25 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 72 65 66 69 78 00 20 20 20 20 .%%s'.%.cfg.database.prefix.....
a820 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 ........try:....................
a840 20 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 20 3d 20 27 25 27 00 20 20 20 20 20 20 20 20 20 ..........filter.=.'%'..........
a860 20 20 20 69 66 20 6e 6f 74 20 66 69 6c 74 65 72 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 ...if.not.filter:...............
a880 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 ...........""".............filte
a8a0 72 20 61 73 20 61 20 73 75 62 73 74 72 69 6e 67 2e 00 20 20 20 20 20 20 20 20 20 20 20 20 52 65 r.as.a.substring..............Re
a8c0 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 6e 61 6d 65 73 20 69 6e 20 74 68 65 turns.a.list.of.usernames.in.the
a8e0 20 65 6c 6b 61 72 74 65 20 64 61 74 61 62 61 73 65 20 77 68 69 63 68 20 63 6f 6e 74 61 69 6e 00 .elkarte.database.which.contain.
a900 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 67 65 74 52 ............""".........def.getR
a920 65 67 69 73 74 65 72 65 64 55 73 65 72 73 28 73 65 6c 66 2c 20 66 69 6c 74 65 72 2c 20 63 75 72 egisteredUsers(self,.filter,.cur
a940 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 rent.=.None):.........@checkSecr
a960 65 74 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 7b 7d 29 00 00 20 20 et.........@fortifyIceFu({})....
a980 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 ..........return.FALL_THROUGH...
a9a0 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 75 6e 72 65 67 69 73 74 65 72 55 73 65 72 20 ..........debug('unregisterUser.
a9c0 25 64 20 2d 3e 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 %d.->.fall.through',.id)........
a9e0 20 20 20 20 20 23 20 62 75 74 20 77 65 20 63 61 6e 20 6d 61 6b 65 20 6d 75 72 6d 75 72 20 64 65 .....#.but.we.can.make.murmur.de
aa00 6c 65 74 65 20 61 6c 6c 20 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 lete.all.additional.information.
aa20 69 74 20 67 6f 74 20 74 68 69 73 20 77 61 79 2e 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 52 it.got.this.way..............#.R
aa40 65 74 75 72 6e 20 2d 31 20 74 6f 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 20 74 6f 20 69 6e 74 65 eturn.-1.to.fall.through.to.inte
aa60 72 6e 61 6c 20 73 65 72 76 65 72 20 64 61 74 61 62 61 73 65 2c 20 77 65 20 77 69 6c 6c 20 6e 6f rnal.server.database,.we.will.no
aa80 74 20 6d 6f 64 69 66 79 20 74 68 65 20 65 6c 6b 61 72 74 65 20 64 61 74 61 62 61 73 65 00 20 20 t.modify.the.elkarte.database...
aaa0 20 20 20 20 20 20 20 20 20 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 20 3d 20 2d 31 00 20 20 20 20 ..........FALL_THROUGH.=.-1.....
aac0 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 ....................."""........
aae0 20 20 20 20 20 47 65 74 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 73 65 72 76 65 72 .....Gets.called.when.the.server
ab00 20 69 73 20 61 73 6b 65 64 20 74 6f 20 75 6e 72 65 67 69 73 74 65 72 20 61 20 75 73 65 72 2e 00 .is.asked.to.unregister.a.user..
ab20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 75 6e 72 65 ............""".........def.unre
ab40 67 69 73 74 65 72 55 73 65 72 28 73 65 6c 66 2c 20 69 64 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e gisterUser(self,.id,.current.=.N
ab60 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 one):.........@checkSecret......
ab80 20 20 20 40 66 6f 72 74 69 66 79 49 63 65 46 75 28 2d 31 29 00 00 20 20 20 20 20 20 20 20 20 20 ...@fortifyIceFu(-1)............
aba0 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 20 20 20 20 ..return.FALL_THROUGH...........
abc0 20 20 64 65 62 75 67 28 27 72 65 67 69 73 74 65 72 55 73 65 72 20 22 25 73 22 20 2d 3e 20 66 61 ..debug('registerUser."%s".->.fa
abe0 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 6e 61 6d 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 46 ll.through',.name).............F
ac00 41 4c 4c 5f 54 48 52 4f 55 47 48 20 3d 20 2d 32 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 ALL_THROUGH.=.-2................
ac20 20 20 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 20 20 20 20 47 65 74 73 20 63 ..........""".............Gets.c
ac40 61 6c 6c 65 64 20 77 68 65 6e 20 74 68 65 20 73 65 72 76 65 72 20 69 73 20 61 73 6b 65 64 20 74 alled.when.the.server.is.asked.t
ac60 6f 20 72 65 67 69 73 74 65 72 20 61 20 75 73 65 72 2e 00 20 20 20 20 20 20 20 20 20 20 20 20 22 o.register.a.user.............."
ac80 22 22 00 20 20 20 20 20 20 20 20 64 65 66 20 72 65 67 69 73 74 65 72 55 73 65 72 28 73 65 6c 66 "".........def.registerUser(self
aca0 2c 20 6e 61 6d 65 2c 20 63 75 72 72 65 6e 74 20 3d 20 4e 6f 6e 65 29 3a 00 20 20 20 20 20 20 20 ,.name,.current.=.None):........
acc0 20 40 63 68 65 63 6b 53 65 63 72 65 74 00 20 20 20 20 20 20 20 20 40 66 6f 72 74 69 66 79 49 63 .@checkSecret.........@fortifyIc
ace0 65 46 75 28 2d 32 29 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 eFu(-2).........................
ad00 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 74 65 78 74 75 72 65 5f 63 61 63 68 65 5b 61 76 61 74 61 .return.self.texture_cache[avata
ad20 72 5f 66 69 6c 65 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 r_file].........................
ad40 20 73 65 6c 66 2e 74 65 78 74 75 72 65 5f 63 61 63 68 65 5b 61 76 61 74 61 72 5f 66 69 6c 65 5d .self.texture_cache[avatar_file]
ad60 20 3d 20 66 69 6c 65 63 6f 6e 74 65 6e 74 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 .=.filecontent..................
ad80 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 ............return.FALL_THROUGH.
ada0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 61 72 6e 69 6e 67 28 27 49 6d 61 67 65 20 64 ................warning('Image.d
adc0 6f 77 6e 6c 6f 61 64 20 66 6f 72 20 22 25 73 22 20 28 25 64 29 20 66 61 69 6c 65 64 3a 20 25 73 ownload.for."%s".(%d).failed:.%s
ade0 27 2c 20 61 76 61 74 61 72 5f 66 69 6c 65 2c 20 69 64 2c 20 73 74 72 28 65 29 29 00 20 20 20 20 ',.avatar_file,.id,.str(e)).....
ae00 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 75 72 6c 6c 69 62 32 2e 55 52 4c 45 72 72 6f 72 2c ........except.urllib2.URLError,
ae20 20 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 61 6e 64 6c 65 2e 63 6c 6f 73 65 .e:.................handle.close
ae40 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 63 6f 6e 74 65 6e 74 20 3d ().................filecontent.=
ae60 20 68 61 6e 64 6c 65 2e 72 65 61 64 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 .handle.read().................h
ae80 61 6e 64 6c 65 20 3d 20 75 72 6c 6c 69 62 32 2e 75 72 6c 6f 70 65 6e 28 75 72 6c 6c 69 62 32 2e andle.=.urllib2.urlopen(urllib2.
aea0 52 65 71 75 65 73 74 28 61 76 61 74 61 72 5f 66 69 6c 65 2c 20 68 65 61 64 65 72 73 3d 7b 27 41 Request(avatar_file,.headers={'A
aec0 63 63 65 70 74 27 3a 20 27 74 65 78 74 2f 68 74 6d 6c 2c 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 ccept':.'text/html,application/x
aee0 68 74 6d 6c 2b 78 6d 6c 2c 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 6d 6c 3b 71 3d 30 2e 39 2c 2a html+xml,application/xml;q=0.9,*
af00 2f 2a 3b 71 3d 30 2e 38 27 2c 20 27 55 73 65 72 2d 41 67 65 6e 74 27 3a 20 27 4d 6f 7a 69 6c 6c /*;q=0.8',.'User-Agent':.'Mozill
af20 61 2f 35 2e 30 20 28 57 69 6e 64 6f 77 73 3b 20 55 3b 20 57 69 6e 64 6f 77 73 20 4e 54 20 35 2e a/5.0.(Windows;.U;.Windows.NT.5.
af40 31 3b 20 65 6e 2d 55 53 3b 20 72 76 3a 31 2e 39 2e 30 2e 37 29 20 47 65 63 6b 6f 2f 32 30 30 39 1;.en-US;.rv:1.9.0.7).Gecko/2009
af60 30 32 31 39 31 30 20 46 69 72 65 66 6f 78 2f 33 2e 30 2e 37 27 7d 29 29 00 20 20 20 20 20 20 20 021910.Firefox/3.0.7'}))........
af80 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 .....try:.......................
afa0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 74 65 78 74 75 72 65 5f 63 61 63 68 65 .......return.self.texture_cache
afc0 5b 61 76 61 74 61 72 5f 66 69 6c 65 5d 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 61 76 61 [avatar_file].............if.ava
afe0 74 61 72 5f 66 69 6c 65 20 69 6e 20 73 65 6c 66 2e 74 65 78 74 75 72 65 5f 63 61 63 68 65 3a 00 tar_file.in.self.texture_cache:.
b000 61 64 00 00 14 00 00 00 cc 01 00 00 00 10 00 00 67 00 00 00 00 00 00 00 d9 0f 00 00 7b 0f 00 00 ad..............g...........{...
b020 46 0f 00 00 28 0f 00 00 1b 0f 00 00 d1 0e 00 00 9a 0e 00 00 7a 0e 00 00 71 0e 00 00 4d 0e 00 00 F...(...............z...q...M...
b040 41 0e 00 00 05 0e 00 00 f1 0d 00 00 e5 0d 00 00 dc 0d 00 00 c0 0d 00 00 9a 0d 00 00 71 0d 00 00 A...........................q...
b060 64 0d 00 00 41 0d 00 00 1d 0d 00 00 10 0d 00 00 e4 0c 00 00 a5 0c 00 00 98 0c 00 00 74 0c 00 00 d...A.......................t...
b080 4d 0c 00 00 40 0c 00 00 1e 0c 00 00 f9 0b 00 00 f8 0b 00 00 f2 0b 00 00 d2 0b 00 00 cc 0b 00 00 M...@...........................
b0a0 9a 0b 00 00 72 0b 00 00 2a 0b 00 00 09 0b 00 00 d6 0a 00 00 cd 0a 00 00 88 0a 00 00 63 0a 00 00 ....r...*...................c...
b0c0 5e 0a 00 00 3a 0a 00 00 02 0a 00 00 e4 09 00 00 e3 09 00 00 e2 09 00 00 e1 09 00 00 df 09 00 00 ^...:...........................
b0e0 a1 09 00 00 9f 09 00 00 6d 09 00 00 65 09 00 00 28 09 00 00 20 09 00 00 ca 08 00 00 8a 08 00 00 ........m...e...(...............
b100 89 08 00 00 87 08 00 00 71 08 00 00 6f 08 00 00 54 08 00 00 34 08 00 00 18 08 00 00 f3 07 00 00 ........q...o...T...4...........
b120 a4 07 00 00 54 07 00 00 0b 07 00 00 bc 06 00 00 8a 06 00 00 36 06 00 00 f7 05 00 00 a9 05 00 00 ....T...............6...........
b140 63 05 00 00 3a 05 00 00 35 05 00 00 04 05 00 00 e8 04 00 00 d4 04 00 00 cb 04 00 00 b2 04 00 00 c...:...5.......................
b160 a9 04 00 00 7f 04 00 00 66 04 00 00 0d 04 00 00 f9 03 00 00 f0 03 00 00 e7 03 00 00 bd 03 00 00 ........f.......................
b180 a2 03 00 00 4e 03 00 00 ed 02 00 00 d9 02 00 00 d4 02 00 00 cf 02 00 00 b7 02 00 00 a2 02 00 00 ....N...........................
b1a0 95 02 00 00 67 02 00 00 4c 02 00 00 25 02 00 00 cc 01 00 00 cb 01 00 00 00 00 00 00 00 00 00 00 ....g...L...%...................
b1c0 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 3e 3e 73 ........................print>>s
b1e0 79 73 2e 73 74 64 65 72 72 2c 20 27 46 61 74 61 6c 20 65 72 72 6f 72 2c 20 63 6f 75 6c 64 20 6e ys.stderr,.'Fatal.error,.could.n
b200 6f 74 20 6f 70 65 6e 20 6c 6f 67 66 69 6c 65 20 22 25 73 22 27 20 25 20 63 66 67 2e 6c 6f 67 2e ot.open.logfile."%s"'.%.cfg.log.
b220 66 69 6c 65 00 20 20 20 20 20 20 20 20 20 20 20 20 23 70 72 69 6e 74 3e 3e 73 79 73 2e 73 74 64 file.............#print>>sys.std
b240 65 72 72 2c 20 73 74 72 28 65 29 00 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 49 4f 45 72 72 err,.str(e).........except.IOErr
b260 6f 72 2c 20 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 66 69 6c 65 20 3d 20 6f 70 65 or,.e:.............logfile.=.ope
b280 6e 28 63 66 67 2e 6c 6f 67 2e 66 69 6c 65 2c 20 27 61 27 29 00 20 20 20 20 20 20 20 20 74 72 79 n(cfg.log.file,.'a').........try
b2a0 3a 00 20 20 20 20 69 66 20 63 66 67 2e 6c 6f 67 2e 66 69 6c 65 3a 00 20 20 20 20 23 20 49 6e 69 :.....if.cfg.log.file:.....#.Ini
b2c0 74 69 61 6c 69 7a 65 20 6c 6f 67 67 65 72 00 20 20 20 20 00 20 20 20 20 00 20 20 20 20 20 20 20 tialize.logger..................
b2e0 20 73 79 73 2e 65 78 69 74 28 31 29 00 20 20 20 20 20 20 20 20 27 70 6c 65 61 73 65 20 69 6e 73 .sys.exit(1).........'please.ins
b300 74 61 6c 6c 20 74 68 65 20 6d 69 73 73 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 79 20 61 6e 64 20 tall.the.missing.dependency.and.
b320 72 65 73 74 61 72 74 20 74 68 65 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 27 20 25 20 63 66 67 restart.the.authenticator'.%.cfg
b340 2e 64 61 74 61 62 61 73 65 2e 6c 69 62 00 20 20 20 20 20 20 20 20 70 72 69 6e 74 3e 3e 73 79 73 .database.lib.........print>>sys
b360 2e 73 74 64 65 72 72 2c 20 27 46 61 74 61 6c 20 65 72 72 6f 72 2c 20 63 6f 75 6c 64 20 6e 6f 74 .stderr,.'Fatal.error,.could.not
b380 20 69 6d 70 6f 72 74 20 64 61 74 61 62 61 73 65 20 6c 69 62 72 61 72 79 20 22 25 73 22 2c 20 27 .import.database.library."%s",.'
b3a0 5c 00 20 20 20 20 65 78 63 65 70 74 20 49 6d 70 6f 72 74 45 72 72 6f 72 2c 20 65 3a 00 20 20 20 \.....except.ImportError,.e:....
b3c0 20 20 20 20 20 64 62 20 3d 20 5f 5f 69 6d 70 6f 72 74 5f 5f 28 63 66 67 2e 64 61 74 61 62 61 73 .....db.=.__import__(cfg.databas
b3e0 65 2e 6c 69 62 29 00 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 e.lib).....try:.................
b400 20 73 79 73 2e 65 78 69 74 28 31 29 00 20 20 20 20 20 20 20 20 70 72 69 6e 74 3e 3e 73 79 73 2e .sys.exit(1).........print>>sys.
b420 73 74 64 65 72 72 2c 20 27 46 61 74 61 6c 20 65 72 72 6f 72 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 stderr,.'Fatal.error,.could.not.
b440 6c 6f 61 64 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 66 72 6f 6d 20 22 25 73 22 27 20 25 20 63 66 load.config.file.from."%s"'.%.cf
b460 67 66 69 6c 65 00 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 2c 20 65 3a 00 20 gfile.....except.Exception,.e:..
b480 20 20 20 20 20 20 20 63 66 67 20 3d 20 63 6f 6e 66 69 67 28 6f 70 74 69 6f 6e 2e 69 6e 69 2c 20 .......cfg.=.config(option.ini,.
b4a0 64 65 66 61 75 6c 74 29 00 20 20 20 20 74 72 79 3a 00 20 20 20 20 23 20 4c 6f 61 64 20 63 6f 6e default).....try:.....#.Load.con
b4c0 66 69 67 75 72 61 74 69 6f 6e 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 73 79 73 2e figuration..................sys.
b4e0 65 78 69 74 28 31 29 00 20 20 20 20 20 20 20 20 70 61 72 73 65 72 2e 70 72 69 6e 74 5f 68 65 6c exit(1).........parser.print_hel
b500 70 28 29 00 20 20 20 20 69 66 20 6f 70 74 69 6f 6e 2e 66 6f 72 63 65 5f 64 61 65 6d 6f 6e 20 61 p().....if.option.force_daemon.a
b520 6e 64 20 6f 70 74 69 6f 6e 2e 66 6f 72 63 65 5f 61 70 70 3a 00 20 20 20 20 00 20 20 20 20 28 6f nd.option.force_app:..........(o
b540 70 74 69 6f 6e 2c 20 61 72 67 73 29 20 3d 20 70 61 72 73 65 72 2e 70 61 72 73 65 5f 61 72 67 73 ption,.args).=.parser.parse_args
b560 28 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 20 3d 20 ().......................help.=.
b580 27 64 6f 20 6e 6f 74 20 72 75 6e 20 61 73 20 64 61 65 6d 6f 6e 27 2c 20 64 65 66 61 75 6c 74 20 'do.not.run.as.daemon',.default.
b5a0 3d 20 46 61 6c 73 65 29 00 20 20 20 20 70 61 72 73 65 72 2e 61 64 64 5f 6f 70 74 69 6f 6e 28 27 =.False).....parser.add_option('
b5c0 2d 61 27 2c 20 27 2d 2d 61 70 70 27 2c 20 61 63 74 69 6f 6e 3d 27 73 74 6f 72 65 5f 74 72 75 65 -a',.'--app',.action='store_true
b5e0 27 2c 20 64 65 73 74 20 3d 20 27 66 6f 72 63 65 5f 61 70 70 27 2c 00 20 20 20 20 20 20 20 20 20 ',.dest.=.'force_app',..........
b600 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 20 3d 20 27 72 75 6e 20 61 73 20 64 61 65 6d .............help.=.'run.as.daem
b620 6f 6e 27 2c 20 64 65 66 61 75 6c 74 20 3d 20 46 61 6c 73 65 29 00 20 20 20 20 70 61 72 73 65 72 on',.default.=.False).....parser
b640 2e 61 64 64 5f 6f 70 74 69 6f 6e 28 27 2d 64 27 2c 20 27 2d 2d 64 61 65 6d 6f 6e 27 2c 20 61 63 .add_option('-d',.'--daemon',.ac
b660 74 69 6f 6e 3d 27 73 74 6f 72 65 5f 74 72 75 65 27 2c 20 64 65 73 74 20 3d 20 27 66 6f 72 63 65 tion='store_true',.dest.=.'force
b680 5f 64 61 65 6d 6f 6e 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 _daemon',.......................
b6a0 68 65 6c 70 20 3d 20 27 6f 6e 6c 79 20 65 72 72 6f 72 20 6f 75 74 70 75 74 27 29 00 20 20 20 20 help.=.'only.error.output').....
b6c0 70 61 72 73 65 72 2e 61 64 64 5f 6f 70 74 69 6f 6e 28 27 2d 71 27 2c 20 27 2d 2d 71 75 69 65 74 parser.add_option('-q',.'--quiet
b6e0 27 2c 20 61 63 74 69 6f 6e 3d 27 73 74 6f 72 65 5f 66 61 6c 73 65 27 2c 20 64 65 73 74 20 3d 20 ',.action='store_false',.dest.=.
b700 27 76 65 72 62 6f 73 65 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'verbose',......................
b720 20 68 65 6c 70 20 3d 20 27 76 65 72 62 6f 73 65 20 6f 75 74 70 75 74 20 5b 64 65 66 61 75 6c 74 .help.=.'verbose.output.[default
b740 5d 27 2c 20 64 65 66 61 75 6c 74 20 3d 20 54 72 75 65 29 00 20 20 20 20 70 61 72 73 65 72 2e 61 ]',.default.=.True).....parser.a
b760 64 64 5f 6f 70 74 69 6f 6e 28 27 2d 76 27 2c 20 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 61 63 74 dd_option('-v',.'--verbose',.act
b780 69 6f 6e 3d 27 73 74 6f 72 65 5f 74 72 75 65 27 2c 20 64 65 73 74 20 3d 20 27 76 65 72 62 6f 73 ion='store_true',.dest.=.'verbos
b7a0 65 27 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 6c 70 20 3d e',.......................help.=
b7c0 20 27 6c 6f 61 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 66 72 6f 6d 20 49 4e 49 27 2c 20 .'load.configuration.from.INI',.
b7e0 64 65 66 61 75 6c 74 20 3d 20 63 66 67 66 69 6c 65 29 00 20 20 20 20 70 61 72 73 65 72 2e 61 64 default.=.cfgfile).....parser.ad
b800 64 5f 6f 70 74 69 6f 6e 28 27 2d 69 27 2c 20 27 2d 2d 69 6e 69 27 2c 00 20 20 20 20 70 61 72 73 d_option('-i',.'--ini',.....pars
b820 65 72 20 3d 20 4f 70 74 69 6f 6e 50 61 72 73 65 72 28 29 00 20 20 20 20 23 20 50 61 72 73 65 20 er.=.OptionParser().....#.Parse.
b840 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 6f 70 74 69 6f 6e 73 00 69 66 20 5f 5f 6e 61 6d 65 5f 5f 20 commandline.options.if.__name__.
b860 3d 3d 20 27 5f 5f 6d 61 69 6e 5f 5f 27 3a 00 23 00 23 2d 2d 2d 20 53 74 61 72 74 20 6f 66 20 70 ==.'__main__':.#.#---.Start.of.p
b880 72 6f 67 72 61 6d 00 23 00 00 20 20 20 20 72 65 74 75 72 6e 20 62 63 72 79 70 74 2e 68 61 73 68 rogram.#......return.bcrypt.hash
b8a0 70 77 28 70 61 73 73 32 35 36 2c 20 68 61 73 68 2e 65 6e 63 6f 64 65 28 27 75 74 66 2d 38 27 29 pw(pass256,.hash.encode('utf-8')
b8c0 29 20 3d 3d 20 68 61 73 68 00 20 20 20 20 70 61 73 73 32 35 36 20 3d 20 68 61 73 68 6c 69 62 2e ).==.hash.....pass256.=.hashlib.
b8e0 73 68 61 32 35 36 28 75 73 65 72 6e 61 6d 65 2e 6c 6f 77 65 72 28 29 2e 65 6e 63 6f 64 65 28 27 sha256(username.lower().encode('
b900 75 74 66 2d 38 27 29 20 2b 20 70 61 73 73 77 6f 72 64 29 2e 68 65 78 64 69 67 65 73 74 28 29 00 utf-8').+.password).hexdigest().
b920 20 20 20 20 22 22 22 00 20 20 20 20 50 79 74 68 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f ....""".....Python.implementatio
b940 6e 20 6f 66 20 74 68 65 20 65 6c 6b 61 72 74 65 20 63 68 65 63 6b 20 68 61 73 68 20 66 75 6e 63 n.of.the.elkarte.check.hash.func
b960 74 69 6f 6e 00 20 20 20 20 22 22 22 00 64 65 66 20 65 6c 6b 61 72 74 65 5f 63 68 65 63 6b 5f 68 tion.....""".def.elkarte_check_h
b980 61 73 68 28 70 61 73 73 77 6f 72 64 2c 20 68 61 73 68 2c 20 75 73 65 72 6e 61 6d 65 29 3a 00 23 ash(password,.hash,.username):.#
b9a0 00 23 2d 2d 2d 20 50 79 74 68 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 .#---.Python.implementation.of.t
b9c0 68 65 20 65 6c 6b 61 72 74 65 20 63 68 65 63 6b 20 68 61 73 68 20 66 75 6e 63 74 69 6f 6e 00 23 he.elkarte.check.hash.function.#
b9e0 00 00 00 00 20 20 20 20 69 6e 66 6f 28 27 53 68 75 74 64 6f 77 6e 20 63 6f 6d 70 6c 65 74 65 27 ........info('Shutdown.complete'
ba00 29 00 20 20 20 20 73 74 61 74 65 20 3d 20 61 70 70 2e 6d 61 69 6e 28 73 79 73 2e 61 72 67 76 5b ).....state.=.app.main(sys.argv[
ba20 3a 31 5d 2c 20 69 6e 69 74 44 61 74 61 20 3d 20 69 6e 69 74 64 61 74 61 29 00 20 20 20 20 61 70 :1],.initData.=.initdata).....ap
ba40 70 20 3d 20 65 6c 6b 61 72 74 65 61 75 74 68 65 6e 74 69 63 61 74 6f 72 41 70 70 28 29 00 20 20 p.=.elkarteauthenticatorApp()...
ba60 20 20 00 20 20 20 20 69 6e 69 74 64 61 74 61 2e 6c 6f 67 67 65 72 20 3d 20 43 75 73 74 6f 6d 4c .......initdata.logger.=.CustomL
ba80 6f 67 67 65 72 28 29 00 20 20 20 20 69 6e 69 74 64 61 74 61 2e 70 72 6f 70 65 72 74 69 65 73 2e ogger().....initdata.properties.
baa0 73 65 74 50 72 6f 70 65 72 74 79 28 27 49 63 65 2e 49 6d 70 6c 69 63 69 74 43 6f 6e 74 65 78 74 setProperty('Ice.ImplicitContext
bac0 27 2c 20 27 53 68 61 72 65 64 27 29 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 69 6e ',.'Shared')..................in
bae0 69 74 64 61 74 61 2e 70 72 6f 70 65 72 74 69 65 73 2e 73 65 74 50 72 6f 70 65 72 74 79 28 70 72 itdata.properties.setProperty(pr
bb00 6f 70 2c 20 76 61 6c 29 00 20 20 20 20 66 6f 72 20 70 72 6f 70 2c 20 76 61 6c 20 69 6e 20 63 66 op,.val).....for.prop,.val.in.cf
bb20 67 2e 69 63 65 72 61 77 3a 00 20 20 20 20 69 6e 69 74 64 61 74 61 2e 70 72 6f 70 65 72 74 69 65 g.iceraw:.....initdata.propertie
bb40 73 20 3d 20 49 63 65 2e 63 72 65 61 74 65 50 72 6f 70 65 72 74 69 65 73 28 5b 5d 2c 20 69 6e 69 s.=.Ice.createProperties([],.ini
bb60 74 64 61 74 61 2e 70 72 6f 70 65 72 74 69 65 73 29 00 20 20 20 20 69 6e 69 74 64 61 74 61 20 3d tdata.properties).....initdata.=
bb80 20 49 63 65 2e 49 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 44 61 74 61 28 29 00 20 20 20 20 69 6e .Ice.InitializationData().....in
bba0 66 6f 28 27 53 74 61 72 74 69 6e 67 20 65 6c 6b 61 72 74 65 20 6d 75 6d 62 6c 65 20 61 75 74 68 fo('Starting.elkarte.mumble.auth
bbc0 65 6e 74 69 63 61 74 6f 72 27 29 00 20 20 20 20 23 00 20 20 20 20 23 2d 2d 2d 20 53 74 61 72 74 enticator').....#.....#---.Start
bbe0 20 6f 66 20 61 75 74 68 65 6e 74 69 63 61 74 6f 72 00 20 20 20 20 23 00 00 20 20 20 20 20 20 20 .of.authenticator.....#.........
bc00 20 20 20 20 20 73 65 6c 66 2e 5f 6c 6f 67 2e 65 72 72 6f 72 28 6d 65 73 73 61 67 65 29 00 20 20 .....self._log.error(message)...
bc20 20 20 20 20 20 20 64 65 66 20 65 72 72 6f 72 28 73 65 6c 66 2c 20 6d 65 73 73 61 67 65 29 3a 00 ......def.error(self,.message):.
bc40 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 6c .........................self._l
bc60 6f 67 2e 77 61 72 6e 69 6e 67 28 6d 65 73 73 61 67 65 29 00 20 20 20 20 20 20 20 20 64 65 66 20 og.warning(message).........def.
bc80 77 61 72 6e 69 6e 67 28 73 65 6c 66 2c 20 6d 65 73 73 61 67 65 29 3a 00 20 20 20 20 20 20 20 20 warning(self,.message):.........
bca0 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 6c 6f 67 2e 64 65 62 75 67 .................self._log.debug
bcc0 28 27 54 72 61 63 65 20 25 73 3a 20 25 73 27 2c 20 63 61 74 65 67 6f 72 79 2c 20 6d 65 73 73 61 ('Trace.%s:.%s',.category,.messa
bce0 67 65 29 00 20 20 20 20 20 20 20 20 64 65 66 20 74 72 61 63 65 28 73 65 6c 66 2c 20 63 61 74 65 ge).........def.trace(self,.cate
bd00 67 6f 72 79 2c 20 6d 65 73 73 61 67 65 29 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 gory,.message):.................
bd20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 6c 6f 67 2e 69 6e 66 6f 28 6d 65 73 73 61 67 65 29 .........self._log.info(message)
bd40 00 20 20 20 20 20 20 20 20 64 65 66 20 5f 70 72 69 6e 74 28 73 65 6c 66 2c 20 6d 65 73 73 61 67 .........def._print(self,.messag
bd60 65 29 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c e):..........................sel
bd80 66 2e 5f 6c 6f 67 20 3d 20 67 65 74 4c 6f 67 67 65 72 28 27 49 63 65 27 29 00 20 20 20 20 20 20 f._log.=.getLogger('Ice').......
bda0 20 20 20 20 20 20 49 63 65 2e 4c 6f 67 67 65 72 2e 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 29 00 ......Ice.Logger.__init__(self).
bdc0 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 29 3a 00 20 20 20 20 ........def.__init__(self):.....
bde0 20 20 20 20 00 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 20 20 20 20 6f 75 72 20 6f 77 6e .............""".........our.own
be00 20 6c 6f 67 00 20 20 20 20 20 20 20 20 4c 6f 67 67 65 72 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 .log.........Logger.implementati
be20 6f 6e 20 74 6f 20 70 69 70 65 20 49 63 65 20 6c 6f 67 20 6d 65 73 73 61 67 65 73 20 69 6e 74 6f on.to.pipe.Ice.log.messages.into
be40 00 20 20 20 20 20 20 20 20 22 22 22 00 20 20 20 20 63 6c 61 73 73 20 43 75 73 74 6f 6d 4c 6f 67 .........""".....class.CustomLog
be60 67 65 72 28 49 63 65 2e 4c 6f 67 67 65 72 29 3a 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 ger(Ice.Logger):................
be80 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 41 4c 4c 5f 54 48 52 4f 55 47 48 00 20 20 20 20 20 20 ......return.FALL_THROUGH.......
bea0 20 20 20 20 20 20 64 65 62 75 67 28 27 73 65 74 54 65 78 74 75 72 65 20 25 64 20 2d 3e 20 66 61 ......debug('setTexture.%d.->.fa
bec0 6c 6c 20 74 68 72 6f 75 67 68 27 2c 20 69 64 29 00 20 20 20 20 20 20 20 20 20 20 20 20 23 20 49 ll.through',.id).............#.I
bee0 66 20 77 65 20 64 6f 6e 27 74 20 75 73 65 20 74 65 78 74 75 72 65 73 20 66 72 6f 6d 20 65 6c 6b f.we.don't.use.textures.from.elk
bf00 61 72 74 65 20 77 65 20 6c 65 74 20 6d 75 6d 62 6c 65 20 73 61 76 65 20 69 74 00 20 20 20 20 20 arte.we.let.mumble.save.it......
bf20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 46 ........................return.F
bf40 41 49 4c 45 44 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 62 75 67 28 27 73 65 74 AILED.................debug('set
bf60 54 65 78 74 75 72 65 20 25 64 20 2d 3e 20 66 61 69 6c 65 64 27 2c 20 69 64 29 00 20 20 20 20 20 Texture.%d.->.failed',.id)......
bf80 20 20 20 20 20 20 20 20 20 20 20 23 20 52 65 70 6f 72 74 20 61 20 66 61 69 6c 20 28 30 29 20 61 ...........#.Report.a.fail.(0).a
bfa0 73 20 77 65 20 77 69 6c 6c 20 6e 6f 74 20 75 70 64 61 74 65 20 74 68 65 20 61 76 61 74 61 72 20 s.we.will.not.update.the.avatar.
bfc0 69 6e 20 74 68 65 20 65 6c 6b 61 72 74 65 20 64 61 74 61 62 61 73 65 2e 00 20 20 20 20 20 20 20 in.the.elkarte.database.........
bfe0 20 20 20 20 20 69 66 20 63 66 67 2e 75 73 65 72 2e 61 76 61 74 61 72 5f 65 6e 61 62 6c 65 3a 00 .....if.cfg.user.avatar_enable:.
c000 61 64 00 00 20 00 00 00 d4 01 00 00 00 10 00 00 66 00 00 00 00 00 00 00 b6 0f 00 00 83 0f 00 00 ad..............f...............
c020 56 0f 00 00 22 0f 00 00 ef 0e 00 00 c0 0e 00 00 a8 0e 00 00 76 0e 00 00 40 0e 00 00 3e 0e 00 00 V..."...............v...@...>...
c040 3c 0e 00 00 28 0e 00 00 26 0e 00 00 10 0e 00 00 08 0e 00 00 df 0d 00 00 d7 0d 00 00 d6 0d 00 00 <...(...&.......................
c060 9d 0d 00 00 6e 0d 00 00 44 0d 00 00 26 0d 00 00 0b 0d 00 00 02 0d 00 00 da 0c 00 00 c4 0c 00 00 ....n...D...&...................
c080 76 0c 00 00 61 0c 00 00 2d 0c 00 00 f9 0b 00 00 cf 0b 00 00 bd 0b 00 00 91 0b 00 00 62 0b 00 00 v...a...-...................b...
c0a0 49 0b 00 00 f8 0a 00 00 96 0a 00 00 53 0a 00 00 3e 0a 00 00 23 0a 00 00 1b 0a 00 00 e1 09 00 00 I...........S...>...#...........
c0c0 d9 09 00 00 b0 09 00 00 87 09 00 00 60 09 00 00 3a 09 00 00 12 09 00 00 01 09 00 00 de 08 00 00 ............`...:...............
c0e0 be 08 00 00 af 08 00 00 ae 08 00 00 93 08 00 00 8b 08 00 00 5d 08 00 00 55 08 00 00 2d 08 00 00 ....................]...U...-...
c100 04 08 00 00 db 07 00 00 b4 07 00 00 8e 07 00 00 7d 07 00 00 5a 07 00 00 3a 07 00 00 2b 07 00 00 ................}...Z...:...+...
c120 22 07 00 00 f9 06 00 00 e1 06 00 00 d9 06 00 00 97 06 00 00 8b 06 00 00 83 06 00 00 7e 06 00 00 "...........................~...
c140 66 06 00 00 65 06 00 00 4c 06 00 00 2b 06 00 00 1e 06 00 00 f4 05 00 00 e4 05 00 00 96 05 00 00 f...e...L...+...................
c160 35 05 00 00 28 05 00 00 17 05 00 00 dc 04 00 00 9f 04 00 00 62 04 00 00 1f 04 00 00 e4 03 00 00 5...(...............b...........
c180 af 03 00 00 5f 03 00 00 06 03 00 00 e1 02 00 00 c1 02 00 00 7e 02 00 00 54 02 00 00 2a 02 00 00 ...._...............~...T...*...
c1a0 17 02 00 00 ee 01 00 00 e9 01 00 00 d4 01 00 00 d3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 20 20 20 64 65 66 20 63 75 72 73 ........................def.curs
c1e0 6f 72 28 63 6c 73 29 3a 00 20 20 20 20 00 20 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 3d 20 63 or(cls):..........connection.=.c
c200 6c 61 73 73 6d 65 74 68 6f 64 28 63 6f 6e 6e 65 63 74 69 6f 6e 29 00 20 20 20 20 20 20 20 20 72 lassmethod(connection).........r
c220 65 74 75 72 6e 20 63 6f 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 73 2e 64 62 5f 63 6f 6e eturn.con.............cls.db_con
c240 6e 65 63 74 69 6f 6e 73 5b 74 69 64 5d 20 3d 20 63 6f 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 nections[tid].=.con.............
c260 20 20 20 20 72 61 69 73 65 20 74 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 28 29 00 20 20 ....raise.threadDbException()...
c280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 72 72 6f 72 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 ..............error('Could.not.c
c2a0 6f 6e 6e 65 63 74 20 74 6f 20 64 61 74 61 62 61 73 65 3a 20 25 73 27 2c 20 73 74 72 28 65 29 29 onnect.to.database:.%s',.str(e))
c2c0 00 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 64 62 2e 45 72 72 6f 72 2c 20 65 3a .............except.db.Error,.e:
c2e0 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 2e 61 75 74 6f 63 6f 6d 6d 69 74 28 .................con.autocommit(
c300 54 72 75 65 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 6f 6e 20 53 45 4c 45 43 True).................#.on.SELEC
c320 54 73 2d 6f 6e 6c 79 2e 20 54 68 75 73 2c 20 77 65 20 61 75 74 6f 2d 63 6f 6d 6d 69 74 20 73 6f Ts-only..Thus,.we.auto-commit.so
c340 20 65 6c 6b 61 72 74 65 61 75 74 68 20 67 65 74 73 20 72 65 63 65 6e 74 20 64 61 74 61 2e 00 20 .elkarteauth.gets.recent.data...
c360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 20 54 72 61 6e 73 61 63 74 69 6f 6e 61 6c 20 65 ...............#.Transactional.e
c380 6e 67 69 6e 65 73 20 6c 69 6b 65 20 49 6e 6e 6f 44 42 20 69 6e 69 74 69 61 74 65 20 61 20 74 72 ngines.like.InnoDB.initiate.a.tr
c3a0 61 6e 73 61 63 74 69 6f 6e 20 65 76 65 6e 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ansaction.even..................
c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 61 72 73 65 74 20 3d 20 27 75 74 66 ..................charset.=.'utf
c3e0 38 27 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 8').............................
c400 20 20 20 20 20 20 20 64 62 20 3d 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 6e 61 6d 65 2c 00 20 .......db.=.cfg.database.name,..
c420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c440 20 20 70 61 73 73 77 64 20 3d 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 61 73 73 77 6f 72 64 ..passwd.=.cfg.database.password
c460 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,...............................
c480 20 20 20 20 20 75 73 65 72 20 3d 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 75 73 65 72 2c 00 20 .....user.=.cfg.database.user,..
c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c4c0 20 20 70 6f 72 74 20 3d 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 6f 72 74 2c 00 20 20 20 20 ..port.=.cfg.database.port,.....
c4e0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 20 3d 20 64 62 2e 63 6f 6e 6e 65 63 74 28 68 6f 73 ............con.=.db.connect(hos
c500 74 20 3d 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 68 6f 73 74 2c 00 20 20 20 20 20 20 20 20 20 t.=.cfg.database.host,..........
c520 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 ...try:.........................
c540 20 20 20 20 20 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 6c 69 62 2c 20 63 66 67 2e 64 61 74 61 ......cfg.database.lib,.cfg.data
c560 62 61 73 65 2e 68 6f 73 74 2c 20 63 66 67 2e 64 61 74 61 62 61 73 65 2e 70 6f 72 74 2c 20 63 66 base.host,.cfg.database.port,.cf
c580 67 2e 64 61 74 61 62 61 73 65 2e 6e 61 6d 65 2c 20 74 69 64 29 00 20 20 20 20 20 20 20 20 20 20 g.database.name,.tid)...........
c5a0 20 20 69 6e 66 6f 28 27 43 6f 6e 6e 65 63 74 69 6e 67 20 74 6f 20 64 61 74 61 62 61 73 65 20 73 ..info('Connecting.to.database.s
c5c0 65 72 76 65 72 20 28 25 73 20 25 73 3a 25 64 20 25 73 29 20 66 6f 72 20 74 68 72 65 61 64 20 25 erver.(%s.%s:%d.%s).for.thread.%
c5e0 64 27 2c 00 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 d',.........except:.............
c600 63 6f 6e 20 3d 20 63 6c 73 2e 64 62 5f 63 6f 6e 6e 65 63 74 69 6f 6e 73 5b 74 69 64 5d 00 20 20 con.=.cls.db_connections[tid]...
c620 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 74 69 64 20 3d 20 74 68 72 65 61 64 2e ......try:.........tid.=.thread.
c640 67 65 74 5f 69 64 65 6e 74 28 29 00 20 20 20 20 64 65 66 20 63 6f 6e 6e 65 63 74 69 6f 6e 28 63 get_ident().....def.connection(c
c660 6c 73 29 3a 00 00 20 20 20 20 64 62 5f 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 3d 20 7b 7d 00 20 20 ls):......db_connections.=.{}...
c680 20 20 00 20 20 20 20 22 22 22 00 20 20 20 20 74 68 72 65 61 64 73 00 20 20 20 20 53 6d 61 6c 6c .......""".....threads.....Small
c6a0 20 61 62 73 74 72 61 63 74 69 6f 6e 20 74 6f 20 68 61 6e 64 6c 65 20 64 61 74 61 62 61 73 65 20 .abstraction.to.handle.database.
c6c0 63 6f 6e 6e 65 63 74 69 6f 6e 73 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 00 20 20 20 20 22 22 22 connections.for.multiple....."""
c6e0 00 63 6c 61 73 73 20 74 68 72 65 61 64 44 42 28 6f 62 6a 65 63 74 29 3a 00 63 6c 61 73 73 20 74 .class.threadDB(object):.class.t
c700 68 72 65 61 64 44 62 45 78 63 65 70 74 69 6f 6e 28 45 78 63 65 70 74 69 6f 6e 29 3a 20 70 61 73 hreadDbException(Exception):.pas
c720 73 00 20 20 20 20 20 20 20 20 00 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 00 20 20 20 20 20 20 s..............return.ret.......
c740 20 20 72 65 74 20 3d 20 72 65 74 2e 72 65 70 6c 61 63 65 28 73 2c 20 74 29 00 20 20 20 20 66 6f ..ret.=.ret.replace(s,.t).....fo
c760 72 20 28 73 2c 74 29 20 69 6e 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 3a 00 20 20 20 r.(s,t).in.htmlspecialchars:....
c780 20 72 65 74 20 3d 20 73 74 72 69 6e 67 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .ret.=.string...................
c7a0 20 20 20 20 20 20 28 27 3e 27 2c 20 27 26 67 74 27 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 ......('>',.'&gt')).............
c7c0 20 20 20 20 20 20 20 20 20 20 20 20 28 27 3c 27 2c 20 27 26 6c 74 3b 27 29 2c 00 20 20 20 20 20 ............('<',.'&lt;'),......
c7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 27 22 2c 20 27 26 23 30 33 39 3b ...................("'",.'&#039;
c800 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 22 27 '),.........................('"'
c820 2c 20 27 26 71 75 6f 74 3b 27 29 2c 00 20 20 20 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 ,.'&quot;'),.....htmlspecialchar
c840 73 20 3d 20 28 28 27 26 27 2c 20 27 26 61 6d 70 3b 27 29 2c 00 20 20 20 20 22 22 22 00 20 20 20 s.=.(('&',.'&amp;'),....."""....
c860 20 50 79 74 68 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 68 74 6d 6c 73 70 .Python.implementation.of.htmlsp
c880 65 63 69 61 6c 63 68 61 72 73 00 20 20 20 20 22 22 22 00 64 65 66 20 65 6e 74 69 74 79 5f 65 6e ecialchars.....""".def.entity_en
c8a0 63 6f 64 65 28 73 74 72 69 6e 67 29 3a 00 00 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 00 20 20 code(string):......return.ret...
c8c0 20 20 20 20 20 20 72 65 74 20 3d 20 72 65 74 2e 72 65 70 6c 61 63 65 28 74 2c 20 73 29 00 20 20 ......ret.=.ret.replace(t,.s)...
c8e0 20 20 66 6f 72 20 28 73 2c 74 29 20 69 6e 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 3a ..for.(s,t).in.htmlspecialchars:
c900 00 20 20 20 20 72 65 74 20 3d 20 73 74 72 69 6e 67 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .....ret.=.string...............
c920 20 20 20 20 20 20 20 20 20 20 28 27 26 27 2c 20 27 26 61 6d 70 3b 27 29 29 00 20 20 20 20 20 20 ..........('&',.'&amp;')).......
c940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 3e 27 2c 20 27 26 67 74 27 29 2c 00 ..................('>',.'&gt'),.
c960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 3c 27 2c 20 27 26 ........................('<',.'&
c980 6c 74 3b 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 lt;'),.........................(
c9a0 22 27 22 2c 20 27 26 23 30 33 39 3b 27 29 2c 00 20 20 20 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 "'",.'&#039;'),.....htmlspecialc
c9c0 68 61 72 73 20 3d 20 28 28 27 22 27 2c 20 27 26 71 75 6f 74 3b 27 29 2c 00 20 20 20 20 22 22 22 hars.=.(('"',.'&quot;'),....."""
c9e0 00 20 20 20 20 50 79 74 68 6f 6e 20 72 65 76 65 72 73 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 .....Python.reverse.implementati
ca00 6f 6e 20 6f 66 20 70 68 70 20 68 74 6d 6c 73 70 65 63 69 61 6c 63 68 61 72 73 00 20 20 20 20 22 on.of.php.htmlspecialchars....."
ca20 22 22 00 64 65 66 20 65 6e 74 69 74 79 5f 64 65 63 6f 64 65 28 73 74 72 69 6e 67 29 3a 00 20 20 "".def.entity_decode(string):...
ca40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
ca60 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 5b 68 5d 2e 5f 5f 64 69 ...........self.__dict__[h].__di
ca80 63 74 5f 5f 5b 6e 61 6d 65 5d 20 3d 20 76 64 65 66 61 75 6c 74 00 20 20 20 20 20 20 20 20 20 20 ct__[name].=.vdefault...........
caa0 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 43 6f ..........except.(ValueError,.Co
cac0 6e 66 69 67 50 61 72 73 65 72 2e 4e 6f 53 65 63 74 69 6f 6e 45 72 72 6f 72 2c 20 43 6f 6e 66 69 nfigParser.NoSectionError,.Confi
cae0 67 50 61 72 73 65 72 2e 4e 6f 4f 70 74 69 6f 6e 45 72 72 6f 72 29 3a 00 20 20 20 20 20 20 20 20 gParser.NoOptionError):.........
cb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 5b 68 5d ................self.__dict__[h]
cb20 2e 5f 5f 64 69 63 74 5f 5f 5b 6e 61 6d 65 5d 20 3d 20 63 6f 6e 76 28 63 66 67 2e 67 65 74 28 68 .__dict__[name].=.conv(cfg.get(h
cb40 2c 20 6e 61 6d 65 29 29 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 ,.name)).....................try
cb60 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 2c 20 63 6f 6e 76 :.................for.name,.conv
cb80 2c 20 76 64 65 66 61 75 6c 74 20 69 6e 20 76 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.vdefault.in.v:................
cba0 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 5b 68 5d 20 3d 20 63 6f 6e 66 69 67 28 29 00 20 20 20 .self.__dict__[h].=.config()....
cbc0 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........else:..................
cbe0 20 20 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 5b 68 5d 20 3d 20 5b 5d 00 20 20 20 20 20 20 20 ...self.__dict__[h].=.[]........
cc00 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 43 6f 6e 66 69 67 50 61 72 73 65 72 2e 4e 6f 53 .........except.ConfigParser.NoS
cc20 65 63 74 69 6f 6e 45 72 72 6f 72 3a 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ectionError:....................
cc40 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 5b 68 5d 20 3d 20 63 66 67 2e 69 74 65 6d 73 28 68 29 .self.__dict__[h].=.cfg.items(h)
cc60 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 00 20 20 20 20 20 20 20 20 20 20 .................try:...........
cc80 20 20 20 20 20 20 23 20 4f 75 74 70 75 74 20 74 68 69 73 20 77 68 6f 6c 65 20 73 65 63 74 69 6f ......#.Output.this.whole.sectio
cca0 6e 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 72 61 77 20 6b 65 79 2f 76 61 6c 75 65 20 74 75 70 n.as.a.list.of.raw.key/value.tup
ccc0 6c 65 73 00 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 76 3a 00 20 20 20 20 20 20 les.............if.not.v:.......
cce0 20 20 66 6f 72 20 68 2c 76 20 69 6e 20 64 65 66 61 75 6c 74 2e 69 74 65 72 69 74 65 6d 73 28 29 ..for.h,v.in.default.iteritems()
cd00 3a 00 20 20 20 20 20 20 20 20 00 20 20 20 20 20 20 20 20 63 66 67 2e 72 65 61 64 28 66 69 6c 65 :..................cfg.read(file
cd20 6e 61 6d 65 29 00 20 20 20 20 20 20 20 20 63 66 67 2e 6f 70 74 69 6f 6e 78 66 6f 72 6d 20 3d 20 name).........cfg.optionxform.=.
cd40 73 74 72 00 20 20 20 20 20 20 20 20 63 66 67 20 3d 20 43 6f 6e 66 69 67 50 61 72 73 65 72 2e 43 str.........cfg.=.ConfigParser.C
cd60 6f 6e 66 69 67 50 61 72 73 65 72 28 29 00 20 20 20 20 20 20 20 20 69 66 20 6e 6f 74 20 66 69 6c onfigParser().........if.not.fil
cd80 65 6e 61 6d 65 20 6f 72 20 6e 6f 74 20 64 65 66 61 75 6c 74 3a 20 72 65 74 75 72 6e 00 20 20 20 ename.or.not.default:.return....
cda0 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 66 69 6c 65 6e 61 6d 65 20 3d 20 4e .def.__init__(self,.filename.=.N
cdc0 6f 6e 65 2c 20 64 65 66 61 75 6c 74 20 3d 20 4e 6f 6e 65 29 3a 00 00 20 20 20 20 22 22 22 00 20 one,.default.=.None):......"""..
cde0 20 20 20 53 6d 61 6c 6c 20 61 62 73 74 72 61 63 74 69 6f 6e 20 66 6f 72 20 63 6f 6e 66 69 67 20 ...Small.abstraction.for.config.
ce00 6c 6f 61 64 69 6e 67 00 20 20 20 20 22 22 22 00 63 6c 61 73 73 20 63 6f 6e 66 69 67 28 6f 62 6a loading.....""".class.config(obj
ce20 65 63 74 29 3a 00 23 00 23 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6c 61 73 73 65 73 00 23 00 20 00 ect):.#.#---.Helper.classes.#...
ce40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 66 69 6c 65 27 2c 20 73 74 72 2c ...................('file',.str,
ce60 20 27 65 6c 6b 61 72 74 65 61 75 74 68 2e 6c 6f 67 27 29 29 7d 00 20 20 20 20 20 20 20 20 20 20 .'elkarteauth.log'))}...........
ce80 20 20 27 6c 6f 67 27 3a 28 28 27 6c 65 76 65 6c 27 2c 20 69 6e 74 2c 20 6c 6f 67 67 69 6e 67 2e ..'log':(('level',.int,.logging.
cea0 44 45 42 55 47 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 DEBUG),.........................
cec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 6f 72 74 27 2c 20 .......................('port',.
cee0 69 6e 74 2c 20 27 34 30 36 33 27 29 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 int,.'4063')),..................
cf00 20 20 20 20 20 20 28 27 68 6f 73 74 27 2c 20 73 74 72 2c 20 27 6c 6f 63 61 6c 68 6f 73 74 27 29 ......('host',.str,.'localhost')
cf20 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 61 73 73 77 ,........................('passw
cf40 6f 72 64 27 2c 20 73 74 72 2c 20 27 73 65 63 72 65 74 27 29 2c 00 20 20 20 20 20 20 20 20 20 20 ord',.str,.'secret'),...........
cf60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 75 73 65 72 27 2c 20 73 74 72 2c 20 27 65 6c 6b 27 .............('user',.str,.'elk'
cf80 29 2c 00 20 20 20 20 20 20 20 20 20 20 20 20 27 67 6c 61 63 69 65 72 27 3a 28 28 27 65 6e 61 62 ),.............'glacier':(('enab
cfa0 6c 65 64 27 2c 20 78 32 62 6f 6f 6c 2c 20 46 61 6c 73 65 29 2c 00 20 20 20 20 20 20 20 20 20 20 led',.x2bool,.False),...........
cfc0 20 20 27 6d 75 72 6d 75 72 27 3a 28 28 27 73 65 72 76 65 72 73 27 2c 20 6c 61 6d 62 64 61 20 78 ..'murmur':(('servers',.lambda.x
cfe0 3a 6d 61 70 28 69 6e 74 2c 20 78 2e 73 70 6c 69 74 28 27 2c 27 29 29 2c 20 5b 5d 29 2c 29 2c 00 :map(int,.x.split(',')),.[]),),.