From 5d6877afe803f53294f492a80903b6cfbeca9983 Mon Sep 17 00:00:00 2001 From: acidvegas Date: Sun, 4 Apr 2021 12:50:39 -0400 Subject: [PATCH] Initial commit --- README.md | 42 + muhstik/CIDR.txt | 316 + muhstik/MONITOR.txt | 117 + muhstik/MOTD | 10 + muhstik/Makefile | 21 + muhstik/NAMES | 40 + muhstik/SASL.txt | 119 + muhstik/TODO.odt | Bin 0 -> 25588 bytes muhstik/TODO.pdf | Bin 0 -> 83746 bytes muhstik/TODO.tex | 219 + muhstik/cisco.txt | 2641 +++++++ muhstik/ident.word | 13581 ++++++++++++++++++++++++++++++++++++ muhstik/include/clone.h | 101 + muhstik/include/control.h | 31 + muhstik/include/globals.h | 74 + muhstik/include/init.h | 92 + muhstik/include/lists.h | 55 + muhstik/include/load.h | 29 + muhstik/include/mass.h | 31 + muhstik/include/muhstik.h | 25 + muhstik/include/net.h | 43 + muhstik/include/print.h | 32 + muhstik/include/proxy.h | 50 + muhstik/include/string.h | 46 + muhstik/ipv6/config.sh | 28 + muhstik/ipv6/h.sh | 178 + muhstik/ipv6/he.sh | 10 + muhstik/ipv6/vhosts.sh | 13 + muhstik/jupes.txt | 47 + muhstik/muhstik | Bin 0 -> 92810 bytes muhstik/muhstik.conf | 154 + muhstik/muhstik.wordlist | 7209 +++++++++++++++++++ muhstik/prox/dns2ip.pl | 34 + muhstik/prox/prox.tcl | 167 + muhstik/prox/tor-enode.sh | 21 + muhstik/proxies.txt | 1938 +++++ muhstik/servers | 225 + muhstik/servers6 | 225 + muhstik/shuffle.sh | 4 + muhstik/socks4.txt | 2114 ++++++ muhstik/socks5.txt | 2113 ++++++ muhstik/src/clone.c | 1418 ++++ muhstik/src/control.c | 1022 +++ muhstik/src/init.c | 362 + muhstik/src/lists.c | 363 + muhstik/src/load.c | 316 + muhstik/src/mass.c | 277 + muhstik/src/muhstik.c | 469 ++ muhstik/src/net.c | 205 + muhstik/src/print.c | 500 ++ muhstik/src/proxy.c | 449 ++ muhstik/src/string.c | 216 + muhstik/vhosts | 100 + 53 files changed, 37892 insertions(+) create mode 100644 README.md create mode 100644 muhstik/CIDR.txt create mode 100644 muhstik/MONITOR.txt create mode 100644 muhstik/MOTD create mode 100644 muhstik/Makefile create mode 100644 muhstik/NAMES create mode 100644 muhstik/SASL.txt create mode 100644 muhstik/TODO.odt create mode 100644 muhstik/TODO.pdf create mode 100644 muhstik/TODO.tex create mode 100644 muhstik/cisco.txt create mode 100644 muhstik/ident.word create mode 100644 muhstik/include/clone.h create mode 100644 muhstik/include/control.h create mode 100644 muhstik/include/globals.h create mode 100644 muhstik/include/init.h create mode 100644 muhstik/include/lists.h create mode 100644 muhstik/include/load.h create mode 100644 muhstik/include/mass.h create mode 100644 muhstik/include/muhstik.h create mode 100644 muhstik/include/net.h create mode 100644 muhstik/include/print.h create mode 100644 muhstik/include/proxy.h create mode 100644 muhstik/include/string.h create mode 100644 muhstik/ipv6/config.sh create mode 100644 muhstik/ipv6/h.sh create mode 100644 muhstik/ipv6/he.sh create mode 100644 muhstik/ipv6/vhosts.sh create mode 100644 muhstik/jupes.txt create mode 100644 muhstik/muhstik create mode 100644 muhstik/muhstik.conf create mode 100644 muhstik/muhstik.wordlist create mode 100644 muhstik/prox/dns2ip.pl create mode 100644 muhstik/prox/prox.tcl create mode 100644 muhstik/prox/tor-enode.sh create mode 100644 muhstik/proxies.txt create mode 100644 muhstik/servers create mode 100644 muhstik/servers6 create mode 100644 muhstik/shuffle.sh create mode 100644 muhstik/socks4.txt create mode 100644 muhstik/socks5.txt create mode 100644 muhstik/src/clone.c create mode 100644 muhstik/src/control.c create mode 100644 muhstik/src/init.c create mode 100644 muhstik/src/lists.c create mode 100644 muhstik/src/load.c create mode 100644 muhstik/src/mass.c create mode 100644 muhstik/src/muhstik.c create mode 100644 muhstik/src/net.c create mode 100644 muhstik/src/print.c create mode 100644 muhstik/src/proxy.c create mode 100644 muhstik/src/string.c create mode 100644 muhstik/vhosts diff --git a/README.md b/README.md new file mode 100644 index 0000000..4b1b15e --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# muhstik +> irc flooding solution + +## Information +muhstik, an enterprise-class fully functional IRC flooding solution for your mission-critical trolling needs, was retroactively created around December 1993 to help perpetuate the incessant wars on #gayteen. + +It uses a state-of-the-art event-based system to concurrently connect to proxies and servers. + +In fact, testing of an early version of one of muhstik's parent scripts is the reason that freenode now checks for open SOCKS proxies. + +## Authors +* Louis Bavoil mulder@gmx.fr +* roadr bigmac@home.sirklabs.hu +* Leon Kaiser literalka@gnaa.eu + +## Credits +* abez for ghost-writing ASIAN. +* Blackman Heartiez for his collection of nicks. +* freenode for providing the perfect environment for testing muhstik. +* h for his contributions to my understanding of Internet Protocol version 6, Domain Name Systems, and tunneling. +* incog for blogging with Rufas about AYSYN, ASIAN, and STUPID. +* JacksonBrown for writing 'banbot.pl', which I used to gather thousands of IRC nicks for muhstik.wordlist. +* Jmax for his many, many ideas from ASIAN and for his multiple blog sessions with vxp and madvirii. Also for coding nickspam.pl. +* l0de for blogging with Rufas about AYSYN, ASIAN, and STUPID. +* madvirii for his multiple blog sessions with Jmax and vxp. +* mef for writing AYSYN. +* Osama Bin Laden for his contributions to my chronic insomnia/PTSD and for being THE GREATEST MAN ALIVE. You were a shining beacon of hope for freedom worldwide, rest in peace. +* rshxd for blogging with Rufas about AYSYN, ASIAN, and STUPID. +* Rufas for writing ASIAN and STUPID, as well as blogging to l0de about the aforementioned scripts. +* sam because he no doubt helped with this somewhere, he's everywhere FFS. +* sloth for blogging to l0de about IPv6 botnets, and his collection of nicks. +* sparc for blogging with Rufas about AYSYN, ASIAN, and STUPID. +* thyme for blogging with Rufas about AYSYN, ASIAN, and STUPID. +* vxp for his multiple blog sessions with Jmax and madvirii. +* w00t (aka X) for his collection of nicks. +* chrono for leaking this private muhstik loldongs. +* acidvegas for keeping the dream alive. + +## Mirrors +- [acid.vegas](https://acid.vegas/muhstik) *(main)* +- [GitHub](https://github.com/acidvegas/muhstik) +- [GitLab](https://gitlab.com/acidvegas/muhstik) \ No newline at end of file diff --git a/muhstik/CIDR.txt b/muhstik/CIDR.txt new file mode 100644 index 0000000..f16c65b --- /dev/null +++ b/muhstik/CIDR.txt @@ -0,0 +1,316 @@ +$Id: /rb/doc/CIDR.txt 2 2008-12-17T03:10:09.215481Z androsyn $ + +CIDR Information +---------------- + Presently, we all use IPv4. The format of IPv4 is the following: + +A.B.C.D + + Where letters 'A' through 'D' are 8-bit values. In English, this + means each digit can have a value of 0 to 255. Example: + +129.56.4.234 + + Digits are called octets. Oct meaning 8, hence 8-bit values. An + octet cannot be greater than 255, and cannot be less than 0 (eg. a + negative number). + + CIDR stands for "classless inter domain routing", details covered + in RFC's 1518 and 1519. It was introduced mainly due to waste within + A and B classes space. The goal was to make it possible to use + smaller nets than it would seem from (above) IP classes, for instance + by dividing one B class into 256 "C like" classes. The other goal was + to allow aggregation of routing information, so that routers could use + one aggregated route (like 194.145.96.0/20) instead of + advertising 16 C classes. + + Class A are all these addresses which first bit is "0", + bitmap: 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh (n=net, h=host) + IP range is 0.0.0.0 - 127.255.255.255 + + Class B are all these addresses which first two bits are "10", + bitmap: 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh (n=net, h=host) + IP range is 128.0.0.0 - 191.255.255.255 + + Class C are all these addresses which first three bits are "110", + bitmap: 110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh (n=net, h=host) + IP range is 192.0.0.0 - 223.255.255.255 + + Class D are all these addresses which first four bits are "1110", + this is multicast class and net/host bitmap doesn't apply here + IP range is 224.0.0.0 - 239.255.255.255 + I bet they will never IRC, unless someone creates multicast IRC :) + + Class E are all these addresses which first five bits are "11110", + this class is reserved for future use + IP range is 240.0.0.0 - 247.255.255.255 + + So, here is how CIDR notation comes into play. + + For those of you who have real basic exposure to how networks are + set up, you should be aware of the term "netmask." Basically, this + is a IPv4 value which specifies the "size" of a network. You can + assume the word "size" means "range" if you want. + + A chart describing the different classes in CIDR format and their + wildcard equivalents would probably help at this point: + +CIDR version dot notation (netmask) Wildcard equivalent +----------------------------------------------------------------- +A.0.0.0/8 A.0.0.0/255.0.0.0 A.*.*.* or A.* +A.B.0.0/16 A.B.0.0/255.255.0.0 A.B.*.* or A.B.* +A.B.C.0/24 A.B.C.0/255.255.255.0 A.B.C.* or A.B.C.* +A.B.C.D/32 A.B.C.D/255.255.255.255 A.B.C.D + + + The question on any newbies mind at this point is "So what do all + of those values & numbers actually mean?" + + Everything relating to computers is based on binary values (1s and + zeros). Binary plays a *tremendous* role in CIDR notation. Let's + break it down to the following table: + + A B C D + -------- -------- -------- -------- +/8 == 11111111 . 00000000 . 00000000 . 00000000 == 255.0.0.0 +/16 == 11111111 . 11111111 . 00000000 . 00000000 == 255.255.0.0 +/24 == 11111111 . 11111111 . 11111111 . 00000000 == 255.255.255.0 +/32 == 11111111 . 11111111 . 11111111 . 11111111 == 255.255.255.255 + + The above is basically a binary table for the most common netblock + sizes. The "1"s you see above are the 8-bit values for each octet. + If you split an 8-bit value into each of it's bits, you find the + following: + +00000000 +^^^^^^^^_ 1sts place (1) +|||||||__ 2nds place (2) +||||||___ 3rds place (4) +|||||____ 4ths place (8) +||||_____ 5ths place (16) +|||______ 6ths place (32) +||_______ 7ths place (64) +|________ 8ths place (128) + + Now, since computers consider zero a number, you pretty much have + to subtract one (so-to-speak; this is not really how its done, but + just assume it's -1 :-) ) from all the values possible. Some + examples of decimal values in binary: + +15 == 00001111 (from left to right: 8+4+2+1) +16 == 00010000 (from left to right: 16) +53 == 00110101 (from left to right: 32+16+4+1) +79 == 01001111 (from left to right: 64+8+4+1) +254 == 11111110 (from left to right: 128+64+32+16+8+4+2) + + So, with 8 bits, the range (as I said before) is zero to 255. + + If none of this is making sense to you at this point, you should + back up and re-read all of the above. I realize it's a lot, but + it'll do you some good to re-read it until you understand :-). + + So, let's modify the original table a bit by providing CIDR info + for /1 through /8: + + A B C D + -------- -------- -------- -------- +/1 == 10000000 . 00000000 . 00000000 . 00000000 == 128.0.0.0 +/2 == 11000000 . 00000000 . 00000000 . 00000000 == 192.0.0.0 +/3 == 11100000 . 00000000 . 00000000 . 00000000 == 224.0.0.0 +/4 == 11110000 . 00000000 . 00000000 . 00000000 == 240.0.0.0 +/5 == 11111000 . 00000000 . 00000000 . 00000000 == 248.0.0.0 +/6 == 11111100 . 00000000 . 00000000 . 00000000 == 252.0.0.0 +/7 == 11111110 . 00000000 . 00000000 . 00000000 == 254.0.0.0 +/8 == 11111111 . 00000000 . 00000000 . 00000000 == 255.0.0.0 + + At this point, all of this should making a lot of sense, and you + should be able to see the precision that you can get by using CIDR + at this point. If not, well, I guess the best way to put it would + be that wildcards always assume /8, /16, or /24 (yes hello Piotr, + we can argue this later: I am referring to IPs *ONLY*, not domains + or FQDNs :-) ). + + This table will provide a reference to all of the IPv4 CIDR values + +cidr|netmask (dot notation) +----+--------------------- +/1 | 128.0.0.0 +/2 | 192.0.0.0 +/3 | 224.0.0.0 +/4 | 240.0.0.0 +/5 | 248.0.0.0 +/6 | 252.0.0.0 +/7 | 254.0.0.0 +/8 | 255.0.0.0 +/9 | 255.128.0.0 +/10 | 255.192.0.0 +/11 | 255.224.0.0 +/12 | 255.240.0.0 +/13 | 255.248.0.0 +/14 | 255.252.0.0 +/15 | 255.254.0.0 +/16 | 255.255.0.0 +/17 | 255.255.128.0 +/18 | 255.255.192.0 +/19 | 255.255.224.0 +/20 | 255.255.240.0 +/21 | 255.255.248.0 +/22 | 255.255.252.0 +/23 | 255.255.254.0 +/24 | 255.255.255.0 +/25 | 255.255.255.128 +/26 | 255.255.255.192 +/27 | 255.255.255.224 +/28 | 255.255.255.240 +/29 | 255.255.255.248 +/30 | 255.255.255.252 +/31 | 255.255.255.254 +/32 | 255.255.255.255 + + So, let's take all of the information above, and apply it to a + present-day situation on IRC. + + Let's say you have a set of flooding clients who all show up from + the following hosts. For lack-of a better example, I'll use a + subnet here at Best: + +nick1 (xyz@shell9.ba.best.com) [206.184.139.140] +nick2 (abc@shell8.ba.best.com) [206.184.139.139] +nick3 (foo@shell12.ba.best.com) [206.184.139.143] + + Most people will assume the they were all in the same class C + (206.184.139.0/24 or 206.184.139.*). + + This, as a matter of fact, is not true. Now, the reason *I* know + this is solely because I work on the network here; those IPs are + not delegated to a class C, but two portions of a class C (128 IPs + each). That means the class C is actually split into these two + portions: + +Netblock IP range +-------- -------- +206.184.139.0/25 206.184.139.0 to 206.184.139.127 +206.184.139.128/25 206.184.139.128 to 206.184.139.255 + + For the record, 206.184.139.0 and 206.184.139.128 are both known as + "network addresses" (not to be confused with "netblocks" or "Ethernet + hardware addresses" or "MAC addresses"). Network addresses are + *ALWAYS EVEN*. + + 206.184.139.127 and 206.184.139.255 are what are known as broadcast + addresses. Broadcast addresses are *ALWAYS ODD*. + + Now, the aforementioned list of clients are in the 2nd subnet shown + above, not the first. The reason for this should be obvious. + + The remaining question is, "Well that's nice, you know what the netblock + is for Best. What about us? We don't know that!" + + Believe it or not, you can find out the network block size by using + whois -h WHOIS.ARIN.NET on the IP in question. ARIN keeps a list of + all network blocks and who owns them -- quite useful, trust me. I + think I use ARIN 5 or 6 times a day, especially when dealing with + D-lines. Example: + +$ whois -h whois.arin.net 206.184.139.140 +Best Internet Communications, Inc. (NETBLK-NBN-206-184-BEST) +345 East Middlefield Road +Mountain View, CA 94043 + +Netname: NBN-206-184-BEST +Netblock: 206.184.0.0 - 206.184.255.255 +Maintainer: BEST + + Does this mean you should D-line 206.184.0.0/16? Probably not. + That's an entire class B-sized block, while you're only trying + to deny access to a subnetted class C. + + So then how do you get the *real* info? Well, truth is, you don't. + You have to pretty much take a guess at what it is, if ARIN reports + something that's overly vague. Best, for example, was assigned the + above class B-sized block. We can subnet it however we want without + reporting back to ARIN how we have it subnetted. We own the block, + and that's all that matters (to ARIN). + + Not all subnets are like this, however. Smaller subnets you may + find partitioned and listed on ARIN; I've seen /29 blocks for DSL + customers show up in ARIN before. + + So, use ARIN any chance you get. The more precision the better! + + Now, there is a small issue I want to address regarding use of CIDR + notation. Let's say you D-line the following in CIDR format (hi + sion ;-) ): + +205.100.132.18/24 + + Entries like this really makes my blood boil, solely because it adds + excessive confusion and is just basically pointless. If you + examine the above, you'll see the /24 is specifying an entire + class C -- so then what's the purpose of using .18 versus .0? + + There IS no purpose. The netmask itself will mask out the .18 and + continue to successfully use 205.100.132.0/24. + + Doing things this way just adds confusion, especially on non-octet- + aligned subnets (such as /8, /16, /24, or /32). Seeing that on a + /27 or a /19 might make people go "wtf?" + + I know for a fact this doc lacks a lot of necessary information, + like how the actual netmask/CIDR value play a role in "masking out" + the correct size, and what to do is WHOIS.ARIN.NET returns no + netblock information but instead a few different company names with + NIC handles. I'm sure you can figure this stuff out on your own, + or just ask an administrator friend of yours who DOES know. A lot + of us admins are BOFH types, but if you ask us the right questions, + you'll benefit from the answer quite thoroughly. + + Oh, I almost forgot. Most Linux systems use a different version of + "whois" than FreeBSD does. The syntax for whois on Linux is + "whois @whois.arin.net", while under FreeBSD it is + "whois -h whois.arin.net " Debian uses yet another version + of whois that is incompatible with the above syntax options. + + Note that the FreeBSD whois client has shortcuts for the most commonly + used whois servers. "whois -a " is the shortcut for ARIN. + + Also note that ARIN is not authoritative for all IP blocks on the + Internet. Take for example 212.158.123.66. A whois query to ARIN + will return the following information: + +$ whois -h whois.arin.net 212.158.123.66 +European Regional Internet Registry/RIPE NCC (NET-RIPE-NCC-) + These addresses have been further assigned to European users. + Contact information can be found in the RIPE database, via the + WHOIS and TELNET servers at whois.ripe.net, and at + http://www.ripe.net/db/whois.html + + Netname: RIPE-NCC-212 + Netblock: 212.0.0.0 - 212.255.255.255 + Maintainer: RIPE + + This query tells us that it is a European IP block, and is further + handled by RIPE's whois server. We must then query whois.ripe.net + to get more information. + +$ whois -h whois.ripe.net 212.158.123.66 + +% Rights restricted by copyright. See + http://www.ripe.net/ripencc/pub-services/db/copyright.html + +inetnum: 212.158.120.0 - 212.158.123.255 +netname: INSNET-P2P +descr: Point to Point Links for for London Nodes +country: GB +--snip-- + + This tells us the actual IP block that the query was a part of. + + Other whois servers that you may see blocks referred to are: + whois.ripn.net for Russia, whois.apnic.net for Asia, Australia, and + the Pacific, and whois.6bone.net for IPv6 blocks. + +Contributed by Jeremy Chadwick +Piotr Kucharski +W. Campbell and +Ariel Biener diff --git a/muhstik/MONITOR.txt b/muhstik/MONITOR.txt new file mode 100644 index 0000000..cc2ab50 --- /dev/null +++ b/muhstik/MONITOR.txt @@ -0,0 +1,117 @@ +MONITOR - Protocol for notification of when clients become online/offline + Lee Hardy +$Id: monitor.txt 23973 2007-06-30 22:28:55Z jilles $ +------------------------------------------------------------------------- + +Currently, ISON requests by clients use a large amount of bandwidth. It is +expected that it is more efficient for this to be done by the server at the +expense of cpu cycles. The WATCH implementation that was designed to counter +this is (in my opinion) severely flawed. This protocol was designed to +provide a cleaner implementation. + +The command used throughout this specification is "MONITOR". + +Each use of the MONITOR command takes a special modifier, indicating +the operation being performed. The client MUST NOT attempt to specify +more than one modifier. Only one special modifier may be used per MONITOR +command. + +Thus it is impossible to combine additions to the list with removals from +the list -- these MUST be done with two seperate commands. + +A client MUST NOT issue the MONITOR command more than once per second. +Any attempts to do so will generate an error. + +In commands and numerics where multiple nicknames may occur, the length of +the nickname list is limited only by the buffer size of 512 chars, as +defined in RFC1459. + +Support of this specification is indicated by the MONITOR token in +RPL_ISUPPORT (005). This token takes an optional parameter, of the maximum +amount of nicknames a client may have in their monitor list. If no +parameter is specified, there is no limit. A typical token would be: +MONITOR=100 + +MONITOR + nick[,nick2]* +----------------------- +Adds the given list of nicknames to the list of nicknames being monitored. + +If any of the nicknames being added are online, the server will generate +RPL_MONONLINE numerics listing those nicknames that are online. + +If any of the nicknames being added are offline, the server will generate +RPL_MONOFFLINE numerics listing those nicknames that are offline. + +MONITOR - nick[,nick2]* +----------------------- +Removes the given list of nicknames from the list of nicknames being +monitored. No output will be returned for use of this command. + +MONITOR C +--------- +Clears the list of nicknames being monitored. No output will be returned +for use of this command. + +MONITOR L +--------- +Outputs the current list of nicknames being monitored. All output will use +RPL_MONLIST, and the output will be terminated with RPL_ENDOFMONLIST + +MONITOR S +--------- +Outputs for each nickname in the list being monitored, whether the client is +online or offline. All nicks that are online will be sent using +RPL_MONONLINE, all nicks that are offline will be sent using RPL_MONOFFLINE. +The list will be terminated with RPL_ENDOFMONLIST. + + +Numeric replies +--------------- + +730 - RPL_MONONLINE +------------------- +: 730 :nick!user@host[,nick!user@host]* + +This numeric is used to indicate to a client that either a nickname has just +become online, or that a nickname they have added to their monitor list is +online. + +The server may send "*" instead of the target nick (). (This makes it +possible to send the exact same message to all clients monitoring a certain +nick.) + +731 - RPL_MONOFFLINE +-------------------- +: 731 :nick[,nick1]* + +This numeric is used to indicate to a client that either a nickname has just +left the irc network, or that a nickname they have added to their monitor +list is offline. + +The argument is a chained list of nicknames that are offline. + +As with 730 the server may send "*" instead of the target nick. + +732 - RPL_MONLIST +----------------- +: 732 :nick[,nick1]* + +This numeric is used to indicate to a client the list of nicknames they have +in their monitor list. + +733 - RPL_ENDOFMONLIST +------------------------ +: 733 :End of MONITOR list + +This numeric is used to indicate to a client the end of a monitor list. + +734 - ERR_MONLISTFULL +--------------------- +: 734 :Monitor list is full. + +This numeric is used to indicate to a client that their monitor list is +full, so the command failed. The parameter is the maximum number of +nicknames a client may have in their list, the parameter is the list +of nicknames, as the client sent them, that cannot be added. + + diff --git a/muhstik/MOTD b/muhstik/MOTD new file mode 100644 index 0000000..90c92e6 --- /dev/null +++ b/muhstik/MOTD @@ -0,0 +1,10 @@ + _ _ _ _ + _ __ ___ _ _| |__ ___| |_(_) | __ + | '_ ` _ \| | | | '_ \/ __| __| | |/ / + | | | | | | |_| | | | \__ \ |_| | < 4.2.3 + |_| |_| |_|\__,_|_| |_|___/\__|_|_|\_\ + + Maintainer: Leon Kaiser + E-mail: + Web: + $ last rev: 59d302dcdfc42fada321c66a3afb66bf6d3cfe64 $ diff --git a/muhstik/Makefile b/muhstik/Makefile new file mode 100644 index 0000000..ce654b4 --- /dev/null +++ b/muhstik/Makefile @@ -0,0 +1,21 @@ +CC=gcc +CFLAGS=-Wsign-compare -Wall -I/usr/local/include +LDFLAGS=-L/usr/local/lib -lpthread + +VPATH=src:build +OBJS=clone.o control.o init.o lists.o load.o mass.o muhstik.o net.o print.o proxy.o string.o + +all: muhstik dork +muhstik: $(OBJS) + cd build; $(CC) $(LDFLAGS) -o ../muhstik $(OBJS) +.c.o: + $(CC) $(CFLAGS) -c -o build/$@ $< +notmp: + rm -f *~ + rm -f */*~ +clean: notmp + rm -f build/*.o +dork: + latex doc/TODO.tex + dvipdf TODO.dvi doc/TODO.pdf + rm -f TODO.dvi TODO.aux TODO.log texput.log diff --git a/muhstik/NAMES b/muhstik/NAMES new file mode 100644 index 0000000..7421eb0 --- /dev/null +++ b/muhstik/NAMES @@ -0,0 +1,40 @@ +WORDS (TO YOUR MOTHER) +====================== +* Cisco +* Demolish +* HTTP +* IRC +* Router +* Ruin +* SOCKS +* Syncronized + +LIKE A (G) SIX +============== +* gaping +* galling +* glorious +* galvanizing +* gratuitous +* genital +* genocidal +* generous + +ACRONYMS +======== +ALLAH: A... L... L... A... H... +BINLADEN: B... IRC N... L... A... D... E... N... +CHIMPIN: C... Hyper-Intensive Multi Protocol IRC Nuker +CHINKS: Cisco HTTP IRC Nuker K... SOCKS +CHUFTER: Cisco HTTP U... F... T... E... Ruin +FAGGOT: F... A... G... G... O... T... +FATWAH: F... A... T... W... A... H... +GAYPORNO: G... A... Y... P... O... R... N... O... +JIHAD: J... IRC HTTP A... D... +MIRC: Masive IRC Ruining Clones +MUHSTIK: Massive Unwanted Homosexual Shitstorm Targeting IRC K... +NIGGERCUNT: Networked IRC Generating Glorious Enterprise Ruin Causing Unprecedented Night Terrors +OSAMA: O... Synchronized A... M... A... +RAPIST: Ruinous Assault Program IRC SOCKS Targeter +SANDNIGGER: Syncronized Assault Network Demolishing IRC Generating Gratuitous Eternal Ruin +SHITSKIN: SOCKS HTTP I... T... S... K... IRC Nuker diff --git a/muhstik/SASL.txt b/muhstik/SASL.txt new file mode 100644 index 0000000..e4b4a1b --- /dev/null +++ b/muhstik/SASL.txt @@ -0,0 +1,119 @@ +SASL authentication +------------------- + +This document describes the client protocol for SASL authentication, as +implemented in charybdis and atheme. + +SASL authentication relies on the CAP client capability framework [1]. +Support for SASL authentication is indicated with the "sasl" capability. +The client MUST enable the sasl capability before using the AUTHENTICATE +command defined by this specification. + +The AUTHENTICATE command + +The AUTHENTICATE command MUST be used before registration is complete and +with the sasl capability enabled. To enforce the former, it is RECOMMENDED +to only send CAP END when the SASL exchange is completed or needs to be +aborted. Clients SHOULD be prepared for timeouts at all times during the SASL +authentication. + +There are two forms of the AUTHENTICATE command: initial client message and +later messages. + +The initial client message specifies the SASL mechanism to be used. (When this +is received, the IRCD will attempt to establish an association with a SASL +agent.) If this fails, a 904 numeric will be sent and the session state remains +unchanged; the client MAY try another mechanism. Otherwise, the server sends +a set of regular AUTHENTICATE messages with the initial server response. + +initial-authenticate = "AUTHENTICATE" SP mechanism CRLF + +A set of regular AUTHENTICATE messages transmits a response from client to +server or vice versa. The server MAY intersperse other IRC protocol messages +between the AUTHENTICATE messages of a set. The "+" form is used for an empty +response. The server MAY place a limit on the total length of a response. + +regular-authenticate-set = *("AUTHENTICATE" SP 400BASE64 CRLF) + "AUTHENTICATE" SP (1*399BASE64 / "+") CRLF + +The client can abort an authentication by sending an asterisk as the data. +The server will send a 904 numeric. + +authenticate-abort = "AUTHENTICATE" SP "*" CRLF + +If authentication fails, a 904 or 905 numeric will be sent and the +client MAY retry from the AUTHENTICATE command. +If authentication is successful, a 900 and 903 numeric will be sent. + +If the client attempts to issue the AUTHENTICATE command after already +authenticating successfully, the server MUST reject it with a 907 numeric. + +If the client completes registration (with CAP END, NICK, USER and any other +necessary messages) while the SASL authentication is still in progress, the +server SHOULD abort it and send a 906 numeric, then register the client +without authentication. + +This document does not specify use of the AUTHENTICATE command in +registered (person) state. + +Example protocol exchange + +C: indicates lines sent by the client, S: indicates lines sent by the server. + +The client is using the PLAIN SASL mechanism with authentication identity +jilles, authorization identity jilles and password sesame. + +C: CAP REQ :sasl +C: NICK jilles +C: USER jilles cheetah.stack.nl 1 :Jilles Tjoelker +S: NOTICE AUTH :*** Processing connection to jaguar.test +S: NOTICE AUTH :*** Looking up your hostname... +S: NOTICE AUTH :*** Checking Ident +S: NOTICE AUTH :*** No Ident response +S: NOTICE AUTH :*** Found your hostname +S: :jaguar.test CAP jilles ACK :sasl +C: AUTHENTICATE PLAIN +S: AUTHENTICATE + +C: AUTHENTICATE amlsbGVzAGppbGxlcwBzZXNhbWU= +S: :jaguar.test 900 jilles jilles!jilles@localhost.stack.nl jilles :You are now logged in as jilles. +S: :jaguar.test 903 jilles :SASL authentication successful +C: CAP END +S: :jaguar.test 001 jilles :Welcome to the jillestest Internet Relay Chat Network jilles + + +Note that the CAP command sent by a server includes the user's nick or *, +differently from what [1] specifies. + +Alternatively the client could request the list of capabilities and enable +an additional capability. + +C: CAP LS +C: NICK jilles +C: USER jilles cheetah.stack.nl 1 :Jilles Tjoelker +S: NOTICE AUTH :*** Processing connection to jaguar.test +S: NOTICE AUTH :*** Looking up your hostname... +S: NOTICE AUTH :*** Checking Ident +S: NOTICE AUTH :*** No Ident response +S: NOTICE AUTH :*** Found your hostname +S: :jaguar.test CAP * LS :multi-prefix sasl +C: CAP REQ :multi-prefix sasl +S: :jaguar.test CAP jilles ACK :multi-prefix sasl +C: AUTHENTICATE PLAIN +S: AUTHENTICATE + +C: AUTHENTICATE amlsbGVzAGppbGxlcwBzZXNhbWU= +S: :jaguar.test 900 jilles jilles!jilles@localhost.stack.nl jilles :You are now logged in as jilles. +S: :jaguar.test 903 jilles :SASL authentication successful +C: CAP END +S: :jaguar.test 001 jilles :Welcome to the jillestest Internet Relay Chat Network jilles + + +[1] K. Mitchell, P. Lorier (Undernet IRC Network), L. Hardy (ircd-ratbox), P. +Kucharski (IRCnet), IRC Client Capabilities Extension. March 2005. +This internet-draft has expired; it can still be found on +http://www.leeh.co.uk/draft-mitchell-irc-capabilities-02.html + +See also http://sasl.charybdis.be/ and +http://wiki.atheme.net/index.php/PR:SASL_Authentication (these links are +currently dead but may be resurrected in the future). + +$Id: sasl.txt 3169 2007-01-28 22:13:18Z jilles $ diff --git a/muhstik/TODO.odt b/muhstik/TODO.odt new file mode 100644 index 0000000000000000000000000000000000000000..d25a3ceae40e284e5ccf905f1ba52da509f9ff2c GIT binary patch literal 25588 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�^{xrFfD2en8PRjWC`Gr&=h@cI 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 literal 0 HcmV?d00001 diff --git a/muhstik/TODO.pdf b/muhstik/TODO.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a8fa6a8681208c7cada73fdbad8a2995a99a3bb1 GIT binary patch literal 83746 zcma&tLy#^&moDnEZM(j*ZQI&q+ctLDw!O=?ZQHhOp1(Uz#~t+Go>6AxG&5Glv))W{ zMNx4&CVEyF^3kifLKrq8Mk0G7D;Qp023b=(a~BID_W!IXGl*N-xR^Q-F^Jn3x|oWZ z8rz$g^7F$uyEvH|+QN8bZ)@2q;Bg@R`1KkId{D34dyLq>ud!QY6+5J0hu$deWL){JXGcHcT=|n1;c6}HYr$DGMFa>PkwD5*P)G;ac()L@?l=C zn11q?R?bC=!A25ze>T?(x!e{i@myObEnAx-gT2G->}ev&@L+>%?qlLnAZ{Ef?TDtK zP%m-ity7!m{GV}l+@vw{M^16t1g#0GV!lEz@>Frb%AZszlK`P_+67)AJbYcS$NhMb z%CdUX;S{JBgT_50y;veRZn4?(`7nf_OgN0vkBxG?rZV`@l4(uF0XdQY4FvLkrjl0@ zNO6rk>p;)GZV=|6M|Jdhc?g{|YpP@;Y^Ew)Md8Aj7bZji?U#D07MAACR@33-?8O8f zGA6eC)d&*n74E@#$X9DoDoe)JKZL)7NNdI$Z}ebTLCIubD}uF)7BE(uBHzXc4)!RR zElH*!FV7(cw9N)FOkVVH?!k^m{T>XAJFvXid0D{21an)HSTx4PMp3ivM-{zbvP;O{ zq60X$A~|O~fzY9Hd(>T+4%@K)j;F!@2zGZvH@dt?a|Y`aPbk2xK}IrLHD#CTG0GRu zZurAA=}L*OAj7?(uKojaZbyhZ3O`;Y&TC4vtW_E%xCUbst~>J}Khvv=geSQQ z;QsIc(%@iBMxBg!EM)-~r*Y;Op5$4ke^b}-SgXYZ@HWM?u0tNH7reK@#E@(6ta0V( zYNOLOdxr#wHdcY%a|l=DnEkmATY~zzZshT7PZuNmroiZHlPGRH}*WoGJ=HHaj(o2_5*)>bAh zx~)SxNL-fTHhj}Q+X2fzu#6cD2&Jr*x^s;@1*;q_K?wDI9zIxRmEgUI-{<+Dx^~LH zG-uxdS9m=F)(>w)#C8%?pBW$46jT<+t(9HV+OEovGcci#hS!a0A$7v4wKEi46X!>D zAm*;r%y_#6gAOm7%{oXEs(?-DtBYa>fIuOCrQyr=Hd&kqkkGkV3Mh&?K{pp>iF8~CV+DgR55Kl#I8lRlid2& zuBV-ED(DDb{n!Lu-Nji5??<`DnCaJw{Y!2ii`d}~fo)H<;cJyMU0pXC|MoM#`dd-# ze4)I@w_lKa$W(#L0NmMUc?&Yrfk&XAeh^g94dB3_@bHk8*H7bLi_OZchui4B z`ppn~EU&mD^$)$u2W#891}5+-yogxpZ*}-v(*ApCX7!Vg(ilqYTPI;?9Atls-W;#4qcKp|cS5yL1jlOo~ijH$o&M0u0!+G;1|mRm7J>|65#n z!^ybO3+&%-*lQX$UQ;`h|692KGyAV%|6e8kzeXljHa3|5yT;7)zit9%=Kq(gU|8$Y z8MhVrcV=An2mB=|uEt~Jb6&yKhQe`MG_u+yb0sH2bRm&0!ics!Ht}yyC(unD=Rw(+ z-NwBK9AUt)5n-<{kbs=#WGUQl@n1~LBngJ=rz5L@68-+&q;UmQ0)XtIKvdK@W*DQ? zSh;;SvbY@LuIzyo|FLq*%38Tvq3M(YA_L&p=FMgX+qn8+dVgyC4-Hk;D9hTSH;u>R z#c<`i&VaO~N8_&(z~-`PWm>(F%bGlGB$9QT%0AQn@s4W-Dbg|h8}Y3wIAMov*6h2Z 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 PP(2V8ZEefdRx1AjAS61% literal 0 HcmV?d00001 diff --git a/muhstik/TODO.tex b/muhstik/TODO.tex new file mode 100644 index 0000000..878f82a --- /dev/null +++ b/muhstik/TODO.tex @@ -0,0 +1,219 @@ +\documentclass{article} +\title{TODO} +\author{Leon Kaiser} +\date{2011-05-31} +\pagenumbering{arabic} +\pagestyle{headings} +\nofiles +\begin{document} +\maketitle +\tableofcontents +\contentsline {section}{\numberline {1}Tasks Organized by Priority}{2} +\contentsline {subsection}{\numberline {1.1}High Priority}{2} +\contentsline {subsection}{\numberline {1.2}Medium Priority}{2} +\contentsline {subsection}{\numberline {1.3}Low Priority}{3} +\contentsline {subsection}{\numberline {1.4}Unknown Priority}{3} +\contentsline {section}{\numberline {2}Relevant IRC/IRL logs:}{4} +\contentsline {subsection}{\numberline {2.1}Jmax}{4} +\contentsline {subsubsection}{\numberline {2.1.1}Jmax and madvirii}{4} +\contentsline {subsubsection}{\numberline {2.1.2}Jmax, vx`, and madvirii.}{4} +\contentsline {subsection}{\numberline {2.2}LiteralKa blogging to no-one in particular.}{5} +\contentsline {subsection}{\numberline {2.3}Rufas}{5} +\contentsline {subsubsection}{\numberline {2.3.1}Rufas, sparc, and thyme}{5} +\contentsline {subsubsection}{\numberline {2.3.2}Rufas, incog, and rshxd.}{6} +\contentsline {subsection}{\numberline {2.4}The l0de Radio Hour}{6} +\contentsline {subsubsection}{\numberline {2.4.1}Rufas at [S1E12] 16:26}{6} +\contentsline {subsubsection}{\numberline {2.4.2}Rufas at [20100409] 30:00}{6} +\contentsline {subsubsection}{\numberline {2.4.3}sloth at [20100409] 3:07:21}{7} +\newpage +% {{{ Tasks organized by priority +\section{Tasks Organized by Priority}\label{Tasks Organized by Priority}\index{Tasks Organized by Priority} +% {{{ High Priority +\subsection{High Priority}\label{High Priority}\index{High Priority} +\begin{itemize} +\item Support clone connections via {\tt TOR}. +\begin{itemize} +\item {\tt TOR} might actually already be supported by {\tt PROXY}. +\end{itemize} +\item File flooding with \emph{optional} adjustments for nick-length and latency. +\begin{itemize} +\item The reason for the `optional' bit is because one won't necessarily need a nick-length adjustment if the file being flooded is not an {\tt ASCII} file (in fact, it will just look weird.) +\end{itemize} +\item Permit (bot)net to target multiple networks (be able to send separate commands to an individual network's bots. +\item Implement {\tt STUPID}-like {\tt SSH} tunneling. ({\tt SSH Tunnel Utilizing Python IRC Destroyer}.) +\item {\tt nickspam.pl}-style nick spamming (using {\tt /NAMES} output.) +\end{itemize} +% }}} +% {{{ Medium Priority +\subsection{Medium Priority}\label{Medium Priority}\index{Medium Priority} +\begin{itemize} +\item Add `nickshuffle' with `nickbase' option. +\item {\tt do\_jupe()}: +\begin{itemize} +\item Call on \{de,re,\}connection. +\end{itemize} +\item muhstik's mechanism to do {\tt MODE}s and {\tt KICK}s sucks. It doesn't track any list of nicks to op, or nicks to {\tt KICK}, but it tries to change with simple {\tt MODE +o} and {\tt KICK}. This needs to be recoded with penalty handling. +\item Mass\{{\tt KNOCK},{\tt INVITE},{\tt TOPIC}\}. +\begin{itemize} +\item For mass{\tt INVITE}s, allow a mask (*!*@*.* style) `blacklist' of sorts, so that the clones don't {\tt INVITE} honeypot bots, lorf. +\end{itemize} +\item Add a `stop connect' command (`pause' or w/e.) +\begin{itemize} +\item It should toggle, obviously. +\end{itemize} +\item Max bots for connect -- maximum successful bots, not maximum connections. +\begin{itemize} +\item Allow increase/decrease. +\end{itemize} +\item Support {\tt SSL}/{\tt TLS} and {\tt SASL} {\tt IRC} connections% +\footnote[1]{Leach, P., Newman, C. \emph{Using Digest Authentication as a SASL Mechanism}, {\tt RFC 2831}, May 2000, (http://www.ietf.org/rfc/rfc2831.txt)}% +\footnote[2]{Myers, J. \emph{Simple Authentication and Security Layer (SASL)}, {\tt RFC 2222}, October 1997. (http://www.ietf.org/rfc/rfc2222.txt)}% +\footnote[3]{Newman, C. \emph{Anonymous SASL Mechanism}, {\tt RFC 2245}, November 1997. (http://www.ietf.org/rfc/rfc2245.txt)} +\item Fix the buffer overflow or what the fuck ever when scan mode is enabled. +\end{itemize} +% }}} +% {{{ Low Priority +\subsection{Low Priority}\label{Low Priority}\index{Low Priority} +\begin{itemize} +\item Inline documentation. +\item {\tt TOPIC} lock mode. +\item {\tt TOPIC} fight mode. +\item {\tt CTCP} responses. +\item Random colored messages. +\item Spam every person, (non-)\{op,ircop,voice\}, etc. in the channel. +\item \{Mass,Single\} reconnect (for evading {\tt ident} bans.) +\item Detect {\tt MODE +g} notifications on {\tt PRIVMSG}. +\begin{itemize} +\item Probably should just issue a warning or something. +\end{itemize} +\item Add \emph{optional} spectator -- bot that watches, and doesn't respond to `all'. +\item Modify bot behavior so that if a clone is the only `user' in a channel, the clone will cycle \emph{only} once. If deopped by ChanServ, etc. then give up. +\begin{itemize} +\item Possibly include a configuration setting that determines if channel registration is possible on the network ({\tt boolean}, on the off-chance that a network with NickServ doesn't have ChanServ, as it would otherwise be covered by {\tt conf.dalnet}.) +\end{itemize} +\item Does {\tt echo} mimic {\tt CTCP ACTION}s as well? +\item Allow \emph{optional} Cisco passwords (in format IP\{:PW,\}.) +\item {\tt do\_jupe()}: +\begin{itemize} +\item If ghosted, does the affected clone reconnect? +\end{itemize} +\end{itemize} +% }}} +% {{{ Unknown Priority +\subsection{Unknown Priority}\label{Unknown Priority}\index{Unknown Priority} +\begin{itemize} +\item {\tt do\_jupe()}: +\begin{itemize} +\item \_2\_ @ {\tt MONITOR} +\item Handle overflow. +\end{itemize} +\item {\tt .select *\&,} +\item {\tt .deaf} +\item Write or find some sort of tool that can differentiate between {\tt SOCKS4} and {\tt SOCKS5} proxies. +\item Should {\tt static} be used more? +\end{itemize} +% }}} +% }}} +% {{{ Relevant IRC/IRL logs: +\section{Relevant IRC/IRL logs:}\label{Relevant IRC/IRL logs:}\index{Relevant IRC/IRL logs:} +% {{{ Jmax +\subsection{Jmax}\label{Jmax}\index{Jmax} +% {{{ Jmax and madvirii. +\subsubsection{Jmax and madvirii}\label{Jmax and madvirii}\index{Jmax and madvirii} +02:32:57 $<$@Jmax$>$ maybe... add line numbers?\\ +02:33:12 $<$+madvirii$>$ yah, like but it would have to be a system\\ +02:33:19 $<$@Jmax$>$ or after the line is sent to chan, send a message to the next\\\indent bot\\ +02:33:20 $<$+madvirii$>$ cuz it would get old editing your fav asciis\\ +02:33:36 $<$@Jmax$>$ system?\\ +02:33:44 $<$+madvirii$>$ yah like, read the txt file in line by line in an array, and\\\indent then assign a line number to each bot accordingly, if they got banned, it\\\indent might affect it, unless u design a failsafe, but it seems to be the right direction\\\indent to head in\\ +02:34:50 $<$@Jmax$>$ if a bot can't send the message, it's delegated +% }}} +% {{{ Jmax, vx`, and madvirii. +\subsubsection{Jmax, vx`, and madvirii.}\label{Jmax, vx`, and madvirii.}\index{Jmax, vx`, and madvirii.} +02:44:38 $<$@Jmax$>$ if you mean \emph{cat}|(1)ting, then here's what I have in mind:\\ +02:44:41 $<$@Jmax$>$ 1) determine latency\\ +02:44:47 $<$ vx`$>$ if it's gonna have the ability to scroll an ascii with the whole\\\indent set of bots or some that ie. aren't banned on the channel\\ +02:44:50 $<$@Jmax$>$ 2) ignore any bots with high latency, if there's enough bots\\ +02:44:56 $<$ vx`$>$ then you wouldn't want some bots ruining the ascii because of\\\indent slow links\\ +02:45:38 $<$+madvirii$>$ well, if we determine latency, and then just have the ten\\\indent fastest bots\\ +02:45:52 $<$@Jmax$>$ no, we can't just ignore the bots\\ +02:45:59 $<$ vx`$>$ hardly efficient\\ +02:46:03 $<$@Jmax$>$ if we only have 10, then it'll still be limited. esp. if we have\\\indent 100 more\\ +02:46:34 $<$ vx`$>$ apart from that, low latency links might get a) hit by the other\\\indent bots scrolling b) throttled c) \{banned,muted,shunned,glined\}\\ +02:47:29 $<$@Jmax$>$ 3) determine which bots are capable of speaking in the\\\indent channel. (not\{muted,banned,shunned\}, etc.)\\ +02:47:56 $<$ vx`$>$ freenode's ircd might have some gay features to suppress\\\indent ruining, and you don't necessarily get numerics from the ircd informing you\\ +02:48:11 $<$+madvirii$>$ that is a good 3-step process to execute \emph{prior} to even\\\indent attempting to load a file\\ +02:48:31 $<$@Jmax$>$ 4) pull the file into an array, and assign each line to one of\\\indent those bots\\ +02:48:51 $<$@Jmax$>$ 5) measure nick length, pad accordingly\\ +02:50:18 $<$ vx`$>$ but there are some time constraints on that code,\\\indent proportionally to the amount of bots you're scrolling with\\ +02:50:28 $<$@Jmax$>$ actually, in step 4, do not assign each line to a bot, maintain\\\indent each list separately, a queue for \{bot,line\}s\\ +02:55:02 $<$@Jmax$>$ 6) issue the first line to the first bot in queue, and make\\\indent the second bot wait for a successful message. If, during that time, it is\\\indent determined by the first bot that it \emph{cannot} send the message (and it's not a\\\indent latency issue), the line is re-assigned to the next bot in the queue and\\\indent removed from the queue.\\ +02:55:34 $<$@Jmax$>$ 7) repeat until the file is complete.\\ +02:55:52 $<$@Jmax$>$ that will ensure that, if a bot is kicked, the rest of the bots\\\indent take account for it\\ +02:56:04 $<$+madvirii$>$ so the number of lines in the file queue will determine\\\indent the number of bot instances in the bot queue\\ +02:56:05 $<$@Jmax$>$ and any lines assigned to that bot are not ignored\\ +02:56:10 $<$@Jmax$>$ no, completely independent\\ +02:56:27 $<$ vx`$>$ what do you in case of a line not arriving due to ie. unexpected\\\indent network problems, the link going down completely, etc.\\ +02:56:39 $<$+madvirii$>$ ok so its just for lines in queue\\ +02:57:24 $<$@Jmax$>$ well, that's what the second part of step 6 is for, but that\\\indent doesn't account for netsplits\\ +02:57:48 $<$ vx`$>$ or any other network issues for that matter, like the proxy\\\indent going down or lagging, ...\\ +03:00:02 $<$@Jmax$>$ sure it does, there will be a timeout, there will be the chance\\\indent that the bot is just very very lagged, and wasn't removed from the queue\\\indent earlier, and sends the message, reaches the timeout, and the other bot\\\indent replaces it, however, the message was still sent, so it will show up later\\ +03:02:08 $<$ vx`$>$ sure, but out of order and if that'd happen too often it'd ruin\\\indent the whole thing\\ +03:02:16 $<$@Jmax$>$ right: i think that will be a rarity +% }}} +% }}} +% {{{ LiteralKa blogging to no-one in particular. +\subsection{LiteralKa blogging to no-one in particular.}\label{LiteralKa blogging to no-one in particular.}\index{LiteralKa blogging to no-one in particular.} +13:51:56 $<$\&LiteralKa$>$ Maybe a command to spam a specific type of person in\\\indent a given channel: (non-)\{ops,ircops,voiced\}, all, etc.\\ +13:53:34 $<$\&LiteralKa$>$ Synchronized ASCII flooding would be p. cool (read:\\\indent \emph{cat}(1)-style file flooding.)\\ +13:53:48 $<$\&LiteralKa$>$ Like, delegate {\tt x} amount of lines to each bot based on\\\indent connection speed or some other algorithm or something. +% }}} +% {{{ Rufas +\subsection{Rufas}\label{Rufas}\index{Rufas} +% {{{ Rufas, sparc, and thyme +\subsubsection{Rufas, sparc, and thyme}\label{Rufas, sparc, and thyme}\index{Rufas, sparc, and thyme} +21:38:16 $<$+Rucas$>$ i highly suggest you check out {\tt STUPID}, run it from a very\\\indent fast box and it can DDOS an ircd just by flooding text in chat, {\tt SSH Tunnel\\\indent Utilizing Python IRC Destroyer}\\ +21:38:54 $<$ sparc$>$ \emph{Rucas}: how fast of a box are we talking\\ +21:39:00 $<$+Rucas$>$ 100mbit is perfect, basically you need enough bandwidth\\\indent to push all the OTHER boxes at a decent rate, it still does pretty well from\\\indent a standard cable line though\\ +21:39:42 $<$ thyme$>$ cant do something like: start remote processes on machines\\\indent to avoid having to have one big monsterbox and just send signalling from\\\indent home box\\ +21:40:09 $<$+Rucas$>$ well the original intent was cooperative flooding so like,\\\indent you'd have 5 hosts and they'd all paste lines of one ascii, so you could spam\\\indent asciis but bots wouldn't molish you but i never got around to that, because\\\indent of \emph{jenk}'s {\tt irc-rc} +% }}} +% {{{ Rufas, incog, and rshxd. +\subsubsection{Rufas, incog, and rshxd.}\label{Rufas, incog, and rshxd.}\index{Rufas, incog, and rshxd.} +21:42:43 $<$ rshxd$>$ \emph{Rucas}: since when did you write {\tt ASIAN}\\ +21:42:50 $<$\&Rucas$>$ fucing years ago\\ +21:42:59 $<$ rshxd$>$ I thought \emph{abez} wrote that for you\\ +21:43:02 $<$\&Rucas$>$ no, i wrote it, and \emph{abez} rewrote part of it\\ +21:43:04 $<$ incog$>$ before that was {\tt AYSYN}\\ +21:43:13 $<$\&Rucas$>$ and then \emph{Jmax} rewrote that, and it is on {\tt ASIANv6} or some\\\indent shit, but i wrote {\tt ASIANv1}\\ +21:43:36 $<$ incog$>$ was it based off \emph{mef}'s shit or all new?\\ +21:43:42 $<$\&Rucas$>$ all new, i wish i had \emph{mef}'s code, but now i wrote {\tt STUPID}\\\indent which is much nicer than {\tt ASIAN} +% }}} +% }}} +% {{{ The l0de Radio Hour +\subsection{The l0de Radio Hour}\label{The l0de Radio Hour}\index{The l0de Radio Hour} +% {{{ Rufas at [S1E12] 16:26 +\subsubsection{Rufas at [S1E12] 16:26}\label{Rufas at [S1E12] 16:26}\index{Rufas at [S1E12] 16:26} +\emph{l0de}: [If you steal that idea] my lawyers will fuck you so severely that it's not\\\indent even funny...\\ +\emph{Rufas}: I'm sure they will, just like that guy's 800 bot botnet running wild on\\\indent EFNet right now.\\ +\emph{l0de}: Holy shit, that's hillarious--he's got 800 bots now?\\ +\emph{Rufas}: Yeah, he's up to 900 now.\\ +\emph{l0de}: 900 fuckin' bots, through a JPEG redirect exploit-type of thing? [...] And\\\indent for our listeners, basically this guy coded an Internet Explorer link that runs\\\indent an mIRC exploit and basically \bf{turns your computar into botnet}\rm\\ +\emph{Rufas}: And he authorized us to reverse engineer it [...] We can use it to assrape\\\indent \emph{\#politics}. +% }}} +% {{{ Rufas at [20100409] 30:00 +\subsubsection{Rufas at [20100409] 30:00}\label{Rufas at [20100409] 30:00}\index{Rufas at [20100409] 30:00} +\emph{l0de}: Alright, so what people really want to hear about from you is the ruin:\\\indent the mega ruin that is going on. And you have this \bf{massive}\rm\symbol{32} fucking botnet\\\indent and you're annihilating everything that comes into contact with you. I know\\\indent Hardchats was DDoSed massively last night, primarily because of your\\\indent exploits. Why don't you tell us what happened?\\ +\emph{Rufas}: Well, not a heck of a lot has really changed with what I've been doing.\\\indent I've used the new tool I wrote a few months ago called {\tt STUPID} but-\\ +\emph{l0de}: Is this a reference to \emph{Max Goldberg}'s {\tt AYSYN}--no it was \emph{mef} that wrote\\\indent {\tt AYSYN} right?\\ +\emph{Rufas}: \emph{mef} wrote {\tt AYSYN} and I wrote {\tt ASIAN} based on that which was {\tt Automated\\\indent Synchronous IRC Attack Network}. And then based on that I made {\tt STUPID},\\\indent which is {\tt SSH Tunnel Utilizing Python IRC Destroyer}--because they all\\\indent have to have some sort of stupid {\tt GNU} acronym to go with them. +% }}} +% {{{ sloth at [20100409] 3:07:21 +\subsubsection{sloth at [20100409] 3:07:21}\label{sloth at [20100409] 3:07:21}\index{sloth at [20100409] 3:07:21} +\emph{sloth}: I've gotten a lot of comments about "Oh my God! This is the first IPv6\\\indent botnet I've ever seen."\\ +\emph{sloth}: We are on the cutting edge of IRC flooding: we are pushing it into IPv6\\\indent and people just \bf{don't even know}\rm. +% }}} +% }}} +% }}} +% }}} +\end{document} diff --git a/muhstik/cisco.txt b/muhstik/cisco.txt new file mode 100644 index 0000000..cb3a3f5 --- /dev/null +++ b/muhstik/cisco.txt @@ -0,0 +1,2641 @@ +66.0.97.3 +66.0.97.3 +69.0.59.138 +69.1.107.1 +69.1.107.129 +69.1.107.193 +69.1.107.253 +69.1.108.1 +69.1.108.133 +69.1.108.145 +69.1.108.157 +69.1.108.169 +69.1.124.1 +69.1.124.113 +69.1.124.117 +69.1.124.133 +69.1.124.169 +69.0.59.138 +69.1.107.1 +69.1.107.129 +69.1.107.193 +69.1.107.253 +69.1.108.1 +69.1.108.145 +69.1.108.157 +69.1.108.165 +69.1.108.133 +69.1.124.113 +69.1.124.117 +69.1.124.133 +69.1.124.169 +69.1.124.197 +69.1.124.221 +200.0.255.4 +200.0.30.28 +200.10.92.220 +200.1.154.1 +200.12.125.106 +200.12.64.1 +200.12.64.179 +200.12.65.1 +200.12.66.100 +200.12.69.1 +200.12.70.1 +200.12.71.1 +200.13.226.130 +200.13.227.174 +200.13.228.217 +200.13.231.105 +200.13.234.74 +200.13.234.77 +200.13.247.121 +200.14.53.129 +200.16.181.249 +200.189.194.190 +200.189.194.89 +200.189.245.30 +200.193.103.86 +200.193.126.26 +200.193.127.146 +200.193.28.6 +200.193.46.161 +200.193.46.225 +200.193.46.81 +200.193.51.1 +200.193.58.242 +200.193.79.214 +200.193.79.46 +200.194.127.161 +200.194.127.162 +200.194.127.185 +200.194.95.17 +200.195.11.200 +200.195.19.129 +200.195.43.234 +200.195.60.121 +200.195.60.124 +200.195.6.197 +200.195.72.209 +200.195.7.225 +200.195.74.110 +200.195.74.217 +200.195.74.42 +200.195.95.161 +200.195.95.65 +200.196.77.153 +200.196.77.41 +200.198.252.1 +200.198.67.142 +200.198.67.146 +200.198.67.150 +200.198.76.33 +200.199.121.241 +200.199.140.126 +200.199.140.14 +200.199.140.18 +200.199.140.22 +200.199.140.38 +200.199.140.62 +200.199.148.134 +200.199.148.185 +200.199.148.193 +200.199.148.58 +200.199.160.106 +200.199.160.54 +200.199.174.242 +200.199.64.86 +200.199.65.129 +200.199.69.30 +200.199.69.42 +200.199.69.73 +200.199.73.90 +200.199.82.169 +200.199.83.222 +200.20.113.57 +200.202.112.202 +200.202.118.217 +200.202.196.82 +200.202.198.154 +200.202.211.126 +200.203.159.206 +200.203.159.210 +200.203.192.50 +200.205.120.153 +200.205.198.129 +200.205.208.177 +200.205.33.41 +200.206.113.73 +200.206.26.209 +200.206.87.225 +200.208.165.1 +200.208.169.1 +200.208.169.129 +200.208.181.15 +200.208.252.11 +200.208.71.182 +200.209.115.1 +200.209.115.65 +200.209.188.193 +200.209.190.246 +200.209.73.129 +200.209.74.34 +200.209.74.42 +200.210.1.14 +200.210.210.54 +200.210.218.114 +200.210.62.17 +200.211.119.190 +200.211.141.22 +200.21.161.241 +200.21.182.225 +200.21.184.52 +200.21.190.49 +200.211.95.30 +200.21.202.1 +200.212.199.62 +200.212.241.154 +200.213.102.129 +200.213.102.193 +200.213.128.129 +200.213.142.22 +200.213.219.129 +200.213.60.129 +200.214.131.142 +200.214.131.154 +200.214.131.162 +200.214.131.222 +200.214.131.50 +200.214.158.129 +200.214.175.86 +200.214.191.129 +200.215.105.113 +200.215.33.49 +200.215.49.137 +200.215.56.238 +200.215.74.90 +200.215.74.98 +200.215.76.98 +200.215.77.50 +200.215.79.22 +200.215.95.254 +200.215.97.153 +200.216.102.242 +200.216.102.66 +200.216.112.190 +200.216.112.54 +200.216.119.9 +200.216.171.22 +200.216.171.82 +200.216.172.54 +200.216.178.18 +200.216.182.126 +200.216.198.81 +200.216.214.209 +200.216.214.213 +200.216.241.209 +200.216.243.83 +200.216.244.102 +200.216.244.134 +200.216.58.190 +200.216.58.230 +200.216.59.113 +200.216.60.22 +200.216.63.150 +200.216.64.10 +200.216.64.182 +200.216.64.206 +200.216.64.242 +200.216.64.246 +200.216.64.49 +200.216.66.1 +200.216.66.25 +200.216.66.59 +200.216.67.134 +200.216.67.233 +200.216.67.249 +200.216.68.201 +200.216.70.105 +200.21.69.89 +200.217.156.234 +200.217.158.170 +200.217.163.241 +200.217.164.113 +200.217.164.50 +200.217.168.113 +200.217.169.137 +200.217.171.222 +200.217.171.30 +200.217.192.166 +200.217.192.174 +200.217.192.90 +200.217.206.50 +200.217.208.38 +200.217.218.125 +200.217.218.66 +200.217.219.112 +200.217.219.113 +200.217.219.119 +200.217.234.201 +200.217.247.154 +200.217.247.82 +200.217.247.94 +200.217.247.98 +200.217.70.222 +200.21.87.25 +200.220.143.58 +200.222.102.2 +200.222.104.14 +200.222.104.38 +200.222.107.130 +200.222.108.193 +200.222.2.145 +200.222.2.2 +200.222.46.225 +200.222.46.46 +200.222.62.198 +200.222.63.110 +200.222.65.57 +200.222.71.38 +200.222.71.57 +200.222.72.17 +200.222.84.253 +200.223.129.161 +200.223.134.166 +200.223.136.98 +200.223.155.97 +200.223.175.86 +200.223.178.121 +200.223.178.214 +200.223.178.226 +200.223.178.237 +200.223.178.73 +200.223.178.97 +200.223.181.153 +200.223.188.156 +200.223.188.157 +200.223.193.73 +200.223.204.78 +200.223.20.62 +200.223.20.65 +200.223.207.229 +200.223.2.110 +200.223.2.182 +200.223.219.114 +200.223.219.22 +200.223.235.110 +200.223.238.94 +200.223.33.102 +200.223.64.66 +200.223.85.94 +200.223.91.57 +200.223.98.242 +200.225.65.81 +200.228.127.102 +200.228.13.50 +200.228.172.250 +200.228.172.46 +200.228.202.1 +200.228.39.128 +200.228.39.129 +200.228.39.191 +200.230.107.214 +200.230.155.129 +200.230.185.1 +200.230.186.1 +200.230.217.129 +200.230.22.10 +200.230.36.38 +200.230.49.130 +200.230.52.1 +200.230.52.65 +200.230.57.129 +200.230.57.193 +200.231.101.86 +200.231.103.226 +200.231.159.126 +200.231.247.14 +200.231.77.138 +200.232.120.129 +200.232.120.33 +200.232.32.44 +200.232.33.94 +200.232.36.146 +200.232.41.142 +200.232.44.254 +200.232.47.58 +200.232.63.73 +200.232.66.106 +200.232.66.198 +200.232.80.209 +200.232.83.38 +200.23.77.1 +200.241.211.230 +200.241.211.66 +200.241.211.82 +200.241.25.46 +200.24.161.14 +200.241.75.218 +200.24.181.211 +200.24.213.201 +200.242.166.161 +200.242.172.174 +200.242.172.50 +200.24.219.97 +200.242.249.54 +200.242.52.54 +200.242.64.86 +200.242.78.22 +200.242.88.129 +200.242.91.11 +200.243.109.254 +200.243.110.129 +200.243.110.193 +200.243.175.129 +200.243.175.193 +200.243.237.122 +200.243.239.230 +200.243.239.62 +200.243.239.94 +200.243.30.129 +200.243.30.193 +200.243.34.182 +200.243.6.129 +200.243.65.30 +200.243.65.82 +200.244.173.230 +200.245.107.122 +200.245.117.1 +200.245.117.65 +200.245.176.209 +200.245.209.70 +200.246.106.134 +200.246.107.34 +200.246.110.206 +200.246.149.234 +200.246.242.90 +200.246.98.129 +200.247.133.178 +200.247.156.1 +200.247.157.126 +200.247.203.110 +200.247.244.42 +200.247.250.146 +200.247.82.106 +200.248.15.234 +200.248.7.145 +200.249.160.1 +200.249.171.106 +200.249.175.106 +200.249.175.182 +200.249.191.94 +200.249.254.122 +200.249.30.10 +200.250.113.1 +200.250.127.34 +200.250.14.170 +200.250.159.30 +200.250.159.78 +200.250.189.129 +200.250.189.193 +200.250.208.234 +200.250.208.238 +200.250.2.241 +200.251.205.1 +200.25.193.137 +200.25.193.173 +200.25.193.177 +200.25.193.210 +200.25.193.214 +200.25.193.222 +200.25.193.245 +200.25.194.161 +200.25.194.174 +200.25.194.182 +200.25.194.185 +200.25.194.202 +200.25.194.206 +200.25.194.225 +200.25.196.209 +200.25.196.225 +200.25.198.1 +200.25.198.17 +200.25.198.214 +200.25.198.5 +200.25.198.9 +200.25.199.41 +200.25.200.185 +200.25.200.69 +200.25.204.250 +200.25.205.105 +200.25.205.33 +200.25.205.89 +200.25.206.129 +200.25.206.21 +200.25.206.241 +200.25.206.25 +200.25.206.61 +200.25.206.89 +200.25.207.129 +200.25.207.145 +200.25.207.25 +200.25.207.85 +200.25.210.105 +200.25.210.109 +200.25.210.113 +200.25.210.117 +200.25.210.125 +200.25.210.129 +200.25.210.137 +200.25.210.141 +200.25.210.145 +200.25.210.153 +200.25.210.169 +200.25.210.17 +200.25.210.177 +200.25.210.49 +200.25.210.81 +200.25.210.89 +200.25.210.93 +200.25.210.97 +200.25.211.58 +200.25.211.61 +200.25.211.65 +200.25.211.77 +200.25.212.105 +200.25.212.113 +200.25.212.117 +200.25.212.30 +200.25.212.34 +200.25.212.37 +200.25.212.41 +200.25.212.49 +200.25.212.61 +200.25.212.78 +200.25.212.81 +200.25.212.90 +200.25.212.94 +200.25.214.1 +200.25.214.25 +200.252.165.129 +200.252.185.65 +200.252.190.1 +200.252.225.46 +200.252.226.129 +200.252.234.90 +200.252.243.150 +200.252.243.246 +200.252.247.18 +200.252.49.210 +200.252.68.193 +200.252.76.81 +200.252.79.129 +200.252.79.193 +200.252.98.129 +200.253.102.130 +200.253.128.145 +200.253.128.177 +200.253.132.234 +200.253.132.58 +200.253.15.54 +200.253.166.129 +200.253.246.241 +200.253.44.65 +200.253.50.178 +200.254.226.1 +200.254.231.22 +200.254.255.146 +200.255.111.209 +200.255.126.34 +200.255.235.206 +200.26.171.213 +200.26.70.65 +200.27.167.4 +200.29.240.1 +200.30.101.209 +200.31.139.222 +200.31.139.78 +200.31.140.129 +200.31.140.249 +200.31.194.18 +200.31.194.242 +200.31.195.17 +200.31.197.161 +200.31.198.225 +200.31.198.41 +200.31.199.146 +200.31.202.113 +200.31.202.201 +200.31.202.25 +200.31.202.33 +200.31.202.74 +200.31.204.49 +200.31.205.233 +200.31.206.25 +200.31.206.73 +200.31.207.1 +200.31.207.20 +200.31.211.1 +200.31.216.33 +200.31.28.34 +200.31.29.146 +200.31.29.41 +200.31.63.229 +200.31.65.254 +200.31.9.54 +200.31.9.62 +200.32.102.66 +200.32.126.114 +200.32.211.41 +200.32.229.1 +200.32.231.34 +200.3.244.1 +200.3.245.1 +200.32.69.145 +200.32.72.17 +200.33.214.82 +200.33.215.178 +200.33.222.78 +200.35.104.1 +200.35.106.161 +200.35.106.217 +200.35.106.49 +200.35.106.81 +200.35.107.161 +200.35.107.209 +200.35.108.105 +200.35.108.97 +200.35.115.49 +200.35.171.2 +200.35.66.29 +200.35.66.9 +200.35.70.193 +200.35.71.225 +200.35.72.137 +200.35.73.33 +200.35.75.49 +200.35.77.222 +200.35.78.225 +200.35.78.233 +200.35.82.77 +200.35.86.161 +200.35.88.138 +200.35.89.177 +200.35.90.10 +200.35.90.137 +200.35.90.209 +200.35.90.41 +200.35.90.89 +200.35.92.185 +200.35.94.57 +200.36.104.1 +200.36.162.154 +200.36.162.230 +200.36.163.58 +200.36.166.81 +200.36.168.201 +200.36.183.174 +200.36.183.190 +200.36.185.97 +200.36.96.1 +200.36.96.17 +200.37.106.81 +200.37.108.33 +200.37.144.194 +200.37.144.198 +200.37.144.81 +200.37.3.130 +200.37.50.113 +200.37.52.49 +200.37.75.129 +200.38.6.97 +200.38.7.21 +200.39.13.154 +200.39.13.182 +200.39.13.210 +200.39.13.214 +200.39.13.218 +200.39.13.230 +200.39.13.81 +200.39.2.214 +200.39.23.1 +200.39.23.133 +200.39.23.145 +200.39.23.186 +200.39.24.89 +200.39.2.74 +200.39.6.142 +200.39.6.190 +200.39.6.74 +200.40.34.35 +200.40.34.36 +200.40.34.41 +200.41.127.129 +200.41.236.17 +200.41.39.157 +200.41.79.133 +200.41.80.73 +200.41.81.226 +200.42.208.201 +200.42.225.142 +200.42.61.242 +200.43.12.227 +200.43.224.66 +200.43.67.7 +200.44.114.49 +200.44.122.110 +200.44.125.110 +200.44.125.2 +200.44.144.138 +200.44.145.134 +200.44.147.17 +200.44.180.81 +200.44.182.116 +200.44.191.182 +200.44.191.38 +200.45.31.209 +200.45.75.113 +200.46.58.139 +200.47.151.53 +200.47.61.34 +200.47.91.17 +200.48.1.113 +200.48.18.225 +200.49.223.100 +200.49.48.13 +200.51.203.24 +200.5.207.44 +200.54.64.251 +200.54.76.137 +200.55.148.156 +200.55.148.201 +200.55.150.241 +200.55.165.193 +200.55.169.105 +200.55.37.9 +200.56.124.38 +200.56.126.226 +200.56.248.158 +200.56.248.166 +200.56.248.169 +200.56.248.185 +200.56.99.158 +200.56.99.165 +200.56.99.51 +200.57.136.139 +200.57.16.113 +200.57.16.114 +200.57.2.233 +200.57.36.122 +200.58.147.26 +200.58.162.170 +200.58.162.190 +200.58.165.49 +200.59.185.2 +200.59.34.1 +200.59.34.129 +200.59.34.137 +200.59.34.145 +200.59.35.1 +200.59.35.129 +200.59.44.129 +200.59.44.133 +200.59.44.169 +200.59.44.177 +200.59.44.193 +200.59.44.253 +200.59.50.137 +200.59.50.150 +200.59.55.1 +200.59.55.129 +200.59.55.33 +200.60.100.225 +200.60.108.65 +200.60.14.209 +200.60.16.241 +200.60.82.97 +200.60.94.17 +200.61.41.1 +200.61.41.189 +200.61.41.193 +200.61.41.197 +200.61.41.201 +200.61.41.205 +200.62.137.161 +200.62.15.141 +200.62.15.142 +200.62.15.158 +200.62.15.165 +200.62.15.166 +200.62.15.188 +200.62.15.189 +200.62.15.33 +200.62.15.34 +200.62.15.83 +200.62.15.87 +200.62.15.90 +200.62.172.174 +200.62.210.58 +200.62.2.196 +200.62.2.198 +200.62.2.201 +200.62.2.205 +200.62.221.9 +200.62.2.222 +200.62.224.57 +200.62.249.185 +200.62.249.201 +200.62.250.77 +200.62.251.1 +200.62.251.145 +200.62.253.139 +200.62.253.200 +200.62.253.215 +200.62.253.246 +200.62.254.11 +200.62.254.124 +200.62.254.130 +200.62.254.150 +200.62.255.153 +200.62.255.156 +200.62.255.201 +200.62.255.9 +200.62.27.100 +200.62.27.101 +200.62.27.102 +200.62.27.194 +200.62.27.198 +200.62.27.213 +200.62.27.214 +200.62.27.218 +200.62.27.222 +200.62.27.230 +200.62.27.98 +200.62.6.133 +200.62.6.136 +200.62.6.137 +200.62.6.140 +200.62.6.141 +200.62.8.170 +200.62.8.171 +200.62.8.234 +200.62.8.235 +200.62.9.165 +200.63.74.210 +200.63.74.225 +200.63.74.241 +200.63.78.2 +200.63.78.3 +200.63.78.7 +200.63.80.2 +200.63.80.7 +200.66.102.225 +200.66.103.1 +200.66.103.2 +200.66.103.3 +200.66.103.4 +200.66.103.5 +200.66.103.6 +200.66.103.7 +200.66.104.25 +200.66.104.36 +200.66.104.4 +200.66.104.7 +200.66.108.228 +200.66.96.136 +200.66.96.140 +200.66.96.144 +200.66.96.41 +200.66.96.42 +200.67.185.82 +200.67.224.250 +200.68.56.81 +200.68.93.17 +200.69.133.95 +200.71.146.225 +200.71.148.97 +200.71.151.105 +200.71.151.145 +200.71.151.153 +200.71.152.225 +200.71.153.105 +200.71.154.97 +200.71.188.177 +200.71.230.17 +200.7.205.177 +200.72.159.4 +200.73.129.113 +200.73.129.2 +200.73.129.33 +200.73.129.41 +200.73.129.73 +200.73.129.81 +200.75.128.137 +200.75.128.25 +200.75.128.37 +200.75.128.41 +200.75.128.5 +200.75.128.73 +200.75.129.113 +200.75.129.161 +200.75.129.165 +200.75.129.17 +200.75.129.201 +200.75.129.225 +200.75.129.233 +200.75.129.33 +200.75.131.249 +200.75.131.69 +200.75.131.81 +200.75.131.9 +200.75.132.125 +200.75.132.33 +200.75.132.45 +200.75.133.93 +200.75.141.13 +200.75.141.25 +200.75.141.9 +200.75.144.161 +200.75.144.89 +200.75.151.101 +200.75.151.185 +200.75.155.1 +200.75.155.129 +200.75.155.209 +200.75.155.225 +200.75.70.129 +200.75.70.33 +200.75.82.122 +200.75.82.126 +200.76.110.189 +200.76.175.42 +200.78.186.14 +200.78.243.204 +200.78.253.137 +200.79.125.81 +200.80.104.98 +200.80.109.194 +200.80.230.85 +200.81.48.35 +200.84.166.105 +200.85.136.66 +200.85.136.67 +200.85.42.130 +200.85.60.14 +200.85.69.225 +200.87.10.193 +200.87.104.177 +200.87.104.73 +200.87.106.14 +200.87.108.73 +200.87.109.241 +200.87.109.57 +200.87.109.65 +200.87.109.9 +200.87.111.1 +200.87.111.113 +200.87.111.9 +200.87.114.97 +200.87.117.121 +200.87.117.146 +200.87.117.49 +200.87.119.65 +200.87.121.129 +200.87.122.105 +200.87.125.49 +200.87.126.33 +200.87.129.233 +200.87.129.241 +200.87.130.185 +200.87.132.161 +200.87.132.81 +200.87.133.209 +200.87.134.1 +200.87.135.1 +200.87.135.73 +200.87.135.9 +200.87.136.177 +200.87.136.193 +200.87.136.225 +200.87.140.1 +200.87.140.17 +200.87.140.201 +200.87.141.241 +200.87.143.2 +200.87.143.241 +200.87.145.209 +200.87.148.3 +200.87.158.139 +200.87.160.113 +200.87.162.60 +200.87.177.105 +200.87.177.225 +200.87.177.241 +200.87.180.137 +200.87.192.1 +200.87.192.209 +200.87.192.65 +200.87.192.97 +200.87.193.161 +200.87.193.225 +200.87.194.177 +200.87.195.130 +200.87.196.98 +200.87.198.49 +200.87.199.81 +200.87.201.105 +200.87.201.25 +200.87.225.169 +200.87.229.161 +200.87.23.187 +200.87.239.193 +200.87.241.33 +200.87.241.49 +200.87.241.73 +200.87.241.9 +200.87.248.10 +200.87.248.7 +200.87.248.9 +200.87.26.193 +200.87.27.161 +200.87.27.17 +200.87.30.129 +200.87.30.130 +200.87.31.4 +200.87.3.2 +200.87.32.65 +200.87.3.3 +200.87.3.4 +200.87.3.5 +200.87.3.7 +200.87.54.209 +200.87.55.1 +200.87.58.201 +200.87.69.97 +200.87.97.209 +200.88.0.162 +200.88.0.246 +200.88.101.179 +200.88.101.194 +200.88.101.249 +200.88.101.54 +200.88.102.182 +200.88.103.132 +200.88.103.141 +200.88.103.243 +200.88.10.42 +200.88.105.16 +200.88.105.169 +200.88.105.248 +200.88.105.85 +200.88.106.239 +200.88.106.7 +200.88.111.35 +200.88.112.57 +200.88.112.9 +200.88.113.217 +200.88.114.217 +200.88.115.145 +200.88.115.185 +200.88.115.41 +200.88.115.73 +200.88.115.74 +200.88.120.137 +200.88.120.177 +200.88.120.233 +200.88.121.193 +200.88.121.57 +200.88.122.161 +200.88.122.17 +200.88.122.233 +200.88.122.9 +200.88.122.97 +200.88.123.1 +200.88.123.121 +200.88.123.153 +200.88.123.169 +200.88.123.17 +200.88.123.225 +200.88.128.149 +200.88.128.218 +200.88.129.130 +200.88.129.14 +200.88.1.30 +200.88.131.4 +200.88.132.227 +200.88.132.244 +200.88.132.39 +200.88.134.48 +200.88.135.189 +200.88.139.118 +200.88.139.131 +200.88.139.175 +200.88.139.177 +200.88.139.202 +200.88.139.28 +200.88.140.109 +200.88.140.14 +200.88.140.142 +200.88.140.155 +200.88.140.190 +200.88.140.57 +200.88.141.101 +200.88.141.127 +200.88.141.143 +200.88.141.185 +200.88.141.186 +200.88.141.195 +200.88.141.227 +200.88.141.230 +200.88.141.81 +200.88.142.110 +200.88.142.148 +200.88.142.194 +200.88.142.226 +200.88.142.46 +200.88.142.53 +200.88.142.77 +200.88.143.142 +200.88.143.192 +200.88.143.195 +200.88.143.251 +200.88.144.168 +200.88.144.181 +200.88.144.254 +200.88.1.45 +200.88.145.242 +200.88.145.254 +200.88.150.69 +200.88.156.129 +200.88.160.117 +200.88.161.53 +200.88.165.149 +200.88.165.169 +200.88.165.188 +200.88.165.5 +200.88.165.8 +200.88.166.80 +200.88.169.25 +200.88.171.22 +200.88.174.130 +200.88.175.162 +200.88.178.201 +200.88.178.203 +200.88.178.222 +200.88.179.198 +200.88.180.113 +200.88.180.137 +200.88.180.169 +200.88.180.17 +200.88.180.225 +200.88.180.49 +200.88.180.97 +200.88.181.129 +200.88.181.241 +200.88.181.249 +200.88.181.49 +200.88.181.73 +200.88.181.89 +200.88.18.215 +200.88.186.78 +200.88.187.212 +200.88.187.64 +200.88.190.120 +200.88.190.189 +200.88.191.145 +200.88.191.161 +200.88.191.241 +200.88.191.249 +200.88.191.33 +200.88.19.135 +200.88.191.46 +200.88.191.49 +200.88.191.73 +200.88.19.28 +200.88.193.234 +200.88.193.244 +200.88.194.113 +200.88.194.124 +200.88.194.249 +200.88.195.254 +200.88.195.94 +200.88.196.167 +200.88.196.172 +200.88.196.38 +200.88.198.192 +200.88.198.35 +200.88.198.38 +200.88.199.113 +200.88.199.153 +200.88.200.114 +200.88.202.15 +200.88.202.223 +200.88.205.102 +200.88.207.168 +200.88.212.10 +200.88.213.159 +200.88.215.133 +200.88.215.226 +200.88.216.109 +200.88.216.166 +200.88.217.67 +200.88.218.42 +200.88.219.164 +200.88.220.227 +200.88.222.106 +200.88.222.108 +200.88.222.153 +200.88.222.165 +200.88.222.204 +200.88.222.209 +200.88.222.210 +200.88.222.228 +200.88.222.229 +200.88.222.242 +200.88.22.250 +200.88.223.151 +200.88.224.100 +200.88.225.104 +200.88.225.129 +200.88.226.138 +200.88.226.154 +200.88.228.98 +200.88.230.106 +200.88.230.217 +200.88.231.119 +200.88.231.170 +200.88.231.178 +200.88.233.12 +200.88.233.19 +200.88.233.5 +200.88.235.48 +200.88.236.248 +200.88.23.87 +200.88.239.35 +200.88.240.121 +200.88.240.153 +200.88.240.161 +200.88.240.25 +200.88.240.33 +200.88.240.41 +200.88.240.57 +200.88.241.113 +200.88.241.121 +200.88.241.137 +200.88.241.193 +200.88.242.105 +200.88.242.209 +200.88.242.217 +200.88.242.233 +200.88.242.249 +200.88.243.113 +200.88.243.137 +200.88.243.225 +200.88.243.65 +200.88.243.89 +200.88.245.2 +200.88.248.143 +200.88.28.168 +200.88.30.109 +200.88.30.222 +200.88.30.232 +200.88.30.32 +200.88.30.49 +200.88.30.75 +200.88.31.186 +200.88.31.213 +200.88.31.245 +200.88.32.31 +200.88.34.195 +200.88.34.215 +200.88.35.215 +200.88.35.52 +200.88.36.118 +200.88.36.120 +200.88.36.16 +200.88.36.171 +200.88.36.56 +200.88.36.59 +200.88.37.148 +200.88.38.103 +200.88.38.197 +200.88.38.238 +200.88.39.158 +200.88.39.168 +200.88.39.9 +200.88.40.171 +200.88.44.1 +200.88.44.193 +200.88.48.185 +200.88.5.19 +200.88.5.88 +200.88.6.28 +200.88.6.3 +200.88.6.36 +200.88.6.51 +200.88.65.36 +200.88.6.6 +200.88.66.121 +200.88.6.68 +200.88.71.37 +200.88.73.122 +200.88.73.142 +200.88.74.187 +200.88.74.19 +200.88.76.17 +200.88.77.166 +200.88.80.41 +200.88.81.197 +200.88.81.43 +200.88.82.101 +200.88.84.35 +200.88.86.106 +200.88.86.121 +200.88.86.240 +200.88.86.35 +200.88.86.70 +200.88.86.88 +200.88.87.196 +200.88.87.92 +200.88.8.85 +200.88.88.51 +200.88.90.31 +200.88.91.10 +200.88.91.137 +200.88.9.217 +200.88.92.178 +200.88.92.77 +200.88.92.83 +200.88.93.126 +200.88.93.127 +200.88.93.59 +200.88.94.125 +200.89.1.50 +200.90.18.209 +200.90.20.105 +200.90.21.254 +200.90.22.182 +200.90.23.193 +200.90.24.97 +200.90.28.221 +200.90.34.14 +200.90.34.185 +200.90.41.145 +200.91.3.78 +200.91.68.225 +200.91.82.214 +200.91.96.222 +200.91.99.41 +200.93.195.18 +200.93.91.250 +200.94.105.97 +200.94.140.1 +200.94.160.227 +200.94.73.33 +200.96.12.5 +200.96.242.126 +200.97.133.193 +200.97.133.209 +200.97.133.49 +200.97.135.225 +200.97.135.241 +200.97.135.41 +200.97.21.86 +200.97.84.42 +200.97.92.34 +200.97.92.37 +200.97.93.129 +200.97.94.118 +200.99.24.194 +200.99.31.1 +24.2.251.7 +24.6.140.176 +61.11.32.100 +61.11.32.103 +61.11.32.104 +61.11.32.107 +61.11.32.109 +61.11.32.110 +61.11.32.111 +61.11.32.112 +61.11.32.113 +61.11.32.114 +61.11.32.115 +61.11.32.117 +61.11.32.120 +61.11.32.121 +61.11.32.122 +61.11.32.123 +61.11.32.124 +61.11.32.130 +61.11.32.131 +61.11.32.132 +61.11.32.133 +61.11.32.134 +61.11.32.135 +61.11.32.136 +61.11.32.137 +61.11.32.138 +61.11.32.139 +61.11.32.140 +61.11.32.141 +61.11.32.142 +61.11.32.144 +61.11.32.145 +61.11.32.146 +61.11.32.147 +61.11.32.148 +61.11.32.149 +61.11.32.150 +61.11.32.152 +61.11.32.154 +61.11.32.155 +61.11.32.157 +61.11.32.158 +61.11.32.159 +61.11.32.160 +61.11.32.161 +61.11.32.163 +61.11.32.164 +61.11.32.165 +61.11.32.167 +61.11.32.168 +61.11.32.169 +61.11.32.170 +61.11.32.175 +61.11.32.176 +61.11.32.177 +61.11.32.179 +61.11.32.180 +61.11.32.181 +61.11.32.182 +61.11.32.183 +61.11.32.184 +61.11.32.185 +61.11.32.186 +61.11.32.188 +61.11.32.189 +61.11.32.190 +61.11.32.195 +61.11.32.196 +61.11.32.197 +61.11.32.198 +61.11.32.199 +61.11.32.200 +61.11.32.201 +61.11.32.202 +61.11.32.203 +61.11.32.205 +61.11.32.206 +61.11.32.211 +61.11.32.212 +61.11.32.213 +61.11.32.214 +61.11.32.215 +61.11.32.216 +61.11.32.217 +61.11.32.219 +61.11.32.220 +61.11.32.222 +61.11.32.226 +61.11.32.227 +61.11.32.228 +61.11.32.231 +61.11.32.232 +61.11.32.233 +61.11.32.234 +61.11.32.235 +61.11.32.236 +61.11.32.237 +61.11.32.238 +61.11.32.72 +61.11.32.76 +61.11.32.78 +61.11.32.79 +61.11.32.80 +61.11.32.81 +61.11.32.83 +61.11.32.86 +61.11.32.87 +61.11.32.90 +61.11.32.92 +61.11.32.96 +61.11.32.99 +61.11.89.41 +61.11.89.43 +61.12.0.46 +61.12.0.50 +61.12.0.97 +61.12.10.113 +61.12.11.174 +61.12.1.134 +61.12.1.137 +61.12.1.145 +61.12.1.162 +61.12.1.177 +61.12.12.170 +61.12.12.177 +61.12.122.170 +61.12.122.73 +61.12.13.81 +61.12.14.218 +61.12.17.249 +61.12.19.65 +61.12.20.105 +61.12.20.65 +61.12.21.118 +61.12.21.193 +61.12.21.217 +61.12.21.238 +61.12.21.250 +61.12.21.41 +61.12.21.6 +61.12.2.162 +61.12.2.17 +61.12.22.166 +61.12.22.193 +61.12.22.49 +61.12.22.58 +61.12.23.233 +61.12.28.198 +61.12.28.201 +61.12.28.218 +61.12.28.222 +61.12.28.225 +61.12.28.233 +61.12.28.65 +61.12.29.105 +61.12.29.138 +61.12.29.17 +61.12.29.190 +61.12.29.201 +61.12.29.209 +61.12.29.218 +61.12.29.26 +61.12.29.30 +61.12.29.65 +61.12.29.73 +61.12.29.89 +61.12.29.98 +61.12.31.22 +61.12.31.25 +61.12.31.33 +61.12.31.86 +61.12.32.1 +61.12.4.102 +61.12.4.161 +61.12.4.178 +61.12.4.89 +61.12.5.166 +61.12.56.14 +61.12.56.246 +61.12.56.249 +61.12.57.118 +61.12.57.241 +61.12.59.129 +61.12.59.138 +61.12.60.193 +61.12.60.202 +61.12.60.225 +61.12.62.34 +61.12.62.38 +61.12.62.41 +61.12.62.49 +61.12.63.106 +61.12.63.14 +61.12.63.17 +61.12.63.198 +61.12.63.209 +61.12.6.33 +61.12.63.33 +61.12.63.42 +61.12.63.82 +61.12.63.97 +61.12.9.89 +61.14.1.238 +61.14.197.137 +61.14.39.179 +61.14.7.129 +61.14.94.26 +61.16.152.114 +61.16.153.130 +61.16.153.134 +61.16.153.158 +61.16.153.193 +61.16.153.97 +61.16.154.185 +61.16.154.218 +61.16.154.238 +61.16.155.154 +61.16.155.17 +61.16.155.86 +61.16.157.82 +61.16.160.201 +61.16.161.225 +61.16.165.114 +61.16.165.185 +61.16.165.225 +61.16.165.42 +61.16.165.46 +61.16.165.81 +61.16.168.114 +61.16.168.17 +61.16.170.110 +61.16.171.82 +61.16.173.162 +61.16.174.26 +61.16.174.97 +61.16.176.6 +61.16.232.166 +61.16.232.25 +61.16.232.89 +61.16.233.33 +61.16.233.49 +61.16.233.6 +61.16.233.9 +61.16.234.225 +61.16.236.50 +61.16.236.57 +61.16.236.6 +61.16.236.9 +61.16.237.145 +61.16.237.250 +61.16.237.33 +61.16.239.146 +61.16.239.177 +61.16.239.185 +61.16.239.41 +61.16.239.97 +61.16.242.46 +61.16.242.49 +61.16.246.142 +61.16.246.145 +61.16.247.33 +61.16.247.50 +61.16.248.62 +61.16.248.72 +61.16.248.73 +61.16.248.79 +61.16.249.134 +61.16.249.2 +61.16.249.26 +61.16.249.70 +61.16.250.1 +61.16.251.129 +61.16.251.65 +61.17.144.165 +61.19.112.193 +61.19.112.97 +61.19.113.50 +61.19.113.70 +61.19.124.121 +61.19.125.186 +61.19.126.34 +61.19.127.65 +61.19.149.66 +61.19.149.69 +61.19.154.194 +61.19.154.65 +61.19.156.234 +61.19.156.241 +61.19.188.1 +61.19.192.105 +61.19.192.166 +61.19.193.198 +61.19.194.57 +61.19.195.161 +61.19.195.238 +61.19.196.106 +61.19.196.114 +61.19.197.161 +61.19.198.89 +61.19.203.129 +61.19.203.70 +61.19.22.209 +61.19.23.122 +61.19.236.97 +61.19.24.118 +61.19.25.201 +61.19.30.1 +61.19.30.177 +61.19.31.130 +61.19.31.214 +61.19.45.1 +61.19.45.254 +61.19.47.254 +61.19.51.161 +61.19.51.169 +61.19.51.97 +61.19.52.158 +61.19.52.182 +61.19.70.30 +61.19.70.38 +61.19.70.46 +61.19.71.41 +61.19.71.65 +61.19.71.9 +61.19.76.42 +61.19.77.137 +61.19.79.38 +61.19.85.3 +61.19.88.33 +61.19.97.193 +61.28.60.129 +61.30.249.66 +61.30.255.26 +61.30.32.205 +61.31.48.195 +61.32.136.61 +61.33.0.38 +61.33.108.124 +61.33.108.125 +61.33.194.129 +61.34.3.58 +61.47.0.78 +61.47.12.81 +61.47.13.78 +61.47.40.94 +61.47.8.190 +61.49.15.141 +61.49.21.9 +61.50.130.10 +61.50.130.50 +61.50.135.82 +61.50.158.38 +61.50.162.225 +61.50.164.217 +61.50.218.161 +61.50.218.70 +61.50.218.90 +61.50.219.90 +61.50.223.114 +61.50.235.28 +61.50.241.142 +61.50.241.226 +61.51.162.98 +61.51.17.220 +61.51.17.221 +61.51.217.10 +61.53.229.126 +61.55.146.193 +61.55.146.221 +61.55.146.222 +61.55.146.225 +61.55.66.86 +61.56.194.62 +61.60.107.126 +61.61.137.65 +61.62.104.54 +61.63.25.158 +61.65.3.190 +61.67.4.94 +61.67.4.95 +61.67.6.142 +61.68.182.210 +66.0.113.97 +66.0.17.66 +66.11.93.161 +66.18.218.104 +66.194.43.6 +66.198.141.1 +66.198.168.134 +66.198.170.131 +66.198.193.1 +66.198.193.149 +66.198.193.17 +66.198.193.181 +66.198.193.189 +66.198.193.253 +66.198.193.53 +66.198.193.57 +66.198.193.81 +66.198.201.253 +66.198.205.1 +66.198.205.5 +66.198.212.178 +66.201.175.105 +66.20.13.20 +66.203.131.2 +66.207.137.254 +66.208.52.154 +66.208.52.155 +66.209.134.1 +66.209.135.1 +66.209.140.126 +66.209.142.1 +66.209.142.25 +66.209.142.33 +66.209.142.41 +66.209.142.45 +66.209.142.49 +66.209.142.57 +66.210.225.129 +66.212.6.185 +66.212.8.2 +66.213.206.81 +66.213.234.126 +66.218.128.246 +66.218.128.33 +66.218.138.109 +66.218.138.121 +66.218.138.134 +66.218.138.221 +66.218.138.245 +66.218.138.69 +66.218.138.81 +66.218.139.233 +66.218.139.241 +66.218.139.245 +66.218.140.97 +66.223.235.137 +66.223.251.188 +66.223.252.89 +66.226.197.149 +66.226.200.225 +66.226.211.217 +66.231.99.251 +66.231.99.252 +66.232.72.254 +66.232.75.253 +66.236.250.254 +66.237.164.43 +66.237.165.186 +66.238.75.98 +66.239.100.97 +66.241.130.254 +66.246.101.161 +66.246.186.104 +66.249.167.74 +66.249.167.81 +66.249.196.26 +66.249.196.27 +66.249.196.28 +66.249.207.77 +66.250.152.2 +66.250.152.9 +66.250.241.37 +66.251.101.129 +66.251.113.34 +66.251.46.166 +66.251.47.97 +66.251.61.137 +66.251.95.241 +66.252.112.9 +66.252.184.150 +66.252.189.161 +66.252.65.250 +66.252.66.78 +66.252.66.97 +66.252.71.246 +66.252.72.177 +66.252.72.9 +66.253.103.187 +66.255.106.214 +66.255.106.89 +66.255.38.129 +66.255.38.246 +66.28.144.252 +66.29.228.126 +66.33.239.58 +66.36.222.163 +66.37.250.50 +66.39.175.20 +66.39.175.21 +66.39.175.22 +66.39.175.24 +66.42.136.174 +66.42.142.161 +66.4.234.2 +66.43.148.214 +66.43.149.129 +66.43.184.178 +66.45.89.169 +66.50.255.102 +66.52.28.59 +66.57.90.200 +66.58.160.71 +66.60.64.130 +66.60.73.107 +66.64.146.113 +66.64.197.145 +66.64.22.181 +66.64.255.81 +66.73.221.142 +66.76.123.75 +66.76.129.210 +66.76.160.18 +66.76.243.194 +66.76.247.64 +66.76.24.84 +66.76.50.141 +66.76.64.82 +66.76.66.218 +66.76.67.142 +66.76.67.161 +66.76.67.169 +66.76.67.17 +66.76.67.81 +66.77.99.52 +66.8.11.66 +66.8.120.18 +66.8.120.98 +66.81.2.209 +66.81.2.54 +66.83.200.234 +66.8.38.193 +66.8.39.174 +66.84.177.94 +66.84.217.10 +66.88.143.26 +66.90.223.1 +66.90.3.154 +66.90.3.193 +66.90.62.153 +66.9.134.8 +66.92.130.227 +66.92.145.19 +66.92.166.244 +66.92.214.93 +66.92.34.174 +66.92.44.167 +66.92.44.178 +66.9.244.193 +66.92.55.76 +66.92.70.147 +66.92.72.198 +66.92.74.226 +66.92.89.139 +66.92.92.250 +66.93.112.217 +66.93.121.126 +66.93.203.17 +66.93.209.50 +66.93.228.14 +66.93.229.98 +66.93.23.187 +66.93.23.211 +66.93.242.122 +66.93.242.126 +66.93.242.146 +66.93.244.70 +66.93.244.73 +66.93.34.68 +66.93.34.81 +66.93.34.95 +66.93.52.131 +66.93.61.32 +66.93.62.194 +66.93.8.43 +66.94.196.10 +66.94.196.6 +66.94.212.1 +66.94.216.1 +66.95.63.225 +66.97.8.206 +66.98.0.118 +66.98.0.229 +66.98.12.180 +66.98.12.26 +66.98.15.148 +66.98.15.204 +66.98.15.222 +66.98.15.97 +66.98.16.145 +66.98.17.13 +66.98.17.198 +66.98.17.81 +66.98.18.196 +66.98.20.209 +66.98.20.210 +66.98.20.4 +66.98.20.59 +66.98.20.7 +66.98.21.206 +66.98.2.13 +66.98.22.184 +66.98.22.42 +66.98.22.53 +66.98.23.6 +66.98.24.74 +66.98.25.250 +66.98.25.34 +66.98.25.50 +66.98.26.210 +66.98.27.41 +66.98.27.62 +66.98.27.79 +66.98.28.129 +66.98.28.140 +66.98.28.250 +66.98.30.96 +66.98.31.5 +66.98.32.111 +66.98.32.77 +66.98.33.55 +66.98.34.10 +66.98.34.152 +66.98.34.182 +66.98.34.203 +66.98.34.213 +66.98.34.242 +66.98.35.233 +66.98.36.226 +66.98.37.202 +66.98.38.162 +66.98.39.126 +66.98.40.210 +66.98.42.16 +66.98.42.3 +66.98.43.81 +66.98.44.145 +66.98.44.160 +66.98.44.182 +66.98.47.222 +66.98.47.95 +66.98.5.112 +66.98.59.153 +66.98.59.49 +66.98.6.224 +66.98.6.247 +66.98.65.129 +66.98.66.65 +66.98.67.105 +66.98.67.121 +66.98.69.176 +66.98.69.68 +66.98.72.137 +66.98.72.145 +66.98.72.161 +66.98.72.169 +66.98.72.17 +66.98.72.201 +66.98.72.217 +66.98.72.233 +66.98.72.73 +66.98.7.40 +66.98.76.178 +66.98.76.18 +66.98.76.45 +66.98.80.161 +66.98.80.17 +66.98.80.201 +66.98.80.209 +66.98.80.25 +66.98.80.33 +66.98.8.203 +66.98.82.144 +66.98.85.16 +66.98.86.164 +66.98.88.206 +66.98.88.35 +66.98.88.66 +66.98.89.158 +66.98.89.97 +66.98.90.52 +66.98.90.56 +66.98.90.57 +66.98.91.127 +66.98.92.164 +66.98.92.7 +66.98.94.112 +66.98.94.128 +66.98.94.130 +66.98.94.148 +66.98.94.203 +66.98.94.46 +66.98.94.66 +66.98.94.87 +66.99.251.9 +66.99.27.193 +66.99.48.12 +69.0.59.138 +69.10.0.250 +69.10.14.2 +69.104.229.218 +69.1.107.1 +69.1.107.129 +69.1.107.193 +69.1.107.253 +69.1.108.1 +69.1.108.145 +69.1.108.157 +69.1.108.165 +69.1.108.169 +69.1.108.173 +69.1.108.181 +69.1.108.205 +69.1.108.209 +69.1.108.213 +69.1.108.225 +69.1.108.229 +69.1.108.237 +69.1.108.245 +69.1.124.254 +69.1.126.1 +69.17.113.122 +69.17.121.82 +69.17.121.90 +69.17.122.28 +69.17.123.114 +69.17.123.66 +69.17.124.89 +69.17.16.235 +69.17.2.196 +69.17.4.183 +69.17.4.67 +69.17.48.227 +69.17.7.2 +69.17.7.232 +69.17.7.33 +69.1.98.1 +69.20.192.12 +69.20.192.161 +69.20.192.35 +69.20.200.8 +69.209.90.130 +69.211.224.91 +69.214.80.1 +69.214.80.180 +69.214.82.1 +69.2.16.11 +69.216.169.2 +69.216.169.8 +69.2.16.7 +69.2.16.8 +69.2.17.133 +69.2.17.134 +69.2.17.137 +69.2.17.138 +69.2.17.145 +69.2.17.158 +69.2.19.1 +69.2.19.101 +69.2.19.113 +69.2.19.117 +69.2.19.193 +69.21.94.66 +69.2.19.69 +69.2.19.73 +69.2.19.89 +69.2.19.9 +69.2.19.93 +69.2.19.97 +69.223.19.73 +69.223.20.148 +69.226.155.1 +69.227.222.17 +69.228.120.10 +69.228.120.14 +69.230.31.62 +69.232.132.26 +69.232.143.94 +69.238.7.134 +69.239.176.210 +69.242.112.240 +69.248.193.76 +69.250.150.210 +69.25.160.100 +69.25.160.121 +69.25.160.135 +69.25.161.198 +69.26.16.130 +69.26.16.134 +69.26.16.15 +69.26.16.2 +69.26.16.7 +69.26.16.8 +69.26.17.1 +69.26.17.2 +69.26.17.3 +69.26.18.1 +69.26.18.2 +69.26.18.3 +69.26.2.1 +69.26.21.1 +69.26.21.2 +69.26.21.3 +69.26.2.2 +69.26.22.1 +69.26.22.2 +69.26.22.3 +69.26.228.181 +69.26.2.3 +69.26.25.1 +69.26.25.2 +69.26.25.3 +69.26.26.1 +69.26.26.129 +69.26.27.13 +69.26.27.49 +69.26.27.50 +69.26.27.57 +69.26.27.65 +69.26.27.77 +69.26.28.1 +69.26.28.2 +69.26.28.3 +69.26.30.1 +69.26.30.2 +69.26.30.3 +69.26.4.1 +69.26.4.2 +69.26.4.3 +69.26.6.1 +69.26.8.1 +69.26.8.2 +69.26.8.3 +69.28.228.189 +69.30.122.81 +69.3.19.81 +69.34.153.120 +69.34.198.141 +69.37.115.177 +69.37.81.201 +69.37.82.138 +69.37.82.250 +69.38.157.129 +69.39.142.249 +69.39.143.5 +69.39.84.3 +69.4.32.11 +69.4.33.177 +69.44.146.132 +69.44.146.156 +69.44.146.174 +69.44.146.185 +69.44.146.27 +69.44.146.43 +69.44.146.58 +69.44.146.61 +69.44.146.9 +69.44.147.156 +69.44.147.160 +69.44.147.161 +69.44.86.250 +69.47.147.16 +69.47.179.86 +69.49.192.137 +69.49.192.150 +69.49.219.1 +69.49.219.2 +69.49.219.3 +69.49.223.65 +69.49.223.97 +69.50.3.210 +69.50.97.97 +69.50.98.66 +69.50.98.70 +69.50.99.5 +69.54.128.6 +69.54.27.1 +69.54.27.113 +69.54.27.81 +69.54.28.1 +69.54.29.1 +69.54.72.173 +69.5.47.46 +69.54.78.19 +69.54.79.241 +69.57.231.134 +69.57.231.58 +69.57.231.62 +69.57.244.195 +69.57.250.89 +69.57.250.91 +69.57.250.92 +69.57.58.250 +69.60.199.217 +69.6.150.1 +69.6.156.129 +69.6.156.17 +69.62.17.254 +69.63.225.137 +69.63.69.9 +69.64.197.166 +69.66.56.78 +69.66.87.65 +69.67.109.10 +69.67.173.202 +69.67.99.25 +69.68.182.40 +69.68.57.226 +69.68.81.248 +69.70.155.54 +69.7.195.190 +69.72.11.74 +69.7.218.129 +69.73.18.113 +69.74.23.10 +69.77.165.193 +69.80.0.1 +69.80.0.131 +69.80.0.145 +69.80.0.153 +69.80.0.154 +69.80.0.161 +69.80.0.17 +69.80.0.33 +69.80.0.65 +69.80.0.73 +69.80.0.85 +69.80.14.1 +69.80.14.129 +69.80.16.1 +69.80.16.129 +69.8.143.60 +69.84.39.158 +69.84.39.26 +69.84.39.58 +69.88.126.166 +69.88.194.18 +69.88.253.71 +69.88.255.33 +69.90.169.175 +69.90.169.19 +69.90.244.98 +69.90.245.62 +69.92.171.234 +69.95.133.236 +69.95.15.59 +69.95.7.6 +69.95.7.9 +72.0.103.94 +72.0.105.41 +72.10.31.214 +72.1.158.2 +72.1.158.34 +72.1.184.236 +72.1.184.239 +72.1.184.241 +72.1.184.249 +72.1.187.2 +72.15.99.120 +72.18.232.145 +72.235.183.13 +72.235.186.49 +72.235.190.238 +72.236.101.174 +72.236.101.34 +72.236.86.173 +72.236.92.193 +72.237.36.9 +72.237.96.1 +72.242.131.122 +72.244.55.235 +72.245.11.33 +72.245.191.241 +72.248.80.26 +72.2.5.251 +72.2.5.252 +72.29.251.243 +72.32.158.134 +72.35.58.113 +72.35.58.114 +72.35.58.115 +72.35.58.129 +72.35.58.81 +72.35.58.97 +72.35.59.1 +72.35.62.129 +72.35.62.243 +72.36.112.14 +72.36.114.1 +72.36.64.65 +72.36.67.225 +72.36.91.161 +72.36.91.193 +72.36.91.49 +72.36.92.1 +72.36.93.1 +72.36.94.1 +72.37.127.233 +72.37.127.238 +72.37.127.246 +72.37.127.254 +72.43.22.130 +72.44.130.1 +72.44.157.42 +72.46.250.8 +72.48.96.124 +72.67.218.60 +72.76.21.101 +72.85.223.50 +72.86.169.155 +72.86.172.2 +72.90.218.234 +72.9.44.23 +69.17.48.227 +69.17.122.28 +69.26.2.1 +69.26.4.1 +69.26.6.1 +69.26.8.1 +69.26.16.2 +69.26.16.7 +69.26.16.8 +69.26.16.15 +69.26.16.130 +69.26.17.1 +69.26.18.1 +69.26.21.1 +69.26.22.1 +69.26.23.1 +69.26.25.1 +69.26.26.129 +69.26.27.13 +69.26.27.50 +69.26.27.49 +69.26.27.57 +69.26.27.65 +69.26.209.221 +200.13.247.121 +72.15.99.120 +200.14.53.129 +69.17.2.196 +69.17.4.67 +69.17.4.183 +69.17.7.2 +69.17.7.33 +69.17.7.232 +69.17.16.235 +69.17.48.227 +69.17.113.122 +69.17.121.82 +69.17.121.90 +69.17.122.28 +69.17.123.66 +69.17.123.114 +69.17.124.89 +200.16.181.249 +72.18.232.145 +66.18.218.104 +69.20.192.12 +69.20.192.35 +69.20.192.161 +69.20.200.8 +66.20.13.20 +69.21.94.66 +200.20.113.57 +200.21.69.89 +200.21.87.25 +200.21.161.241 +200.21.182.225 +200.21.184.52 +200.21.190.49 +200.21.202.1 +200.23.77.1 +69.25.160.100 +69.25.160.121 +69.25.160.135 +69.25.161.198 +69.26.2.2 +69.26.2.1 +69.26.2.3 +69.26.4.1 +69.26.4.2 +69.26.4.3 +69.26.6.1 +69.26.8.1 +69.26.8.2 +69.26.8.3 +69.26.16.7 +69.26.16.8 +69.26.16.15 +69.26.16.2 +69.26.16.130 +69.26.16.134 +69.26.17.1 +69.26.17.2 +69.26.17.3 +69.26.18.2 +69.26.18.1 +69.26.18.3 +69.26.21.1 +69.26.21.2 +69.26.21.3 +69.26.22.1 +69.26.22.2 +69.26.22.3 +69.26.25.1 +69.26.25.2 +69.26.25.3 +69.26.26.1 +69.26.26.129 +69.26.27.13 +69.26.27.49 +69.26.27.50 +69.26.27.57 +69.26.27.65 +69.26.27.77 +69.26.28.1 +69.26.28.2 +69.26.28.3 +69.26.30.1 +69.26.30.2 +69.26.30.3 +200.24.161.14 +200.24.181.211 +200.24.213.201 +200.24.219.97 +69.26.228.181 +200.0.31.149 +200.25.193.173 +200.25.193.177 +200.25.193.137 +200.25.193.210 +200.25.193.222 +200.25.193.245 +200.25.193.214 +200.25.194.161 +200.25.194.174 +200.25.194.182 +200.25.194.185 +200.25.194.206 +200.25.194.225 +200.25.194.202 +200.25.196.209 +200.25.196.225 +200.25.198.1 +200.25.198.5 +200.25.198.9 +200.25.198.17 +200.25.198.214 +200.25.199.41 +200.25.200.69 +200.25.200.185 +200.25.204.250 +200.25.205.33 +200.25.205.89 +200.25.205.105 +200.25.206.21 +200.25.206.25 +200.25.206.61 +200.25.206.89 +200.25.206.129 +200.25.206.241 +200.25.207.25 +200.25.207.85 +200.25.207.129 +200.25.207.145 +200.25.210.17 +200.25.210.49 +200.25.210.81 +200.25.210.89 +200.25.210.93 +200.25.210.97 +200.25.210.105 +200.25.210.109 +200.25.210.113 +200.25.210.117 +200.25.210.129 +200.25.210.125 +200.25.210.137 +200.25.210.141 +200.25.210.145 +200.25.210.153 +200.25.210.169 +200.25.210.177 +200.25.211.61 +200.25.211.65 +200.25.211.58 +200.25.212.90 +200.25.212.94 +200.25.212.105 +200.25.212.113 +200.25.212.117 +200.25.211.77 +200.25.214.1 +200.25.214.25 +200.26.70.65 +200.26.171.213 +69.28.228.189 +72.29.251.243 +200.27.167.4 +66.28.144.252 +69.30.122.81 +66.29.228.126 +72.32.158.134 +200.29.240.1 +200.30.101.209 +200.31.9.54 +200.31.9.62 +200.31.28.34 +200.31.29.41 +200.31.29.146 +200.31.63.229 +200.31.65.254 +200.31.139.78 +200.31.139.222 +200.31.140.129 +200.31.140.249 +200.31.194.18 +200.31.194.242 +200.31.195.17 +200.31.197.161 +200.31.198.41 +200.31.198.225 +200.31.199.146 +200.31.202.33 +200.31.202.74 +200.31.202.113 +200.31.205.233 +200.31.206.25 +200.31.206.73 +200.31.207.1 +200.31.207.20 +200.31.211.1 +200.31.216.33 +72.35.58.81 +72.35.58.97 +72.35.58.113 +72.35.58.115 +72.35.58.114 +72.35.58.129 +72.35.59.1 +72.35.62.129 +72.35.62.243 +200.32.69.145 +200.32.72.17 +200.32.102.66 +200.32.126.114 +69.34.153.120 +69.34.198.141 +200.32.229.1 +200.32.231.34 +72.36.64.65 +72.36.67.225 +72.36.91.49 +72.36.91.161 +72.36.92.1 +72.36.93.1 +72.36.94.1 +72.36.112.14 +72.36.114.1 +66.33.239.58 +72.37.127.233 +72.37.127.238 +72.37.127.246 +72.37.127.254 +200.33.214.82 +200.33.215.178 +200.33.222.78 +200.35.66.29 +200.35.71.225 +200.35.72.137 +200.35.73.33 +200.35.75.49 +69.37.81.201 +69.37.82.138 +69.37.82.250 +200.35.77.222 +200.35.78.225 +200.35.78.233 +200.35.86.161 +200.35.88.138 +200.35.90.41 +200.35.90.89 +200.35.90.137 +200.35.90.209 +200.35.92.185 +200.35.94.57 +69.37.115.177 +200.35.104.1 +200.35.106.49 +200.35.106.81 +200.35.106.161 +200.35.106.217 +200.35.107.209 +200.35.108.97 +200.35.108.105 +69.38.157.129 +200.36.96.1 +200.36.96.17 +200.36.104.1 +200.36.162.154 +200.36.162.230 +200.36.163.58 +200.36.166.81 +200.36.168.201 +200.36.183.190 +200.36.183.174 +200.36.185.97 +200.37.3.130 +69.39.84.3 +200.37.50.113 +200.37.52.49 +66.37.250.50 +69.39.142.249 +69.39.143.5 +200.37.106.81 +200.37.108.33 +200.37.144.194 +200.37.144.198 +200.38.6.97 +200.38.7.21 +66.39.175.20 +66.39.175.21 +66.39.175.24 +66.39.175.22 +200.39.2.74 +200.39.2.214 +200.71.151.105 diff --git a/muhstik/ident.word b/muhstik/ident.word new file mode 100644 index 0000000..31f168f --- /dev/null +++ b/muhstik/ident.word @@ -0,0 +1,13581 @@ +ScrurtaViat +leonard_29 +wargon +aps +xintia +linuxr0x +mojjo +rubian +gh +ksncnk +blondele +GGG +Ti-aiTaiat +Iuanita +psy` +iooaol +Cristi_30 +leaspn +^madalina^ +mada_ +pawmem +LoVeBYa +jewmugg +ivgensrv +Vsync +tri0n3 +tallius +kyosuu +_penguin_ +iudex +mocha21 +pretender +red_eyez +satisfac1 +catalina23 +candida1 +president +co910 +[razon] +irccl62764 +Paula}{ +c0ker0x +_shady +oakshower +nniao +qibgtn +more +ElLAlaja +`r`G` +lpkurtlp +pdoubleimp +walc +FreazaSmen +r0ckn +Liza18_s_av_ +sagona04 +danzo +NiceNick +Idiotzii +calin27 +boggo +tobes +stoned +playback +Trompete +__CHARLOTTE- +PUSSY}{ +george1 +SAMI28 +lorraine +bradley_8 +esjeke +trackzilla +tafrumo +pk +OriktrFi +KR|NA +cipri_ +`katrina +elqctm +anda22 +dulci\k +reppy +amnezia +xender--- +_Gopo +djdei +AkAtS +woc +CradleRock +Iunita +ViatzaAlcol +svcpdl +maxinux +joerod +makd +tmz-[105] +CauOke +belgianul47 +ices_eyes +platanito +pimprox +JolaEinsi +noz +hamwich +DJboutit +zomg_ +pseudonim +stonecold +NumberOne +oktronic +el_bv +suf +freedom- +ch0pp3r +paula00 +ded| +singur28 +daly18` +Beat-MORT +Wiseguy +biser56 +sousuke-sagara +Juni0R +toy-machi +Romantic_21 +neo2600 +srz +sef_marius +streetz +kbu11dude +bald +yakuza +Rag|aC3r +xycene +wsergi0 +gjdghdgh +pretorian +zopper +TM-23-XXL +EoTePac +Atlantic +Leech3R +funnydrama +kimsavage +yqbsrg +_myj|gg4_ +N0tR3ady +sers +Kameraman +Pablito +LittleDildo +Dragdim +master_o_trunks +lexia_ +blind_sniper +italiano40M^ +driven +Jeack +vBx +codrut}{ +rul3r +Castellano +JoacaBade +Jail`User +janxster +Airmann +HotCarl +jfx_ +thejob +aliesha +bobo +melager39 +ladybd +Coorados +longshot_ +cliksta +MacG +StAnCu-19 +OtravitCuAQ +homer` +mayonaise +karencita_18 +nixhunter +bugboy +madx971 +baddar +zedder +adefrosta +leg\out +pretyboy +smarty5 +yeah2 +inspirati +sag3tator +ayzza +superstu +gillemies +ejanime +Cin`TeCrede +Britain +hulken +lau_tm +xibt +italianul^ +scr3wieus +qjmukq +alisia27 +xender-- +g_man +ShAdOwV3 +gaemfb +iceman +john +hochler +Wilditte +Shere +EDDY24 +idle247 +Amantio +lavinia31 +mrorganic +sacqqk +Cfc|xAv1eR +slagtats +TuVbestiWa +inuyasha-gen3-v8 +theneedy +binbag +gigolo19 +Stefano` +Robert`` +alliciya +melani3 +Deddy|Off +highliner +Draqushor +egelteek +maximus +bigred2k +SerioVB +desvirgeneador +l-c +andrada26^ +^Luchian^ +markman +addicted +Privesti +prlitu^^ +pluton +shorty-on +AllleX}{ +tezuka_kunimitsu +excalabat +ps2rox +epilgerm +mk4505 +oioioii +eltoni_20 +shlqgo +ClUjAn3L +Buburuza9 +FiulPloii +rsampaio +Violeta^ +jiffe +ZiDezi +white +nico +stunner +sssabuc +ryanownsu +BestCoys +nytqjf +qued +Taleta +Amenzi +cybersammy +qflmta +Petrodava +darkon +TK^ +marky +lucy19 +tataie +unrn1 +LoeYou}{ +tetris +kfc-RAGULAT0R +chazbo70 +andrea25 +gisse +mstress +king-bob +dragon_ninja +apokalyps +cK-Demiurge +sp4c3 +yourrox +mastag19 +lonnieb +CeFaem +_1987 +guppy_mi +gatorbob +A^n^o^n^i^m +Din`Ou +niamor +AlcolMereu +momochan +alfi +CinciiiLei +redgreen +jonel39 +outkast +riddler`aw +inefabila +solpex` +castrotroy55 +stati +booba +khoogy16 +archmage +Tzepalau +octovarium +c0caine +rambo784 +Ender_ +_rEdEeMeR +mm03zzp +V|rtuala +djr +MaInjuri +zero_odds +uSi31 +evo_nil +HaCuTata +eight +cybernet +Gokuraku +bud` +SonFuck +lucan0 +steffn +phoenix86 +dialtone +Mircea_o7 +BagaareBa +MiSsKiller +rep^ +suckafree +aerinfirehair +BeKKta +FurTelefon +odb718 +fvnhns +ownty +anaxor +ick771 +ryusei +body2006 +etaniel +naty +K1 +twinkiethekid +iliescu +Tzealau +d34dm4n +AparatAudio +nighcore +vanesc +dfs23rgkl +mirela_^^ +conjurer +serge8 +shamrock5 +silvertabby +Dodo +hirvi +firebird93 +ShawnZZZ +sketchcow +shadyx +FodoB +jubit0r +galb3n +ZET3 +GliMer_Ey +frv +frn-baby +oxkunw +nyhusern +w3c70r` +n30pr3n32 +frixus +KeeMeAway +crak +char_asnable +gamelias +wiictor +supremacy +piggy +simmy +narutoz +kosmin00019 +|killer-bt +Orbital +Gravity +afcommando +xdikgj +ripman29 +vdos +mrc2 +Alcatel +LaistoFa +idjut +blahperson +EDY_19 Ne|nteresant +nutshell42 +blowme106 +Tzantzarutz +glrjmi +talon +Repedeeee +logan99831 +eivkqg +silkd +bog_gbtz +cortex[l] +doople +djbenice +karma +boutete32 +johiden +bogdan27 +pqfagw +smash138 +BEa777 +demie +pgz-a[har] +AUnFund +Emine +giovy +ReAL +SanJe +broly +cold13 +the^chef +juuco +warren +MucsMic +PindeMusca +Bagabotzi +bladeado +mski4 +avagord +cristi_05 +nsm|aw +steptof +chakae +vern_ulve +yorkie +ombladon17 +[1]jg +sc4rf4ce +pawwozzia +mark_home +prv +r3aven +bunut +Viorica46 +shizzsosa +rezon8 +aflunatic +P-T-M +xxxlord3 +kadu|ceus +Sen}{}{{ +sdfafasdf +StarBuzau +Giollo +Anturaj`away +greener +Sphere +al79 +kib +CluJuL +tput +racer9876 +unimatrix +linfo +qumavj +ihkeyy +evanmet +MARIUS_BOGA +sH0rTzaIt +isewrk +Coenectatip +iconizer +Just-Parli +piotr +simpaticul4u +animeniac +gyovany-26- +albanach +angelgirl +nameeater +Stefania}{ +umilita +flash +AmEuro_ +lyn +white_lion +warix +darkspirit +mdalina75 +Machitoru +steve32q +cr_blah +Mirela}{ +chao_yun +`lucy +godhand2k +aust|n316 +ron|away +hitokiri-battousai +Apoph|s +kneer0w +RGINA}{ +olesgn +rickbhar +ovrwrkd69 +control +TaiBaNu +xen0dude00 +gunnz +nate +ionela15 +ViataDeCiung +sicarus +Delta +logger12 +jc23 +sinetwo +dippset +connicc +Denisa15 +cam32 +fistmann +vash|dlm +luv2skate +Iuliu +cristine24 +kguccd +sphia25 +hockeyqt +ROYL +}{BOSS +chillisauce +WormsGame +SaMoaraCineva +darkjen +tastp +gusgus7 +wwest +da_mighty_plum +band +xvid +JupAna_Kiss +AcuIntru +luana33 +hisuiibmpower4 +anyk +InGand +refused +abben +troscheta +THE_DOT2 +b3-bomber +kel +papusica_scu +BlakCode +YRESi +lphuker +Budhhist +jimi +ratedr +pcabeca +LoveMinus +sigil +jjj +airjer +JaDaK +angel{_}boy +n8iv3 +apache` +yeyayeah +sharkfin +MiciParos +BunicPervers +Cristian__ +D^Caprio +aqwa +axion1 +akux +sublimina +adelina27 +thundercat +drugees011 +Sean}{}{{ +ropeadope +DraQulin +ro121 +Later +nightfall +i_deltron +whzzz28 +aspegren +morad +s^ +^mafia^ +M-amNascut +hybridchild +gooner +butch_ +lasso|qt +suzie +LaseMine +ayna +Ingeras-salb +therac25 +puy_n +Man38 +liquidk +ZoRRo- +soci +Un_DuLciC +djp +rayley +aikido +kiax +jul +aniel}{ +vrajitoarea +_cristi__ +InduZzZ +Scorpyo +wizisi3k +_vile +D|S-Symovie +TakePower +profx +ZeroCool +UnPaslea +foyle +brownc0w +MaDistrez +headfuck_terrorist +ogniner +Eoliana +ShtoSMEN +faceless +floriana- +Motard- +anitteb +azul_leon +badboy-pill +ncode-nsix_one +bodydrop +sjaaaaaaak +GEORGE11 +styxxx +turinor +kd18 +meb +Flyers001 +krzychu_ +tac2 +danteee +dian27 +xairon +Escandalos +NuMaiManca +StartStop +trooty +rashid +genok|bnc +`473` +fastazphuck +ixi +jboy +UiteNice +CuvanTUrat +roxiJ5urfw8] +Puiiei +feray-e +OVY21tm +chau +anryana +pac22 +mistressc +amistress +hands +FiXiON +masa +dana20 +creatza^^^ +dragunxxx +winc +un_student22 +sherrif2 +Moontica +Ajunge15 +Verdefum +rivaldo1 +werew +ehpkau +Dj_Remix +nicas988 +Raluca}{ +patch6 +Tance +Trance +st3fica +keeperr +evangel +galeata +tooty +wormfood +pawwozzai +aq123456aq +Poulton +eliza29 +hammerofg +cruce +numerich +Srics +ErhnaM_pt +dize_kni +samy17 +jterop +rz_alina +xirooy +iamapirate +Invidiata +Posto +Hypnoo +the_h +adzman +mushr00m_samba +pumtdaicc +knolte +Deiutza16 +qgocxj +ioctl +tgete5633 +direola +coldMe +MikeLP +cristyna_leu +prostetic +cezara_49 +cristi25tm +T0flea +fr130 +jaydenyo +SaatosTun +wareza +kulet562 +luluvid|nite +cosmostev +IC-T-25 +Scarpinici +sut666 +sLiMsPyDa +Syto` +limb0 +rick02 +Tomy^bye^ +leraldo +Liguri +noleafclo +kandi +Laura16 +zzig1zag +exenium +testenn +CeemAzi +pritter +ana-38 +mankind +amy35 +efs +meyitzo +iga- +gunoi +Silvana30 +seecil +glimpse +fjewkrgj +grenn +cipher +dalmyr-invoker +vlautz25 +glenn +umsytu +schmack +ceesee +mikedeewq +mob|Zarbin +ich4711 +Patricya` +ItsNotrue +rp4k +p0pphase +kingjack +LaLoU +roto +Am6Mere +frodo +jcrusn +Dulceatza +g|away +crisi_05 +pure_agnola +fata^rea +dorin23 +xkillswitch_engagex +cryptz +quork +UnBouMare +crazycajun +k1piee +faggyg- +distrakt +^ruelu^ +dalmi1 +anusha +davidx23 +gary +VersCuVers +Beton +philip +misshu +Hed +Cubutori +ValSp0rt +NuMaivii` +murda +EEBuna +Midwest +vwebo +MoldoRekinu +Jumpy27 +decoyocto +`5mui`lei +kobachidl +lobo` +skull_pinho +dia26 +poulpo +nemosta +dickinson_h2k +_nick27 +dontmsgme +BZauLe +AmTerminat +f-t-t-p +boby--- +fufu +mutiny- +dalifor +rzv +mri37 +trigu +wbrault +cap2656 +[k-albums]-017 +bam +three-lp +zylor +roert +xBNxx +karabiber +ghost_shadow +ol-24cm +runningman +tonerz +cK-montrey +meine +[a-s]new-releases +bart_19 +aosetl +xtor +JusRid +Betoon +king77 +cdl +iriez +Daau_yubire +Mstrie +master_megatron_sama +DJ_MA +RaetiVoi +fierce +ktpdnp +dude123 +sorin36 +PIT_BOOL +tevion +jecch +SCREAMQ3 +arron +milkdud +wknplaya +navigator +wachi +schymbarea +FuraDormi +kaonashi +zorix +cristiano18 +loudnpun +x-script2 +lt_j +wetzz +tygroayka +GotItOn +Eyy Geo_1 +Dj`STR3SSS +term +usarox +jurel +OtaradeKKT +Freud +mad_hatter_md01 +mdy^^ +bobek +steffen +Redpple +Hooger +readyred +maryosad +anarion +Anoneta` +Hect0r +UIte`teBine +naspa_zi` +[420]ryme +cata3m +tiredjoe11 +DacaVrei +_snooze_ +ushorul +sub_zero1 +hojo +p1971 +}Goril{ +lunchb0x +daddy_roads +BuFaraCur +sweet-boy +raydog +darkl1ng +Miguel^39 +yhd +yddmbl +movboy +MazMaz +dido^ +chod +josh123 +dead_body +circusbo +perr +puffnstuf +skip` +HoboFTP +LaU-sMeN}{ +Arkhangel +amdman +icon212 +jose +pusshead +lilblack +gasman61 +unumic +Largareta +WeSall +balba_ +kazuya_uk +Raturrrr +air-blade +lo +yaceek +annusha +PuturosuGras +toruf4u +derlangsame +PulaPulA +corn3lia3 +onuca +red_s +xC|styx1nator +Sfarc +ayyyde +AurEste +snooopbot +hacor +fhkask +ady}{ +robojebus +Boxerita +blissed- +DeAtH_AnG +MaxKnight +kairumaiku +guntha +[x_x] +GenulDeom +Q-bc +chi-town +djmart +MusicInter +lophuker +joesushi +Basinela +eta38 +AsaCaTaci +UnBuMare +kmill896 +InFrig +notme1963 +h4sh +st3f_25 +DKRev +Finish^^ +willsilve +ricochet +_mist_ +demo +dfgdfg +asund3r +sm1Ley17 +snoopp2 +specialgroove2 +tycore +Slob0Zz +cpuroast +raluca}{ +bambina`` +eiznek +ditch +grizzmo +ah777 +limoken +John`20 +NickDeCapra +ersan +GrupaMare +dukes_ +luminaria +vince +agfd +Amor_}{ +_webmaster_ +enzo- +ASaVrem +Cip27 +Cornelia +draft2629 +leroyhoot +Gigone +Psilos--- +RamonX1 +nevets26 +ocean-angel +zN|NeX +aragorn +Ahh`Ahhh +sko7d +cosmy +xodakusen +Indicele0CE +insainone +aLLin`` +mistylane +t_Chrissy +Inel +gammler +zyxell9 +ADIWEBCAM38 +psyc1one| +mokonamodoki +baned_ +nidema +l3p +phishhead +linger +|DALE +rusalkaz +scotty +mqs +Ochiverzui +korsin +aurelya +tigrow +no_ident +exoduso +koldasice +hasch +[jokn] +sdfwe +moron +executiv_ +xeratex +dana65 +miaka +fr-foc +gutiii +lzardking +karnivool +NoFaze +necr0s- +dek +greenonyx +nice_raisa +stitch +vix +Cucuretz +liqu1dcou +DijHouSe +jordanov +m|dgetman +eruruu +Pierdut +DCC-Send +SistemTurbo +dulcish0r +darkness_ +HoTgirL +Platesc_fete +iCe-aNgEl +KakaCuVoma +jetscream +SirDeath- +sinwiki +datac0m +kinubara +Lorena}{ +clever_ +ondero +Lidia}{ +g^i^f^f^ +lavy_19} +netsoundw +dylan +L4ry54`92 +matza +playtone +caractacuspotts +snykxa +TePuCuJe +is^46^f +sonnyboyjim +dann_323 +totoro_ +YACObOB +Delia_17 +diamondcite +mIsS_cUtE +zabot +leenee +faits21 +Gelatina +Amerminat +death_ang +amComisnou +i-x-i +SaMriTu +DTaiat +thepinger +GoItOn +corey_ +icgap +poepoe +fluxion +inz +BONJOVI_r +LueaMea +system-x +]-[ell +smiley|h +tikka +clyffe +not-here +igbeserk +lethial +mabe6 +b-a|something +Nicaeri` +tigezr +tiki +cacabellll +dj`debylu +bombsqd +sexifay +[ninja] +vampyr +cK-spook +sentric +Not-On +shifubill +Danutzica +drozek +i-laptop +sysaudit +MaThAyUs +twon22 +marv1n +nitelurker +ea38 +querter +billy69 +asasinuxxl +fiber-r0x +TransPM +infamy +kalya +zeti +ybear +ady_no1 +nino75 +bast4rd +haljordan +[jez] +protixn +hookdr +Kietean +stian +djh_ +fire06 +disusu +sockie +x17^tklown +LoveIrcuser +AbsolutBani +alexxx23 +masken +niv +oloko +giuseppe +Raluka_4u +jplig +blackspyd +rgxsfl +comradespike +vioreldan +SaseZece +caliber +Andreea}{ +cbvrpo +nu_iubesc^ +lord4you +RX +rkelly +homepeace +benice +warvirus +mihay_buc +surreal` +nrinu +billltr05 +Roy^Obannon +glamorous +JAY_ZZ^^ +miramarx +mofo +alingray +|long| +{Panterutza} +Ambence +cretu19` +turbo0o +whoisyou +nite0 +MaDcCu +ScooerMan +mihai1975 +rampjack +UACats +ceeko +quickdart +Monica}{ +pc-teck +suddend +Laura}{ +BBMazare +antaniani +Tubroza +Fugaru` +Timidu29 +rex +trick91 +copilasultau +nszeto +edy_12 +_jl- +zynergi +jammy79 +viper14 +crippp +vinimad +`398`` +camelia}{ +zangaboy +TRageTare +mrh +egoelektor +}BOSS +dcster +Morcovila +syncmasters +Marius_dj84 +gabyyyyy +lucas07 +racer` +m64 +hubris +bogrea24 +xfear +GHoaSTe +Swla +JocaBade +_turbot +Rafale- +B3b3`|0v3 +masterg +starwhite +DENI_22 +Remus24 +AmAuzit +nukepaste +axpdrag0n +LapteDulce +dalk +sunami +toygt4185 +`stranger` +dhampir-d +amisha +pink-girl +mihai29 +hackteck +fatal1 +bw-w-1430 +boones +zero_gx +aasha +Rightite +DuteLaWC +blahc +orochitux +UZZY-SaD +Raoul}3o{ +jupanul_maf +LumpY_ +azn-invasi0n +lsa_anaconda +hessu +killa +Cinic24 +bat420 +jerky +mrwrong +[cc]fwste +H-T-N +piranha +tri-bot +cosmyn_^^}{ +nashane +mike1972 +rodsen +alma31a +NoiSaTraim +inuyasharenegade +``Ciprian`` +f-t--p +gig-e-r0x +[lorax] +mikebro +Einsein +drags +bulldog +guru-guru +hawks +ndr +aiconna +eth0 +alexb +Mirel +Branzila +peeoh +X-x-X +FEELME39m +Cube +Averilemari +amica +dv8 +Incepe12 +xbins +hallo +ANI21 +cre8ive +kvywny +leetrox +raspete +zd5v2 +Sebi_Tarkan +melonberry +denmaster +dqcucn +ghotkillHk +master_b +OrgieSheff +froger +meenakshi +majesty_ +eaatdb +Ad|tza +aventurier34 +ronen +nicOleTa36 +tecknoz +[1]neo2039 +lostcase +`5mi`lei +lory200 +quagmire1 +geestring +no_dent +evil-loti +akuma +binky +gorox +hattie +Schumm| +mui +sani +Am6Mre +Claudia29 +Daemon +VersAc3 +xoox +TrupeDerap +creep +_crack_ +babemgnet +LondraMea +BagaMareBa +locairin +Catalin_22 +bf24 +franky-kun +charlie01 +crystian +hell +budsvenhomburg +saebaryo +paladin111 +poehitman +menacelegend +forestgoat +andrei23 +sbroni +AmUnFund +RUSky22 +lp4 +stream +EuFume +fl0r1nXxL +AMOREZUL +pun +kuller +kosepus +haiodatawe +tusca +Bettsy +KHIC +Lovituradura +mfiota +krstal^` +peaky +CIOCOS_AK +arte +BuD_ICE_ +colossus +wirm +banana21 +ipstack +sonatul76 +mr_tender +Cd-W-F +t-king-tbc +t0Si`Ji +^rado|^ +khanvickt +neo\soul +judgeless +salomeea +BuZdUgAn +bucko` +goldenboy +streaver +TfcBoot +darktick +fossum +Lyvyu34 +Radutu +ivekatwor +bigsexygk36 +casu +StraeFace +anelita +horneydvl +herra +jqewxy +unnatural +nairam1110 +STR3SSS`away +kstyle777 +amir +jist +Apret +nixus +FemeiaBarbat +Antonio33 +aaakkk +NuMapune +bw-w-103 +dfsd +bp^ionix +exkdkv +foopa +underc +slutlock +darksoul[work] +marco1 +tommylee +LaMuncBa +bobdope +California +MereuPeTine +vtl +graynight +[clm]sjmiii +puple_rain +StartOzon +ripper +Pho[WorK] +littlerobber99 +CautaOHarta +vgnvhm +DISNTRSTD +matt_ +argos- +maggotman +kickaz +wario +TEstiMezu +Buster^89 +sinistarr +fjuoqm +VasileSugi +BeauInFatza +MetalUSER +modie +glennh +ltdata +clea +PiishoR__22 +greko +theuni +johnny +Loredana}{ +dan30 +rojo +costyy +radar +skyw4lk3r +nhitro +mihai38 +qqqjoj +revotrats +e_haxor +TheCos +durtro +the-amazi +oghugo +tmont205 +lplxor +rufpdh +hasha +OTYLYA +m03 +Labau +fghs +zorbathut +zerowarz +stoneraider +duck_down +bw-s-4017 +BunnyLove +}Yo}{ +ROERTO^_ +D3c3bal +Violent +zanji +Bamm +llaura19 +NickuriBune +mugen8 +ciupi +reloop +Tim2 +l32 +pdtyok +g56k +jarock +mystic +z_zapacitu +gouans +rovideo +juke4455 +rugieri +scoot +maddyx +N0ePad +patatipat +nekokoneko +ruby +erickson +gow0323 +VandFranci +`1234` +|papuu| +ushka +chiss28 +Arian25 +neo|bot +mlaug +glizz +Flang +h8lipper1 +MolMorMod +lyonsbud1 +ArundM3 +AramiSct +Maracity +MamaNoastra +Brylyanthu +SaMoraEl +alin-21 +ionflux +kardos +CucuCretz +mihaelax2006 +silfax +draco +omegaman +norfidzz +badguy +eer +Jhonny +ciprinel^ +legal +myrkul +wildone81 +adinutz +FatiOLaba +zgfrik +kalle88 +}{Yo}{ +nicorator +NicBask +indianka17 +camonaya +jaillet +poopsauce +pimpaciou +theone24 +desdemona +SaMaIngrop +Mica`iBa +lin_qua +gino812 +Mark_F1 +ma752 +LovingCock +ayesha +judiboss +[kill-mirc] +Jitaru +dmbnl +Mercadiz78 +UIteteBine +eon` +luvindastufffrumdis +LeiVarza +usagi` +Adelina18 +scoobs8 +skanner +bbbaby +vamp1 +oldd`l04d +Dorutu +hiker- +run2free +Ramona17 +sinep +outlawz81 +jbr +tirano +asai +kid- +idlex +Nebunel_ +jackal- +DenisBoss` +pik-girl +jewels +horizons +solear +MamaRahan +PaRaZiTu^ +thehurricane +kyd +arames +wickedclown +nex-froggy`K +egon +AiaRatat +hsdrox +whitehawkgriffith +mehdi2 +aznlethal03sn +Lie +BadJoake +mercus-ganja +sp[oo]ky +wastecase +sefulhotilor +mp3quotes +Gaby_love +STR3SSSex +corsairs +katsumoto420 +troglodyt +ndrei_17 +phr0id +willsilver +PorxyN +godzmack_ +lord_amit +x-pose +angel_4you +bee_cue +oyrxle +Lux_Man +[3kee] +s^23 +flask +Danika +jurai +bomann +numbah +dulce_}{ +_a1234567 +snickny +superrboy +NuaLasa +notrandom +rinn +fubar +eminm4me +pseprodux +obo +acetylcoa +chulo1aw +slycow +obositu +shirilover +nss +cd-SereneKaos +n0thing +D2004 +nonamous +ctoarea +filippo76 +drago +fwoesy +monitor +harleydre +pixelz +Lidia18 +Inca1 +TEcuci_Lame +joe_perry +dje +Aldrenn +continuum +MurK-Scorpi +irina +mrdan +OkAEnE +public- +he_alone +mono_rectus +ScapaCine +mollari +MuJeU +oktoe2 +catoarea +SunaALO +Pisto|aru +astrozombie +nitro +dark^angel +`Ricky +expedia +yoodle +codin +blueberry-pie +dulcicka +bengus +ona77 +mazon +tpy0 +bhpo +van_halen +Jasminne +ronicat +d-an-w +enidoi +TePUneDreq +U-No-Me +buckmonkey +indepe14 +spyro +RockoxXx +Diana}}{{ +grs +SanJ +jeboss +aland- +[dcp] +idiotstic +xender`_ +blessed +THE_DON +KILCOBRA +BananaALba +onyx +drugstore +gusterasul +m03zzp +boombox1 +ossie +DubluClick +guyverone +amLocatia +cheloo777 +sourcecod +sk3ptic +ballshang +flux0rd +Arrnge +nighttrain +Anda}{ +CeVreiTu +pepler +TVbestiWa +safado +ratz +mikeal +mircea19 +mxqtcq +surge +slash-kun +DrunkPunk +eviltwitch +elmnt +ZeceMiiLei +inepe14 +|watch +Patruchi +z-jork +potsue +LaMistoFa +tengil +skyklone +Running +darkmnm +dickv +timone +doe_|of +OfficeMan +CARMEEN27 +PorcPig +DiAniBa +danyel_24 +howdy +yrvuym +x00t +]baf64[ +fladenbro +interneta +impala +NuMancaKKT +gotti^ +Luni +smuggler +cise1 +HasJoined +Lods +cliff|zz +kaolla +Come^On +allinvain +julieeee +melvin +igotgame +bud-manja +DuteLabaie +seth +ZduSkA +hecktor +teekay_ +SayaBitch +Claus_28m +ya +soulja +[neo] +MaroW +mc_kay +jbobojo +chokenchi +ssj4kianseta216 +__panix +thepieces +tipkumea +QuitEOF +SmenDeBot +Sensor +kappamann11 +pooter +dregor +binder +zwierzaczek +hugobart +jtom617 +readerror +jazzyx +klowns +cochese +caddycad +gee_money +dancon +andratheange +giatros__ +PASIUNE +dzie +dyre +jambox +loseblos +scrim +frrrr +weptir +UnLe +infe5 +GangstarMan +_creatza +rebouncedvido +nostrad +|dami0n| +abject_misery3 +pteee +crookeds +u2004 +novix +l_frost +p_bogdy +_paal +Castravete3 +drexta +coolzz +cretu19 +shaggs +cK-matador +pleaselea +UrsuletSad +g-o-d +zodex +PljaMare +jeek +sysrox +dekor- +_cabldevi +Murtilizer +blackchristm +Joshuu +Pur2Rien +keno +WetSoul +vandal__ +claudiu1 +Jefuita +noahmsp +gehx0 +pr0nman +roltec +ganiat +haxjester +fragz` +ani +kreet +enobarbous +[bif] +vjexh +llbera +NumIdee +btros +OneTwoThree +alex_123 +trips +aldibi +david +rudeboy123 +entity +DuhPulii +dimbit +thrasher12 +purple_rain +Maharahj +BacuSiCluj +leo-aust +IntelecToti +ILOONA^ +deaglewar +smechere}{ +gabriel}{ +m4gm4|st0 +14568 +ooxo +slapmando +costantinovi +natas +devman +|Mihai +Joaca_Bine +last +luci19 +darkdragoon +s1lverw0lfex +mikestool +er0ck +jr +chrank +johiyo +dev-dev +solivares +WeShall +peaces +Ratza +langly- +falcon10 +pakoz +Angelino_m39 +loremaster +ItsNotTrue +Bogd4n|BNC +dumnick +tetra +morotstomten +This +FighThere +soulfringe +noahmpls +dualedge +Ana}{ +VirusHipHap +_talon___ +blackense +permanoia +UREL28 +Kadilack +mako +`ObRaZn|Ku` +mee +SORIQE +Ratauleee +r00tr0x +hidoasa +NickeKaka +luigi30 +jinx^^ +CoRbEtZeL +Stronfinel +h2k +achendude +Gaantie_ +Netriderz +Purplpills +Lak3t3 +ROM-2PAC +silent_pr +DeMoRaLiZ +zengi +Belorisor +epel-i +z110 +douglab +guito +bjuhn +phdjuf +Runing +snb-sawedoff +jucarita +numbus +A1ex +Cuzite +cmurderr07 +iTuBu +nekkedmikeywet +SlimPusy +h_alone +Eotions^ +mo|mb +nos--- +FoRm +proti +djvfgu +mcnkoj +rob- +clausen +HTN +SexDeRutina +upsssssss +abmccd +atreyu- +symona^ +consuela +lordgnat +powertrai +xipbot +BtzI_ +kiumaru +textbook +bgpicioarele +yun +Buna +r3zon8 +crzyc +arkan69 +tmz-[092] +Picioruse +Cucuare +dirt420ba +hiyono +george[afk] +terra_ +sarika +naalie29 +lancet +rogue6 +gabriel_bz +jonnyboy9 +RapidRapid +dorina19 +gdfghd +Chubbs +soul--reaver +luno +nocturnalocean +boffo +Rick- +sppach +sakaba +spnnr2 +olvohoff +CuriosAA +SAnuCREZI +angel00 +SanJeLeMeu +S`iTraiesc +regeles +froggywog69 +__tr__ +Don_Pedro +SCORPY_JUDOK +0NulNada +IAmored +k13 +ROSC +NoEmY}{ +zan +hiyo +lasivian +spiridusul +huckseed +litlperv +luigino +zlithiumz +atreyu +dwerg +kung_ming +jlsoft +jse +Eleeto +reiatsu +marko +v|ad__ +NMancaKKT +Kietrean +johnny5 +PnetrezAdanc +BazZZuKaBoy +CerMare +shadeee +ehdanny +Subimba +dragonhiei +msh +duck-senpai +mrsmiliep +ic|face +ravager|ch +network20 +CeiCuTine +EMareTare +sysl{o}ck +jaargon +][a-b-s-o-l-u-t-o][ +`clips3` +`er +guptaman +wfqdau +amatus +jorge_ignacio +mrperfect +fsk405|xy +t0mSi`Ji +mrpopo +ludger +Aantonio +Terassa +NiN4 +Gandacul +NuMaiVbWaa +sorel}{ +intake +rork +satd +male_25 +satsujinkyo +jaya +VoxNet +nb +ipatic +solshade +sl0thy +Rome +|godsmack +savutano +xfacter +NoiSTraim +[GoSTKiLL] +aznboy3 +dasdas +CritiTraiest +slyamd +jumpy +Tender +Q-buc +phyl +mr_smith +LoulNostru +calazar_h +prododi +mira___ +fta +_SOLARIS_ +vmaster +telyman +BancileScol +shiet +cannibal| +i3d +tripper +RR_A48 +teet +her_gimp +grim +guuchan +buf24 +tonsofpcs +johnsmith112 +krawwk +CarutaTare +bread +ktg_smiley +sexyj +kurohyou +z1zou +NumarMic` +kakarot +george||| +agula_ +j00sux0rz +clear[aw] +kfqpbe +tazmafia +MINUNE_18 +javajunkie +gasman +rb- +lenu +Inepe13 +Pio +ssj|char +loooos +frstgump +jords +captain^k +katrinel21 +markov +Jut-BoT +SfrmaCeva +Cosmyn +trashmasterfx +Ricco_24 +aaaFuckBelea +puney- +woobie6 +RaeEa +party_man +FRUMOSU9999 +osuka- +hate +neamtzu` +Xien +dally +jedi79 +Yacobov +ysoline +b4k4_frozty +gb_kuriko +blackdevl +eduard +AdiVirus +tarutaru +_c4td0g +zircu +smooki +t` +unfamous +xp4me +tipklumea +pushculitza +silviu18ani +gjhdzf +fefelutza +omnitel +whor0x` +Iulia23 +d889 +FataReaa +derwaldlaeufer +acostelus +capone +jhyyy +sinureel +bizbo_hom +cristi9na +dorina15 +Jerrti +jhyyyy +jeoblow +sira` +Primufum +XXatu +darkrogue +bitstream +Pleaca +nate6dawg9 +clocker99 +noupei +FacAmericani +TuNustii +muirtach +a1lover +cirrux +theboxxx7 +Duminica +Mariana12 +cristyna +OriktArFi +Twista_ +drcecil +smiffe +steffy +sinkdog +jpkilla +hardrocks +weiguang +llberta +beaviscln +dnsr0x +Ashur- +nobodycoo +iiiuhh +fou_lu +WrngSite +ustie +cap0ne +Vatan +luke +uposfp +jovis +netsp|it +florytorre +[dedkilla] +se7en +alter +Foreve +jinxy +gclkgy +lt83 +Florentina22 +dinasti +chatboutw +cK-mojo +BlueKiss +braincell +tungsten_22 +[henrique_sato] +pink_lips +dra +sosy +mattman +rivialla +koog008 +SaseZce +ahroo +nikel0v3 +pistruiatu +skyblaster +crimsonknave +genxbong +dipti +BereKKta +rofinforin +Beach_But +`288` +_un_skumpic +penis +Sh00tMan +blu` +waltermh +|tarot| +simgirl2 +nfsedge +AKIN +pickles10 +hclif +gamster_47 +hybrid +creamofbuttholesoup +BGHERA` +fnybbg +arno +Hewlett +qyfdbe +Iulia}{ +spaced +zero_hunter +boneseh +ra|uca^}{ +kor +snuffi +GhostMut +ex|le +sistant +abso +HaiPa`pa +thebean +midqetsex +[roxas] +Aths_ +BesTBoT +Avalanche +Ppish0r +ayecee +Nevermore +lazer +curtz +gmj +gruntz +oetzi +Smeday +tictac +_kaizen^ +madwizard +johnjohn +pakelika +Versace` +_bigd_ +arsator +deea +LitaFingar +juggler +saddestday +rock-away +manohman +ichigokurosaki +pamy^ +CmVreiTu +lion-m +JuNIoR` +roxana}{ +thorqua +deas +elroy1 +MAN`` +GoAway +psychomant +D-_R_E +vorbaretzu +Disovery +tbirfa +akbar +gABi36m +daliros +bw-t2924 +Vzer +scooby_23 +Inc3 +Bag-ti +BORNOZ- +graz +q-biq +illamath- +flopp +r00t_ +Oddo` +fie +tas-2012 +jh0od +The-Counter +BaietziiDau +lorderay +katsup +craignorton2000000007 +elena}{ +dudule +ffas +Ballack +zaaphod +NNeo +cata_22 +Gambit50 +^XXX +okidoki- +luanna +Cartieree +blue44 +sefy43267 +hologram +dbren +obnauticu +Lab4r +toniska +earlpowel +Pufinela +Mia_19 +Janssen +MatcaCity +V3rSaTa +Dremora +Denisa}{ +oveYou}{ +shiro +hermes +skumpi_kul16 +TC|eating +Adrian_2004 +hunter33 +junkyard +tpax_ +k_duck +younis +[2OO6] +no7orious +mayhem +elmo +notjuped +dulciku`16 +grosneg +Nicolas4u +dyno1 +[kf]junkanooo +d3lir +Biu1 +arrrrrrrr +mra30 +Asl`LZzZzZ +hooligan +darkmaster4321 +dfhdfhdh +xpertxp +NOOK_G +marl +john24311 +sprawl +johndice +diabloangelo +bladethrw +giulio_ +of_Acid +hema +DrthTriV +hxvoc +`oo`o` +boab21 +agent_a +Allison18 +static\ +YonYon +ganalart +orin^^^ +xordsl +petroleo +vhsod +opal +miguelito +dina_24 +DrogatuGG +ffwd +bsdrox +tumpen +michelle +dedox +dpk828 +Armnd39 +photonw +Savery +`X-C|te_BNC` +bobster +prtsc +VaraFierb +OOAANNAA_16 +OMieDevorbe +dezve +jimmmm +_Daryus_Boy_ +RA +lenino +thoms +CaFugaGheata +Hedonist +travan +uchuff +_NoLimits +brayn +freezon +[-foster-] +nintendud +prow|er +joe5ie +spaceandt +Encino +koro +bauuuu +mackbeer +revy_afk +v3rbal +OigniteO +Cristina18 +GhiaraM +Acd +Aman3t30 +monkeyspank3629300 +budahsacm +CumVreiTu +ff +oldskoolrox +Cotelushu +^t +jizzer +saffron +MaApci +bakakaka +andrei-20 +UnKn|SaTaN +joesomebody +game- +jshit +nordhn +Reiunea +dark_claw +theseer +g +RaeMata +shampi +pspren +kamahlpitfighter +daniel-sa +nqkfdf +_[toxico]_ +fe4shado +WrngSide +Lord_PK +gia23 +BeTheFirst +[tf] +eXistenZ-BRB +dmaister +pce +save-oper +sllo_ +Red_Man +MERLIN_40 +m4ster +panbird +testos +bohr +phr33k_ +Nu`Fut`Nik +N0tePad +NuSpunea +No-On +moneylove +rodders +phoenix +Michidut4 +l1qu1db +lucky_blau +Di^Caprio +naeb +paica +sefyy_24 +MITZ +FREE +dano113 +paw-lt +locked +WWITHcash +uta_01 +drdetroit +PoKniTuL +l-natural +wolkser +rikky +tsukayamayutaro +treebloom +coweater +gyf +Pentagon +meleofsf +alvinator +raluka}{ +LauR` +Pacetzel +sad4069 +Invenesss +l337havoc +^^wizard^^ +djnaff +blacks +hades-1w- +beezZa +flukex +possum +ezt +nessia +ghost50643 +AlDaquLui +snork +Lad- +cheez +singr23 +Wrinkle +InvidiaT +{kd}yosomedude +pul35 +cl- +close +Ratatuleee +smowe +ShXpire +bullgogpo +MuscaPula +^911^ +ph4rm3r +_hoshi +loveme +mhsat-pn +logan +jhdeuf +drigo +thran +CIURIBURI +nashville +myn +Hexagon` +satan` +Echoes2 +fredriks +Medianele +liviu18 +sleeper`out +SoRiN3L19 +kingstar +odog1 +Sanduu_ +Seara +B1an0` +orDali +SAXALE_87 +SaMareEl +rar +AiGijaBa +tzufy +c0re +nemesis][ +loke777 +fernando26 +rave +stefy43267 +PartiduStic +sabinrene +Fabio_005 +misslavey +gaaal +ryutaro96 +billyrr +cR|sT|_18 +instinctiv +QMS|superdave +MUS_A +VanDer[OF +|ragman| +BluePlls +IAmBored +PtAltaviatza +ezekiel- +ghazi-kun +hm2k +auswaerts +_bossy +eddybear +hhehw +JAFFAAA +Creolamn +daniel^^^^ +[dnn] +dozz +LimbRomana +Barbut +ptn-- +AsVreaSFumez +Catieree +parlySME +megaditto +il_dotore +smplaya4l +d0imEn +ExEWife +nina24 +zxy3 +LmbiuS +[wtf] +ev0lkniev +NuMaiii` +Andrei-Buc +dflyrso +ender +sithtoast +c0d3st3r +hbz +agni +ecst +SfmaBuci +|1mg0d| +gost23012 +antonyo` +sweet_boy_ +fretky +skonk +FcTecuci +I_L0ve_Pussy +Alxx_buc` +tatos +calm +ral-23 +ibejesus +DutLaWC +inferal2 +ista_ +iebfg8485mg +darweed +m0fownz0r +Espament +Orbtal_2 +nugstar +rune +`o`o`o` +sorinaccio +madhubala +pixa +ass2in +nefertitis +OwoThree +GoTouck +elguapopt +Ionut__18 +phanto +vinnie32 +cpugeniusmv +ELIANA34 +noemi42 +disc0ne +staaka +mr-b[a] +daniel2 +pryntul^^ +insurat32 +snowman- +manisha +jaf233mmx +oy +the_master +cretz +proper +cripdogg +BLuNT +ema_79 +X-sist +nylegend +ViatzaDcaine +ClassicBoy +smo]{er +joy^^ +Nno +^lond|na +NT_21 +_moarteaaa_ +Denisa42 +el_toros +ds|serv +tepisor +andkeener +roadbrat +BikersBoys +EoTePlac +Happi +BoBMazare +arnold_layne +beats +oana_dmn +glycem +olimpia}{ +pooperdin +aadaaa +l0rd|d0wn +Facishow +hakutzu +tweek +jonhsmith +theramper +pancake_3 +zechs_merquise +xzheusx +pijpslet +drandr +athanor +NtMUCHUS +davey +IrcN33d +zicoleTTa +NoWarez +Irc33d +chyldeofnyte +waldo` +milleni +rXn|Helldemon +qx2 +BoBoCuXxX +JaJames +r00t +SPANIOLUL-3 +blacksoul +ChrySL0v3sJR +boSs`u +Simna30 +f10w|0ff +chromstry +MaeADream +b8i76bn +refhdu +greycloud +Florecita_ne +armina21 +saruman +elena16 +Cantotdeauna +DrG^BoGdAn +robo-slam +yukich4n +rad182 +brenno82 +juscuz +bubbles +radge +antel_afc +GyGY +gost50643 +dobermann +colon +jim_v-bot +k|d0ggNUe +KOJAK +chris-12 +monello +rift-wrk +sadadiimy +CinciMiiLei +john21_ +nicotine +con15 +louis_cyp +brock8472 +bananasauce +|Tigra +TheSpiritul +mark4 +dagreatone +parazitu`OFF +GraSutZa +gilm0re +stunned_guy +starback +rhegyc +number5 +dfgxdfg +[nemo] +SaseSapte +okm +necron +scumpyca +fdsa_fdsa +NEL44}{ +ArFiUltimu +Source +lourde +goonar +Beat`Mort +shefu`_em +serfer +delita_ch +bb-q +juan +beatrice22 +vadjan-sama +bolson +johndmcl +vap0r +pibbals +mecha-tamachan +rapstar +fdkj +slimtimmy +thallium +CePrstIS +jcon +p8ntball +pp420 +NoFearMe +Cincisor +ollin__ +gabi36 +tania26 +Anarki^ +Format_C_D +rtdisp +ovi21 +[m]-v +psykoz +kj19 +Hippilove +perfectzero +gab3n +tunaroll +malady +dexium +ElLAPlaja +tayiou +totalxs +wiphi +ls1 +heidi +xorox +oghi23 +Hppi +nh3 +Dj-Tresor +breakz +RikRoby +caracal +nereida +[madocchi] +garou12 +Andrada}{ +MegInhis +Baggins +auszombie +rosko21 +d24 +Tanked +Mutu_4u +hellokity +FEDERICO +rabanuts +ddthis +Shaft +shisha +nightmare +norcel27 +cmog +regerg +xaymfp +fx2 +evilc0de +{stefys} +[a-s]yuyuhakusho +alinutza` +_lunatic +d0g +Lara` +Ticl0s +kreep +didi +fleabag1 +cosmide14 +passblunt +Juckl-la +P0f3t +`Ryana +fuiuyx +Scaaoscki +blends +Tacidata +andy +figuranta +o4na28 +jandtp +darksunny +`Finsh` +robbert +bannedcar +blon +saira +Varsatoru` +Zozonel +soaring44 +illuzzion +tcrku +HaCzTheNet +jeben +alpha-z|birthdayweeeifeelold +timmytom +Mantzaaa +thirob +MAITREYI__ +Thunder| +wooolf +alphateen +DANA23^ +lalang +kodenine +dynamite +bloggsy +df|study +lollipop +asasdad +^ts`cr4sh^ +raptor +pbrichard +spy_doctor +ss123 +elena36 +PetrPiper +djalex +gam3 +bosx2 +georgette +izm +qweqweq +zappe +CeaMaiRea +EMIVY +KICOBRA +pimpyblaz +spyrect +fusion500 +dsp56001 +p0wer0n +Fly +exesor +EstiOraza +toffen +suprarz +mpk12345 +CrapMuE +m3xicano +Dark^Side +DeCMinti +Rae`ooo +Turc +driver +v|rus mariol +kyte01 +avz_l-4 +Rapitza +zivhundert +shortys +dizzy_boy +Armand39 +{demon} +mark +Alina12 +juselius +joes +Krayzee +perc11 +MmaUndeESTI +ekpneo +decent +BeStHack3r +micro +vladutz25 +dummy00001 +pacificatoru +Transversal +armenianl +t66t +ut +apsunika +kotor +dorina}{ +ryllharu +alcoholico +viddy +HHatMe +amon_ra +sukram +auloza +MandruIonel +dhqeuj +dvs01 +tomp3cat +hexus +techsmurf +nrcIs^^ +pishcot +TitanBoy +darph_bob +sobo15 +atn_1a +CevaPoloneza +\malex\ +themonkey +hotspants +djda99 +spade2188 +ozi +Autonom +zylon +IUBA +BI0HAZARD +FlorinSalaMM +as +n0name +zoriAlbi +ginno_m +Nnag_42O +m0|3`|0v3 +evidence +dana``````` +sam999 +mitaymaxsh +jjwalker717 +usbcapabl +cody- +Cutzite +pdiddy +serathim +THUG2K2 +ZeceiiLei +godkiller +{stfys} +_xlocc +nikolas}{ +Ard`o +cobzo2 +dish-search-bot +Amdoze +cypher^ +knightx +killy666 +k3nzz0z +StoryTime +solidboss +GigiStefan +scruise +BiancaLove +FLORIN_30 +trypper +CucuTare +dna[hh] +AsaCTaci +jermonji +bw-t-052 +Sleuth +Sweet|CrY +Dany_ +mirrortheblind +lola17 +IubitaTa +VinLaPliK +grandyman +|0742| +KeiN +liquidace +RadauTzi` +pymid +michaela +gonadgoat +viking +[cc]fwsteiner +burtamare +MiHaI-23 +phusnikn +purbeast +tjvbxt +Alyn_23 +curata +Mark_UK +sorin +dia34 +Angelo18 +spider3 +xfgled +volvix +Plataapa +menni +megaraver +traphael +brain +ShoGun` +diana +sex[a]batar +popekpl +dedz0ne +ariadna_ +GaSutZa +Myove}{ +zkx +qproject +guilt +chrystal +swecrl +Amintirile +pufoasaa +lmnhd +pwh +biscuit01 +ninj_ +huero +hudcbd +ana_maria +etheric +zawados +isibanu_ +pt125 +acetokai +bra_ulc +manuzza +SunaAmplecat +CeVeiTu +xaq-- +fotografo +[t]yphoon +surf_rock +eltim +bootlick +kenshin +skillet +dornbush +VandCoca +zillie +kushblazer +Sisu^ +carolitaaaa +vxr +zoios +CostyOK +RozUser1 +Pufosu^^^^ +sharmila +AB-IV +mari37 +nmaloom +stary +tejan0 +xtr +lion_boy +hfzjrtgwo +Daniela}{ +mc_mokiri +mestill +zsdbb +splendor +Mojo +ALIN_IS +Scapatuba +depez +Crede`ma +aNNyyy- +mitch +soldiers +nall +sickness2 +Exerp +foresgump +dela-nyr +carat +ar-kain +ilviu_17 +zork +diuk +opp +pgz-a[540] +dudewheresmycar +dirtymix +ristics +overk1ll +grindking +schellh0 +denisaa +Catalina18 +kebryan +Daniela20 +evil-dick +atb_1 +Dr_Evil +jeffery +greentechner +termi^ +waxxon +bianca^^ +][redemon +egfrcs +[-mke-] +maxx +Diana}{ +LUXURIANT +Alex-X +symmmon +blubb007 +sc0rp +NoMoneyL +ufo +du4lity +[eric] +Point-1 +meeping_firefox +pixelus +jjshoe +nts +BemBemBemBem +Lordnik +landop +atm0sph +hiena +suffer +toppit +N3Am7zu`Nu`e +martin +bliz42 +BN21M +cristobal +Simona19 +kibou +supermog7 +darkvibrator +elena31 +kokoro-chin +mazz +sUGmYcOCK +asn469 +makunochi +raekiel +cocotaso +mad3d +nogods +busco_mujer_fetichista_real_ +_norm +viviana- +shiiro +_catalin_07 +LAURA_18_CR +Like +MasterCard +bungler +cr4ckh3d +mizardx +tutus +cybr +mario +arian__ +tenki-kun +S0N3 +kryss +playme +bush912 +wiseguy- +pete +|1nuy4sh4| +icedx2 +BuZdUgAn|Go +Juncker|Aw +gencha +LoLoZaUr +pryde +noodles +GigStefan +kaizersoz +_reella_ +gioanny}{ +Baicu +BebeStrumpf3 +[playa] +betu +Oxygene_ +CucuMic +gamalt +merlin24 +serialm4n +RaauTzi` +COR73Z_ +chrisros +warjest` +Berton +tioz +cvwo +gw-basic +Sa`tiTraiesc +nino +ruvcan +daveyx +nstavros +EgroMow +dunno +Ouside +Purplepills +mihaiviteazul +_pitbull +Sunt_a +shell_bullet +architec +zhor +iuli^ +coolgu +Yan^Boy +gotpunk +Soare`Greu +ra34 +NuAmChef` +doener +Tical0s +Level6- +blackleo +triet +frodiddy +coloco +Bluto +sagamask13 +teeer099 +stisfac1 +i23-Buc +mumble +Ososuh +win_rar +GyNo^ +t4rt4n__ +shrp_edge +^fish_007^ +HT +`3v3r3sT +Mirela14 +korokun +Chraysler +zana{ +lau_bengu +colt45 +crystalsouls +dsfasd +grimm4 +flopster +wyce +kxomuj +BookWorm +meduza +queztor +nebu +y0ta +kuja +CrazzyB +ludicrous2k +DacaVrem +marian--- +adi444 +l0n3w0lf +EDY_19 +RONNYE +Noarez +ratface +dream- +ballzon +evljester +inger_alb +ppsy +searchbwot +ozatomic +LOLLY +vintersorg +stelica18 +Snowing +umi_ +ady_web +morphious +tru-wu +_HT_ +slippery2 +DeCeMinti +simus +CategGrea +batros +pastr +blahkabuk +aeonizer +bamsee +altan1210 +RodeoMike +BlackPeen +redsox +HA9000 +Bulgaru +mrbrosco +pornotom +anays +nighteye +splacker +dulce +JustUnCat +jupiter2 +HaPa`pa +ION564 +zerokewl +RadetiVoi +tabbycat +Chordz +criscool +penguin +neozzo +modcase +mcihel +ndove +d3lux524 +CraZyMe +oic +jorjel +McDemaine +chlehmann +gsbkye +miha}{ +CeBemAzi +Nimble +koolzero +ahm66 +twinflex +jobthedog +CLakete +Cezar-17 +mac22222 +UltimulOM +dacapn +gal` +stridajin +hamcakes +TepuTown +tec9 +SiNNeRX +witchlady +sergiu`` +erokaos +AuAterizat +LovIrcuser +ribcage +tryMe +weirdedou +sae-oper +torn +Roxana19 +gena +p3 +josx +Ochila +kwshell +gato3335 +liviu32 +Akhangel +geckooo +oldschool +dkkev +aaaaa +Sa-MiSpui +D_s_C +hells +masterwol +enito +sontol +digg +SInBordei +hbjh +culoarea +laceih +MILU_19 +_IuLiuS_20 +picaso +CeMiNick +croc +kogetsu +gonzo_15 +TheNextTag +ashitaka +goddddddd +sn1per +hoho +retsamsuineg +whv-61b|avarice +Lassacurga +anarchy99 +inertia^^ +thorr +lorax +shdw-knt +PanLadispar +holiday +crazie_ +androidz +radical_ +bombo +cmwh +cozte +S-oBata +bobby6|lle|away +Sicriul +Cock_Sucker +cristyano +sukibomb +ligence +deww +yayorox +Adela}{ +the`antiman +NuAmIdee +myx +Anca14 +_Andrutzu_ +AiDrai +devils360 +Radio21 +clement +playuh +tew +qiowjg +lunna +mrhip-hop +_crackity +juni +Stickman +PuFoaSa +ntit- +Bigak +nicksoapdish +hellstorm +Mela` +mitsui_hisashi +ybndy22^ +DJF|AWAY +brune +aceshigh +aniviel +Antoneta` +sakura_lily +mdca +anime_junkie +alex1302 +blkkiddo +sklidn +Brtzya +monkey +rocklite +jin2 +seiyaken +cecil_paladin_1002 +Livuka +droghys +humanshie +lojer +argonath0 +Cristiana18 +PreaScurta +ANDREIsingur +nowandlat +FaciMuie +CeickuriWaaa +ZgarcitMare +TheRabin +PHZ-CUNT +stattest +alessia2 +Ana13 +smjofo +smitty34 +richieb +jamesbodd +hugomaryo +SCUMPI-K +tautau +Alinnnn +YOYOY +sam667 +bogeyx +ditt08 +SuparatCuIQ +pening +TudorUL +GtaMaLake +ander +Baiatul_OK +^beleaua^ +bridgetosolace +Qw3rtyGay +jbwhbo +haodatawe +tron-f`d +spunkbooby +Mondor +Noaking +patzfan +CastrBoy +lc- +Vagabonul +hld +ovi +grlwtf +stayne`not +G-Gady +Dan_33 +davo|ws +__DORU__ +bugyboy +seres +nE|BaKeR +oswald +blonda69 +Will +sinx +gbpnai +ultravire +SilviuS- +DJ_BoX +SnJeLeMeu +neko^2 +LIVIU}{ +crabz +cmosrunner +ical +GRA +psycho69 +salamosu +seer +[nofel] +RADAR^^^ +MRIA-35 +lwwpom +dens +pimpin` +xyphen +the_burg +p0oper89 +coralia +Johnny +eugen_34 +El`Boss +andreea21 +copernicus +gr1p +dpd +AltaBuna +BluePills +wissing +rs456 +P76 +COR +cybersix +supfo0 +manual +havoc_doom +passionne +Min-Italia +woodcruft +Aburelu +burpe +by-tor` +disci33mm +nergar +adryano}{ +MasterHacker +jojo +missa21 +a203 +suitedpetro +janjarac +_forbidden +Marlboro2 +a_good_boy +jurel +Ctio +Claudya``` +zivil +r1ckd3pat +s3r1alm4n +greenl420 +SeuSefilor +heiva}{ +howto +ram +i23-Bc +zaungast +mwu_la_fllaga +waouter +SmeDeBot +nbdeju +BeeCruda +Lameroid +hico_zzz +dila_28 +Zo +SatuBecali +doggyy +Mroiu +blaise +povvbd +xbus +mzmzmz +|stang| +bitch +therealest +TaeMINE` +jayman +koolster +g4n3sh +TakeNick +joly_travesti +smilez_alpha +PennYss +loqs +shilpa +mib +tRace +colcol +ren120 +nlthbp +mihaiCrazy +Sis +catlinax +bombonelu`4u +SubWoofer +witeout +zippy2 +heinz +laco +MarshMa +pyrotek +SuntAtit +tud0rika +Indra +fdsblh +ChetaPtVin +gonick +hea +HAL9000 +BiuG1 +hodvcx +Costelushu +rasta` +PeMasaInLift +byaah +bw-t6 +icebrew +pgz-a[620] +swingin` +sootopia +elke +sysfailur3 +love_bya +bushido +PanterA- +ovr6of9 +nelll` +Shawn- +jsoro +JRL0v3sChryS +Essien +soa|longhair +orbitalv100 +DjPleata +ignite_evo +dwqsx +Andra19 +heretic +InMaterie +`A`I`S +go_ +QutFlood +bd777 +post666 +Frumushika +stalz +Erele +p2 +kimmy +guear +mIRela^^^ +HeLLboY` +InCeatza +celina +caz +warpdrive69 +djmasacre +BNCisi +BzCheck2688 +pfft +NoHaking +hgfzjrtgwo +cnaite +s^46^f +medz +psych0` +Devl +grofe +nicholas` +fiberoptic +copilasa +M||0n +SekzAWY +|kashim| +danyella +tironic +w1nk1n6 +Andrea}{ +Cordobeanca +ifoimdf +coldstorm +fuzziestn +tys +TeFacUn69 +Aessandro +aa0715 +LORYA-39 +Capser +method__ +aiulhj +Someday +Nuke +tania +royale +echizen +sameo +de_ce_nu +weak +ez_duz_it +iseman +tet_chaje +mikeluv28 +hiroller500 +d0gzpaw +dj64 +richbum +buyaka +tuesday0936 +potsie +blackberr +sxo +go_planet +m4gm4|st0n3d +h3xusr +prime +Iulia18 +makaveli8 +plicisitt +avcakf +UnaunaTare +husty +krxheh +shockwav +`senz +[bw]-xxx-193 +[holio] +immy33 +roox +bvsvikes +dr-drew +Germnca +Melo-D +`69`69`69 +larino +splifs +NMoneyL +caskey +starboy +shrt44 +arino +djsmurf45 +StilAscuns +dan--29 +nickburns +shattered +CoXZNET +dhhewzhkjuh +cK-orb +Crisdan +`thumper +xender` +JustParli +spacelord +PainKeeper +TRB +shadezz +kagnon +tekk +blahblahblah9 +Ajnge15 +alpher +viper93 +tinkle +lazy_fool +ajhfld +SaTeIubesaca +ojsdl +Nadine29 +irawk +Casper^ +cpn192 +daf +majty +peep +bdfsssf +Albert_ +m00dy25 +sirbrainy +Zazer +asbbnm +piicutza_14 +Infz0r +claudiu32 +melchior +blond +al-shakir +chuanse +pinkyrose +espnet +kivyb +yungwun +cobra1 +KakatLove +ToNy20` +Fasola +MamNoastra +^kill^ +baboob +ChellO2130 +iulia +|steve| +DEI +mase +Tuiccu00 +HHHaHaHa +LibeR +Atif +MRINEL17 +macnasty +qxo^afk +UwsThere +lilhenny +tom2006 +GotRice +DsrtNinja +rani +emilyrose +zico +aLmaiSmEn +link123 +kjndb +andi9orl +diego +Cyndi_Papusa +thehatedone +phil___ +ayzee +Julia-17 +thomy +kyu3057 +`21` +Pentdog +tommy_ +K1TheBest +slocool +wswsws +gh0stx +xionv +Maf||otu +wen` +pseudo +Rayn2 +aukk +sabbat +Eplejus +FaacBeleaa +sata|\|as +mael2000 +mrahc +DarkEngel +h3x +doom +Fizzy +omc +ertep32 +ZimiDacaTeTi +hiego +AvemPlacere +Teo_dora +_Nic +litage +Darys +wckdsmurf +Rds3t +Mathyas +dj_flight +an0n[ZzZ] +gb13 +evilclown +jinkusu +staf +bahyano +vampri +ox14 +rickyrayy +ManuelaGay +nubjeman +ice_angel +deni}{ +floppy26 +pakgojie +rockj +marwin +kawqxy +killerd +NiceFaine +vroniefan +statusquo +aaron +shaunj66 +Offspring +lc +zendar +[mh] +emocean +xiaolin +Raluca19 +Bolec +kakashim +bad_boy2006 +upstate +YFuckYoU +MciiMei +snoopymod +ravenedge +bala +sonali +rup +zenon +Porc +bfaultless +Ekz +pencil +kicked_ +Rokacker +moebiusal +|x-file| +linna +Cjunky1 +TURB +Dissesto +ckwood +taikun +matr1x +hochland +arcanehl +inerul23 +bandita +sexy`eyes +all_knowing_ion +crispy +kuccu +Mircea23 +MADEiUM +LoveMe +pist +eche +meatwad +Dj_BozzY +iebadl +Cush +TeuroQ +amd_assassin +pekin +[m3]red +bulys +MataMea +tomtrekko +tamzie +GIUSEPE^^^ +ns5 +dandy27 +guiiii +ogor +silenz^ +Panarame +^Teddy33^ +mtZIn3 +Chastity` +qwell[] +alien88 +dojack +emeritus +bigbob +Femme35_ +transmitt +locu-zzz +bring-tha-noise +hacguay +nothead +kiiiky +udrink +ForceOne +[a-s]cowboybebop +Radu46 +atisfac +D|S-Blunt +shado +cuckls +kawfee +kamara +monkjr +puloo_34 +Pops +yuroyiro +eeyorez +OmLibertin +EVA-01 +tdxx +scar +cortel +ckx2 +nickdude +bw-x-204 +AMABIL +trudex +AphexTwin +decoded +firefly +ktx +OVY1tm +NotFnishYet +bathat +[[goten]] +cobra_khan007 +bcrrpenw +bloofar +philio +lasaith +giulio +kropla +can7 +SupradozaFF +sk_ +edyy34 +yoyoyoyo +marieka38 +Elena21 +skugge +kygwid +kindups +rucus +IzvorulMinc +resinfy +monkeysuper +_rare_ +Sellene_38 +moNNa`` +rchard33 +jertkw1987 +Ariadna +jennifer +sleepy_kawaii +rackman +krynn +idem +AlinaLove +It`s +ciolanu +locopol +wordup +OfticatRau +luckyluke +edog +DoNtPlease +nitrobit +st3fca +GoToFuck +yin-sama +pathfinde +Undrn3t-GSP +kaneda|work +Tis +japakita +milton_1 +method212 +alexcs +ryppn +Mihai_90 +ulan_^^ +PuctNet +luc|an0 +aorange1 +mntul27 +Mia`iBa +zh79 +masterkou +only717 +SectiaAgit +impster +ch0ba +steveeee +PtCaBem +pokstas +arezawy +debase +brainbug +mag00 +FoameTe +sorinela +wetrix +KURT__ +Shmoala +fronard +iceblokje +dorina13 +_^r|enzor +RaeMasa +kevorkian +teresax +KungFoo +mirc_is_p +Lavinia15 +NuVreauCont +madalinamari +eViLRaT +kadafi +ninelu +floueg +pfqtma +mtness +wthered +vrajitoru +paula}{ +pat2 +lauR72 +dlfldn +rarika +danu_tzaaa +Retarded +alinu19 +SiIaCu +python9 +ff_vii +FreSquairl +mrboats +Babacu600sel +blondy22^ +Jkill +doiz +Caa +xtrapowa +gaynewf +madtrev +LoculTau +ocrquo +psonio +lolita5 +hunt4m3x +[pir8man] +dark- +[slut-03] +crook1222 +rnuso +|steys| +xandre +Adrian^34 +ouicmoi +glamdring +rdotdenis +dt|badass +gggggggg +|x|nwo|x| +_Kiatra_ +bw-w-075 +mrsmith +ORIN_30 +Resistant +CeSdIS +digitalxx +your-altnick +BlueSoul +licht +TopGun- +mizuho_nova +ramona25 +toadyus +soothsaye +anaconda +sonic1 +haircaulk +Angel_man +axiom- +[midwest] +nonam3 +DJ_ESP +uda +MayorAlph +thcgewex +we4ofrh4 +ramm +MainB0aRd +DARYUS` +tman26 +r00ter +sprout +`trash` +jlmanxxx +NickDeNick +jo +sixshot +I_Write +GruruGrig +[wc]timmmay +Mona}{ +mrdestiny +menschenf +warewulf +rebelkid +jiffy +symtab +{glemlin} +mr_dark +viknj +logit3k +Bua +rkeene +preeeemo +freakshow +erza +sebulbao +_jcxl` +dish|f|1003 +tetsu0 +calin244 +grimlock +tatsuo +Samanth4 +TraseisteTar +figen41 +muse +poprox +espguitar +djhyde +soccerluk +razvan18 +stx-bradd +qbert +glaabrezu +Un`DuLcE +cooldudeu +vot_gigi +MTZ +jinchuu +ice905 +_skweek_ +c0d3c0p +beckham07 +andru15 +slinky_28 +Muddy1 +misho +Loredana19 +[o]dy +smoothjad +TheSquall +borealis +LooAtU +xelloss +DiplomaticF +jimridlin +djboutit +problaq` +meleoffs +diablo +xtrem3 +evo +carllos^^ +nick_name +adelina29 +geezy +jfdkkfdl +t3rry +wuhstar +serena +alyuoy +Pabllo_^ +TragiPaci +conan66 +rascoe5523 +crossing +ushrul +spoon^ +ghb +albertina +x20a-strike_freedom +fredburrg +ELVIS}{ +youli +rampage +ALY_G +ahq[bmw] +aers +skyblaste +b|acknd +sexy_tool +demoneye +Lazer +shun +duhh +paola25 +s1urm +kxelias +iubaretzu +gotmilk +TataMicu +orionstar +j4ck|u54 +llr +d3stroy3r +wargod +yochai +mpk26578 +deeutza +bamp +jachoui +chonkey +FaineNce +^uF4Cpl +dowbwf +rek +Antomist +Maryuss +lupii +bigboi +x3|w +zyzzyvas +dynospec +cosmyn^ +Gigollo +flavius^ +zooyork +protocult +clas +drunk138 +YouHand +yugifanatic2002 +Sambata +slunzie +sasilik +intalecture +nurse-chan +toby +AliNuTuL +zdreantza +TotGHoST +trouty +sawman +Ryche +deluge +rem|y +enteem +dizzie +IuBaReTuL +nise +zonerqc +belminf +zandia +scorp10n +tnhitokir +deviation +archon810 +hardihar +C0ntanta +policeman +thizief +blah +lordinsane +r345r5t4t +waheeda +deftoned +zorobr +Ev0n +froz +flygirl_a +asu44 +le_mal +Viscolo_^ +creampie +tre5476ie +linthaide +mya17 +remi30m +loci +_riq_ +syncrod +violation +MARIAN-48 +bw-w-2053 +hexz +soul1o01111 +_cobraboy +moop +depeka +boss2u +lmnhd07 +monte +fredhed +blueshadow +d737373 +zaanstr33k +BucCuLuciu +xeros +teeerex9 +vasi +MAN` +pntkl +animeisco +jediguy +Xazer +benc +|parlitul| +lumi-chan +CecroafawA +karatebob +WrngCode +lilopul +Mistrie +kjb_linux +vensor +versus +drgnslyr +zenapax +txmdqp +RLKyuss +dbowill +empty4u +crashrnnd +stigma_x +N^a^z^z^y +skitprat +beeblbrox +yoyqon +jztimmy +house_19 +asdffdsa +typh +dm666 +nb-murdock +fctcqv +far_away\ +sanguines +EvouTz +gabbermp3 +Taurash +votgigi +darkhorze +sfrox +foru2envy20 +darkwar +rweireo +Dt-Hol +icysun +ParteaUrata +koolaid +hamster +edk +sirian_raper +Redy4War +haribo +king` +billy +JSt1Hacker +arcus29 +Manutzaaa +PoRn-Cy +eDiana +harp0072 +fuckyall +Bogeak +DORU40 +naoiuss +beka +equinox +speedism +GuruGold +animehq +Mediatoare +roi +uruzul +MaPlictis +pulinno +PahareBUrt +bug-z +doug1 +negative_creep +vietnaymese +Medinele +CoDriN_ +PiatraN3amt +bifrost +XCITeS +Marine +BeatMor^ +wheeler +roro +elbrujo +yowser +UnMucJumate +zetz +luisa39 +DISPUS_ +IacaNaMai +manni +rrammstar +gamio +olaru007 +djnato +Donovan-31 +grigg +CeBucaMica +CATA_LYN^^^ +firemagi +ova +cooljohnlong +d1967jump +ads +sub0lap +raxxon +AmiMuci +Catalina}`{ +rboerq +andrey_xxl +phobicus +zion +smaduz +IubesteLove +bahh +TeleleuUmb +OBSEDATUL +acid|flux +otgaro +brianh +b-a|enoz +Ce`Prost +OutOf +IANA48`` +dendrita +Madalina33 +NMaiSpune +hack_knee +chr +konnybroe +radiologist +peter +ndervista +samara +jepcar +sorinel}{ +mourgiett +esha +cp8 +aaottomat +miktar +lucianBC +o_v_i_D_i_u +soul1o011 +pcvrhr +tropic-ll +bjocqo +akraft +ada_18 +niklas}{ +dwknight +_4ever1st +|razor| +FLORIN33 +T|b0ncus +chango- +syliss +chefwhite +^Mini^ +RadeEa +CAN-M +bigz +mummelmann +alotaibi +immyca +Metronom +{gz}dr4ev +turdman +hden +j0el^ +norocel27 +felador +anticaspa +jonlin +trooperx +NustiiBarbut +wemser +cuceritoare +b0xa +K0R|NA +alpacino\ +tatari +PijdeMurdare +naneko +brodsalot +pm2 +bonaparte +wikjif +dowhatnow +ron +allivain +arian31 +ballinbu +}KATE +Fearngel +gabbermp3-des2k030 +NuOaiVezi +santtux +arboc +grapeboy +atomicfrost +adrian35m +DANTE7 +elfeckin +kno +venombite +abcbooze +We`lB +geo007 +sae- +Mijilica +happymatze +m0md4d +UncJumate +laryssa +robertx +AmDefacutWC +your_nick +xokyit +Treirashe +badnick +simbou +knarkoo +[ax]enforcer +jetranger +Teodora +iosif_parc +Hunter1 +wasting +my^ +dn29 +ViiSiTu +gotro0t +anielo}{ +pupkick +MARIOO +qwertzuiop +AskMe +konsulat +valeria` +coco` +ghfjgg +jlo4ever +Tania23 +ringo +sonyusa +sm21 +occabot +zee +nakanfj +eddy_alper +crozby +liviu17 +MerePadurete +MaCLouD +barnz +heady +_skinner_ +}^roxy^{ +Belele +Dj_Bodo +Ulysse +ryvern +URAGANU` +lamer +meany +blitz1775 +ghis +[a-s]s-cry-ed +windy +nikiboy +CamForEm +Wll +toffecat1 +sniper69420 +mddy25 +Dnut36 +VerdeParis +Covor +oldbastar +Wampir +DANY_TM +tical +vw_600r +mauricioo +tigroaa^^ +Hardloor +trick-gmp3 +fuash +stellina +xshadowfire +virus- +tsmith766 +XAXmon +zamnight +alaz3r` +asdfafd +Bebyto +lardman +alayan +play_dead +koba +rugiei +[kd]-hangten +eboogie603 +amalia}{ +brunetu_21 +killacali +intoit +giorgos25 +bolen +px +ruxkor +razvan24 +billh +Ramyyy +X_Man +fasfadf +sculder +Jal`User +Adelina}{ +merlo +Nimda_ +PickVarza +razvy_yo +deti +hobbie +koax +Vazer +GrabaMare +ANONI +trunks980 +[a-s]animemusicvideos +otaku515 +vague +kareena +heinrich +andreea_st +tachidito +AnDr3Ea}{ +brucy +RamaneEschiv +spirit_of_knight +|mx|-filters +systmatik +dijitz +han +excelesor +Lancer +Zone +greenie +owqfdu +aachner +meggy +ady168 +Nicoleta01 +ToliBuz +nyquilyum +kalorius +CeLakete +mariuss26 +babba2000 +dhgcfnf +Rablament +danny043 +ktrinel21 +Vikt0r5 +BooOOM +robert1 +SexDroguri +thizzman +altenza +Onl5 +mig +ouchie +Gansteru_nr1 +agenta_007 +pop9 +bobr21 +weazel +blaze +Leftover1 +Jupanu`22 +hastor +ahq[archive] +anel00 +oreo +zeus +unifiednick +Cevaoloneza +kerm|t +torrez +Hip-hopAct +salo1 +ricky_nye +cr00ked +BobDole +ninjag +JAP-K_4u +click_me +snakeman61 +lollypop +d0iSmEn +cedsua +costyn +tillithz +corneliu +g-cypher +bigbrotha +Melissa2006 +BigCock +IncaCateva +NiceNoi +PlajaMare +fwiutd +echz +dozzy +zoollinger +Dj_amtzu +karun +grabbit +jarhead +ramona}{ +canov1973 +aguxdc +satedfear +zgarici +lazard +rizl4 +Aquaplata +antti^ +daglar32m +Ceancam +UnPraslea +NturaB|ue +iamfromnf +maralintata +Delia}{ +wez0 +DjPikachu +xadder_ +VooDoo90 +datarecall +MegaShow +ha|o +texx +dragutzul +PeaSusRAPP +daizzed +_CuNoSCuT_ +sufferall +dist +nephil +dumm +mindless +Vibrator +levent +Moroiu +maynardk +Is`Diliu +hawk123 +ragutyka +blba_ +auras +mbgpan +GULYA30 +naitxii +blueyes69 +bonker +jonoxq +d1z4jn +Mintry +papusik +samy345 +fatty2 +FighHere +Slavery +SantLegat +DoPlusUnu +SistematicPl +xfcj +bl0rw0ut +tenucu +colemann +vgwebo +mrqwerty +chronokefka +corina15 +sha_gojyo_ +FutDatorie +vikings +AndReYY +KrayVi +tyrol +Lixor +__volkom__ +RasMG +pacotaco +UnLaketeJos +BooM25 +stela45 +doom-bnc +PsG +L3gamanT +kenshirooo +crazy198 +LEX-BAD +wlrwhp +alisa27 +tweety_01 +CeCerMare +CrematorY +CurryMan +joeyd +sainouhe +noioigoi +Drufy +black_edition +cyberliqu +PunctNet +^axl +snigel +NumrMic` +biluxiasds +faust721 +SaMoaraEa +_vlad_ +the_game +NumaiBem +den +tmz-015- +`LuCiaN` +blondyna^^^ +Robert__^ +jagochaar +chadski +jenpen01 +NMaiManca +Lobsta +Omu`N3g7u +singur36 +Dlta +shootme +AiGrijaBa +peugeot307 +LetKnow +agno3 +sinn_ +kairo +assit_ +NuaMisc +m-guy +laurentz29 +silentveggie +rhodan13_mps +deadelvis +vsksv +ianpm +pjstyles +koaroas +rocco_69 +klaus1966 +mr-g +Galaxy +CeNickuriW +creison +sand584 +AstaEPriv +ShadowXer +kevob +ja9away +AiCevaBa +tantarela +Lorena15 +bobvilla +zeborgman +jdbrow2 +Milonius +jabbawookie +jhon30 +oa +AroundM3 +sushmita +vpfrch +ValY^^^ +Vidsynt +D_amtzu +kareem +beef2112 +nickulae +EAscuns +dmantom +gandelf +benedek +langst +VidMax88 +xnomar +jt +jules +^D-M-X^_yo +b0x +pegasus21 +Just60 +Hooer +cru1se +greck +micro` +gw4p0 +gecko-san +selica18 +lg-nicko +FearAngel +Esapament +EdmondDantes +|paritul| +sarge +Tippa +dolforce +COViS +bcuz +oz^malt +dan1980 +sierrasonic +gennmx +aleex24 +vhafvk +AG-81-KAT +dyslexic +adaa +readman +RED_RIDER +madalina22 +crib +|c0y0te| +er0k +Wi-Stunna +metalic +upgray3dd +worx +NumaInclude +okezlina +sss123 +mpk4505 +tqvvro +leila^^ +^lover +aays +dladdictl1 +DANGO +audiofx +baby-d +nikkow +^pegasus^ +garder45 +AtaK-Me +bloodforg +KOoT +SHArks^ +andrey1 +ww +nighthack +b-a|triviabot +sc{a}ry +Bagabontzi +justajiga +dunigan +sl3am +]bos[iron +jnorad +running_r +vini +PeLaRaS +xwwmby +juggalo- +sedu +mp3trivia +sharer420 +boxrox +otika +peter^s0s +porkot2 +rick2 +ronstax +genrl_zod +alesdf +f`godspeed +babee +sternrule +distorted_thinking +yunohu +hkjl +legorol +drmp3z +e-bola +zachzi +SASaraBoxele +Nitrous`` +solidsky +galalala +_ok_ +FERNADO +seiya_p99 +chivu +r3dfenix +drax|inc +Azash +duka +bardun +muffdiver +bahamutx7 +alex16 +phiberz +pan4x +unykhorn1 +ssj_saiyan_elite +demanche +digitalfx +jagobah +Adi21Tm +mertzan +Alexx_buc` +dr03 +dim666 +sir^killalot +aslan +multivee +gl77bug +[630r63] +ADYNA}{19 +Vasile-Yon +orel_35 +m_just_sex +CipE +IJustope +deter +konriu +genosyde +eviltrix +alecsu +pie-chan|offline +nasty07 +westcb_ +pubic +sinsumi +BAU-BAU^^ +Jekill +NeBuNiKa^ +HAHAHAAH +Ce-a +pestilenc +shadowedd +odino +ReDmAx +jaezuz +ktyvkf +devine +jrx +[noam] +insane|e +deYug +hfunny +CereiTu +chil +da18 +ricardo22 +Hotz +coweep +by-tor +Inca3 +EvoLuTz +inferno +deeav +bagpicioarele +SutFeroce +evoxxx +DYNOS +TracB +MaDucCu +grind +steffui +katzby +gouki +dula +denisuk +yxcv +Papucei +monkey386 +Marco_V +unearthly +aloneaway +morkan +lysten +th0ma5 +WI-pyrr +Brunetzyca +stupendousman +TroleiBuz +ssn +uguajk +Lucian__88 +MIKE_43 +esence +dalaw +goraptors +e4be_mick +grvtchk +MaaMea +alexutza_pus +ScooterMan +timestamp +valode +buffered +geekay +SaStauAici +feetix +mar1ana23 +h8lipper +onedrop +ahq[archive-old] +chums +TataM-aConc +alinta +ydsl +feyyaz +h_eka^^ +EmaiBine +coin +zicod +fadedlj +DeGrU +Celine-- +England- +kratos|aurion +d-tech +hdrock +fantomen +jaguarul_200 +gottirox +neteni +lucky_guy +fizgig +dany_yu +trengo +cradus27 +assad +SiIau +zeeeeeeeeeet +tay +lh +lambas +ovidutzu +agboja +bergman +FactorQ +AEKSYA +jim30 +qrmgao +Pigu +sarare +champca +_rebella_ +booba^ +grasu +harkonnen +k4 +KokNet +dingaling41429 +kafaen +qian +cellstern +derez- +piecio +bush1912 +cletus +cue +vr +jaq +tup3ystu +Keiser_soze +xdcc-312981 +abyss` +[crack] +macpimp69 +eflakn +pwxfgv +eldyrgod +|VenoM| +Mamaia87 +eA +pcdree +ddr-mh +kpbkku +letterb +mixoplex +Mangleala +xundadogx +lynda +rigger +akimasa +dregin +luci10 +isolated- +dulcika18 +animenia +ICE-T-25 +BeastU +pons +tjoz_ +jjdillon1624 +[x]daownz +VreaSaJtIi +Jex +v|per +Felina +CaruOke +j_l_r +_damned_girl +sku +wbhybm +`39`` +darthpron +RafaIe +hodge +SchiopDeMic +plums +blonda17 +dcvcd +evr-ready +rain_1 +SticleMulte +Montague +cannedbar +dreamer24 +krono +in45 +geni +HotziiDADA +stutz +cicino4u +HlpPlz +atsuru +Sally +bbaabbb +ZET +unclecreepy13 +NuOMaiVezi +mar|gone +Njeri +douge +lory_20 +{kd}-truckdriver +magic32 +Novagon +thetrance +shaggy65 +b_ubandit +Scarlett_ +MaLesi +Marius18^ +doggs +furious_g +WaziSixQ +watchy +Mihai4love +CeMaiTare` +TRaeTare +Droguri +grewper +Adela19 +buck1th3d +brentp +TaciOdata +Mr_Phrosty +mptank +nnrnir +scarface8 +BetzivuB +NewAgeDia +cansa +jukebox +dasdi9 +doranik +AAlex22 +OverSud +|Keeper +Ingrid^ +adrian37 +morphal +gaben001 +PkPokePok +mithos +elMaiTare` +Catta +gay +neelam +kgwkbd +domin8or +Lords +dante +athlon^ +secend +pur|atwrk +sksapps +alinna20 +adyzza +rockoroxy89 +abvavg +To +aarron +iubaretul}{ +xlithiumx +jamex +auri +ueqcyt +highfever +genxcops +meshuga +johnieutah +rockwolf +petergunz +sn1perwolf +Ready4you +Tru`` +harv3ster +da\ +ILoveEuro +datadyne +Ad3varat +whoadie +CunoscTot +palySME +DezlegNod +Clara_39 +shinjiro +mick +ruggs +Ssense +CellO2130 +preity +Qorny +AMD-Athlon +cosmina21 +sparood +igjbod +GarlaLiesti +woozle +silent-merc +dawecm +fuman +turbodttl +ido^ +Casaubon +griz +potowiak +gool +rboy +TopGym +LoveauaPro +jcap511 +coolycoo +ihavenolegs +QuAlchi +server +dick_in_the_eye +dap +m_ellis +muppski +b0i +Paraele +Chandra +ASM0naco +SDY +birostick +engima-n +saikokilr +Mustang-88 +maddy25 +rsatadlajd +pgz-a[xdcc-searcher] +emmaj +Almost` +beerfart +|edgar| +INCE +HardFloor +coshu +SfarmaBuci +FightThere +t`ar +Cinefilul +OlekuTz +JTR +StaFaraAer +dea +cybervogu +amptor +p3dr0 +babler +belica +orbital +wtfisthis +_unreal_ +Grodzman- +mwma +LittleDick +Don`G3n03 +lam0chop +arkaine56 +Casatorit28 +higlander +alexandra17 +thekaos +birachel +nightmyst +animorc +EMTIVY +GrifoColorez +hatta +c5|Sceptre +doctoramo +UnGramPraf +MaKaVe|i +[-junka-] +kyoman +magist +SexZonee +furiar +LoSt435 +Gino}{VIP +phrontch +anrml +stef +StarFight +chunkylov +ragetitus` +pollewiet +][vagancia][ +enzym +mikel19 +nothingne +DALGI27m +CodruTz-OFF +dg|nutika +mrt0binto +cchc +senri +trgdev +senate- +Crnnat +parzitu-s +Lesbiencele +A1exFitze +FurTot +rockeritzaa +Dumitru` +hiroshima +leo1987 +JeaaJeala +doggy-junior +ulian_^^ +simss +Shakel +tfbxcu +Trojin +blueish33 +dragonfire80 +octav +__rico +H`A`S`I`S +_xZ_ +egelslave +H3lpPlz +skilopez +Ciprian-cry +D0neGang +alives +urggx +stig +pur-angst +tagz931 +emrik +abshard +AbuzivAPa +myo_22 +cueball +adaly +Turcia +wallywest +fpmtcl +profu_de_sex +the-one +dialdude +EU_EU_20_ +isabela31 +kinone +iooana +|Getaway +sibilant +ViperNet +Dennys +Chipking` +diana27 +jmereel +ubnmxi +|cdarr| +mad_enz +dcpwyy +xxxlord1 +jupiter +duffy-kun +taozi +Placinta +WEN +sridevi +VeryBored +poppycock +`MTCN`vs`CC` +BemSiFumam +kristianzito +{SiC}- +fredj +Jade^^ +laszlo +zeeter +njguy89 +Fulis0r +biegian +hashbar +djsocaman +romaniro +fishi^zz +game0ver +profu_32 +viola4ever +whippy +albu26 +Reportaz +cascabellll +eu-0-f +Dory_20 +indyingdays9 +omnix +mpHk +gen1ous +jayle +[kd]killem +sandra31 +kiliman +friks +MaDare +Lk3t3 +bruneta1 +popz_ +plictisitt +writeout1 +ahbal +[kazuma_kwabara] +PrTx +monti +Tyson_Ko +natalie29 +ltabfrog +asay +loa17 +iraqdnb +amp +sciffy +rec +ariciutz +twisteddragon +geemy +regulator +ontestabilul +siinhm +kex_ +Corina}{ +Inc2 +MoriGauri +GhotMut +hd|malte +andyx +orlando^ +Germanca +tmz-n003 +Silves31 +_[sr]] +modern +smoke1 +[xdcc-atx]-28261 +phantom77 +brunetzelu_1 +fixy +zeroprinc +blecke +doesitmat +Roxana25 +third +warz0r +hvxbyx +aMAN +diggZ +PackBell +winterr +dummkopf +autoprime +M-amTirat +FSHuLeTz +il^greco +p-optik +reggie +Baiat^Rau +UiteNic +tyrant +talia19 +taulen +ikariya +R0by +[-t-] +MostWanted +GroapaGG +VASY26 +richard33 +scartown +toffecat12345 +twizlrad +windowlic +ViperAMG +atreides6874 +amTotCEAm +doserman|leecher +m0ngoose +casket +ceaves- +legnd +drjoeb +Wildkitte +Jacob +base8 +the^^crow +AR-83-MAG +ConneXNet +ccc_ +Alyn4you +paladinz +cosmin +wiislapu +gabriela19 +SaseNoua` +the +noz-home +scorpius +bpoint +Hdonist +Ela25 +scaryface +jabo +hellmaster1024 +_cratza +seiichi +ZgrcitMare +DLaKiatra +Cobra^` +BARBONE +Liftumeu +Cuculan +PsanDmanP +TotiBagaboti +gunsmith +MCM +bigs +debylu +tammer +Cornelia19 +naz +borg +frozensou +bartssj +yoshimitsui_work +jcsmith +the-goat +irccl89 +NuMintea +KomKatrr +us3l355 +itachi-san +Rade`ooo +MoldovaCity +BT_partyin +shka +Juventus- +RedEyeZ +PuStYuL_18 +anidar +naseer2 +ofrqwn +AcuInru +ifux +bem +Attractive +GoDQ5 +STAR^boy +UN_AMETIT +B_Boy^^ +Qaddafi +amant_69 +dasoccer +starkstat +dirk +arcbottie +Donnie_C +potsmoking +rom +lap +costel35 +BigDildo +Bianca18 +pinnen +sadfd33d +kasian25 +pamelaprinciple +kwrxcj +DANGER} +oLege +dvdfreak +jnpquv +eu-40-f +qp +compusa +|ipsisverbis| +parlitu^^ +Lorentzzo +bobslob +CT-60-HAN +emshock +cue` +jwin +banemind +M4iuc4 +movie_fan +GoGet +DRgutUL_ +michcio +andyy +vballerin +rvleshrac +AR-87-XXX +geo-ooo +berserker703 +MaPlitis +okkult- +hiob +nikutza +TeacUn69 +MatolKanabis +MaMaIubi +p_ogdy +shiznix +candyonetoo +triads +perdition +maxi32 +imeis +ohsda +crazyb +baileys +Piticu` +nebelnils +nOuS3Ron +Va3nT +ustyboyo +pericol75 +typo555 +john123 +Decagon +marcus29 +Da_0CooL +ali3nx +lachette +jasmine +b33r_b0t +bearm +AnusNegru +orealis +roxana-_ +rocy +alvaro +NumaiinFund +syrus +Lucy19 +lucas30 +adinuutza +Adrian_27 +tommy_200 +TreciLa_S +slim_ +irssi_ +keal +hananee +Pad0va +simgirl +OLT3ANU +N|keBoy +dampiel +Fatso +talestormer24 +devonshir +fjh +cyberz +Dj`NiCk +`neo` +pgz-a[560] +sk8t +memjob +ciana15 +yuyuyup +ghjhtjhjhg +evren_ay +PYTYCA +n_prof_t +peapea +stealthlogic +bbobby1 +contrl +Maury +MyraHappy +Cristi_28 +[000]redhawk +vehlers +ZaRa`MANaway +blewOUT{OQF} +__silviu +loki1 +muskrat +giueppe +rld|agent +jgc +I_bogdan +aer +goodfuck +KrisSuTzA +z9h04 +StiCaTRag +altergenesis-x +[ma]debito +karim^ +_sasha_ +evan- +soldierx +wizball +al-sakir +CePRstE +beatmaster +hotaro +pigger +CacaoMaro +nebody00 +eskimo +blue_sail +pourquoitulefrappe +CumVrei +^uFCpl +FutBinemata +mAtZIn3 +kur-rupt +dionisita +GHOSTMAN +NotHaJust +icial +Culbutori +chesy25 +SaMaraEa +giglife +arkanoid_ +ron99 +MuitzaMica +fbsdr0x +redkota +_peep +Klaviya +pastY +extremx +oktosite +AmunRecord +fmdnet +IrS_DA +Masr +_zeek +NuMaiSpune +cl_dulce +slipknot69 +|dtox| +ginger +angel_4_you +_Caut_Amanta +Acid| +downtown +falvis +steelworker +boyalone +Lord_Dirty-KT +Brad +warb1ade +pgz-a[pepe] +iubita_ta} +mahn +vorian +Zero +}roxy^{ +nanu16 +rB|gregK +sirstix +mota +nargis +EDY666 +FaraNr1 +Quit3r +cccc +saxxon +Mazer +fwp +jakejam98 +Alex24 +omnipotent +verdammt +seppo +TutanStine +pb24ss +hedgehog +priyanka +mary8 +VYKOR_19 ` +Taipan27 +Predef +lacirox +pumba +sqrl_ +joey6254 +aplize +dooruu +gern +lhyin +PDTjpg +Cosmina21 +croz +kamui^ +crackltd +eon +makuro +StuS_Isk +elsa_chan +Stelutza` +dagreaton +zealow +akhessa +qhbxyy +spa +dbd +Limba`nLimba +knighted +NickDeKaka +raruler +snoft +sourdzl +roltho +nelu4u +manelista_16 +ErnDog +abnormis +ARYUS` +nermie +n8hawk +aszbbnm +beef +xempt +domnuemare +SS_35 +ranter +gearnie +gojira +kob +BniMulti +flavaflav +Cocolino69 +EW^ +solar_void +poolboy +InTineRepedeeee +disck +WolWagina +NoFae +MarSmecher +dbanner +laxxJaelj +jay_7680 +KingOfSEX +jahshua +level_ +harowing +BOS-LOVE +Rapturrrr +frost_BGD +phillyinme +Marco +krwshl +Alina13 +wonder +TrecAnii +IceSoul +noah^ +|ill +dandi35 +MolMrMod +cK-mazE +jfmusl +wh1t35k0rp10n +jakal +canek +StresatCaine +|4|tz1on +nigth +mgid +bw-x-704 +r0bot +_amon_ +`Mc_Rapp_MaN +radu81 +adrian_22 +SiEuVreau +_Gerogiana_ +yarrik +uwarrior +MUTU-le +kashou-x +oddmpy +norris_ +MisaTeam +kerosan +symetric +fcbixx +scud +MARCOO +felixhcat +jab +Indyra +djsouth09 +orokameron +gooloo +DnSemak +_anto +Ionut_L +M0t0r +mirkman +toadnuts +aborym +dgbays +scra99tch +BagInVena +mooly +vengrl +antihumano +esmail +CresteIntere +joeyblow +suarez_ +can_38 +Ice`Soul +louislouis89 +joujou1 +paulina +fefemuffin +psyh8x +Eterity +CrAwLy +pharrell +brunoro +SOINEL12 +Jitau +raylye +Tapan27 +shakedaass +Thepiritul +_nom +Diana32 +Emotions^ +Parazitu|2 +g0ne +yamd1zzle +katt +ir4ta +cuban +^dulc +Graity +jingga_emerald +casheye +bianca28 +n00m +schnaebi +migee +cata27 +t3chw00di +chenry +xrovbi +sfury +sqqhan +[aladdin] +_makdizzl +orianna +gutb +^reaper^ +altmazter +peteydeep +Moonatica +LonraMea +daddymacd +DSSTV +elgeaj +RUBENS +executnr +diablo^ +CretzuRosu +Mafawaaaa +zeyuo +tracker69 +kyre_ +firstmann +andrew101 +nexx +greeny +blackfeather +kumasan +omegaking1 +DaNu`iDau +Sped +uberslow +`0`r`G` +atgeek +Di`NOu +duck^down +mr_tbo +ROBERTO^_ +yasosan +_javi_ +Laur_}{ +OYVYA Ec +polyana +Gangster_uk +[nz]darkfire +antalus +WeLoveYou +xicor +PuricMic +AlDoLOVE +mssa21 +VagabontNr1 +monik29 +zero_aura +kidkaos +pathack +billybran +CinciZeciLei +leinad4mind +bwebguy +spliggity +OmuPar +UiteMonitor +cpizzle +maggai +Renega +^NICOLE^ +francisco +lordwarrior +Jeak +dibbz +goats +zid_ +ace123 +cIvIcgone +roxer360 +ludakot +chrisr13 +jomy25 +rusian` +_lucy +alrac +lolilo +Stree +auraya +_mike-ri +yonyonson +HaicMata +Alessandro +bbb +Aris_SB +SeAgata +Cabeaucunav +sqrl_w3rk +allexx +jdawg +Ready4War +tatootian +D|S-BadSlinky +UraTemp +bellushi +`BoB` +rudolf +bodom_night +xxxlord2 +mr_e +jautenam +beks +AM0naco +FuManChuu +mpr +who-m3 +j0me +goliath` +CristianN +RealMatca +pimpd1 +TriK +Gilmans +epyon-01 +shadowmario +mainet28 +weeeeeee +ornel_35 +hei +zunow +strider_ +^c|0ud^ +StartFrom0 +p00chie +DiJ +Skumpicu +cK-czm +sidiuz +Belpo +Elena}{ +aamat +X-CITeS +PrindeNoapte +maryusica +zoltek +therock2053 +daithipj +lela^^ +Maria}{ +redmanx +Kandel +Spermozila +BemBem +CeFWa +ghostk1ll +bwosfi +Ev0 +Fat-Joe +sandnut +scamartis +iso|gone +Andre +psp +nibs45 +Gl-10-MLS +freddie +corsicanu +ItalianKaKa +leadg2323 +izzatzo +dorrin231 +fnkmnky +riz2006 +troygen +gadar18 +dwell +mac4lyfe +colt +tbone +sony| +jenova +holyroses +delia}{ +watson +parlySan +rippy +mity_00 +eme029 +skippey99 +michido +tnkrbel +ponyrider +[fubar] +QUATUS +setz +pgz-a[wolvie] +`woe +yihvej +bobaffet +hitheresi +setinhere +Maj +yellaboyr +makkuramancer +frik +Marti +bw-mp3456 +pr4t +cae +avmoghe +DaaVreau +jawnerz +jquestx +MataMare +mallrats +MyHart` +oMbl4D0n^ +Alina11 +numb +serialman +Kennet +rodi33 +cm`NoccY +warjest +kiax|wrk +sabrtooth +Cinea +drLOVE^^ +unc|3b3ns +moneo +draq +trunkyboy +Smoala +sabeea +punker_bz +TiganuToflea +ori47 +bebe_beu +unrez +rB|CurVe +dorianas +hideki-kun +Sera +Septagon +humate +SechimbaHHop +adela23 +darksaw22 +snugglo +kar_adam +chriss28 +jaigo +zero-x +adutza_4ever +Rasetel +kaito-o +_fear_ +demian +c4t-lpt +download5834033679 +sndra31 +rs-- +elchicobajo +stevecask +riprock +marian42 +CuPalma +sys +karina35 +c17h19no3 +pzing +bsplunk +soopa +cupi +AmDusmani +bag1 +bw-w-253 +CretzRosu +cK-mazE-o-rific +|wikkid| +ancutza_18 +hso +pgz-a[vol] +yo_fata_de_g +primiiprosti +Och|Verz| +goe007 +Mla +icyb +slipperys +rugburn +nicknick +maorbn +[2]_[2] +Poke_ +five-o +sandu30 +nick-ini +diana_24 +arko +pRiSoNeR +Caatorit +Tanasoaia +shadowviper +ddi +tndp +Reay4you +wii +flemenko +deniiss +Dan`` +zeph +atarax +Tuberoza +Da-teBatut +GrupaMica +satan_ser +deano__ +MararCC +gfg +zx10 +pyrokid4life +fuzion24 +EoD|Smoke +kakashi[-] +yura` +okashi +sj7trunks +CuTin +piezarel-24 +bun-bun +boh2133 +MireLushu +amoss +Situlafel +NuMaate +muschetarul +johnnybas +kelmelzer +ps2007 +ndrey1 +PRINTU23 +o_proasta +[dio] +joink +scratchh +DANNYY_tm +nietzsche +amun-ra +gravedigg +tennissch +surfer` +MariusJsZ +ubergod +avortverbal +GeneratiaRap +giblackjack +devz3ro +bvork +COR|NA +hellios +channelbully +NumaiNoiBem +alexkiddd +vietmx +crazzyfrogg +heifetz +Adynna_me +uyctne +madalina75 +RightCode +chri8l3 +oroprm +lilsnoop4 +r3cruit5982 +GueSs`Who +Quills +dreamss +teppei` +tjm42 +bunalapat}{ +haihane|mia +Puriu +probably +chess- +howl_ +Gencrow +AiDraci +ghost0204 +real_kyo +xphox +vertz +camel +blackmetal +given2fly +snoopdog +juiceman +[al]-[base]-2885 +nicknok1 +JUCAT0R +Kaviya +mery +axwork +ALIGATOR17 +frx-99 +MuieLeezing +samp_bv +tech_ +BaniiGrei +petyboy +OleuTz +agent6259 +memememe +chillar_` +Aura-Sad` +Eby2001 +aisokuinuyasha +rolando_mota +d0gb0y +shadow_score|off| +}Gorila{ +bushi +LEON37 +nldrml +Plete`Mari +lsingdu +pwr +Buttstar- +dupl0 +redial +dubl_j +prez +xbetgw +ced117 +Robzom +cyberdrgn +xoph +ina45 +Poe +A_M_D +breadman +j_aks- +Pipinela +pr0ndude +cucuare +AlinaXxL +vega_ +jeranw +ps3 +ValoriCor +falon +sick-66 +motanu17 +LadyC22 +Bella18 +wtf689 +sciclopz +ertzhhhhh +NATANIELA +technosid +josh +beatreal +duy66 +StilDeVIata +Gnno_ +pistonrox +skaara +VeRicaBB +drc_ +Cpri^23^ +ross_deux +^tyrant^ +ahmose +cock^off +universe562 +obie}{ +WrongSide +g0ats +FutTATA +Deja`` +skytech +GlobalTock +kirstin +dingaling35895 +`3clips3` +z06vette +sqz0r69 +Brobu_ +jackman +thomas_r1 +geck-_- +FanTaShok +riko +inlfames +Oral +h0mi +c|o|b|r|a +yukk +badtz- +paulb1 +kirathian +marrius25 +thunder1 +Ray^Bay +basev +kuji +crisyna +bawitdaba +mariuss19 +sei +DoiAniBa +hon-y +Ernest +GasescAti +Ketyy +Nimits +C0nnct3d +_cableguy +asynicu43 +ramdan +cistana +raul}}{{ +dasf +perpiexer +AlleX}{ +Labuta +edgy +alinutza_21 +jupinu` +achilli +potatokid +Jut60 +SdeLaSakin +Com|saru +ckidney +statue2 +K4H-Chaucer +dvdcwq +lxvyqx +smssms +Sevilla +zubaer +TragiCuDinti +rea| +s] +belgl47 +tuskote +andreeii__ +morandi_cr +mayzerrrr +UN-S +Laur3ntyu +stelik4ever +suparici- +poo619 +BagaBerea +CacaLaka +EGrele +doug8796 +lampman +tonka` +BemBemBem +chat500 +ASASIN}{ +Huzu +silviu_8 +markus +BalenaALba +shimkus +DJ88GVM +GuraMati +_vigil +blubwach +am_bani +bladonna +WE7N +coris +Cika4U +chuffbook +pauloo_34 +billabong +nian +methor +james2306 +brazilgihad +justbob +spaceghost +johnny24 +elelxs +djshifty +boshporus +seymourbu +nekronos +twighzone +habs09 +max_girl +rawd +gadr18 +AirForce +dj_ocires +denon0 +jlokito +newsome +eXperimentez +Nokia6020 +koioty +marian}{ +Nicuputa +Tranversal +feoras +ofAcid +folkn +TE}{DORESC +hrwjug +seer_ +phasee|of +davekok +c0lea +Inepe11 +killer-scf +de`ce +DnisBoss` +viper_999 +zagarus_ +SpderMan +ev +viataEUnMeci +rs2 +inityal +gogolie +oe +|GHSTKiLL| +flyirl_a +CalinTAlin +delio +MIKI21 +helm +mephisto +RomPermice +kilhd +ivona +Daviyd`s +`211` +ProstCaProst +Lukee +filipana +LSt435 +Curvistina +znx +conne +CBucaMica +javontay +X-TRAL +meikyu +jenny100 +kentx +amelly +WeLovYou +kaejae +MaZhive +after +ANYYSA_25 +InTine +angel_boy16 +bkhsmx +monkeybwoy +LakeRulz +sad +icekicker +evanesc +nostalgic +lothar +SuSpecTa +jab1 +meldur +gyoza +jaccobo +All +BoxeXX +teklord +Border +steven +zeppatra +Maya_19 +weirdgerl +retro_killa +ando_21 +laxxon +spamnator +Andra_kiss_ +tmansport2000 +carex +RadeMAma +marian52 +bill33 +cx-ganja2 +_hellfsh +shurano +wstormz +xx +SAbina65 +b0000baling +dyanutza +boyrxl +ayanamire +manwarez +naivri +jane_grey +^k-gula^ +ghost1ll +x_wave +snoogans +Pine` +gi +flonnor +BeauSiFumez +Corina22 +mafiota +m4rtin +Eternity +iluade +Groper +lucian40 +Agent700 +killerman +monkeyboy +angstnice +FatiLaba +wbfjfk +frank008 +yonutz_1 +uci10 +hot-sauce +Mrs +freeunix +youngie +FaraActe +Marian-- +eniiss +vffxwc +polpopo +ds2882 +viperserv +Bagged +Babacu +bradybunch +apex\ +crunph +mus|work +tramadol +dakoo +SwordF622 +STRAINUL^ +Sorin_20 +Ddi2004 +g_q +djrave440 +stylle +Laur777 +EstiMarla +Amvocatia +GHaSTe +jynx +reese +dj_ice +chad01 +BaciGround +jpaulk +carnstar +freggl +oep +mrcls +BraiN2Sick +ishtori +kinder_penwick +shiznitsk +evymwt +Peur2Rien +johnson +koroded +vaerchi +mtanu17 +electron` +[-scylla-] +cr3 +dispy +mith +cujovic2 +[tarawa] +rowwdy +bppeyj +culori +goatlord +bw-g14 +Boscalete +johnny-oh +f1re +sL0B0z +I_want_u +raphael_of_silverdale +vidu +IOANA-23 +Accident +Marckus +jd1 +ayahuasca +NCuEl +Crstacee +iNDi +c4thy +LaMaxim +dj_blue +Alina}{buna +SmEcKeRu_ +dan29 +montrose +gamer08 +peety +rialdo1 +cocoliso +IncultFuck +maiu18 +N-amVazut +jerico +styles +momotica +alpha-c +sdn +_h8r +g_ +Soul- +IAnYouu` +rea_sissi +_EL_buc_ +rael0192 +syn4p515 +flashy| +death0r +rarest1 +lmtt +ayana +nielsen +phelan`unsc +dcman +grimace +nickcarts +captainoneeye +i[c]e +sabot99 +loy_20 +Sathanas +imminent +xanomed +Fibanacci +Snoksah +mis_tress +RightSite +ank_21 +CabronCel +bagger- +Blackcock +smashl +dr|moose +`Finish` +FrekyFreky +megaherz +zilly +wiiko +dullindal +jupanu_ghile +andr +RaduSdi +teppoka +FINU-TZU +softimage +sour +z3ld4r +kaply +mwdallas +Crazy-D +amonbish +berti +Gabr1ela +BlackJuck +tsukai +everyone +badboy15 +orgunz +saristar +Flitback +karishma +kaggart +_v2 +bekar +Traiesc +iuly}{16 +RaT`Sa|aD +Smantanel +fancy +bemaniac +PodeleNoi +DevaM +new_jersey_2 +n-nate +spk +hftqsy +lawz +pyratul +eu` +highdefma +pisicutza_14 +EddySan +stuffy +v3rt|g0 +5BereCruda +ProProstie +Edit_ +whyhellonurse +andra35 +voidy +DouaNiceMari +`c`Grapple +SperMoGay +rainfall +det0n +achxqx +booka +maxsy +novocaine +nesmith +barracuda +st00 +suarve +cudi +warpdrive +killeroj +SuntStarteg +tr0gd0r +SpeedOnNet +GIANNA31 +crunch1-c +tigbx +St3liti +smjopg +BOSS-LOVE +Raymonkey +psychedelico +lowwrrider +LeagaNoapte +kitzi +_WILLI_ +N`amimic +nekoalex +coondog +FiSHuLeTz +bw-26330 +BRIGITTE92 +ghiaii +arciam +ab-TrunkS +LiShMoKeT +badaas +violeta}{16 +jdog2 +greengray +g0e +satanuk +Jtc +jell-o-fishi +SaMoareEl +felador6875 +fiorello +mrdj- +Atti +bakedbill +r0byl0v3 +crowd +AsVreaSaBeau +bonita18 +extygsx +BabacuMeu +emil25 +grumpy^dw +grnews +mariusb +sotif +gonygo +BrEac +c0nnaz +florin_22 +knlx +EstiMrla +Dannys +KaKanabis +c3poid|adsl +shodan- +Greekman_ +|chakmon| +mirela_^ +nachobiz +kakaze +gothij +dAniela25 +sdorff +nghtshd +Da`miFoc +mysticlady +Ocotinus +pinch +kn0-wrk +kdvlsg +Kayrahan +RAELIANUL +joka9 +fats +Cosmn_}{ +harlock +norlan +Plafon +norm123 +MaxDesign +great +dross101 +graywolf +Tantzarutz +Timiu29 +dragok +jin666 +emperphis +AmAjunsHome +slimbim22 +arou +nik-ini +nona +lazio +miyavi +Gerogiana} +LUXXOR +Capsunica18 +Pug3d +Ochios`cu +heiko +chalis1 +shocc +chindogg +Am18AniBa +christine19 +flackman +carina_30 +yeahhhhhh +ka|-e| +blackout_ +TeposCuAce +LCulCaR3 +flor^^^^ +jones +ragemage +whitewolf +ovi2007 +Ady19 +trooperny +brock +Brunette +ahhkua +Adutzu19 +fashionM +fluturel +Ahhh`Ahhh +Livuska +SharK_DoG +Slobozila +[lenneth] +roxyyiiii +cristi35_ +gfdgfg +Crobra007 +Lorelai_ +mo +jq-away +ch-a-os +shotcalla +b0ost +Pr0f3t +Skumpyka^ +tyrusb +nadosa +NkeBoy +r0bby +ENemultumit +abrax +chucknorris +Tretas1 +sexy +WoRdUp48 +babybo0m` +your_nick88 +|p-i-m-p| +Alisa21 +h0tten +SnAke|off +geanina35 +g|awa +themint +spew +DeL0233 +^Pook^ +bendovermi +dj-alex +stx-jonnyblaze +fecioara18 +feeble +DiSLoCaTe +zero|away +okvally +FreddyKruger +girl_80 +necli +grave +jackal110 +SExYG1rl +RoMe +AhVreea +nikon +chev-s10 +Aur-Sad` +cs-bo8 +dkphenom +jp80 +belen_19 +iotzun +[hh]-angel +okkijn +Scaraoscki +sakurb +Amparo +digitlman +superbus +jsrus +darck +DJ_EP +BostanMare +sniperkil +Crush +voodoo^ +jaclina +oDali +FacFatza +cheeter +reel- +lonestar +cyrix1 +frida80 +Avafia +odpapd +sexrox +framed +toshi +rle19 +kraizzy_al3x +v +RdsN3t +ella22^^ +goud +dimz +tieuthienvuong +MarusKa +AYAANNA +toquick +LIVIU4U +cat +iomega99 +AParatAudio +JaneDoe +Armani_ +RebelSoul +simms +roasticle +minill +CastroNul +theorem +existenz +ge40watt +fatboy +eightball +alkaline +gamester +slyce +arkanos +drnoguchi +mr_caesar +bigjohn11 +olop +ike +Hxagon` +stefano +rhost +looshlie +dynamo +[hh]-sunshine +LtL +passenger +killerpenguin +refix_awa +psycobust +Fomat_C_D +Ge-or-ge +isobane +evilgeeky +Dau`iDau +apostata +aln1 +RigtCode +ksiaoo +iral +toober +Mniana +Alina14 +a3whut +Nu-miPlacGay +ViiSiu +evilskri +Zico +frackz +lyf +ovidiu_s +joe2112 +Coe^On +ducch +danet57493 +mustokodo +rugged +Duceatza +makaveli +hardstyle|g0d +godspeed +chiaraali +Ca{-_-} +joeyjoejo +patwiic3 +Jffaus3r +martinel}] +FrZ|Deathwolf +d4n +Kelie +Puscariasu +insuline +darkrift +phsyzm1c +C0nn3ct3d +blaz3d +PeterPiper +twe444 +ferho +Scrumiera +TereziShme +scouse_mouse1 +neLLy^^^ +bello03 +Magleala +SuntG +daemonzzz +doru70 +ionut16 +baphomet +skunny +kylerayner +kiosk +GRGE11 +cooms +by23 +vinnie +Ari3l^ +pandaeater +v3-VeNoM +Tocilaru^^ +sauger87 +fizzy +lunatic +pteaSSe +c_rezy +rag5unu +||zabusachan|| +`Micutza` +oneatza +z-95|serv +supakilla +_speedy_ +katze +doom- +shiro^^ +kikr +Adi_05 +d`amour +`ken +quaelgeist +P--M +redevil +ferret-m +sulfuric +bw-x-894 +trava +drnick123 +effa +thewanderer41 +toate +weedbot +fsfsfsfs +naomy16 +sus +kroco-- +dunedude +sp3pp +MamaUndeESTI +gatzu05 +Tiriac1 +habasch +omni69 +`Robert` +map57 +crimsoninferno +OanaLove +SS4U +florin}{ +JailMan +soot +Zase +Sclavenie +hypr +BB83GSI +SpirtfGH +Sp1derMan +sexykelly +lylrrq +djc04 +cdog123 +hugo_boss +DouaNiceMici +fj39gg +parveen +chibi-ryu +talestorm +marvell +Otogon +amigher +cK-Sho|work +uks_huh +{dv8} +billltr +elite-1695 +crack9d +boobo +token45 +ifuckface +memphisto +booboo +Simpatyc +mock1 +unc|steve +mufldq +jaymz2k6 +ossycocot +firedawg +suna +girl^^^ +MuuMeu +girl_18 +skye +NudistaFF +parlyKisS +MuiCuBere +_EnsTein_ +doo_oo +caish +city123 +dennis18 +Inca2 +PodeleVechi +_L_buc_ +jedi +Net-Tech +sav24 +od`east +thugger +nif +Method_M +hotstuf +mercedenza +maxamillz +slasho +asy +[baddie] +od3d99aa +kamui +ciombe32 +delia26 +lauregos +ashuls +HooP1 +dorin}{ +Mtions +GREKOS +apel +D|S-Apoztle +YOYOYO +petriscan +necro_ +bifrost +omblad0n +avari +innovate +fluturas +Adylove +UnLaketeSus +ice +darkensoule +Xase +wlfabc +`FREE_MAN +SuntLider +wiggs_ +jagergurl +korozion +hawat +rpd +budweineken +xtv +nemaritata +lenrager +LoculMeu +socrat-_- +HipHap +ch266 +alex^33 +reloaded_ +Drakusorul +GlfGTIV6 +phoenixnl72 +zappy +gabberworld +wrong_turn +x-men +hoopienona121 +poppo +cmd11214 +DinInima +cad_Rich +sand504 +p_jizzle +enoxy232 +norocel` +Siona19 +fmbvob +ollange +krazzykat +playa6922 +maximumpain +Cosmina}{ +Don`tStop +aeternus +TeLasaPula +ems +acosta +alynus4you +eacabw +yonny +pgz-a[zeon]1 +]-maria-[ +bender_ +`cezar +johny^ +zhengi +bxvfsg +elmerj +Four +admiralj +Pipish0r +zektor +blankie_x +afdsss +tro461 +schmoe +g100m +Tibi46 +KinderBoy +fionaxx +kamami +product_o +anema +CeAducePrm +zagzagal +ShaitAWAY +VandTot +ATA69 +_`Bebel3`_ +apuzilla +MyHeart` +nburles_ +noone4u +angel478 +mumtaz +kh01 +AiAiAIAUII +buddyee +sUGEpULAmEA +williams +GrieriMici +inhid3ochii +gymp +iubytzel +d3wmugg +SaNu-miZici +drumline_ +Gr3u +Esantion +bik +GIANA}{ +swancath +rmura +GuitGuit +umykfk +Andrei28Buc +Line +beowulf` +navix +coolmog +ADY_16_4u +ATB_fann +DontStop +__x_ +tallex +cif +dyne +master_loko +cK-killa +tigroa^^ +ustyoyo +Sa-miZici +cK-insano +ebay +sdfkk +gweedo +shingetsu +Parfum` +sfsfsfs +deadpawn +bobslaede +sorynoo +hays_ +snake}20{ +Eduard```19 +Danut36 +Julia17 +PotiDA +feitingen +|SaD +redhead31 +whumz +pakman +maius_15 +genchi +usmanali +jukapekka +animerocks +vxsamurai +_raxe^ +jmilovemarin +montabon1 +DaBoXaway +s0ldier|a +tigerten +kokujin3desu +Reaper +corgeta +derengel +antonio1 +Adormitu` +guydogg +Sptagon +sk84life +daitengu +Pooty +yiomo +drunk35634 +Vineri +|evo|ved| +larry27m +`pacman +AvMafia +patfnt +FugiCuCercu +MorDeBeat +giovanni_19 +edje +du||de +budye +tekbeats +andreea +Johny^^^ +crstian +Instrumental +PEDatorie +alteran +zefris +bboy +thunderek +quartic +EstModel` +your_nickt +v0id +ki|teSt +Atinge`ma +sealion +celibatar47 +ChinezeChese +exhaulted +carney +ch4v3s +f_i_a83 +hector +pocketsmiley +VandSEminte +camron_ +beartoes- +_djm +cK-unforgiven +rekcusdoo +matben84 +eurox +wiii +FugiCCercu +HaHaHaHaHaHa +kd-sekundhandsmoke +cue_m +ukyo[mt] +web +DePicioare +shogxf +rulox +lue_sail +zestyty +NuCredeam +frica-npiele +Armany20 +SEMIH_M +[x]nwo[x] +stickybud +universalu +InEfect +lightitup +ochi_de_inge +rabbitman +OerSud +_noc +steve +B3 +toktok +MasterHack +lklojv +cynnabunz +ovidiu_^^ +iyogi +lilusa +[minimum] +Jucator +Gio +m|stletoe +archeid +Santasing +cel_dulce +Paticya` +communist +NO_YES +maryan__ +westel +seattle +Mala +Serqiu +Indec69 +bystander +SlashX +aval0n +pu-n-ch +[mx]deathbot +beachbum_ +Odta-N +MISSS2006 +mar1a[] +CRIS18 +varsator +Cincishor +unica +vioreldan +ring0 +rissinite +U-S +arod +freedomx15 +jimmmie +Minos +omnipresence +ghaja +dulcishor +psi5ire12 +alicia16 +stab +RemmberMe +Matinash +sein[rpg] +jt321 +mara30 +raFINat +ayman +LoulMeu +stik +timo__ +senatus +b1oodrose +ke +lubby +fenstr +ediin +Blondina18 +redrum-i +FrodoB +jenag|away +freeweed +kukzz_ +n3rdw0p +Veryored +DaNNyyy- +x10fast +magcld +b0shey +geoe007 +Ice_Wolf +scrachy +DarthTriV +spec-chum +p333pit +boydeboy +simpatiCA29 +jjb^ +Bubu_17 +[waster] +yeahhhhhhh +dnaman +mephistol +jammer +dj4ng0 +blueneon +Divjak +dantarion +[parlitul] +`Scotty` +omul-noptii +spoo +Rugaciunea +LoveYou +woolie +Getuta_39 +cls +cecilc +sorel +neoken +nocatch-23 +upb +casual +bobitusin +jepistons +c0dizzle +bw-15180 +nas +heldragon +teeerex +lep +fuct +remorse_ +VARLAMgryg +macrophage +[jacked]-andrew^ +demir +AngelofDark +zexezx +clibatar47 +d0ncarl0 +suzume +somen00b +roana-_ +d4rkdr4c0 +cyltcd +GIULYA30 +mindrunner +S0pD0g +max_f +a______ +biank_biank2 +Sepulchra +aLaiSmEn +_vali_ +ZeRo4 +gabbermp3137 +C3aFa +delia18 +puyk_n +moraj +BOSSofBOSSES +lospat +dlci\k +aasha97 +Iout`76 +shadow[h] +Patunjelu` +dawookie999999 +miami +centx +dranui +sefy32632 +sollo_ +jg57 +Esntion +ropet +azer +olimpia +AcordeonuMAX +sp4zzj4zz +jochen +|tripleh| +BillBate +to_g +box1961 +Silvius23 +NeBuNNa +casaika +N`amNimic +phosphor +sorinacho +legremlins_keitaro +B3mB3 +wiseshot +wykid +mung +Radeata +PAN-R20 +_crucialx +yirrae +farhann +g-unot +bpm +JoingMorning +viruz +BilaGhiulea +Dorina}{ +Crustacee +dwight +jk +Andreea15 +ReFuZ +sp1nitboy +Bogdan1980 +danielpenna +dragonryder +dulcica3 +ombvyn +hammie +risze +dotterbart +sakuragii +ady25 +carnmode +GraS +kewlj1313 +Snyper711 +Majtika +bbrcbm +reaverb +LimbiuS +yogi_ +PistolDick +compubmw +randal +emma^40 +David29 +nintendo +otheme +bitrot +linuxhow2 +czar +JustPunk +sorina}{ +uau +Cosmin24 +skdsd +EasACumVreau +ryoutarou +Andrew24 +antim +m_d_k +meawreg +jdhogg +big-k|lla +Lavinia}{ +TilicaMIc +RollErCoast +ALEX-BAD +baiat_rau +hel|lpt +asgart +work +apathy` +luma +W-W-W- +cckqkw +Almos` +HopeIess +hyphenated +DEA_RZA +fuf +CadaMurdara +creamofbu +cr1zz +ELEK_TRA +DiaNa_19 +rizon +LoginX +CeMdIS +Cretzanu +IceMan36 +mstation +pe-es-ex +Leonardo` +evolved1 +eiyuu1 +awacks +blazn +P_Window +mykhi +Codruta18 +omm +Snowcross +loy +rutger363 +MARIA-35 +iubaretzull +RueMorgue +BRUNETU23 +ins0mniac +brunet4u +tolbot +strongtaste +isvuci +M04rt34`1 +loblin +warr10r +TuMaPLaci +x-assassin +justmelamer +bunkey +cope^ +Don`tStart +miquel^ +BaiGround +sunt_bun +Andr +tompax +mantul27 +Ca`sMinor +vnhchq +telexicon +Cisdan +fishrox +seijuro78 +gamergary-kun +kwayk_ +clamps +NuMaBate +blondu007 +toshix +horza +dark_mage +big|poppa +odctpg +dinde +firebird +mer-der +bigdb +rateheon +morbido +Big3st +george_bunu +de_obicei_eu +disent +WGeTDrink +hvjikxkx +PeBuneYo +AR-30-MAX +dish|f|1002 +vhatafaku +linkxs +Skcoorpion +dober +Mataare +razvan23 +adelina}{ +ruiner +neLy^^^ +Joaa_Bine +flinttown +nebro +beardlady +fldblw +buzblaze +janos +snow|man +Baga-ti +c1|walle +k`ing` +Ckonte +i`son +pala25 +Cr3ativ3 +ArG[m]xX` +r00t_e +sugmam +directia5 +mikebrant +serra +|s|Slick +whyklef +_mrdewd +karibou +BlakJuck +reelm +alf +The_Boom`AW +NoLmers^ +Lyjea _ +MuJU +TheRauL` +icentziu +darkmoon +mady^^ +CrpMuE +Caut_o_fata +raduga +_pestilen +Borcane +pikupossu +SkyPEX +dread +HagyNr10 +dulcy +NeCasatorit +^madcow +kickinass +twitchy +^kingfat +meezer +coddman +ChanServ +elgreco69 +vasileee +remny +_[toxico]_ +JavraMea +khellendrostheblue +carlitros_ +Tommy^bye^ +sfuller +trev- +redox +k^myzzeri +sludgefaktory +_Where_ +markmc +Achoool +vision +scotts66 +twinkle +ifurite +jesty +donstefano +___enf +tauge +ralluk +Boushor +Eny_ +juninho +trengaru +TaiSiSuge +blaze2326 +modnar +shmacker6 +pgz-a[samjam] +crazy_gyrl +sleeping +Intel +ranma_saotome +bg^b4lls +PetreL}{ +YaYap0 +nss1is300 +plow +[dm] +PijdeFromTc +dman4life +FCPorto +parlitzel +MareSmecher +burncrow +mevunky +uzero +ntr +RememberMe +beladonna +r1 +ovi_xxxl +roomush +MuciCuBere +coleraine1 +enp +danex +D33a}{Love +dana44 +ardya +metalgear +NuMaLasa +Mnt +FreeBNCON +bruja_malapersona +axe-bahia +einar +jobi +bw-kareena-20290 +pipi_in_pat +thadir +Castron +cycler +LUKO39 +sociabil_36 +ClUAn3L +iffyb +fan_elves +DJ__BoX +siris +NokiaMan +bw-w-022 +thalakan +zero12658 +sanjiyan8 +|gff|zz +_dayday +alansmith +Nuut`Nik +CFC|TOBY +b0g2 +your_nick_nick +raff_ +kaprisss +Loentzzo +Mackus +grrox +stinkie +CumplitPl +gueat +ultradevin +luffy_san +NonStoP` +Eurad +HaicuMata +Buyukada +pansa +catindahat +imp4kt +casper +sung +stonerneko +lugi +Ion-Vasile +tamatama +tommie +f00ey- +ea______ +intr-o +nosxifaf_ +Un_Suflet^ +miss|away +hc-duiven +eos +egal +rodrigo}{ +buuuu +therealbob +MrKiller +bobbackwards +arm +Sperminator +orac +indee +cmang +tkilla +enforce +voiceserv +hjmyz9o +edgey +buffman +sinbad +suntzu7 +EL2 +cK-phatman +Labarici +carbs +BeeVeche +kyuuketsuki +femfatale +chuff +nacfan83 +damnir +booburk +vspeeds +BRUNETEL +]hohenheim[ +odoc +fewips +sG|Disco +vumpyra +montee +regm9 +masamunexgp +Mus|CaL +clau28 +ugu +Nutu39 +EstFeroce +q-man` +qglxtu +FaraEchilibr +SamplesMan +daz-_ +ww_ +teffy +mkman +bogdan-s +fi3nd +c4|| +quitel +tya +morphine +appletart +manumanu +roopjm +yatsu +JoLLyRoGr +ade3lina +SOLIDU25 +droleth +LyX_uL +nofear7 +abix +ANDREY``` +ONoapteALba +Rablment +bigdogangel +__WF__ +_max_ +sydous +uecsdf +gambito +tina}{ +Arson +lomus +P_Wndow +chronus +ady28 +Inepe12 +CPL|Chris +Bancomat +kfree +XATRIX_ +rift +jakpgunz +liqwidsky +sepatie +kalve +Universe +LoCYDman +mef +msocorcim +dfg3214 +direkt +cK-crunchtime +donjuan20 +Uiteonitor +mmmbud +TraN3a +Exar +eviltone +CucuClan +Jos_tupeu +[GHoSTKiLL] +mjolnir +IncercAmagit +centuarys +aarsto +SUPER_30 +connect1200 +CrazyBaby +daniel-42 +__s +profmobiu +tuku +R3d_H0t +blackvector564645 +slone +|blaze|dnb| +setuid +nefereti +Z|na rtxtos +Hole +la_conchito +qwerdenker +mp3-passion[1] +neritz +|dozz| +Utzu +StomacIasi +imabearp2 +crocky +MARIO22 +BennyBoy +GII28 +_kai_ +As +dar|{s0ul +serv +aul}}{{ +ShaolinStyle +sojang +dream[idl +C0nstanta +Winblowz +senel +inodebyte +alessandro3 +agato +blob +Triple_X +sorrinel +kid_a +FightHere +whiz +W0LcUp +|quasar| +hinkel +c0ke +Mi-High +khonss +bpredw +UltimuVers +Ai_05 +hammer42 +WCWITHcash +minty19 +auricom +mephistopheles +nadia22 +VaL3nT +nightrave +Delia18 +ism +|flashy| +single-boy +DiscoPary +ndw|-005 +death_syn +ggwilli +ina00 +PulaMeaMare +Steano` +fredr +stress1ner +_Gabriel_ +bunun +alucardx +runik +Heeepaaa +jiznack +Unite` +tomerest +amgxt +kilty +skorchir +a2803 +Antitrus +UnaBunaTare +Simona30 +ryemack51 +SnaTcheR +eu6tu9 +sunhund +sase_sase +rocko234 +Bjumanu +paul_van_dyk +smashmout +MaXmX +tripton +Atige`ma +Dejapula +xrecca +iZ0MBi3 +sayvior +morandi^16 +nutzaaa +Pleasca +shadowfoxx +firm| +msfleis +galindrg +toxin +dipper +elmimo +SiGO +Madalina18 +inchid3ochii +elvira}{ +BeStack3r +AnotherOne +wampatan +asavnh +qtiel +Anubis_2752 +anime_rc +only4u +bigton +elcid +PtTineKKT +vb +xzyx987x +awol +cristiana31 +giggoolo +ckeybf +whizzard +c|auswitz +reb0rn2k3 +stevie-v +DonMautzi +buxter +karima^ +[mycroft] +RoBeRtSS +kaitenv +subx3r0 +gnubee +CeaciTu +R3aLitY +Plan3taSme +ui1 +bartuc +maximilian +MuraturaMica +joseph +twm1010 +SparatCuIQ +K`v3stek +Cordbeanca +BereAcra +_HTN_ +dorian_35 +xistance +ManruIonel +root102 +zhent +[lunar]inuyasha|lives +StrageFace +dquestion +isokana +cylo +Yu +`43` +ih8yuki2 +ABELA} +impatic +s0matic +savaqe +thug`life +hh +Griphin +cbm5 +dozsleep +ah66 +Dollar +_MaDaLiN_ +adira +Limb`nLimba +Fats +ncbmms +st0ner +Ted__ +KR1PTON +COBRA_17 +l`autre +naplion +DURANGO +venny2341 +rukus +Silvers31 +AmanetaToti +kyosuke_date +FulruL +get_alife_u_lame +narcIs^^ +elusiveha +ostel35 +heidi_ +mhoslaw +CuoscTot +CSaVezi +acadien +kILLmEIFuCAN +tac2_ +babyjack +TaLiBaNu +mdnmpv +tim-grid +rajit +xanor +ppyhad +JuSt-BoT +hell_fire +kuzimpimp +mars +paly +faction +Artif +danyel]] +pIZDArEAbUNA +Deepest +Ulti +Ah1Ha +^jigga^ +wtq_ +Phallus +MainOpeRaToR +akia +laur_best +Diana0037 +PATOR +pyhxnt +cocolina28 +|honky +leonel_10 +madxplicit +Nuno +BugsBunn +blazed +Flypea +cdub +birke +archangel928 +ice_break +ruffone +lordicon +patilla_ +alx20 +tica` +dontaskme +Spaclu +nicu43 +Nokia3310 +deadite2 +|Na +platinumj +skuludo +andrewy3k +rust3d +Bushor +maryy +xcypher +SASeIntample +inocent- +nyiix +cowawamp +CeMancam +eternal_logger +show-nuff +DNI_22 +alexandrita +Ic3m4n +lailoken +gilb_arch +SRupIn3 +|x| +crack4lif +puppy +gts +saner +Mor3na +skege_ +eeemu +evanlor +dreamer36 +_Anda +nimni8 +Maddy +khorchirc +c-dog +ILoeDreams +MereBlat +misseru +dh_ +SorLOVE +nuclear +`su` +Sk0rp|a` +MarsKa +empput +A +dorina22 +tird +burpp +mizzzzwoo +roxana23 +SaSauAici +darfuria +mbeta +casmin^^ +Spaniolul +toofan +slogon +yuvie +sinnach +labmonkey +alasha97 +amanta35 +Anaria` +L3gaanT +L_In +iizo +polse +Cornelia}{ +niemoller +PowerBike +mind_mast +negaldo +Casatorit +nilremk +ypsiio +drhelskt +ukueex +ancuta18 +DacaVreau +sukar +orean +ae3lina +ANTRAX_}P{ +w00zy +akbbey +t225 +na0 +rian +kyubi +ralluca +Dulhan +analyzer +mo-trivia +_g-u-not +yoohoo +adz +rickyjac27 +Bastard- +jreally +ovlete +glidarn +chopp3rla +Iulius3 +redtalon +urata}{ +[hh]-shizuka +eensteen +dpd696 +ClOViS +acjson +Colorados +fumanchu +costyx +Banditu_Wien +RADORI +mika- +blarg`awa +Fanica +payne +B38 +REMY-B +the_undertaker +Apph|s +Silvaa30 +earthboun +hikaru +silva25 +Purg3d +MatrixIT` +rhe +|pll| +G0Dzilla +drtx +venerix +takm +bigdog555 +stunty +neomaho +St0N3 +Buk7a +saber-san +UAGANU` +busko +par0d0xe +GupaMica +BatutDate +majamulli +Nickisto + _daissy_ +kirua666 +rockhanso +Dydi2004 +marius_15 +A_ndrei +filter +xta_c|psx +[1]althor +kenny75 +madisa- +GeorgeOO +deidryt +ga23 +tellez +_rebel +|boing| +socold +grfwre +Party`On +pamela^ +wolfey-wr +anura +meiko +locutus +D33bal +op_ +mrsteve +MarianDan +p3rversa_16 +olivia_ +tmprgq +xodus989 +snoop +suckers +disbol +SaNu-MiSpui +MataSuge +OcealBel +kenryoz +`gone +betina1 +derkinhammerhand +`asu` +damien666 +fishbulb +Alina23 +sandalhat +teppen +turbot +metalmikeske +ternuxisssss +primmover +dfgdfff25 +Dj`Tupeistu +psyhigh +baiatu_20 +ezz +mrssyx +lorena_12 +leetr +Andrei37Buc +vrimmel +ovrdrive +Eliza21 +briareos +ancyk +[a-s]anime-supreme +belik +lucifer00 +azf +jimbooboo +Oan4U +ranthor +latharn +sniperawy +FemaleMale +semmel +nyko_2 +Madfaca +CuRolex +Yazzmina}P{ +blondutzza +Tib46 +sef +tranquiloco +cniaxp +Alberto^ +sosero +h8lipper2 +Basana +sarutot33 +beast +ab-mess1ah +radr +fotbalistull +Cucuic +liger0 +thai +|voice|help +zerolayer +sandhill +ic3r +ramo +darkunder +lucky13 +mrlexo +rulle +natik +d0pest +Razvy^^ +PANDU19 +noasd +lds +zeb +TuPlangi +id +iykclq +AlDraquLui +mephitic +joeyj23 +BRATES +duddel +Elyy Geo_1 +anubis169 +frozensoul +ohny24 +plqyvm +rosslin +namo_bsp +zana}{ +def- +|072| +bag +invader_zim +Stbilopod +gring0 +Caps-Lock +eded +zdf +TIMI +cosssmin +pilsbury +sizz +[mOTHer] +paragas +app0lly0n +paulinno +oxa +amona +[kd]npin3dii +stormtrac +Solidboy_ +aacks +brun3tu_16 +pir8 +cadilac +timeeea +PINTILIE` +krete77 +^suzie^ +Level6 +br4staru +mo`bnc +labeep +MavrikBlue +ssjraider +`124` +fatb0y +MamaiaTigan +SubLimba +iulie31 +DISCRET30 +Amor4u +jaydawg +wolf +dre +Trace +radaubruder +hazkal +paspimp +Precista +York4you +aida_s40 +CopilNevinov +UnZambetUr +fuul +bw-t-164 +cucopasurin +ZzZz^Dorm +tree +faster` +AlphaDude +palySan +frumos-foc +Surce +guruchee +yjnxat +niktza +gurr +propssi_ +am30Kg +thee +ANDA6 +chuchilin +wiwing +Timi22 +ellymay +StiuS_Isk +deaftly` +fr3shjiv3 +DouaNice +zip- +jayzino +Lastloser +jdane +konflict +gru^^ +scufita +Staiulcat +johnnygig +adamjw55 +serajadeyn +dorasti +xanth +ninjaduck +krakn +me1 +`Gaby +humpa +Corina19 +obake-san +mcaddit +iX-eupy +anda_20 +GSandwich +lmephisto +waffler +thetab +ronie8 +fredlabos +Adancata +dan31- +cdnlady +N0B00DY +insuratu +^DOLCE^^ +Injectai +Dnnys +legendaryphoenix +gyvany-26- +_spintje +dragutuu +ihiturmom +astrouu +budman424 +auibdt +james123 +_iatra_ +beast899 +timmmmyp +bhase` +bec +floydpink +bra_dulc +IN564 +dras +Roxanna31 +dnlefs +whonicca +Muculitza +def00 +bratty +wkl +|hoorolo| +joshrox +_polo +xhEke +mp3fend +vqjexh +allina^ +[a-s]onegai +ziller|jo +parly}{ +Rkoots +Tuplangieura +}{monica\\ +hulk +bond +Dj04 +PokPokePok +GodChambe +masterciucs +vbrox +am|go +bw-w-193 +spill +tier4 +joe-joe +ganjadude +jeness +|machine| +oke +rue +cezar41 +llanerobo +DacaVre +|cloud| +big_black +w3c0m3 +ringlord +PeesQuad +pras- +gerd78 +king-arth +ganda|f +catalino1 +ish|nap +adrey18 +strangedo +megatron +cypher__ +currystik +sunain +gooeymonster +outlawlain +iluvit +meta95 +InCoaie +Hol +G-Away +crillic +brg +Ta30XI +usedone +tnse +SiEVreau +c|utchc|utch +ormu +forty +nckrpro +crunkmcge +wandering +hexen^ +nxbbfc +Tataicu +NoapteAmor +connor^afk +darkrose +tfgknq +Fantela +minorx +DA_RZA +butcher07 +pishpiricata +ReSpE[T +tengils +bigddad +l_join +cami37 +conwon +gatorsuf +veryoStyle +sid-- +TreiBuciStangi +fu4y +jor +DoNoSpeak` +efx +techguru +georgiana}{ +kkkk135 +ucadne +AM-Athlon +hadji +AnGeL34 +VeziInstrada +leadfoot3 +ashteck +GataMaLake +opiumjoe +varsha +annellise +La-sMeN}{ +CasuntEu +SanatosTun +Its +ilikesleep +karlina +mk35805 +hertyasg +noname12 +phoenix21 +joedevola +hansrolo +gumbydammit +Atlntic +d3viant +BluEyes_Seb +jonno +pkvykd +slez +usa4ever +BORSACI +rivs +ady-blade +phatkatt +djmng +cumsanu +cegy +miauz +in +DSCRET30 +blahla +ra3 +jaine23 +uhu^away +uniken +osan_38 +neowin +`pure +ghostkillHk +LoulTau +ECurios +wojtek +hsdjfhsdk +chevy +vanhimura +miraa +[Iubitzelu] +KLAU +efjgfj +fantasy +armsmegee +parazitu-s +issgtto +sbsp +jimmy_68` +thepeon +marrya_17 +genginkan +Nor0cel +dark-away +quiz0ne +SefuSefilor +zoneman +tuna +undertaker03 +BeastUs +SeN0vici +pussycat15 +fv +aclonedsh +samir^^ +straysinner7511 +moondawn +f1re_ +terrorshocked +ikkari +Raitza +adiutz +PuiiMei +cristian29 +pitycool +Malandro +Amor-Amor +insanerp +mr_sako +dejeana +euan +pesp +reyland +jdoe69 +MelomanRtT +nemi42 +DizZyMan +tw33ts +dafc +laura_tm +CorinaC +xxBNxx +mockelock +julianlivre +chipper +fibes +gfghfgf +roofie +pgz-a[ssf] +Sagrath +divya +JolyJoker +johngloer +syphonc4 +petenorth +noorotic +heartada +KakaoDulce +cynthia_1 +Teoora +Punk-matt +menschenfleisch +loto +qwbswd +lalapo +laanat +aurel_38ani +BatzI_ +ROMANTICUL_F +PureEVIL +BraVVa +intheoven +d00d4h +[2O4] +spot|2k5 +Bluepple +oibbuu +AlinR|chMond +baka72 +lidia30 +IaraLaCta +tru`` +jorgit0 +brezelbaecker +leo +quadforce +_J +fearless +_ivc +feos_culiao +jdb_trane +mb +Amabil36 +radeon +[ddb]zypher +talida}{ +burndog +bw-x-400 +tomessel +WeSoul +b_loc1 +InShifon +Stropinel +marian31 +i4x0rkncd +breached +`judas +[2O6] +parnic +wckdclwnz +Marius17 +xxabsentx +baka-kun +t-2 +xxxlord4 +coCoLiNNa +vt100 +dedicatzie +moon +sepoui +cool_84_buddy +jajaje +solex +shir +EuLCta +dns- +rackboy +DonSemak +TYGANU_UK +simwind +vrjitoru +saddog +Musculite +akakage +candi +yezo +s0rin +pea +trance_718 +carrschm +TeK009 +etapien +wemtestenf +neoyori +Faina +average_j +fiftykps +paly}{ +syphon +hsdjfhsdkj +hobbe5 +mav3000 +Ceam +[deton8r] +russw +ela01 +OMEGAAFTE +druha +RAADU +cnu +grinched +guapo20 +cosmin16 +Cisti_30 +takako +narak +MormantL +stewxqq +spiderz22 +damedame^_^ +abelalot +Voctikal +hcuqnb +[hh]-jagobah +ofrfje +tger +blaehblae +cioara_17 +kdolo +m4x|bnc +playmaker +OLYVYA Ec +|damage| +`One4Ever` +marduk +cca`c0la` +MeRt +lostcom +meBuze +m-wave +darkstar04 +Pan`Lanoapte +harakeeree +reg_nm727 +crow +djrfrn +sAMaIeicoX +daddy_Jhon +eternal_x +pt-141 +ikkyu +sigur{} +zym63 +Davideni +ToataViata +silent +sHrooMsaLoT +jkuang +t0tgiglz +nyzer +jubo +MikeTaison +fallchild +wallin +fenixnr +lrdviking +pgz-a[pred25] +amVazutAzi +mercer5 +Ssensey +Shpaclu +|ncognito +MIU_19 +helius +markw +kaffee +wsmejo +choc +camilo_32 +Joi +paul35 +Mc_maniacK20 +zeppelin +TreiSntem +^IONUTZu_20 +LeiGrei +Rige +ddiim +bloodforge +holla232 +doofus +nighttime +lochke8846 +sorina_creat +ezerez +CorectO +ic|alpha +JustRid +openfly +libera +blondy23 +c1|roxy +leathface +palamida +W1nd0w` +dryo +[2OO4] +raven +spirre\ +big_mitch +n0`nlck`` +mbsm00th +sebatm +virgil +dragutyka +Zambara_ +ghostofph +CeuscaMare +gott|bot +peros22 +cata_boss +sean_connery +alyn_17 +dark_pr1nce +hopeless_ +Trinity` +DontStart +boy^s +saikou +g_planet +catweazle +John- +lopo +gzluis[w] +orlando39 +PaulaKiss +Pinochi0 +alcoholiko +Vartan +mastdesi +juic +Lau +[killer] +darzu +phest +|stefys| +`28` +florina_^ +dariana +shamisen +^^DOLCE^^ +Big}{Love +my_nick +Laurentiu21_ +lsiejmfne +maya17 +bnutz8 +Mont +bvxwkw +steve641 +jinksed +hooba +vyzy +c19 +ROBERT27 +mizuhikari +myx +PeSPateAA +CoSy_T +ugglabuff +camisoru +puc-man +Dcagon +bourpi +yojimbo +ego +m0m0_ +CIBRI +criti35_ +PaPuShIcA +gecko +Kerni +mercenarul +batman__ +grumpie +supergeek +|Ka-Tu| +yr0gerg- +scarpa +FutPizda +bw-w-204 +inv_arp[w +soothing +[saga] +_Alexio_ +spewn +captainjack +ghiqvm +sephi` +BucaFaraCur +Play-Games +nutu_dtech +cristana +claudiu`skr1 +trace +lunar +EL_LoCO2 +semowii +tony_star +PreaMare +eL_In +ypntnm +Xzer +m0et +SMoara +GolfGTIV6 +scenic +nosnum_ +johnny-o +n0g0al +haily +mattes +loy200 +omniprese +wako +VALy}{}{ +DacaStiiTu +SUPUSULTAU +sm3k_69 +rickyc +ant2ny +elzorro +Fienetti +Stabilopod +maskaltoni +aouenche +admirarch +natimus_prime +SlayerJAyZ +elfish +baiat_sexyyy +LaStUnEl +fonfinela +_keksi +InaCateva +Flour^ +asdfgtrewq +tenike1 +Groer +DouaiceMari +flr^^^^ +hardada +optimus +mosaic +bonilla +MoldvaCity +Snooperr +ljethf +oxy14 +GLORYA-39 +AH|LuC|ZzZzz +moby +spooki3 +PipisoR__22 +CrazyFrogy +genina35 +ywfuqu +molina_360 +shini +emcom17 +DOGGY +mihaibv +arshsaher +dumbopoo +bobobo +_coldice +Burn_Lady +unknown75 +heera2020 +^^cristian^^ +merlin3 +jepeace279 +Chirlovici +vpekdi +socialism +molari +rinian +mosb3rg +Cuochii +gandorach +trey +qwell +bokbok +RoBeRtO}{ +Anda12 +whybother +grausam +BooGy +harksaw +openup +allister9 +stilgar +YeYeR00 +MIE_43 +houe_19 +vrt +RadeMasa +lonestarr +darkwyvern55 +navik +baiat_fin +blow-man +vissione +mbb +enygmatyc +geertn`offline +ady_tuning20 +kbobh +pennypack +alienwatcher +Gigollo^d +hulp +muekis +shiver +tonjevic +kodadac +j-b +AntipaticVV +Tentant +y8k5x8t7r +prx +food^afk +Kaiz3r +{ady} +nostrom0 +MaSimtBun +ktxhgh +ghost23012 +GloriaBuzau +krazydawg +stefsHk +Lun4tic +shieli +secrox +fewiufbw +rock-box +GITANNA31 +sara_tancredi +drconway +_faild_sn +HaLaEl +MergeBlat +cirk +innovative +bobserunk +blonda16 +thekidd +EnergyWave +weazel77 +jayded +woyou8 +oana__ +PaRaD0x- +razan23 +DarNimeni +noquieromarzo +B1rk`ZzZzZ +t-bone +dbe- +baneserve +intimidate +blario +mhai1975 +jefrey +MSters +kiwiz0rzz +[zod] +m1rk +kinggeorge +|shadow| +lexus- +plan_b +pjsucg +Bianca}{ +marian^^^17 +solidius +psycho2k5 +shanlar +danet44499 +psxcare +M4DY +nutza28 +guocsc +unexplain +ctrlc +angelis +njoenka +lior +gkowmx +Douaice +c1|nodame +dario +Martinash +gryphon +BaNua +trega +[lunar]iris +seark +p1mp +reyes9 +sdmf_ +OilRig +sithmaster +mihaela1980 +daanii_tt +ilton_1 +chicken +hebretto +rhetoric +ferdii +tomber +cl0ne +drozz +OzY` +tv-sp-14 +`Hotul`Tau +vkddqs +a-pex +raezor +OutO +Nka}{ +invis +SaseSpte +nestor +GamersToy +bad +wedge +SCMPI-K +rvd +Siciul +jimer +cancioc +hoxsrul +S` +doru30 +MembruMisa +Mistke` +bigben7 +_Luca +Maniana +NiciUnMister +yonut1 +mihai-05 +lobo +spacebear +rpedro +vipp +Piggy +da34 +Vreahotzi +lutte +i124q +Csmn_}{ +Bonjasky +tascagao +MainiMurdare +reb` +emptysoul +Am1AniBa +saidin15 +Meulet +Nuinti +trhrt +LimbaRomana +cuervo +Para +kurthis +shastar +techkmr +Cearcane +DjFrekar +funkyircmonkey30 +lala66 +Acid +szymek +freakyyzi +Anness +waterman +greeneyes +miciu +DanZicoBun +IVIaximus +redfairy +alcahest +PasCUPas +jeff13148 +carcypher +cruglow +jstmelamer +mp3addict +Kath3rin^ +alxxx +rams2 +nek_ +vfqxkl +nivz +devoa +Nina_36 +sunlord +deesh +mrclaw +peer +jamiegump +poonam +fersdred +andrew` +Grasutzz +Ad3arat +ineea^ +Astral13 +tobbez +dilaila4u +roxy^_^ +zero80472 +jerry +sjk +fishcake +CuTine +Lorenna} +dravicx +dkjdjlk +pi31416 +Eagan +SORINEL12 +guyute +cry +Cin`eCrede +GupaMare +dolcedfa +Vreau`sa`te +bibilica +Handel +rad_ed +xlt_lohan +dallas02 +cyg0r3 +metal_bit +xxxg-00w0 +Casserola +txarly_lpr +nocturn +rthdz391 +dacomp89 +rizzi +mironositza +king_arthur +steffyx +slot12 +waysted +ILovEuro +DaNuTz342 +StrackDown +dubc +smurfette +estfja +dadi35 +ahq[delusion] +danna +ldv-trdtc +DyodE5 +dest|afk +hairy_testicles +bulCaDnI +pisic +markos2006 +firehawk +rftlam +memory2 +nox` +digit +sim^ +SuperHuman +Cronic1313 +ermura +johnyboy +ncorator +donaldo +aldante_fax +vegar +snubber +MurDoc +sov\et +mailman5111 +algerhiss +FcTecpu +bond31 +Salvad +forge +iph603413 +Sereno +Budashaka +zarya +vibez0r +dlsmsr +rde +seste +country +blechbeen2 +yulik +peachy +LaStoLuatiYo +Tryax +toperyii +qsi-r0x +Dragos_27 +asasiuxxl +DeLa0233 +sudndeath +Pateu +prence +UscatuF +ROBERT_36 +nouse +ton +scubacow +abhinaya +andreas30 +Dana}{ +wmebu +LooZaUr +|GHoSTKiLL| +orbeiron +TaciSiSuge +ahq[newreleases] +narlzac85 +sugarqube +ndkasj +avalanche +GOLDWIN +Geamanu +danel-42 +BaiT_DulcE +_evil_ +cush +mguhlj +Perodava +slacker +falco64 +gow117 +Si`sajor +ram0na^^] +MaMaiIubi +^ecm^ +Late +dsaf +saitoh_san +maxwellsafkish +Nicoleta}{ +eull +icetoad +crystyy +bigchad +devmap_ +jaumen +wraithr0x +corrupt +BenCode- +SaBeiApa +oldpescaru +[dark] +DRN-USA +ciachi18 +georgy +irsaman +alvin +eonwe +lacosta +Mariana}{ +ASaTraim +bw-w-232 +RademNoi +kapy^ +gost32156 +vermin +Degeneratie +Iwet4Times +billysonz +Ibraimovici +soltero1 +Reekee +mat79d +mookdawg +tra5unu +clementine +ROHACKER +helsangel +distrough +bobserunkle +mrmidi +sssbjt +bluzzeh +ts_|zzz +TheFonze +xorcist +rednax +angelo^^^ +belle-serv +marie07c +kllklk r6 +falcon +hbhycd +DamiFoc +TotHotzii +bobofet +AMOROSUL +twisterf500 +birdboy50 +Xaser +dunkin +nightdriv +DePcioare +betrayed +milez +triniboy +snakeoil +squall_019 +ratacitu42 +bluliquid +steelcruiser +GRASUNA +raveena +jigawatt +Alin2}{ +gholt1 +DY_2004 +ando39 +blazd +TheOne +ScriptUse +roz_alina +dickle +stopherjj +TeVoiIubi` +roadapple +aansmith +kado +dana18 +obra^` +DuhuPulii +ohsix +doc12 +kenoki +lklklk +AnG +Mag|c|anu +Zdreantzo +AmspusCaBem +oty +evabless +elena_09 +O`Lacrima +max2000com +bucFL +Octogon +sw2222 +ranley +nick0r +stfmgf +ingo +cyclonus +{Chello} +Al +geeb +SAM` +ghgfjgg +ernesto +karya +You +Lady- +sakamoto +copycatken +nomazda +krystal^` +ZeduSkA +shaft747 +GFG +gearhead +felix_28 +Z000M +FibraNet +giuSsepe +enriched +Hootz +colgu +Necro|ZzZ +CearlanEsti +odyu +DCC-G3t +netsec +Und3rn3t-GSP +ionela07 +mychan +ParazitiiTa +conc +onebyside +dustmaker +fonzie +NMaiVbWaa +silversrt +RadeMata +DjLethal +^|ce9^GuArD +aymeee +broom7777 +_Were_ +stress4li +xclusive +drsyn +fufy48 +ital +sammyjaso1 +^fruelu^ +seattlegr +cableguy6 +kyozoku +latino_ +LveMe +drunker +scratchth +sat +vaelen +Dariuss +QwerttySuck +mikeiisii +0l0va +Visolo_^ +Lasr +MucK}{ +Seby` +b153 +Brun3ta18 +kyky +dubious +[rick] +xmg- +digriz +__-Liviu21-_ +sjefen6 +mutethis +wrx +woop +SpeedoO +FucBelea +_thenop +peach44 +WrongSite +_oke_ +orcus +efnetr0x +espenfjo +dece +bw-s-3410 +mariius25 +ppp +ismell +Laser +typo +mofo-spectra +jony^ +Cipri^23^ +PreaMulteZil +usererr0r +romany +Asral13 +BaniiMei +dindiny +usgqlk +hidalo +DouaiceMici +ba39 +cnile +sefy53234 +sshin +vamphuntd +came +maxster +xsickboyx +Amanu +SeleCTR +broxi +Mond` +m4trxs3rv +ebcexp +myrela_sport +quato +dickfore +amDescoperit +ryuujin +emuLynx +ahq[gsd] +gefvfs +QuitFlood +K-OS +bueta1 +triStutz +fluffy07 +cobra2 +niner4eve +djhood +sc0tt +balistyx +betayanke +SYYN +meanolthi +jpegbr +actiuneamea +Mamia87 +gobbla +shad0w911 +nbynlp +jsomebody +maryo_22 +mlhj +takelbarry +sorcetreb +r1c +loveisafa +^renzor^ +kl0wn +singur{} +nk +DeGreU +maturo +devsbot +Nimda +animemaster2 +heraldo +grooblle +onyx` +kagemaru +fobgrvt +Bad_Gril +Gynno_ +fred +ubyta_ta +schbleh +combustion +dudleyp +fluid +piercing +aL1n +mjcchelt +wavex +dcvcd[xdcc] +poium +nadia[] +yd +inphyy +Elize29 +Inca1a +dragonrage +cigsmokem +ivoatwork +mecherul^ +Gina69 +huih +leha +marla +jvg9 +VulturBecali +badsheepy +ReGiunea +lecris +sabileta +BigMiju +Cattalin` +archdevil +Dana20 +DirrtyGRL +dorina18 +mare6 +wolfy2007 +arabboy +matko +NikDeCapra +porkister +PrindeMusca +elrik71 +jewsbay +iulia34 +spac_ship +b1gf00t +inftech +w0rmy +fur_f3t3 +kchufi +oana77 +re^3 +ishitori +xena}{ +vlad_mondial +scano +activator +n0s +psyfer +catalinax +technodrone +pulseentertainment +v0id` +cardinal +flash0r +d0ggie +jackspra +Arde`o +boots +NoFerMe +qwvtde +nickghy +flipboy171 +budman4248 +tropick +DaZicoBun +f_ia83 +nderdog +milez +duckyz +canogoo +ZamolxE__ +Arrange +Ghivole +shadowdarken +tiedup +dragutzu][ +can-38 +babyface +xebreus +cdubb2000 +Caprita19 +unomystez +krynny +nik +MeepMeep +parallax +darkclaw +Inca00 +qup +Claudiu20 +crockyy +Speed +|gamester +gfyf +z3us +Adrian25 +mii}19{- +erado +topery +vdspqc +Pak001 +Elena17 +W--W- +DouaSute +alkofj +superba22`aw +cimenu +Maria18 +p4t4r +YEYEYE +suprenant +PachaOm +eyer|ng +CuCucuuu +ronald +skorpion69 +zclone +GIOV +non4me +fryta +wishwell1 +A-L-E-X +cuttlefsh +invisable +firecore2 +hjiko +zhinos +bee_vyolette +kranix +reika +marian30 +NetSpliter +dtiwcx +deltop +UnaketeJos +Sandra21 +nehirrr +dragon_fist +AGeL34 +kiopa +tonyy__boyy +Mitza34 +TePneDreq +detro|t +emanym +pette +cemesw +logger` +fcuk-- +Silvia30 +bowwow +m4tum4l +ImiPlaBerile +type0 +Cristina}{ +[bakaa] +silviu_17 +PolitieMim +IesAfarOBere +takuya +pdfgjsou-0` +insanedesio +walking +mahsat-pn +Ranll^ +Blondu29 +peterpetr +MreueVrajea +Trey +samy +SistematicGs +pyro[away] +amrita +rekha +urgleflog +fastcar +toomanystars +NeoronuFuge +resi +dslg0d +anto +Miercuri +woodie1 +Mutu10 +rdu81 +GooK42 +Amitirile +iwkxmc +BuZdUgAnBank +ksus +AtaK +gigoo19 +shiki|roa +ANTONlO +Bastty- +kicknbot +OchiMagic +sophia25 +acetlbbs +mrho +mecerul^ +DinSantier +alladus +znine +l2r-0000 +_sly567 +sporn +V3SaTa +pooka +the-pred +Clipa +bmwm5` +Incepe11 +TreePhase +Grmanla +kcmeat +systimsc +R_J +acrobat +phongie +muta +Vaser +borky +Loredana29 +tinker +kris- +Maxi75 +intro +specialgroove +vernvern +mamta +brainy666 +theforceofevil +erosspania +tantar +necrocis +anime-mx +greddy11 +Curvaru55 +Ir8Pir8 +HaiCuTata +nightstar +jzu +kick_me +Garantie_ +acid_x +testscript +pheco +darksidex +Sn00pD0g +ananias +saorren +tabu +Ointrebare +eXilEr +TepisCuBolta +davoreus +meowww +bogbog +sL00z +rebecca37 +avdeni +julia17}{ +rado471 +BlooD +Bludshed +dark_ +daconnect +h3llspawn +kep0ne +fsdfd +craxhed +tranceffect +maf|0ata1 +paic +calculus +hank +DC-G3t +lofox +mx80 +po6ot +un4givn1 +gicca +ro1f +easypwn +wtfbrb +OveiPeEa +diggler +TeBat +TOTTO +hcbwak +be4be_mick +druggy- +walter6736 +pacmanp +alkjdslfadskjfi +Sarlett_ +mook +xender\ +PuKu +ysntlj +excellion +corbeee +Chiprian +mattyates +BaniMulti +Outside +Cristiana}{ +GenoiusFu +rjn +Ursu_XxL +skamwedge +_dory +shibby-sh +M0ld0va +ingerul23 +j_hunng +Storm +crash2bur +frezz +BarbatBine35 +imhotep22 +tommyto +sperrboy +LoveZone +surfer +ivi41 +NuAChef` +reddevil` +Dorina16 +bluesbreaker +u204 +aardvarq +leechandseed +Meditoare +Silvya +kradd +Gaurita +dhr +cibokiri +mihai}{ +KeepsAke +leginag|away +jaiden0 +krysy +bobbyt +MijMaj +maxtor_ +jhjhj +``Alin`` +m|ke +edea +M|l|0n +Kermie +apple +rebela17 +herbz420 +thyatis +CrAzY^b3 +jaask_ +louisloui +PalmaCoaie +john2135 +Fur +miagi +mr-shadow +stealth84 +thatguy +SirDeath` +dillema +salep +tiburon_s +Paparazzi +Dr-D_R_E +CaSaVezi +GyGy-Sef +Dilly_Boy_ +maria50 +Lolec +Pigy +0NullNada +WolWonela +bigdizzle2k6 +bau|bau +darkhalf_ +leekwen +QutEOF +MarsJsZ +alex222 +Dj004 +ratbastid +euclids +TeVoIubi` +ecnjui +utu19 +_d_n_s_ +caster420 +ritzcrack +kurizu +KeepMeAway +hellfir3 +thetiger +fr_f3t3 +amunFicat +BALAN18 +MijuMare +steffan +Aalicia +bazilgihad +silvard +jupan +inhoc +FaaBeleaa +mieko +bad_speedy +SoonFuck +Gerogiana15 +nhamokid +msgmenot +[bw]-3277 +|kat| +jnybcw +dublin +roberttt +_null_ +Topodel` +Prcista +w00dst4h +Alin`_ +Amail36 +rubencillo1985 +luian40 +worlds-server +moldo23 +_evrready +grace^ +[kd]-fhe +coco^^-- +shinobu +kidcamaro +Smntanel +fg_hurz +iq`havok +butt +kvewew +davio +imp_jeep +matchpass +wizerd +bigbanga +islenamed +denisa28 +nebby +P33sQuad +[eul0gy] +ashKille +edy99 +jalina +rdw519 +gamera +Roberto-it +alnta +lustrox +myspace +yelik +haruhilove +coanda +mustard- +keltic +mrclean +kose +cloudff7aus +DJohnny +meddler +ngomanh +Ochitai +yubityka +rzvan24 +bambeys +kilum +paulyy +overtime +shikaru +bubba^ +luis69 +GoSTo +DogFood[SERV] +spyguy +paddingto +zellcorp +NaturaB|ue +univbee +Amusmani +cajuncook +Freakall +sir_nixon +tunkeo +VreiDa +jaille +As3sInA +emin3m4me +oGuBlon +heretic`` +beefboy +donkeyboy +flozz +singur_34 +LoculNostru +bobby--- +pcpreal +MyastDream +ivy +fdghf +timberlakeland +webber +MineralaAQ +blade +eadffk +Ca`sinor +nela26 +Diana19 +marltu +chojin +Hug0Boss +_txt +oniky +Mike_USA +ion-ion +a0sle +shortflip +bardan +Okahy +Inca1na +SSE4U +Trade +jsz +worlock +rino2 +zmastaa +Romyo26 +Credema +IULIAAA +Yo`Ne}B{un` +coolgate +^renzo189 +jcserv +rage_ +Ministry +du|de +Ce`iCuTine +sake_san +otttta +xer-ces +astrial +krackula +Nev +swamp_bv +mitsumada +ubeLine +havoc[uk] +nosnum +quincef +luigy +Nasri +Rugciunea +AN-R20 +devinfo +blondutza_A +pau|a40 +r`trotsky2 +vitalogy +xbx360 +kingpine +orakle +hasm +angelleo +pika +ice_ngel +^Fire_Wol +conflict +teamer1 +M3GaLiTH +donkeykong +Diaspora +diablo|impact +DouaTzatze +neta3 +ALEKSYA +gotripped +Greuu +fyrenth +kps +asdfg +Adi- +akabouch +ysowyv +intrin[a] +vivawii +barbotte +stfan27 +tnm_anime +kghljl +Okammaux +a23 +boydeoy +KTM21 +CE-miLuminez +UmeBuze +rainbowvalentine +ThreePhase +SouL-Cr][s][s +ls- +sdadsa +keops +Skuzthump +dighhb +cK-novmode +jcxp +eth5 +IDOLUL-17 +xender^ +gotaids +d-_-b +bltrmr +chad +suzumiya +evilrad +kyoni +crackers +|CHIP +slackersconvention +laura32 +NfSUnder2 +AnusParos +lt +suckergone +InelMaro +|doogie| +samuraixmas +adi_1 +cosmina}{ +ZHOPA +mine +agassiz +catalina}{ +noidoigoi +Tamara^^ +randoman +dansushi +corina33^^ +punkdog +Stefania15 +scribble +mar27ius +murdock23 +musicjunky123 +ScoTy^ +irgendwer +temu` +rahul +ubajas +CikyBoss +ela44s +acdc +slixxxz +no1here +bored21 +Gilll90 +vvviper|a +petwi +procrast +Capra3Iezi +my_dik +SMaiVin +Cernnat +old_thing +soe +Bagabond +Gizmoo +cwarriorx +mato45 +b0ris +eggsalad +badwolf +rkenshin +dj-kicker +blaaahzy +gmunky +eqrqep +figjam +bay +herc` +kwazie +z +zefy +ndri_17 +wolfwood_ +apoct +c1r +sevenheaven +`v3r3sT +sadik +PrimaLectie +arcadian_ +J3ffMaus3r +b-a|voicebot +cresusjcm +oltaj^^ +lazzzzy +Pamy_love +Maia69 +orange-kun +NuGlmiMANene +nG +Pli3sti +Rbert`` +UndeMi`e +h2 +DeeLaEi +chris--| +hoffman +karitx +Two +Jobi-Joba +NonStopFuck +`unu +DIREKTORUL +FratiiNegri +Edt_ +erley +Chicken^ +chrysty +hc1 +AshVreea +alexnetc08 +Nutzu39 +jhova +wzx132kjq +sublimer- +blazin +julius +suomies +aslex +OveziPeEa +addryann +meulet +Cd-RW-F +Toarnaziua +c0ca`c0la` +TurdFerge +Sabotage +FraieriiNuP +fools +godzmod +pyredruid +Remy +faskill +Valy26}{ +halfevil333 +PlantaSme +otakuman69 +phoenix20 +DuaF3t3 +nemteni +jdog1 +lorenzo69 +poring123 +crwl +bwn-unbeatable +Galxy +saso +donken +NiciOFemeie +CasCas55 +Gio99 +yazook +klipk12 +RoxaniKa +nellievil +zilcho +sethh +motoko_kusanagi +Furnicutza3 +Dautzica +ALIN_22 +darkkness +SamorYo +LUCASS +Jenia19 +banks99 +smalahove +Orbital_2 +DoiPlusUnu +heat +Livmorsup +kotae +stefan +mafia4 +b3rlo_}{ +nuii +pcintel +domesticbeer +Alex23BUC +iceis +freddy +SeNTiM +uedrai +IrSDA +aff|n|ty +epedemic +kakyo^kun +mtdew +snstan +Zambilica +LumeaMea +GIGI28 +twihzone +the_dude +M-A-R-Y-U-S- +linus2 +LasPeMine +morri +ncspecv81 +sillytaru +BereVeche +telemacus +jdsdzyn +pretsam +ranpha +pytyku +andr33a37 +dread2 +drkickass +kebsood +duc +Adelina18}{ +qkbrqi +BuZauLe +vad +mirona +jeckx2 +punjabmc +garageman +swizz +X-1 +hozkinz +JeaN +arkrose +elbridge +roxy_tm +Sandy_Bell^ +BeeAcra +dragutuuu +radbunny +my_seelf +lordaoshi +raul-23 +cachero +Dracull +c_stone +real-ity +hakudoshi0 +gwanum +GrasaMare +bak +Copos +SINCERU +inDOGnito +pukey +xptraid +rirora +tw|ster +motivado +Rooney2006 +r0n1n +eni^ +qtvofm +Pop +|4|muiy +patchbot +redfox +fat-a +vicec +blasting +roxi}{ +moesbie +agent008 +carino +StrtFrom0 +Chimaira +casusby +Unierse +defiantn +TakeGang +steferoo +X__Man +StaiCaTRag +gerd +azn_chopstix_00 +kagula_ +mesrines +_hexer_ +our_nick +TecuciTeam +|4|pk` +Tzazemari +Goshpy +HoT_4_U +ddrag +blankwall +tu0rika +TrIpLu_xXx_ +zero12 +_Marlboro +owlie +deadcode +A|_Capone +AmTreiMuci +flyboyjto +JuSD0IT` +smechera}{ +bellrox +sha-nuh +singureel +xreal`z +Fleasca +ret +YUMY +yurekarules +zi_e_zi +zIPo +bankai +immelmann +conscience +LeafBreak +viscid +Alcol +Mafia69 +vftjsa +RadioBz +a-Activ +fdh +TePuCuMine +CluJL +b-a|tachikoma +widow +glock17 +IAL40 +tobrienne +jj|bot +contergan +dvywph +kenn +Tot`GHoST +|SOB| +renholder +robe +bh3____ +Viper007 +NotaZece +fro_do +Poatescapa +br-fw +synthetic +Pamant +uG +VreauSaJtIi +WILLIAMS` +exuser1 +rena_chan +Bombonika17 +alienenigma +nobuddies +adirondak +monsterbull +skooby +subknight +clawo +roboblue2 +L_IVIU}{ +tiger88 +phayze +MAROO +`wabbit +May +selina}{ +Ranall^ +atom_bomb +yawn +doncisco +kaiserdragon +dead-cow +Einstein +Y_1987 +MyBestDog +efsdf +|soujiro| +Vorax +jikuty +l4mer0zer +Am3Ricanu +sobi +emu_23 +scifi +jzx81 +Frolin43 +MatrixClub +Etyenne +KilometrajA +fichte +cooms420 +leonu +Andrada18 +droo1 +osman_38 +tiggeroaxaca +stelio +ragadako +bad_boi01 +stack_trace +jo_ke +l0cke +erikavip +seniora_49 +sausages +George^^_ +PesteCapG +MuchM +_badboy +SaoaraEA +naughty4e +seon +xfibre +upaclass +bifi +dj_axxsy +travolta +icyhot +rashad +wobble +seol +tigersman +TraimPeric +mischeiv +taka +consolezx +cracken +RDAR^^^ +profundis +ExExWife +paine +ScoTTy^ +nuffsed +lagerho +rulzu +m]]] +a7la_1 +sadfghh +seedleon +Dyablo16 +ysilog +ramon24 +radu33 +espermiox +cyanide +Ambience +dwarftoss +meeks +fhlyyw +[a]rwen +r3in +luis_ignacio +nub +segall +EggGrow +LordNessus +psycho_ +PeaRaS +ping- +FataKOOL +cecy_24 +InKateva +ram-viper +firethroat +syscrash +CTa{-_-} +stefysHk +hellraise +tonicaluga +eullH +BagAdanc +omega_black +sabe20 +Dj_Mad +Naka}{ +syn-botnet +jhaynes +CiHaNnN +ranma_k +xender_ +^ed +_IonTalent +Ragatzo +EuLaCta +tac0 +SteauaBecali +jhgf6 +Vicentziu +Nina}{ +montrosity +tabmow +adrian__ +JealaJeala +biggreensupreme +andreea24 +ow1288 +Inca100 +pjtpkc +ovi_28 +kablhn +vlad +doooop +Oana}{ +cntr +FrUmUsEl- +pymqth +whacky_paki +D|S-Slugs +kad|away +gnodab +jonny +acrylic27 +ALonSo- +cloud-strife +VASILE_ION +warren_06 +diela_28 +diana}{ +bobino +evilgenius +galby +george932 +evox +mmdxhl +ROERT_36 +britney- +brown +w00dy +Schuey +stealth^^ +lanevolutionvii +retr0 +icegurl57 +crisc00 +cowkiller +CumFaciTu +packet +botbanner +dr_pepper +clopyshmp +notagain +makere +greyz +marfulyn +hjkhkhfghgf +oparu +rekal +Am_Euro_ +SaHas +hbpitp +pumbaa +shewgie +epsilon +spazz +sethstorm +sevy` +WI-Elite2 +Virgil_21 +jay22 +DENI +kyozen +Meryet-Amun +degree +vvnvhx +IlincaTara +ganesha +gatsu-kun +frankze +ADITZUUU +courtjstr +LamaiAmare +namrata +heilbut +Nu`Irc`S +ctalino1 +kr4zi3 +xeqodw +luca +Linguri +singur-3l +vinn_1 +mrvl_ous1 +wyzewon +Gia23 +nitz +superman +Fleegle +elk613 +MiReLa}{ +sua463 +rozi +jvwultschka +am +mrdalvin +itibatijoc +icee +hello2001 +buc +Racerul +vortm3nz +supercass +tom-servo +jjevans +ANCA_29 +outlaws +connor +stavie +sh1986 +nOS3Ron +dene +bularbyynggg +stefania25 +narutofob +Fuculitze +flawius +lilo +gt2000 +toastyghost +styie +elen68 +cetha +moodswang +poohydon +starcable +loganx +intoxicada +APlouatcu +lion4 +ZyO +catelas +Francois +BeatMottt +D0eGang +phaid +andi31mbr +eris +bw-anime-10000 +Spargemboxe +[j] +aktan +peek-a-boo +tripkidd +eg0r +ionutz18 +dabot +ufletelL +Discovery +lolidesu +aniardCJ +NEBUNU^^ +hobojunior +tamtams +jericho +modjo +aesthetic +rte555 +punkpato +mech-e +quasimodo +julia20 +stall +Doctor +RRU_A48 +carmenutza +Lov +dorina16 +bigbori +jac +qdoemj +shanja +l7data +elkrin +tora_aoi +|nem0| +CHAYANNE +ShadowFox +opus +sapo +rFINat +jujubaum +mikerocks +dbaer +scuzzy +bd117792 +LamNick +facerox +bobaj0b +merc +weepee +arokh +ar25 +wcofnv +darth +knocx +ieralodla +e-thug +yashamaru +s| +cos` +juanito +bad_sce +WI-Vegas +GurMati +bgr +[v0ltag3] +offviq +telcodude +CanM +drautzu][ +ant|2 +krispyg +stefan27 +|mx|newreleases +Ramona}{ +kalten +doggieo +orrcil +chatlizzl +gnus +eref +cK-fatal +blyth +Fnduletz +flatlyner +Virginel +Glor +Paciotti4US +miguelo +NE|Cable +ulOM +Loorenna} +turf +RapiRapid +linusgod +jorb +barfman +burgermister +bluie_ +_grendel_ +RO-XXY +savages +lhihqd +abclogic +sssnake45452 +beto_away +Odata-N +MeargaBine +iaoPeUlei +hah +djl +Afrodita-r +dehvokan +Babyother +fotbalist_2u +hexo +DB|Gone +potcuresaids +TuEstiMezu +samir +_murph_ +doodley +Soyuz7 +parly +ness +leeweesquee +mint_ +smithsmit +robe77 +ysgtwj +wankmenow +gabiman +ORU40 +vasy01r +Craven +zarky +cocteautw +|c|lassic +mrnes +vstylex +n0n3 +Scumpici +adrianne +fakeout007 +tdryy +DeffenderM +pankkake +VorbaAsta +dj-popescu +D-Twizzie +CaNiBuS +danyell]] +[tone] +ilse +raytracer +ruka +drgnclwk +damonz +burnz +stupida +da^bear +e\ectro +kajol +nonsanity95 +lince +Alina` +CHERRRYYY +`6`69`69 +loris +ckeo +marius +andrei_^ +blackhole +wakeskate +piggsy +GHoSTFACE +silversur +alsharpto +andreea4 +ignignog +flmalw +dropbear +leoNNisia +schturf +RaemNoi +tu +chrizboa +[a-s]animemovies +flowchart +cerabyte +WargasM` +etrigan +janine23 +BAAN18 +andi9 +blargkkake +Tribunall +Tanjiani +JRUser1 +achmed +brothaman +arigato +l4dy +hunzer +gaser +skizm +DianaLove +orobelram +rotten +ALY-20 +carfierveki` +Giovannio +anda_bighy +bufu2103 +NuMaInt +nagakuaoshi +syn3rgy +ps3hd +elwalter +wurone +masklin +IarnaLaCta +ogleboy20 +nexdeci +rick +oojimaflib +livemp3 +dumdidu +AskM +ekki +nuk3 +Hermione +douglas +prplxtacy +Dragon +illu\dupont +WrongCode +LoVeAnDa +big_scoot +notiss +lwire +Raluk` +van_daal +gargy +jackknife +Cavou45 +jlock +oj|nt7 +kegank +IacaNMai +sheckie +willy_b +wwerules +tronik +petros22 +giorgio32 +i-v +otaku- +axthrower +skdypu +FuriaH +RAGGA +D|S-Pheer0v +bw-x-888 +xipbnc +xenorox +renthal +husky +fuas +_exil3 +burgertime +syppi +Senior +maxgamer +spawn\ +youngbuk +k0zz0 +pornboy10 +taimur +opi +slushie +Elena40 +FulaBazatu +infest +conchis34 +ndergames +Shadow_mn +bambolina^^ +Monica21 +Andrea19 +m|drc +qnidft +alloy` +d00g +kildred +singur23 +rhinop +NuMaiBeu +liony +mata_ +gmouth +b-a|keyspirit +mthrboard +weirdzo +adytz +hoefosho +opeless_ +^honney^ +black-eye +hnow +walrus +IWrite +lrtlar +zer0gauge +fghf +nutzsack +TheextTag +CopilBatran +whisky +maestro +wertzz +tpipe +sando +MobilGSMGA +weiss +kt +iheartxes +secsup +susanu2 +dtrain +onkeltom +bw-mp3476 +tel_bv +luii +kp101 +carlinhos +mimy +qboss +Be_My_Rain +UGene +crim|skool +wescraven +MailYahoo +avcc +Gwran182 +GHoSTo +Juliana24 +whee +faxx +m_agic +davec +Laxativ +tuck +vladonne_gee +Mr_Devil +lightknight +pjbdgv +jt11com +eduardo__ +jumper +diggyz +afex +sweettooth +haddaway +Da|33t +unk +glacius +cristina22 +alexutza}{ +ragnar0k +darkrat +crisc0 +NuMaSpune +corp +i2tb +beer2337 +_zen +gsp +AmUnRaspuns +icon_ +ibf +pokie +tyubn +river_rat +BeastMast +Nina18 +CataBlue +wangman +m0rph^ +ridah +dndogm23 +winggndm +dreamtheaterfan +hapyfac +dorina39 +flea_ +Brahasesti +zi_de_zi +Ionela}{ +_crom_ +MARINEL17 +rice-uk +catalin29^ +playboy_ +Eder_ +soho_boy +GoGt +[dj]roy[dmt] +bipasha +Arman| +eniac +demonfist +rippy__ +odium +exundone +duren-__- +hoshi22 +dIana21 +axfgud +seniora +MaiInvatza +judaiyuki +ciclonul +razaekel +mrdj2004 +_danyoken_ +Vomalie +TuMaPaci +cablematr +ziceCaDoare +shanyya +active_girl +oversvans +Advice +azn_devil +parlitel +acsl8r +deface +Darny_ +cheehappy +QSleep +seellenna +scx- +galaphile +nfy-nff-01 +billybob7 +BemApaCalda +cata33m +sublmnl +dollysita +ouloui-chan +Basinescu +mess +xd +|obaka| +mariana44 +r4r4rfrfe +mpkHk +adriano_away +risc2u +zeo +Afirmate +NiN +bouh` +iomegaz +FemeileBalon +IdeileNeFak +BineDispus +dls77 +MyLve}{ +dor_de_duca +deblin +MaDoare +Inkleak +usse +lowdown15 +ryo-ohki +la-idle +MaSters +WTT +NicuriBune +Slvad +kremzeek +lover-boy +excessu +Liu33cj +oc80z +SAL9000 +ccfl_man +Madalina}{ +goldito69 +ironic +ss-kremkill +m000 +UnAlbum +brakk3n +soljarag2 +synpex +just-edd +ufletul +mint +bucktooth +zakk_sabb +corina^ +Finishuz^^ +PiatrN3amt +likwid8 +SingurFie +KIck^^ +zapris +dev\zer0 +Lord`Miau +torian +vito +silviu_28 +chudd44 +B21M +MaiHules +CeFacem +BAGHERA` +hurrdp +Sevraj` +kid +tgen +BogatasTC +fender98 +mark_work +[acer] +trickster +Aan^34 +lyhgyd +dkmaster +r3mi +g00z3m4n +hgfdhgfd +Bangged +winko +Kurplunk +[k-albums]-012 +danny999 +doar_m +sue2375 +bentron +holy +chimpirimpimpiriwea +jdk +Qut3r +Aimar +allen2 +_^renzor^ +Daedalus` +bane_ +keenmanda +connect12 +SmAsH +|KGuard +jm06 +LaCulCaR3 +ngefreak_ +vwuidv +Brounette +dorina12 +rew21^^ +madhuri +q-bert +PuturosMan +leykis101 +elramon +operrox +juhi +tasty +hotu_de_inim +fuzdavid +Shooter_ +hitwou +alienkill +rand--- +``erik +gackt +prototype +GrasuMare +octav27 +CRS18 +antaean +HaJoined +AreundDe +vasy77 +Vanders4r +Head +kracatoa +feldi` +domenow +coc00n +hoschi +heffe-1 +pithlit +wull +ciuci0707 +`3mta3 +cres|nohere +kotelet +spidey^ +ovy`19 +TeciLa_S +value +razortin +elena68 +siko +nvvtsf +omi +mikeisblack +zumuti +jafar +xemisux +^blond|na +xmysticx +lexica-chan +Jordan` +Gaina +kuri-chan +ARIADNA +jehryn +bArriaM +hajiki +balquydzi +oi` +cucuMare +widowmkr- +nailz +anthr4x +mistul +Francezul +Incepe13 +mile +Mire +Ramonica- +V|tuala +ronoon +seabreeze +wallhoper +Micutzul2 +foxy|ady +tigot +N0t3ady +jdo339 +ionela}{ +jimmyhack +inkku +jagman +amy_lee +_1st +MYR +_georgzz +f338i_ +frizzo +flopy +Incaleak +laminedaaaa +AmArEttA +__roflmao__ +ITAL40 +ImiAduci +Ce`iProst +tha_kid +chaozzzzz +Alin- +asd73sna +cute_m +tot|| +mil|away +yxela +lexluth0r +ammocyte +klinsder +geanina23 +NiceFane +ice-heart +saturn21 +Erriku38 +^rastamn +CErcelus +Silviu_GER +poom +troott +dish-0070 +coolazura +juanpince +blazee +hhw|mad +trekker99 +Maze +slime_ +raipsu +FocaLobie +`wild_bee +aztek +[lucifer] +fee^ +atlantian2112subcreater +ohnhjgf +Cck_Sucker +Doru^^ +dish|f|1001 +scoopdee +CUDIU99 +gam3play3r +HOB +malaika +fger +Vikt0r +ahq[newreleases-old] +bokdan007 +picu21 +mssisx +mykroft +ken47 +sdu +JellyBell +roboto +manga_0taku +basho +Blestem +buyaka- +findel +ich +Blackpool +GoAay +archango +M4Riuc4 +Paralele +dhvmqx +Mations +Lady_42 +ArtistePorno +UndPleci +a|otakubot +We`lBe +lil^mike +DoNotSpeak` +isabella +parasomnia +tornadoq +diehard7 +jjjiga +knx240 +darkjorge +FPorto +[prlitul] +dcvcd-xdcc +wikkid +petroman +korq +xin +OrgiMisa +klaasmaster +lidas +dido +LemNet +NuFacBani +olution +uha +nosun +SalamCcios +therocket +printesa_ta +ricardo +Si`sMajor +anotherde +PurificMic +mrrice +Douazatze +jebba_1 +fwee +tau +jaxdatass +saru +cafu09 +ciuf +eagles5 +Ladyjean _ +bIZmItCh +MaAleg +lup +det0natic +alex_x25x +lessby +ludic +Hawk-eye +camaro69 +Fulg3ruL +_rico +TreiSuntem +j\arod +Accidental +eliza-r +magul +r3d-1002 +GABY75 +Capr3Iezi +twentycen +TeiBuciStangi +ass-chan +Neo15 +nofeloniesyet +grimreap +dj_nato +Alarma +paul43 +sopxuo +Auonom +mhnbn +krista34 +iwank +draculisor +_sengir_ +urmila +fing +^slither^ +_Grebla +MaApuci +{DigA}Doll +DaLiN +ivan14 +keeperno1 +gassyy +enymatyc +Murdarie +darkness2 +feets +evil_sensei +gright +koveiro_jedi +MagikMan +rllos^^ +drwalls +StaiePAza +NitnrWolf +m^ +kristal-babe +alin_black +iulya^ +fishyman +ssp_file +JegoasaBL +Reefer420 +spicy-momo +unzero +turtleman +Seby20 +wr3ck3d +skppi +`REE_MAN +ssaywah +mr_pleb_mgoo +valdi_vc +kak` +hothitter +Deja` +_digital_ +MsicInter +YOUR_-Dream +vagrantsoul +bw-w-2051 +boy-o-boy +SaseNua` +xplur +zleach +cg_dawg +eviscere +bdawg +manu_84^ +Sat3liti +NUTe-aiScos +dna65 +eim23 +zucker +N`Irc`S +ghisa +find +krimetyme +AdeTza}{ +thepaper +godot +Tzoc +spoonmanx +drLVE^^ +dev +Keie +anduta^^ +owl007 +doomguard +ophiax +htg_ +DeMaiMulteOr +Light +[sinz] +PrimulVers +oehoka +jake357 +godslayer +jg +Bikinela +duel +bobosk +outcast +LCASS +Patricia25 +version2 +mudcat197 +Angela19 +DC-Send +Vegetto +tatrocity +Danielush +bakibandi +kenners +alprazolam +saarah +desi` +Anatomist +^Alkaline^ +okezulina +thevirus +jesper +Raoul20 +DuluClick +wwww +Adi_2004 +darkcarnival +alexsa +kingpin +aquafox +oldescaru +assie +duckdown +AdeTz}{ +f81 +garoad +minisd +Neo`` +cowboy_bebop +iyiyuiuhu +holysabre +Antonio27 +uglybob +mem87 +Al_TaU_DuLcE +RochistuaWaY +jedi_ipod +Pr3s3dint3 +mismandylee +wgoeot +Heepaaa +jltcvn +dhaivi +Alex__17 +whowhat +rockman +gauze +dracula}{ +mstgeo +Eservice +peetler +Coke` +andr3y_2006 +bi0h4z4rd +Petagon +ciocolate +qq9 +prunaxxxxxx +wr0ng_turn +anato +b-a|pyon-kun +tpisor +jackerz +petah +UnaeteSus +BlackDildo +otakunomike +dogfood +Zna rtxtos +Inc1 +weedpuffer +catsy +esmmyq +eggbert +NIght_Boy +paulita-paz +^psionic_being^ +baco +aiardCJ +MAFIOATA_NO1 +zardoz66 +Mmarco +CpnHowdy +dishhead70 +SaOFut +_Claudiu_ +QMS|Wrath +iwelhe +AiCvaBa +sob +tuzlo +lkhlkhopigifdhdg +Tnder +fisteh` +greenygre +Rubber` +flak9 +xa|kaes +NuMaMisc +Aciduzzu +animefreak2500 +TakMine +bobs200-anime +moelester +pupp[y] +team23 +Obliatii +yo_DyDy +Q` +marco +SniiMari +CLAUDIU99 +Ionela17 +Chirilovici +bsx_nw +BabyMother +mota_lt +gbadoctor +missteru +BadBoy4LiFe +steelking +moorack +neoelemental +sm4sh +lil38 +beercat +warcraft- +miggydayz +theamazingboris +mindchild +zerorox +siuca +lordwarlock +jonjon- +PiF +suckatuna +palyKisS +mindgame- +fItarea +chibivampirekarin +kingspydo +shadownig +effy-kun_ +gabbermp3-des2k021 +una +dhtsle +h1ram +thegame_e +decal +vqmion +IceWizard +overdue +whiskey +cncioc +ciKa +sabtinth +ales|ffxii +Barcealona +padmini +deathwalk +SHOB +seagal_24 +willytek +Byleth +Psithe +AsaCABem +A-mihai21 +diana20 +dcmofo +uxrggx +AL3SUL +Porstieom +B|G^Daddy +gramada_boy +FaineNice +amazon10x +Wrikle +mechazawa +the_rell2 +cybersnake +hubby- +Maser +mrwhippy +NuMant +darkforc +mlh300 +friz +Wedoon +blueprint +patito +oyygwy +erlend_ +ashtaroth +loverat +johnhjgf +sandboy +lacere +Parazmaz +kodiacman +shmagen0007 +woopsor +kcufi +tcrdku +knoblo +seedrs +RaeMAma +saber4 +MatcaTown +Mina-Italia +Striker` +mk26578 +k3nz0z +|_ngu_2 +densi +youngbuck +fandang0- +bagman101 +codruta_25 +sorin35 +denver +phoenix-one +chrisserv +MergInchis +mudwert +Seagal +xiyccb +demolish +IJustHope +jiggy +jay101 +Zistem +diavolo^- +Chong0r +mrtzan +Sh0tMan +Romtelefon +H--N +gokiburi +tnuc +cablevinny +aex_x25x +n`nlck`` +liquidax +drachenviech +Robertino` +bougyman +StaiDePAza +themacdad +^doamNa_38^ +nunya +civeng +ceezaleo +chucknorris- +asus2222 +flo_rin +caillou +_helloween_ +ScHyy +ToneGud +tarzy +concis34 +MrJuiCe` +irfette +thewelshmethod +g0ob3r +lon3w0lf +oRm +crazyboy +dokodare +Element +hitjifver +mosca|off +bulb +cyupy +bezebub +MonotonGrif +gorgeous +_rebel +[2OO5] +stefyy_24 +jayhamm +erikl +corradooli3 +boghi23 +xboxrox +MouseLL +NuTemaiaude +smilebabe +chlyfb +Dur3xu +jowag5 +diabl0s +Muckman +loenzo69 +RETZZU +cK-bloodshot +sarmaluza +sCaesar +milk +savagehawk +ROYAL +wo +NIBS +rebella}{ +yacker +injun4i +luci-tm +knight613 +zzbloopzz^_Niku_^ +zyndarius +qgkreg +samuel89 +_kyle +caos +MaterCard +vpn +amir +TrazN3a +[mTHer] +murdock +SuperNet +teqonix +CmFaciTu +fredrick +lunn +Genovese^ +teddd +juddz +ender|away +romania +blueeyes21 +SayBitch +rasay +Alone +moebius +ScotishMan +vorbivor69 +NitnerWolf +Ingid^ +OmUSnur +daddy-36 +cmttko +real +Mona16 +MAMAM +[2O5] +big_m +|0800| +swiv +w3lc0m3 +pakal +Bigg3st +MaLsi +phatback +orion` +patrick +|4|kiln +ca11istoX +SaMoriTu +NIB +DARK-SIDE +aaa +mistah_kr +BondaruGras +ufk +_narcotic +studiod +[ex]jay460247 +zack5599 +ReguliScrise +ruzo +nothingtw +odysseus +BagaBOntii +daworm +CincieciLei +chevyrox +drherb +bradtn +olokun +DinNouCart +johny21_ +rhcp +dlmank40 +neokeeper +musca +katsu^ +GyGy-Bnc +Ln4tic +heiva +k3rn3l +hunter46 +serbbj +UnMi`e +prfdbw +xh +Frumusika28 +rob_ +dreg +ihnthg +epyn +iulia35 +shinobu0 +blazing +poptix +Alex^22 +[kv]anphrax +LameNick +akeem +nsifvd +vivi41 +stanley +FADY2004 +b_light +talida19 +t +frasier +NoaJust +darthvade +iqbegy +jynxed +hbein +thugatron +liquid- +a|k|a +AtestatCopil +pgz-a[jaguarx] +Spontan +justELLA +ClauDju +KittyGone +neo_x +abedwasw +totalconf +bulletb8 +monalisa +stalk +issa_33 +ionel +tjoz +obee +bjnm +YapYap0 +rbat +PatruOchi +stefka +CautF_matAR +spoof +RUX +ranova +Bostanel +Dnnys_ +fishjr +blegh +RaziiMari +praetor +exuser2 +DaaVrei +D[add]y`Aw +Rom^Wodka +shcaap +omgcopter +LorMiau +Mokuji +ScotshMan +flownie +mk12345 +jicase +K-ON +AB_X_UL +dubo +StaiCulcat +Paty`On +Nvagon +amandha +TiGeR-CLa +seppl +webdawg +elpicsa +pspinfo +CuCucuu +evilash25 +room217 +gummy +BigHak +grabies +rustem +l-u-c-y-f-e-r +_|NCALZ|TU_ +hard2core +fortygloc +jigganigg +StrGhP +d3lux +KARGO-- +crysty3 +seinfeld- +Whoop +messiah +Nebunika +BuZdUgAnSan +ronaldinho13 +tode +LoveCobra +BitzaVinul +Chop +qdot_ +whitie +|Florin| +greengian +ultracarl- +MAFIOSO +Afaradaa +jenkie +vyoepa +keezo +kripton +dilivio +Mafiawaaaa +ferrer +ultradman +james +vyasa +Olivia^^ +maxou +evilbasic +wingtech +limit +tattergreis +wizofauz +mememesss +ayyeee +yomiko_r +bob__ +shilindri +koss +BunjiMan +Zaser +marss}{op +shania12 +CapsLock +abedogg18 +xsquader +terxx diff --git a/muhstik/include/clone.h b/muhstik/include/clone.h new file mode 100644 index 0000000..5fdc86d --- /dev/null +++ b/muhstik/include/clone.h @@ -0,0 +1,101 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef CLONE_H +#define CLONE_H + +#include "init.h" +#include "net.h" +#include "lists.h" + +typedef struct +{ + int type; + char mode; + char *save; + char *server; + unsigned short proxy_port; + unsigned short server_port; +} scan_t; + +typedef struct +{ + int id; + int type; + char *proxy; + unsigned short proxy_port; + char *server; + unsigned short server_port; + char *server_pass; + char *server_ident; + char *host; + unsigned short port; + int sock; + char *save; + char online; + char restricted; + int reco; + unsigned int monitor_tmax; + int grabbing; + char **jupes; + char op[MAX_CHANS]; + char needop[MAX_CHANS]; + char *nick; + char *nick2; + char *ident; + char *real; + queue queue; + char wait_whois; + scan_t *scan; + char mode; + char status; + time_t lastsend; + time_t start; + time_t alarm; + time_t rejoin_time; + char buffer[1024]; + char lastbuffer[1024]; +} clone_t; + +typedef struct +{ + char *parm; + void (*function) (clone_t *cl, char *cmd, char *nick, char *from, char *buf); +} msg_t; + +void free_clone (clone_t *clone); +int main_clone (void *arg); +void save_host (clone_t *clone); +int not_a_clone (char *s); +int not_a_mast (char *s); +int is_enemy (char *s); +int is_op (clone_t *clone, int chid); +void op (clone_t *clone, int chid, char *s); +void deop (clone_t *clone, int chid, char *s); +int deop_enemy (clone_t *clone, int chid, char *nick); +void kick (clone_t *clone, int chid, char *s, char *reas, int mode); +void ban (clone_t *clone, int chid, char *s, int mode); +void unban (clone_t *clone, int chid, char *s); +void kickban (clone_t *clone, char *s); +void join (clone_t *clone, char *dest); +void echo (clone_t *clone, char *chan, char *buf); +void send_irc_nick (clone_t *clone, char *nick); +void register_clone (clone_t *clone); + +void send2clones (char *buffer); +void send2server (clone_t *clone, const char *fmt, ...); + +int parse_deco (clone_t *clone, char *buf); +void parse_irc (clone_t *clone, char *buf); + +#endif diff --git a/muhstik/include/control.h b/muhstik/include/control.h new file mode 100644 index 0000000..c3d1d49 --- /dev/null +++ b/muhstik/include/control.h @@ -0,0 +1,31 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef CONTROL_H +#define CONTROL_H + +#include "clone.h" + +typedef struct +{ + char *parm; + void (*function) (char *buffer, int out); +} cmd_t; + +int getchid (char *s); +clone_t *getop (int chid); +clone_t *getone (char *s); +clone_t *getscan (); +void interpret (char *buffer, int out); + +#endif diff --git a/muhstik/include/globals.h b/muhstik/include/globals.h new file mode 100644 index 0000000..87ec16e --- /dev/null +++ b/muhstik/include/globals.h @@ -0,0 +1,74 @@ +#ifndef GLOBAL_H +#define GLOBAL_H + +#define VERSION "4.2.3" +/* + * The above `#define' _must_ be line number 4 for the `pre-commit' hook to + * work, and the MOTD file to stay intact. + */ + +/* {{{ List lengths */ +#define MAX_AOPS 128 +#define MAX_PROTS 128 +#define MAX_JUPES 128 +#define MAX_SHITS 128 +#define MAX_CHANS 64 +#define MAX_NICKS 1024 +#define MAX_IDENTS 1024 +#define MAX_NAMES 1024 +#define MAX_GROUPS 16 +#define MAX_CLONES 1024 +#define MAX_BROTHERS 1024 +#define MAX_MUTEX 2 +/* }}} */ +/* {{{ Internal commands */ +#define ADDOP "+aop" +#define RMOP "-aop" +#define ADDPROT "+prot" +#define RMPROT "-prot" +#define ADDJUPE "+jupe" +#define RMJUPE "-jupe" +#define ADDSHIT "+shit" +#define RMSHIT "-shit" +#define ADDSCAN "+scan" +#define RMSCAN "-scan" +#define KICKBAN "kb" +#define MASSKICK "mk" +#define MASSKICKBAN "mkb" +#define TAKEOVER "to" +#define MASSOP "mo" +#define MASSDEOP "md" +#define MASSUNBAN "mu" +#define NICKS "nicks" +#define NICKLIST "nicklist" +#define ECHO "echo" +#define CHANKEY "chankey" +#define STATUS "stat" +#define MUTE "mute" +#define PEACE "peace" +#define AGGRESS "agg" +#define RANDOM "random" +#define KILL "kill" +#define SELECT "select" +#define LOAD "load" +/* }}} */ +/* {{{ Messages */ +#define KICK_REAS "/!\\ this channel has moved to irc.gnaa.eu #gnaa /!\\" +#define SHIT_REAS "/!\\ this channel has moved to irc.gnaa.eu #gnaa /!\\" +#define SETON "activated" +#define CLOSE "+milk 1488 killjews" +/* }}} */ +/* {{{ Buffer sizes */ +#define MINIBUF 32 +#define MINIBUF_TXT "32" +#define MEDBUF 128 +#define MEDBUF_TXT "128" +#define BIGBUF 1024 +#define BIGBUF_TXT "1024" +/* }}} */ + +/* To avoid mixing sleep() and usleep() */ +#define sleep(t)\ +usleep (t*1000000) + +#endif diff --git a/muhstik/include/init.h b/muhstik/include/init.h new file mode 100644 index 0000000..1870915 --- /dev/null +++ b/muhstik/include/init.h @@ -0,0 +1,92 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef INIT_H +#define INIT_H + +#include "globals.h" + +#define USERLISTS 4 +typedef enum { + AOP, + JUPE, + PROT, + SHIT +} list_t; + +#define PROXYS 5 +typedef enum { + SOCKS4, + SOCKS5, + PROXY, + CISCO, + VHOST, + NOSPOOF +} proxy_t; + +typedef struct { + int load; + int group; + int max_clones; + int wait_socks; + int rewind_socks; + int timeout; + int max_reco; + int wait_reco; + int no_restricted; + int scan; + int help; + int verbose; + int debug; + int nocolor; + int dalnet; + int use_wordlist; + int nick_length; + int ident_length; + int real_length; + int rejoin; + int multi_op; + int multi_kick; + int multi_deop; + int aggressive; + int peace; + int repeat; + int notice; +/* int max_conns; */ + + char *motd; + char *batch; + + char *g[PROXYS][MAX_GROUPS]; + FILE *h[PROXYS][MAX_GROUPS]; + FILE *s[PROXYS][MAX_GROUPS]; + FILE *direct[2]; + + char *aop[MAX_AOPS]; + char *jupe[MAX_JUPES]; + char *juping[MAX_JUPES]; + char *prot[MAX_PROTS]; + char *shit[MAX_SHITS]; + char *userlist[USERLISTS]; + + char *nicks[MAX_NICKS]; + char *idents[MAX_IDENTS]; + char *names[MAX_NAMES]; +} config_t; + +void init_options (char **argv); +void check_options(); +void init_threads(); +void init_hostname(); + +#endif diff --git a/muhstik/include/lists.h b/muhstik/include/lists.h new file mode 100644 index 0000000..a8a11c9 --- /dev/null +++ b/muhstik/include/lists.h @@ -0,0 +1,55 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef LISTS_H +#define LISTS_H + +#include "init.h" + +/* Functions for handling files */ + +int occur_file (char *s, char *list); +void add_file (char *s, char *list); +int file_length (FILE *f); +int get_a_line (char *s, int z, FILE *f); + +/* Functions for handling tables */ + +int add_table (char *toadd, char **list, int max); +int remove_table (char *torm, char **list, int max); +void update_table (char *from, char *to, char **list, int max); +void update_pattern_table (char *from, char *to, char **list, int max); +int occur_table (char *s, char **list, int max); +void fill_table (char **list, int max, FILE *f); +void clear_table (char **list, int max); +int match_table (char *s, char **list, int max); + +/* Functions for handling single linked lists */ + +typedef struct st_list *queue; +struct st_list { + char *data; + queue next; +}; + +typedef int cmp_fun (char *s1, char *s2); +int add_queue (char *s, queue *list); +int uniq_add_queue (char *s, queue *list); +int remove_queue (char *d, queue *list); +void update_queue (char *old, char *new, queue *list); +int occur_queue (char *s, queue *list); +void free_cell (queue *list); +void clear_queue (queue *list); +void rotate_cell (queue *list); + +#endif diff --git a/muhstik/include/load.h b/muhstik/include/load.h new file mode 100644 index 0000000..43c0ccf --- /dev/null +++ b/muhstik/include/load.h @@ -0,0 +1,29 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef LOAD_H +#define LOAD_H + +#include "clone.h" + +enum load_mode { + M_QUIT, + M_NOJOIN, + M_NORMAL +}; + +void *load_all (void *arg); +int load_host (int t, char *host, int proxy_port, char *server, int server_port, char *pass, char *ident, char *save, int mode); +void randget (clone_t *clone, char **dest, size_t destlen, int uselist, char **list, int max); + +#endif diff --git a/muhstik/include/mass.h b/muhstik/include/mass.h new file mode 100644 index 0000000..d38e2f1 --- /dev/null +++ b/muhstik/include/mass.h @@ -0,0 +1,31 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef MASS_H +#define MASS_H + +#include "clone.h" + +enum mass_actions { + MKB, /* Mass kickban */ + MK, /* Mass kick */ + MD, /* Mass deop */ + TO /* Takeover */ +}; + +void massdeop (clone_t *clone, int chid); +void massop (clone_t *clone, int chid); +void force_massop (); +void *init_massdo (int chid, int mode); + +#endif diff --git a/muhstik/include/muhstik.h b/muhstik/include/muhstik.h new file mode 100644 index 0000000..0eaf3c4 --- /dev/null +++ b/muhstik/include/muhstik.h @@ -0,0 +1,25 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* Copyright (C) 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef MUHSTIK_H +#define MUHSTIK_H + +#include "clone.h" + +void read_batch (); +void read_stdin (); +int init_irc (clone_t *clone); +void main_exit (); +void main_loop (); + +#endif diff --git a/muhstik/include/net.h b/muhstik/include/net.h new file mode 100644 index 0000000..76cd030 --- /dev/null +++ b/muhstik/include/net.h @@ -0,0 +1,43 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef NETWORK_H +#define NETWORK_H + +#include +#include +#include +#include +#include +#include + +#define max(n1, n2)\ +(n1 > n2 ? n1 : n2) + +typedef struct +{ + struct addrinfo *ip6_hostent; +} netstore; + +void host2ip (char *s, char *host, int size); +int resolve (char *host, struct in_addr *addr); +netstore *net_store_new (); +void net_store_destroy (netstore *ns); +void net_set_socket_options (int sock); +void set_nonblocking (int sock); +int net_bind (netstore *ns, int sock); +int net_resolve (netstore *ns, char *hostname, unsigned short port); +int net_connect (netstore *ns, int *sock, char *vhost); +void send_sock (int sock, const char *fmt, ...); + +#endif diff --git a/muhstik/include/print.h b/muhstik/include/print.h new file mode 100644 index 0000000..323922c --- /dev/null +++ b/muhstik/include/print.h @@ -0,0 +1,32 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef PRINT_H +#define PRINT_H + +#include "clone.h" + +/* Functions for handling printing */ + +#define LEN_LINE 71 +#define LEN_TAB 12 + +void print (int ret, int color, int dest, const char *fmt, ...); +void print_error(char *prefix); +void print_prefix (clone_t *clone, int color, int dest); +void print_line (int out); +void print_motd (int out); +void usage (int out); +void status (int out); + +#endif diff --git a/muhstik/include/proxy.h b/muhstik/include/proxy.h new file mode 100644 index 0000000..b680fac --- /dev/null +++ b/muhstik/include/proxy.h @@ -0,0 +1,50 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef PROXY_H +#define PROXY_H + +#include "clone.h" + +enum states { + INIT, + WAIT_CONNECT, + WAIT_IDENT, + WAIT_IRC, + WAIT_SOCKS4, + WAIT_SOCKS5_1, + WAIT_SOCKS5_2, + WAIT_PROXY, + WAIT_CISCO, + WAIT_PASS, + WAIT_HOST, + WAIT_CMD, + EXIT +}; + +int connect_clone (clone_t *clone, char *host, unsigned short port); +int init_vhost (int sock, char *vhost); +int init_socks4 (clone_t *clone); +int init_socks5 (clone_t *clone); +int init_read_socks5 (clone_t *clone); +int init_proxy (clone_t *clone); +int init_bouncer (clone_t *clone); +int read_cisco (clone_t *clone); +int readline (int s, char *buffer, size_t buffer_size); +int read_proxy (clone_t *clone); +int read_socks4 (clone_t *clone); +int read_socks5 (clone_t *clone); +void sendnick (clone_t *clone, char *nick); +void senduser (clone_t *clone); + +#endif diff --git a/muhstik/include/string.h b/muhstik/include/string.h new file mode 100644 index 0000000..4566f96 --- /dev/null +++ b/muhstik/include/string.h @@ -0,0 +1,46 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +#ifndef STRING_H +#define STRING_H + +#include +#include +extern int errno; + +/* Functions for handling strings */ + +/* A delimiter for strsep */ +#define DELIM " \r\n" + +void *xmalloc (size_t size); +char *StrDuplicate (char *src); +int StrCompare (char *s1, char *s2); +int StrCmpPrefix (char *s1, char *s2); +void StrFirstToken (char *s); +void StrCopy (char *s1, char *s2, size_t n); +void StrCat (char *s1, char *s2, size_t n); +int StrParam (char *parm, size_t size, char *s, int i); +int is_in (char *w, char *s); + +#ifdef NO_STRSEP +char *strsep (char **stringp, const char *delim); +#endif + +/* Functions for handling patterns */ + +int is_pattern (char *s); +int is_nick (char *s); +int match_pattern (char *pattern, char *s); + +#endif diff --git a/muhstik/ipv6/config.sh b/muhstik/ipv6/config.sh new file mode 100644 index 0000000..b46eed9 --- /dev/null +++ b/muhstik/ipv6/config.sh @@ -0,0 +1,28 @@ +#!/bin/echo lol @ minorities +ipgen() { + if [ -n "$1" -a -n "$2" ]; then + printf '%x' $(shuf -i $1-$2 -n 1); + else + printf '%x' $(shuf -i 0-65535 -n 1); +# echo "error: ipgen() called with invalid params" +# exit 666 + fi +} +DEV_NAME="he-ipv6" +SUBNET_TYPE="48" +if [ "$SUBNET_TYPE" -eq "48" ]; then + RAND_IP=`echo \`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen 1 65534\`` +else # Assume /64 + RAND_IP=`echo \`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen 1 65534\`` +fi + ########################################## + # Tunables # + ########################################## + # Get these from "HE.net Tunnel Details" # + # (if using tunnelbroker.net) # + ########################################## +EXT_IP6_TUN="2001:470:23:3f4::2" # "Client IPv6 address" # +EXT_IP6_PREFIX="2001:470:fcf4" # urmom # +EXT_IP6_LAN="${EXT_IP6_PREFIX}:${RAND_IP}" # An IP from the "Routed /{48,64}" range # +HE_TUN_SRV="74.82.46.6" # "Server IPv4 address" # + ########################################## diff --git a/muhstik/ipv6/h.sh b/muhstik/ipv6/h.sh new file mode 100644 index 0000000..31c911f --- /dev/null +++ b/muhstik/ipv6/h.sh @@ -0,0 +1,178 @@ +#!/bin/echo lol @ minorities +# $Id: h.sh 11 2011-05-29 literalka $ +# +# {{{ Relevant WWW site links: +# [0] HOWTO +# [0a] http://mirrors.bieringer.de/Linux+IPv6-HOWTO/ +# [1] Wiki +# [1a] http://en.wikipedia.org/wiki/IPv6 +# [1b] http://en.wikipedia.org/wiki/IPv6_address +# [1c] http://en.wikipedia.org/wiki/Tunneling_protocol +# [1d] http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers +# [2] RFC +# [2a] http://tools.ietf.org/html/rfc2460 +# [2b] http://tools.ietf.org/html/rfc3053 +# [2c] http://tools.ietf.org/html/rfc3964 +# [3] Tunnel Brokers +# [3a] http://www.tunnelbroker.net/ +# [3b] http://tbroker.mybsd.org.my/ +# [4] Amusing +# [4a] http://blogs.pcmag.com/securitywatch/2010/12/ipv6_will_worsen_the_spam_and.php +# [4b] http://jl.ly/Email/v6bl.html +# [5] DNS +# [5a] http://member.wide.ad.jp/~fujiwara/v6rev.html +# [5b] http://freedns.afraid.org/ +# [5c] http://dns.he.net/ +# [5d] http://freedns.afraid.org/reverse/instructions.php +# [6] VPS Hosts +# [6a] http://www.hostgator.com/ +# }}} +# {{{ Notes: +# 1) Add ``EXT_IP6_TUN'' IP with /3 so it auto-adds a route to 2000::/3 to the +# tunnel device so that there is no need to explicitly add that route. +# 2) Add ``EXT_IP6_LAN'' IP with /3 so the route to the LAN prefix/64 is not +# auto-added to the tunnel device. +# 3) You could also add IPs with /128, but adding IPs with /3 auto-adds a route +# to 2000::/3 to the tunnel device, and with the ``EXT_IP6_TUN'' IP having +# that route auto-added already, the routing table is kept clean. +# 4) Last IP address added with "preferred_lft forever" is used as the default +# IP for new outgoing connections. +# 5) That being said, "preferred_lft x" is optional, defaulting to +# "preferred_lft forever". +# 6) Add additional IPs using: +# ip -6 addr add 2001:470:___:___::___/3 dev $DEV_NAME +# 7) Do not add any CIDRs, just add "straight up" IPs. +# }}} +# {{{ Suggestions: +# 1) If using tunnelbroker [3a], delegate the rDNS to ``dyn.ip6arpa.co.cc'', it +# /should/ give proper forward and reverse DNS, for "max sperg". Make sure +# it works first though, (i.e. freenode's DNS probably sucks). +# 2) <@h> ipv6 youtube + /48 = lol viewcounts +# 3) "...if you sent a billion messages a second, each with its own address, +# it would take about a thousand years to use all the addresses in a +# /64" [4b], thus, I would suggest sending one billion messages per second +# using different IP addresses. +# 4) Run your own rDNS (see [5a], requires root or sudo(8)) +# 5) If you have 0.01 USD on Paypal and a valid US phone number, just get a +# Hostgator [6a] VPS with 4 ips on it using promo code "austin" (dunno how +# long this will be valid), you'd probably be able to run a DNS server on +# it, with 4 IPs. +# 6) If you use FreeDNS [5b], you can set up a ``vhost'' by delegating your rDNS +# to FreeDNS' servers and setting up an ``IPv6 Reverse'' [5d]. +# 7) 19:07:20 <+h> I'm still trying to get ARIN to give me 14:88:/32 +# 19:07:24 <+h> would be awesome as fuck +# 8) IPv6 botnets are relatively unknown, based on my own experience. I suggest +# fixing this with an "IPv6 Awareness" program of somesort. +# 9) Try to use as many "levels" (TODO: find the right word for this) of an IPv6 +# IP as possible: when banning, many channel operators will ban a single +# IP, others will ban 2001:470:* (all of HE.net), and even some others +# will ban, say, a /64 when you're {ab,}using a /48, leaving unbanned IP +# addresses. +# }}} +# {{{ `telnet(1) route-server.he.net` +# [AS6939/HURRICANE-IPV6] +# ``tunnelbroker.net'' tunnel server information. Current as of 2011-03-29. +# +# Location IPv4 IPv6 +#--------------------- ---------------- ------------------------ +# North America +# PAIX Seattle 216.218.252.176 2001:470:0:3d::1 +# PAIX Palo Alto 216.218.252.165 2001:470:0:1b::1 +# Equinix San Jose 216.218.252.164 2001:470:0:1a::1 +# Hurricane Fremont 1 216.218.252.161 2001:470:0:23::1 +# Hurricane Fremont 2 216.218.252.162 2001:470:0:24::1 +# Hurricane San Jose 216.218.252.163 2001:470:0:19::1 +# Equinix Los Angeles 216.218.252.166 2001:470:0:1c::1 +# One Wilshire Los Angeles 216.218.252.178 2001:470:0:6c::1 +# Equinix Chicago 216.218.252.168 2001:470:0:16::1 +# Equinix Dallas 216.218.252.167 2001:470:0:1d::1 +# PAIX Toronto 216.218.252.147 2001:470:0:99::1 +# Telehouse New York 216.218.252.170 2001:470:0:12::1 +# PAIX New York 216.218.252.171 2001:470:0:13::1 +# TelX New York 216.218.252.148 2001:470:0:9f::1 +# Equinix Ashburn 216.218.252.169 2001:470:0:17::1 +# TelX Atlanta 216.218.252.150 2001:470:0:a7::1 +# NOTA Miami 216.218.252.177 2001:470:0:4a::1 +# Telx Phoenix 216.218.252.156 2001:470:0:154::1 +# Pittock Portland 216.218.252.159 2001:470:0:157::1 +# Comfluent Denver 216.218.252.158 2001:470:0:155::1 +# Level3 Kansas City 216.218.252.157 2001:470:0:156::1 +# Oak Tower Kansas City 216.218.252.181 2001:470:0:178::1 +# Minnesota Gateway 216.218.252.185 2001:470:0:ab::1 +# Europe +# Telehouse London 216.218.252.172 2001:470:0:d::1 +# NIKHEF Amsterdam 216.218.252.173 2001:470:0:e::1 +# Interxion Frankfurt 216.218.252.174 2001:470:0:2a::1 +# Interxion Paris 216.218.252.175 2001:470:0:2b::1 +# Telehouse Paris 216.218.252.184 2001:470:0:1ae::1 +# Equinix Zurich 216.218.252.153 2001:470:0:10c::1 +# TeleCity Stockholm 216.218.252.154 2001:470:0:10f::1 +# Asia +# Mega-I Hong Kong 216.218.252.180 2001:470:0:c2::1 +# Equinix Tokyo 216.218.252.151 2001:470:0:10a::1 +# Equinix Singapore 216.218.252.179 2001:470:0:169::1 +# }}} +# {{{ Prerequisites and supported platforms: +# Tested on: bash(1) 4.0.33(1)-release on Ubuntu 2.6.31-23.74-generic +# Requires: bash(1), test(1), printf(1), echo(1), and ip(8) +# May Need: su(1), sudo(8), modprobe(8) +# }}} +# {{{ rcslog +# $Log: h.sh $ +# Revision 11 2011/05/29 21:44:23 literalka +# Move config into its own file +# +# Revision 10 2011/04/27 01:10:19 literalka +# Added some small fucking retarded change in some obscure comment somewhere +# Added two more small fucking useless changes in an even more obscure comment +# And then I added a small stupid fucking change to one of those comments +# +# Revision 9 2011/04/21 22:52:04 literalka +# Small documentation updates +# +# Revision 8 2011/03/29 13:02:45 literalka +# Updated `telnet(1) route-server.he.net` +# Updated "Tested on" +# +# Revision 7 2011/02/10 12:21:45 literalka +# Add adjustable params to ipgen() +# Check for ``SUBNET_TYPE'' +# +# Revision 6 2011/02/09 22:13:12 literalka +# Wrote ipgen(), replacing use of ``RANDOM'' +# +# Revision 5 2011/02/09 20:08:12 literalka +# `telnet(1) route-server.he.net` +# +# Revision 4 2011/02/09 15:32:18 literalka +# Require bash(1) +# +# Revision 3 2011/02/04 12:56:24 literalka +# Replaced all instances of "he-ipv6" with ``DEV_NAME'' +# +# Revision 2 2011/02/03 19:15:48 literalka +# rm useless "if" statement +# +# Revision 1 2011/01/22 18:05:48 literalka +# Initial revision +# }}} +# Last update: Wed Apr 27 2011 +# -- by Leon Kaiser of the GNAA +# +if [ -z "${BASH_VERSION}" ]; then + echo "error: use bash(1)" # require bash(1) + exit 1488 +fi +#modprobe ipv6 + +source config.sh + +ip tunnel add $DEV_NAME mode sit remote $HE_TUN_SRV ttl 255 +ip link set $DEV_NAME up +ip -6 addr add $EXT_IP6_TUN/3 dev $DEV_NAME preferred_lft 0 +ip -6 addr add $EXT_IP6_LAN/3 dev $DEV_NAME preferred_lft forever +echo "Added route to IP ${EXT_IP6_LAN}" +# tunnelbroker.net includes the following lines in their suggested +# "Linux-route2" config... +# ip route add ::/0 dev he-ipv6 +# ip -f inet6 addr diff --git a/muhstik/ipv6/he.sh b/muhstik/ipv6/he.sh new file mode 100644 index 0000000..9b78040 --- /dev/null +++ b/muhstik/ipv6/he.sh @@ -0,0 +1,10 @@ +ipv4addr="AUTO" +_tunnelid="" +md5pass="" # echo -n ${PW} | md5sum +userid="" + +tunnel_detail="http://ipv4.tunnelbroker.net/tunnel_detail.php?tid=${_tunnelid}" # &ajax={true,false} +nsupdate="http://ipv4.tunnelbroker.net/nsupdate.php?tid=${_tunnelid}" +ipv4_end="https://ipv4.tunnelbroker.net/ipv4_end.php?ip=${ipv4addr}&pass=${md5pass}&apikey=${userid}&tid=${_tunnelid}" +# -or-: https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID (auto-detect IP) +# https://USERNAME:PASSWORD@ipv4.tunnelbroker.net/ipv4_end.php?tid=TUNNELID&ip=IPV4ADDR diff --git a/muhstik/ipv6/vhosts.sh b/muhstik/ipv6/vhosts.sh new file mode 100644 index 0000000..cd8bb3e --- /dev/null +++ b/muhstik/ipv6/vhosts.sh @@ -0,0 +1,13 @@ +source config.sh + +rm "/home/literalka/git/muhstik/vhosts" + +for (( i = 0; i < 100; i++ )); do + if [ "$SUBNET_TYPE" -eq "48" ]; then + RAND_IP=`echo \`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen 1 65534\`` + else # Assume /64 + RAND_IP=`echo \`ipgen\`:\`ipgen\`:\`ipgen\`:\`ipgen 1 65534\`` + fi + ip -6 addr add ${EXT_IP6_PREFIX}:${RAND_IP}/3 dev ${DEV_NAME} preferred_lft 0 + echo "${EXT_IP6_PREFIX}:${RAND_IP}" >> /home/literalka/git/muhstik/vhosts +done diff --git a/muhstik/jupes.txt b/muhstik/jupes.txt new file mode 100644 index 0000000..4c82fc5 --- /dev/null +++ b/muhstik/jupes.txt @@ -0,0 +1,47 @@ +g00n +Bratty +Brattiest +krashed +[krashed] +atomix +atomiku +itr +eGod +gotho +storm +chrono +chrono_ +chrono- +_404 +[0ne] +acid +KweeN +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +_ +\ +` diff --git a/muhstik/muhstik b/muhstik/muhstik new file mode 100644 index 0000000000000000000000000000000000000000..39dab9d79ac2de3025aad57a99f445262603e862 GIT binary patch literal 92810 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 + +while (<>){ + chomp; + my ($host,$port) = split(/$separator/o,$_); + unless ($host=~m/^\d+\.\d+\.\d+\.\d+$/o) { + my $dnspack = $res->query($host,A); + if ($dnspack){ + foreach my $rdata ($dnspack->answer){ + my $rstr=$rdata->rdatastr; + print "$rstr$separator$port\n"; + } + } else { + print "$host$separator$port\n"; + } + } else { + print "$host$separator$port\n"; + } +} + +__END__ + +=head1 NAME + +dns2ip - convert proxy list from HOST:PORT fromat to IP:PORT format + +=head1 SYNOPSIS + +dns2ip < host_port.txt > ip_port.txt diff --git a/muhstik/prox/prox.tcl b/muhstik/prox/prox.tcl new file mode 100644 index 0000000..665efb3 --- /dev/null +++ b/muhstik/prox/prox.tcl @@ -0,0 +1,167 @@ +# {{{ pub [CS ] SOCKS proxy gathering off phpBB [et al] sources and {DNS,R,...}BL matching +array unset {v:sites} {} +# {{{ RBL to query +set {v:sites:rbl} [list \ + rbl.efnet.org \ + dnsbl.swiftbl.net \ + ircbl.ahbl.org \ + dnsbl.dronebl.org \ + tor.dnsbl.sectoor.de \ + dnsbl.njabl.org] +# }}} +array unset {v:proxies} +array unset {v:proxies:rbl} +# {{{ dcsproxy.com +array set {v:sites} [list dcsproxy [list \ + [list "http://www.dcsproxy.com/login.php?do=login" \ + [list \ +# vb_login_username "insectcrew" \ + vb_login_lusername "szucsy" \ + do "login" \ +# vb_login_md5password "7e7cb40bdbfd8d4c512eda43e748b3ba" \ + vb_login_md5password "966bf1eaaaf07917faa5192115a10988" \ +# vb_login_md5password_utf "7e7cb40bdbfd8d4c512eda43e748b3ba" \ + vb_login_md5password_utf "966bf1eaaaf07917faa5192115a10988" \ + cookieuser 1 \ + s "" \ + ] \ + ] \ + "http://www.dcsproxy.com/socks-lists/" \ + "http://www.dcsproxy.com/login.php?do=logout" \ + {
.+?
} \ + {.+?} \ + {(?i)href='(.+?socks.+?)'} \ + ]] +# }}} +set {v:filter} {:23|443|(?:[18]0)?8[08]|312[78]|6588|9050$} +# }}} +# {{{ pub [CS ] SOCKS proxy gathering off phpBB [et al] sources and {DNS,R,...}BL matching +setudef flag socks +array unset {v%cookies} + +# {{{ bind evnt -|- loaded v%socks:ini +bind evnt -|- loaded v%socks:ini +proc v%socks:ini args { + global {v:sites} + foreach {- - tid} \ + [join [lsearch -all -inline -regexp [utimers] {v%socks:daily}]] { + killutimer ${tid} } + foreach t [array names {v:sites}] { + foreach c [channels] { + if {![channel get ${c} socks]} { continue } + catch {utimer 86400 [list v%socks:daily ${c} ${t}]} ;# XXX tunable + } + } +} +# }}} +# {{{ utimer 86400 [list v%socks:daily [ ... ]] +proc v%socks:daily {c t} { + catch {v:socks * * * ${c} ${t}} + utimer 86400 [list v%socks:daily ${c} ${t}] +} +# }}} +# {{{ bind pub S|- .socks v:socks +bind pub S|- .socks v:socks +proc v:socks {n u h c t} { + global {v:sites} {v:proxies} {v:filter} {v%cookies} + if {![channel get ${c} socks]} { return } + if {![string length [set site [last [array get {v:sites} ${t}]]]]} { + v%blog "[v%ifx johne] unknown site `${t}'" ${c}; return } + + set llogin [lindex ${site} 0]; set turl [lindex ${site} 1]; set lourl [lindex ${site} 2] + set tp0 [lindex ${site} 3]; set tp1 [lindex ${site} 4] + if { [llength ${llogin}] && \ + ![string length [last [array get {v%cookies} ${site}]]]} { + set lurl [lindex ${llogin} 0]; set lbody [lindex ${llogin} 1] + v%fetch -cookies POST ${t} ${lurl} ${lbody} } + + set socks {} + foreach thr [regexp -all -inline ${tp0} [v%fetch -- GET ${t} ${turl}]] { + if {[regexp -- ${tp1} ${thr} {} thrurl]} { + set thtml [v%fetch -- GET ${t} ${turl}] + foreach {- s} [regexp -all -inline {\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+} ${thtml}] { + lappend socks ${s} + } + } + } + + set socks [lsearch -not -all -inline -regexp ${socks} ${v:filter}] + if {![llength ${socks}]} { v%blog "[v%ifx johne/${t}] No socks found. FML" ${c} }\ + else { v%blog "[v%ifx johne/${t}] Done. [llength ${socks}] socks found." ${c} } + array set {v:proxies} [list ${t} ${socks}] + if {[string length ${lourl}]} { catch {v%fetch -cookies GET ${lourl}}; } + return 1 +} +# }}} +# {{{ bind pub S|- .matchbl v:socks:matchbl +bind pub S|- .matchbl v:socks:matchbl +proc v:socks:matchbl {n u h c t {zidx 0}} { + global {v:proxies} {v:proxies:rbl} {v:sites:rbl} + if {![channel get ${c} socks]} { return } + if {${zidx} == 0} { array set {v:proxies:rbl} [list ${t} [concat [last [array get {v:proxies} ${t}]]]] } + if {![llength [set proxies [last [array get {v:proxies:rbl} ${t}]]]]} { + v%blog "[v%ifx johne/rbl] don't have n e proxies for `${t}'" ${c}; return } + + if {![string length [set zone [lindex ${v:sites:rbl} ${zidx}]]]} { return } + set nproxies [llength ${proxies}]; set n 0 + v%blog "[v%ifx johne/rbl] ${t}: Matching ${nproxies} proxies against ${zone}" ${c} + array set {v:proxies:rbl} [list ${t} {}] + foreach ip ${proxies} { + incr n + if {[catch {set ha [apply format [join [list %d.%d.%d.%d [lreverse [scan ${ip} %d.%d.%d.%d]]]]].${zone}}] != 0} { + if {${n} >= ${nproxies}} { + v%dns:rbl - - - ${c} ${t} - ${zone} [incr zidx] [list ${n} ${h} ${u} ${c} ${t}] + } + } elseif {${n} >= ${nproxies}} { + dnslookup ${ha} \ + v%dns:rbl ${c} ${t} ${ip} ${zone} [incr zidx] \ + [list ${n} ${h} ${u} ${c} ${t}] + } else { dnslookup ${ha} v%dns:rbl ${c} ${t} ${ip} } + } +} +# }}} + +# {{{ Ancillary +proc v%fetch {{cookies ""} {method ""} site url {body ""}} { + global {v%cookies} + set method [string tolower ${method}] + set cookie [last [array get {v%cookies} ${site}]] + # N.B. Tcl is the most worthless language there is + set html [apply ::httpx::${method} \ + [list -headers ${url} [list Cookie [list ${cookie}]] ${body}]] + set status [lindex ${html} 0] + + if {[string first 20 ${status} 0] != 0 && \ + [string first 30 ${status} 0] != 0} { return -code return } ;# TODO + if {${cookies} == "-cookies"} { + set hdr [lindex ${html} 1]; set cookies "" + foreach idx [lsearch -all -regexp ${hdr} {Set-Cookie}] { + append cookies "[lindex ${hdr} [expr ${idx} + 1]]; " + }; if {[string length ${cookies}]} { + array set {v%cookies} [list ${site} ${cookies}] } + }; last ${html} +} + +proc v%dns:rbl {ip host s c t oip {zone ""} {last 0} {pargs ""}} { + global {v:proxies:rbl} + if {${last}} { + v%dns:rbl:fini ${t} ${c} ${zone}; v:socks:matchbl - - - ${c} ${t} ${last} + } elseif {!${s}} { array set {v:proxies:rbl} [list ${t} [concat [last [array get {v:proxies:rbl} ${t}]] ${oip}]] } +} + +proc v%dns:rbl:fini {t c zone} { + global {v:proxies:rbl} + set n [llength [last [array get {v:proxies:rbl} ${t}]]] + v%blog "[v%ifx johne/rbl] ${t}!${zone}: ${n} unlisted." ${c} +} +# }}} +# }}} +# }}} diff --git a/muhstik/prox/tor-enode.sh b/muhstik/prox/tor-enode.sh new file mode 100644 index 0000000..cd96477 --- /dev/null +++ b/muhstik/prox/tor-enode.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# +# -- by vxp +# + +hname="${1:?missing hostname}" +nick="${2:?missing nickname}" + +for _addr in `dnsip ${hname} 2>/dev/null` +do + host -t TXT `echo "${_addr}" |\ + awk -F. '{print $4 "." $3 "." $2 "." $1; }'`.tor.dnsbl.sectoor.de \ + >/dev/null 2>&1 + + [ $? -eq 0 ] && { echo "${2} is a Tor using faggot (listed in sectoor's Tor DNSBL)"; }; +done + +exit 1; + +# vim:ts=8 sw=8 noexpandtab + diff --git a/muhstik/proxies.txt b/muhstik/proxies.txt new file mode 100644 index 0000000..2f0da33 --- /dev/null +++ b/muhstik/proxies.txt @@ -0,0 +1,1938 @@ +78.38.151.6:3128 +196.216.70.189:80 +41.202.0.131:80 +83.18.139.188:80 +80.78.65.21:8080 +89.28.72.173:8080 +137.165.1.114:3124 +110.137.100.250:3128 +98.250.160.86:8085 +79.188.0.83:3128 +78.46.255.90:3128 +189.39.176.241:8080 +80.191.133.130:8080 +200.175.157.242:3128 +119.93.229.142:80 +221.213.50.115:8000 +123.242.172.4:80 +119.252.162.123:8080 +59.39.67.158:8080 +41.73.2.37:80 +61.183.225.94:81 +62.84.13.37:8080 +202.162.223.10:8080 +220.218.3.125:8080 +217.218.125.242:8080 +177.12.192.43:8080 +80.73.9.237:3128 +110.138.176.79:8080 +212.87.161.18:3128 +200.8.88.247:80 +94.100.28.218:3128 +85.254.213.163:80 +201.120.191.9:8080 +209.59.127.78:8080 +85.235.35.30:3128 +202.137.18.168:3128 +219.80.4.150:3128 +217.66.205.61:80 +180.178.99.126:80 +211.44.183.97:80 +200.94.71.73:8080 +84.203.233.22:3128 +68.180.50.85:8080 +196.214.65.85:80 +58.49.110.232:808 +218.207.217.245:80 +200.241.39.98:3128 +118.174.15.234:3128 +219.135.215.36:8080 +111.68.112.180:3128 +41.134.81.234:3128 +201.245.175.177:9090 +182.23.8.6:8080 +202.112.50.61:3128 +125.162.242.223:8080 +41.234.203.137:8080 +87.106.197.98:80 +59.90.210.100:6588 +200.54.92.187:80 +82.200.189.190:3128 +24.18.125.162:8080 +178.130.19.134:3128 +41.234.207.175:8080 +125.160.221.199:3128 +124.248.34.50:3128 +91.213.59.121:81 +94.210.195.36:3128 +118.97.169.138:8080 +118.97.75.226:8080 +216.8.197.226:3128 +212.80.14.60:80 +209.97.203.64:3128 +189.72.230.165:8080 +110.137.63.246:80 +180.247.122.86:3128 +221.178.210.37:3128 +194.151.57.244:808 +175.111.89.16:8080 +62.75.241.208:80 +222.60.8.86:80 +85.174.47.235:3128 +202.152.249.201:8080 +115.119.174.66:3128 +101.50.16.30:8080 +182.23.21.66:8080 +178.162.52.192:808 +201.209.69.134:8080 +201.45.71.84:3128 +163.29.138.21:8000 +210.172.151.14:8080 +79.175.41.110:80 +124.81.230.88:8080 +41.234.204.190:8080 +180.242.57.92:3128 +118.96.98.233:3128 +61.95.220.108:8080 +219.166.83.4:80 +222.77.14.55:8088 +201.245.175.172:9090 +59.106.183.32:3128 +222.172.220.67:8080 +202.80.113.80:3128 +173.203.109.204:80 +217.8.48.161:3128 +85.195.108.145:3128 +110.139.64.223:8080 +77.220.20.177:80 +210.82.49.51:3128 +212.14.38.95:80 +91.98.154.113:8080 +202.162.77.25:3128 +41.234.204.190:80 +80.14.199.217:80 +93.157.3.35:3128 +210.123.39.103:3128 +109.95.44.47:6588 +217.199.168.8:3128 +218.28.111.46:8080 +123.234.70.58:3128 +124.193.109.16:80 +222.43.60.123:8080 +189.125.107.38:8080 +120.87.42.126:9415 +109.238.238.242:8080 +77.246.173.28:3128 +187.62.226.214:3128 +189.108.94.106:3128 +187.72.224.193:3128 +91.218.32.118:3128 +94.112.246.234:8080 +187.103.105.211:8080 +182.48.16.12:80 +174.132.110.194:3128 +200.54.168.130:8080 +86.127.119.110:3128 +118.182.246.56:8080 +221.11.178.13:3128 +189.47.194.196:8080 +202.143.191.2:8080 +189.3.89.50:3128 +114.255.171.231:80 +98.226.72.218:8080 +61.233.25.166:80 +208.44.108.4:8080 +182.23.13.118:8080 +209.159.147.197:80 +180.180.241.84:8080 +190.7.62.59:8080 +190.223.92.153:8080 +211.143.128.212:8000 +89.28.36.253:3128 +83.173.175.220:8085 +218.25.54.144:80 +190.206.104.6:3128 +83.172.0.232:3128 +123.242.153.97:8080 +201.18.141.157:3128 +193.87.164.114:8080 +202.28.66.115:8080 +210.212.194.60:3128 +124.193.109.6:80 +80.32.191.8:3128 +41.190.16.17:8080 +41.138.53.17:3128 +202.127.28.67:3128 +201.86.128.8:3128 +110.139.125.201:8080 +211.139.10.182:80 +62.75.209.195:8080 +78.140.59.241:3128 +77.123.25.245:54321 +60.247.30.20:80 +201.48.212.166:8080 +94.127.251.125:9323 +222.124.179.148:8080 +119.235.48.68:3128 +77.78.3.83:9090 +110.139.65.146:8080 +77.91.195.16:3128 +91.210.44.130:8080 +203.190.52.219:3128 +193.136.124.228:3127 +180.246.178.133:8080 +202.43.117.105:3128 +88.190.16.207:3128 +122.205.95.27:80 +187.94.66.17:8080 +220.227.5.98:6588 +203.153.25.218:8080 +118.69.71.143:3128 +41.234.202.160:80 +94.41.92.27:8080 +94.229.92.41:3128 +200.251.62.51:3128 +190.85.21.51:80 +212.182.64.86:3128 +190.1.137.130:8080 +74.63.210.120:3128 +66.197.176.184:80 +202.147.198.69:8080 +58.211.78.203:8080 +211.139.10.183:80 +82.200.191.142:3128 +124.72.68.109:8088 +91.199.115.55:54321 +220.227.100.59:8080 +110.138.30.185:3128 +123.30.183.119:8118 +64.191.82.5:3128 +200.198.116.61:3128 +216.157.21.246:3128 +61.63.24.72:3128 +202.95.139.203:3128 +93.184.8.130:8080 +180.180.241.84:80 +94.155.46.7:80 +98.109.201.243:80 +211.162.70.66:3128 +218.248.240.190:8080 +201.76.179.154:8080 +80.91.174.70:80 +77.42.157.74:8090 +62.84.6.211:8080 +217.11.25.77:8080 +114.199.112.42:8080 +196.35.113.34:3128 +189.44.163.18:80 +118.98.215.156:3128 +195.158.19.210:3128 +178.162.105.21:3128 +86.51.150.195:80 +109.123.111.99:80 +178.156.73.56:8080 +217.70.59.23:3128 +201.248.33.3:8080 +110.136.191.157:3128 +81.180.66.34:8080 +125.67.231.157:8000 +109.104.89.117:80 +122.166.119.175:8080 +189.204.40.110:80 +202.51.107.37:8080 +87.242.19.216:8080 +66.71.246.181:3128 +212.174.46.2:8085 +128.119.41.211:3128 +217.174.20.189:8080 +195.158.101.184:3128 +195.74.53.190:80 +82.165.199.108:8008 +180.249.60.110:8080 +201.22.130.226:8080 +80.191.133.194:8080 +123.237.11.14:8080 +124.160.110.243:3128 +200.175.4.122:3128 +116.66.206.25:80 +80.82.51.193:3128 +187.4.104.99:8080 +94.23.192.151:8080 +61.247.55.14:8080 +84.22.29.140:8080 +190.14.226.161:8000 +222.133.189.7:8080 +211.144.20.13:8080 +122.184.133.210:8080 +212.75.136.248:8080 +80.253.129.221:8080 +68.190.11.214:8085 +201.219.17.24:8080 +189.54.44.25:3128 +186.201.216.234:3128 +187.17.22.6:3128 +61.183.225.94:81 +91.121.85.140:8001 +200.35.189.207:8080 +202.141.45.146:80 +85.25.132.122:80 +202.55.169.141:8080 +110.139.21.63:8080 +180.247.63.45:8787 +109.238.178.59:8080 +62.84.13.33:8080 +58.150.182.76:8080 +190.152.223.27:8080 +192.26.179.68:3124 +68.39.204.102:8088 +200.175.61.178:3128 +81.85.205.42:80 +220.225.200.155:80 +110.138.101.195:8080 +74.63.210.86:3128 +187.7.209.186:8080 +94.76.218.16:3128 +221.10.62.170:1337 +189.11.196.220:3128 +92.114.210.213:3128 +58.61.156.183:80 +189.80.247.178:8080 +60.248.69.179:3128 +69.65.135.202:3128 +41.222.65.173:9015 +213.22.77.97:80 +189.17.16.130:3128 +113.160.23.58:8888 +125.163.165.226:3128 +163.29.138.21:8888 +202.51.107.34:8080 +193.136.124.226:3124 +194.79.63.86:80 +125.167.109.97:80 +110.136.235.230:3128 +117.239.65.224:3128 +118.145.26.115:80 +180.178.99.126:8080 +213.88.71.248:808 +95.140.110.200:8080 +202.150.161.3:3128 +200.63.71.76:8080 +213.73.40.106:3124 +125.46.34.28:8080 +188.136.170.131:8080 +41.223.216.246:80 +89.169.143.4:3128 +221.10.124.131:1337 +109.104.92.13:8080 +222.124.178.98:3128 +222.239.76.156:3128 +93.152.146.220:8888 +92.63.102.66:8080 +110.164.191.2:8000 +71.226.84.156:8080 +61.152.245.169:8080 +41.73.17.10:8080 +116.45.112.72:18080 +200.131.50.10:8080 +122.181.155.245:3128 +118.96.8.196:8080 +182.23.8.146:8080 +212.174.46.3:8085 +72.51.41.235:3128 +213.248.47.87:8888 +187.66.84.48:3128 +203.94.82.139:3128 +61.12.4.203:8080 +217.73.161.146:80 +187.115.52.40:3128 +193.198.184.5:80 +200.150.73.138:80 +95.168.183.244:3128 +200.107.226.221:80 +212.33.80.6:8080 +85.185.75.72:80 +216.157.22.225:3128 +128.112.139.28:4815 +178.173.128.11:3128 +193.222.191.198:8080 +118.96.207.62:3128 +202.44.53.94:80 +122.72.20.236:443 +94.233.75.162:3128 +200.133.215.141:3128 +187.45.213.100:3128 +80.13.161.210:3128 +61.8.73.234:8080 +62.148.136.79:80 +14.63.240.81:80 +187.115.2.7:8080 +201.245.112.74:3128 +118.98.162.134:3128 +210.212.195.162:3128 +125.163.84.19:8080 +125.163.59.12:8080 +59.151.36.231:3128 +173.20.8.246:8085 +121.245.216.108:6588 +202.149.90.234:8080 +222.171.137.47:808 +74.63.210.84:3128 +115.78.135.30:80 +212.1.104.14:3129 +202.162.213.106:8080 +88.87.70.148:80 +121.12.249.207:9090 +187.7.131.43:3128 +129.15.78.30:4815 +85.190.44.101:80 +222.237.79.242:8080 +97.65.164.215:8080 +64.34.197.103:8118 +189.59.78.182:3128 +222.73.173.115:8118 +77.47.129.43:3128 +62.84.12.37:8080 +201.65.235.28:3128 +95.48.215.229:3128 +95.78.127.26:3128 +64.76.25.227:3128 +95.56.229.230:3128 +190.37.127.117:3128 +83.215.237.197:3128 +82.207.89.209:3128 +46.31.153.32:3128 +196.207.19.130:80 +89.218.117.162:3128 +77.42.220.100:3128 +222.173.162.21:443 +118.96.185.120:3128 +178.131.54.104:3128 +200.106.160.7:8080 +182.23.5.30:8080 +222.124.5.82:8080 +67.205.68.11:80 +69.63.74.25:8080 +110.139.203.8:8080 +74.63.255.214:8080 +193.87.164.124:8080 +85.201.63.72:8080 +200.119.12.198:3128 +198.7.242.41:3124 +218.195.101.80:3128 +200.251.58.190:8080 +124.248.34.51:3128 +180.247.4.194:8080 +59.120.218.128:8000 +193.87.164.125:8080 +84.72.71.92:80 +190.97.204.37:3128 +80.233.225.180:8080 +67.202.81.221:3128 +66.96.200.24:80 +125.64.4.24:808 +174.123.159.34:3128 +190.235.210.190:80 +80.55.46.138:8080 +201.41.83.188:3128 +221.204.246.150:8080 +189.2.127.70:8080 +95.56.229.106:3128 +218.207.217.245:8080 +192.26.179.69:3127 +58.119.6.163:80 +190.201.174.110:8080 +95.51.14.27:8080 +95.65.26.217:8080 +213.233.168.21:8888 +76.104.103.120:8080 +118.98.171.234:3128 +193.109.71.144:3128 +202.79.56.42:80 +210.44.126.14:3128 +125.167.217.10:8080 +68.169.38.115:27926 +201.159.238.9:3128 +200.41.235.75:8080 +118.96.185.98:8080 +77.220.20.178:80 +110.137.185.9:8080 +200.63.71.75:8080 +95.143.192.176:80 +69.63.74.17:8080 +189.89.69.12:3128 +118.96.255.129:8080 +202.129.48.222:8080 +123.242.153.98:80 +193.36.34.30:3128 +128.220.231.4:3124 +218.56.50.213:808 +190.97.204.37:80 +128.119.41.211:3127 +74.63.210.70:3128 +88.250.66.235:8086 +69.169.145.80:8080 +222.28.145.124:3128 +87.197.42.171:8080 +187.95.38.71:3128 +195.189.226.1:80 +202.150.164.5:8080 +202.58.167.52:8080 +202.159.8.74:8080 +110.139.56.64:8080 +24.99.71.121:8085 +196.207.19.133:80 +116.0.4.8:8080 +69.162.86.4:80 +119.38.129.44:80 +81.221.126.105:80 +219.83.100.204:8080 +217.219.25.27:80 +187.75.234.182:3128 +81.180.66.39:8080 +202.159.20.29:80 +218.207.217.237:80 +212.16.95.139:80 +41.160.153.182:8080 +212.45.5.172:3128 +95.143.192.173:80 +85.235.191.74:3128 +202.152.28.18:3128 +201.72.179.130:3128 +180.178.96.254:3128 +65.38.215.252:8080 +95.130.9.97:3128 +60.29.131.18:3128 +213.179.245.184:54321 +88.46.239.43:8080 +67.207.137.88:8118 +186.215.147.12:3128 +118.96.149.212:8080 +113.105.168.172:8080 +59.46.67.106:8080 +109.238.178.50:8080 +124.11.69.217:3128 +201.134.190.242:8080 +125.165.164.146:3128 +190.40.7.85:8080 +200.251.62.50:3128 +91.210.104.104:80 +84.203.233.2:3128 +122.214.157.119:8080 +182.23.8.42:8080 +77.220.20.195:80 +69.251.77.80:8085 +178.169.95.250:8080 +212.57.189.68:3128 +95.56.229.14:3128 +123.242.153.99:3128 +212.96.55.44:3128 +212.152.135.111:8080 +74.63.210.87:3128 +78.189.77.109:8086 +203.172.138.38:8080 +149.249.17.34:8080 +94.190.18.216:3128 +67.192.253.140:80 +24.217.98.225:9090 +88.146.208.123:3128 +80.250.44.22:8080 +60.2.102.150:80 +110.138.208.202:8080 +63.240.248.247:80 +41.249.250.211:80 +118.96.144.51:3128 +98.250.112.102:8085 +195.158.101.173:8080 +189.20.51.86:3128 +175.123.72.96:18080 +180.247.63.45:80 +118.96.30.52:8080 +123.30.183.169:3128 +202.58.71.182:8080 +193.136.124.226:3128 +82.200.191.50:3128 +193.109.162.4:3128 +221.204.246.21:8080 +60.248.223.128:8000 +222.60.8.74:80 +129.88.70.227:3124 +92.61.178.108:8080 +84.208.199.152:8123 +148.235.153.178:8080 +60.28.209.59:3128 +66.23.238.11:80 +164.100.149.35:8080 +94.112.246.234:8888 +222.216.2.36:8081 +184.107.136.146:80 +77.220.20.197:80 +187.6.55.28:8080 +201.219.17.29:8080 +113.192.1.99:3128 +222.177.13.25:3128 +182.23.5.170:8080 +211.239.84.249:80 +202.152.28.18:8080 +74.63.210.95:3128 +68.33.225.250:8080 +77.220.20.194:80 +79.99.217.136:9323 +211.143.128.202:8000 +189.77.31.84:3128 +116.44.152.24:8000 +187.111.93.6:8080 +222.209.210.106:1337 +213.88.120.194:808 +187.58.65.6:3128 +118.175.28.6:3128 +61.8.66.18:3128 +68.150.39.237:8085 +222.165.130.82:3128 +216.157.222.84:80 +187.52.2.74:3128 +201.93.162.220:3128 +118.182.20.242:8080 +58.49.110.232:808 +110.138.208.191:8080 +189.114.111.18:3128 +67.107.187.162:3128 +200.202.215.155:3128 +129.228.15.142:80 +119.177.15.238:3128 +118.97.164.78:8080 +219.135.215.35:8080 +122.155.0.190:3128 +80.78.136.83:8080 +83.234.147.233:3128 +201.122.160.74:8080 +109.191.55.118:3128 +46.150.2.17:54321 +212.160.138.237:80 +91.210.44.1:8080 +201.120.184.78:8080 +202.41.135.68:8080 +89.253.113.228:80 +203.162.163.79:80 +125.17.68.38:8080 +125.167.79.101:8080 +110.139.180.151:8080 +87.117.135.86:8080 +98.239.82.6:8085 +82.200.191.14:3128 +110.137.65.12:8080 +83.169.45.51:3128 +77.123.25.245:54321 +61.91.248.162:8080 +41.223.216.246:80 +84.74.11.149:3128 +193.109.165.234:3128 +89.187.142.113:3128 +190.14.232.155:8080 +87.117.238.254:3128 +60.28.209.24:3128 +188.136.170.130:8080 +208.110.220.133:8080 +211.239.84.209:443 +85.34.247.139:3128 +77.121.124.245:8000 +213.197.81.50:3128 +200.195.156.234:3128 +207.44.196.45:9090 +77.68.45.120:8888 +201.15.238.34:3128 +81.5.86.201:3128 +62.109.5.106:80 +219.142.118.46:3128 +46.98.111.202:54321 +86.62.120.92:8010 +58.22.151.6:80 +143.215.131.198:4815 +200.35.177.233:8080 +188.64.145.252:8081 +95.143.192.28:80 +189.210.91.3:8080 +202.55.169.143:8080 +221.174.16.60:80 +58.22.122.100:80 +74.63.210.66:3128 +218.18.115.66:8080 +95.38.29.118:8080 +41.134.81.234:80 +123.15.53.17:3128 +80.191.133.248:8080 +58.57.107.142:1337 +187.29.55.129:8080 +211.101.55.183:808 +200.253.116.4:3128 +95.59.26.212:3128 +178.131.54.103:3128 +95.69.148.19:54321 +90.189.214.117:8000 +183.91.74.68:8080 +167.216.12.135:80 +69.10.130.205:8080 +202.51.117.97:8888 +189.200.240.65:80 +194.154.200.21:3129 +59.39.146.252:8080 +218.182.134.23:8080 +187.2.146.82:3128 +187.54.224.116:80 +119.93.40.234:3128 +61.178.63.198:3128 +188.75.213.108:80 +125.160.76.177:8088 +200.167.185.179:3128 +114.199.125.156:8080 +93.125.74.172:8080 +109.230.217.103:808 +175.41.142.118:80 +200.143.204.3:3128 +180.246.225.122:8080 +221.10.44.131:80 +93.95.158.61:8080 +200.186.225.250:8080 +200.123.69.211:8080 +211.222.202.109:80 +201.238.173.18:80 +79.172.35.74:81 +118.98.31.4:3128 +118.96.148.72:8080 +189.31.143.218:3128 +119.161.238.90:80 +124.117.250.178:1337 +187.4.128.10:3128 +122.181.155.243:3128 +190.41.181.140:8080 +213.174.44.135:8118 +46.51.158.75:8080 +209.144.224.211:80 +187.111.223.10:8080 +87.120.166.182:88 +88.135.217.66:3128 +202.4.102.2:80 +110.137.119.185:80 +41.234.204.16:8080 +117.141.33.2:8080 +190.98.157.8:3128 +78.39.97.5:3128 +209.97.203.60:3128 +118.97.81.7:80 +80.191.251.140:3128 +109.238.238.248:8080 +87.117.201.172:80 +190.121.135.179:8080 +83.3.160.138:8080 +200.196.234.30:8080 +202.164.60.123:8080 +202.6.96.24:80 +203.128.84.28:8080 +80.191.93.210:8080 +95.56.229.42:3128 +209.159.147.195:80 +217.66.212.243:8080 +113.98.195.85:80 +202.169.226.208:8080 +143.215.131.198:3128 +203.113.117.139:3128 +202.6.96.16:80 +129.97.74.12:3124 +78.192.70.254:3128 +91.121.71.166:3128 +196.200.80.4:8080 +77.246.49.202:3128 +203.29.27.114:80 +92.61.178.97:8080 +217.219.67.187:8080 +124.193.109.9:80 +41.234.207.207:80 +219.147.61.21:3128 +81.0.246.13:3128 +222.240.214.53:80 +128.220.231.4:3127 +203.130.195.193:8080 +137.165.1.114:3127 +221.204.246.161:8001 +213.165.90.63:80 +93.66.22.51:3128 +180.247.63.78:8080 +114.34.132.176:3128 +89.174.11.7:3129 +85.192.130.182:80 +213.251.187.190:3128 +94.127.68.53:8080 +83.174.221.146:3128 +180.183.201.195:3128 +41.234.205.36:8080 +189.200.240.68:80 +167.192.220.240:80 +110.139.111.3:8118 +216.27.81.163:8080 +78.38.12.13:80 +200.29.216.146:8080 +118.96.137.216:3128 +189.7.33.118:8080 +123.65.0.175:3128 +78.38.220.170:3128 +89.28.178.40:8080 +82.115.28.134:8080 +66.197.252.182:80 +125.163.161.227:3128 +217.10.246.4:8080 +212.24.169.22:8080 +124.160.89.58:3128 +202.43.178.41:3128 +109.195.35.93:3128 +188.231.188.35:3128 +118.122.67.81:1337 +201.31.36.130:3128 +122.181.155.246:3128 +190.24.222.40:3128 +217.196.219.201:8080 +218.207.217.239:80 +137.165.1.115:3124 +69.10.43.244:80 +123.49.36.234:8080 +143.89.188.2:8080 +189.121.108.140:3128 +198.133.224.147:3124 +187.6.253.14:3128 +116.66.207.70:8080 +202.115.7.51:808 +210.77.19.128:8000 +74.63.210.100:3128 +190.97.219.109:8080 +174.129.181.183:3128 +200.199.217.162:3128 +116.0.4.8:80 +116.50.223.50:8080 +69.63.74.1:8080 +123.242.153.99:8080 +218.207.217.229:80 +87.103.134.159:8080 +62.162.28.226:80 +123.108.103.102:8081 +118.98.160.18:8080 +200.206.26.218:3128 +86.109.52.114:3128 +110.172.176.2:8080 +222.124.166.135:3128 +164.78.252.24:80 +200.198.71.74:3128 +200.37.186.146:80 +82.200.225.194:3128 +180.246.121.90:3128 +69.10.43.245:80 +188.121.135.99:8080 +222.162.105.110:8080 +211.239.84.224:443 +111.171.216.146:80 +189.108.138.21:3128 +121.243.32.138:3128 +201.24.152.98:3128 +118.97.34.125:8080 +190.235.210.77:3128 +88.119.152.176:3128 +217.66.205.76:8080 +208.78.98.241:80 +192.26.179.68:3127 +91.213.87.3:3129 +219.83.101.234:8081 +218.182.134.23:8080 +59.50.46.130:8080 +200.84.203.19:3128 +61.51.111.61:3129 +82.200.163.150:3128 +110.139.58.92:8080 +219.83.55.18:8080 +217.145.32.62:8080 +122.194.116.70:3128 +82.200.189.50:3128 +218.207.217.238:80 +74.63.210.91:3128 +195.117.16.33:8080 +80.191.122.11:3128 +175.41.168.169:3128 +210.101.131.231:8080 +122.252.243.100:8080 +74.63.210.116:3128 +193.87.164.123:8080 +110.136.162.80:3128 +95.211.4.70:80 +200.251.62.78:3128 +98.218.50.216:8085 +80.191.133.201:8080 +63.223.127.49:3128 +122.181.155.248:3128 +114.199.116.14:80 +118.98.215.10:8080 +211.143.128.212:80 +187.157.140.156:3128 +121.14.17.54:80 +118.175.28.17:3128 +211.75.73.36:8000 +202.159.20.29:8080 +69.63.74.9:8080 +78.38.12.13:8080 +222.173.162.22:443 +72.159.131.3:554 +124.161.63.194:80 +77.42.220.100:80 +180.247.54.111:8080 +123.127.212.90:8888 +71.202.198.115:8080 +201.36.98.184:3128 +114.113.145.206:8080 +187.45.213.158:3128 +217.199.168.80:3128 +46.42.4.138:3128 +110.5.98.162:80 +92.243.13.92:80 +121.202.130.40:3128 +80.85.144.183:3128 +217.64.21.116:3128 +74.63.210.96:3128 +76.246.207.215:80 +62.109.16.134:8080 +211.222.202.60:8080 +201.245.181.158:8080 +114.255.238.203:80 +62.118.118.138:3128 +161.162.87.81:8080 +216.157.22.224:3128 +186.201.109.10:3128 +59.49.136.240:3128 +109.230.128.179:8080 +202.21.177.37:8080 +82.200.191.22:3128 +118.97.164.79:8080 +109.251.105.237:8000 +200.150.66.226:3128 +125.165.164.146:80 +201.219.17.29:3128 +218.26.117.125:8080 +85.65.156.89:8088 +200.201.188.114:3128 +211.139.10.174:80 +218.94.6.146:3128 +209.159.147.196:80 +58.215.78.157:808 +211.239.84.234:80 +91.210.46.1:8080 +190.41.180.143:3128 +79.172.35.74:82 +120.136.22.34:8000 +200.63.71.73:8080 +213.0.88.85:8080 +208.123.213.30:80 +123.242.153.99:80 +203.76.196.107:8080 +119.38.129.43:80 +212.16.95.139:3128 +112.133.195.28:8080 +41.72.216.146:3128 +187.16.249.134:3128 +190.37.105.161:8080 +182.23.26.10:8080 +184.73.8.79:80 +203.232.208.116:8080 +189.10.247.178:3128 +180.247.172.205:3128 +91.120.21.169:80 +182.23.12.50:8080 +183.181.172.176:80 +218.240.58.174:3128 +192.26.179.68:3128 +82.199.75.35:8080 +175.41.133.115:80 +115.69.217.114:8080 +129.88.70.226:3124 +80.191.133.206:8080 +94.76.218.16:443 +94.23.23.171:3128 +211.139.10.170:80 +201.88.254.242:3128 +222.124.138.241:8080 +186.215.209.229:3128 +121.52.87.97:3128 +221.1.96.22:563 +222.124.8.13:8000 +78.39.97.5:80 +83.3.160.138:80 +95.69.252.90:3128 +222.169.11.102:8080 +180.244.221.162:8080 +68.68.74.62:8085 +80.11.119.226:8080 +193.87.164.121:8080 +115.85.145.68:80 +190.121.138.217:8080 +202.153.228.180:3128 +213.29.221.46:8080 +187.84.226.147:8000 +95.65.26.94:8080 +200.196.234.26:8080 +190.40.7.85:80 +221.203.79.101:80 +202.171.253.70:80 +83.234.58.168:8080 +195.114.128.14:3128 +123.7.51.34:808 +220.227.100.59:8081 +182.23.12.130:8080 +187.115.194.222:3128 +187.48.61.32:3128 +200.63.71.74:8080 +219.232.255.222:8080 +111.1.32.121:80 +80.194.98.139:80 +84.3.147.190:3128 +69.163.96.2:8080 +212.156.115.55:3128 +80.50.137.118:8080 +221.1.96.22:443 +218.28.235.42:3128 +161.162.87.81:80 +46.150.2.17:54321 +67.23.8.46:80 +93.116.5.191:8080 +125.210.188.36:80 +201.33.37.6:8080 +119.235.53.130:3128 +200.165.90.210:8080 +72.167.138.5:80 +187.115.193.56:3128 +41.190.38.166:3128 +186.200.12.5:80 +61.164.40.151:8080 +193.140.129.139:80 +93.157.3.36:3128 +189.59.4.19:3128 +64.58.20.254:3128 +74.63.210.77:3128 +202.153.228.180:8080 +115.111.42.134:8080 +41.234.204.249:80 +216.221.204.65:8085 +58.19.176.200:8080 +222.138.178.244:8080 +61.233.25.166:80 +80.191.133.220:8080 +189.51.195.26:8080 +60.171.37.134:8080 +41.223.52.109:8888 +211.239.84.199:80 +211.239.84.249:443 +202.108.5.35:8080 +116.52.149.60:8080 +202.51.226.142:80 +61.185.143.178:8080 +211.239.84.207:443 +89.109.13.118:3128 +188.75.213.108:80 +178.150.132.178:8080 +209.221.131.75:80 +122.225.100.13:8080 +86.28.251.88:3128 +219.141.209.35:80 +80.191.119.11:3128 +202.115.12.140:808 +41.160.153.181:8080 +85.185.75.72:8080 +95.56.247.102:3128 +62.84.12.41:8080 +110.138.184.117:8080 +137.165.1.115:3128 +74.63.210.79:3128 +89.23.147.89:3128 +148.208.236.5:8080 +124.193.109.10:80 +196.212.4.2:8080 +212.33.216.225:8080 +122.225.19.181:3128 +118.96.90.200:80 +202.79.56.42:8080 +122.144.14.110:8080 +219.142.62.13:8080 +222.60.8.74:8080 +109.238.238.243:8080 +79.174.79.152:8080 +80.191.120.129:3128 +195.84.48.28:80 +193.255.184.210:3128 +200.37.255.227:3128 +200.155.36.137:8080 +77.220.20.193:80 +221.174.16.60:80 +78.39.198.205:8080 +210.125.84.41:3124 +189.75.241.23:8080 +67.207.137.88:8118 +189.76.227.70:3128 +195.190.23.28:80 +200.37.186.146:8080 +66.195.148.37:80 +115.127.8.162:8080 +190.203.38.130:8080 +203.41.211.209:80 +111.1.32.120:80 +75.109.212.192:8080 +211.81.22.14:3128 +91.200.171.4:8080 +180.243.92.86:8080 +196.207.19.129:80 +60.241.215.253:8080 +213.141.134.208:8080 +75.65.64.118:8085 +217.128.87.25:8080 +189.108.29.186:3126 +196.212.4.42:8080 +201.134.190.242:8888 +41.234.205.227:8080 +82.200.189.186:3128 +202.23.159.52:3128 +125.77.200.134:3128 +213.125.24.236:8080 +91.144.17.141:80 +220.231.93.41:80 +203.80.182.227:8080 +125.162.41.222:8080 +125.163.161.227:8080 +78.188.68.239:8080 +189.113.69.170:3128 +74.63.210.67:3128 +190.37.204.100:8080 +74.63.210.104:3128 +110.139.174.69:3128 +67.170.180.141:8085 +114.111.55.86:80 +190.41.69.235:8080 +220.232.222.3:80 +190.235.208.46:80 +217.26.250.26:8080 +221.212.196.26:8080 +210.194.85.215:8080 +210.243.157.250:3128 +76.74.239.9:8090 +80.191.133.202:8080 +125.67.231.157:8000 +200.119.10.198:3128 +78.157.16.4:3128 +180.246.178.133:80 +91.211.58.131:8080 +77.123.63.113:3128 +173.160.74.249:8080 +81.33.20.215:3128 +122.72.28.28:80 +202.143.191.2:80 +82.199.75.41:8080 +222.217.3.237:3128 +218.248.25.20:3128 +218.87.150.138:1337 +62.233.138.180:3128 +89.43.25.90:2103 +202.58.71.17:8080 +89.20.136.214:3128 +122.193.64.5:80 +203.153.25.218:80 +62.56.132.211:3128 +187.12.28.60:3128 +202.164.211.74:8080 +94.100.30.30:3426 +203.212.0.114:8080 +200.27.114.250:8080 +211.239.84.204:443 +114.143.182.90:3128 +117.34.7.21:3128 +122.155.13.135:3128 +189.11.196.221:3128 +217.66.205.61:8080 +193.16.247.50:3128 +110.138.215.48:80 +217.10.246.2:8080 +222.124.140.138:3128 +125.163.241.235:8000 +110.137.89.127:8080 +74.63.210.111:3128 +96.19.176.228:8085 +89.174.52.163:80 +210.194.85.215:8080 +122.249.237.130:80 +222.124.223.42:3128 +218.203.176.126:8080 +85.21.20.82:80 +80.191.133.204:8080 +118.174.16.195:3128 +202.55.169.145:8080 +201.249.113.117:3128 +95.59.143.82:3128 +173.201.191.190:80 +218.26.6.226:1337 +58.24.132.176:9415 +221.130.177.87:3128 +119.47.91.6:8080 +94.190.18.216:3128 +200.111.101.246:8080 +202.55.173.46:8080 +118.97.32.16:8080 +187.76.192.186:3128 +116.90.208.139:8080 +196.28.228.254:8080 +80.191.174.3:80 +124.193.109.14:80 +58.17.235.175:808 +122.154.140.93:3128 +123.7.87.215:8080 +190.235.210.190:8080 +200.51.203.200:80 +67.202.108.170:8080 +87.111.202.246:8080 +110.138.215.48:8085 +201.45.196.194:8080 +211.239.84.233:443 +88.191.131.158:80 +113.21.73.213:6588 +201.219.17.24:3128 +189.11.196.218:3128 +190.41.135.204:80 +97.85.186.3:8085 +75.65.27.58:8085 +201.33.10.27:8080 +116.90.208.30:80 +200.155.36.137:3128 +59.165.47.138:3128 +193.36.34.31:8080 +46.30.224.3:8080 +41.134.13.66:8080 +88.247.111.5:8088 +203.148.84.178:3128 +116.90.208.30:8080 +92.46.62.229:3128 +193.87.102.200:3128 +218.207.217.227:80 +24.30.46.180:8118 +221.192.134.92:3128 +182.23.10.66:8080 +189.17.58.194:3128 +210.176.208.237:3128 +78.38.12.9:8080 +110.138.181.237:8080 +76.17.93.67:8087 +190.228.33.114:8080 +110.137.121.250:8080 +118.97.169.138:80 +74.122.154.245:3128 +87.237.62.174:3128 +194.0.150.114:8080 +180.247.122.86:80 +58.19.176.201:8080 +101.50.17.1:8080 +128.220.231.4:3128 +222.127.10.200:8080 +217.219.63.130:3128 +202.51.226.142:8080 +220.194.44.141:80 +64.251.30.243:3128 +97.65.164.213:8080 +211.139.10.173:80 +119.47.91.5:3128 +202.43.182.37:8080 +125.165.125.164:8080 +60.51.176.162:8080 +189.89.70.127:6588 +115.249.54.51:8080 +77.243.116.102:3128 +151.8.65.5:80 +203.153.25.204:8080 +221.178.210.37:80 +125.162.171.101:8080 +74.63.210.82:3128 +61.154.12.124:3128 +187.45.85.162:3128 +213.179.245.184:54321 +212.174.46.10:8085 +200.198.116.54:3128 +194.154.128.65:8080 +210.212.204.163:8080 +118.96.94.252:3128 +61.19.252.148:8088 +200.63.71.225:8080 +189.127.190.211:3128 +113.53.251.117:3128 +85.135.32.105:3128 +95.56.229.82:3128 +180.247.4.194:3128 +110.139.125.201:80 +218.210.199.252:3128 +186.201.27.66:3128 +202.58.161.182:80 +182.23.8.98:8080 +189.89.208.147:3128 +118.98.232.50:3128 +94.101.184.130:3128 +189.23.119.226:3128 +187.5.91.82:8080 +187.157.140.156:8080 +94.112.246.2:8080 +201.49.209.206:8080 +200.201.188.116:3128 +125.234.238.188:3128 +123.231.225.3:3128 +211.143.128.202:80 +200.249.144.10:3128 +118.97.237.106:8080 +74.63.210.122:3128 +109.191.45.34:3128 +187.115.156.139:8080 +221.213.50.115:8000 +110.137.39.211:80 +202.186.124.148:80 +41.234.206.107:80 +217.196.219.202:8080 +110.139.4.248:3128 +85.216.186.17:8080 +195.42.115.76:3128 +218.26.117.125:8080 +94.240.218.19:8008 +128.111.52.63:3128 +78.189.159.107:8086 +200.167.185.133:3128 +189.22.158.130:3128 +113.160.23.58:8888 +187.141.76.5:8080 +125.163.166.14:8080 +162.105.243.109:3128 +175.123.72.96:18080 +180.241.250.39:8080 +178.150.249.47:3128 +202.43.74.178:8080 +166.111.48.66:3128 +201.65.17.250:3128 +200.75.42.66:3128 +77.27.27.65:16589 +218.207.217.232:80 +200.24.227.171:3128 +202.115.30.239:808 +61.139.104.207:8080 +201.245.64.98:3128 +83.242.229.190:3128 +62.162.28.226:3128 +200.63.71.54:8080 +201.90.175.74:3128 +118.98.168.250:3128 +196.202.55.9:80 +77.74.11.182:8080 +200.56.240.59:3128 +109.231.69.140:3128 +203.148.85.162:3128 +125.99.191.156:3128 +222.186.44.107:808 +88.191.129.214:80 +187.6.242.68:8080 +58.215.78.157:808 +89.106.13.93:80 +195.114.128.28:3128 +209.34.241.44:80 +89.218.79.54:3128 +122.181.155.250:3128 +123.127.163.27:8080 +209.20.82.179:3128 +95.59.140.230:3128 +77.220.20.198:80 +60.29.123.66:3128 +195.158.102.135:8080 +221.7.145.42:8080 +182.23.6.154:8080 +222.43.61.2:8080 +61.247.49.141:8080 +195.228.212.158:3128 +113.161.77.184:8080 +125.167.109.97:8080 +94.229.92.51:3128 +221.204.246.161:80 +182.23.10.30:8080 +201.45.71.84:80 +201.12.129.59:3128 +109.123.75.192:80 +116.66.206.161:8080 +59.72.85.12:8080 +69.10.43.242:80 +202.72.196.66:80 +109.70.188.6:3128 +80.227.199.172:8080 +69.197.152.207:3128 +217.219.97.11:3128 +119.38.129.45:80 +92.61.178.107:8080 +202.171.253.71:80 +91.211.186.81:8090 +193.230.208.12:80 +77.51.244.3:3128 +189.111.112.219:8080 +125.165.184.223:8080 +202.143.143.130:80 +189.74.20.92:8080 +122.129.100.242:8080 +202.182.174.194:3128 +118.174.21.140:3128 +180.246.230.235:8080 +60.28.212.184:80 +74.63.210.119:3128 +203.24.77.195:8080 +110.137.57.68:80 +109.104.89.118:80 +202.108.5.35:8080 +59.90.104.90:3128 +78.188.22.103:3128 +72.52.126.3:80 +91.121.218.169:8000 +189.8.52.186:3128 +193.87.164.122:8080 +188.136.170.129:8080 +193.173.20.187:3128 +218.207.217.230:80 +195.205.9.206:8080 +60.28.209.48:3128 +109.204.9.25:3128 +82.165.133.95:80 +218.14.227.197:3128 +200.149.134.189:3128 +121.12.249.207:3128 +125.161.164.75:8080 +41.204.71.114:8080 +113.160.48.58:8080 +64.71.153.58:3128 +110.136.160.77:3128 +189.108.155.120:3128 +213.134.41.243:80 +200.69.122.110:8080 +222.185.237.35:3128 +118.96.123.8:8080 +202.159.18.187:8080 +69.197.152.210:3128 +202.4.102.2:3128 +193.254.43.4:8080 +202.44.53.167:80 +211.46.139.55:8080 +87.244.213.3:8080 +82.200.189.62:3128 +190.90.93.91:8080 +203.110.169.64:80 +115.252.157.189:6588 +213.192.80.226:3128 +88.247.165.242:8088 +85.105.204.209:8086 +24.125.235.67:8085 +110.137.57.3:8080 +201.242.203.144:8080 +97.65.164.214:8080 +69.104.98.153:80 +95.141.138.66:3128 +218.207.217.233:80 +190.202.124.18:3128 +118.69.71.191:8080 +85.68.201.71:3128 +68.0.133.251:8080 +178.32.160.81:3128 +173.216.90.236:8085 +125.163.201.154:8080 +80.73.9.4:3128 +122.181.155.249:3128 +222.124.138.250:8080 +189.11.196.219:3128 +173.201.25.109:1685 +60.175.203.243:8080 +193.36.34.31:3128 +79.106.14.127:8080 +123.252.135.51:8085 +67.249.168.198:8085 +83.136.114.18:3128 +114.129.27.228:8080 +110.137.6.74:8080 +78.155.120.77:3128 +193.85.149.67:8080 +80.191.250.183:8080 +125.163.176.173:8080 +202.143.143.130:8080 +220.232.222.3:80 +187.111.192.5:8080 +193.167.187.185:3127 +175.100.114.170:8080 +218.207.217.226:80 +110.138.208.116:8008 +78.46.64.26:8118 +128.111.52.63:3127 +196.216.56.18:3128 +221.137.168.166:9415 +118.96.148.183:3128 +186.125.192.74:8080 +80.74.160.22:8080 +24.1.225.249:8080 +195.187.142.233:80 +124.193.109.7:80 +174.37.138.181:80 +89.218.95.86:3128 +211.239.84.202:443 +69.90.176.33:3129 +217.174.18.196:8080 +186.194.5.66:8080 +222.161.3.133:8080 +209.221.131.75:80 +211.239.84.245:80 +77.104.103.242:8080 +188.136.156.116:3128 +188.138.90.136:80 +92.61.113.185:80 +89.218.95.38:3128 +201.20.18.165:3128 +84.38.153.146:8123 +187.11.133.58:8080 +93.79.98.217:3128 +202.115.12.140:808 +111.8.33.249:80 +213.242.194.234:8000 +46.188.4.32:3128 +210.101.131.232:8080 +69.169.145.80:3128 +208.78.61.118:3128 +81.31.166.89:8888 +202.171.34.234:3124 +190.147.197.46:8080 +78.131.55.151:8080 +77.242.81.220:8080 +173.192.60.3:80 +80.36.161.169:80 +219.8.150.2:8080 +175.136.236.137:3128 +98.222.109.235:2479 +188.136.128.179:8080 +149.249.17.34:8080 +218.203.206.134:3128 +124.160.110.244:3128 +93.166.121.106:8118 +118.96.218.166:8080 +113.255.30.191:3128 +125.167.230.240:8080 +61.247.48.93:8080 +94.77.162.245:3128 +109.238.238.247:8080 +91.217.254.60:3128 +68.179.26.108:80 +71.59.14.27:3128 +211.239.84.130:443 +81.137.255.103:80 +222.88.40.6:8080 +118.97.169.173:8080 +88.119.152.180:3128 +201.88.254.242:80 +203.153.29.50:8888 +88.255.153.230:80 +82.200.191.146:3128 +87.120.215.220:3128 +178.253.100.38:3128 +24.156.34.154:80 +93.113.206.1:808 +195.70.145.15:8000 +122.183.203.55:8080 +184.107.136.146:443 +200.186.74.122:8080 +91.203.178.139:8080 +85.173.81.197:8000 +122.214.157.119:8080 +109.251.105.123:3128 +110.136.234.120:3128 +122.226.143.230:1337 +58.141.101.5:8000 +210.5.152.17:3128 +182.23.8.58:8080 +200.141.202.162:8080 +89.218.117.114:3128 +69.63.74.13:8080 +190.235.208.46:8080 +95.181.55.66:3128 +46.50.214.127:3128 +98.251.32.111:8085 +202.152.28.18:80 +115.69.217.106:8080 +190.187.39.140:3128 +222.77.69.210:3128 +207.62.217.252:3128 +69.63.74.18:8080 +122.169.112.140:8080 +118.97.37.234:8080 +62.82.216.43:80 +216.160.210.9:80 +72.29.67.20:8080 +85.214.216.250:80 +79.172.26.78:80 +115.236.98.109:80 +59.51.24.226:80 +195.162.130.20:8080 +222.172.220.67:8080 +202.51.117.22:8888 +118.96.94.142:8080 +122.195.74.159:80 +178.218.226.70:8080 +200.48.16.69:3128 +200.183.205.221:3128 +213.88.120.194:808 +95.104.192.200:3128 +24.139.43.249:8085 +125.163.176.173:80 +118.103.176.36:3128 +203.124.152.170:80 +180.246.178.126:3128 +188.138.32.165:3128 +125.163.53.17:8080 +222.124.212.240:3128 +82.115.72.57:8080 +202.203.132.29:3128 +202.98.208.186:3128 +118.96.24.227:8080 +78.39.46.130:3128 +109.88.13.122:8080 +67.15.104.28:80 +69.10.130.204:8080 +121.18.97.250:8080 +213.73.40.105:3124 +194.8.154.157:8888 +109.230.66.14:3128 +61.19.252.145:8088 +79.127.144.2:8080 +188.136.170.134:8080 +72.82.255.104:3128 +122.181.155.244:3128 +200.84.98.57:8080 +58.246.200.114:80 +80.11.112.113:80 +118.98.160.45:3128 +202.4.106.58:3129 +89.218.231.82:3128 +200.201.188.115:3128 +221.203.79.101:443 +195.60.119.8:80 +110.172.176.65:8080 +109.68.186.218:3128 +91.144.189.8:3128 +112.215.18.62:8080 +41.193.36.106:3128 +211.53.208.28:3128 +194.160.208.2:80 +220.225.61.181:8080 +78.39.55.11:3128 +189.26.251.234:3128 +190.5.140.30:6588 +67.22.224.81:3128 +148.122.38.198:8080 +78.139.65.109:3128 +128.252.19.18:3127 +200.24.227.170:3128 +91.188.192.94:3128 +98.250.119.21:8085 +109.171.124.179:8000 +201.210.187.103:8080 +208.223.222.23:80 +24.217.98.225:9090 +66.23.238.10:80 +201.18.15.11:8080 +203.29.27.114:3128 +220.225.83.28:80 +210.212.164.162:3128 +61.147.67.61:3128 +87.111.199.136:8080 +195.114.128.9:3128 +115.252.157.130:6588 +213.197.182.78:3128 +205.202.120.216:3128 +95.104.113.60:8080 +95.56.229.186:3128 +79.175.34.38:8080 +222.86.192.246:3128 +123.7.51.34:808 +89.108.171.10:3128 +190.128.218.90:8080 +211.239.84.198:443 +200.251.200.1:8080 +122.183.136.55:80 +202.93.137.226:8080 +188.138.35.47:3128 +78.188.153.229:8080 +193.252.45.218:3128 +187.11.229.55:80 +125.46.74.185:3128 +58.22.151.6:80 +115.248.25.139:8080 +200.54.92.187:3128 +78.130.216.232:8080 +41.189.36.26:3128 +201.134.190.242:3128 +123.242.153.97:80 +93.92.129.152:80 +211.46.139.55:80 +95.59.140.242:3128 +202.112.49.247:3128 +203.172.177.237:8080 +194.170.16.75:80 +95.143.192.29:80 +208.78.97.11:80 +201.75.6.142:3128 +189.106.229.115:80 +91.199.115.55:54321 +222.173.162.22:563 +59.78.19.103:8000 +200.242.2.162:8080 +113.252.3.84:3128 +75.126.176.161:80 +118.98.163.134:8080 +125.75.204.22:8080 +119.1.174.28:3128 +81.12.52.98:8080 +189.204.40.110:80 +189.37.0.130:3128 +193.40.35.128:80 +84.74.11.149:80 +113.252.6.177:3128 +85.21.122.66:8080 +211.222.202.60:80 +121.18.77.14:8080 +125.165.185.145:8080 +110.137.122.206:3128 +41.234.204.183:8080 +220.227.90.238:8080 +203.128.71.242:3128 +110.138.24.205:8080 +188.136.170.132:8080 +222.168.18.196:80 +201.65.237.68:3128 +74.55.154.55:3128 +202.150.164.2:8080 +190.25.231.4:3128 +74.63.210.109:3128 +212.138.108.79:80 +123.232.119.100:80 +212.28.231.253:80 +189.17.0.35:8000 +189.115.24.127:3128 +217.30.247.37:8085 +200.253.116.2:3128 +77.220.20.199:80 +189.31.143.218:80 +219.93.35.226:8080 +195.146.34.13:80 +203.130.226.195:8081 +194.85.80.107:8080 +188.136.170.133:8080 +110.164.214.118:3128 +78.39.56.11:3128 +212.192.120.67:3128 +85.72.35.240:8080 +77.220.20.179:80 +77.220.20.192:80 +122.160.148.113:8000 +180.247.4.194:80 +121.22.40.185:3128 +196.207.19.134:80 +188.138.35.39:3128 +90.188.254.142:3128 +200.198.71.75:3128 +189.111.237.64:3128 +200.75.42.67:3128 +125.167.109.97:3128 +187.108.40.234:3128 +188.136.170.140:8080 +123.242.172.4:80 +110.139.174.69:80 +212.156.175.220:3128 +85.135.32.100:3128 +98.226.72.218:8080 +98.195.68.142:3128 +202.58.161.182:8080 +123.242.153.98:3128 +76.31.16.154:8080 +180.241.107.192:8080 +75.101.150.190:80 +187.51.33.35:8080 +71.88.98.124:8085 +202.57.69.84:80 +125.40.181.151:8080 +95.56.229.118:3128 +190.255.41.211:80 +110.139.207.207:8080 +222.60.8.66:80 +218.94.65.96:3128 +187.6.85.33:8080 +41.234.207.134:80 +123.242.153.97:3128 +222.165.130.82:80 +80.59.34.175:8080 +201.244.14.36:3128 +80.36.161.169:8080 +202.196.103.41:8080 +58.254.134.201:8080 +201.234.140.89:3128 +187.75.226.83:3128 +203.148.84.178:8080 +201.218.63.4:8080 +66.119.43.30:80 +113.192.1.99:8080 +122.129.201.121:8080 +196.207.19.132:80 +58.210.6.50:1337 +212.75.141.100:808 +89.218.203.118:3128 +120.136.22.154:8080 +74.50.152.22:8085 +118.96.252.50:8080 +61.8.73.59:8080 +92.50.133.26:88 +222.124.5.82:80 +189.28.112.106:80 +81.177.144.176:3128 +125.167.233.138:80 +61.153.52.31:80 +75.32.99.16:80 +211.139.10.169:80 +88.191.38.44:3131 +219.139.158.60:8080 +190.29.99.31:8080 +125.163.249.203:80 +118.97.169.138:8000 +77.220.20.196:80 +59.39.146.253:8080 +212.6.57.35:8080 +222.60.8.86:8080 +109.252.251.42:3128 +173.192.60.3:80 +74.63.210.80:3128 +88.191.121.220:80 +119.110.68.226:8080 +118.97.169.138:3128 +61.190.28.166:8080 +182.23.5.6:8080 +97.65.164.211:8080 +190.41.147.217:3128 +67.202.108.170:80 +62.82.105.168:8080 +59.49.19.39:1337 +74.63.210.98:3128 +217.66.205.16:8080 +213.88.71.248:808 +95.69.148.19:54321 +122.224.148.5:80 +218.207.217.228:80 +59.90.190.162:8080 +80.242.79.208:3128 +187.115.194.88:3128 +222.127.148.210:3128 +113.192.1.99:80 +202.115.7.51:808 +201.57.35.194:3128 +180.241.248.53:8088 +210.51.169.198:8080 +200.81.59.100:80 +200.175.157.251:3128 +190.225.164.12:3128 +62.128.147.60:80 +182.23.10.206:8080 +80.191.133.205:8080 +94.184.129.9:3128 +217.25.221.233:3128 +111.1.32.149:80 +115.252.99.60:6588 +222.124.196.169:80 +118.96.94.172:8080 +211.239.84.193:80 +202.43.178.41:80 +74.63.210.115:3128 +110.232.82.2:3128 +201.22.184.4:8080 +222.216.108.167:8081 +87.106.143.132:3128 +222.77.14.54:8088 +62.48.92.21:3128 +75.146.241.101:3128 +59.44.204.198:80 +187.58.130.57:8080 +89.218.231.78:3128 +110.5.45.245:80 +59.115.203.195:8088 +201.75.3.100:3128 +80.191.133.230:8080 +210.82.76.98:8000 +110.137.28.20:8080 +85.93.46.181:3128 +173.201.78.28:80 +59.125.61.47:8000 +41.234.202.52:80 +216.147.142.26:80 +202.138.240.237:3128 +74.88.43.104:8085 +60.251.189.134:3128 +115.238.86.26:3128 +143.89.188.2:80 +200.97.9.236:8080 +98.222.109.235:2479 +203.124.152.164:80 +200.107.58.26:8080 +125.40.85.96:3128 +83.216.184.132:8080 +78.155.120.77:8080 +211.95.79.134:80 +203.80.182.227:80 +202.115.15.47:808 +118.97.75.190:3128 +196.201.211.145:80 +200.37.63.11:3128 +193.87.164.120:8080 +118.97.35.179:8080 +115.248.193.99:8080 +202.112.49.244:3128 +85.135.32.200:3128 +64.146.167.26:3128 +222.60.8.66:8080 +109.235.49.143:80 +41.73.2.37:8080 +200.151.69.10:3128 +114.255.52.164:3128 +122.116.200.3:3128 +92.248.197.226:8080 +78.24.221.14:80 +82.207.47.7:3129 +24.161.69.94:8085 +41.139.138.195:3128 +202.141.45.18:3128 +195.135.214.226:8080 +124.160.125.102:80 +122.181.155.242:3128 +41.222.192.218:3128 +24.46.131.57:8085 +77.220.20.176:80 +88.58.85.122:8080 +203.196.97.44:80 +189.19.18.140:8080 +190.149.241.106:8088 +65.23.156.161:80 +118.96.231.97:3128 +219.139.158.59:8080 +122.225.100.5:8080 +118.96.104.195:8080 +201.159.37.191:3128 +62.84.12.1:8080 +74.63.210.81:3128 +60.247.30.21:80 +208.131.143.12:80 +208.223.222.23:8080 +75.183.11.222:8085 +110.139.182.234:8080 +196.45.142.5:80 +69.180.62.48:8085 +180.241.104.65:8080 +89.218.117.166:3128 +211.138.29.10:443 +222.186.190.130:808 +211.239.84.210:443 +219.122.44.250:3128 +85.198.141.148:3128 +118.98.232.132:8080 +109.238.238.251:8080 +202.123.231.66:8080 diff --git a/muhstik/servers b/muhstik/servers new file mode 100644 index 0000000..4dd0dbd --- /dev/null +++ b/muhstik/servers @@ -0,0 +1,225 @@ +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 +irc.gamesurge.net:6667 100 diff --git a/muhstik/servers6 b/muhstik/servers6 new file mode 100644 index 0000000..5389c29 --- /dev/null +++ b/muhstik/servers6 @@ -0,0 +1,225 @@ +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 +irc.freenode.net:6667 100 diff --git a/muhstik/shuffle.sh b/muhstik/shuffle.sh new file mode 100644 index 0000000..b0678a4 --- /dev/null +++ b/muhstik/shuffle.sh @@ -0,0 +1,4 @@ +[ $# -ne 1 ] && { print "Try again."; exit 1; } +tmpfile="shuffled.tmp" +shuf $1 > $tmpfile +mv $tmpfile $1 diff --git a/muhstik/socks4.txt b/muhstik/socks4.txt new file mode 100644 index 0000000..00933e4 --- /dev/null +++ b/muhstik/socks4.txt @@ -0,0 +1,2114 @@ +83.146.17.76:80 +83.243.165.137:80 +82.79.130.142:80 +85.107.76.13:8080 +86.34.218.196:8080 +85.107.91.83:80 +82.194.53.42:80 +82.79.130.162:80 +82.194.53.164:80 +85.155.201.71:6588 +85.100.193.76:80 +83.14.0.106:80 +85.65.227.106:6588 +82.147.204.243:8080 +85.18.252.145:3128 +82.168.53.98:80 +85.168.125.196:9711 +82.207.69.83:3128 +83.19.8.115:80 +82.231.241.67:8080 +87.0.192.8:6588 +82.186.254.188:80 +85.100.75.2:80 +82.225.32.130:80 +82.194.53.45:80 +82.225.61.24:80 +83.20.4.38:6588 +82.147.204.234:8080 +85.208.26.27:80 +87.234.219.68:8080 +85.101.18.84:80 +87.6.249.74:6588 +83.64.197.106:80 +82.229.99.105:80 +82.79.129.44:80 +82.79.130.128:80 +85.107.101.15:80 +82.79.129.48:80 +82.194.53.191:80 +83.138.56.246:80 +189.17.0.35:8000 +85.35.184.134:6588 +82.147.204.176:8080 +83.242.64.24:80 +85.65.180.129:27062 +85.59.125.178:6588 +62.162.28.226:3128 +82.245.193.202:80 +86.21.39.78:7212 +82.79.129.67:80 +123.13.206.59:1080 +82.7.245.149:7212 +85.208.20.228:80 +82.79.129.8:80 +88.137.3.116:25263 +87.110.7.102:6653 +82.160.142.21:3128 +82.205.159.197:8080 +85.182.164.13:80 +85.101.147.240:80 +82.79.129.82:80 +85.96.220.233:80 +87.228.114.133:8000 +85.97.48.58:8080 +86.0.44.211:7212 +87.228.174.58:13252 +210.158.6.201:8080 +82.79.130.116:80 +85.99.62.169:80 +85.208.26.150:80 +85.107.139.26:80 +83.102.98.235:14176 +83.238.44.181:8080 +83.16.197.34:80 +82.76.75.132:80 +82.171.19.157:80 +83.151.29.21:3128 +82.194.53.43:80 +82.79.130.226:80 +83.17.157.82:80 +82.68.24.148:2301 +82.67.36.5:80 +82.167.23.71:8080 +82.79.130.126:80 +82.200.140.251:3128 +86.55.107.209:80 +83.238.44.55:8080 +82.79.129.95:80 +84.74.13.143:14191 +87.117.10.230:27083 +82.198.164.14:80 +82.79.129.49:80 +83.67.110.117:8080 +85.248.32.18:8080 +83.149.26.254:80 +82.79.130.193:80 +83.103.52.206:8080 +82.210.177.47:80 +85.154.167.147:80 +85.101.105.249:80 +85.107.54.33:80 +82.79.129.68:80 +82.79.129.74:80 +85.104.7.213:80 +88.42.202.161:3128 +109.230.217.103:1080 +86.126.50.163:32194 +83.73.67.45:8080 +91.90.122.1:1080 +82.79.129.35:80 +117.211.13.133:1080 +87.99.56.240:3128 +82.79.129.71:80 +82.198.21.97:3128 +85.107.78.204:80 +85.101.111.65:8080 +84.121.76.151:17538 +83.144.107.180:80 +84.252.4.68:8080 +84.122.160.201:8080 +84.92.189.245:6588 +84.10.118.60:80 +84.40.138.176:80 +85.61.0.161:6588 +82.79.130.123:80 +85.222.5.206:80 +87.17.74.4:18816 +86.51.0.135:8080 +83.103.217.247:80 +84.112.94.213:6588 +82.90.41.80:80 +85.208.26.244:80 +83.105.34.104:8080 +82.79.130.250:80 +82.92.72.196:80 +82.79.130.186:80 +83.238.44.65:8080 +85.208.20.231:80 +85.100.209.56:80 +85.107.134.136:80 +82.154.69.20:8080 +85.208.21.145:80 +85.168.125.196:21435 +83.14.7.146:80 +84.57.240.110:12274 +82.79.134.133:80 +83.208.202.192:3128 +85.105.161.9:8080 +84.56.144.247:17488 +86.204.52.49:6588 +82.79.129.62:80 +82.183.122.52:80 +82.198.121.2:8080 +118.96.120.218:1080 +204.131.46.200:8000 +84.237.157.180:8080 +85.186.81.76:6588 +82.79.130.14:80 +85.15.67.55:3128 +85.105.44.217:8080 +85.208.31.106:80 +85.100.197.206:80 +82.147.204.232:8080 +85.97.141.228:8080 +85.100.76.78:8080 +85.107.133.13:80 +82.231.43.24:8000 +82.127.91.227:80 +85.208.26.214:80 +83.238.44.52:8080 +87.105.0.138:80 +84.191.254.231:80 +82.79.130.13:80 +84.52.1.135:3128 +85.96.92.18:80 +82.79.130.206:80 +83.97.24.133:3128 +82.79.129.79:80 +85.100.214.153:8080 +85.50.49.196:6588 +82.79.130.112:80 +85.107.131.170:80 +85.214.33.173:80 +83.15.160.42:80 +85.55.9.90:8080 +68.199.83.207:7212 +85.236.134.181:8080 +85.217.137.138:8080 +83.38.50.223:8080 +82.79.130.113:80 +82.233.83.67:80 +121.8.124.42:1080 +82.159.51.77:8080 +85.201.83.45:9354 +94.77.162.245:3128 +82.229.246.110:3128 +83.16.167.178:80 +83.151.29.239:80 +85.100.145.198:8080 +85.100.214.37:80 +85.99.187.146:8080 +85.107.199.10:8080 +124.160.27.162:1080 +82.79.130.208:80 +82.194.53.53:80 +86.35.21.211:80 +84.235.63.160:8080 +82.147.199.6:80 +86.4.164.169:18543 +83.18.237.18:80 +86.120.140.66:6588 +82.53.6.130:8080 +85.107.101.28:80 +82.79.130.207:80 +85.186.171.221:8080 +82.79.130.225:80 +84.4.3.152:80 +85.94.161.95:6588 +85.107.97.68:8080 +202.57.10.38:1080 +83.33.42.43:8080 +83.238.44.61:8080 +86.106.170.118:8000 +207.62.217.252:3128 +82.79.129.83:80 +82.79.129.45:80 +83.238.44.41:8080 +83.171.240.191:8080 +82.79.129.52:80 +83.19.144.18:80 +82.133.71.156:8080 +82.225.0.2:80 +219.150.227.111:1080 +82.227.189.34:3128 +82.139.12.156:80 +82.194.53.171:80 +84.40.227.129:80 +82.240.186.44:3128 +85.76.255.135:25854 +82.147.198.212:80 +82.79.130.103:80 +87.1.4.1:19093 +83.168.126.205:80 +85.99.148.113:80 +85.194.112.119:8080 +82.225.50.172:6588 +85.172.66.50:3128 +82.79.130.147:80 +85.57.129.206:6588 +82.230.136.167:8000 +82.47.216.84:8080 +82.79.130.132:80 +84.122.3.155:8000 +85.107.254.52:80 +82.133.71.205:8080 +85.101.40.17:8080 +82.79.130.184:80 +82.184.228.50:80 +83.6.226.115:80 +85.208.27.2:80 +178.32.160.81:3128 +85.96.92.18:8080 +83.143.18.229:80 +85.100.214.153:80 +83.34.206.124:80 +83.138.137.125:80 +82.79.129.242:80 +83.175.237.51:8080 +85.97.90.193:8080 +82.77.158.214:6588 +83.143.9.18:6588 +82.194.63.12:80 +85.240.196.182:9540 +82.79.129.94:80 +85.108.196.143:80 +217.150.52.37:1080 +85.208.8.75:80 +86.131.18.253:33774 +82.147.204.230:8080 +86.55.43.121:1714 +85.33.240.179:80 +85.106.135.53:8080 +83.14.200.86:80 +82.79.130.159:80 +85.100.214.171:80 +82.79.130.161:80 +85.208.19.79:80 +84.99.205.50:6135 +85.105.44.217:80 +83.17.22.54:80 +84.97.174.228:4818 +187.16.57.170:1080 +82.141.232.130:80 +82.147.204.179:8080 +85.107.89.24:80 +82.140.84.170:80 +88.148.69.202:8080 +82.78.217.147:8000 +82.143.132.177:80 +85.100.210.17:80 +61.177.248.202:1080 +82.79.130.106:80 +84.51.18.20:8080 +86.6.32.179:1176 +85.91.138.120:8080 +82.207.120.1:3128 +85.104.181.226:80 +83.94.204.109:8080 +200.32.112.11:1080 +84.10.66.78:80 +82.79.130.202:80 +88.147.172.38:8080 +83.17.167.90:80 +85.114.7.122:3128 +85.202.135.44:8000 +82.147.204.251:8080 +88.72.205.2:20997 +82.160.142.20:3128 +85.208.30.220:80 +82.79.129.34:80 +85.193.205.55:80 +82.79.130.249:80 +86.61.64.4:80 +84.74.5.252:4507 +61.178.127.140:1080 +82.79.129.46:80 +83.103.70.58:80 +85.208.27.247:80 +85.107.99.51:8080 +86.127.4.174:80 +87.207.239.60:80 +85.107.177.251:80 +82.79.129.42:80 +82.205.159.197:3128 +85.42.195.210:10503 +88.32.89.146:80 +85.100.207.239:80 +85.208.33.19:80 +86.55.151.169:6588 +85.185.96.5:8080 +82.79.129.28:80 +82.79.130.166:80 +83.97.24.10:3128 +83.238.44.49:8080 +85.240.234.162:8080 +85.208.78.148:80 +85.99.62.169:8080 +85.208.26.254:80 +82.207.78.196:8080 +85.41.48.254:80 +83.245.0.19:80 +84.100.35.162:80 +218.93.193.27:1080 +85.187.138.30:6588 +85.100.227.225:80 +84.235.100.2:8080 +83.238.44.150:8080 +82.79.129.86:80 +82.194.53.40:80 +195.117.61.211:1080 +83.103.209.178:80 +82.79.130.204:80 +85.99.206.17:80 +87.80.136.57:7212 +82.200.143.170:3128 +83.17.249.114:80 +82.245.77.7:8080 +82.79.130.222:80 +82.79.130.223:80 +86.2.157.153:80 +82.79.130.248:80 +82.32.26.113:31925 +83.15.8.254:8000 +82.143.128.234:80 +222.216.108.50:1080 +86.4.206.187:7212 +85.21.249.159:3128 +83.91.252.100:80 +82.248.138.168:6588 +85.107.89.55:80 +82.79.129.84:80 +89.169.32.74:25656 +83.103.193.67:3128 +82.194.53.174:80 +82.79.130.133:80 +85.155.38.235:6588 +86.130.18.246:80 +85.100.212.133:8080 +124.128.233.130:1080 +84.40.148.252:80 +88.33.254.90:80 +211.103.232.63:1080 +82.194.53.186:80 +84.4.198.141:31007 +84.193.146.232:8080 +85.194.50.159:81 +85.107.130.196:8080 +85.208.8.243:80 +85.168.54.185:30238 +86.104.205.205:8080 +85.208.32.228:80 +82.43.60.76:80 +83.17.54.206:80 +83.215.19.148:7212 +85.208.8.103:80 +82.194.53.134:80 +85.100.250.93:80 +83.100.149.29:80 +82.245.188.240:8000 +85.208.24.165:80 +84.10.243.105:3128 +83.142.221.28:80 +84.244.10.2:3128 +87.248.160.129:8081 +88.80.134.183:3128 +84.62.6.219:80 +85.208.26.194:80 +84.245.153.68:8080 +82.79.130.23:80 +85.98.87.33:80 +85.50.64.131:80 +88.152.113.13:6588 +85.193.200.135:80 +84.25.116.75:16616 +85.91.139.21:8080 +82.231.70.174:8000 +85.98.45.98:80 +82.143.146.236:80 +83.14.66.206:80 +82.79.130.199:80 +86.35.183.112:3128 +84.19.181.230:80 +82.67.60.37:6588 +84.234.138.202:80 +86.55.107.210:80 +82.79.129.251:80 +85.100.68.43:8080 +82.194.53.172:80 +82.79.129.99:80 +84.98.118.254:20339 +190.199.98.153:1080 +85.100.255.177:8080 +82.133.71.154:8080 +83.137.59.158:3128 +85.107.57.46:8080 +82.161.184.141:80 +85.167.9.40:3128 +85.101.207.95:8080 +82.194.53.190:80 +88.80.129.29:3128 +85.107.71.18:80 +83.103.153.20:8080 +83.18.189.116:8080 +83.206.23.41:8080 +82.79.130.229:80 +83.104.180.83:80 +83.92.85.161:8080 +83.142.16.81:8080 +88.80.134.144:8000 +83.198.42.237:6588 +83.97.24.129:3128 +83.19.92.10:80 +86.6.6.5:7212 +84.244.5.64:43210 +85.108.135.157:8080 +82.224.35.113:8000 +85.99.134.119:80 +88.36.84.91:31470 +83.17.24.37:80 +85.236.133.226:8080 +85.112.71.238:8080 +83.103.52.194:8080 +85.91.57.246:80 +82.79.129.40:80 +82.79.130.101:80 +82.139.40.130:8000 +85.107.57.46:80 +85.107.251.114:8080 +82.251.30.216:8080 +82.79.129.87:80 +82.165.255.43:80 +85.66.145.13:8080 +85.114.74.126:80 +85.107.131.111:8080 +87.117.208.108:12679 +85.100.195.230:8080 +82.193.38.84:80 +82.143.150.188:80 +82.79.130.135:80 +82.133.71.32:8080 +82.79.130.104:80 +82.57.76.191:3128 +121.18.77.14:1080 +85.30.67.141:3128 +82.79.130.170:80 +219.223.252.31:9080 +85.185.129.165:80 +85.105.185.147:8080 +85.114.241.23:3128 +83.238.103.226:80 +85.98.230.55:80 +82.79.129.55:80 +202.115.7.51:1080 +83.229.103.120:3128 +83.208.168.241:3128 +85.101.207.96:80 +85.228.211.113:30251 +85.107.206.117:8080 +85.208.23.52:80 +82.79.130.124:80 +82.156.24.176:80 +82.139.12.103:80 +84.54.27.10:80 +82.160.42.205:80 +82.79.129.6:80 +84.205.20.155:80 +82.233.26.21:8000 +82.66.139.102:7212 +85.208.26.180:80 +82.135.201.79:80 +82.79.129.98:80 +85.108.206.24:80 +85.107.192.63:8080 +85.98.164.252:80 +85.208.9.21:80 +85.208.20.129:80 +85.208.26.239:80 +83.208.176.122:8000 +85.204.213.222:8000 +82.226.1.167:80 +82.194.53.57:80 +82.79.130.191:80 +83.175.182.109:80 +82.99.210.195:8080 +85.86.243.136:6588 +82.79.130.119:80 +82.27.154.52:80 +84.205.2.235:80 +85.105.56.2:8080 +85.100.207.239:8080 +85.107.49.4:8080 +83.14.16.174:80 +85.101.163.63:80 +85.100.255.177:80 +85.112.113.151:80 +71.61.43.46:27977 +83.238.44.53:8080 +85.107.131.111:80 +82.194.53.4:80 +82.79.130.158:80 +84.27.128.244:80 +82.79.129.64:80 +83.17.244.18:80 +82.79.130.180:80 +85.107.97.110:80 +86.34.200.192:6588 +83.206.128.73:80 +85.99.207.75:8080 +83.213.161.243:8080 +85.208.32.1:80 +82.147.204.166:8080 +83.238.44.14:8080 +85.107.81.85:8080 +83.20.220.71:80 +66.167.100.59:6649 +85.101.111.65:80 +82.191.154.99:80 +84.30.185.243:14416 +82.194.53.5:80 +86.34.4.73:6588 +82.225.119.101:80 +82.79.129.77:80 +82.194.53.36:80 +85.56.132.77:8080 +82.147.204.253:8080 +87.11.149.96:6588 +82.74.173.62:6588 +83.238.242.55:80 +82.99.227.18:8080 +85.96.85.123:8080 +85.208.26.249:80 +84.19.180.230:80 +87.29.161.17:3128 +82.79.130.102:80 +82.76.153.163:8080 +82.241.149.177:8080 +88.240.54.51:8080 +82.225.55.151:8000 +82.162.226.74:3128 +82.79.130.211:80 +83.97.24.4:3128 +85.99.247.64:80 +109.230.128.179:1080 +85.107.251.114:80 +82.79.130.163:80 +189.11.196.220:3128 +82.79.130.179:80 +82.194.53.50:80 +83.236.158.90:8080 +82.78.63.37:8080 +86.124.88.221:8080 +84.40.166.56:80 +85.236.129.106:8080 +82.79.130.149:80 +82.182.77.167:80 +82.194.53.176:80 +85.105.32.222:80 +82.67.11.110:80 +83.16.114.236:8080 +82.229.139.193:8080 +95.167.228.85:80 +84.47.21.169:3128 +82.159.1.115:8080 +83.145.111.50:80 +82.76.8.193:6588 +190.6.160.154:1080 +82.237.89.100:80 +83.151.226.193:80 +85.208.17.53:80 +85.107.130.41:8080 +83.97.24.84:3128 +82.226.186.91:80 +85.100.200.29:80 +84.204.34.170:80 +85.70.231.102:3128 +82.160.142.24:3128 +82.161.5.209:80 +82.209.219.130:80 +82.234.138.4:80 +82.79.130.129:80 +82.79.129.38:80 +85.208.18.66:80 +82.160.228.146:80 +82.194.53.51:80 +85.107.66.207:8080 +84.16.238.92:3128 +85.97.207.10:80 +83.16.181.179:80 +83.15.186.50:80 +82.79.129.89:80 +83.17.234.178:80 +82.160.142.4:3128 +85.101.147.240:8080 +85.99.20.252:8080 +82.210.159.205:80 +85.100.227.225:8080 +82.79.129.70:80 +82.79.130.145:80 +85.208.23.124:80 +85.106.202.155:8080 +84.96.70.155:8080 +82.210.158.11:80 +83.165.2.162:8080 +218.31.134.111:1080 +83.238.44.160:8080 +82.209.200.19:8100 +83.238.44.64:8080 +85.100.207.29:80 +83.17.147.172:80 +85.208.18.165:80 +82.79.130.111:80 +85.94.96.247:8080 +83.18.248.66:3128 +83.117.80.252:6588 +82.162.52.181:3128 +83.18.78.66:8080 +218.14.227.197:3128 +85.107.101.86:80 +84.45.67.194:80 +82.194.53.44:80 +85.115.104.148:6588 +83.14.55.186:80 +121.12.249.207:1080 +82.79.130.140:80 +83.228.43.27:80 +85.210.139.15:11937 +85.107.100.150:80 +84.40.128.112:80 +85.107.206.117:80 +83.235.54.17:80 +85.107.54.33:8080 +85.186.81.8:8080 +93.167.194.250:1080 +82.160.89.16:80 +88.73.100.65:1736 +82.79.130.16:80 +83.102.149.162:80 +89.222.154.227:1080 +85.100.197.206:8080 +85.41.150.196:8080 +83.103.191.183:80 +83.102.151.100:80 +92.115.168.84:1080 +82.79.130.221:80 +82.143.160.165:80 +85.168.98.122:11129 +85.24.45.183:8080 +117.102.9.116:1080 +84.122.232.88:8000 +84.40.189.37:80 +82.79.129.88:80 +85.107.134.219:80 +92.114.162.13:1080 +83.141.133.81:8080 +82.66.49.123:80 +201.6.150.84:1080 +85.250.132.15:6588 +82.141.204.211:80 +218.59.161.169:1080 +83.72.68.98:27440 +165.228.98.206:80 +82.79.130.183:80 +85.208.26.149:80 +85.208.19.62:80 +111.172.52.33:1080 +85.154.167.142:80 +82.194.39.55:80 +86.102.12.48:3128 +85.208.32.208:80 +85.107.91.83:8080 +61.233.25.166:80 +83.99.136.218:8080 +85.101.156.241:8080 +82.79.130.118:80 +83.168.68.11:80 +83.238.44.152:8080 +88.83.193.138:3128 +82.79.130.21:80 +85.47.207.133:80 +84.205.10.82:80 +85.66.47.28:3128 +84.27.39.159:7212 +82.79.130.178:80 +85.208.32.202:80 +220.33.204.136:8080 +85.104.181.226:8080 +84.7.103.21:8832 +85.96.201.131:3128 +83.114.205.97:1402 +82.228.41.75:80 +187.86.6.90:1080 +83.238.44.157:8080 +82.79.129.96:80 +85.69.136.114:7212 +82.79.130.200:80 +220.20.199.74:8080 +82.79.129.61:80 +85.97.106.190:8080 +82.160.142.16:3128 +82.79.130.154:80 +83.228.43.19:3128 +85.41.248.66:30631 +85.208.21.177:80 +82.133.71.14:8080 +85.107.156.24:8080 +82.147.204.247:8080 +82.148.70.194:80 +85.34.94.156:8080 +71.198.246.143:27977 +84.47.58.187:3128 +82.76.34.173:80 +82.226.64.148:80 +82.194.53.184:80 +82.79.130.110:80 +88.225.144.34:80 +82.194.63.54:80 +82.79.130.20:80 +219.157.200.19:1080 +82.194.53.7:80 +86.138.94.98:8080 +82.90.33.140:80 +83.229.101.139:80 +83.236.175.146:80 +83.100.140.214:80 +85.60.51.236:6588 +89.110.2.72:10414 +85.107.20.90:80 +84.103.76.133:7212 +82.66.56.52:80 +82.229.68.217:8000 +83.16.162.114:80 +85.107.142.28:8080 +87.207.175.240:80 +82.79.129.50:80 +83.15.65.138:3128 +84.12.13.132:80 +85.208.23.22:80 +82.232.65.141:3128 +85.99.75.229:8080 +187.17.227.130:1080 +80.87.145.45:1080 +87.117.135.86:8080 +82.194.53.188:80 +85.91.146.205:3128 +84.121.227.218:6588 +82.224.39.98:80 +82.79.129.60:80 +83.175.149.168:80 +83.18.66.154:80 +82.161.170.88:80 +83.215.11.56:7212 +82.79.130.150:80 +85.33.152.36:8000 +83.160.245.56:8080 +82.224.213.162:8080 +83.211.141.66:80 +82.167.47.106:6588 +82.182.30.28:80 +85.30.97.83:3128 +85.9.74.100:3128 +84.146.222.71:9397 +82.79.129.30:80 +83.143.98.14:80 +82.135.208.98:80 +83.238.44.54:8080 +83.102.149.2:3128 +83.170.8.163:3128 +85.204.169.20:3128 +84.10.137.48:80 +83.228.112.216:3128 +85.70.109.237:80 +82.79.130.2:80 +85.101.49.24:8080 +85.70.61.19:3128 +82.79.130.196:80 +88.224.172.9:8080 +82.36.192.246:80 +82.79.129.249:80 +85.100.253.187:8080 +85.208.21.165:80 +85.226.108.136:8080 +82.147.204.235:8080 +88.200.139.238:3128 +83.230.162.175:7212 +82.79.129.3:80 +88.198.23.37:8080 +85.107.149.60:80 +82.206.140.100:8080 +83.16.43.92:80 +84.242.134.213:80 +83.238.44.103:8080 +86.120.156.46:6588 +82.79.130.156:80 +85.99.138.163:8080 +85.100.151.116:8080 +86.125.142.141:6588 +82.167.30.121:8080 +82.45.180.183:80 +83.239.38.158:3128 +82.79.130.168:80 +82.194.53.54:80 +115.249.54.51:1080 +85.176.154.208:26352 +87.223.155.228:4758 +84.28.195.236:10627 +82.194.53.63:80 +82.139.12.154:80 +82.139.14.46:80 +82.194.53.168:80 +85.100.231.179:8080 +85.192.143.30:80 +218.182.134.23:8080 +82.79.130.155:80 +85.208.26.245:80 +83.170.195.218:80 +82.99.136.161:3128 +82.9.68.177:8000 +82.67.4.166:80 +85.208.39.141:80 +85.186.81.18:443 +85.107.200.167:8080 +82.226.223.218:2301 +85.107.202.92:80 +83.168.76.143:80 +82.136.215.153:3128 +85.208.33.28:80 +85.25.2.66:3128 +85.107.20.90:8080 +82.160.142.19:3128 +87.110.100.116:13541 +82.79.129.65:80 +85.99.205.182:80 +85.107.192.63:80 +85.107.131.170:8080 +86.55.47.170:8080 +83.90.255.98:6588 +83.213.239.23:3128 +83.99.137.101:3128 +84.40.178.205:80 +84.7.81.79:14914 +82.228.111.118:80 +119.110.80.26:1080 +85.97.138.251:8080 +87.207.241.165:3128 +82.236.188.44:16080 +85.168.182.175:80 +82.194.53.48:80 +85.84.121.205:80 +85.194.64.100:8080 +83.250.161.64:34042 +85.107.71.80:8080 +85.100.145.198:80 +85.104.152.135:80 +85.185.236.92:3128 +82.147.204.226:8080 +82.194.46.191:80 +82.79.129.92:80 +221.2.144.135:1080 +85.186.3.122:80 +83.246.114.10:80 +221.1.215.90:1080 +82.224.252.54:80 +87.228.176.231:31224 +83.221.216.198:3128 +85.91.150.119:3128 +85.222.0.183:80 +82.146.42.67:80 +190.183.124.7:1080 +82.160.142.5:3128 +85.120.103.112:23 +88.42.202.161:8080 +85.154.167.155:80 +85.193.220.64:7212 +82.76.68.222:6588 +83.177.215.172:3128 +82.66.142.93:80 +85.221.181.207:80 +83.17.7.162:80 +88.80.134.221:3128 +85.107.235.44:80 +189.89.70.127:1080 +85.59.115.162:6588 +85.192.130.80:80 +84.40.134.160:80 +85.61.4.161:6588 +85.100.245.208:8080 +85.101.49.24:80 +85.100.238.238:80 +82.201.206.3:8080 +84.204.192.130:3128 +82.99.211.35:8080 +83.89.126.42:8080 +85.208.30.53:80 +82.76.192.15:6588 +83.103.191.174:80 +83.146.4.82:3128 +82.79.129.57:80 +82.147.204.229:8080 +82.99.145.226:80 +85.155.22.104:8080 +86.20.118.173:7212 +82.191.154.100:80 +84.40.143.232:80 +195.189.226.1:80 +83.238.44.158:8080 +83.229.103.120:80 +83.238.44.101:8080 +85.208.27.204:80 +83.18.207.170:80 +82.79.130.17:80 +85.208.26.234:80 +82.147.204.225:8080 +86.127.64.2:3128 +82.77.29.28:80 +82.79.130.144:80 +85.202.96.195:10801 +86.101.11.210:19881 +83.238.44.60:8080 +85.193.204.251:8000 +85.107.15.139:80 +87.0.193.220:6588 +82.99.136.17:3128 +82.194.53.165:80 +85.186.116.49:8080 +75.125.63.178:1080 +85.105.147.119:6588 +82.194.53.33:80 +82.234.49.14:80 +87.231.175.76:6588 +83.238.44.11:8080 +82.179.1.72:8080 +85.100.201.34:80 +85.107.92.197:80 +85.154.167.149:80 +85.201.125.192:23005 +82.231.166.100:8000 +85.208.28.113:80 +121.12.249.207:3128 +85.98.40.67:80 +84.99.172.103:6588 +83.36.202.118:80 +85.100.195.230:80 +87.226.22.13:25932 +84.27.6.67:8294 +85.98.49.18:80 +85.94.127.163:8080 +82.236.6.152:3128 +84.158.254.210:20460 +82.184.39.201:80 +86.62.7.122:3128 +85.98.150.82:80 +83.217.0.167:3128 +85.219.165.44:80 +85.100.151.13:8080 +89.156.182.94:5968 +86.55.107.214:80 +82.79.130.152:80 +187.4.128.10:3128 +82.185.109.91:80 +82.243.11.113:6588 +82.51.162.225:3128 +82.79.129.253:80 +85.99.47.102:8080 +86.55.8.194:80 +85.154.167.140:80 +83.238.44.185:8080 +82.194.53.135:80 +85.208.20.82:80 +84.122.137.140:8080 +84.40.137.75:80 +84.40.128.35:80 +85.20.110.249:6588 +123.237.107.132:1080 +86.34.242.34:8080 +85.208.24.20:80 +84.164.66.121:3128 +85.208.24.3:80 +86.10.93.4:7212 +82.79.129.5:80 +82.79.130.173:80 +88.116.90.38:3128 +85.241.22.251:80 +84.20.143.36:8080 +85.21.96.203:3128 +84.114.172.159:80 +82.30.241.169:7212 +82.79.130.127:80 +82.79.130.172:80 +83.18.13.58:80 +87.248.160.129:80 +82.193.15.174:80 +86.55.139.4:6588 +88.226.0.173:80 +83.149.26.2:80 +82.39.88.210:80 +85.98.87.33:8080 +85.136.103.216:8080 +89.83.228.83:12178 +90.0.0.1:80 +109.185.166.114:1080 +86.134.130.225:32798 +83.238.44.153:8080 +82.188.135.238:80 +85.208.26.156:80 +202.6.96.24:80 +84.14.146.122:28286 +82.79.130.227:80 +86.137.190.163:24137 +82.194.53.132:80 +84.205.180.206:80 +86.17.161.51:7212 +85.208.67.187:80 +82.79.130.190:80 +85.101.118.103:80 +85.100.163.202:8080 +82.79.129.245:80 +82.207.42.152:6588 +85.208.16.223:80 +85.103.18.57:80 +84.205.208.229:8080 +85.186.239.56:6588 +174.133.147.243:80 +82.156.34.255:2301 +83.16.228.86:80 +83.16.100.154:80 +82.206.237.168:3128 +83.222.30.38:80 +82.79.130.214:80 +82.143.152.10:80 +85.208.25.157:80 +121.18.97.250:1080 +85.71.195.104:8080 +86.62.211.162:3128 +83.17.20.118:80 +85.236.135.108:8080 +82.79.130.215:80 +82.79.130.246:80 +86.55.108.212:8080 +83.16.91.210:8080 +86.34.2.62:6588 +86.131.125.82:8080 +82.210.160.234:80 +82.88.107.213:80 +58.17.235.175:1080 +86.128.191.231:1831 +58.56.45.120:1080 +85.100.238.238:8080 +115.252.157.189:1080 +82.79.130.219:80 +85.105.23.97:80 +83.14.7.146:8080 +195.117.121.2:1080 +68.59.56.208:27977 +82.79.130.245:80 +82.78.101.60:3128 +84.40.139.122:80 +85.108.235.191:80 +85.42.90.155:8080 +121.22.20.202:1080 +82.205.139.41:3128 +82.38.242.217:25064 +86.35.232.20:6588 +85.107.201.68:8080 +84.161.77.98:3128 +84.19.181.49:80 +85.107.134.219:8080 +82.79.129.39:80 +82.79.129.229:80 +218.56.21.226:1080 +83.206.95.1:8080 +82.79.129.73:80 +110.136.162.80:1080 +85.97.100.23:80 +82.131.143.65:3128 +84.94.17.78:9851 +85.107.200.167:80 +85.99.141.69:8080 +82.202.117.115:3128 +85.208.27.0:80 +82.36.192.14:80 +85.10.206.37:80 +85.230.45.140:13566 +83.238.44.102:8080 +82.189.122.50:8080 +84.237.220.186:8080 +82.79.135.38:80 +82.165.36.203:80 +202.109.133.181:1080 +85.18.175.238:80 +85.70.134.40:3128 +83.18.237.34:80 +82.79.130.121:80 +83.243.111.248:80 +84.6.243.106:3548 +85.10.206.36:80 +82.189.120.77:3128 +82.79.130.19:80 +82.79.130.181:80 +82.138.229.11:80 +85.72.35.240:8080 +109.95.44.47:1080 +82.194.53.32:80 +82.183.116.70:80 +83.16.8.2:3128 +90.0.0.10:80 +86.104.170.40:6588 +85.18.250.2:8080 +82.227.132.35:80 +85.107.66.207:80 +85.100.210.110:8080 +82.139.16.206:80 +83.19.149.226:80 +83.100.140.17:80 +82.200.211.130:3128 +85.99.134.119:8080 +84.40.235.57:80 +85.208.26.242:80 +82.147.204.254:8080 +88.226.7.225:80 +83.90.255.98:8080 +85.239.144.32:3128 +83.18.243.10:80 +85.31.196.3:8080 +82.79.130.114:80 +83.17.235.18:80 +82.149.85.6:80 +85.107.119.74:8080 +212.158.160.96:80 +83.15.104.242:3128 +85.107.225.197:80 +202.102.72.59:1080 +85.154.167.144:80 +82.36.146.244:6004 +83.221.203.202:3128 +84.54.134.215:3128 +85.100.161.12:8080 +85.128.94.19:10056 +82.79.195.170:80 +84.189.35.196:3128 +82.240.20.45:8000 +83.145.182.104:80 +85.107.87.153:8080 +84.121.117.251:8080 +85.107.202.249:80 +83.216.181.131:8080 +82.213.135.163:6588 +82.194.53.170:80 +85.100.151.13:80 +85.100.68.43:80 +83.220.78.78:3128 +85.107.89.55:8080 +82.79.129.247:80 +82.79.129.72:80 +88.100.119.55:8080 +84.245.34.243:80 +86.104.17.128:8000 +82.151.211.41:80 +85.208.21.75:80 +85.38.163.74:80 +82.79.130.130:80 +83.27.29.15:80 +82.214.219.220:8080 +85.103.17.228:80 +85.11.155.42:6588 +82.79.130.125:80 +85.81.51.106:3128 +82.79.130.212:80 +82.79.130.210:80 +86.55.107.217:80 +85.177.184.190:4006 +82.160.42.120:80 +109.86.198.39:1080 +85.9.74.93:3128 +83.142.181.216:80 +85.101.156.241:80 +217.199.134.54:1080 +82.139.31.183:80 +83.222.15.92:80 +82.141.197.177:80 +85.236.134.196:8080 +83.229.48.140:8080 +88.96.2.121:8080 +85.95.172.10:80 +82.79.130.18:80 +84.74.14.205:29593 +82.69.75.251:80 +82.224.22.172:80 +82.160.142.25:3128 +82.79.130.146:80 +85.107.133.13:8080 +84.44.21.122:8080 +82.224.69.174:80 +83.215.252.140:8080 +85.208.25.108:80 +85.107.49.4:80 +85.107.142.28:80 +58.241.40.228:1080 +84.234.8.72:80 +162.105.248.137:1080 +83.228.30.6:3128 +82.79.129.51:80 +83.160.42.128:3128 +82.79.130.153:80 +82.79.129.76:80 +83.103.40.4:6588 +82.79.129.58:80 +85.71.146.185:3128 +82.245.101.16:8080 +202.115.15.47:1080 +83.20.15.115:6588 +213.161.20.168:1080 +82.60.1.97:80 +84.10.38.142:6588 +83.238.44.12:8080 +83.102.181.146:3128 +82.79.129.27:80 +80.167.238.78:1080 +88.136.129.233:9766 +82.79.130.197:80 +85.107.38.136:8080 +195.210.8.102:1080 +82.150.139.32:80 +85.60.29.90:10054 +83.238.44.190:8080 +82.185.126.114:80 +85.107.119.74:80 +83.14.88.171:80 +85.107.101.214:80 +82.236.20.134:80 +85.168.150.68:20736 +82.79.130.194:80 +209.97.203.60:8080 +85.208.27.17:80 +85.208.19.248:80 +82.79.130.139:80 +41.190.16.17:8080 +83.151.14.104:3128 +84.22.159.188:1080 +82.133.71.253:8080 +85.195.137.50:8080 +82.79.130.138:80 +85.97.65.241:80 +82.160.142.18:3128 +219.223.252.31:1080 +82.147.204.246:8080 +84.101.174.80:6588 +82.79.130.247:80 +82.194.53.178:80 +82.147.204.233:8080 +83.17.86.10:8080 +83.148.131.144:8080 +85.107.254.52:8080 +82.14.71.100:80 +85.107.130.41:80 +84.244.104.77:3128 +86.55.107.215:80 +82.79.130.157:80 +88.226.117.87:80 +82.206.234.116:3128 +83.235.174.145:80 +82.133.71.159:8080 +85.103.139.9:80 +82.231.252.3:80 +87.0.216.202:6588 +83.239.80.134:3128 +83.170.200.226:80 +84.96.20.76:80 +87.110.84.159:12409 +82.160.204.40:80 +83.238.44.154:8080 +83.17.101.198:80 +82.147.204.242:8080 +87.74.5.249:80 +82.79.130.205:80 +83.239.30.146:3128 +84.40.225.153:6588 +84.25.227.148:25636 +83.208.26.54:6588 +87.192.28.111:7212 +85.100.10.152:80 +109.191.69.127:1080 +85.100.209.56:8080 +82.194.53.167:80 +83.14.55.210:80 +211.222.202.109:80 +83.238.44.51:8080 +85.186.101.202:6588 +85.208.26.233:80 +82.237.216.153:80 +85.35.151.91:30857 +82.229.250.123:80 +85.208.30.40:80 +85.18.190.7:8090 +85.103.18.57:8080 +85.135.27.250:3128 +85.70.238.10:3128 +85.107.156.24:80 +91.121.218.169:8000 +82.194.53.177:80 +82.207.78.171:6588 +85.98.44.17:80 +82.79.130.251:80 +85.101.111.144:8080 +85.70.91.92:3128 +85.208.26.158:80 +86.55.107.208:80 +85.101.186.110:80 +83.236.205.22:3128 +82.79.130.187:80 +82.79.130.175:80 +82.9.82.246:7212 +83.196.19.142:3128 +82.164.3.238:80 +82.229.17.9:80 +82.160.142.6:3128 +82.194.53.163:80 +85.100.253.187:80 +82.90.15.213:80 +83.149.244.98:80 +123.49.61.1:1080 +82.79.129.66:80 +82.79.129.254:80 +82.147.204.224:8080 +83.222.31.119:80 +82.182.78.122:80 +82.160.142.12:3128 +82.13.12.66:80 +190.3.82.146:1080 +187.111.223.10:1080 +85.98.146.247:8080 +82.147.204.228:8080 +84.42.248.131:1080 +85.107.128.136:8080 +85.55.8.54:8080 +82.205.212.100:3128 +85.107.100.167:8080 +85.39.245.75:8080 +85.185.236.229:3128 +82.79.129.248:80 +83.18.43.150:3128 +85.195.137.57:3128 +82.7.37.225:8080 +83.48.64.135:80 +82.173.11.87:8080 +82.143.153.174:80 +82.229.216.15:8080 +82.194.53.179:80 +85.154.167.151:80 +218.7.191.182:1080 +89.120.49.92:5445 +85.39.178.251:8080 +83.16.172.206:80 +85.105.35.227:8080 +82.79.130.169:80 +85.101.58.191:80 +85.218.20.98:80 +82.79.129.53:80 +82.233.19.69:8080 +86.10.78.70:7212 +84.121.200.33:6588 +84.40.171.66:80 +84.85.93.15:80 +85.101.223.93:8080 +82.79.130.209:80 +110.189.168.171:1080 +85.101.40.17:80 +87.236.197.17:80 +82.200.134.2:8080 +82.21.72.146:80 +83.17.55.19:80 +86.130.63.45:80 +82.79.129.7:80 +82.147.204.252:8080 +82.138.34.98:3128 +85.193.213.185:80 +203.187.238.231:1080 +83.97.24.45:3128 +82.79.130.136:80 +83.81.48.189:3128 +85.98.77.154:8080 +87.248.160.27:8081 +82.79.129.244:80 +82.210.128.9:80 +82.99.217.153:8080 +85.136.18.228:8080 +82.207.72.2:6588 +85.97.135.89:8080 +82.198.3.211:80 +85.97.101.14:8080 +82.135.201.172:80 +204.75.178.26:80 +82.79.130.120:80 +82.198.0.11:3128 +85.208.35.42:80 +82.79.130.107:80 +82.77.150.192:6588 +82.160.243.150:8080 +82.194.53.60:80 +83.103.191.175:80 +84.96.120.250:80 +85.208.21.61:80 +82.194.53.58:80 +83.137.62.108:3128 +82.66.212.3:80 +82.160.142.9:3128 +83.216.41.159:3128 +82.209.200.19:80 +65.120.238.5:8888 +82.204.160.10:80 +85.100.163.202:80 +85.25.139.186:80 +85.103.17.229:80 +85.154.167.159:80 +85.18.37.244:8000 +83.211.68.82:80 +85.208.30.41:80 +85.208.9.220:80 +85.194.108.3:8080 +82.160.142.2:3128 +85.107.128.136:80 +84.41.197.130:15202 +85.107.101.28:8080 +85.208.24.60:80 +83.238.44.155:8080 +82.208.156.147:80 +83.90.185.237:8080 +86.20.232.31:7212 +85.101.229.181:8080 +85.86.214.238:6588 +86.55.107.212:80 +82.79.129.243:80 +83.208.105.131:8080 +129.186.136.105:80 +62.243.224.179:1080 +85.208.33.235:80 +82.194.61.44:80 +82.79.129.246:80 +82.194.53.175:80 +82.79.130.189:80 +82.143.134.38:80 +84.96.94.10:80 +84.241.14.110:8080 +83.16.44.134:80 +85.208.26.148:80 +82.29.136.197:7212 +85.107.99.240:8080 +83.84.62.208:25934 +83.245.117.131:80 +82.234.238.19:8080 +82.79.129.75:80 +82.235.177.12:2301 +85.18.238.206:8080 +86.62.227.74:9534 +84.5.17.97:14796 +82.160.130.91:3128 +85.105.161.9:80 +85.100.243.100:80 +85.208.25.25:80 +82.232.97.239:6588 +86.35.23.37:8080 +82.76.77.30:80 +82.79.129.33:80 +85.208.26.147:80 +178.150.132.178:1080 +82.187.111.132:80 +82.160.142.13:3128 +82.79.129.85:80 +85.107.99.51:80 +85.100.212.133:80 +85.187.0.106:3128 +85.208.31.207:80 +82.200.133.77:80 +109.87.188.155:1080 +85.208.27.254:80 +83.235.61.17:80 +85.99.61.251:8080 +83.162.15.60:8080 +85.104.60.126:80 +85.107.97.110:8080 +82.43.218.47:80 +221.213.50.115:8000 +88.200.150.86:3128 +85.107.222.8:8080 +85.101.246.5:8080 +83.238.213.26:80 +85.100.214.37:8080 +85.71.121.115:33063 +82.79.130.15:80 +58.17.58.23:1080 +83.100.217.148:80 +83.235.243.40:8080 +82.67.117.119:80 +82.160.142.26:3128 +84.120.197.229:6588 +85.208.8.5:80 +83.229.101.148:80 +87.236.197.16:80 +86.35.49.163:6588 +82.67.10.175:80 +85.100.243.100:8080 +83.244.78.131:8080 +62.162.28.226:80 +83.227.60.28:80 +85.239.154.2:3128 +202.43.124.54:1080 +82.79.130.198:80 +82.141.201.195:80 +82.79.129.32:80 +85.8.2.154:80 +83.14.37.58:8080 +82.79.130.108:80 +82.79.130.10:80 +85.101.246.5:80 +89.159.48.239:80 +84.72.128.45:8000 +85.99.38.222:80 +85.101.118.103:8080 +84.96.47.142:22692 +85.97.75.93:80 +67.107.187.162:3128 +85.100.209.67:80 +82.67.177.213:80 +85.254.221.130:6588 +82.160.171.222:3128 +85.208.8.8:80 +82.151.143.246:80 +85.15.130.98:3128 +82.79.129.54:80 +85.236.129.101:8080 +82.79.129.63:80 +85.208.30.118:80 +85.208.30.147:80 +87.207.182.165:80 +82.193.37.3:80 +82.147.204.236:8080 +82.191.190.66:80 +82.50.10.37:6588 +85.46.48.252:80 +82.76.121.243:80 +88.2.98.53:20358 +85.113.143.10:3128 +83.242.89.25:80 +85.177.185.165:27320 +85.100.202.30:8080 +82.16.154.195:7212 +82.79.130.115:80 +84.235.139.146:3128 +83.147.165.251:8080 +83.18.112.118:80 +86.34.2.139:8080 +82.228.245.81:8000 +82.67.178.45:80 +82.79.130.192:80 +82.79.130.143:80 +84.45.170.172:80 +85.68.206.250:23756 +82.79.129.69:80 +82.224.136.109:80 +83.15.186.53:80 +85.107.211.127:8080 +85.233.131.6:80 +82.198.97.91:8000 +86.20.171.250:80 +202.171.253.70:80 +85.204.119.187:31872 +110.164.191.2:8000 +82.34.14.194:7212 +85.107.211.127:80 +82.162.77.2:3128 +82.214.222.129:8080 +85.100.76.78:80 +85.98.104.236:8080 +82.79.130.137:80 +222.74.200.2:1080 +84.10.106.86:80 +82.67.103.28:80 +82.147.204.162:8080 +82.79.130.201:80 +83.103.43.252:80 +82.133.71.152:8080 +85.101.223.93:80 +82.79.130.213:80 +82.160.142.23:3128 +85.107.139.26:8080 +88.196.18.252:14987 +85.101.212.61:80 +84.29.124.104:31461 +85.18.116.247:8080 +82.67.127.110:80 +82.79.129.26:80 +82.79.129.56:80 +85.208.17.124:80 +82.66.6.6:80 +85.208.25.2:80 +222.89.92.106:3128 +84.29.124.15:25767 +86.55.107.216:80 +85.32.186.170:80 +85.107.15.139:8080 +84.4.172.167:3186 +85.100.202.30:80 +82.225.68.165:80 +85.208.31.151:80 +82.147.204.250:8080 +83.245.15.73:80 +83.238.44.184:8080 +85.100.210.17:8080 +85.208.29.32:80 +85.107.30.22:80 +85.101.82.168:80 +83.15.90.109:80 +82.133.71.158:8080 +82.240.190.171:8080 +82.157.237.117:80 +82.147.204.183:8080 +82.191.178.168:3128 +87.105.19.51:80 +85.100.214.171:8080 +82.79.130.117:80 +85.101.105.249:8080 +86.1.200.94:7212 +82.79.130.224:80 +82.187.178.34:80 +83.19.79.22:80 +86.106.217.91:3666 +82.194.53.187:80 +85.107.177.251:8080 +128.143.140.33:80 +82.243.167.72:8000 +82.147.204.181:8080 +38.101.234.50:1080 +86.106.89.33:8080 +82.139.19.13:80 +83.100.217.94:80 +82.79.130.185:80 +85.107.100.61:8080 +84.10.106.40:80 +218.61.76.158:1080 +82.31.106.89:8000 +86.35.55.242:3128 +82.79.129.43:80 +85.70.64.120:80 +82.234.50.164:8080 +82.243.85.104:6588 +82.79.130.230:80 +85.100.211.137:8080 +86.35.6.34:3128 +82.206.193.146:3128 +85.10.51.99:8080 +84.14.254.3:80 +84.244.7.98:3128 +82.79.130.182:80 +115.108.177.230:1080 +82.230.245.232:1026 +86.35.43.85:6588 +82.235.157.128:80 +83.238.44.156:8080 +83.238.44.56:8080 +83.238.44.13:8080 +83.81.141.207:8080 +82.195.17.235:80 +82.79.129.97:80 +82.151.217.29:8080 +18.181.2.157:3128 +85.154.167.153:80 +85.186.202.96:6588 +85.208.16.229:80 +85.219.247.52:80 +83.16.248.210:8080 +82.194.53.37:80 +83.215.80.118:24499 +85.100.27.43:80 +83.238.44.172:8080 +82.67.101.92:6588 +82.230.45.66:80 +82.196.202.234:80 +83.144.73.17:80 +82.79.130.244:80 +82.79.130.1:80 +91.210.104.104:80 +86.20.210.91:7212 +82.79.130.195:80 +85.101.111.144:80 +86.138.94.88:8080 +82.79.130.11:80 +85.46.218.228:80 +82.79.130.12:80 +82.157.239.4:80 +85.208.16.219:80 +82.79.129.90:80 +85.154.167.137:80 +85.101.163.63:8080 +82.194.53.185:80 +85.10.22.148:3128 +88.147.4.109:57328 +85.101.207.96:8080 +83.16.113.106:80 +84.244.0.156:5050 +82.194.53.161:80 +83.239.11.134:3128 +82.133.71.151:8080 +83.137.140.83:80 +82.211.102.142:8080 +82.234.8.161:80 +61.213.197.107:444 +82.224.13.192:80 +82.77.21.52:80 +83.89.44.122:8080 +82.79.129.252:80 +82.147.174.96:80 +84.16.242.108:3128 +83.160.234.27:80 +83.16.148.52:8080 +83.149.83.162:80 +85.107.87.153:80 +85.107.181.123:80 +82.158.60.119:6588 +85.108.166.22:80 +85.185.236.231:3128 +83.149.83.132:80 +82.143.145.28:80 +85.107.52.246:8080 +82.184.255.6:80 +82.182.74.56:80 +85.107.230.67:8080 +85.99.205.182:8080 +82.147.204.240:8080 +83.222.162.235:8080 +85.107.97.68:80 +85.105.38.61:3128 +83.239.3.206:8000 +83.246.141.80:8080 +86.34.212.157:6588 +82.79.130.22:80 +83.169.144.178:80 +84.45.170.172:8080 +82.147.204.248:8080 +82.79.130.100:80 +85.99.59.75:80 +211.157.111.150:1080 +85.113.170.18:9243 +85.69.49.143:80 +85.154.167.150:80 +82.228.48.108:80 +82.60.148.252:13942 +82.79.129.25:80 +82.79.130.217:80 +85.107.48.217:80 +87.248.160.27:80 +87.207.102.106:6588 +82.133.71.155:8080 +82.129.167.188:80 +82.194.53.182:80 +213.192.3.66:1080 +83.238.44.63:8080 +82.246.36.55:8080 +85.100.214.69:80 +82.79.130.131:80 +84.122.161.32:6588 +82.151.244.169:80 +85.208.33.231:80 +82.79.130.141:80 +82.79.129.9:80 +85.99.232.137:80 +82.79.129.37:80 +85.208.33.148:80 +85.47.204.124:80 +82.79.129.78:80 +88.152.113.13:8080 +186.112.83.147:1080 +85.208.34.100:80 +85.107.101.86:8080 +84.228.27.176:16538 +83.65.209.2:3128 +88.100.52.251:8080 +82.224.145.102:80 +82.79.132.88:80 +83.208.10.206:3128 +180.168.49.108:1080 +83.18.78.66:80 +87.207.246.100:80 +82.160.142.3:3128 +82.79.130.122:80 +85.107.27.23:8080 +82.151.210.205:80 +82.79.129.36:80 +85.226.24.211:18183 +82.224.216.83:80 +83.14.144.154:80 +221.156.194.164:3128 +84.92.43.248:7212 +85.208.8.62:80 +82.148.97.67:80 +85.98.77.154:80 +82.79.130.177:80 +83.238.44.180:8080 +82.156.39.178:6588 +119.161.161.188:1080 +82.79.130.171:80 +87.228.99.196:8080 +85.97.101.14:80 +82.194.53.6:80 +82.79.129.29:80 +86.106.217.104:6588 +83.15.153.114:8080 +85.208.26.155:80 +82.179.198.98:80 +83.142.115.115:80 +82.76.214.105:6588 +82.194.53.133:80 +82.147.204.164:8080 +85.168.151.53:10765 +119.145.2.161:1080 +85.107.130.196:80 +84.72.250.18:20355 +82.140.119.107:8080 +83.238.19.40:80 +82.79.130.165:80 +83.206.45.172:80 +83.218.237.46:3128 +83.61.4.18:8080 +82.236.237.63:8080 +85.59.73.15:29749 +82.79.23.49:80 +128.9.216.187:8118 +85.241.20.242:8080 +83.19.122.122:80 +83.14.92.227:80 +195.205.171.48:1080 +82.237.252.43:8080 +202.108.5.35:8080 +83.103.44.199:80 +83.143.43.227:80 +82.35.5.25:80 +82.66.16.213:80 +82.139.3.175:80 +83.160.180.101:80 +85.193.216.180:80 +82.192.160.134:80 +83.208.237.94:3128 +82.79.129.81:80 +82.79.129.250:80 +222.124.8.13:8000 +82.160.42.150:80 +85.70.3.96:3128 +85.186.17.156:6588 +86.123.186.248:29786 +82.162.222.25:8000 +82.79.130.151:80 +82.160.135.10:3128 +85.107.30.22:8080 +83.228.19.218:8080 +83.103.191.166:80 +86.63.155.114:80 +85.187.220.127:6588 +88.101.254.160:3128 +119.115.136.150:1080 +85.107.235.44:8080 +85.39.187.34:3128 +83.238.44.50:8080 +82.161.233.210:80 +85.100.209.67:8080 +84.18.113.33:3128 +85.97.125.104:80 +82.54.82.23:8080 +85.48.65.94:6588 +83.103.191.186:80 +82.193.105.203:3128 +82.127.76.7:80 +82.97.68.54:80 +82.194.53.49:80 +83.19.237.2:80 +82.79.130.134:80 +83.238.44.43:8080 +83.18.248.218:80 +82.142.150.82:8080 +83.238.44.151:8080 +87.236.197.18:80 +82.92.48.31:80 +85.208.24.187:80 +82.227.96.217:80 +85.107.130.172:80 +82.129.167.187:80 +82.79.130.164:80 +85.100.210.110:80 +85.169.183.95:22289 +187.4.205.153:1080 +85.39.245.74:8080 +85.124.98.86:8080 +85.100.214.69:8080 +82.194.53.34:80 +82.79.130.109:80 +82.210.147.10:80 +83.138.187.17:80 +84.10.130.193:80 +82.9.123.181:7212 +83.17.159.226:8080 +82.227.210.96:7212 +85.107.101.214:8080 +82.94.255.24:8080 +82.250.67.164:28642 +85.208.33.83:80 +82.231.180.182:7212 +82.193.220.162:80 +85.107.92.197:8080 +82.79.129.4:80 +82.230.112.176:80 +83.14.7.147:8080 +83.16.108.10:80 +82.194.53.41:80 +82.79.129.41:80 +83.18.140.6:3128 +85.208.35.33:80 +83.238.44.182:8080 +82.231.123.174:8000 +87.69.26.34:8000 +86.5.195.208:7212 +85.169.218.12:44788 +84.235.130.34:3128 +82.194.53.169:80 +125.46.34.28:1080 +82.79.129.47:80 +84.143.254.83:20846 +85.154.167.156:80 +85.136.18.155:8080 +85.208.19.58:80 +83.238.44.170:8080 +82.99.201.188:8080 +82.147.204.244:8080 +84.47.176.176:3128 +85.204.8.40:6588 +83.103.94.52:80 +82.194.53.38:80 +83.64.10.179:80 +83.245.0.18:80 +82.27.36.221:80 +86.6.5.23:7212 +82.36.205.200:7212 +82.17.35.116:80 +82.133.71.157:8080 +82.79.130.167:80 +85.182.164.10:80 +83.148.108.32:8080 +85.208.16.173:80 +83.238.44.183:8080 +85.107.6.202:80 +208.180.60.126:8080 +82.205.139.45:3128 +82.79.130.188:80 +82.249.100.234:6588 +85.101.105.32:8080 +85.107.130.172:8080 +82.147.204.245:8080 +85.99.245.97:8080 +84.40.240.130:80 +220.189.227.2:1080 +86.105.49.88:8000 +82.76.37.210:8080 +85.169.183.95:32164 +76.127.132.152:80 +83.238.44.104:8080 +82.79.129.80:80 +82.79.130.148:80 +87.225.19.58:3128 +85.100.250.93:8080 +82.79.130.105:80 +85.107.59.15:8080 +84.10.177.252:80 +82.35.147.65:7212 +85.71.221.23:3618 +85.117.2.6:80 +85.104.233.172:8080 +85.208.24.41:80 +84.236.9.246:8080 +82.99.212.15:3128 +82.162.202.82:6588 +85.107.100.150:8080 +82.79.130.203:80 +82.79.130.218:80 +87.244.224.245:1080 +82.36.129.56:80 +85.107.199.10:80 +85.107.134.136:8080 +85.107.103.133:8080 +85.98.51.188:80 +82.133.71.150:8080 +85.107.101.15:8080 +85.107.48.217:8080 +85.107.222.8:80 +84.159.244.180:3664 +85.42.90.154:8080 +82.79.129.91:80 +85.208.18.162:80 +85.236.135.219:8080 +82.151.209.137:80 +85.107.149.60:8080 +85.107.27.23:80 +85.154.167.143:80 +85.96.175.72:6588 +82.235.33.221:80 +85.193.204.171:80 +82.79.130.220:80 +82.160.142.22:3128 +85.98.49.175:8080 +85.100.103.224:8080 +85.208.27.9:80 +82.133.71.160:8080 +82.79.129.59:80 +82.194.61.165:3128 +82.79.130.228:80 +82.243.93.226:6588 +82.235.223.98:8000 +82.133.71.30:8080 +83.220.41.194:3128 +83.160.39.134:3128 +85.100.96.61:80 +85.99.61.251:80 +82.147.204.241:8080 +85.154.167.145:80 +82.229.229.95:80 +85.69.85.3:80 +82.200.140.134:8080 +85.107.204.16:8080 +82.194.53.181:80 +82.79.130.176:80 +85.194.112.120:8080 +82.79.130.160:80 +93.97.195.3:80 +88.240.54.51:80 +83.42.85.138:8080 +84.244.76.3:80 +82.17.162.8:7212 +109.86.157.215:1080 +76.27.221.212:27977 +85.97.207.165:80 +85.34.111.52:80 +69.10.130.206:8080 +84.73.26.250:3128 +82.229.244.15:80 +82.78.127.231:6588 +82.194.53.166:80 +82.206.239.183:8080 +206.64.92.16:8000 +83.238.44.62:8080 +82.79.130.174:80 +82.79.129.31:80 +119.51.93.162:1080 +82.165.40.72:80 +85.186.81.18:80 +85.32.57.194:80 +82.79.129.93:80 +85.99.247.75:80 +85.216.14.213:80 +82.163.126.22:80 +84.16.234.212:80 +85.65.56.138:19431 +82.233.18.192:443 +84.247.24.127:6588 +85.185.134.3:80 +85.107.62.43:8080 +83.14.162.222:80 +83.103.206.118:80 +83.16.99.166:80 +72.24.126.143:1080 diff --git a/muhstik/socks5.txt b/muhstik/socks5.txt new file mode 100644 index 0000000..1befe30 --- /dev/null +++ b/muhstik/socks5.txt @@ -0,0 +1,2113 @@ +82.163.126.22:80 +82.79.129.29:80 +110.164.191.2:8000 +85.33.152.36:8000 +85.226.24.211:18183 +83.215.252.140:8080 +82.79.130.132:80 +84.62.6.219:80 +85.97.65.241:80 +83.97.24.4:3128 +83.103.153.20:8080 +85.100.214.153:80 +85.208.39.141:80 +85.240.196.182:9540 +83.19.237.2:80 +83.238.44.56:8080 +82.206.237.168:3128 +82.194.53.184:80 +85.114.74.126:80 +82.21.72.146:80 +82.34.14.194:7212 +83.97.24.45:3128 +85.100.212.133:80 +83.14.37.58:8080 +82.43.60.76:80 +84.47.21.169:3128 +85.100.227.225:80 +82.234.238.19:8080 +82.233.19.69:8080 +82.79.130.177:80 +82.229.99.105:80 +82.79.129.42:80 +83.149.244.98:80 +84.42.248.131:1080 +82.194.53.188:80 +85.194.108.3:8080 +85.55.8.54:8080 +82.79.129.82:80 +84.25.227.148:25636 +85.107.149.60:8080 +85.107.101.15:80 +85.105.44.217:8080 +83.215.11.56:7212 +82.79.130.167:80 +83.64.10.179:80 +85.208.20.129:80 +86.34.242.34:8080 +85.100.75.2:80 +84.40.143.232:80 +83.238.44.153:8080 +83.228.112.216:3128 +82.156.24.176:80 +195.117.61.211:1080 +82.202.117.115:3128 +82.79.130.212:80 +82.135.201.172:80 +85.97.207.165:80 +84.45.67.194:80 +82.76.121.243:80 +85.91.57.246:80 +85.186.171.221:8080 +86.55.107.217:80 +84.52.1.135:3128 +208.180.60.126:8080 +85.65.56.138:19431 +82.231.180.182:7212 +82.228.111.118:80 +84.40.137.75:80 +85.95.172.10:80 +85.107.181.123:80 +85.107.235.44:8080 +88.148.69.202:8080 +85.208.21.177:80 +85.107.101.214:8080 +82.79.130.221:80 +85.101.212.61:80 +125.46.34.28:1080 +85.101.40.17:8080 +82.140.84.170:80 +83.238.44.183:8080 +201.6.150.84:1080 +83.18.140.6:3128 +84.94.17.78:9851 +82.79.130.192:80 +85.69.85.3:80 +85.113.170.18:9243 +82.194.53.179:80 +82.79.130.118:80 +85.208.28.113:80 +85.107.225.197:80 +82.79.129.91:80 +82.194.53.6:80 +85.98.49.18:80 +83.206.23.41:8080 +85.208.30.40:80 +83.208.176.122:8000 +83.16.172.206:80 +84.19.181.49:80 +82.79.129.44:80 +82.194.53.4:80 +85.155.38.235:6588 +88.33.254.90:80 +84.6.243.106:3548 +85.99.206.17:80 +83.100.217.148:80 +85.107.27.23:8080 +83.27.29.15:80 +82.147.204.246:8080 +85.99.205.182:80 +85.154.167.149:80 +83.100.140.214:80 +82.237.252.43:8080 +86.55.107.216:80 +82.207.42.152:6588 +82.79.130.198:80 +82.161.233.210:80 +82.208.156.147:80 +85.103.17.228:80 +84.10.106.86:80 +82.142.150.82:8080 +85.177.184.190:4006 +85.100.214.69:8080 +82.160.243.150:8080 +82.209.219.130:80 +84.121.227.218:6588 +85.208.8.8:80 +88.80.129.29:3128 +85.154.167.159:80 +82.79.129.37:80 +85.208.31.106:80 +82.187.178.34:80 +85.168.151.53:10765 +83.208.10.206:3128 +82.147.204.162:8080 +85.108.166.22:80 +85.208.33.19:80 +82.79.129.68:80 +85.108.135.157:8080 +85.101.111.144:8080 +82.182.74.56:80 +83.16.113.106:80 +82.229.229.95:80 +218.14.227.197:3128 +124.160.27.162:1080 +82.79.130.136:80 +202.171.253.70:80 +82.147.204.250:8080 +195.205.171.48:1080 +66.167.100.59:6649 +82.79.130.133:80 +85.105.38.61:3128 +85.226.108.136:8080 +86.34.212.157:6588 +86.134.130.225:32798 +82.146.42.67:80 +85.107.6.202:80 +85.107.15.139:80 +202.57.10.38:1080 +85.124.98.86:8080 +82.66.142.93:80 +86.34.4.73:6588 +82.79.129.63:80 +82.79.129.251:80 +83.208.202.192:3128 +82.79.130.223:80 +89.222.154.227:1080 +110.189.168.171:1080 +82.160.42.150:80 +82.141.232.130:80 +85.107.38.136:8080 +85.21.249.159:3128 +85.100.214.153:8080 +85.99.187.146:8080 +85.98.87.33:8080 +85.107.192.63:80 +85.107.142.28:8080 +84.237.157.180:8080 +85.168.182.175:80 +82.206.234.116:3128 +82.67.117.119:80 +82.79.130.147:80 +84.205.180.206:80 +68.59.56.208:27977 +85.186.81.76:6588 +83.89.44.122:8080 +89.83.228.83:12178 +82.184.228.50:80 +84.40.240.130:80 +85.115.104.148:6588 +123.237.107.132:1080 +83.149.26.254:80 +84.4.172.167:3186 +85.99.75.229:8080 +83.137.62.108:3128 +82.227.189.34:3128 +85.194.112.119:8080 +85.208.27.254:80 +84.40.171.66:80 +83.14.7.146:80 +82.79.129.9:80 +86.4.206.187:7212 +83.213.161.243:8080 +210.158.6.201:8080 +85.208.26.214:80 +82.161.170.88:80 +88.36.84.91:31470 +85.208.32.1:80 +85.100.255.177:80 +82.79.129.247:80 +82.228.245.81:8000 +86.0.44.211:7212 +84.27.39.159:7212 +82.79.130.214:80 +89.110.2.72:10414 +85.101.105.249:80 +82.79.129.54:80 +84.16.242.108:3128 +82.79.130.155:80 +82.79.129.52:80 +82.143.128.234:80 +84.22.159.188:1080 +83.228.30.6:3128 +82.79.134.133:80 +85.195.137.57:3128 +82.167.23.71:8080 +85.70.61.19:3128 +85.107.142.28:80 +85.34.94.156:8080 +85.187.138.30:6588 +82.207.120.1:3128 +85.195.137.50:8080 +85.100.197.206:80 +84.244.7.98:3128 +86.131.125.82:8080 +85.100.163.202:8080 +85.154.167.156:80 +85.208.17.124:80 +83.102.149.162:80 +82.76.8.193:6588 +85.107.49.4:80 +82.79.130.169:80 +82.230.112.176:80 +82.194.53.50:80 +84.98.118.254:20339 +84.205.208.229:8080 +82.149.85.6:80 +83.6.226.115:80 +83.238.44.61:8080 +83.142.115.115:80 +88.198.23.37:8080 +82.76.192.15:6588 +82.231.241.67:8080 +82.79.130.119:80 +85.236.135.108:8080 +82.133.71.32:8080 +82.78.101.60:3128 +85.208.33.235:80 +83.151.14.104:3128 +85.154.167.147:80 +88.226.0.173:80 +82.68.24.148:2301 +82.205.139.45:3128 +85.208.30.53:80 +85.10.206.37:80 +82.194.53.168:80 +82.99.210.195:8080 +82.79.130.18:80 +82.14.71.100:80 +86.10.93.4:7212 +86.55.107.208:80 +83.103.44.199:80 +83.238.242.55:80 +85.154.167.150:80 +82.79.130.188:80 +85.107.52.246:8080 +88.101.254.160:3128 +95.167.228.85:80 +82.194.53.43:80 +82.79.130.222:80 +83.160.42.128:3128 +82.194.53.5:80 +84.10.66.78:80 +82.79.130.180:80 +82.79.130.140:80 +180.168.49.108:1080 +85.98.77.154:8080 +187.4.205.153:1080 +83.19.122.122:80 +85.208.18.165:80 +85.107.30.22:8080 +82.79.130.19:80 +202.115.7.51:1080 +85.208.27.247:80 +83.230.162.175:7212 +87.192.28.111:7212 +82.79.130.187:80 +82.194.53.7:80 +82.79.130.20:80 +83.160.39.134:3128 +82.79.130.166:80 +85.101.207.95:8080 +86.35.6.34:3128 +121.18.97.250:1080 +85.107.156.24:80 +85.204.213.222:8000 +83.238.19.40:80 +82.205.159.197:8080 +85.101.223.93:80 +86.127.4.174:80 +82.194.53.187:80 +82.67.178.45:80 +85.208.21.145:80 +82.193.220.162:80 +83.213.239.23:3128 +83.14.55.210:80 +82.79.130.179:80 +85.107.66.207:80 +109.185.166.114:1080 +218.7.191.182:1080 +82.224.22.172:80 +84.97.174.228:4818 +82.79.130.111:80 +83.97.24.133:3128 +84.158.254.210:20460 +83.229.48.140:8080 +82.79.129.253:80 +82.79.130.112:80 +82.99.227.18:8080 +83.229.103.120:3128 +82.194.53.63:80 +82.160.142.16:3128 +85.154.167.155:80 +82.79.130.100:80 +82.133.71.152:8080 +82.150.139.32:80 +82.194.53.36:80 +86.128.191.231:1831 +85.99.61.251:80 +82.79.195.170:80 +82.154.69.20:8080 +83.137.59.158:3128 +85.208.26.158:80 +187.17.227.130:1080 +85.18.250.2:8080 +82.135.208.98:80 +82.79.130.210:80 +82.79.129.3:80 +82.99.212.15:3128 +82.99.136.161:3128 +83.103.191.175:80 +85.41.48.254:80 +82.76.153.163:8080 +83.148.108.32:8080 +82.79.129.40:80 +82.194.53.42:80 +124.128.233.130:1080 +82.79.129.28:80 +82.147.204.244:8080 +85.208.9.21:80 +87.69.26.34:8000 +85.107.62.43:8080 +82.194.53.182:80 +82.245.193.202:80 +190.183.124.7:1080 +83.16.167.178:80 +217.199.134.54:1080 +83.228.19.218:8080 +85.208.19.79:80 +83.103.94.52:80 +219.223.252.31:9080 +82.157.237.117:80 +84.74.5.252:4507 +85.101.147.240:80 +84.99.172.103:6588 +82.79.129.71:80 +83.72.68.98:27440 +83.17.22.54:80 +88.42.202.161:8080 +82.160.142.18:3128 +82.194.53.45:80 +85.208.24.187:80 +82.79.129.94:80 +82.79.129.86:80 +82.185.126.114:80 +82.195.17.235:80 +83.92.85.161:8080 +82.76.68.222:6588 +85.169.218.12:44788 +85.185.129.165:80 +85.154.167.140:80 +82.79.130.102:80 +82.198.21.97:3128 +85.15.130.98:3128 +85.204.8.40:6588 +82.194.53.177:80 +83.103.70.58:80 +82.209.200.19:80 +86.6.32.179:1176 +83.238.44.157:8080 +84.40.225.153:6588 +85.8.2.154:80 +85.97.90.193:8080 +84.112.94.213:6588 +82.29.136.197:7212 +82.182.78.122:80 +82.224.35.113:8000 +85.107.91.83:80 +82.210.158.11:80 +85.105.32.222:80 +85.107.130.172:80 +85.208.26.234:80 +83.222.15.92:80 +82.139.3.175:80 +82.79.130.247:80 +82.245.77.7:8080 +218.93.193.27:1080 +85.236.129.106:8080 +83.206.45.172:80 +82.79.130.106:80 +85.97.125.104:80 +83.141.133.81:8080 +85.107.119.74:80 +85.100.207.239:80 +211.157.111.150:1080 +82.79.129.46:80 +165.228.98.206:80 +82.147.204.176:8080 +82.207.78.196:8080 +85.100.210.110:8080 +83.222.162.235:8080 +82.79.130.126:80 +82.160.204.40:80 +83.99.136.218:8080 +85.154.167.143:80 +83.103.191.186:80 +82.79.130.228:80 +85.154.167.137:80 +82.243.167.72:8000 +85.185.236.229:3128 +82.79.130.124:80 +85.42.90.155:8080 +85.100.255.177:8080 +85.107.48.217:8080 +82.198.121.2:8080 +83.162.15.60:8080 +83.228.43.19:3128 +187.111.223.10:1080 +85.100.211.137:8080 +82.194.63.12:80 +83.238.44.64:8080 +85.216.14.213:80 +83.18.112.118:80 +85.86.214.238:6588 +84.189.35.196:3128 +82.79.129.80:80 +82.129.167.187:80 +85.185.236.231:3128 +83.17.249.114:80 +83.100.217.94:80 +83.33.42.43:8080 +85.100.10.152:80 +83.14.92.227:80 +82.99.136.17:3128 +85.107.87.153:80 +85.101.229.181:8080 +85.65.180.129:27062 +82.240.20.45:8000 +207.62.217.252:3128 +83.238.44.155:8080 +85.100.68.43:8080 +82.141.204.211:80 +82.79.130.211:80 +85.100.243.100:80 +82.147.204.243:8080 +84.10.38.142:6588 +82.79.129.250:80 +213.192.3.66:1080 +85.106.135.53:8080 +82.194.53.178:80 +83.144.107.180:80 +82.191.154.99:80 +82.225.0.2:80 +62.243.224.179:1080 +82.194.53.33:80 +111.172.52.33:1080 +85.186.239.56:6588 +85.107.119.74:8080 +82.79.130.109:80 +84.7.81.79:14914 +85.100.195.230:80 +83.19.8.115:80 +117.211.13.133:1080 +87.228.176.231:31224 +83.14.162.222:80 +82.79.129.243:80 +87.110.100.116:13541 +83.175.237.51:8080 +85.100.161.12:8080 +84.234.8.72:80 +85.107.97.68:80 +86.126.50.163:32194 +82.161.184.141:80 +82.79.130.2:80 +83.103.191.166:80 +82.224.252.54:80 +82.194.53.49:80 +83.242.89.25:80 +85.105.161.9:8080 +82.165.36.203:80 +85.105.185.147:8080 +82.179.1.72:8080 +85.108.206.24:80 +85.100.200.29:80 +85.71.146.185:3128 +85.168.125.196:21435 +82.245.101.16:8080 +82.147.204.166:8080 +88.224.172.9:8080 +83.238.44.185:8080 +85.169.183.95:32164 +85.177.185.165:27320 +86.35.232.20:6588 +85.99.47.102:8080 +87.99.56.240:3128 +87.207.241.165:3128 +83.20.4.38:6588 +82.237.89.100:80 +85.208.8.62:80 +83.238.44.43:8080 +85.222.5.206:80 +83.206.95.1:8080 +85.107.133.13:80 +85.219.165.44:80 +82.143.152.10:80 +85.10.51.99:8080 +82.231.43.24:8000 +83.138.137.125:80 +83.238.44.150:8080 +82.194.53.172:80 +83.18.43.150:3128 +84.29.124.104:31461 +82.79.129.26:80 +82.79.129.72:80 +82.79.129.70:80 +119.145.2.161:1080 +86.127.64.2:3128 +82.79.130.108:80 +90.0.0.1:80 +85.208.26.239:80 +85.107.57.46:8080 +82.225.55.151:8000 +84.100.35.162:80 +85.24.45.183:8080 +82.162.52.181:3128 +85.94.96.247:8080 +84.40.139.122:80 +83.149.83.162:80 +82.234.8.161:80 +187.16.57.170:1080 +85.208.26.180:80 +82.31.106.89:8000 +85.107.89.55:8080 +83.105.34.104:8080 +83.238.44.102:8080 +83.238.44.190:8080 +85.100.209.56:80 +82.147.204.247:8080 +82.231.252.3:80 +82.194.53.181:80 +82.147.204.179:8080 +84.51.18.20:8080 +85.96.201.131:3128 +82.139.40.130:8000 +84.159.244.180:3664 +85.56.132.77:8080 +209.97.203.60:8080 +83.97.24.10:3128 +82.92.48.31:80 +82.90.15.213:80 +82.57.76.191:3128 +82.79.130.244:80 +85.250.132.15:6588 +86.20.210.91:7212 +82.164.3.238:80 +83.238.44.180:8080 +83.19.149.226:80 +82.79.129.69:80 +84.234.138.202:80 +83.238.44.12:8080 +83.168.76.143:80 +84.92.189.245:6588 +76.27.221.212:27977 +85.59.125.178:6588 +82.92.72.196:80 +82.79.130.151:80 +82.227.132.35:80 +85.65.227.106:6588 +128.143.140.33:80 +85.100.250.93:8080 +82.79.130.21:80 +83.208.105.131:8080 +85.100.250.93:80 +119.161.161.188:1080 +206.64.92.16:8000 +82.39.88.210:80 +84.244.10.2:3128 +85.101.111.65:80 +85.107.27.23:80 +82.192.160.134:80 +85.10.206.36:80 +85.186.81.18:443 +83.16.43.92:80 +82.79.129.90:80 +82.79.129.57:80 +84.14.254.3:80 +82.160.142.5:3128 +82.236.237.63:8080 +85.100.209.56:8080 +82.79.130.220:80 +82.79.129.38:80 +85.186.116.49:8080 +85.107.97.110:80 +85.100.253.187:80 +85.208.27.9:80 +82.229.246.110:3128 +85.210.139.15:11937 +83.220.41.194:3128 +82.35.5.25:80 +82.140.119.107:8080 +82.36.129.56:80 +82.198.0.11:3128 +85.193.220.64:7212 +82.79.129.25:80 +83.144.73.17:80 +82.79.130.103:80 +85.168.98.122:11129 +84.235.63.160:8080 +85.107.131.111:8080 +83.138.56.246:80 +203.187.238.231:1080 +85.107.177.251:8080 +83.17.167.90:80 +82.97.68.54:80 +82.60.148.252:13942 +84.121.117.251:8080 +82.235.33.221:80 +85.107.100.150:80 +85.84.121.205:80 +82.79.129.89:80 +85.104.181.226:8080 +82.200.140.251:3128 +83.14.0.106:80 +82.241.149.177:8080 +82.90.41.80:80 +85.105.161.9:80 +82.79.129.87:80 +87.236.197.16:80 +85.91.146.205:3128 +85.105.147.119:6588 +85.208.26.254:80 +83.235.54.17:80 +82.186.254.188:80 +82.79.130.23:80 +85.107.71.80:8080 +82.45.180.183:80 +218.182.134.23:8080 +83.17.159.226:8080 +85.208.16.223:80 +85.99.20.252:8080 +115.252.157.189:1080 +82.79.129.77:80 +84.40.148.252:80 +85.99.232.137:80 +86.106.89.33:8080 +218.61.76.158:1080 +85.107.71.18:80 +82.79.130.190:80 +83.16.99.166:80 +202.6.96.24:80 +84.245.34.243:80 +85.100.76.78:80 +202.109.133.181:1080 +82.135.201.79:80 +85.135.27.250:3128 +82.147.204.248:8080 +84.16.234.212:80 +82.194.53.135:80 +82.138.229.11:80 +82.79.129.6:80 +85.105.56.2:8080 +85.208.29.32:80 +85.208.26.148:80 +83.103.206.118:80 +84.14.146.122:28286 +87.236.197.18:80 +85.108.196.143:80 +82.79.130.101:80 +88.196.18.252:14987 +85.201.125.192:23005 +83.243.111.248:80 +85.208.26.244:80 +82.79.129.67:80 +82.79.130.170:80 +85.99.138.163:8080 +83.19.144.18:80 +85.100.197.206:8080 +85.100.231.179:8080 +85.100.151.116:8080 +82.233.83.67:80 +85.100.103.224:8080 +85.107.156.24:8080 +82.79.129.36:80 +82.50.10.37:6588 +83.238.44.54:8080 +82.147.204.245:8080 +84.101.174.80:6588 +83.16.44.134:80 +82.243.85.104:6588 +82.79.130.206:80 +83.16.162.114:80 +88.226.117.87:80 +68.199.83.207:7212 +85.208.30.220:80 +85.208.26.242:80 +85.208.20.82:80 +85.107.100.61:8080 +82.79.129.53:80 +83.221.203.202:3128 +86.17.161.51:7212 +85.107.134.219:8080 +82.194.53.170:80 +82.206.239.183:8080 +85.69.49.143:80 +87.29.161.17:3128 +83.18.78.66:8080 +85.208.20.228:80 +83.211.68.82:80 +211.222.202.109:80 +121.12.249.207:1080 +83.151.29.239:80 +82.165.255.43:80 +82.206.193.146:3128 +85.100.207.239:8080 +82.229.244.15:80 +84.161.77.98:3128 +82.160.142.24:3128 +86.6.5.23:7212 +87.244.224.245:1080 +85.104.7.213:80 +82.9.82.246:7212 +82.196.202.234:80 +83.117.80.252:6588 +80.167.238.78:1080 +82.79.129.39:80 +84.16.238.92:3128 +82.160.142.4:3128 +82.194.53.51:80 +128.9.216.187:8118 +82.79.130.193:80 +85.113.143.10:3128 +82.162.77.2:3128 +82.147.204.230:8080 +82.79.130.184:80 +82.147.204.224:8080 +85.98.49.175:8080 +86.55.8.194:80 +82.94.255.24:8080 +86.105.49.88:8000 +84.25.116.75:16616 +88.116.90.38:3128 +84.114.172.159:80 +162.105.248.137:1080 +218.59.161.169:1080 +85.107.54.33:80 +82.194.61.165:3128 +82.214.222.129:8080 +189.89.70.127:1080 +82.147.204.252:8080 +82.79.130.171:80 +88.137.3.116:25263 +83.208.26.54:6588 +87.117.10.230:27083 +85.101.111.65:8080 +85.114.241.23:3128 +88.226.7.225:80 +85.107.131.111:80 +87.207.246.100:80 +87.228.114.133:8000 +85.101.40.17:80 +85.39.187.34:3128 +87.0.192.8:6588 +85.100.202.30:80 +83.169.144.178:80 +82.79.129.66:80 +85.208.35.42:80 +82.79.130.110:80 +83.17.101.198:80 +82.36.205.200:7212 +82.243.93.226:6588 +82.127.91.227:80 +85.201.83.45:9354 +83.151.29.21:3128 +85.208.34.100:80 +88.136.129.233:9766 +83.114.205.97:1402 +82.79.129.254:80 +85.154.167.153:80 +85.101.223.93:8080 +87.226.22.13:25932 +88.2.98.53:20358 +85.208.17.53:80 +85.236.133.226:8080 +85.202.135.44:8000 +83.15.186.53:80 +82.79.130.125:80 +82.226.64.148:80 +86.106.217.91:3666 +202.102.72.59:1080 +82.79.129.62:80 +82.191.190.66:80 +82.143.132.177:80 +85.99.207.75:8080 +82.207.69.83:3128 +82.226.1.167:80 +82.231.70.174:8000 +85.99.59.75:80 +82.79.130.205:80 +82.210.160.234:80 +82.147.199.6:80 +85.208.24.60:80 +85.208.19.58:80 +118.96.120.218:1080 +82.79.129.41:80 +85.107.254.52:80 +85.193.205.55:80 +86.10.78.70:7212 +82.205.212.100:3128 +82.133.71.158:8080 +82.189.122.50:8080 +82.79.130.104:80 +83.18.78.66:80 +82.79.129.59:80 +82.79.130.105:80 +86.55.139.4:6588 +85.103.18.57:8080 +82.79.129.74:80 +85.50.49.196:6588 +85.208.30.41:80 +85.10.22.148:3128 +85.107.204.16:8080 +85.47.204.124:80 +84.244.5.64:43210 +220.189.227.2:1080 +82.67.11.110:80 +88.80.134.183:3128 +84.40.166.56:80 +211.103.232.63:1080 +83.14.55.186:80 +85.42.90.154:8080 +86.62.7.122:3128 +85.35.151.91:30857 +83.238.44.103:8080 +82.79.129.96:80 +84.45.170.172:8080 +85.59.73.15:29749 +82.194.53.171:80 +83.238.44.182:8080 +85.98.51.188:80 +85.208.8.243:80 +83.18.248.218:80 +109.86.198.39:1080 +85.194.64.100:8080 +84.19.180.230:80 +82.79.130.137:80 +85.107.192.63:8080 +82.77.158.214:6588 +85.107.99.51:8080 +82.79.130.17:80 +82.230.45.66:80 +84.193.146.232:8080 +82.90.33.140:80 +82.194.39.55:80 +82.184.255.6:80 +82.194.53.134:80 +82.79.130.181:80 +85.120.103.112:23 +85.100.96.61:80 +83.19.92.10:80 +83.246.141.80:8080 +82.77.150.192:6588 +82.139.31.183:80 +82.243.11.113:6588 +82.79.129.84:80 +85.97.101.14:80 +82.76.214.105:6588 +82.79.130.15:80 +90.0.0.10:80 +83.238.44.51:8080 +82.160.42.120:80 +82.133.71.157:8080 +85.208.32.202:80 +84.10.118.60:80 +85.208.27.2:80 +83.73.67.45:8080 +83.198.42.237:6588 +82.79.130.196:80 +82.67.4.166:80 +85.100.214.37:80 +85.208.26.147:80 +85.31.196.3:8080 +82.147.204.236:8080 +85.107.76.13:8080 +82.188.135.238:80 +82.250.67.164:28642 +83.103.52.206:8080 +82.191.154.100:80 +82.88.107.213:80 +85.91.138.120:8080 +82.235.157.128:80 +83.15.186.50:80 +85.107.91.83:8080 +85.208.25.157:80 +83.177.215.172:3128 +82.79.129.242:80 +85.72.35.240:8080 +83.165.2.162:8080 +85.101.82.168:80 +83.238.44.158:8080 +85.39.245.75:8080 +82.67.101.92:6588 +82.79.130.115:80 +88.73.100.65:1736 +83.17.24.37:80 +84.4.198.141:31007 +82.240.190.171:8080 +82.224.136.109:80 +85.107.89.55:80 +84.18.113.33:3128 +87.110.7.102:6653 +82.79.130.148:80 +83.236.175.146:80 +82.79.129.65:80 +85.107.101.214:80 +88.200.139.238:3128 +82.133.71.205:8080 +85.100.245.208:8080 +86.55.107.210:80 +220.20.199.74:8080 +82.79.129.248:80 +84.40.235.57:80 +82.200.143.170:3128 +84.99.205.50:6135 +83.16.8.2:3128 +85.230.45.140:13566 +109.230.217.103:1080 +82.79.130.199:80 +82.194.53.57:80 +85.100.210.17:8080 +82.79.129.249:80 +84.96.20.76:80 +85.114.7.122:3128 +82.79.130.142:80 +83.143.43.227:80 +83.208.237.94:3128 +82.168.53.98:80 +83.104.180.83:80 +85.107.206.117:8080 +87.6.249.74:6588 +85.186.101.202:6588 +84.45.170.172:80 +82.76.34.173:80 +85.70.64.120:80 +83.90.185.237:8080 +82.79.130.185:80 +83.238.44.55:8080 +82.79.129.61:80 +82.147.204.234:8080 +82.79.130.162:80 +76.127.132.152:80 +221.1.215.90:1080 +85.208.27.204:80 +83.36.202.118:80 +82.79.129.48:80 +82.79.130.218:80 +82.32.26.113:31925 +83.143.9.18:6588 +82.160.142.6:3128 +85.186.202.96:6588 +83.90.255.98:6588 +83.245.117.131:80 +83.103.217.247:80 +85.107.222.8:8080 +82.160.42.205:80 +58.241.40.228:1080 +84.191.254.231:80 +82.79.130.107:80 +84.103.76.133:7212 +84.40.128.35:80 +83.151.226.193:80 +221.156.194.164:3128 +85.105.35.227:8080 +83.239.38.158:3128 +87.231.175.76:6588 +82.151.210.205:80 +85.182.164.10:80 +202.108.5.35:8080 +82.160.142.12:3128 +82.78.127.231:6588 +85.107.254.52:8080 +85.186.81.8:8080 +83.48.64.135:80 +82.27.36.221:80 +85.70.238.10:3128 +82.159.1.115:8080 +83.245.0.19:80 +93.167.194.250:1080 +83.250.161.64:34042 +87.248.160.27:8081 +82.248.138.168:6588 +84.122.232.88:8000 +82.79.130.246:80 +84.10.130.193:80 +85.241.22.251:80 +82.79.129.88:80 +85.208.25.25:80 +82.99.217.153:8080 +82.198.97.91:8000 +85.192.143.30:80 +83.238.44.104:8080 +82.79.129.33:80 +83.18.13.58:80 +41.190.16.17:8080 +82.79.129.49:80 +85.107.89.24:80 +82.79.130.182:80 +85.100.145.198:80 +82.160.142.9:3128 +85.101.186.110:80 +82.194.53.163:80 +85.46.48.252:80 +85.208.30.118:80 +83.17.20.118:80 +82.194.53.54:80 +82.79.130.197:80 +85.101.246.5:80 +82.165.40.72:80 +84.40.227.129:80 +82.79.130.159:80 +58.56.45.120:1080 +85.107.103.133:8080 +85.208.16.229:80 +83.17.147.172:80 +85.192.130.80:80 +82.160.130.91:3128 +85.39.245.74:8080 +83.15.65.138:3128 +88.80.134.221:3128 +86.1.200.94:7212 +85.222.0.183:80 +85.101.49.24:80 +86.51.0.135:8080 +202.43.124.54:1080 +82.7.37.225:8080 +222.124.8.13:8000 +58.17.235.175:1080 +85.99.62.169:80 +82.79.130.135:80 +85.107.66.207:8080 +85.107.49.4:8080 +85.98.104.236:8080 +85.97.106.190:8080 +85.208.24.20:80 +86.34.2.62:6588 +85.107.99.240:8080 +82.79.129.4:80 +82.79.130.16:80 +85.208.25.108:80 +82.139.12.156:80 +82.193.15.174:80 +82.226.186.91:80 +82.79.129.50:80 +82.225.61.24:80 +85.107.54.33:8080 +82.69.75.251:80 +61.233.25.166:80 +85.61.0.161:6588 +84.29.124.15:25767 +83.145.111.50:80 +84.20.143.36:8080 +82.200.133.77:80 +83.235.174.145:80 +82.79.129.244:80 +86.55.107.209:80 +38.101.234.50:1080 +82.151.209.137:80 +82.79.129.95:80 +82.79.130.150:80 +85.101.246.5:8080 +85.107.20.90:80 +85.91.139.21:8080 +85.101.49.24:8080 +85.107.128.136:8080 +82.236.20.134:80 +89.156.182.94:5968 +85.86.243.136:6588 +61.178.127.140:1080 +82.185.109.91:80 +82.133.71.159:8080 +82.78.63.37:8080 +82.210.177.47:80 +85.18.37.244:8000 +83.170.195.218:80 +83.175.149.168:80 +85.107.130.196:8080 +85.208.18.162:80 +84.122.137.140:8080 +83.16.108.10:80 +83.238.44.60:8080 +82.79.130.139:80 +82.160.142.23:3128 +85.208.33.28:80 +84.40.178.205:80 +85.97.135.89:8080 +83.245.0.18:80 +82.205.159.197:3128 +82.194.53.53:80 +85.107.177.251:80 +85.208.19.62:80 +82.147.204.225:8080 +88.100.52.251:8080 +85.204.169.20:3128 +82.229.250.123:80 +86.123.186.248:29786 +84.40.128.112:80 +85.70.231.102:3128 +85.136.103.216:8080 +86.55.47.170:8080 +84.40.189.37:80 +82.233.26.21:8000 +83.65.209.2:3128 +88.225.144.34:80 +84.205.20.155:80 +82.79.130.12:80 +82.79.130.186:80 +85.103.139.9:80 +82.67.127.110:80 +85.100.214.171:8080 +82.179.198.98:80 +82.79.129.79:80 +85.101.156.241:80 +82.160.142.26:3128 +85.208.16.219:80 +86.55.107.215:80 +86.130.18.246:80 +82.213.135.163:6588 +83.15.160.42:80 +82.79.130.157:80 +85.208.67.187:80 +85.101.111.144:80 +86.63.155.114:80 +82.38.242.217:25064 +85.107.134.136:80 +85.208.21.75:80 +86.55.43.121:1714 +82.74.173.62:6588 +83.142.181.216:80 +221.213.50.115:8000 +82.194.63.54:80 +83.38.50.223:8080 +85.107.199.10:8080 +82.79.135.38:80 +71.61.43.46:27977 +87.228.174.58:13252 +84.72.128.45:8000 +85.97.75.93:80 +82.76.37.210:8080 +82.79.129.7:80 +83.14.16.174:80 +82.147.204.251:8080 +82.79.130.145:80 +85.69.136.114:7212 +82.79.130.165:80 +85.107.131.170:8080 +85.101.163.63:80 +85.71.195.104:8080 +82.66.56.52:80 +85.70.109.237:80 +85.97.101.14:8080 +219.150.227.111:1080 +82.9.68.177:8000 +82.246.36.55:8080 +85.99.247.64:80 +86.20.232.31:7212 +85.42.195.210:10503 +82.43.218.47:80 +82.66.16.213:80 +83.103.191.183:80 +85.208.9.220:80 +85.193.204.171:80 +85.208.32.228:80 +82.133.71.160:8080 +85.97.141.228:8080 +85.236.135.219:8080 +178.150.132.178:1080 +82.194.53.176:80 +86.102.12.48:3128 +82.235.223.98:8000 +82.194.53.190:80 +82.139.19.13:80 +85.254.221.130:6588 +82.79.130.168:80 +82.160.142.19:3128 +84.122.161.32:6588 +85.208.31.151:80 +82.99.201.188:8080 +83.228.43.27:80 +72.24.126.143:1080 +82.54.82.23:8080 +85.101.156.241:8080 +82.147.204.233:8080 +88.83.193.138:3128 +82.194.46.191:80 +82.224.213.162:8080 +85.236.129.101:8080 +82.194.53.41:80 +84.205.10.82:80 +82.79.129.245:80 +83.97.24.84:3128 +85.71.221.23:3618 +82.79.130.250:80 +85.187.0.106:3128 +83.238.44.49:8080 +62.162.28.226:3128 +82.194.53.58:80 +85.68.206.250:23756 +83.20.220.71:80 +83.220.78.78:3128 +82.167.30.121:8080 +84.28.195.236:10627 +82.231.123.174:8000 +85.107.130.41:8080 +85.81.51.106:3128 +83.102.149.2:3128 +84.54.27.10:80 +84.236.9.246:8080 +83.160.180.101:80 +88.200.150.86:3128 +83.238.213.26:80 +85.107.101.28:80 +82.143.150.188:80 +82.148.97.67:80 +82.79.130.144:80 +82.79.130.202:80 +82.66.212.3:80 +84.7.103.21:8832 +82.133.71.156:8080 +82.79.130.113:80 +82.205.139.41:3128 +85.60.51.236:6588 +86.120.140.66:6588 +83.238.44.63:8080 +85.107.101.86:80 +82.211.102.142:8080 +82.79.130.201:80 +82.79.129.5:80 +82.141.201.195:80 +85.208.26.155:80 +187.4.128.10:3128 +84.121.200.33:6588 +82.225.50.172:6588 +87.236.197.17:80 +82.79.130.174:80 +82.79.129.60:80 +85.107.230.67:8080 +87.17.74.4:18816 +218.56.21.226:1080 +87.105.0.138:80 +85.100.214.171:80 +85.55.9.90:8080 +86.2.157.153:80 +178.32.160.81:3128 +119.51.93.162:1080 +87.74.5.249:80 +82.16.154.195:7212 +212.158.160.96:80 +82.229.17.9:80 +85.108.235.191:80 +87.117.135.86:8080 +85.154.167.144:80 +85.47.207.133:80 +85.221.181.207:80 +83.160.234.27:80 +82.133.71.150:8080 +83.14.7.147:8080 +82.79.130.116:80 +83.238.44.13:8080 +84.47.176.176:3128 +84.10.177.252:80 +83.221.216.198:3128 +82.207.72.2:6588 +86.34.2.139:8080 +82.151.211.41:80 +123.49.61.1:1080 +85.107.199.10:80 +82.173.11.87:8080 +82.36.192.246:80 +82.194.53.32:80 +82.79.129.45:80 +83.168.126.205:80 +86.34.200.192:6588 +85.101.105.32:8080 +86.55.107.212:80 +85.107.87.153:8080 +83.149.26.2:80 +82.79.129.73:80 +83.17.7.162:80 +87.248.160.27:80 +82.79.130.128:80 +83.238.44.50:8080 +82.147.174.96:80 +88.147.172.38:8080 +84.40.138.176:80 +85.186.17.156:6588 +83.168.68.11:80 +83.81.141.207:8080 +85.107.211.127:80 +85.71.121.115:33063 +82.234.50.164:8080 +82.13.12.66:80 +85.107.100.167:8080 +85.218.20.98:80 +85.41.248.66:30631 +85.97.207.10:80 +85.107.222.8:80 +88.42.202.161:3128 +85.60.29.90:10054 +82.139.14.46:80 +84.41.197.130:15202 +82.129.167.188:80 +85.100.207.29:80 +83.103.193.67:3128 +85.193.204.251:8000 +82.79.129.30:80 +82.79.130.248:80 +84.40.134.160:80 +88.240.54.51:80 +82.79.130.227:80 +85.61.4.161:6588 +86.106.170.118:8000 +82.79.129.229:80 +85.208.33.148:80 +85.193.216.180:80 +85.107.81.85:8080 +85.107.99.51:80 +82.79.130.163:80 +85.107.78.204:80 +83.238.44.14:8080 +83.239.11.134:3128 +85.94.127.163:8080 +85.107.251.114:8080 +85.70.134.40:3128 +83.239.80.134:3128 +83.238.44.181:8080 +82.67.60.37:6588 +82.229.216.15:8080 +82.79.130.213:80 +83.227.60.28:80 +85.107.59.15:8080 +83.17.234.178:80 +82.79.130.121:80 +83.102.181.146:3128 +85.208.26.150:80 +85.70.3.96:3128 +85.100.210.17:80 +82.207.78.171:6588 +83.42.85.138:8080 +92.114.162.13:1080 +82.191.178.168:3128 +82.79.130.138:80 +88.152.113.13:6588 +129.186.136.105:80 +82.77.29.28:80 +85.169.183.95:22289 +82.79.130.225:80 +119.110.80.26:1080 +82.79.129.97:80 +82.225.32.130:80 +85.107.92.197:80 +83.16.91.210:8080 +82.160.135.10:3128 +84.44.21.122:8080 +83.67.110.117:8080 +82.206.140.100:8080 +82.17.35.116:80 +190.199.98.153:1080 +85.208.30.147:80 +82.79.130.189:80 +82.79.130.208:80 +85.99.141.69:8080 +82.233.18.192:443 +82.245.188.240:8000 +83.18.243.10:80 +83.170.200.226:80 +85.11.155.42:6588 +82.66.139.102:7212 +85.98.45.98:80 +82.194.53.133:80 +83.211.141.66:80 +84.205.2.235:80 +85.208.26.27:80 +82.160.228.146:80 +83.16.197.34:80 +83.229.101.139:80 +83.18.248.66:3128 +83.15.8.254:8000 +82.158.60.119:6588 +82.224.13.192:80 +82.167.47.106:6588 +85.240.234.162:8080 +82.79.129.83:80 +83.103.40.4:6588 +83.143.18.229:80 +83.216.181.131:8080 +84.19.181.230:80 +86.20.118.173:7212 +82.228.41.75:80 +82.160.142.3:3128 +87.248.160.129:8081 +84.164.66.121:3128 +85.208.26.194:80 +82.79.129.34:80 +82.67.103.28:80 +85.136.18.155:8080 +83.102.151.100:80 +82.99.211.35:8080 +82.79.129.31:80 +85.100.243.100:8080 +86.120.156.46:6588 +82.76.77.30:80 +82.79.130.131:80 +83.238.44.11:8080 +84.96.94.10:80 +83.147.165.251:8080 +85.112.71.238:8080 +82.79.130.215:80 +85.107.30.22:80 +204.75.178.26:80 +86.55.108.212:8080 +85.96.175.72:6588 +85.208.25.2:80 +82.79.130.129:80 +82.229.68.217:8000 +82.194.53.164:80 +85.105.44.217:80 +83.142.16.81:8080 +82.162.222.25:8000 +85.208.23.22:80 +89.120.49.92:5445 +117.102.9.116:1080 +82.79.130.195:80 +82.79.130.146:80 +83.238.44.65:8080 +85.97.100.23:80 +85.239.144.32:3128 +85.30.97.83:3128 +85.25.139.186:80 +65.120.238.5:8888 +82.249.100.234:6588 +84.235.139.146:3128 +83.14.144.154:80 +84.241.14.110:8080 +83.236.205.22:3128 +85.38.163.74:80 +82.79.129.56:80 +82.143.134.38:80 +83.91.252.100:80 +83.64.197.106:80 +85.208.20.231:80 +85.48.65.94:6588 +88.96.2.121:8080 +69.10.130.206:8080 +82.79.130.114:80 +195.117.121.2:1080 +83.100.140.17:80 +82.67.10.175:80 +85.9.74.93:3128 +189.11.196.220:3128 +86.104.17.128:8000 +84.96.47.142:22692 +83.14.200.86:80 +85.101.207.96:8080 +82.184.39.201:80 +82.147.204.241:8080 +82.79.129.47:80 +85.112.113.151:80 +85.103.18.57:80 +85.208.16.173:80 +84.235.100.2:8080 +109.87.188.155:1080 +86.131.18.253:33774 +82.79.130.141:80 +82.147.204.228:8080 +85.168.125.196:9711 +82.232.65.141:3128 +86.35.183.112:3128 +85.101.105.249:8080 +85.107.202.92:80 +82.141.197.177:80 +82.143.146.236:80 +85.107.130.196:80 +123.13.206.59:1080 +83.239.3.206:8000 +220.33.204.136:8080 +87.248.160.129:80 +83.17.244.18:80 +85.99.38.222:80 +85.18.238.206:8080 +85.208.26.233:80 +85.236.134.196:8080 +82.79.129.32:80 +85.104.60.126:80 +85.100.201.34:80 +85.70.91.92:3128 +82.79.129.75:80 +83.17.55.19:80 +86.204.52.49:6588 +202.115.15.47:1080 +85.136.18.228:8080 +85.208.8.5:80 +83.142.221.28:80 +85.99.62.169:8080 +83.222.31.119:80 +82.79.130.117:80 +82.36.192.14:80 +82.182.77.167:80 +86.5.195.208:7212 +85.76.255.135:25854 +121.8.124.42:1080 +86.106.217.104:6588 +82.231.166.100:8000 +82.79.130.164:80 +84.74.14.205:29593 +82.79.130.130:80 +85.100.209.67:8080 +82.79.130.154:80 +85.107.15.139:8080 +85.202.96.195:10801 +61.213.197.107:444 +82.79.130.219:80 +204.131.46.200:8000 +91.90.122.1:1080 +115.249.54.51:1080 +83.244.78.131:8080 +84.204.34.170:80 +83.14.66.206:80 +85.208.33.231:80 +85.104.152.135:80 +87.228.99.196:8080 +85.103.17.229:80 +85.208.26.249:80 +86.125.142.141:6588 +83.235.243.40:8080 +84.235.130.34:3128 +85.99.148.113:80 +87.207.175.240:80 +86.21.39.78:7212 +85.98.164.252:80 +82.240.186.44:3128 +82.79.130.224:80 +85.208.27.0:80 +83.16.228.86:80 +85.233.131.6:80 +58.17.58.23:1080 +190.6.160.154:1080 +85.228.211.113:30251 +82.194.53.34:80 +85.46.218.228:80 +82.226.223.218:2301 +219.223.252.31:1080 +83.99.137.101:3128 +82.183.116.70:80 +83.217.0.167:3128 +85.185.236.92:3128 +85.248.32.18:8080 +82.127.76.7:80 +83.238.44.151:8080 +85.98.87.33:80 +85.66.145.13:8080 +84.247.24.127:6588 +82.201.206.3:8080 +82.79.130.172:80 +82.224.145.102:80 +84.47.58.187:3128 +82.230.136.167:8000 +83.15.153.114:8080 +82.200.140.134:8080 +85.107.130.172:8080 +82.79.129.27:80 +87.207.182.165:80 +82.151.143.246:80 +85.208.27.17:80 +83.238.44.152:8080 +82.79.130.152:80 +121.12.249.207:3128 +85.172.66.50:3128 +85.107.97.68:8080 +83.238.44.160:8080 +85.107.130.41:80 +80.87.145.45:1080 +82.79.130.22:80 +82.147.204.254:8080 +83.238.44.154:8080 +85.100.151.13:80 +200.32.112.11:1080 +18.181.2.157:3128 +86.34.218.196:8080 +71.198.246.143:27977 +62.162.28.226:80 +82.30.241.169:7212 +84.121.76.151:17538 +82.147.204.164:8080 +82.160.142.2:3128 +82.35.147.65:7212 +83.170.8.163:3128 +83.146.4.82:3128 +83.222.30.38:80 +82.79.130.134:80 +82.78.217.147:8000 +83.81.48.189:3128 +85.99.205.182:8080 +82.236.6.152:3128 +83.238.44.156:8080 +82.160.89.16:80 +85.99.134.119:8080 +85.208.24.3:80 +86.20.171.250:80 +86.55.107.214:80 +83.90.255.98:8080 +84.12.13.132:80 +82.198.3.211:80 +83.17.86.10:8080 +85.18.252.145:3128 +190.3.82.146:1080 +84.27.128.244:80 +83.238.44.52:8080 +84.10.243.105:3128 +82.79.130.175:80 +82.237.216.153:80 +89.159.48.239:80 +85.32.186.170:80 +84.85.93.15:80 +85.107.133.13:8080 +213.161.20.168:1080 +84.56.144.247:17488 +85.208.78.148:80 +82.193.37.3:80 +82.234.49.14:80 +83.238.44.172:8080 +82.66.49.123:80 +82.79.130.149:80 +85.100.27.43:80 +82.79.130.251:80 +82.79.129.51:80 +82.151.244.169:80 +82.160.142.25:3128 +83.175.182.109:80 +85.107.48.217:80 +85.100.212.133:8080 +82.79.130.203:80 +83.235.61.17:80 +83.239.30.146:3128 +83.14.88.171:80 +82.162.226.74:3128 +85.100.151.13:8080 +110.136.162.80:1080 +109.86.157.215:1080 +82.136.215.153:3128 +83.18.237.18:80 +87.234.219.68:8080 +83.215.80.118:24499 +61.177.248.202:1080 +83.196.19.142:3128 +83.238.44.41:8080 +82.79.129.93:80 +85.101.118.103:80 +85.96.92.18:8080 +82.224.69.174:80 +82.194.53.37:80 +83.15.104.242:3128 +88.80.134.144:8000 +93.97.195.3:80 +82.79.130.176:80 +82.79.130.158:80 +82.194.53.132:80 +83.238.44.53:8080 +195.210.8.102:1080 +83.103.191.174:80 +222.74.200.2:1080 +119.115.136.150:1080 +82.79.130.11:80 +115.108.177.230:1080 +85.100.163.202:80 +85.33.240.179:80 +86.35.55.242:3128 +83.246.114.10:80 +85.101.207.96:80 +84.73.26.250:3128 +85.208.21.165:80 +82.79.130.123:80 +85.18.190.7:8090 +85.98.230.55:80 +82.77.21.52:80 +82.79.23.49:80 +85.100.193.76:80 +85.101.118.103:8080 +85.208.26.149:80 +82.151.217.29:8080 +85.96.85.123:8080 +83.103.209.178:80 +82.147.204.181:8080 +82.194.53.169:80 +82.194.53.186:80 +83.208.168.241:3128 +83.100.149.29:80 +85.32.57.194:80 +85.107.134.136:8080 +82.182.30.28:80 +85.107.235.44:80 +82.160.142.21:3128 +82.204.160.10:80 +86.62.227.74:9534 +84.122.160.201:8080 +82.162.202.82:6588 +82.79.130.10:80 +86.35.21.211:80 +85.107.100.150:8080 +86.35.49.163:6588 +85.104.181.226:80 +82.79.129.85:80 +85.128.94.19:10056 +82.76.75.132:80 +85.101.58.191:80 +85.100.68.43:80 +82.139.12.103:80 +82.209.200.19:8100 +85.50.64.131:80 +85.34.111.52:80 +82.79.130.194:80 +85.107.131.170:80 +82.138.34.98:3128 +84.92.43.248:7212 +91.121.218.169:8000 +83.20.15.115:6588 +82.79.129.76:80 +109.230.128.179:1080 +85.57.129.206:6588 +82.79.130.207:80 +85.186.81.18:80 +82.200.134.2:8080 +82.224.39.98:80 +82.194.61.44:80 +82.147.204.242:8080 +82.27.154.52:80 +82.193.38.84:80 +82.147.204.232:8080 +85.97.48.58:8080 +85.99.61.251:8080 +85.101.18.84:80 +219.157.200.19:1080 +85.208.33.83:80 +85.101.163.63:8080 +85.107.128.136:80 +82.156.34.255:2301 +83.160.245.56:8080 +82.147.204.235:8080 +84.204.192.130:3128 +85.168.54.185:30238 +83.17.235.18:80 +88.72.205.2:20997 +82.236.188.44:16080 +82.79.130.13:80 +83.16.114.236:8080 +83.215.19.148:7212 +86.138.94.88:8080 +82.79.129.81:80 +85.100.227.225:8080 +82.79.129.35:80 +85.100.238.238:80 +221.2.144.135:1080 +85.187.220.127:6588 +83.137.140.83:80 +88.240.54.51:8080 +85.107.101.15:8080 +84.54.134.215:3128 +85.208.8.103:80 +85.208.32.208:80 +85.20.110.249:6588 +186.112.83.147:1080 +82.79.129.78:80 +82.194.53.167:80 +82.79.130.160:80 +83.84.62.208:25934 +85.236.134.181:8080 +85.99.245.97:8080 +83.18.207.170:80 +85.107.202.249:80 +82.194.53.165:80 +82.187.111.132:80 +85.107.200.167:80 +83.138.187.17:80 +85.100.202.30:8080 +83.236.158.90:8080 +82.79.130.230:80 +82.229.139.193:8080 +91.210.104.104:80 +82.227.210.96:7212 +82.159.51.77:8080 +82.234.138.4:80 +85.107.206.117:80 +84.244.0.156:5050 +82.143.160.165:80 +82.79.130.204:80 +85.107.101.28:8080 +85.154.167.142:80 +82.36.146.244:6004 +83.148.131.144:8080 +82.79.130.249:80 +83.103.43.252:80 +85.100.195.230:8080 +83.238.44.184:8080 +82.160.142.20:3128 +85.117.2.6:80 +85.100.76.78:8080 +85.35.184.134:6588 +87.207.102.106:6588 +85.107.139.26:80 +82.143.153.174:80 +82.194.53.174:80 +85.107.134.219:80 +87.207.239.60:80 +82.225.68.165:80 +82.194.53.166:80 +85.96.220.233:80 +187.86.6.90:1080 +83.16.248.210:8080 +82.210.147.10:80 +83.94.204.109:8080 +83.18.237.34:80 +83.238.44.101:8080 +85.39.178.251:8080 +85.100.210.110:80 +84.237.220.186:8080 +85.185.134.3:80 +94.77.162.245:3128 +85.100.214.37:8080 +82.79.130.229:80 +85.208.8.75:80 +121.18.77.14:1080 +82.79.129.246:80 +85.219.247.52:80 +82.79.130.1:80 +82.79.129.92:80 +85.185.96.5:8080 +85.41.150.196:8080 +82.194.53.38:80 +82.228.48.108:80 +84.242.134.213:80 +84.5.17.97:14796 +85.98.146.247:8080 +82.79.130.173:80 +85.98.150.82:80 +82.194.53.175:80 +85.107.149.60:80 +85.106.202.155:8080 +82.133.71.151:8080 +84.146.222.71:9397 +83.229.103.120:80 +83.218.237.46:3128 +82.67.177.213:80 +83.206.128.73:80 +84.244.76.3:80 +85.100.214.69:80 +82.79.130.183:80 +87.11.149.96:6588 +82.161.5.209:80 +82.79.130.161:80 +82.133.71.14:8080 +83.238.44.62:8080 +85.107.97.110:8080 +83.16.181.179:80 +85.107.20.90:8080 +86.138.94.98:8080 +85.18.175.238:80 +83.216.41.159:3128 +85.167.9.40:3128 +82.79.129.99:80 +82.251.30.216:8080 +82.7.245.149:7212 +86.104.170.40:6588 +222.89.92.106:3128 +85.208.35.33:80 +75.125.63.178:1080 +82.147.204.226:8080 +82.79.130.122:80 +84.96.70.155:8080 +82.133.71.30:8080 +84.57.240.110:12274 +82.79.130.209:80 +85.107.92.197:8080 +84.120.197.229:6588 +82.198.164.14:80 +83.97.24.129:3128 +189.17.0.35:8000 +85.98.40.67:80 +82.210.159.205:80 +83.17.157.82:80 +82.227.96.217:80 +82.194.53.40:80 +85.21.96.203:3128 +82.156.39.178:6588 +84.72.250.18:20355 +85.15.67.55:3128 +87.1.4.1:19093 +82.214.219.220:8080 +82.131.143.65:3128 +85.107.211.127:8080 +86.55.151.169:6588 +82.160.142.13:3128 +84.10.137.48:80 +85.208.21.61:80 +85.107.57.46:80 +82.9.123.181:7212 +86.104.205.205:8080 +85.208.26.156:80 +85.194.50.159:81 +86.4.164.169:18543 +82.193.105.203:3128 +82.79.130.178:80 +85.66.47.28:3128 +85.105.23.97:80 +85.241.20.242:8080 +84.245.153.68:8080 +82.225.119.101:80 +85.91.150.119:3128 +83.145.182.104:80 +92.115.168.84:1080 +84.74.13.143:14191 +82.79.129.252:80 +82.147.204.240:8080 +85.100.238.238:8080 +85.30.67.141:3128 +85.59.115.162:6588 +82.194.53.161:80 +88.32.89.146:80 +82.210.128.9:80 +83.238.44.170:8080 +85.208.19.248:80 +85.208.24.165:80 +87.105.19.51:80 +82.160.171.222:3128 +83.238.103.226:80 +82.79.130.143:80 +84.4.3.152:80 +109.95.44.47:1080 +86.124.88.221:8080 +85.107.139.26:8080 +82.232.97.239:6588 +83.146.17.76:80 +83.102.98.235:14176 +82.147.204.253:8080 +85.194.112.120:8080 +85.168.150.68:20736 +82.67.36.5:80 +84.96.120.250:80 +85.100.209.67:80 +82.143.145.28:80 +82.79.130.200:80 +174.133.147.243:80 +85.214.33.173:80 +85.18.116.247:8080 +85.217.137.138:8080 +85.193.213.185:80 +82.79.130.191:80 +87.223.155.228:4758 +83.18.66.154:80 +82.194.53.48:80 +82.194.53.191:80 +85.99.247.75:80 +87.0.193.220:6588 +82.147.198.212:80 +85.154.167.145:80 +82.133.71.154:8080 +82.189.120.77:3128 +82.99.145.226:80 +86.35.43.85:6588 +85.208.31.207:80 +82.194.53.44:80 +85.94.161.95:6588 +82.235.177.12:2301 +82.79.129.55:80 +85.96.92.18:80 +85.100.253.187:8080 +85.186.3.122:80 +83.18.189.116:8080 +85.98.77.154:80 +89.169.32.74:25656 +83.103.52.194:8080 +82.224.216.83:80 +83.245.15.73:80 +82.66.6.6:80 +83.243.165.137:80 +82.60.1.97:80 +82.160.142.22:3128 +82.139.16.206:80 +85.155.201.71:6588 +83.143.98.14:80 +83.229.101.148:80 +82.51.162.225:3128 +85.208.24.41:80 +88.152.113.13:8080 +86.6.6.5:7212 +82.133.71.155:8080 +86.130.63.45:80 +82.79.130.226:80 +82.79.129.64:80 +82.79.130.14:80 +82.133.71.253:8080 +84.252.4.68:8080 +86.62.211.162:3128 +85.107.251.114:80 +82.79.130.127:80 +83.19.79.22:80 +82.200.211.130:3128 +83.34.206.124:80 +86.35.23.37:8080 +82.79.129.8:80 +82.79.129.58:80 +85.154.167.151:80 +84.122.3.155:8000 +82.79.129.43:80 +86.101.11.210:19881 +109.191.69.127:1080 +85.208.23.52:80 +85.204.119.187:31872 +85.107.101.86:8080 +217.150.52.37:1080 +85.208.26.245:80 +82.194.53.60:80 +67.107.187.162:3128 +85.107.200.167:8080 +85.155.22.104:8080 +83.89.126.42:8080 +82.147.204.183:8080 +82.148.70.194:80 +87.225.19.58:3128 +83.16.148.52:8080 +84.27.6.67:8294 +82.183.122.52:80 +88.100.119.55:8080 +86.137.190.163:24137 +85.107.201.68:8080 +82.230.245.232:1026 +85.239.154.2:3128 +85.25.2.66:3128 +85.208.23.124:80 +82.79.130.156:80 +84.30.185.243:14416 +82.139.12.154:80 +83.15.90.109:80 +85.182.164.13:80 +84.143.254.83:20846 +83.14.7.146:8080 +82.194.53.185:80 +218.31.134.111:1080 +121.22.20.202:1080 +85.176.154.208:26352 +83.16.100.154:80 +85.98.44.17:80 +82.79.130.245:80 +85.97.138.251:8080 +82.79.130.120:80 +87.110.84.159:12409 +85.99.134.119:80 +82.47.216.84:8080 +84.228.27.176:16538 +86.61.64.4:80 +85.9.74.100:3128 +82.171.19.157:80 +82.157.239.4:80 +195.189.226.1:80 +84.244.104.77:3128 +83.149.83.132:80 +85.104.233.172:8080 +82.147.204.229:8080 +82.79.130.217:80 +85.100.145.198:8080 +82.17.162.8:7212 +222.216.108.50:1080 +85.193.200.135:80 +87.117.208.108:12679 +82.79.129.98:80 +82.79.130.153:80 +83.17.54.206:80 +87.80.136.57:7212 +83.171.240.191:8080 +85.208.18.66:80 +85.101.147.240:8080 +83.242.64.24:80 +87.0.216.202:6588 +82.53.6.130:8080 +83.61.4.18:8080 +88.147.4.109:57328 +84.10.106.40:80 diff --git a/muhstik/src/clone.c b/muhstik/src/clone.c new file mode 100644 index 0000000..e8882cf --- /dev/null +++ b/muhstik/src/clone.c @@ -0,0 +1,1418 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2003, roadr (bigmac@home.sirklabs.hu) */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include +#include + +#include "../include/globals.h" +#include "../include/load.h" +#include "../include/control.h" +#include "../include/print.h" +#include "../include/proxy.h" +#include "../include/string.h" +#include "../include/lists.h" +#include "../include/net.h" +#include "../include/mass.h" +#include "../include/muhstik.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External variables */ +extern config_t conf; +extern char *hostname; +extern char *channel[]; +extern char *chankey[]; +extern int mass_ch; +extern char *mass_reas; +extern char *target; +extern int echo_mode; +extern const char *strtype[]; +/* }}} */ +/*{{{ Global variables */ +char *op_nick; +clone_t *cl[MAX_CLONES]; +char *broth[MAX_BROTHERS]; +queue public_queue; +queue names_op[MAX_CHANS]; +queue names[MAX_CHANS]; +time_t lastlock; +/* }}} */ +/* }}} */ +/*{{{ Function prototypes */ +/* {{{ void do_jupe(clone_t *clone, char *nick); */ +/** + * do_jupe() + * Function prototype for `do_jupe()'. + */ +void do_jupe(clone_t *clone, char *nick); +/* }}} */ +/* }}} */ +/* {{{ free()ing and closing functions */ +/* {{{ void close_sock(clone_t *clone) */ +void close_sock(clone_t *clone) +{ + if (clone->sock != -1) + { + close(clone->sock); /* XXX: free()? -- Leon */ + } +} +/* }}} */ +/* {{{ void free_clone(clone_t *clone) */ +void free_clone(clone_t *clone) +{ + int id = clone->id; + + close_sock(clone); + + /* Free the clone memory */ + free(clone->jupes); + free(clone->nick); + free(clone->ident); + free(clone->real); + free(clone->proxy); + free(clone->server); + free(clone->server_pass); + free(clone->server_ident); + free(clone->save); + clear_queue(&clone->queue); + free(clone); + + /* Free its slot */ + cl[id] = NULL; +} +/* }}} */ +/* }}} */ +/* {{{ faux boolean functions */ +/* {{{ int not_a_clone(char *s) */ +/** + * not_a_clone() + * @return boolean value representing whether or not the nick is a clone + * controlled by this muhstik iteration. + */ +int not_a_clone(char *s) +{ + register int i; + clone_t **pcl; + char **pt; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl && !StrCompare((*pcl)->nick, s)) + { + return 0; + } + } + + for (i = 0, pt = broth; i < MAX_BROTHERS; ++i, ++pt) + { + if (*pt && !StrCompare(*pt, s)) + { + return 0; + } + } + + return 1; +} +/* }}} */ +/* {{{ int not_a_mast(char *s) */ +int not_a_mast(char *s) +{ + register int i; + char **pm; + + for (i = 0, pm = conf.prot; i < MAX_PROTS; ++i, ++pm) + { + if (*pm && !StrCompare(*pm, s)) + { + return 0; + } + } + + return 1; +} +/* }}} */ +/* {{{ int is_enemy(char *s) */ +/** + * is_enemy() + * @return boolean value representing whether or not the nickname `s' is neither + * a clone nor a master. + */ +int is_enemy(char *s) +{ + return (not_a_clone(s) && not_a_mast(s)); +} +/* }}} */ +/* {{{ int is_op(clone_t *clone, int chid) */ +/** + * is_op() + * @return boolean value representing whether or not `clone' is an op in channel + * `chid'. + */ +int is_op(clone_t *clone, int chid) +{ + return (clone && clone->online && clone->op[chid]); +} +/* }}} */ +/* }}} */ +/* {{{ Functions for opped clones */ +/* {{{ void op(clone_t *clone, int chid, char *s) */ +/** + * op() + * Op the nick `s' in the channel with channelid `chid' assigned to it. + */ +void op(clone_t *clone, int chid, char *s) +{ + send2server(clone, "MODE %s +o %s\n", channel[chid], s); +} +/* }}} */ +/* {{{ void deop(clone_t *clone, int chid, char *nick) */ +/** + * deop() + * Deop the nick `s' in the channel with channelid `chid' assigned to it. + */ +void deop(clone_t *clone, int chid, char *nick) +{ + send2server(clone, "MODE %s -o %s\n", channel[chid], nick); +} +/* }}} */ +/* {{{ int deop_enemy(clone_t *clone, int chid, char *nick) */ +/** + * deop_enemy() + * Deop enemy nick `nick' in channel with channelid `chid' assigned to it. + * @return boolean indicating success of the deopping. + */ +int deop_enemy(clone_t *clone, int chid, char *nick) +{ + /* Don't try to deop a server */ + if (!nick[0]) + { + return 1; + } + + if (is_enemy(nick)) + { + deop(clone, chid, nick); + return 1; + } + + return 0; +} +/* }}} */ +/* {{{ void kick(clone_t *clone, int chid, char *s, char *reas, int mode) */ +/** + * kick() + * Kick the nick `s' from the channel with channelid `chid' with reason `reas'. + */ +void kick(clone_t *clone, int chid, char *s, char *reas, int mode) +{ + char tmp[BIGBUF]; + + snprintf(tmp, sizeof(tmp), "KICK %s %s :%s\n", channel[chid], s, reas ? reas : KICK_REAS); + if (!mode) + { + send_sock(clone->sock, "%s", tmp); + } + else + { + send2server(clone, "%s", tmp); + } +} +/* }}} */ +/* {{{ void ban(clone_t *clone, int chid, char *s, int mode) */ +/** + * ban() + * Ban host `s' from channel with channelid `chid' assigned to it. + */ +void ban(clone_t *clone, int chid, char *s, int mode) +{ + char tmp[BIGBUF]; + + sscanf(s, "%*[^@]@%s", s); + snprintf(tmp, sizeof(tmp), "MODE %s +b *!*@%s\n", channel[chid], s); + + if (!mode) + { + send_sock(clone->sock, "%s", tmp); + } + else + { + send2server(clone, "%s", tmp); + } +} +/* }}} */ +/* {{{ void kickban(clone_t *clone, char *s) */ +void kickban(clone_t *clone, char *s) +{ + send_sock(clone->sock, "WHOIS %s\n", s); + clone->wait_whois = 1; +} +/* }}} */ +/* {{{ void unban(clone_t *clone, int chid, char *s) */ +/** + * unban() + * Unban host `s' from the channel with channelid `chid' assigned to it. + */ +void unban(clone_t *clone, int chid, char *s) +{ + send_sock(clone->sock, "MODE %s -b %s\n", channel[chid], s); +} +/* }}} */ +/* }}} */ +/* {{{ Misc clone->IRC communication functions */ +/* {{{ void join(clone_t *clone, char *dest) */ +/** + * join() + * Join channel `dest'. + */ +void join(clone_t *clone, char *dest) +{ + int chid; + + if ((chid = getchid(dest)) == -1) + { + return; + } + + clone->op[chid] = 0; + clone->needop[chid] = 0; + + if (chankey[chid] == NULL) + { + send_sock(clone->sock, "JOIN %s\n", dest); + } + else + { + send_sock(clone->sock, "JOIN %s :%s\n", dest, chankey[chid]); + } +} +/* }}} */ +/* {{{ void echo(clone_t *clone, char *chan, char *buf) */ +void echo(clone_t *clone, char *chan, char *buf) +{ + register int i; + char **pchan; + + if (echo_mode == 0) + { + /* Echo the to the current channel */ + send_sock(clone->sock, "PRIVMSG %s %s", chan, buf); + } + else + { + /* Echo to all the active channels */ + for (i = 0, pchan = channel; i < MAX_CHANS; ++i, ++pchan) + { + if (*pchan) + { + send_sock(clone->sock, "PRIVMSG %s %s", *pchan, buf); + } + } + } +} +/* }}} */ +/* {{{ void send_irc_nick(clone_t *clone, char *nick) */ +/** + * send_irc_nick() + * Change `clone's nick to `nick'. + */ +void send_irc_nick(clone_t *clone, char *nick) +{ + send_sock(clone->sock, "NICK %s\n", nick); +} +/* }}} */ +/* }}} */ +/* {{{ Functions for initializing clones */ +/* {{{ void register_clone(clone_t *clone) */ +void register_clone(clone_t *clone) +{ + char *ident; + + if (clone->server_ident) + { + ident = clone->server_ident; + } + else + { + ident = clone->ident; + } + + send_sock(clone->sock, "USER %s 0 0 :%s\n", ident, clone->real); + + if (clone->server_pass) + { + send_sock(clone->sock, "PASS %s\n", clone->server_pass); + } + + send_sock(clone->sock, "MODE %s +i\n", clone->nick); +} +/* }}} */ +/* {{{ int main_clone(void *arg) */ +int main_clone(void *arg) +{ + clone_t *clone; + clone = (clone_t *) arg; + + if (conf.debug) + { + if (clone->type != NOSPOOF) + { + print(1, 0, 0, "%s launched: host=%s server=%s", strtype[clone->type], clone->proxy, clone->server); + } + else + { + print(1, 0, 0, "direct connection launched: server=%s", clone->server); + } + } + + if (clone->type == NOSPOOF || clone->type == VHOST) + { + if (connect_clone(clone, clone->server, clone->server_port)) + { + return 1; + } + } + else + { + if (connect_clone(clone, clone->proxy, clone->proxy_port)) + { + return 1; + } + } + + clone->status = WAIT_CONNECT; + return 0; +} +/* }}} */ +/* }}} */ +/* {{{ Functions for parsing and acting on that parsing */ +/* {{{ int parse_deco(clone_t *clone, char *buf) */ +int parse_deco(clone_t *clone, char *buf) +{ + if (!clone->online) + { + if (!StrCmpPrefix(buf, "ERROR")) + { + if (strstr(buf, "Too many user connections") || strstr(buf, "Too many host connections") || + strstr(buf, "Too many connections") || strstr(buf, "This server is full") || strstr(buf, "Invalid username")) /* 468 = invalidusername */ + { + if (clone->save) + { + save_host(clone); + } + } + } + if (conf.debug) + { + print_prefix(clone, 4, 0); + print(0, 4, 0, "%s", buf); + } + return 1; + } + + clone->online = 0; + + if (conf.verbose) + { + print_prefix(clone, 4, 0); + print(0, 4, 0, "%s", buf); + } + + if (conf.max_reco < 0 || clone->reco < conf.max_reco) + { + if (conf.verbose) + { + print_prefix(clone, 0, 0); + print(1, 0, 0, "is trying to reconnect"); + } + clone->alarm = time(NULL) + conf.wait_reco; + if (conf.max_reco > 0) + { + ++clone->reco; + } + close_sock(clone); + main_clone(clone); + return 0; + } + + return 1; +} +/* }}} */ +/* {{{ void save_host(clone_t *clone) */ +void save_host(clone_t *clone) +{ + FILE *f; + char ip[MEDBUF]; + char line[MEDBUF]; + + if (clone->type == NOSPOOF) + { + return; + } + + host2ip(ip, clone->proxy, sizeof(ip)); + + if (clone->type == PROXY || clone->type == SOCKS4 || clone->type == SOCKS5) + { + snprintf(line, sizeof(line), "%s:%d\n", ip, clone->proxy_port); + } + else + { + snprintf(line, sizeof(line), "%s\n", ip); + } + + if (!occur_file(line, clone->save) && (f = fopen(clone->save, "a+"))) + { + fputs(line, f); + fclose(f); + } +} +/* }}} */ +/* {{{ void parse_irc_connect(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_connect(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + + if (clone->save) + { + save_host(clone); + } + + if (clone->type != NOSPOOF) + { + print(1, 3, 0, "clone available: nick=%s; %s=%s; server=%s", clone->nick, strtype[clone->type], clone->proxy, clone->server); + } + else + { + print(1, 3, 0, "clone available: nick=%s; server=%s", clone->nick, clone->server); + } + + if (conf.scan || clone->mode == M_QUIT) + { + free_clone(clone); + return; + } + + clone->online = 1; + + if (clone->mode == M_NORMAL) + { + for (chid = 0; chid < MAX_CHANS; ++chid) + { + if (channel[chid]) + { + join(clone, channel[chid]); + } + } + } +} +/* }}} */ +/* {{{ Jupe functions */ +/* {{{ void parse_irc_isupport(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_isupport(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *mspec_str = NULL; + + if (NULL != (mspec_str = strstr(buf, "MONITOR="))) + { + sscanf(mspec_str, "MONITOR=%u", &(clone->monitor_tmax)); + if (0 == clone->monitor_tmax) + { + return; + } + + clone->jupes = xmalloc((conf.nick_length + 1) * clone->monitor_tmax); + bzero(clone->jupes, (conf.nick_length + 1) * clone->monitor_tmax); + } +} +/* }}} */ +/* {{{ void parse_irc_moffline(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_moffline(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *pnick0 = buf; + char *pnick = pnick0; + + if(!((NULL != (pnick0 = strchr(pnick0, ':'))) && *(++pnick0))) + { + return; + } + + pnick = pnick0; + strsep(&(pnick0), "\r\n"); + pnick0 = pnick; + + while(NULL != (pnick = strsep(&(pnick0), ","))) + { + do_jupe(clone, pnick); + } +} +/* }}} */ +/* {{{ void do_jupe(clone_t *clone, char *nick) */ +void do_jupe(clone_t *clone, char *nick) +{ + int i; + clone_t **pcl; + + if (occur_table(nick, conf.juping, MAX_JUPES)) + { + return; + } + + print_prefix(clone, 0, 0); + print(1, 0, 0, "nickname `%s' is available, trying to grab", nick); + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && (*pcl)->grabbing == 0) + { + send_irc_nick((*pcl), nick); + print_prefix((*pcl), 0, 0); + print(1, 0, 0, "Nice nick, I think I'll take it."); + (*pcl)->grabbing = 1; + add_table(nick, conf.juping, MAX_JUPES); + return; + } + } + + print_prefix(clone, 0, 0); + print(1, 0, 0, "no clones left that aren't juping", nick); +} +/* }}} */ +/* }}} */ +/* {{{ void parse_irc_kickban(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_kickban(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *toban; + char *tokick; + + if (!clone->wait_whois) + { + return; + } + + clone->lastsend = time(NULL); + clone->wait_whois = 0; + + strsep(&buf, DELIM); + if (!(tokick = strsep(&buf, DELIM))) + { + return; + } + + strsep(&buf, DELIM); + if (!(toban = strsep(&buf, DELIM))) + { + return; + } + + ban(clone, mass_ch, toban, 0); + kick(clone, mass_ch, tokick, mass_reas ? mass_reas : NULL, 0); +} +/* }}} */ +/* {{{ void parse_irc_nick(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_nick(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *dest; + int chid; + + strsep(&buf, ":"); + if (!(dest = strsep(&buf, DELIM))) + { + return; + } + + if (!StrCompare(nick, clone->nick)) + { + StrCopy(clone->nick, dest, conf.nick_length+1); + } + + if (target && !StrCompare(nick, target)) + { + free(target); + target = StrDuplicate(dest); + } + + update_table(nick, dest, broth, MAX_BROTHERS); + update_table(nick, dest, conf.prot, MAX_PROTS); + + update_pattern_table(nick, dest, conf.aop, MAX_AOPS); + + for (chid = 0; chid < MAX_CHANS; ++chid) + { + update_queue(nick, dest, &names[chid]); + update_queue(nick, dest, &names_op[chid]); + } +} +/* }}} */ +/* {{{ void parse_irc_control(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_control(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char buffer[BIGBUF]; + char is_aop; + + snprintf(buffer, sizeof(buffer), "%s %s %s %s", from, cmd, clone->nick, buf); + is_aop = (match_table(from, conf.aop, MAX_AOPS) != -1); + + if (is_aop && conf.notice) + { + if (conf.verbose) + { + print(0, 5, 0, "%s", buffer); + } + buf = strstr(buffer, " :") + 2; /* don't interfere with IPv6 IP */ + op_nick = StrDuplicate(nick); + interpret(buf, -clone->id - 2); + } +} +/* }}} */ +/* {{{ void parse_irc_notice(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_notice(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char parm[MINIBUF]; + strsep(&buf, DELIM); + + /* Skip mIRC DCC info */ + if (!StrParam(parm, sizeof(parm), buf, 0)) + { + if (!StrCompare(parm, ":dcc")) + { + return; + } + } + + parse_irc_control (clone, cmd, nick, from, buf); +} +/* }}} */ +/* {{{ void parse_irc_privmsg(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_privmsg(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *dest; + char *parm; + + dest = strsep(&buf, DELIM); + if (!StrCompare(dest, clone->nick)) + { + parse_irc_control(clone, cmd, nick, from, buf); + return; + } + + if (target && !StrCompare(nick,target)) + { + echo(clone, dest, buf); + return; + } + + if ((chid = getchid(dest)) == -1) + { + return; + } + + if (conf.aggressive && is_enemy(nick)) + { + kick(clone, chid, nick, NULL, 1); + return; + } + + if (!(parm = strsep(&buf, DELIM))) + { + return; + } + + if (!StrCompare(parm,":!op")) + { + if (match_table(from, conf.aop, MAX_AOPS) != -1) + { + if (clone->op[chid]) + { + op(clone, chid, nick); + } + } + } +} +/* }}} */ +/* {{{ void join_scan(scan_t *scan, char *from) */ +void join_scan(scan_t *scan, char *from) +{ + char *host; + char ip[MINIBUF]; + char line[MEDBUF]; + + if (!(host = strchr(from, '@'))) + { + return; + } + + host2ip(ip, ++host, sizeof(ip)); + + if (scan->type == PROXY) + { + snprintf(line, sizeof(line), "%s:%d\n", ip, scan->proxy_port); + } + else + { + snprintf(line, sizeof(line), "%s\n", ip); + } + + if (!occur_file(line, scan->save)) + { + load_host(scan->type, host, scan->proxy_port, scan->server, scan->server_port, NULL, NULL, scan->save, scan->mode); + } +} +/* }}} */ +/* {{{ void parse_irc_join(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_join(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int i; + int is_aop; + int chid; + char *chan; + char *reas; + + strsep(&buf, ":"); + chan = strsep(&buf, DELIM); + + if ((chid = getchid(chan)) == -1) + { + return; + } + + if (!StrCompare(nick, clone->nick)) + { + if (!clone->restricted) + { + clone->needop[chid] = 1; + } + return; + } + + is_aop = (match_table(from, conf.aop, MAX_AOPS) != -1); + if (is_aop && !occur_table(nick, conf.prot, MAX_PROTS)) + { + if (add_table(nick, conf.prot, MAX_PROTS) != -1) + { + if (conf.verbose) + { + print(1, 0, 0, "%s added to the protected nicks (aop)", nick); + } + } + } + + uniq_add_queue(nick, &names[chid]); + + if (clone->op[chid]) + { + if (is_aop || !not_a_clone(nick)) + { + op(clone, chid, nick); + return; + } + if ((i = match_table(from, conf.shit, MAX_SHITS)) != -1) + { + ban(clone, chid, from, 1); + if ((reas = strchr(conf.shit[i], ':'))) + { + kick(clone, chid, nick, reas+1, 1); + } + else + { + kick(clone, chid, nick, SHIT_REAS, 1); + } + return; + } + } + + if (clone->scan) + { + join_scan(clone->scan, from); + } +} +/* }}} */ +/* {{{ void parse_irc_error_invite(clone_t *clone, int chid) */ +void parse_irc_error_invite(clone_t *clone, int chid) +{ + clone_t *one; + + if ((one = getop(chid))) + { + send_sock(one->sock, "INVITE %s %s\n", clone->nick, channel[chid]); + } +} +/* }}} */ +/* {{{ void parse_irc_error(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_error(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *chan; + char buffer[BIGBUF]; + + snprintf(buffer, sizeof(buffer), "%s %s %s", from, cmd, buf); + + if (conf.verbose) + { + print(0, 5, 0, "%s", buffer); + } + + if (!StrCompare(cmd,"484")) /* ischanservice */ + { + clone->restricted = 1; + return; + } + + strsep(&buf, DELIM); + chan = strsep(&buf, DELIM); + + if ((chid = getchid(chan)) == -1) + { + return; + } + + if (!StrCompare(cmd,"471") || !StrCompare(cmd,"473")) /* +l or +i */ + { + parse_irc_error_invite(clone, chid); + } + + if (!StrCompare(cmd,"372") || !StrCompare(cmd,"375") || !StrCompare(cmd,"376")) /* MOTD numerics. */ + { + return; /* These errors would otherwise kill good clones. */ + } + + clone->alarm = time(NULL) + conf.rejoin; + + if (occur_table(channel[chid], channel, MAX_CHANS)) + { + join(clone, channel[chid]); + } +} +/* }}} */ +/* {{{ void parse_irc_kick(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_kick(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *chan; + char *kicked; + + chan = strsep(&buf, DELIM); + kicked = strsep(&buf, DELIM); + + if ((chid = getchid(chan)) == -1) + { + return; + } + + remove_queue(kicked, &names_op[chid]); + remove_queue(kicked, &names[chid]); + + if (!StrCompare(kicked, clone->nick)) + { + clone->op[chid] = 0; + clone->needop[chid] = 0; + join(clone, channel[chid]); + } + else if (!conf.peace && clone->op[chid]) + { + if (!conf.aggressive) + { + deop_enemy(clone, chid, nick); + } + else + { + massdeop(clone, chid); + } + } +} +/* }}} */ +/* {{{ void parse_irc_part(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_part(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *chan; + int chid; + + chan = strsep(&buf, DELIM); + if ((chid = getchid(chan)) == -1) + { + return; + } + + remove_queue(nick, &names_op[chid]); + remove_queue(nick, &names[chid]); +} +/* }}} */ +/* {{{ void parse_irc_mode(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_mode(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *chan; + char *mode; + char *parm; + int i; + int x = 1; /* by default it's + */ + + if (clone->restricted) + { + return; + } + + chan = strsep(&buf, DELIM); + mode = strsep(&buf, DELIM); + + if (!StrCompare(chan, clone->nick)) + { + return; + } + + if ((chid = getchid(chan)) == -1) + { + return; + } + + if (conf.aggressive && !clone->op[chid]) + { + clone->needop[chid] = 1; + } + + for (i = 0; mode[i]; ++i) + { + switch (mode[i]) + { + case '+': + x = 1; + break; + case '-': + x = -1; + break; + case 'b': + case 'e': + case 'I': + case 'k': + case 'l': + case 'h': /* do we really need this? */ + case 'v': + parm = strsep(&buf, DELIM); + break; + case 'o': + parm = strsep(&buf, DELIM); + if (x == 1) /* +o */ + { + uniq_add_queue(parm, &names_op[chid]); + remove_queue(parm, &names[chid]); + if (!clone->op[chid] && !StrCompare(clone->nick, parm)) + { + clone->op[chid] = 1; + clone->needop[chid] = 0; + massop(clone, chid); + } + if (!conf.aggressive && !conf.peace) + { + if (clone->op[chid] && deop_enemy(clone, chid, nick)) + { + if (is_enemy(parm)) + { + deop(clone, chid, parm); + } + } + } + } + else /* -o */ + { + uniq_add_queue(parm, &names[chid]); + remove_queue(parm, &names_op[chid]); + if (clone->op[chid] && !StrCompare(clone->nick, parm)) + { + clone->op[chid] = 0; + clone->needop[chid] = 1; + } + else if (clone->op[chid]) + { + if (!conf.aggressive && !conf.peace) + { + deop_enemy(clone, chid, nick); + } + if (StrCompare(nick, parm) && !is_enemy(parm)) + { + op(clone, chid, parm); + } + } + } + break; + } + } + + if (conf.aggressive && !conf.peace && clone->op[chid]) + { + massdeop(clone, chid); + } +} +/* }}} */ +/* {{{ void parse_irc_names(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_names(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *chan; + char parm[MINIBUF]; + register int i; + + strsep(&buf, DELIM); + strsep(&buf, DELIM); + chan = strsep(&buf, DELIM); + strsep(&buf, ":"); + + if ((chid = getchid(chan)) == -1) + { + return; + } + + for (i = 0; !StrParam(parm, sizeof(parm), buf, i); ++i) + { + if (parm[0] == '@') + { + uniq_add_queue(parm+1, &names_op[chid]); + } + else if (parm[0] == '+') + { + uniq_add_queue(parm+1, &names[chid]); + } + else + { + uniq_add_queue(parm, &names[chid]); + } + } + + if (clone->restricted) + { + return; + } + + snprintf(parm, sizeof(parm), "@%s", clone->nick); + if (is_in(parm, buf)) + { + clone->op[chid] = 1; + clone->needop[chid] = 0; + } +} +/* }}} */ +/* {{{ void parse_irc_topic(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_topic(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + char *chan; + + if (conf.peace) + { + return; + } + + chan = strsep(&buf, DELIM); + if ((chid = getchid(chan)) == -1) + { + return; + } + + if (clone->op[chid]) + { + deop_enemy(clone, chid, nick); + } +} +/* }}} */ +/* {{{ void parse_irc_unban(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_unban(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + char *chan; + char *toban; + int chid; + + strsep(&buf, DELIM); + chan = strsep(&buf, DELIM); + + if ((chid = getchid(chan)) == -1) + { + return; + } + + if (!(toban = strsep(&buf, DELIM))) + { + return; + } + + unban(clone, chid, toban); +} +/* }}} */ +/* {{{ void parse_irc_quit(clone_t *clone, char *cmd, char *nick, char *from, char *buf) */ +void parse_irc_quit(clone_t *clone, char *cmd, char *nick, char *from, char *buf) +{ + int chid; + + if (!remove_table(nick, conf.prot, MAX_PROTS)) + { + if (conf.verbose) + { + print(1, 0, 0, "%s not protected anymore (quit)", nick); + } + } + + for (chid = 0; chid < MAX_CHANS; ++chid) + { + remove_queue(nick, &names_op[chid]); + remove_queue(nick, &names[chid]); + } +} +/* }}} */ +/* {{{ Constants */ +#define IDENT1 "IDENTIFY" +#define IDENT2 "choose another one" +#define IDENT3 "Please choose a different nickname" +/* }}} */ +/* {{{ int nick_error(char *cmd, char *nick, char *buf) */ +int nick_error(char *cmd, char *nick, char *buf) +{ + if (conf.dalnet && !StrCompare(nick, "nickserv")) + { + if (strstr(buf, IDENT1) || strstr(buf, IDENT2) || strstr(buf, IDENT3)) + { + return 1; + } + } +/* XXX: There *has* to be a better way to compact this. -- Leon */ + if (!StrCompare(cmd, "431") || !StrCompare(cmd, "432") || !StrCompare(cmd, "433") || !StrCompare(cmd, "436") || !StrCompare(cmd, "437") || !StrCompare(cmd, "438")) + { + return 1; + } + + return 0; +} +/* }}} */ +/* {{{ void parse_irc(clone_t *clone, char *buf) */ +void parse_irc(clone_t *clone, char *buf) +{ + char *from; + char *parm; + char nick[MINIBUF+1]; +/* NOTE: 431, 432, 433, 436, 437, & 438 are covered by ``nick_error()'' */ + static msg_t msg[] = + { { "JOIN", parse_irc_join }, + { "PART", parse_irc_part }, + { "QUIT", parse_irc_quit }, + { "NICK", parse_irc_nick }, + { "PRIVMSG", parse_irc_privmsg }, + { "NOTICE", parse_irc_notice }, + { "KICK", parse_irc_kick }, + { "MODE", parse_irc_mode }, + { "TOPIC", parse_irc_topic }, + { "001", parse_irc_connect }, + { "005", parse_irc_isupport }, + { "311", parse_irc_kickban }, + { "353", parse_irc_names }, + { "367", parse_irc_unban }, + { "372", parse_irc_error }, + { "471", parse_irc_error }, + { "472", parse_irc_error }, + { "473", parse_irc_error }, + { "474", parse_irc_error }, + { "475", parse_irc_error }, + { "484", parse_irc_error }, + { "731", parse_irc_moffline }, + { NULL, NULL, } + }; + msg_t *pmsg; +/* TODO: + 367 => "banlist", + 368 => "endofbanlist", + 404 => "cannotsendtochan", + "INVITE"/"KILL" +*/ + + if (!StrCmpPrefix(buf, "PING")) + { + buf[1] = 'O'; + send(clone->sock, buf, strlen(buf), 0); + return; + } + + if (!strsep(&buf, ":")) + { + return; + } + + if (!(from = strsep(&buf, DELIM))) + { + return; + } + + if (!(parm = strsep(&buf, DELIM))) + { + return; + } + + if (strchr(from, '!')) + { + sscanf(from, "%"MINIBUF_TXT"[^!]", nick); + } + else + { + nick[0] = 0; + } + + if (nick_error(parm, nick, buf)) + { + randget(clone, &clone->nick2, conf.nick_length, conf.use_wordlist, conf.nicks, MAX_NICKS); + if (conf.verbose) + { + print(1, 0, 0, "nickname error for %s, changing to %s.", clone->nick, clone->nick2); + } + if (!clone->online) + { + StrCopy(clone->nick, clone->nick2, conf.nick_length+1); + } + send_irc_nick(clone, clone->nick2); + free(clone->nick2); + return; + } + + for (pmsg = msg; pmsg->parm; ++pmsg) + { + if (!StrCompare(parm, pmsg->parm)) + { + pmsg->function(clone, parm, nick, from, buf); + return; + } + } +} +/* }}} */ +/* }}} */ +/* {{{ send_*() functions */ +/* {{{ void send_join(char *buffer) */ +void send_join(char *buffer) +{ + register int id; + clone_t **pcl; + char *chan; + + if (!strsep(&buffer, DELIM)) + { + return; + } + + if (!(chan=strsep(&buffer, DELIM))) + { + return; + } + + for (id = 0, pcl = cl; id < MAX_CLONES; ++id, ++pcl) + { + if (*pcl && (*pcl)->online) + { + join(*pcl, chan); + } + } +} +/* }}} */ +/* {{{ void send_nick() */ +void send_nick() +{ + register int id; + clone_t **pcl; + + for (id = 0, pcl = cl; id < MAX_CLONES; ++id, ++pcl) + { + if (*pcl && (*pcl)->online && (*pcl)->grabbing == 0) + { + randget(*pcl, &(*pcl)->nick2, conf.nick_length, conf.use_wordlist, conf.nicks, MAX_NICKS); + send_irc_nick(*pcl, (*pcl)->nick2); + free((*pcl)->nick2); + } + } +} +/* }}} */ +/* {{{ void send2clones(char *buffer) */ +void send2clones(char *buffer) +{ + register int id; + clone_t **pcl; + + if (!StrCmpPrefix(buffer, "join")) + { + send_join(buffer); + } + else if (!StrCmpPrefix(buffer, NICKS)) + { + send_nick(); + } + else + { + for (id = 0, pcl = cl; id < MAX_CLONES; ++id, ++pcl) + { + if (*pcl && (*pcl)->online) + { + send((*pcl)->sock, buffer, strlen(buffer), 0); + } + } + } +} +/* }}} */ +/* {{{ void send2server(clone_t *clone, const char *fmt, ...) */ +void send2server(clone_t *clone, const char *fmt, ...) +{ + static int lastlock = 0; + clone_t **pcl; + time_t now; + int i; + int j; + int n; + char tosend[BIGBUF]; + va_list ap; + + now = time(NULL); + + /* Synchronization of the queues */ + if (lastlock != now) + { + lastlock = now; + clear_queue(&public_queue); + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl) + { + clear_queue(&(*pcl)->queue); + } + } + } + + va_start(ap, fmt); + n = vsnprintf(tosend, sizeof(tosend), fmt, ap); + va_end(ap); + + /* Each clone has its own send queue. */ + /* Before trying to send anything, it puts it in. */ + add_queue(tosend, &clone->queue); + + /* If the public queue has more occurences of the message, it has */ + /* already been sent to IRC. */ + i = occur_queue(tosend, &clone->queue) + conf.repeat; + j = occur_queue(tosend, &public_queue); + + if (i <= j) + { + return; + } + + add_queue(tosend, &public_queue); + + send(clone->sock, tosend, strlen(tosend), 0); + clone->lastsend = now; +} +/* }}} */ +/* }}} */ diff --git a/muhstik/src/control.c b/muhstik/src/control.c new file mode 100644 index 0000000..19a5705 --- /dev/null +++ b/muhstik/src/control.c @@ -0,0 +1,1022 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include +#include +#include + +#include "../include/control.h" +#include "../include/load.h" +#include "../include/muhstik.h" +#include "../include/print.h" +#include "../include/string.h" +#include "../include/lists.h" +#include "../include/mass.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External variables */ +extern config_t conf; +extern int mass_ch; +extern int mass_mode; +extern char *mass_server; +extern char *mass_reas; +extern clone_t *cl[]; +extern char *channel[]; +extern char *chankey[]; +extern queue names_op[]; +extern queue names[]; +extern pthread_mutex_t mutex[]; +/* }}} */ +/*{{{ Global variables */ +int mute; +char *target; +int echo_mode; +/* }}} */ +/* }}} */ +/* {{{ get*() */ +int getchid(char *s) +{ + register int i; + + for (i = 0; i < MAX_CHANS; ++i) + { + if (channel[i] && !StrCompare(channel[i], s)) + { + return i; + } + } + + return -1; +} + +clone_t *getop(int chid) +{ + register int i; + clone_t **pcl; + time_t now; + now = time(NULL); + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (is_op(*pcl, chid) && (*pcl)->lastsend != now) + { + return *pcl; + } + } + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (is_op(*pcl, chid)) + { + return *pcl; + } + } + + return NULL; +} + +clone_t *getone(char *s) +{ + register int i; + clone_t **pcl; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && !StrCompare((*pcl)->server, s)) + { + return *pcl; + } + } + + return NULL; +} + +clone_t *getscan() +{ + register int i; + clone_t **pcl; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && !(*pcl)->scan) + { + return *pcl; + } + } + + return NULL; +} +/* }}} */ +/* {{{ join_delayed() */ +void join_delayed(char *buffer) +{ + int delay; + register int id; + clone_t **pcl; + time_t now; + + if (sscanf(buffer, "%*s %s %d", buffer, &delay) != 2) + { + return; + } + + if ((mass_ch = getchid(buffer)) == -1) + { + return; + } + + now = time(NULL); + for (id = 0, pcl = cl; id < MAX_CLONES; ++id, ++pcl) + { + if ((*pcl) && (*pcl)->online) + { + (*pcl)->rejoin_time = now + delay * id; + } + } +} +/* }}} */ +/* {{{ Parsing and interpreting */ +/* {{{ Parsing functions */ +void parse_mute(char *buffer, int out) +{ + mute = (mute + 1) & 01; +} + +void parse_join(char *buffer, int out) +{ + char tosend[MEDBUF+1]; + char parm[MEDBUF+1]; + int i; + int delay; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: join [] []"); + return; + } + if (occur_table(parm, channel, MAX_CHANS)) + { + print(1, 0, out, "rejoining %s", parm); + snprintf(tosend, sizeof(tosend), "PART %s\n", parm); /* TODO: Optional PART message/reason. */ + send2clones(tosend); + pthread_mutex_unlock(&mutex[0]); + sleep(1); + pthread_mutex_lock(&mutex[0]); + snprintf(tosend, sizeof(tosend), "JOIN %s\n", parm); + send2clones(tosend); + return; + } + if ((i = add_table(parm, channel, MAX_CHANS)) == -1) + { + print(1, 0, out, "No more channel available"); + return; + } + switch (sscanf(buffer, "%*s %*s %d %"MEDBUF_TXT"s", &delay, parm)) + { + case 2: + free(chankey[i]); + chankey[i] = StrDuplicate(parm); + /* FALL THROUGH */ + case 1: + print(1, 0, out, "joining %s with a delay of %d", parm, delay); + join_delayed(buffer); + break; + default: + print(1, 0, out, "joining %s", parm); + send2clones(buffer); + } +} + +void parse_part(char *buffer, int out) +{ + char parm[MEDBUF]; + int chid; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: part [:]"); + return; + } + + if ((chid = remove_table(parm, channel, MAX_CHANS))) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + + free(chankey[chid]); + chankey[chid] = NULL; + + clear_queue(&names[chid]); + clear_queue(&names_op[chid]); + + print(1, 0, out, "leaving %s", parm); + send2clones(buffer); +} + +void parse_mode(char *buffer, int out) +{ + char parm[MEDBUF]; + int chid; + clone_t *clone; + + if (StrParam(parm, sizeof(parm), buffer, 2)) + { + if (!StrCmpPrefix(buffer, "mode")) + { + print(1, 0, out, "Usage: MODE "); + return; + } + if (!StrCmpPrefix(buffer, "kick")) + { + print(1, 0, out, "Usage: KICK [:]"); + return; + } + if (!StrCmpPrefix(buffer, "topic")) + { + print(1, 0, out, "Usage: TOPIC :"); + return; + } + } + StrParam(parm, sizeof(parm), buffer, 1); + if ((chid = getchid(parm)) == -1) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + if (!(clone = getop(chid))) + { + print(1, 0, out, "Error: no ops in %s", parm); + return; + } + send(clone->sock, buffer, strlen(buffer), 0); +} + +void parse_privmsg(char *buffer, int out) +{ + char parm[MEDBUF]; + + if (StrParam(parm, sizeof(parm), buffer, 2)) + { + StrFirstToken(buffer); + print(1, 0, out, "Usage: %s :", buffer); + return; + } + send2clones(buffer); +} + +void parse_kb(char *buffer, int out) +{ + char parm[MEDBUF+1]; + clone_t *clone; + + if (StrParam(parm, sizeof(parm), buffer, 2)) + { + print(1, 0, out, "Usage: %s [:]", KICKBAN); + return; + } + + StrParam(parm, sizeof(parm), buffer, 1); + if ((mass_ch = getchid(parm)) == -1) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + + if (!(clone = getop(mass_ch))) + { + return; + } + + free(mass_reas); + if (sscanf(buffer, "%*s %*s %*s :%"MEDBUF_TXT"[^\n]", parm) != 1) + { + mass_reas = NULL; + } + else + { + mass_reas = StrDuplicate(parm); + } + + if (!StrParam(parm, sizeof(parm), buffer, 2)) + { + kickban(clone, parm); + print(1, 0, out, "kickban %s", SETON); + } +} + +void parse_mkb(char *buffer, int out) +{ + char parm[MEDBUF+1]; + clone_t *clone; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + StrFirstToken(buffer); + print(1, 0, out, "Usage: %s [:]", buffer); + return; + } + + if ((mass_ch = getchid(parm)) == -1) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + + if (!(clone = getop(mass_ch))) + return; + + free(mass_reas); + if (sscanf(buffer, "%*s %*s :%"MEDBUF_TXT"[^\n]", parm) != 1) + { + mass_reas = NULL; + } + else + { + mass_reas = StrDuplicate(parm); + } + + StrFirstToken(buffer); + print(1, 0, out, "%s %s on %s", buffer, SETON, channel[mass_ch]); + + mass_mode = !StrCmpPrefix(buffer, MASSKICKBAN) ? MKB : MK; + init_massdo(mass_ch, mass_mode); +} + +void parse_to(char *buffer, int out) +{ + char parm[MEDBUF]; + char chan[MINIBUF]; + clone_t *clone1; + clone_t *clone2; + + if (StrParam(parm, sizeof(parm), buffer, 3)) + { + StrFirstToken(buffer); + print(1, 0, out, "Usage: %s ", buffer); + print(1, 0, out, "server1 = server to get op nicks"); + print(1, 0, out, "server2 = server to change nicks"); + return; + } + + if (!(clone2 = getone(parm))) + { + print(1, 0, out, "no clone online on %s", parm); + return; + } + + StrParam(parm, sizeof(parm), buffer, 2); + if (!(clone1 = getone(parm))) + { + print(1, 0, out, "no clone online on %s", parm); + return; + } + + StrParam(chan, sizeof(chan), buffer, 1); + print(1, 0, out, "takeover activated on %s", chan); + mass_mode = TO; + mass_server = clone2->server; + init_massdo(mass_ch, mass_mode); +} + +void parse_mo(char *buffer, int out) +{ + char parm[MEDBUF]; + clone_t *clone; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + StrFirstToken(buffer); + print(1, 0, out, "Usage: %s ", buffer); + return; + } + + if ((mass_ch = getchid(parm)) == -1) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + + if (!(clone = getop(mass_ch))) + { + return; + } + + StrFirstToken(buffer); + print(1, 0, out, "%s %s on %s", buffer, SETON, channel[mass_ch]); + + if (!StrCmpPrefix(buffer, MASSOP)) + { + force_massop(); + return; + } + + if (!StrCmpPrefix(buffer, MASSDEOP)) + { + mass_mode = MD; + init_massdo(mass_ch, mass_mode); + return; + } + + send_sock(clone->sock, "MODE %s +b\n", channel[mass_ch]); +} + +void parse_addprot(char *buffer, int out) +{ + char parm[MEDBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", ADDPROT); + return; + } + if (!occur_table(parm, conf.prot, MAX_PROTS)) + { + if ((i = add_table(parm, conf.prot, MAX_PROTS)) != -1) + { + print(1, 0, out, "[%d] %s protected", i, parm); + } + else + { + print(1, 0, out, "list full"); + } + } +} + +void parse_rmprot(char *buffer, int out) +{ + char parm[MINIBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", RMPROT); + return; + } + if ((i = atoi(parm)) < 0) + { + print(1, 0, out, "protected nick list cleared"); + clear_table(conf.prot, MAX_PROTS); + return; + } + if (i < MAX_PROTS && conf.prot[i]) + { + print(1, 0, out, "%s not protected anymore", conf.prot[i]); + free(conf.prot[i]); + conf.prot[i] = NULL; + return; + } + print(1, 0, out, "no such entry"); +} + +void parse_addop(char *buffer, int out) +{ + char parm[MEDBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1) || !is_pattern(parm)) + { + print(1, 0, out, "Usage: %s ", ADDOP); + return; + } + if ((i = add_table(parm, conf.aop, MAX_AOPS)) == -1) + { + print(1, 0, out, "aop list full"); + return; + } + print(1, 0, out, "[%d] %s added to the aop list", i, parm); +} + +void parse_rmop(char *buffer, int out) +{ + char parm[MINIBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", RMOP); + return; + } + if ((i = atoi(parm)) < 0) + { + print(1, 0, out, "auto op list cleared"); + clear_table(conf.aop, MAX_AOPS); + return; + } + if (i < MAX_AOPS && conf.aop[i]) + { + print(1, 0, out, "%s removed from the aop list", conf.aop[i]); + free(conf.aop[i]); + conf.aop[i] = NULL; + return; + } + print(1, 0, out, "no such entry"); +} + +void parse_addjupe(char *buffer, int out) +{ + char parm[MEDBUF]; + int i; + int idx; + int mon; + unsigned int j; + char cmdbuf[BIGBUF]; + clone_t **pcl; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", ADDJUPE); + return; + } + + if ((idx = occur_table(parm, conf.jupe, MAX_JUPES)) != 0) + { + print(1, 0, out, "nick already juped as [%d]", (idx - 1)); + return; + } + + for (i = mon = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && (*pcl)->monitor_tmax != 0) + { + for (j = 0; j < (*pcl)->monitor_tmax; ++j) /* ``unsigned'' is not needed, stops a warning when compiled with `-Wsign-compare' */ + { + if ((*pcl)->jupes[j] == NULL) + { + if (idx != -1) + { + if((idx = add_table(parm, conf.jupe, MAX_JUPES)) == -1) + { + print(1, 0, out, "jupe list full"); + return; + } + else + { + print(1, 0, out, "[%d] %s added to the jupe list", idx, parm); + idx = -1; + } + } + + (*pcl)->jupes[j] = StrDuplicate(parm); + snprintf(cmdbuf, sizeof(cmdbuf), "MONITOR + %s\r\n", parm); + send((*pcl)->sock, cmdbuf, strlen(cmdbuf), 0); + print_prefix((*pcl), 0, 0); + print(1, 0, out, "%s added to my MONITOR list", parm); + mon++; + break; + } + } + } + } + + if(mon == 0) + { + print(1, 0, out, "jupe list full (out of clones that could MONITOR)"); + } +} + +void parse_rmjupe(char *buffer, int out) +{ + char parm[MINIBUF]; + int idx; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", RMJUPE); + return; + } + if ((idx = atoi(parm)) < 0) + { + clear_table(conf.jupe, MAX_JUPES); + print(1, 0, out, "jupe list cleared"); + return; + } + if (idx < MAX_JUPES && conf.jupe[idx]) + { + clone_t **pcl = cl; + char *nick = conf.jupe[idx], cmdbuf[BIGBUF]; + int i; + unsigned int j; + + print(1, 0, out, "%s removed from the jupe list", nick); + for (i = 0; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && (*pcl)->monitor_tmax != 0) + { + for (j = 0; j < (*pcl)->monitor_tmax; ++j) /* `unsigned' is not needed, stops a warning when compiled with `-Wsign-compare' */ + { + if (0 == StrCompare((*pcl)->jupes[j], nick)) + { + snprintf(cmdbuf, sizeof(cmdbuf), "MONITOR - %s\r\n", nick); + send((*pcl)->sock, cmdbuf, strlen(cmdbuf), 0); + (*pcl)->jupes[j] = NULL; + print_prefix((*pcl), 0, 0); + print(1, 0, out, "%s removed from my MONITOR list", nick); + break; + } + } + } + if ((*pcl) && (*pcl)->online && (*pcl)->grabbing && (0 == StrCompare((*pcl)->nick, nick))) + { + (*pcl)->grabbing = 0; + print_prefix((*pcl), 0, 0); + print(1, 0, out, "I ungrabbed `%s'", nick); + } + } + + free(conf.jupe[idx]); + conf.jupe[idx] = NULL; + return; + } + + print(1, 0, out, "no such entry"); +} + +void parse_addshit(char *buffer, int out) +{ + char parm[MEDBUF+1]; + int i; + + if (sscanf(buffer, "%*s %"MEDBUF_TXT"[^\n]", parm) != 1 || !is_pattern(parm)) + { + print(1, 0, out, "Usage: %s :[]", ADDSHIT); + return; + } + if ((i = add_table(parm, conf.shit, MAX_SHITS)) == -1) + { + print(1, 0, out, "shitlist full"); + return; + } + StrFirstToken(parm); + print(1, 0, out, "[%d] %s shitlisted", i, parm); +} + +void parse_rmshit(char *buffer, int out) +{ + char parm[MINIBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", RMSHIT); + return; + } + if ((i = atoi(parm)) < 0) + { + print(1, 0, out, "shitlist cleared"); + clear_table(conf.shit, MAX_SHITS); + return; + } + if (i < MAX_SHITS && conf.shit[i]) + { + StrFirstToken(conf.shit[i]); + print(1, 0, out, "%s removed from the shitlist", conf.shit[i]); + free(conf.shit[i]); + conf.shit[i] = NULL; + return; + } + print(1, 0, out, "no such entry"); +} + +void parse_addscan(char *buffer, int out) +{ + char parm[MINIBUF]; + char save[MINIBUF]; + char server[MINIBUF]; + int type; + int mode; + int proxy_port; + int server_port; + clone_t *clone; + + if (StrParam(save, sizeof(save), buffer, 5)) + { + print(1, 0, out, "Usage: %s []", ADDSCAN); + return; + } + if (!(clone = getscan())) + { + print(1, 0, out, "scan: no clone available"); + return; + } + StrParam(server, sizeof(server), buffer, 3); + if (sscanf(buffer, "%*s %d", &type) != 1 || type < 0 || type > 6) + { + print(1, 0, out, "scan: invalid type"); + return; + } + if ((sscanf(buffer, "%*s %*s %d", &proxy_port) != 1) || sscanf(buffer, "%*s %*s %*s %*s %d", &server_port) != 1) + { + print(1, 0, out, "scan: invalid port"); + return; + } + if (!StrParam(parm, sizeof(parm), buffer, 6)) + { + mode = atoi(parm); + } + else + { + mode = M_QUIT; + } + if (mode < 0 || mode > 2) + { + print(1, 0, out, "scan: invalid mode"); + return; + } + clone->scan = (scan_t *)xmalloc(sizeof(scan_t)); + clone->scan->type = type; + clone->scan->proxy_port = proxy_port; + clone->scan->server = StrDuplicate(server); + clone->scan->server_port = server_port; + clone->scan->save = StrDuplicate(save); + clone->scan->mode = mode; + print(1, 0, out, "[%d] scan activated", clone->id); +} + +void parse_rmscan(char *buffer, int out) +{ + char parm[MEDBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", RMSCAN); + return; + } + if (sscanf(parm, "%d", &i) == 1) + { + if (i < MAX_CLONES && cl[i] && cl[i]->scan) + { + print(1, 0, out, "[%d] scan canceled", i); + free(cl[i]->scan->server); + free(cl[i]->scan->save); + free(cl[i]->scan); + cl[i]->scan = NULL; + return; + } + } + print(1, 0, out, "no such entry"); +} + +void parse_echo(char *buffer, int out) +{ + char parm[MEDBUF]; + + free(target); + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + target = StrDuplicate(parm); + print(1, 0, out, "echo enabled, echoing `%s'", target); + } + else + { + target = NULL; + print(1, 0, out, "echo disabled"); + } +} + +void parse_chankey(char *buffer, int out) +{ + char parm[MEDBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", CHANKEY); + return; + } + if ((i = getchid(parm)) == -1) + { + print(1, 0, out, "%s: no such chan", parm); + return; + } + free(chankey[i]); + if (!StrParam(parm, sizeof(parm), buffer, 2)) + { + chankey[i] = StrDuplicate(parm); + print(1, 0, out, "Using chankey %s on %s", chankey[i], channel[i]); + } + else + { + chankey[i] = NULL; + print(1, 0, out, "Chankey disabled on %s", channel[i]); + } +} + +void parse_nicklist(char *buffer, int out) +{ + char parm[MEDBUF]; + FILE *f; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", NICKLIST); + return; + } + + if (!(f = fopen(parm, "r"))) + { + print(1, 0, out, "Cannot open the file `%s'", parm); + return; + } + + clear_table(conf.nicks, MAX_NICKS); + fill_table(conf.nicks, MAX_NICKS, f); + fclose(f); + + print(1, 0, out, "nicklist loaded", parm); +} + +void parse_select(char *buffer, int out) +{ + clone_t **pcl; + register int i; + char parm[MINIBUF]; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s :", SELECT); + return; + } + + strsep(&buffer, ":"); + if (!buffer) + { + return; + } + + if (parm[0] == '*') + { + send2clones(buffer); + return; + } + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && !StrCompare((*pcl)->nick, parm)) + { + send((*pcl)->sock, buffer, strlen(buffer), 0); + return; + } + } + print(1, 0, out, "no such nickname"); +} + +void parse_load(char *buffer, int out) +{ + int type; + int proxy_port; + int server_port; + char parm[MINIBUF]; + char server[MINIBUF]; + char proxy[MINIBUF]; + + if (StrParam(parm, sizeof(parm), buffer, 5)) + { + print(1, 0, out, "Usage: %s ", LOAD); + return; + } + if (sscanf(buffer, "%*s %d", &type) != 1 || type < 0 || type > 5) + { + print(1, 0, out, "load: invalid type"); + return; + } + if (sscanf(buffer, "%*s %*s %*s %d", &proxy_port) != 1 || sscanf(buffer, "%*s %*s %*s %*s %*s %d", &server_port) != 1) + { + print(1, 0, out, "load: invalid port"); + return; + } + StrParam(server, sizeof(server), buffer, 4); + StrParam(proxy, sizeof(proxy), buffer, 2); + load_host(type, proxy, proxy_port, server, server_port, NULL, NULL, NULL, M_NORMAL); +} + +void parse_quit(char *buffer, int out) +{ + if (!StrCmpPrefix(buffer, "quit :")) + { + send2clones(buffer); + print(1, 0, out, "Exiting..."); + sleep(1); + } + + main_exit(); +} +/* +void parse_maxconns(char *buffer, int out) +{ + char parm[MINIBUF]; + int i; + + if (StrParam(parm, sizeof(parm), buffer, 1)) + { + print(1, 0, out, "Usage: %s ", MAXCONNS); + return; + } + else if(i = atoi(parm) > 0) + { + print(1, 0, out, "MAX_CONNS set to %d", i); + conf.max_conns = i; + return; + } +} +*/ +/* }}} */ +/* {{{ interpret() */ +void interpret(char *buffer, int out) +{ + static cmd_t cmd[] = + { { "join", parse_join }, + { "part", parse_part }, + { SELECT, parse_select }, + { LOAD, parse_load }, + { MUTE, parse_mute }, + { "mode", parse_mode }, + { "kick", parse_mode }, + { "topic", parse_mode }, + { "privmsg", parse_privmsg }, + { "notice", parse_privmsg }, + { KICKBAN, parse_kb }, + { MASSKICKBAN, parse_mkb }, + { MASSKICK, parse_mkb }, + { MASSOP, parse_mo }, + { MASSDEOP, parse_mo }, + { MASSUNBAN, parse_mo }, + { TAKEOVER, parse_to }, + { ADDSCAN, parse_addscan }, + { RMSCAN, parse_rmscan }, + { ADDPROT, parse_addprot }, + { RMPROT, parse_rmprot }, + { ADDOP, parse_addop }, + { RMOP, parse_rmop }, + { ADDJUPE, parse_addjupe }, + { RMJUPE, parse_rmjupe }, + { ADDSHIT, parse_addshit }, + { RMSHIT, parse_rmshit }, + { ECHO, parse_echo }, + { CHANKEY, parse_chankey }, + { NICKLIST, parse_nicklist }, +/* { MAXCONNS, parse_maxconns }, */ + { "quit", parse_quit }, + { NULL, NULL } + }; + cmd_t *pcmd; + + for (pcmd = cmd; pcmd->parm; ++pcmd) + { + if (!StrCmpPrefix(buffer, pcmd->parm)) + { + pcmd->function(buffer, out); + return; + } + } + + if (out > 0 && (!StrCmpPrefix(buffer, "help") || buffer[0] == '?')) + { + usage(out); + } + else if (conf.nicks[0] && !StrCmpPrefix(buffer, RANDOM)) + { + conf.use_wordlist = !conf.use_wordlist; + print(1, 0, out, "using %s", conf.use_wordlist ? "the nicks" : "random nicks"); + } + else if (!StrCmpPrefix(buffer, AGGRESS)) + { + conf.aggressive = !conf.aggressive; + print(1, 0, out, "aggressive mode set %s", conf.aggressive ? "ON" : "OFF"); + } + else if (!StrCmpPrefix(buffer, PEACE)) + { + conf.peace = !conf.peace; + print(1, 0, out, "peace mode set %s", conf.peace ? "ON" : "OFF"); + } + else if (out > 0 && !StrCmpPrefix(buffer, STATUS)) + { + status(out); + } + else if (!StrCmpPrefix(buffer, NICKS)) + { + send2clones(buffer); + } + else if (buffer[0] != '\n') + { + print(1, 0, out, "muhstik: %s: command not found", strsep(&buffer, DELIM)); + } +} +/* }}} */ +/* }}} */ diff --git a/muhstik/src/init.c b/muhstik/src/init.c new file mode 100644 index 0000000..e2bd85e --- /dev/null +++ b/muhstik/src/init.c @@ -0,0 +1,362 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2003, roadr (bigmac@home.sirklabs.hu) */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include + +#include "../include/init.h" +#include "../include/string.h" +#include "../include/lists.h" +#include "../include/print.h" +/* }}} */ +/*{{{ Global variables */ +char *hostname; +config_t conf; +char *channel[MAX_CHANS]; +char *chankey[MAX_CHANS]; +pthread_attr_t attr; +pthread_mutex_t mutex[MAX_MUTEX]; +/* }}} */ +/* {{{ check_options() */ +void check_options() +{ + int i; + + for (i = 0; i < PROXYS && !conf.h[i][0]; ++i); + { + if (i == PROXYS && !conf.direct[0]) + { + puts("You must supply a way of connection (proxy, socks, etc)."); + exit(EXIT_FAILURE); + } + } + + for (i = 0; i < PROXYS; ++i) + { + if (conf.h[i][0] && !conf.s[i][0]) + { + puts("You must supply a server list for each proxy list."); + exit(EXIT_FAILURE); + } + } + + for (i = 0; i < PROXYS; ++i) + { + if (!conf.h[i][0] && conf.s[i][0]) + { + puts("You must supply a proxy list for each server list."); + exit(EXIT_FAILURE); + } + } + + if (conf.use_wordlist && !conf.nicks[0]) + { + puts("No nicknames to use."); + exit(EXIT_FAILURE); + } +} +/* }}} */ +/* {{{ init_*() */ +void init_threads() +{ + int i; + + if (pthread_attr_init(&attr)) + { + puts("pthread_attr_init failed"); + exit(EXIT_FAILURE); + } + if (pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) + { + puts("pthread_attr_setdetachstate failed"); + exit(EXIT_FAILURE); + } + + for (i = 0; i < MAX_MUTEX; ++i) + { + if (pthread_mutex_init(&mutex[i], NULL)) + { + puts("pthread_mutex_init failed"); + exit(EXIT_FAILURE); + } + } +} + +void init_hostname() +{ + char name[MEDBUF]; + + if (gethostname(name, sizeof(name)) == -1) + { + print_error("gethostname"); + exit(EXIT_FAILURE); + } + StrFirstToken(name); + hostname = StrDuplicate(name); +} + +void init_options(char **argv) +{ + FILE *config, *f; + unsigned i; + unsigned j; + char buffer[MEDBUF]; + char parm[MEDBUF]; + + struct + { + char *arg; + int *ptr; + } init_int[] = { + { "load", &conf.load }, + { "group", &conf.group }, + { "clones", &conf.max_clones }, + { "wait", &conf.wait_socks }, + { "rewind", &conf.rewind_socks }, + { "timeout", &conf.timeout }, + { "max_reco", &conf.max_reco }, + { "wait_reco", &conf.wait_reco }, + { "no_restricted", &conf.no_restricted }, + { "scan", &conf.scan }, + { "help", &conf.help }, + { "verbose", &conf.verbose }, + { "debug", &conf.debug }, + { "nocolor", &conf.nocolor }, + { "dalnet", &conf.dalnet }, + { "using_wordlist", &conf.use_wordlist }, + { "nick_length", &conf.nick_length }, + { "ident_length", &conf.ident_length }, + { "real_length", &conf.real_length }, + { "rejoin", &conf.rejoin }, + { "multi_op", &conf.multi_op }, + { "multi_kick", &conf.multi_kick }, + { "multi_deop", &conf.multi_deop }, + { "aggressive", &conf.aggressive }, + { "peace", &conf.peace }, + { "repeat", &conf.repeat }, + { "notice", &conf.notice }, + /* { "max_conns", &conf.max_conns }, */ + { NULL, NULL } + }; + + struct + { + char *arg; + FILE **ptr; + short min; + short max; + } init_list[] = { + { "sock4_list", conf.h[SOCKS4], 0, MAX_GROUPS }, + { "sock4_server_list", conf.s[SOCKS4], 0, MAX_GROUPS }, + { "sock5_list", conf.h[SOCKS5], 0, MAX_GROUPS }, + { "sock5_server_list", conf.s[SOCKS5], 0, MAX_GROUPS }, + { "proxy_list", conf.h[PROXY], 0, MAX_GROUPS }, + { "proxy_server_list", conf.s[PROXY], 0, MAX_GROUPS }, + { "cisco_list", conf.h[CISCO], 0, MAX_GROUPS }, + { "cisco_server_list", conf.s[CISCO], 0, MAX_GROUPS }, + { "vhost_list", conf.h[VHOST], 0, MAX_GROUPS }, + { "vhost_server_list", conf.s[VHOST], 0, MAX_GROUPS }, + { "direct_server_list", conf.direct, 0, 2 }, + { NULL, NULL, 0, 0 } + }; + + struct + { + char *arg; + char **ptr; + short min; + short max; + } init_save[] = { + { "sock4_save", conf.g[SOCKS4], 0, MAX_GROUPS }, + { "sock5_save", conf.g[SOCKS5], 0, MAX_GROUPS }, + { "proxy_save", conf.g[PROXY], 0, MAX_GROUPS }, + { "vhost_save", conf.g[VHOST], 0, MAX_GROUPS }, + { "cisco_save", conf.g[CISCO], 0, MAX_GROUPS }, + { NULL, NULL, 0, 0 } + }; + + struct + { + char *arg; + char **save; + char **ptr; + int max; + } init_read[] = { + { "aop_list", &conf.userlist[AOP], conf.aop, MAX_AOPS }, + { "jupe_list", &conf.userlist[JUPE], conf.jupe, MAX_JUPES }, + { "prot_list", &conf.userlist[PROT], conf.prot, MAX_PROTS }, + { "shit_list", &conf.userlist[SHIT], conf.shit, MAX_SHITS }, + { "nicks", NULL, conf.nicks, MAX_NICKS }, + { "idents", NULL, conf.idents, MAX_IDENTS }, + { "realnames", NULL, conf.names, MAX_NAMES }, + { NULL, NULL, NULL, 0 } + }; + + struct + { + char *arg; + char **ptr; + } init_str[] = { + { "onstart", &conf.batch }, + { "chan", channel }, + { "motd", &conf.motd }, + { NULL, NULL } + }; + + /* Initialize the parameters */ + conf.load = 2000; + conf.group = 1; + conf.timeout = 30; + conf.max_clones = 1; + + conf.multi_kick = 1; + conf.multi_op = 4; + conf.multi_deop = 4; + + conf.rejoin = 5; + conf.dalnet = 1; + conf.nick_length = 8; + conf.ident_length = 8; + conf.real_length = 8; + + if (!(config = fopen(argv[1], "r"))) + { + puts("Cannot open the config file."); + exit(EXIT_FAILURE); + } + + while (!get_a_line(buffer, sizeof(buffer), config)) + { + if (StrParam(parm, sizeof(parm), buffer, 0)) + { + continue; + } + + /* Initialize the integer parameters */ + for (i = 0; init_int[i].arg; ++i) + { + if (!StrCompare(init_int[i].arg, parm)) + { + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + *init_int[i].ptr = atoi(parm); + break; + } + } + } + if (init_int[i].arg) + { + continue; + } + + /* Initialize the file descriptors */ + for (i = 0; init_list[i].arg; ++i) + { + if (!StrCompare(init_list[i].arg, parm)) + { + if (init_list[i].min < init_list[i].max-1) + { + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + j = init_list[i].min++; + if (!((init_list[i].ptr)[j] = fopen(parm, "r"))) + { + printf("Cannot open a %s.\n", init_list[i].arg); + exit(EXIT_FAILURE); + } + break; + } + } + } + } + if (init_list[i].arg) + { + continue; + } + + /* Initialize save filenames */ + for (i = 0; init_save[i].arg; ++i) + { + if (!StrCompare(init_save[i].arg, parm)) + { + if (init_save[i].min < init_save[i].max-1) + { + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + j = init_save[i].min++; + (init_save[i].ptr)[j] = StrDuplicate(parm); + break; + } + } + } + } + if (init_save[i].arg) + { + continue; + } + + /* Initialize the lists to read */ + for (i = 0; init_read[i].arg; ++i) + { + if (!StrCompare(init_read[i].arg, parm)) + { + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + if (init_read[i].save) + { + *init_read[i].save = StrDuplicate(parm); + } + if ((f = fopen(parm, "r"))) + { + fill_table(init_read[i].ptr, init_read[i].max, f); + fclose(f); + } + else if (!init_read[i].save) + { + printf("Cannot open the %s.\n", init_read[i].arg); + exit(EXIT_FAILURE); + } + break; + } + } + } + if (init_read[i].arg) + { + continue; + } + + /* Initialize the string parameters */ + for (i = 0; init_str[i].arg; ++i) + { + if (!StrCompare(init_str[i].arg, parm)) + { + if (!StrParam(parm, sizeof(parm), buffer, 1)) + { + *init_str[i].ptr = StrDuplicate(parm); + break; + } + } + } + if (init_str[i].arg) + { + continue; + } + } + + fclose(config); +} +/* }}} */ diff --git a/muhstik/src/lists.c b/muhstik/src/lists.c new file mode 100644 index 0000000..b24c9d1 --- /dev/null +++ b/muhstik/src/lists.c @@ -0,0 +1,363 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include + +#include "../include/lists.h" +#include "../include/string.h" +/* }}} */ +/* {{{ File functions */ +/* {{{ int occur_file(char *s, char *list) */ +int occur_file(char *s, char *list) +{ + char buffer[BIGBUF]; + register int i = 0; + FILE *f; + + if ((f = fopen(list, "r"))) + { + while (fgets(buffer, sizeof(buffer), f)) + { + if (!StrCompare(buffer, s)) + { + ++i; + } + fclose(f); + } + } + + return i; +} +/* }}} */ +/* {{{ void add_file(char *s, char *list) */ +void add_file(char *s, char *list) +{ + FILE *f; + + if (!(f = fopen(list, "a+"))) + { + return; + } + fputs(s, f); + fclose(f); +} +/* }}} */ +/* {{{ int file_length(FILE *f) */ +int file_length(FILE *f) +{ + register int i = 0; + int c = 0; + + while ((c=fgetc(f)) != EOF) + { + if (c == '\n') + { + ++i; + } + } + rewind(f); + return i; +} +/* }}} */ +/* {{{ int get_a_line(char *s, int z, FILE *f) */ +int get_a_line(char *s, int z, FILE *f) +{ + do + { + if (!fgets(s, z, f)) + { + return 1; + } + } + while (s[0]=='#' || s[0]=='[' || s[0]==10); + return 0; +} +/* }}} */ +/* }}} */ +/* {{{ Table functions */ +/* {{{ int add_table(char *toadd, char **list, int max) */ +int add_table(char *toadd, char **list, int max) +{ + register int i; + for (i = 0; i < max; ++i, ++list) + { + if (*list == NULL) + { + *list = StrDuplicate(toadd); + return i; + } + } + return -1; +} +/* }}} */ +/* {{{ int remove_table(char *torm, char **list, int max) */ +int remove_table(char *torm, char **list, int max) +{ + register int i; + for (i = 0; i < max; ++i, ++list) + { + if (*list && !StrCompare(*list, torm)) + { + free(*list); + *list = NULL; + return 0; + } + } + return 1; +} +/* }}} */ +/* {{{ void update_table(char *from, char *to, char **list, int max) */ +void update_table(char *from, char *to, char **list, int max) +{ + register int i; + for (i = 0; i < max; ++i, ++list) + { + if (*list && !StrCompare(from, *list)) + { + free(*list); + *list = StrDuplicate(to); + return; + } + } +} +/* }}} */ +/* {{{ void update_pattern_table(char *from, char *to, char **list, int max) */ +void update_pattern_table(char *from, char *to, char **list, int max) +{ + register int i; + char buffer[MEDBUF+1]; + + for (i = 0; i < max; ++i, ++list) + { + if ((*list) && (sscanf(*list, "%"MEDBUF_TXT"[^!]", buffer) == 1) && (!StrCompare(from, buffer))) + { + snprintf(buffer, sizeof(buffer), "%s%s", to, strchr(*list, '!')); + free(*list); + *list = StrDuplicate(buffer); + return; + } + } +} +/* }}} */ +/* {{{ int occur_table(char *s, char **list, int max) */ +int occur_table(char *s, char **list, int max) +{ + register int i; + int k = 0; + for (i = 0; i < max; ++i, ++list) + { + if (*list && !StrCompare(*list, s)) + { + ++k; + } + } + return k; +} +/* }}} */ +/* {{{ void fill_table(char **list, int max, FILE *f) */ +void fill_table(char **list, int max, FILE *f) +{ + register int i; + char parm[MEDBUF]; + for (i = 0; i < max && fgets(parm, sizeof(parm), f); ++i) + { + sscanf(parm, "%[^\r\n]", parm); + list[i] = StrDuplicate(parm); + } +} +/* }}} */ +/* {{{ void clear_table(char **list, int max) */ +void clear_table(char **list, int max) +{ + register int i; + for (i = 0; i < max; ++i, ++list) + { + if (*list) + { + free(*list); + *list = NULL; + } + } +} +/* }}} */ +/* {{{ int match_table(char *s, char **list, int max) */ +int match_table(char *s, char **list, int max) +{ + register int i; + char parm[MEDBUF]; + + for (i = 0; i < max; ++i, ++list) + { + if (*list && !StrParam(parm, sizeof(parm), *list, 0)) + { + if (match_pattern(parm, s)) + { + return i; + } + } + } + + return -1; +} +/* }}} */ +/* }}} */ +/* {{{ Queue functions */ +/* {{{ int add_gen_queue(void *d, cmp_fun *cmp, queue *list) */ +int add_gen_queue(void *d, cmp_fun *cmp, queue *list) +{ + queue s; + queue p1 = NULL; + queue p2 = NULL; + + s = xmalloc(sizeof(struct st_list)); + s->data = d; + s->next = NULL; + + if (*list == NULL) + { + *list = s; + return 0; + } + + for (p2 = *list; p2; p2 = p2->next) + { + if (cmp && !cmp(p2->data, d)) + { + free(s->data); + free(s); + return 1; + } + p1 = p2; + } + p1->next = s; + return 0; +} +/* }}} */ +/* {{{ inline int add_queue(char *s, queue *list) */ +inline int add_queue(char *s, queue *list) +{ + return add_gen_queue(StrDuplicate(s), NULL, list); +} +/* }}} */ +/* {{{ inline int uniq_add_queue(char *s, queue *list) */ +inline int uniq_add_queue(char *s, queue *list) +{ + return add_gen_queue(StrDuplicate(s), StrCompare, list); +} +/* }}} */ +/* {{{ int remove_queue(char *d, queue *list) */ +int remove_queue(char *d, queue *list) +{ + queue p1 = NULL; + queue p2 = NULL; + + if (*list == NULL) + { + return 1; + } + + if (!StrCompare((*list)->data, d)) + { + free_cell(list); + return 0; + } + + for (p2 = *list; p2; p2 = p2->next) + { + if (!StrCompare(p2->data, d)) + { + p1->next = p2->next; + free(p2->data); + free(p2); + return 0; + } + p1 = p2; + } + return 1; +} +/* }}} */ +/* {{{ void update_queue(char *old, char *new, queue *list) */ +void update_queue(char *old, char *new, queue *list) +{ + queue p; + + for (p = *list; p; p = p->next) + { + if (!StrCompare(p->data, old)) + { + free(p->data); + p->data = StrDuplicate(new); + } + } +} +/* }}} */ +/* {{{ int occur_queue(char *s, queue *list) */ +int occur_queue(char *s, queue *list) +{ + queue p; + int k = 0; + + for (p = *list; p; p = p->next) + { + if (!StrCompare(p->data, s)) + { + ++k; + } + } + + return k; +} +/* }}} */ +/* }}} */ +/* {{{ Cell functions */ +/* {{{ void free_cell(queue *list) */ +void free_cell(queue *list) +{ + queue tmp; + + if (*list == NULL) + { + return; + } + + tmp = (*list)->next; + free((*list)->data); + free(*list); + *list = tmp; +} +/* }}} */ +/* {{{ void rotate_cell(queue *list) */ +void rotate_cell(queue *list) +{ + queue cell; + void *data; + + cell = (*list)->next; + data = (*list)->data; + free(*list); + *list = cell; + add_gen_queue(data, NULL, list); +} +/* }}} */ +/* }}} */ +/* {{{ void clear_queue(queue *list) */ +void clear_queue(queue *list) +{ + while (*list) + { + free_cell(list); + } +} +/* }}} */ diff --git a/muhstik/src/load.c b/muhstik/src/load.c new file mode 100644 index 0000000..ecc3852 --- /dev/null +++ b/muhstik/src/load.c @@ -0,0 +1,316 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2003, roadr (bigmac@home.sirklabs.hu) */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include + +#include "../include/string.h" +#include "../include/lists.h" +#include "../include/print.h" +#include "../include/load.h" +/* }}} */ +/* {{{ External variables */ +extern clone_t *cl[]; +extern config_t conf; +extern const char *strtype[]; +extern pthread_mutex_t mutex[]; +/* }}} */ +/* {{{ randget() */ +void randget(clone_t *clone, char **dest, size_t destlen, int uselist, char **list, int max) +{ + register unsigned int i; /* ``unsigned'' is not needed, stops a warning when compiled with -Wsign-compare */ + char *tmp; + + /* Alphabet used to make random words */ + static char charset[] = "abcdefghijklmnopqrstuvwxyz"; + static size_t len; + + len = strlen(charset); + tmp = (char *)xmalloc(destlen + 1); + + if (uselist && list[0]) + { + for (i = 0; i < MAX_NICKS && list[i]; ++i) {} + StrCopy(tmp, list[random() % i], destlen + 1); + } + else + { + for (i = 0; i < destlen; ++i) + { + tmp[i] = charset[random() % len]; + } + } + tmp[destlen] = 0; + *dest = tmp; +} +/* }}} */ +/* {{{ Loading functions */ +int load_clone(clone_t *go) +{ + clone_t **pcl; + register int id; + + /* Get a free entry in cl[] */ + for (id = 0, pcl = cl; *pcl; ++id, ++pcl) + { + if (id == MAX_CLONES-1) + { + return 1; + } + } + + /* Allocate memory for a new clone structure */ + if (!(*pcl = (clone_t *)malloc(sizeof(clone_t)))) + { + print_error("malloc"); + return 1; + } + + /* Copy the current clone parameters in it */ + memcpy(*pcl, go, sizeof(clone_t)); + + /* The id is useful to free the structure on exit */ + (*pcl)->id = id; + + /* Launch the clone */ + if (main_clone(*pcl)) + { + free_clone(*pcl); + } + + return 0; +} + +int load_host(int t, char *host, int proxy_port, char *server, int server_port, char *pass, char *ident, char *save, int mode) +{ + clone_t go; + + /* Initialize the current clone structure */ + memset(&go, 0, sizeof(clone_t)); + memset(&go.buffer, 0, sizeof(go.buffer)); + memset(&go.lastbuffer, 0, sizeof(go.lastbuffer)); + go.sock = -1; + go.type = t; + go.mode = mode; + + if (go.type != NOSPOOF) + { + go.proxy = StrDuplicate(host); + go.proxy_port = proxy_port; + } + + go.server = StrDuplicate(server); + go.server_port = server_port; + go.server_pass = StrDuplicate(pass); + go.server_ident = StrDuplicate(ident); + go.save = StrDuplicate(save); + + /* Make the clone's {nick,ident,realname} from a wordlist or randomly. */ + randget(&go, &go.nick, conf.nick_length, conf.use_wordlist, conf.nicks, MAX_NICKS); + randget(&go, &go.ident, conf.ident_length, 1, conf.idents, MAX_IDENTS); + randget(&go, &go.real, conf.real_length, 1, conf.names, MAX_NAMES); + + return load_clone(&go); +} + +void loadlist(int t, FILE *hosts, FILE *servers, char *save) +{ + int ret; + int i = 0; + int k = 0; + int l = 0; + int max_server = 0; + int max_proxys = 0; + char server[MEDBUF+1]; + char *serv = NULL; + char *pass = NULL; + char *ident = NULL; + int server_port; + char proxy[MEDBUF+1]; + int proxy_port; + char buffer[MEDBUF+1]; + char parm[MINIBUF]; + + if (!conf.wait_socks && hosts) + { + max_proxys = file_length(hosts); + } + + while (1) + { + if (i == 0) + { + /* Get the next server on the current server list */ + if (!fgets(buffer, sizeof(buffer), servers)) + { + return; + } + switch (sscanf(buffer, "%"MEDBUF_TXT"[^:\r\n]:%d %d", server, &server_port, &max_server)) + { + default: + print(1, 0, 0, "No line to read"); + return; + case 1: + print(1, 0, 0, "%s: server error (host:port)", server); + return; + case 2: + print(1, 0, 0, "%s: server error (no max)", server); + return; + case 3: + print(1, 3, 0, "%s server: %s:%d [max=%d]", strtype[t], server, server_port, max_server); + + if (!StrParam(parm, sizeof(parm), buffer, 2)) + { + pass = StrDuplicate(parm); + } + + if (!StrParam(parm, sizeof(parm), buffer, 3)) + { + ident = StrDuplicate(parm); + } + + if (t != NOSPOOF && conf.rewind_socks) + { + rewind(hosts); + } + + break; + } + if (t == NOSPOOF && max_server <= 0) + { + print(1, 0, 0, "%s: server error (max must be > 0)", server); + return; + } + serv = StrDuplicate(server); + } + + /* Get the next proxy on the current proxy list, if needed */ + if (t != NOSPOOF && k == 0) + { + while (get_a_line(buffer, sizeof(buffer), hosts)) + { + if (conf.wait_socks) + { + sleep(2); + } + else + { + return; + } + } + sscanf(buffer, "%"MEDBUF_TXT"s", proxy); + if (t != VHOST) + { + if (strchr(proxy,':')) + { + sscanf(proxy, "%*[^:]:%d", &proxy_port); /* XXX: What if ``(t == VHOST)''? -- Leon */ + sscanf(proxy, "%[^:]", proxy); + } + else switch (t) /* set a default port */ + { + case CISCO: + proxy_port = 23; + break; + case SOCKS4: + case SOCKS5: + proxy_port = 1080; + break; + case PROXY: + print(1, 0, 0, "%s: proxy error (host:port)", proxy); + proxy_port = 8080; + break; + } + } + } + + while ((max_server <= 0 || i < max_server) && (t == NOSPOOF || k < conf.max_clones)) + { + pthread_mutex_lock(&mutex[0]); + ret = load_host(t, proxy, proxy_port, serv, server_port, pass, ident, save, M_NORMAL); + pthread_mutex_unlock(&mutex[0]); + if (ret) + { + pthread_exit(0); + } + + ++i, ++k, ++l; + + if (l == conf.group && conf.load > 0) + { + usleep(conf.load * 1000), l = 0; + } + } + + if (i == max_server) + { + i = 0; + } + if (k == conf.max_clones) + { + k = 0; + } + + if (!conf.wait_socks && hosts && max_server <= 0) + { + if (i == max_proxys * conf.max_clones) + { + i = 0; + } + } + } +} + +void load1(int t, FILE *hosts, FILE *servers, char *save) +{ + loadlist(t, hosts, servers, save); + if (conf.verbose) + { + print(1, 0, 0, "all %ss loaded.", strtype[t]); + } +} + +void load2(int t, FILE **p1, FILE **p2, char **p3) +{ + FILE **fhost; + FILE **fserv; + char **csave; + for (fhost = p1, fserv = p2, csave = p3; *fhost; ++fhost, ++fserv, ++csave) + { + load1(t, *fhost, *fserv, *csave); + } +} + +void *load_all(void *arg) +{ + int i; + + for (i = 0; i < PROXYS; ++i) + { + if (conf.h[i][0]) + { + load2(i, conf.h[i], conf.s[i], conf.g[i]); + } + } + + if (conf.direct[0]) + { + load1(NOSPOOF, NULL, conf.direct[0], NULL); + } + + return NULL; +} +/* }}} */ diff --git a/muhstik/src/mass.c b/muhstik/src/mass.c new file mode 100644 index 0000000..f159c97 --- /dev/null +++ b/muhstik/src/mass.c @@ -0,0 +1,277 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include + +#include "../include/mass.h" +#include "../include/control.h" +#include "../include/net.h" +#include "../include/string.h" +#include "../include/lists.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External Variables */ +extern char *channel[]; +extern char *broth[]; +extern clone_t *cl[]; +extern config_t conf; +extern queue names_op[]; +extern queue names[]; +/* }}} */ +/*{{{ Global variables */ +int mass_ch; +int mass_mode; +char *mass_reas; +char *mass_server; +/* }}} */ +/* }}} */ +/* {{{ Massmode functions */ +/* {{{ multimode() */ +void multimode(clone_t *clone, char *chan, char *sign, int n, char *nicks, int uniq) +{ + char modes[MINIBUF]; + int i; + + memset(modes, 0, sizeof(modes)); + + StrCat(modes, " ", sizeof(modes)); + StrCat(modes, sign, sizeof(modes)); + for (i = 0; i < n; ++i) + { + StrCat(modes, "o", sizeof(modes)); + } + + if (uniq) + { + send2server(clone, "MODE %s%s%s\n", chan, modes, nicks); + } + else + { + send_sock(clone->sock, "MODE %s%s%s\n", chan, modes, nicks); + } +} +/* }}} */ +/* {{{ (de)opping and kicking functions */ +/* TODO: Deop +{h,a,q}, if possible. */ +void massdeop(clone_t *clone, int chid) +{ + int i; + int n = 0; + char nicks[BIGBUF]; + queue *list; + + memset(nicks, 0, sizeof(nicks)); + list = &names_op[chid]; + + for (i = 0; *list && i < conf.multi_deop; ++i) + { + if (is_enemy((*list)->data)) + { + StrCat(nicks, " ", sizeof(nicks)); + StrCat(nicks, (*list)->data, sizeof(nicks)); + ++n; + } + rotate_cell(list); + } + + if (n > 0) + { + multimode(clone, channel[chid], "-", n, nicks, 1); + } +} + +void massop(clone_t *clone, int chid) +{ + register int i; + register int j; + clone_t **pcl; + char nicks[BIGBUF]; + + memset(nicks, 0, sizeof(nicks)); + + for (i = j = 0, pcl = cl; j < conf.multi_op && i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl) != clone && (*pcl)->online && (*pcl)->needop[chid]) + { + (*pcl)->needop[chid] = 0; + StrCat(nicks, " ", sizeof(nicks)); + StrCat(nicks, (*pcl)->nick, sizeof(nicks)); + ++j; + } + } + + if (j > 0) + { + multimode(clone, channel[chid], "+", j, nicks, 0); + } +} + +void force_massop() +{ + register int i; + char **pt; + clone_t **pcl; + clone_t *one; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && !(*pcl)->restricted && !(*pcl)->op[mass_ch] && (one = getop(mass_ch))) + { + op(one, mass_ch, (*pcl)->nick); + } + } + + for (i = 0, pt = broth; i < MAX_BROTHERS; ++i, ++pt) + { + if ((*pt) && (one = getop(mass_ch))) + { + op(one, mass_ch, *pt); + } + } +} + +void _masskick(clone_t *clone, int chid, queue **list) +{ + int n; + char buffer[BIGBUF]; + + memset(buffer, 0, sizeof(buffer)); + + for (n = 0; **list && n < conf.multi_kick; ++n) + { + if (n > 0) + { + StrCat(buffer, ",", BIGBUF); + } + StrCat(buffer, (**list)->data, BIGBUF); + free_cell(*list); + } + + kick(clone, chid, buffer, mass_reas ? mass_reas : NULL, 0); +} + +void _massdeop(clone_t *clone, int chid, queue **list) +{ + int i; + char nicks[BIGBUF]; + + memset(nicks, 0, sizeof(nicks)); + + for (i = 0; **list && i < conf.multi_deop; ++i) + { + StrCat(nicks, " ", sizeof(nicks)); + StrCat(nicks, (**list)->data, sizeof(nicks)); + free_cell(*list); + } + + if (i > 0) + { + multimode(clone, channel[chid], "-", i, nicks, 0); + } +} +/* }}} */ +/* {{{ massdo()ing functions */ +void massdo(queue *list, int chid, int mode) +{ + int id; + clone_t **pcl; + int n; + + for (n = 0; *list && n < 10; ++n) + { + for (id = 0, pcl = cl; *list && id < MAX_CLONES; ++id, ++pcl) + { + if (is_op(*pcl, chid)) + { + switch (mode) + { + case MK: + _masskick(*pcl, chid, &list); + break; + case MD: + _massdeop(*pcl, chid, &list); + break; + case MKB: + kickban(*pcl, (*list)->data); + free_cell(list); + break; + } + (*pcl)->lastsend = time(NULL); + } + } /* bracket might be after the `usleep()' -- Leon */ + usleep(500000); + } +} + +void takeover(queue *list) +{ + register int i; + clone_t **pcl; + + for (i = 0, pcl = cl; *list && i < MAX_CLONES; ++i, ++pcl) + { + if ((*pcl) && (*pcl)->online && (*pcl)->server == mass_server) + { + send_irc_nick(*pcl, (*list)->data); + free_cell(list); + } + } +} + +void *init_massdo(int chid, int mode) +{ + queue list1 = NULL; + queue list2 = NULL; + queue plist; + + for (plist = names_op[chid]; plist; plist = plist->next) + { + if (mode == TO || is_enemy(plist->data)) + { + add_queue(plist->data, &list1); + } + } + for (plist = names[chid]; plist; plist = plist->next) + { + if (mode != TO && mode != MD && is_enemy(plist->data)) + { + add_queue(plist->data, &list2); + } + } + + switch (mode) + { + case MKB: + case MK: + massdo(&list1, chid, mode); + massdo(&list2, chid, mode); + break; + case MD: + massdo(&list1, chid, mode); + break; + case TO: + takeover(&list1); + break; + } + + clear_queue(&list1); + clear_queue(&list2); + + return NULL; +} +/* }}} */ +/* }}} */ diff --git a/muhstik/src/muhstik.c b/muhstik/src/muhstik.c new file mode 100644 index 0000000..0148257 --- /dev/null +++ b/muhstik/src/muhstik.c @@ -0,0 +1,469 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../include/muhstik.h" +#include "../include/clone.h" +#include "../include/proxy.h" +#include "../include/control.h" +#include "../include/print.h" +#include "../include/load.h" +#include "../include/string.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External variables */ +extern clone_t *cl[]; +extern const char *strtype[]; +extern char *channel[]; +extern pthread_mutex_t mutex[]; +extern pthread_attr_t attr; +extern int mass_ch; +extern int maxsock; +extern config_t conf; +extern char *hostname; +/* }}} */ +/* {{{ Global Variables */ +time_t t0; +pid_t pid; +/* }}} */ +/* }}} */ +/* {{{ save_list() */ +void save_list(char *filename, char **list, int max) +{ + int i; + FILE *f; + + if ((f = fopen(filename, "w"))) + { + for (i = 0; i < max; ++i) + { + if (list[i]) + { + fprintf(f, "%s\n", list[i]); + } + } + fclose(f); + } +} +/* }}} */ +/* {{{ main() functions */ +void main_exit() +{ + if (conf.userlist[AOP]) + { + save_list(conf.userlist[AOP], conf.aop, MAX_AOPS); + } + if (conf.userlist[JUPE]) + { + save_list(conf.userlist[JUPE], conf.jupe, MAX_JUPES); + } + if (conf.userlist[PROT]) + { + save_list(conf.userlist[PROT], conf.prot, MAX_PROTS); + } + if (conf.userlist[SHIT]) + { + save_list(conf.userlist[SHIT], conf.shit, MAX_SHITS); + } + + exit(EXIT_SUCCESS); +} + +void segfault(int sig) +{ + puts("Segmentation fault: blog it."); + exit(EXIT_FAILURE); +} + +int main(int argc, char **argv) +{ + pthread_t tid; + + printf("muhstik %s, Copyright (C) 2001-2003, Louis Bavoil\n", VERSION); + printf(" Copyright (C) 2009-2011, Leon Kaiser\n"); + printf("This is free software. See the LICENSE file for more details.\n"); + + if (argc < 2) + { + printf("Usage: %s \n", argv[0]); + exit(EXIT_FAILURE); + } + + signal(SIGTTIN, SIG_IGN); + signal(SIGTTOU, SIG_IGN); + signal(SIGALRM, SIG_IGN); + signal(SIGPIPE, SIG_IGN); + signal(SIGUSR1, SIG_IGN); + signal(SIGSEGV, &segfault); + signal(SIGINT, SIG_IGN); + + t0 = time(NULL); + pid = getpid(); + srandom(pid); + + init_options(argv); + check_options(); + init_threads(); + init_hostname(); + + if (conf.motd) + { + print_motd(1); + } + if (conf.help) + { + usage(1); + } + + if (pthread_create(&tid, &attr, load_all, NULL)) + { + puts("pthread_create() failed"); + main_exit(); + } + + if (conf.batch) + { + read_batch(); + } + + main_loop(); + + return 0; +} +/* }}} */ +/* {{{ read_batch() */ +void read_batch() +{ + FILE *f; + char buffer[BIGBUF]; + + if (!(f = fopen(conf.batch, "r"))) + { + print(1, 0, 0, "Cannot open the file `%s.'", conf.batch); + return; + } + while (1) + { + if (!fgets(buffer, sizeof(buffer), f)) + { + return; + } + interpret(buffer, 0); + } + fclose(f); +} +/* }}} */ +/* {{{ sock2clone() */ +clone_t *sock2clone(int sock) +{ + register int i; + clone_t **pcl; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl && (*pcl)->sock == sock) + { + return *pcl; + } + } + + return NULL; +} +/* }}} */ +/* {{{ init_gateway() */ +int init_gateway(clone_t *clone) +{ + int ret = EXIT; + + clone->host = clone->server; + clone->port = clone->server_port; + + switch (clone->type) + { + case SOCKS4: + ret = init_socks4(clone); + break; + case SOCKS5: + ret = init_socks5(clone); + break; + case PROXY: + ret = init_proxy(clone); + break; + case CISCO: + ret = WAIT_CISCO; + break; + } + return ret; +} +/* }}} */ +/* {{{ Read/write functions */ +void write_ready(int sok) +{ + clone_t *clone; + unsigned int len = sizeof(int); + + if ((clone = sock2clone(sok))) + { + if (getsockopt(sok, SOL_SOCKET, SO_ERROR, &errno, &len)) + { + print_error("getsockopt"); + clone->status = EXIT; + return; + } + if (errno != 0) + { + print_error("connect"); + clone->status = EXIT; + return; + } + if (clone->type != NOSPOOF) + { + print(1, 0, 0, "%s connect()ed: host=%s server=%s", strtype[clone->type], clone->proxy, clone->server); + } + else + { + print(1, 0, 0, "direct connect()ed: server=%s", clone->server); + } + + if (clone->type == NOSPOOF || clone->type == VHOST) + { + clone->status = init_irc(clone); + } + else + { + clone->status = init_gateway(clone); + } + + return; + } +} + +int read_irc(clone_t *clone) +{ + char *buf; + char *line; + int i; + int n; + + i = strlen(clone->buffer); + n = sizeof(clone->buffer) - 1 - i; + + if (recv(clone->sock, clone->buffer + i, n, 0) <= 0) + { + buf = clone->lastbuffer; + if (buf[strlen(buf)-1] != '\n') + { + StrCat(buf, "\n", sizeof(clone->lastbuffer)); + } + if (parse_deco(clone, buf)) + { + return EXIT; + } + return WAIT_CONNECT; + } + else + { + buf = clone->buffer; + while (strchr(buf,'\n')) + { + line = strsep(&buf, "\r\n"); + if (buf == NULL) + { + buf = ""; + } + snprintf(clone->lastbuffer, sizeof(clone->lastbuffer), "%s\n", line); + parse_irc(clone, clone->lastbuffer); + } + StrCopy(clone->lastbuffer, clone->buffer, sizeof(clone->lastbuffer)); + StrCopy(clone->buffer, buf, sizeof(clone->buffer)); + } + if (conf.no_restricted && clone->restricted) + { + return EXIT; + } + return WAIT_IRC; +} + +void read_stdin() +{ + char buffer[BIGBUF]; + + memset(buffer, 0, sizeof(buffer)); + if (!fgets(buffer, sizeof(buffer), stdin)) + { + return; + } + + interpret(buffer, 1); +} + +void read_ready(int sok) +{ + clone_t *clone; + int ret = EXIT; + + if (sok == 0) + { + read_stdin(); + return; + } + + if ((clone = sock2clone(sok))) + { + switch (clone->status) + { + case WAIT_SOCKS4: + ret = read_socks4(clone); + break; + case WAIT_SOCKS5_1: + ret = init_read_socks5(clone); + break; + case WAIT_SOCKS5_2: + ret = read_socks5(clone); + break; + case WAIT_PROXY: + ret = read_proxy(clone); + break; + case WAIT_CISCO: + ret = read_cisco(clone); + break; + case WAIT_IRC: + ret = read_irc(clone); + break; + } + + if (ret == WAIT_IDENT) + { + ret = init_irc(clone); + } + + clone->status = ret; + return; + } +} +/* }}} */ +/* {{{ fill_fds() */ +void fill_fds(fd_set *rfds, fd_set *wfds) +{ + clone_t **pcl; + register int i; + time_t now; + + now = time(NULL); + FD_SET(0, rfds); + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl) + { + if ((*pcl)->rejoin_time > 0) + { + if (!channel[mass_ch]) + { + (*pcl)->rejoin_time = 0; + } + else if ((*pcl)->rejoin_time <= now) + { + join(*pcl, channel[mass_ch]); + (*pcl)->rejoin_time = 0; + } + } + if ((*pcl)->alarm > 0) + { + if ((*pcl)->alarm > now) + { + continue; + } + (*pcl)->alarm = 0; + } + switch ((*pcl)->status) + { + case EXIT: + /* Connection closed */ + free_clone(*pcl); + break; + case WAIT_CONNECT: + if (now-(*pcl)->start > conf.timeout) + { + /* Connection timeout */ + free_clone(*pcl); + break; + } + FD_SET((*pcl)->sock, wfds); + break; + default: + FD_SET((*pcl)->sock, rfds); + break; + } + } + } +} +/* }}} */ +/* {{{ main_loop() */ +void main_loop() +{ + fd_set rfds; + fd_set wfds; + register int sok; + struct timeval tv; + + while (1) + { + FD_ZERO(&rfds); + FD_ZERO(&wfds); + + pthread_mutex_lock(&mutex[0]); + fill_fds(&rfds, &wfds); + pthread_mutex_unlock(&mutex[0]); + + tv.tv_sec = 1; + tv.tv_usec = 0; + + if (select(maxsock + 1, &rfds, &wfds, NULL, &tv) == -1) + { + print_error("select"); + main_exit(); + } + + for (sok = 0; sok <= maxsock; ++sok) + { + if (FD_ISSET(sok, &wfds)) + { + pthread_mutex_lock(&mutex[0]); + write_ready(sok); + pthread_mutex_unlock(&mutex[0]); + } + } + + for (sok = maxsock; sok >= 0; --sok) + { + if (FD_ISSET(sok, &rfds)) + { + pthread_mutex_lock(&mutex[0]); + read_ready(sok); + pthread_mutex_unlock(&mutex[0]); + } + } + } +} +/* }}} */ diff --git a/muhstik/src/net.c b/muhstik/src/net.c new file mode 100644 index 0000000..fc91ec2 --- /dev/null +++ b/muhstik/src/net.c @@ -0,0 +1,205 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include +#include + +#include "../include/net.h" +#include "../include/proxy.h" +#include "../include/string.h" +#include "../include/print.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ Global Variables */ +int maxsock; +/* }}} */ +/* }}} */ +/* {{{ Hard-wired, compile-time constants */ +#ifndef INADDR_NONE +#define INADDR_NONE -1 +#endif + +#define MAX_HOSTNAME 256 +/* }}} */ +/* {{{ lookup_*() */ +/* ``he->h_addrtype == AF_INET6`` */ +int lookup_host(char *host, struct in_addr *addr) +{ + struct hostent *he; + + if ((he = gethostbyname(host)) == NULL) + { + return 1; /* In ``telnet.c'' it was ``return 0;''... -- Leon */ + } + + memcpy(addr, he->h_addr, he->h_length); + return 0; /* In ``telnet.c'' it was ``return 1;''... -- Leon */ +} + +int lookup_ip(char *host, struct in_addr *addr) +{ /* XXX: Does this support IPv6 IPs? -- Leon */ + /* Use inet_addr for portability to Solaris */ + /* Fuck Solaris -- Leon */ + return (((*addr).s_addr = inet_addr(host)) == INADDR_NONE); +} +/* }}} */ +/* {{{ DNS-related functions */ +int resolve(char *host, struct in_addr *addr) +{ + return (lookup_host(host,addr) && lookup_ip(host,addr)); +} + +void host2ip(char *s, char *host, int size) +{ /* TODO: Support IPv6 IPs, I guess. -- Leon */ + struct in_addr addr; + u_char *p; + + if (resolve(host, &addr)) + { + StrCopy(s, host, size); + return; + } + p = (u_char *) &addr.s_addr; + snprintf(s, size, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); +} +/* }}} */ +/* {{{ net_*() */ +/* {{{ net_set-type shit */ +void net_set_socket_options(int sock) +{ + int sw; + sw = 1; + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &sw, sizeof(sw)); + sw = 1; + setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (void *) &sw, sizeof(sw)); + sw = 0; + setsockopt(sock, SOL_SOCKET, SO_LINGER, (void *) &sw, sizeof(sw)); +} + +void set_nonblocking(int sock) +{ + int opts; + + opts = fcntl(sock, F_GETFL); + if (opts < 0) + { + print_error("fcntl(F_GETFL)"); + exit(EXIT_FAILURE); + } + + opts = (opts | O_NONBLOCK); + if (fcntl(sock, F_SETFL, opts) < 0) + { + print_error("fcntl(F_SETFL)"); + exit(EXIT_FAILURE); + } +} +/* }}} */ +/* {{{ net_store*() */ +netstore *net_store_new() +{ + netstore *ns; + ns = xmalloc(sizeof(netstore)); + memset(ns, 0, sizeof(netstore)); + return ns; +} + +void net_store_destroy(netstore *ns) +{ + if (ns->ip6_hostent) + { + freeaddrinfo(ns->ip6_hostent); + } + free(ns); +} +/* }}} */ +/* {{{ net_socket() */ +int net_socket(int *sock, int type) +{ + if ((*sock = socket(type, SOCK_STREAM, IPPROTO_TCP)) == -1) + { + return 1; + } + maxsock = max(*sock, maxsock); + net_set_socket_options(*sock); + set_nonblocking(*sock); + return 0; +} +/* }}} */ +/* {{{ Resloving, connecting, binding functions */ +int net_resolve(netstore *ns, char *hostname, unsigned short port) +{ + struct addrinfo hints; + char portstring[MAX_HOSTNAME]; + + snprintf(portstring, MAX_HOSTNAME, "%d", port); + memset(&hints, 0, sizeof (struct addrinfo)); + hints.ai_family = PF_UNSPEC; /* support IPv6 and IPv4 */ + hints.ai_flags = AI_CANONNAME; + hints.ai_socktype = SOCK_STREAM; + + return getaddrinfo(hostname, port ? portstring : NULL, &hints, &ns->ip6_hostent); +} + +int net_connect(netstore *ns, int *sock, char *vhost) +{ + struct addrinfo *res; + struct addrinfo *res0; + + res0 = ns->ip6_hostent; + for (res = res0; res; res = res->ai_next) + { + switch (res->ai_family) + { + case AF_INET: + case AF_INET6: + if (net_socket(sock, res->ai_family)) + { + return -1; + } + + if (vhost && init_vhost(*sock, vhost)) + { + return -1; + } + + return connect(*sock, res->ai_addr, res->ai_addrlen); + } + } + return -1; +} + +int net_bind(netstore *ns, int sock) +{ + return bind(sock, ns->ip6_hostent->ai_addr, ns->ip6_hostent->ai_addrlen); +} +/* }}} */ +/* }}} */ +/* {{{ send_sock() */ +void send_sock(int sock, const char *fmt, ...) +{ + char buffer[BIGBUF]; + int n; + va_list ap; + + va_start(ap, fmt); + n = vsnprintf(buffer, sizeof(buffer), fmt, ap); + va_end(ap); + + send(sock, buffer, strlen(buffer), 0); +} +/* }}} */ diff --git a/muhstik/src/print.c b/muhstik/src/print.c new file mode 100644 index 0000000..2b151bd --- /dev/null +++ b/muhstik/src/print.c @@ -0,0 +1,500 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include +#include +#include +#include + +#include "../include/print.h" +#include "../include/string.h" +#include "../include/lists.h" +#include "../include/clone.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External Variables */ +extern config_t conf; +extern int mute; +extern char *channel[]; +extern char *broth[]; +extern clone_t *cl[]; +extern const char *strtype[]; +extern char *op_nick; +extern int t0; +extern pthread_mutex_t mutex[]; +/* }}} */ +/* }}} */ +/* {{{ print_*() */ +inline void print_error(char *prefix) +{ + print(1, 0, 0, "%s: %s", prefix, strerror(errno)); +} + +void print_irc(char *buffer, int color, int sock) +{ + static char *color_codes[] = { "", "\026", "\0032", "\0037", "\0035", "\00314" }; + + send(sock, color_codes[color], strlen(color_codes[color]), 0); + send(sock, buffer, strlen(buffer), 0); +} + +void print_privmsg(char *buffer, int color, int dest) +{ + char tosend[BIGBUF]; + dest = -dest-2; + snprintf(tosend, sizeof(tosend), "PRIVMSG %s :%s", op_nick, buffer); + print_irc(tosend, color, cl[dest]->sock); +} + +void print_console(char *buffer, int ret, int color, int dest) +{ + int len; + static char *color_term[] = { "\033[0;0m", "\033[0;35m", "\033[0;34m", "\033[0;1;1m", "\033[0;31m", "" }; + + if (!conf.nocolor) + { + len = strlen(buffer) - 1; + if (buffer[len] == '\n') + { + ret = 1; + } + if (ret) + { + buffer[len] = 0; + } + printf("%s", color_term[color]); + } + + printf("%s", buffer); + + if (!conf.nocolor) + { + printf("%s", color_term[0]); + if (ret) + { + printf("\n"); + } + } +} + +void print(int ret, int color, int dest, const char *fmt, ...) +{ + char buffer[BIGBUF]; + va_list ap; + + if (dest == -1) + { + return; + } + + va_start(ap, fmt); + vsnprintf(buffer, sizeof(buffer), fmt, ap); + va_end(ap); + + if (ret) + { + StrCat(buffer, "\n", sizeof(buffer)); + } + + if (dest <= -2) + { + print_privmsg(buffer, color, dest); + return; + } + + if (!mute) + { + pthread_mutex_lock(&mutex[1]); + print_console(buffer, ret, color, dest); + pthread_mutex_unlock(&mutex[1]); + } +} + +void print_prefix(clone_t *clone, int color, int dest) +{ + print(0, color, dest, "[%s;%s;%s] ", clone->nick, clone->proxy ? clone->proxy : "", clone->server); +} + +void print_desc(int out, char *com, char *desc) +{ + register int i; + + print(0, 0, out, "%s", com); + for (i = strlen(com); i < LEN_TAB; ++i) + { + print(0, 0, out, " "); + } + print(1, 0, out, "%s", desc); +} + +void print_line(int out) +{ + register int i; + + if (out >= 0) + { + for (i = 0; i < LEN_LINE; ++i) + { + print(0, 0, out, "-"); + } + } + print(0, 0, out, "\n"); +} + +void print_motd(int out) +{ + FILE *f; + char buffer[BIGBUF]; + + if ((f = fopen(conf.motd, "r"))) + { + while (fgets(buffer, sizeof(buffer), f)) + { + print(0, 0, out, "%s", buffer); + } + fclose(f); + } +} +/* }}} */ +/* {{{ usage() */ +void usage(int out) +{ + char *(*p)[2]; + static char *desc_general[][2] = + { + { "help or ?", "print this help" }, + { STATUS, "print status {uptime,nicks,channels,users}" }, + { NULL, NULL } + }; + static char *desc_actions[][2] = + { + { "join", "JOIN or reJOIN a channel" }, + { "part", "PART a channel" }, + { "quit", "QUIT IRC and shut down the bot" }, + { "privmsg", "send a message or a CTCP to a nick or a channel" }, + { NICKS, "change all clone nicks" }, + { KICKBAN, "kickban a nick from a channel" }, + { ECHO, "make all the clones repeat what one nick says" }, + { TAKEOVER, "collide nicks on different servers" }, + { SELECT, "make one clone send something to IRC" }, + { NULL, NULL } + }; + static char *desc_modes[][2] = + { + { AGGRESS, "deop enemys actively and kick them on privmsg" }, + { PEACE, "don't automatically deop enemies" }, + { RANDOM, "use the wordlist to set the nicks" }, + { MUTE, "stop writing to stdout" }, + { NULL, NULL } + }; + static char *desc_env[][2] = + { + { NICKLIST, "change the active wordlist" }, + { CHANKEY, "set a key to be used when reJOINing a +k channel" }, + { LOAD, "load a clone dynamically" }, + { ADDPROT "/" RMPROT, "set/unset a protected nick" }, + { ADDJUPE "/" RMJUPE, "add/remove a nick to/from the jupe list" }, + { ADDOP "/" RMOP, "add/remove a pattern to/from the aop list" }, + { ADDSHIT "/" RMSHIT, "add/remove a pattern to/from the shitlist" }, + { ADDSCAN "/" RMSCAN, "set/unset a scan on JOIN" }, + { NULL, NULL } + }; + + print(1, 0, out, "Available commands:"); + print_line(out); + for (p = desc_general; **p; ++p) + { + print_desc(out, (*p)[0], (*p)[1]); + } + + print(1, 0, out, "\n- Actions:"); + for (p = desc_actions; **p; ++p) + { + print_desc(out, (*p)[0], (*p)[1]); + } + + print(1, 0, out, "%s, %s, %s, %s, %s: mass{op,KICK,KICKban,deop,unban}", MASSOP, MASSKICK, MASSKICKBAN, MASSDEOP, MASSUNBAN); + print(1, 0, out, "{KICK,MODE,TOPIC}: IRC protocol"); + + print(1, 0, out, "\n- Modes:"); + for (p = desc_modes; **p; ++p) + { + print_desc(out, (*p)[0], (*p)[1]); + } + + print(1, 0, out, "\n- Environment:"); + for (p = desc_env; **p; ++p) + { + print_desc(out, (*p)[0], (*p)[1]); + } + + print_line(out); +} +/* }}} */ +/* {{{ print_uptime() */ +void print_uptime(int out) +{ + int uptime; + uptime = time(NULL) - t0; + print(1, 0, out, "muhstik v. %s, uptime: %d days, %02d:%02d:%02d", VERSION, uptime/86400, (uptime/3600)%24, (uptime/60)%60, uptime%60); +} +/* }}} */ +/* {{{ nofclones() */ +int nofclones() +{ + register int i; + int k = 0; + clone_t **pcl; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl && (*pcl)->online) + { + ++k; + } + } + for (i = 0; i < MAX_BROTHERS; ++i) + { + if (broth[i]) + { + ++k; + } + } + return k; +} +/* }}} */ +/* {{{ is_empty_*() booleans */ +int is_empty_str(char **list, int max) +{ + register int i; + + for (i = 0; i < max; ++i, ++list) + { + if (*list) + { + return 0; + } + } + return 1; +} + +int is_empty_scan(clone_t **list, int max) +{ + register int i; + for (i = 0; i < max; ++i, ++list) + { + if (*list && (*list)->scan) + { + return 0; + } + } + return 1; +} +/* }}} */ +/* {{{ print_nicks() */ +void print_nicks(int out) +{ + char nicks[BIGBUF]; + char **p; + clone_t **pcl; + register int i; + + if (!(i = nofclones())) + { + print(1, 0, out, "- no clones online"); + return; + } + + print(1, 0, out, "- %d clones online:", i); + + memset(nicks, 0, sizeof(nicks)); + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (*pcl && (*pcl)->online) + { + StrCat(nicks, (*pcl)->nick, sizeof(nicks)); + StrCat(nicks, " ", sizeof(nicks)); + } + } + + for (i = 0, p = broth; i < MAX_BROTHERS; ++i, ++p) + { + if (*p) + { + StrCat(nicks, *p, sizeof(nicks)); + StrCat(nicks, " ", sizeof(nicks)); + } + } + + print(1, 0, out, "%s", nicks); +} +/* }}} */ +/* {{{ nops() */ +int nops(int chid) +{ + register int i; + clone_t **pcl; + int k = 0; + + for (i = 0, pcl = cl; i < MAX_CLONES; ++i, ++pcl) + { + if (is_op(*pcl, chid)) + { + ++k; + } + } + + return k; +} +/* }}} */ +/* {{{ print_*() */ +void print_channels(int out) +{ + char **p; + register int i; + + print(1, 0, out, "- channels:"); + for (i = 0, p = channel; i < MAX_CHANS; ++i, ++p) + { + if (*p) + { + print(1, 0, out, "%s (%d opped) ", *p, nops(i)); + } + } +} + +void print_scans(int out) +{ + clone_t **p; + register int i; + + print(1, 0, out, "- scans:"); + for (i = 0, p = cl; i < MAX_CLONES; ++i, ++p) + { + if ((*p) && (*p)->online && (*p)->scan) + { + print(1, 0, out, "[%d] nick=%s, type=%s, port=%d, server=%s, saveto=%s", + i, (*p)->nick, strtype[(*p)->scan->type], (*p)->scan->proxy_port, (*p)->scan->server, (*p)->scan->save); + } + } +} + +void print_aops(int out) +{ + char **p; + register int i; + + print(1, 0, out, "- auto op list:"); + for (i = 0, p = conf.aop; i < MAX_AOPS; ++i, ++p) + { + if (*p) + { + print(1, 0, out, "[%d] %s", i, *p); + } + } +} +void print_jupes(int out) +{ + char **p; + register int i; + + print(1, 0, out, "- nick jupe list:"); + for (i = 0, p = conf.jupe; i < MAX_JUPES; ++i, ++p) + { + if (*p) + { + print(1, 0, out, "[%d] %s", i, *p); + } + } +} + +void print_prot(int out) +{ + char **p; + register int i; + + print(1, 0, out, "- protected nicks:"); + for (i = 0, p = conf.prot; i < MAX_PROTS; ++i, ++p) + { + if (*p) + { + print(1, 0, out, "[%d] %s", i, *p); + } + } +} + +void print_shit(int out) +{ + char **p; + register int i; + + print(1, 0, out, "- shitlist:"); + for (i = 0, p = conf.shit; i < MAX_SHITS; ++i, ++p) + { + if (*p) + { + if (strchr(*p, ':')) + { + print(1, 0, out, "[%d] %s", i, *p); + } + else + { + print(1, 0, out, "[%d] %s :no reason", i, *p); + } + } + } +} +/* }}} */ +/* {{{ status() */ +void status(int out) +{ + print_line(out); + print_uptime(out); + print_nicks(out); + + if (!is_empty_str(channel, MAX_CHANS)) + { + print_channels(out); + } + + if (!is_empty_scan(cl, MAX_CLONES)) + { + print_scans(out); + } + + if (!is_empty_str(conf.aop, MAX_AOPS)) + { + print_aops(out); + } + + if (!is_empty_str(conf.jupe, MAX_JUPES)) + { + print_jupes(out); + } + + if (!is_empty_str(conf.prot, MAX_PROTS)) + { + print_prot(out); + } + + if (!is_empty_str(conf.shit, MAX_SHITS)) + { + print_shit(out); + } + + print_line(out); +} +/* }}} */ diff --git a/muhstik/src/proxy.c b/muhstik/src/proxy.c new file mode 100644 index 0000000..6af5657 --- /dev/null +++ b/muhstik/src/proxy.c @@ -0,0 +1,449 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Relevant Information: + * NOTE: Much of the following miles upon miles of utterly worthless blogging + * was taken from the BOPM source code. + * + * Cisco Routers: Cisco routers with a default password. Also pretty much + * anything else that will let you `telnet' to anywhere else + * on the Internet. These are (apparently) always on port 23. + * + * HTTP/1.1 {POST,CONNECT}: + * + * HTTP POST: The HTTP POST protocol used to often be dismissed when writing + * the access controls for proxies until a massive series of GNAA + * crapfloods. + * HTTP POST Offers only the opportunity to send a single block of + * data, but enough of them at once can still make for a + * devastating flood (see: `GNAA'.) Found on the same ports that + * HTTP CONNECT proxies inhabit. + * Note that if an ircd has "ping cookies" then clients from HTTP + * POST proxies cannot connect to the network anyway. + * + * HTTP CONNECT: A very common proxy protocol supported by widely known + * software such as Squid and Apache. The most common sort of + * insecure proxy and found on a multitude of weird ports too. + * Offers transparent two way TCP connections. + * + * [RFC2616] Hypertext Transfer Protocol -- HTTP/1.1 @ + * [RFC2617] HTTP Authentication: Basic and Digest Access Authentication @ + * + * SOCKS{4,5}: Well known proxy protocols, probably the second most common for + * insecure proxies, also offers transparent two way TCP + * connections. Largely confined to port 1080. + * + * SOCKS4: + * idk @ + * SOCKS: A protocol for TCP proxy across firewalls @ + * SOCKS 4A: A Simple Extension to SOCKS 4 Protocol @ + * + * SOCKS5: + * [RFC1928] SOCKS Protocol Version 5 @ + * [RFC1929] Username/Password Authentication for SOCKS V5 @ + * [RFC1961] GSS-API Authentication Method for SOCKS Version 5 @ + * Challenge-Handshake Authentication Protocol for SOCKS V5 @ + * + * TOR: + * idk @ + * Tor's extensions to the SOCKS protocol @ + * Design For A Tor DNS-based Exit List @ + * + * Misc: + * [RFC3089] A SOCKS-based IPv6/IPv4 Gateway Mechanism @ + }}} */ +/* {{{ Header includes */ +#include +#include +#include +#include + +#include "../include/proxy.h" +#include "../include/print.h" +#include "../include/net.h" +#include "../include/string.h" +#include "../include/print.h" +/* }}} */ +/* {{{ Variables */ +/* {{{ External variables */ +extern config_t conf; +extern clone_t *cl[]; +/* }}} */ +/* {{{ Constants */ +const char *strtype[] = +{ + "SOCKS4", + "SOCKS5", + "proxy", + "cisco", + "vhost", + "direct" +}; +/* }}} */ +/* }}} */ +/* {{{ connect_clone() */ +int connect_clone(clone_t *clone, char *host, unsigned short port) +{ + char *vhost = NULL; + netstore *ns = net_store_new(); + + if (clone->type == VHOST) + { + vhost = clone->proxy; + } + + if (net_resolve(ns, host, port)) + { + print(1, 4, 0, "%s: %s: nslookup failed", strtype[clone->type], host); + net_store_destroy(ns); + return 1; + } + if (net_connect(ns, &clone->sock, vhost)) + { + if (errno != EINPROGRESS) + { + net_store_destroy(ns); + return 1; + } + } + clone->start = time(NULL); + net_store_destroy(ns); + return 0; +} +/* }}} */ +/* {{{ init_*() */ +int init_irc(clone_t *clone) +{ + send_irc_nick(clone, clone->nick); + register_clone(clone); + return WAIT_IRC; +} + +int init_vhost(int sock, char *vhost) +{ + netstore *ns = net_store_new(); + + if (net_resolve(ns, vhost, 0)) + { + print(1, 4, 0, "vhost: %s: nslookup failed", vhost); + net_store_destroy(ns); + return 1; + } + if (net_bind(ns, sock)) + { + print(1, 0, 0, "vhost: bind: %s", strerror(errno)); + net_store_destroy(ns); + return 1; + } + + net_store_destroy(ns); + return 0; +} +/* {{{ SOCKS{4,5} */ +/* {{{ CONNECT request byte order for SOCKS4 + * + * +----+----+----+----+----+----+----+----+----+----+....+----+ + * | VN | CD | DSTPORT | DSTIP | USERID |NULL| + * +----+----+----+----+----+----+----+----+----+----+....+----+ + * # of bytes: 1 1 2 4 variable 1 + * + * + * Responses: + * +----+----+----+----+----+----+----+----+ + * | VN | CD | DSTPORT | DSTIP | + * +----+----+----+----+----+----+----+----+ + * # of bytes: 1 1 2 4 + * + * VN is the version of the reply code and should be 0. CD is the result + * code with one of the following values: + * + * 90: Request granted. + * 91: Request rejected or failed. + * 92: Request rejected because SOCKS server cannot connect to identd on the + * client. + * 93: Request rejected because the client program and identd report different + * user-IDs. + * + }}} */ +int init_socks4(clone_t *clone) +{ + char buffer[9]; + struct in_addr addr; + unsigned short port; + + port = htons(clone->port); + if (resolve(clone->host, &addr)) + { + print(1, 4, 0, "%s: %s: nslookup failed", strtype[clone->type], clone->host); + clone->status = EXIT; + } + memcpy(&buffer[2], &port, 2); + memcpy(&buffer[4], &addr.s_addr, 4); + buffer[0] = 4; + buffer[1] = 1; + buffer[8] = 0; + send(clone->sock, buffer, 9, 0); + return WAIT_SOCKS4; +} + +/* {{{ Send version authentication selection message to SOCKS5 + * + * +----+----------+----------+ + * |VER | NMETHODS | METHODS | + * +----+----------+----------+ + * | 1 | 1 | 1 to 255 | + * +----+----------+----------+ + * + * VER always contains 5, for SOCKSv5 + * Method 0 is 'No authentication required' + * + * + * + * The SOCKS request is formed as follows: + * + * +----+-----+-------+------+----------+----------+ + * |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT | + * +----+-----+-------+------+----------+----------+ + * | 1 | 1 | X'00' | 1 | Variable | 2 | + * +----+-----+-------+------+----------+----------+ + * + * + * o VER protocol version: X'05' + * o CMD + * o CONNECT X'01' + * o BIND X'02' + * o UDP ASSOCIATE X'03' + * o RSV RESERVED + * o ATYP address type of following address + * o IP V4 address: X'01' + * o DOMAINNAME: X'03' + * o IP V6 address: X'04' + * o DST.ADDR desired destination address + * o DST.PORT desired destination port in network octet + * order + * + }}} */ +struct sock5_connect1 +{ + char version; + char nmethods; + char method; +}; + +int init_socks5(clone_t *clone) +{ + struct sock5_connect1 sc1; + + sc1.version = 5; + sc1.nmethods = 1; + sc1.method = 0; + send(clone->sock, (char *) &sc1, 3, 0); + + return WAIT_SOCKS5_1; +} + +int init_read_socks5(clone_t *clone) +{ + unsigned short port; + unsigned char *sc2; + unsigned int addrlen; + unsigned int packetlen; + char buf[10]; + + if (recv(clone->sock, buf, 2, 0) < 2) + { + return EXIT; + } + + if (buf[0] != 5 && buf[1] != 0) + { + return EXIT; + } + + port = htons(clone->port); + addrlen = strlen(clone->host); + packetlen = 4 + 1 + addrlen + 2; + sc2 = xmalloc(packetlen); + sc2[0] = 5; /* version */ + sc2[1] = 1; /* command */ + sc2[2] = 0; /* reserved */ + sc2[3] = 3; /* address type */ + sc2[4] = (unsigned char) addrlen; /* hostname length */ + memcpy(sc2 + 5, clone->host, addrlen); + memcpy(sc2 + 5 + addrlen, &port, sizeof(unsigned short)); + + send(clone->sock, sc2, packetlen, 0); + free(sc2); + + return WAIT_SOCKS5_2; +} +/* }}} */ +int init_proxy(clone_t *clone) +{ + send_sock(clone->sock, "CONNECT %s:%d HTTP/1.0\r\n\r\n", clone->host, clone->port); + return WAIT_PROXY; +} +/* }}} */ +/* {{{ readline() */ +int readline(int s, char *buffer, size_t buffer_size) +{ + char c; + unsigned int i = 0; /* ``unsigned'' is not needed, stops a warning when compiled with -Wextra */ + + do { + if (1 > read(s, &c, 1)) + { + return 0; + } + if (i < (buffer_size - 1)) + { + buffer[i++] = c; + } + } while (c != '\n'); + buffer[i] = 0; + + return i; +} +/* }}} */ +/* {{{ Cisco-related, compile-time, constants */ +#define CISCO_GREET "User Access Verification" +#define CISCO_PWD "cisco" +/* }}} */ +/* {{{ read_*() */ +/** + * read_cisco(): Cisco scanning + * + * Attempt to connect using `CISCO_PWD' as a password, then give command for + * telnet(1) to the scanip/scanport + */ +int read_cisco(clone_t *clone) +{ + char buf[MEDBUF]; + + memset(buf, 0, sizeof(buf)); + if (!readline(clone->sock, buf, MEDBUF)) + { + return EXIT; + } + + if (StrCmpPrefix(buf, CISCO_GREET)) + { + return WAIT_CISCO; + } + + send_sock(clone->sock, "%s\n", CISCO_PWD); + send_sock(clone->sock, "telnet %s %d\n", clone->host, clone->port); + return WAIT_IDENT; +} + +int read_proxy(clone_t *clone) +{ + char buf[MEDBUF]; + + memset(buf, 0, sizeof(buf)); + if (!readline(clone->sock, buf, MEDBUF)) + { + return EXIT; + } + + if (memcmp(buf, "HTTP/", 5) || memcmp(buf + 9, "200", 3)) + { + if (conf.debug) + { + print(0, 2, 0, "[%s;%s] PROXY: %s", clone->nick, clone->proxy, buf); + } + return EXIT; + } + + return WAIT_IDENT; +} + +int read_socks4(clone_t *clone) +{ + char buffer[9]; + + if (recv(clone->sock, buffer, 8, 0) < 8) + { + return EXIT; + } + + if (buffer[1] != 0x5A) + { + if (conf.debug) + { + print(1, 2, 0, "[%s;%s] SOCKS4: Connection refused", clone->nick, clone->proxy); + } + return EXIT; + } + + if (conf.debug) + { + print(1, 2, 0, "[%s;%s] SOCKS4: Success", clone->nick, clone->proxy); + } + return WAIT_IDENT; +} + +int read_socks5(clone_t *clone) +{ + unsigned char buf[MEDBUF]; + unsigned int packetlen; + + /* consume all of the reply */ + if (recv(clone->sock, buf, 4, 0) < 4) + { + if (conf.debug) + { + print(1, 2, 0, "[%s;%s] SOCKS5: Permission denied", clone->nick, clone->proxy); + } + return EXIT; + } + + if (buf[0] != 5 && buf[1] != 0) + { + return EXIT; + } + + if (buf[3] == 1) + { + if (recv(clone->sock, buf, 6, 0) != 6) + { + return EXIT; + } + } + else if (buf[3] == 4) + { + if (recv(clone->sock, buf, 18, 0) != 18) + { + return EXIT; + } + } + else if (buf[3] == 3) + { + if (recv(clone->sock, buf, 1, 0) != 1) + { + return EXIT; + } + packetlen = buf[0] + 2; + if (recv(clone->sock, buf, packetlen, 0) != packetlen) + { + return EXIT; + } + } + + if (conf.debug) + { + print(1, 2, 0, "[%s;%s] SOCKS5: Success", clone->nick, clone->proxy); + } + return WAIT_IDENT; +} +/* }}} */ diff --git a/muhstik/src/string.c b/muhstik/src/string.c new file mode 100644 index 0000000..5134cd9 --- /dev/null +++ b/muhstik/src/string.c @@ -0,0 +1,216 @@ +/* Muhstik, Copyright (C) 2001-2002, Louis Bavoil */ +/* 2009-2011, Leon Kaiser */ +/* */ +/* This program is free software; you can redistribute it and/or */ +/* modify it under the terms of the GNU Library General Public License */ +/* as published by the Free Software Foundation; either version 2 */ +/* of the License, or (at your option) any later version. */ +/* */ +/* This program is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Library General Public License for more details. */ + +/* {{{ Header includes */ +#include +#include + +#include "../include/clone.h" +#include "../include/string.h" +#include "../include/print.h" +/* }}} */ +/* {{{ External variables */ +extern config_t conf; +/* }}} */ +/* {{{ xmalloc() */ +void *xmalloc(size_t size) +{ + void *ret; + if (!(ret = malloc(size))) + { + print_error("malloc"); + exit(EXIT_FAILURE); + } + return ret; +} +/* }}} */ +/* {{{ Str*() */ +char *StrDuplicate(char *src) +{ + char *dest; + + if (!src) + { + return NULL; + } + + if (!(dest = strdup(src))) + { + print_error("malloc"); + exit(EXIT_FAILURE); + } + return dest; +} + +inline int StrCompare(char *s1, char *s2) +{ + return (s1 && s2) ? strcasecmp(s1,s2) : 1; +} + +inline int StrCmpPrefix(char *s1, char *s2) +{ + return (s1 && s2) ? strncasecmp(s1,s2,strlen(s2)) : 1; +} + +inline void StrFirstToken(char *s) +{ + sscanf(s, "%s", s); +} + +inline void StrCopy(char *s1, char *s2, size_t n) +{ + strncpy(s1, s2, n); + s1[n-1] = 0; +} + +inline void StrCat(char *s1, char *s2, size_t n) +{ + if (strlen(s1) + strlen(s2) + 1 <= n) + { + strcat(s1, s2); + } +} + +#ifdef NO_STRSEP + +char *strsep(char **stringp, const char *delim) +{ + char *res; + + if (!stringp || !*stringp || !**stringp) + { + return NULL; + } + + res = *stringp; + while (**stringp && !strchr(delim, **stringp)) + { + (*stringp)++; + } + + if (**stringp) + { + **stringp = '\0'; + (*stringp)++; + } + + return res; +} + +#endif + +int StrParam(char *parm, size_t size, char *s, int i) +{ + register unsigned int k = 0; /* ``unsigned'' is not needed, stops a warning when compiled with -Wsign-compare */ + + memset(parm, 0, size); + + while (i >= 0 && k < size) + { + if (*s == 0 || *s == '\n' || *s == '\r') + { + break; + } + + if (*s == ' ') + { + --i; + } + else if (i == 0) + { + parm[k++] = *s; + } + ++s; + } + + return (i > 0 || parm[0] == 0) ? 1 : 0; +} +/* }}} */ +/* {{{ Booleans */ +int is_in(char *w, char *s) +{ + char *parm; + + while ((parm = strsep(&s, DELIM))) + { + if (!StrCompare(parm, w)) + { + return 1; + } + } + + return 0; +} + +int is_nick(char *s) +{ + return ((NULL == strchr(s, ',')) && (strlen(s) <= (unsigned) conf.nick_length)); /* ``unsigned'' is not needed, stops a warning when compiled with -Wsign-compare */ +} + +int is_pattern(char *s) +{ + while ((*s != '\0') && (*s != '!') && (*s != '*')) + { + ++s; + } + return (*s == '*') || (*s == '!'); +} +/* }}} */ +/* {{{ match_pattern() */ +int match_pattern(char *pattern, char *string) +{ + if (!string || !pattern) + { + return 0; + } + + while (1) + { + if (!*string && !*pattern) + { + return 1; + } + + if (!*string || !*pattern) + { + return 0; + } + + if ((*string == *pattern) || (*string && *pattern == '?')) + { + ++string; + ++pattern; + } + else if (*pattern == '*') + { + if (*string == *(pattern + 1)) + { + ++pattern; + } + else if (*(pattern + 1) == *(string + 1)) + { + ++string; + ++pattern; + } + else + { + ++string; + } + } + else + { + return 0; + } + } +} +/* }}} */ diff --git a/muhstik/vhosts b/muhstik/vhosts new file mode 100644 index 0000000..6411836 --- /dev/null +++ b/muhstik/vhosts @@ -0,0 +1,100 @@ +2001:470:24:3f4:a310:3a08:2143:6005 +2001:470:24:3f4:eab0:9f79:d2ee:b079 +2001:470:24:3f4:49a3:bdfa:a9f4:3aec +2001:470:24:3f4:800c:1500:14c7:b150 +2001:470:24:3f4:fbc4:7633:4e9c:931a +2001:470:24:3f4:2176:dcd9:d3e4:9cc4 +2001:470:24:3f4:9da9:818e:9c0e:2622 +2001:470:24:3f4:8ace:90b4:2a08:3cc +2001:470:24:3f4:3763:664e:8361:b9e1 +2001:470:24:3f4:b293:4b5e:34d8:7309 +2001:470:24:3f4:7c21:261:404:1e3b +2001:470:24:3f4:d1be:bc07:b010:38a +2001:470:24:3f4:abf4:3470:11d6:18fb +2001:470:24:3f4:accc:1f31:8e7d:d10f +2001:470:24:3f4:abdf:1447:533b:b667 +2001:470:24:3f4:cc16:e61:69ee:3bf8 +2001:470:24:3f4:85a5:c04b:1d79:33eb +2001:470:24:3f4:db4a:663f:9d76:301a +2001:470:24:3f4:4b5e:343f:cb5d:9c28 +2001:470:24:3f4:76c0:4c44:6f60:4e15 +2001:470:24:3f4:ed2:5f9b:673f:9902 +2001:470:24:3f4:c8bf:ddbe:4359:fd4b +2001:470:24:3f4:5e64:bc8d:720:c029 +2001:470:24:3f4:66d7:aad1:65a8:3de1 +2001:470:24:3f4:2bc:c342:f3db:1067 +2001:470:24:3f4:fc4f:34ae:56b4:567e +2001:470:24:3f4:c2fd:4b7d:83c0:d4f9 +2001:470:24:3f4:cf9c:3275:fcf1:e08f +2001:470:24:3f4:a989:c5b0:1b5a:1fbe +2001:470:24:3f4:2f44:dc5a:b436:a3b8 +2001:470:24:3f4:a62:cdf0:e6bf:2ab0 +2001:470:24:3f4:bd8a:8b10:1531:78a3 +2001:470:24:3f4:67bb:bda9:2ab9:9bc0 +2001:470:24:3f4:744f:9fdd:141c:c9e1 +2001:470:24:3f4:ab9a:eeea:6707:8bff +2001:470:24:3f4:a915:e6e4:37b3:5664 +2001:470:24:3f4:5afe:3c4c:9bd3:6108 +2001:470:24:3f4:2489:eed:29e8:d51b +2001:470:24:3f4:faf0:97b8:d5cf:20fa +2001:470:24:3f4:87a8:9523:df:4b1b +2001:470:24:3f4:98f5:25aa:5572:4c38 +2001:470:24:3f4:7fdb:cef6:8562:b501 +2001:470:24:3f4:e5a0:eefc:ed2b:d4b9 +2001:470:24:3f4:183d:54a4:7548:2ccf +2001:470:24:3f4:b2d4:d8fa:5c92:844d +2001:470:24:3f4:5ed6:43f:d049:d16e +2001:470:24:3f4:a23d:4e6f:cd21:5a46 +2001:470:24:3f4:64e3:4d04:c8cc:6de +2001:470:24:3f4:cd65:1ac:413a:1d23 +2001:470:24:3f4:4cb0:8e12:f558:f25e +2001:470:24:3f4:2a0:fce7:27d7:fa82 +2001:470:24:3f4:f0a1:6a50:8681:fb31 +2001:470:24:3f4:3d03:42df:5ab8:84a4 +2001:470:24:3f4:be7e:c7db:301d:7e49 +2001:470:24:3f4:d85:963d:d076:f8b0 +2001:470:24:3f4:d8d0:7b04:1039:a443 +2001:470:24:3f4:4ee6:7414:c47c:673b +2001:470:24:3f4:e3ba:de9d:7fff:e871 +2001:470:24:3f4:7d5a:11d8:6560:c540 +2001:470:24:3f4:ec9d:566:dbee:a418 +2001:470:24:3f4:3dc4:1cd9:65c1:90f2 +2001:470:24:3f4:ceea:1cb0:2ceb:50c0 +2001:470:24:3f4:cfc9:7254:ac0f:6ad4 +2001:470:24:3f4:ca55:340f:68e3:fa6 +2001:470:24:3f4:c382:ffa9:20ee:3c79 +2001:470:24:3f4:2788:b56a:fc04:9ffa +2001:470:24:3f4:3428:c00d:d3f0:5597 +2001:470:24:3f4:72d5:6bba:e7a:9173 +2001:470:24:3f4:2596:ab0f:f776:f067 +2001:470:24:3f4:37a1:c543:6320:2847 +2001:470:24:3f4:c774:9a97:3ae7:344d +2001:470:24:3f4:68ff:b97:d524:bc0b +2001:470:24:3f4:f143:af8d:b49e:a860 +2001:470:24:3f4:9977:8e67:3d0c:960a +2001:470:24:3f4:c62c:5c92:f11:f5ae +2001:470:24:3f4:42cd:42c6:934d:dec4 +2001:470:24:3f4:660c:bfa8:54e3:99f9 +2001:470:24:3f4:a2da:7b6e:94a0:69da +2001:470:24:3f4:a5f7:c8a3:8e81:78ca +2001:470:24:3f4:6cd5:f4ed:1f98:3b2c +2001:470:24:3f4:7215:5c60:7a2a:e54 +2001:470:24:3f4:c118:95e0:1cb:abdc +2001:470:24:3f4:27f4:3680:3e5f:1f94 +2001:470:24:3f4:90b2:7573:e053:8465 +2001:470:24:3f4:3c9c:9285:f222:4ba5 +2001:470:24:3f4:c5b9:6da:1526:910a +2001:470:24:3f4:3ed4:79e:1cb5:dd61 +2001:470:24:3f4:405e:db3e:9028:8d01 +2001:470:24:3f4:e4eb:f660:ea80:b711 +2001:470:24:3f4:c3a6:cdd5:543f:35c7 +2001:470:24:3f4:537:84dd:3651:46c5 +2001:470:24:3f4:6c46:2c2f:5dfd:351a +2001:470:24:3f4:a028:5e25:7b35:4cef +2001:470:24:3f4:25a8:dd2a:176b:9958 +2001:470:24:3f4:df2:2d68:f71:8a8a +2001:470:24:3f4:cd33:f635:f149:f178 +2001:470:24:3f4:f694:9c0a:1d2c:63c +2001:470:24:3f4:80a2:50d6:5d2f:caf9 +2001:470:24:3f4:14de:21f7:43f5:d920 +2001:470:24:3f4:7b8e:90ca:d878:2cfc