quota/ 0040755 0005671 0000012 00000000000 10736615454 011706 5 ustar jcameron wheel quota/group_grace_form.cgi 0100755 0005671 0000012 00000003406 10736615453 015714 0 ustar jcameron wheel #!/usr/local/bin/perl # group_grace_form.cgi # Display a form for editing group grace times for some filesystem require './quota-lib.pl'; &ReadParse(); $access{'ggrace'} && &can_edit_filesys($in{'filesys'}) || &error($text{'ggracef_ecannot'}); &ui_print_header(undef, $text{'ggracef_title'}, "", "group_grace"); print "$text{'ggracef_info'}
\n"; @gr = &get_group_grace($in{'filesys'}); print "
\n"; &ui_print_footer("list_groups.cgi?dir=".&urlize($in{'filesys'}),$text{'ggracef_return'}); sub select_units { @uarr = &grace_units(); print "\n"; } quota/config-hpux 0100644 0005671 0000012 00000000734 10736615453 014060 0 ustar jcameron wheel display_max=100 user_quotaoff_command=quotaoff user_quotaon_command=quotaon user_repquota_command=repquota -v user_grace_command=edquota -t user_quota_command=quota -v quotacheck_command=quotacheck user_edquota_command=edquota user_copy_command=edquota -p sort_mode=0 block_mode=1 show_grace=0 email_msg=Disk usage for user ${USER} on filesystem ${FS} has reached ${PERCENT}% of the allowed quota. ${USED} of disk space is being used, out of a maximum of ${QUOTA}. pc_show=1 quota/edit_group_quota.cgi 0100755 0005671 0000012 00000005335 10736615453 015751 0 ustar jcameron wheel #!/usr/local/bin/perl # edit_group_quota.cgi # Display a form for editing the quotas for a group on some filesystem require './quota-lib.pl'; &ReadParse(); $u = $in{'group'}; $fs = $in{'filesys'}; &can_edit_group($u) || &error(&text('egroup_eallowgr', $u)); $access{'ro'} && &error(&text('egroup_eallowgr', $u)); &can_edit_filesys($fs) || &error($text{'egroup_eallowfs'}); &ui_print_header(undef, $text{'egroup_title'}, "", "edit_group_quota"); @quot = &group_quota($u, $fs); $first = (@quot == 0); $bsize = &block_size($fs); $fsbsize = &block_size($fs, 1); print "| \n"; print " |
| \n"; print " |
\n"; @dquot = split(/\s+/, $config{"gsync_$f"}); print "
\n"; } # Show form for email notifications if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) { print "| \n"; } if ($access{'ggrace'}) { print "\n"; $form++; } else { print " | \n"; } print " |
\n"; } if (!$access{'ro'}) { print "
\n"; @dquot = split(/\s+/, $config{"sync_$f"}); print "
\n"; } # Show form for email notifications if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) { print "| \n"; } if ($access{'ugrace'}) { print "\n"; $form++; } else { print " | \n"; } print " |
$err
\n";
&ui_print_footer("/", $text{'index_return'});
exit;
}
@list = &list_filesystems();
if (@list) {
print &ui_columns_start([
$text{'index_fs'},
$text{'index_type'},
$text{'index_mount'},
$text{'index_status'},
$access{'enable'} ? ( $text{'index_action'} ) : (),
], 100);
@tds = ( "", "valign=top", "valign=top", "valign=top", "valign=top" );
foreach $f (@list) {
$qc = $f->[4];
$qc = $qc&1 if ($access{'gmode'} == 3);
next if (!$qc);
next if (!&can_edit_filesys($f->[0]));
$qn = $f->[5];
if ($qc == 1) { $msg = $text{'index_quser'}; }
elsif ($qc == 2) { $msg = $text{'index_qgroup'}; }
elsif ($qc == 3) { $msg = $text{'index_qboth'}; }
$canactivate = 1;
if ($qn >= 4) {
$chg = $text{'index_mountonly'};
$qn -= 4;
$canactivate = 0;
if ($qn) {
$msg .= " $text{'index_active'}";
}
else {
$msg .= " $text{'index_inactive'}";
}
}
elsif ($qn) {
$msg .= " $text{'index_active'}";
$chg = $text{'index_disable'};
}
else {
$msg .= " $text{'index_inactive'}";
$chg = $text{'index_enable'};
}
if ($qn%2 == 1) { $useractive++; }
if ($qn > 1) { $groupactive++; }
local @cols;
$dir = $f->[0];
if (!$qn) {
push(@cols, $dir);
}
elsif ($qc == 1) {
push(@cols, "$dir");
}
elsif ($qc == 2) {
push(@cols, "$dir");
}
elsif ($qc == 3) {
push(@cols, "$dir (users)
".
"$dir (groups)");
}
push(@cols, &foreign_call("mount", "fstype_name", $f->[2]));
push(@cols, &foreign_call("mount", "device_name", $f->[1]));
push(@cols, $msg);
if ($access{'enable'}) {
if ($canactivate) {
push(@cols, "$chg");
}
else {
push(@cols, $chg);
}
}
print &ui_columns_row(\@cols, \@tds);
}
print &ui_columns_end();
}
else {
print "$text{'index_nosupport'}
\n"; if (&foreign_available("mount")) { print &text('index_mountmod', "../mount/"),"
\n"; } } if ($useractive || $groupactive) { print "
| \n"; } if ($groupactive) { print "\n"; } else { print " | \n"; } if ($useractive || $groupactive) { print " |
\n"; "acheck($in{'filesys'}, $in{'source'} eq 'user' ? 1 : 2); &webmin_log("check", undef, $in{'filesys'}); print "$text{'check_done'}
\n";
if ($in{'source'} eq "user") {
$retlist_name = $text{'check_ruser'};
} else {
$retlist_name = $text{'check_rgroup'};
}
&ui_print_footer("list_$in{'source'}s.cgi?dir=".&urlize($in{'filesys'}),
&text('check_return', $retlist_name));
quota/edit_group_mass.cgi 0100775 0005671 0000012 00000002271 10736615453 015561 0 ustar jcameron wheel #!/usr/local/bin/perl
# Display a form for updating multiple group quotas on a filesystem
require './quota-lib.pl';
&ReadParse();
$fs = $in{'dir'};
@d = split(/\0/, $in{'d'});
foreach $u (@d) {
&can_edit_group($u) ||
&error(&text('egroup_eallowgr', $u));
}
$access{'ro'} && &error(&text('egroup_eallowgr', $u));
&can_edit_filesys($fs) ||
&error($text{'euser_eallowfs'});
&ui_print_header(undef, $text{'gmass_title'}, "", "edit_group_mass");
$bsize = &block_size($fs);
print &text('gmass_count', scalar(@d)),"
\n";
print &ui_form_start("save_group_mass.cgi", "post");
foreach $u (@d) {
print &ui_hidden("d", $u),"\n";
}
print &ui_hidden("dir", $fs),"\n";
print &ui_table_start($text{'gmass_header'}, undef, 2);
foreach $t ('sblocks', 'hblocks', 'sfiles', 'hfiles') {
print &ui_table_row($text{'umass_'.$t},
&ui_radio($t.'_def', 0,
[ [ 0, $text{'umass_leave'} ],
[ 1, $text{'umass_unlimited'} ],
[ 2, $text{'umass_set'}." ".
($t =~ /blocks$/ ? "a_inputbox($t, "", $bsize)
: &ui_textbox($t, "", 10)) ] ]));
}
print &ui_table_end();
print &ui_form_end([ [ "ok", $text{'gmass_ok'} ] ]);
&ui_print_footer("list_groups.cgi?dir=".&urlize($fs), $text{'egroup_greturn'});
quota/save_group_mass.cgi 0100775 0005671 0000012 00000003010 10736615453 015562 0 ustar jcameron wheel #!/usr/local/bin/perl
# Actually update the groups
require './quota-lib.pl';
&ReadParse();
&error_setup($text{'gmass_err'});
$fs = $in{'dir'};
@d = split(/\0/, $in{'d'});
foreach $u (@d) {
&can_edit_group($u) ||
&error(&text('egroup_eallowgr', $u));
}
$access{'ro'} && &error(&text('egroup_eallowgr', $u));
&can_edit_filesys($fs) ||
&error($text{'euser_eallowfs'});
# Validate inputs
foreach $t ('sblocks', 'hblocks', 'sfiles', 'hfiles') {
$in{$t."_def"} != 2 || $in{$t} =~ /^\d+$/ ||
&error($text{'umass_e'.$t});
}
# Update the groups
$bsize = &block_size($fs);
$n = &filesystem_groups($fs);
foreach $u (@d) {
# Find the group
@uinfo = ( );
for($i=0; $i<$n; $i++) {
if ($group{$i,'group'} eq $u) {
@uinfo = ( $group{$i,'sblocks'}, $group{$i,'hblocks'},
$group{$i,'sfiles'}, $group{$i,'hfiles'} );
last;
}
}
# Update his object
if (@uinfo) {
if ($in{'sblocks_def'} == 1) {
$uinfo[0] = 0;
}
elsif ($in{'sblocks_def'} == 2) {
$uinfo[0] = "a_parse('sblocks', $bsize, 1);
}
if ($in{'hblocks_def'} == 1) {
$uinfo[1] = 0;
}
elsif ($in{'hblocks_def'} == 2) {
$uinfo[1] = "a_parse('hblocks', $bsize, 1);
}
if ($in{'sfiles_def'} == 1) {
$uinfo[2] = 0;
}
elsif ($in{'sfiles_def'} == 2) {
$uinfo[2] = $in{'sfiles'};
}
if ($in{'hfiles_def'} == 1) {
$uinfo[3] = 0;
}
elsif ($in{'hfiles_def'} == 2) {
$uinfo[3] = $in{'hfiles'};
}
# Update the group
&edit_group_quota($u, $fs, @uinfo);
}
}
&redirect("list_groups.cgi?dir=".&urlize($fs));
quota/config.info.uk_UA 0100664 0005671 0000012 00000002135 10736615453 015032 0 ustar jcameron wheel user_quotaoff_command=Êîìàíäà âèìèêàííÿ êâîò êîðèñòóâà÷à,0
user_quotaon_command=Êîìàíäà âêëþ÷åííÿ êâîò êîðèñòóâà÷à,0
group_copy_command=Êîìàíäà êîï³þâàííÿ êâîòè ãðóïè,0
quotacheck_command=Êîìàíäà ïåðåâ³ðêè êâîò,0
user_quota_command=Êîìàíäà ïåðåâ³ðêè êâîòè êîðèñòóâà÷à,0
group_grace_command=Êîìàíäà çì³íè ÷àñó â³äñòðî÷êè äëÿ ãðóïè,0
user_repquota_command=Êîìàíäà âèñíîâêó êîðèñòóâà÷³â äëÿ ôàéëîâî¿ ñèñòåìè,0
group_quotaoff_command=Êîìàíäà âèìèêàííÿ êâîò ãðóïè,0
user_edquota_command=Êîìàíäà çì³íè êâîòè êîðèñòóâà÷à,0
group_quotaon_command=Êîìàíäà âêëþ÷åííÿ êâîò ãðóïè,0
group_quota_command=Êîìàíäà ïåðåâ³ðêè êâîòè ãðóïè,0
user_copy_command=Êîìàíäà êîï³þâàííÿ êâîòè êîðèñòóâà÷à,0
group_repquota_command=Êîìàíäà âèñíîâêó ãðóï äëÿ ôàéëîâî¿ ñèñòåìè,0
display_max=Ìàêñèìàëüíå ÷èñëî ïîêàçóâàíèõ ÷è êîðèñòóâà÷³â ãðóï,0
group_edquota_command=Êîìàíäà çì³íè êâîòè ãðóïè,0
user_grace_command=Êîìàíäà çì³íè ÷àñó â³äñòðî÷êè äëÿ êîðèñòóâà÷à,0
sort_mode=Óïîðÿäêîâóâàòè êîðèñòóâà÷³â ³ ãðóïè ïî,1,0-âèêîðèñòàíèì áëîêàì,2-³ìåí³,1-ïîðÿäîê ç repquota
line1= ïàðàìåòðè, ÙîÍàëàøòîâóþòüñÿ,11
line2=Ñèñòåìí³ ïàðàìåòðè,11
quota/config.info.ru_SU 0100644 0005671 0000012 00000002152 10736615453 015060 0 ustar jcameron wheel line1=îÁÓÔÒÁÉ×ÁÅÍÙÅ ÐÁÒÁÍÅÔÒÙ,11
display_max=íÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÐÏËÁÚÙ×ÁÅÍÙÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÉÌÉ ÇÒÕÐÐ,0
sort_mode=õÐÏÒÑÄÏÞÉ×ÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÅÊ É ÇÒÕÐÐÙ ÐÏ,1,0-éÓÐÏÌØÚÏ×ÁÎÎÙÍ ÂÌÏËÁÍ,2-éÍÅÎÉ,1-ðÏÒÑÄÏË ÉÚ repquota
line2=óÉÓÔÅÍÎÙÅ ÐÁÒÁÍÅÔÒÙ,11
user_repquota_command=ëÏÍÁÎÄÁ ×Ù×ÏÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ,0
group_repquota_command=ëÏÍÁÎÄÁ ×Ù×ÏÄÁ ÇÒÕÐÐ ÄÌÑ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ,0
user_edquota_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_edquota_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ Ë×ÏÔÙ ÇÒÕÐÐÙ,0
user_quota_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_quota_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔÙ ÇÒÕÐÐÙ,0
user_copy_command=ëÏÍÁÎÄÁ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔÙ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_copy_command=ëÏÍÁÎÄÁ ËÏÐÉÒÏ×ÁÎÉÑ Ë×ÏÔÙ ÇÒÕÐÐÙ,0
user_quotaon_command=ëÏÍÁÎÄÁ ×ËÌÀÞÅÎÉÑ Ë×ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_quotaon_command=ëÏÍÁÎÄÁ ×ËÌÀÞÅÎÉÑ Ë×ÏÔ ÇÒÕÐÐÙ,0
user_quotaoff_command=ëÏÍÁÎÄÁ ×ÙËÌÀÞÅÎÉÑ Ë×ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_quotaoff_command=ëÏÍÁÎÄÁ ×ÙËÌÀÞÅÎÉÑ Ë×ÏÔ ÇÒÕÐÐÙ,0
quotacheck_command=ëÏÍÁÎÄÁ ÐÒÏ×ÅÒËÉ Ë×ÏÔ,0
user_grace_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ,0
group_grace_command=ëÏÍÁÎÄÁ ÉÚÍÅÎÅÎÉÑ ×ÒÅÍÅÎÉ ÏÔÓÒÏÞËÉ ÄÌÑ ÇÒÕÐÐÙ,0
quota/user_grace_save.cgi 0100755 0005671 0000012 00000001425 10736615453 015530 0 ustar jcameron wheel #!/usr/local/bin/perl
# user_grace_save.cgi
# Update the grace times for users on some filesystem
require './quota-lib.pl';
&ReadParse();
$whatfailed = $text{'ugraces_esave'};
$access{'ugrace'} && &can_edit_filesys($in{'filesys'}) ||
&error($text{'ugraces_eedit'});
if ($in{'bdef'}) { push(@args, 0, 0); }
elsif ($in{'btime'} !~ /^[0-9\.]+$/)
{ &error(&text('ugraces_enumber', $in{'btime'})); }
else { push(@args, ($in{'btime'}, $in{'bunits'})); }
if ($in{'fdef'}) { push(@args, 0, 0); }
elsif ($in{'ftime'} !~ /^[0-9\.]+$/)
{ &error(&text('ugraces_enumber', $in{'ftime'})); }
else { push(@args, ($in{'ftime'}, $in{'funits'})); }
&edit_user_grace($in{'filesys'}, @args);
&webmin_log("grace", "user", $in{'filesys'}, \%in);
&redirect("list_users.cgi?dir=".&urlize($in{'filesys'}));
quota/config.info.zh_CN 0100644 0005671 0000012 00000001356 10736615453 015031 0 ustar jcameron wheel display_max=×î¶àÏÔʾµÄÓû§ºÍ×éÊýÁ¿,0
user_repquota_command=ÔÚÒ»¸öÎļþϵͳÉÏÁбíÏÔʾÓû§µÄÃüÁî,0
group_repquota_command=ÔÚÒ»¸öÎļþϵͳÉÏÁбíÏÔʾ×éµÄÃüÁî,0
user_edquota_command=±à¼Óû§´ÅÅÌÅä¶îµÄÃüÁî,0
group_edquota_command=±à¼Óû§×é´ÅÅÌÅä¶îµÄÃüÁî,0
user_quota_command=¼ì²éÓû§´ÅÅÌÅä¶îµÄÃüÁî,0
group_quota_command=¼ì²éÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0
user_copy_command=¿½±´Óû§´ÅÅÌÅä¶îµÄÃüÁî,0
group_copy_command=¿½±´Óû§×é´ÅÅÌÅä¶îµÄÃüÁî,0
user_quotaon_command=´ò¿ªÓû§´ÅÅÌÅä¶îµÄÃüÁî,0
group_quotaon_command=´ò¿ªÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0
user_quotaoff_command=¹Ø±ÕÓû§ÅÌÅä¶îµÄÃüÁî,0
group_quotaoff_command=¹Ø±ÕÓû§×é´ÅÅÌÅä¶îµÄÃüÁî,0
quotacheck_command=¼ì²é´ÅÅÌÅä¶îµÄÃüÁî,0
user_grace_command=±à¼Óû§Ê¹ÓÃʱ¼äµÄÃüÁî,0
group_grace_command=±à¼Óû§×éʹÓÃʱ¼äµÄÃüÁî,0
quota/CHANGELOG 0100664 0005671 0000012 00000004377 10736615453 013131 0 ustar jcameron wheel ---- Changes since 1.140 ----
Fixed a bug that prevented the editing of quotas on loopback filesystems under Linux.
---- Changes since 1.150 ----
Quotas and usage are now displayed in bytes, kB, MB or GB where appropriate, instead of always kilobytes.
The quotaon -p command is now used to determine if quotas are active or not for some filesystem, which is faster and more reliable.
---- Changes since 1.160 ----
Email notification can be set up for users that are close to or have reached their soft or hard limit, on a per-filesystem basis.
---- Changes since 1.170 ----
Added Module Config option to display quota percentages, and mark those that are over some limit (thanks to Christophe Chisogne).
---- Changes since 1.210 ----
When editing user and group quotas, you can now select the units they are in, rather than always entering in kB.
The email message sent to users who are over quota can now be modified on the Module Config page.
---- Changes since 1.240 ----
Added the $GRACE parameter to the over-quota email template.
---- Changes since 1.260 ----
Added checkboxes and a button to the user and group quota lists, for updating the block and file limits of multiple users and groups at once.
---- Changes since 1.270 ----
Added a Module Config option for sorting users and groups by hard and soft quotas.
---- Changes since 1.280 ----
Added the ability to send email to managers of groups that are approaching or have exceeded their disk quotas.
---- Changes since 1.290 ----
On Linux systems, edquota is called with UIDs and GIDs instead of user and group names. This allows users with numeric usernames to be edited.
---- Changes since 1.310 ----
Added a Module Config option for sorting user and group quotas by the percentage of their hard limit in use.
---- Changes since 1.330 ----
On Linux systems with the setquota command, it is called instead of edquota to change user and group quotas.
---- Changes since 1.340 ----
Added a Module Config option to sort user lists by the percentage of soft quota used.
---- Changes since 1.350 ----
Added a Module Config option to show both hard and/or soft quota percentages.
---- Changes since 1.380 ----
Quotas are considered active for a filesystem if the usrquota or grpquota options are on in /etc/mtab, even if missing from /etc/fstab.
quota/defaultacl 0100644 0005671 0000012 00000000143 10736615453 013727 0 ustar jcameron wheel noconfig=0
filesys=*
umode=0
gmode=0
enable=1
default=1
ugrace=1
ggrace=1
diskspace=1
ro=0
email=1
quota/config.info.zh_TW.UTF-8 0100664 0005671 0000012 00000001447 10736615453 015670 0 ustar jcameron wheel group_grace_command=ç·¨è¼¯ç¾¤çµ„å¯¬é™æ™‚間的指令,0
user_quotaoff_command=關閉使用者é…é¡çš„æŒ‡ä»¤,0
user_copy_command=æ‹·è²ä½¿ç”¨è€…é…é¡çš„æŒ‡ä»¤,0
group_repquota_command=列出檔案系統上群組的指令,0
user_quotaon_command=啟動使用者é…é¡çš„æŒ‡ä»¤,0
group_copy_command=æ‹·è²ç¾¤çµ„é…é¡çš„æŒ‡ä»¤,0
user_repquota_command=列出檔案系統上使用者的指令,0
group_quota_command=檢查群組é…é¡çš„æŒ‡ä»¤,0
user_quota_command=檢查使用者é…é¡çš„æŒ‡ä»¤,0
group_edquota_command=編輯群組é…é¡çš„æŒ‡ä»¤,0
display_max=顯示的最大使用者或群組數目,0
quotacheck_command=檢查é…é¡çš„æŒ‡ä»¤,0
group_quotaoff_command=關閉群組é…é¡çš„æŒ‡ä»¤,0
user_edquota_command=編輯使用者é…é¡çš„æŒ‡ä»¤,0
user_grace_command=ç·¨è¼¯ä½¿ç”¨è€…å¯¬é™æ™‚間的指令,0
quota/images/ 0040755 0005671 0000012 00000000000 10736615454 013153 5 ustar jcameron wheel quota/images/icon.gif 0100644 0005671 0000012 00000000516 10736615453 014570 0 ustar jcameron wheel GIF89a0 0 ¡ ÿÿÿ™™™ÌÌÌfff!ù , 0 0 þ„©Ëí£œ´ª€³ÞØ..„âHƒwdäÊ
ØpnÖÖ£ Ów×öï‚
|5^‚d½†H[àâäh„Mà!
·ÜaRt=t¹ÙS—Êh¥×Tm×ñ´7XgŽ®|ñŽ·¢ÒÇ2hˆ·aØ§âÆ‘Èè3÷h••Wté÷à FÉHˆõù×*¸‡Õ÷%šJ©Âš¢w
{s6ëRZ[²(¹1j[%µ9LäùZ‚ìG»Æœ›géx+çÜy-ë]bÈÝø½*ÞJ~û<žžþ{.ýž^<¯-׎ž/Øí®Ÿ¹{ÌèÕQ&¯ Àx_”óS@jþ5üò°È‡ ‰ÓôõÀÖ±œE‡@9“aAJ0
("di 3¦Ì™4k ; quota/images/smallicon.gif 0100664 0005671 0000012 00000000350 10736615453 015617 0 ustar jcameron wheel GIF87a ã ™™™sssæææÌÌÌÀÀÀ¦¦¦ššš€€€fffÿÿÿ³³³ , PÉI«½sÍ7žD±,E·-‚FXÃbšGr”9L.'Ž#"äÂM(¾ í%ðH¢0
V
Þ’#
!ž‹«$·{¾RrA¬¸¾NˆÍ—ËÖ¾º„a´¯oÊ