+%
+%
+%$cgi->param('agentnum') =~ /^(\d+)$/
+% or eidiot 'illegal agentnum '. $cgi->param('agentnum');
+%my $agentnum = $1;
+%my $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
+%
+%my $error = '';
+%
+%my $num = 0;
+%if ( $cgi->param('num') =~ /^\s*(\d+)\s*$/ ) {
+% $num = $1;
+%} else {
+% $error = 'Illegal number of codes: '. $cgi->param('num');
+%}
+%
+%my @pkgparts =
+% map { /^pkgpart(.*)$/; $1 }
+% grep { $cgi->param($_) }
+% grep { /^pkgpart/ }
+% $cgi->param;
+%
+%$error ||= $agent->generate_reg_codes($num, \@pkgparts);
+%
+%unless ( ref($error) ) {
+% $cgi->param('error'. $error );
+%