package II3290c14020c45aae926b7696807f26c2; use strict 'vars'; use base qw/II674e2407e107271bcc76478050bc636a/; use II8dae0e141ee45f5daba6a74e4a7c3b6f; use Zen::Config; BEGIN{*II3290c14020c45aae926b7696807f26c2::IIIlIlIIlIIIIlIl=\%{pack('H6','151e6e')^'PP8'};*II3290c14020c45aae926b7696807f26c2::IIIlIlIllIIlIIll=\&{pack('H24','2c573926607c39737f5d2a0f')^'A6PHZFJKH?R;'};$II3290c14020c45aae926b7696807f26c2::IllllIlllIIIlllI=pack('H18','0b67156a13111e0418')^'C3A:LYQWL';$II3290c14020c45aae926b7696807f26c2::IIIIIlIIIIIIlIll=pack('H12','137f00181a74')^'Y6NTS7'};sub dbTable     { 'jin_ban' } BEGIN{*II3290c14020c45aae926b7696807f26c2::IlIIllIIlllIIlIl=\%{pack('H6','147206')^'Q<P'};*II3290c14020c45aae926b7696807f26c2::IIllIIlllIIlllIl=\&{pack('H24','345d2e52690a4d7409304b7b')^'Y<G<S0>L>R3O'};$II3290c14020c45aae926b7696807f26c2::lllIlllIlIIlIlII=pack('H18','0d1d076d64760e640e')^'EIS=;>A7Z';$II3290c14020c45aae926b7696807f26c2::lIllIllllIIIIIIl=pack('H12','7277751a0578')^'8>;VL;'};sub dbFields    { qw/ owner_id banlist / } BEGIN{*II3290c14020c45aae926b7696807f26c2::IlllIllllIlIIlII=\%{pack('H6','067d14')^'C3B'};*II3290c14020c45aae926b7696807f26c2::llIlIlllllIlIIII=\&{pack('H24','572a2d386f604f016f5a3a66')^':KDVUZ<9X8BR'};$II3290c14020c45aae926b7696807f26c2::IIlIlllIIIIlIIIl=pack('H18','02026a6b11041a1e6f')^'JV>;NLUM;';$II3290c14020c45aae926b7696807f26c2::lIlIllllllIIlllI=pack('H12','7f1d76791d00')^'5T85TC'};sub get { my $class = shift; my $this = $class->SUPER::get(II8dae0e141ee45f5daba6a74e4a7c3b6f::IIlIlIlIIIlIIlll($II674e2407e107271bcc76478050bc636a::IlllIIIIlIIlIllI{$II8dae0e141ee45f5daba6a74e4a7c3b6f::IllIlIIllIlIIllI},47,$II674e2407e107271bcc76478050bc636a::IlllIIIIlIIlIllI{$II3290c14020c45aae926b7696807f26c2::lIllIllllIIIIIIl})->getAdminID); unless ($this->{banlist}) { $this->{banlist} = $this->message('ban.default_banlist'); $this->save; } $this; } BEGIN{*II3290c14020c45aae926b7696807f26c2::IIllllIIlIIlIIlI=\%{pack('H6','7c0400')^'9JV'};*II3290c14020c45aae926b7696807f26c2::lIlllIlllIllIIIl=\&{pack('H24','23513855780b3d090b314701')^'N0Q;B1N1<S?5'};$II3290c14020c45aae926b7696807f26c2::IIIIlIIIIlIlIIlI=pack('H18','1c1d6d0663051c6e0d')^'TI9V<MS=Y';$II3290c14020c45aae926b7696807f26c2::llIIllIIIlIIIIll=pack('H12','7813721f7376')^'2Z<S:5'};sub save { my $this = shift; my (undef, $emails, $ips) = (ref $this)->parse($this->{banlist}); my $ser = II8dae0e141ee45f5daba6a74e4a7c3b6f::IIlIlIlIIIlIIlll($II8dae0e141ee45f5daba6a74e4a7c3b6f::IIlllIIIlIIIlIlI{$II3290c14020c45aae926b7696807f26c2::IllllIlllIIIlllI},1004,$II8dae0e141ee45f5daba6a74e4a7c3b6f::IIlllIIIlIIIlIlI{$II3290c14020c45aae926b7696807f26c2::IIlIIlIIIIIIIlIl})->get(Zen->engine->getBaseDir . "jin.cache.templates/global"); my $resource = "config/banlist.conf"; $ser->writeLines($resource, ["\n[email]\n", (map { "$_=1\n" } @$emails), "\n[ip]\n", (map { "$_=1\n" } @$ips)]); my $compiled = II8dae0e141ee45f5daba6a74e4a7c3b6f::lllIllIIIllIllII($II8dae0e141ee45f5daba6a74e4a7c3b6f::lIlllIlIlIlIlIll{$II3290c14020c45aae926b7696807f26c2::lllIlllIlIIlIlII},985,$II8dae0e141ee45f5daba6a74e4a7c3b6f::lIlllIlIlIlIlIll{$II3290c14020c45aae926b7696807f26c2::llIIllIIIlIIIIll})->resource2compiledName($resource); II674e2407e107271bcc76478050bc636a::llllllllIIlIllII($II3290c14020c45aae926b7696807f26c2::IllIIllIIIllIlIl{$II3290c14020c45aae926b7696807f26c2::lllIlllIlIIlIlII},985,$II3290c14020c45aae926b7696807f26c2::IllIIllIIIllIlIl{$II3290c14020c45aae926b7696807f26c2::IIlIIlIIIIIIIlIl})->compile($ser->base.$resource, $ser->base.$compiled, Zen::Config->compilerCallback); $ser->drop($resource) if $ser->exists($resource) && ! Zen->getCompileOnTheFly; $this->SUPER::save; } BEGIN{*II3290c14020c45aae926b7696807f26c2::IllIIllIIIllIlIl=\%{pack('H6','7a0d00')^'?CV'};*II3290c14020c45aae926b7696807f26c2::llIlllIlllIIlIlI=\&{pack('H24','35555d3f7879496d665e300d')^'X44QBC:UQ<H9'};$II3290c14020c45aae926b7696807f26c2::IlIIlIlIllIlIIlI=pack('H18','10021a6b09097c681d')^'XVN;VA3;I';$II3290c14020c45aae926b7696807f26c2::IIlIIlIIIIIIIlIl=pack('H12','0b110e067404')^'AX@J=G'};sub parse { my $class = shift; my $banlist = shift; my ($erroneous, @emails, @ips); for (split(/^/, $banlist)) { s/\#.+//; s/[\s\t\r\n]+//g; next unless length; if (/^[\d\.\*]+$/) { s/([\.])/\\$1/g; s/\*/.*?/g; push @ips, $_; } elsif (/^[\w\@\.\-\*]+$/) { s/([\@\-])/\\$1/g; s/\*/.*?/g; push @emails, $_; } else { $erroneous = $_; last; } } ($erroneous, \@emails, \@ips); } 1; 