You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(58) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(53) |
Feb
(56) |
Mar
|
Apr
|
May
(30) |
Jun
(78) |
Jul
(121) |
Aug
(155) |
Sep
(77) |
Oct
(61) |
Nov
(45) |
Dec
(94) |
2006 |
Jan
(116) |
Feb
(33) |
Mar
(11) |
Apr
(23) |
May
(60) |
Jun
(89) |
Jul
(130) |
Aug
(109) |
Sep
(124) |
Oct
(63) |
Nov
(82) |
Dec
(45) |
2007 |
Jan
(31) |
Feb
(35) |
Mar
(123) |
Apr
(36) |
May
(18) |
Jun
(134) |
Jul
(133) |
Aug
(241) |
Sep
(126) |
Oct
(31) |
Nov
(15) |
Dec
(5) |
2008 |
Jan
(11) |
Feb
(6) |
Mar
(16) |
Apr
(29) |
May
(43) |
Jun
(149) |
Jul
(27) |
Aug
(29) |
Sep
(37) |
Oct
(20) |
Nov
(4) |
Dec
(6) |
2009 |
Jan
(34) |
Feb
(30) |
Mar
(16) |
Apr
(6) |
May
(1) |
Jun
(32) |
Jul
(22) |
Aug
(7) |
Sep
(18) |
Oct
(50) |
Nov
(22) |
Dec
(8) |
2010 |
Jan
(17) |
Feb
(15) |
Mar
(10) |
Apr
(9) |
May
(67) |
Jun
(30) |
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
(1) |
Dec
|
From: dpvc v. a. <we...@ma...> - 2008-12-22 05:26:49
|
Log Message: ----------- Added code to save/restore the images_created counts so that on-the-fly graphics in more than one part will work properly. Old data format is updated automatically to the new one, so problems should continue to work even if they are already in use by students. Modified Files: -------------- pg/macros: compoundProblem.pl Revision Data ------------- Index: compoundProblem.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/compoundProblem.pl,v retrieving revision 1.1 retrieving revision 1.2 diff -Lmacros/compoundProblem.pl -Lmacros/compoundProblem.pl -u -r1.1 -r1.2 --- macros/compoundProblem.pl +++ macros/compoundProblem.pl @@ -225,6 +225,9 @@ new_answers => "", # answer labels for THIS part ans_rule_count => 0, # the ans_rule count from previous parts new_ans_rule_count => 0, # the ans_rule count from THIS part + images_created => 0, # the image count from the precious parts + new_images_created => 0, # the image count from THIS part + imageName => "", # name of images_created image file score => 0, # the (weighted) score on this part total => 0, # the total on previous parts raw => 0, # raw score on this part @@ -284,7 +287,7 @@ main::RECORD_FORM_LABEL("_next"); main::RECORD_FORM_LABEL("_status"); $self->{status} = $self->decode; - $self->{isNew} = $main::inputs_ref->{_next} || ($main::inputs_ref->{submitAnswers} && + $self->{isNew} = $main::inputs_ref->{_next} || ($main::inputs_ref->{submitAnswers} && $main::inputs_ref->{submitAnswers} eq ($self->{nextLabel} || "Go on to Next Part")); if ($self->{isNew}) { $self->checkAnswers; @@ -301,6 +304,8 @@ sub initPart { my $self = shift; $main::ans_rule_count = $self->{status}{ans_rule_count}; + $main::images_created{$self->{status}{imageName}} = $self->{status}{images_created} + if $self->{status}{imageName}; main::install_problem_grader(\&compoundProblem::grader); $main::PG_FLAGS{compoundProblem} = $self; $self->initAnswers($self->{status}{answers}); @@ -360,6 +365,7 @@ $status->{answers} .= ';' if $status->{answers}; $status->{answers} .= $status->{new_answers}; $status->{ans_rule_count} = $status->{new_ans_rule_count}; + $status->{images_created} = $status->{new_images_created}; $status->{total} += $status->{score}; $status->{score} = $status->{raw} = 0; $status->{new_answers} = ''; @@ -392,6 +398,10 @@ return {%defaultStatus} unless $status; my @data = (); foreach my $hex (split(/(..)/,$status)) {push(@data,fromHex($hex)) if $hex ne ''} @data = split('\\|',join('',@data)); $status = {%defaultStatus}; + if (scalar(@data) == 8) { + # insert imageName, images_created, new_images_created, if missing + splice(@data,2,0,"",0); splice(@data,6,0,0); + } foreach my $id (main::lex_sort(keys(%defaultStatus))) {$status->{$id} = shift(@data)} return $status; } @@ -571,6 +581,10 @@ $status->{raw} = $result->{score}; $status->{score} = $result->{score}*$weight; $status->{new_ans_rule_count} = $main::ans_rule_count; + if (defined(%main::images_created)) { + $status->{imageName} = (keys %main::images_created)[0]; + $status->{new_images_created} = $main::images_created{$status->{imageName}}; + } $status->{new_answers} = join(';',@answers); my $data = quoteHTML($self->encode); @@ -623,3 +637,5 @@ return ($result,$state); } + +1; |
From: Gavin L. v. a. <we...@ma...> - 2008-11-19 16:56:45
|
Log Message: ----------- PGProblemEditor.pm: protect against undefined globalSets, e.g., when editing a problem in the Library Browser. Modified Files: -------------- webwork2/lib/WeBWorK/ContentGenerator/Instructor: PGProblemEditor.pm Revision Data ------------- Index: PGProblemEditor.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm,v retrieving revision 1.93 retrieving revision 1.94 diff -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -u -r1.93 -r1.94 --- lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm +++ lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm @@ -1210,7 +1210,7 @@ my $globalSet = $self->r->db->getGlobalSet( $setName ); my $problemPage; - if ( $globalSet->assignment_type =~ /gateway/ ) { + if ( defined($globalSet) && $globalSet->assignment_type =~ /gateway/ ) { $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::GatewayQuiz", courseID => $courseName, setID => "Undefined_Set"); # courseID => $courseName, setID => $fullSetName); @@ -1472,7 +1472,7 @@ # we need to know if the set is a gateway set to determine the redirect my $globalSet = $self->r->db->getGlobalSet( $setName ); my $problemPage; - if ( $globalSet->assignment_type =~ /gateway/ ) { + if ( defined( $globalSet) && $globalSet->assignment_type =~ /gateway/ ) { $problemPage = $self->r->urlpath->newFromModule("WeBWorK::ContentGenerator::GatewayQuiz", courseID => $courseName, setID => "Undefined_Set"); # courseID => $courseName, setID => $fullSetName); |
From: dpvc v. a. <we...@ma...> - 2008-11-19 15:49:38
|
Log Message: ----------- Fixed a bug where if the student answer has an evaluation error in a problem with adaptive parameters, the error message could incorrectly be displayed in the message area. The correct behavior is to mark the answer incorrect silently. Also, properly report errors in correct answer under similar circumstances. Modified Files: -------------- pg/lib/Value: Formula.pm Revision Data ------------- Index: Formula.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/Formula.pm,v retrieving revision 1.62 retrieving revision 1.63 diff -Llib/Value/Formula.pm -Llib/Value/Formula.pm -u -r1.62 -r1.63 --- lib/Value/Formula.pm +++ lib/Value/Formula.pm @@ -446,10 +446,15 @@ foreach my $i (0..$d-1) { my @a = (); my @p = @{$p->[$i]}; foreach my $j (0..$d-1) { - $P[$j] = 1; push(@a,(&$f(@p,@P)-$v->[$i])->value); - $P[$j] = 0; + $P[$j] = 1; + my $y = eval {&$f(@p,@P)}; + $l->Error(["Can't evaluate correct answer at adapted point (%s)",join(",",@$p,@P)]) + unless defined $y; + push(@a,($y-$v->[$i])->value); + $P[$j] = 0; } - push @A, [@a]; push @b, [(&$F(@p,@P)-$v->[$i])->value]; + my $y = eval {&$F(@p,@P)}; return unless defined $y; + push @A, [@a]; push @b, [($y-$v->[$i])->value]; } # # Use MatrixReal1.pm to solve system of linear equations |
From: Mike G. v. a. <we...@ma...> - 2008-11-19 04:47:05
|
Log Message: ----------- corrected formatting in POD documentation Modified Files: -------------- pg/lib: Applet.pm Revision Data ------------- Index: Applet.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Applet.pm,v retrieving revision 1.12 retrieving revision 1.13 diff -Llib/Applet.pm -Llib/Applet.pm -u -r1.12 -r1.13 --- lib/Applet.pm +++ lib/Applet.pm @@ -101,81 +101,87 @@ =head2 Default javaScript functions placed in header +=pod + These functions are automatically defined for use for any javaScript placed in the text of a PG question. - getApplet(appletName) -- finds the applet path in the DOM - - submitAction() -- calls the submit action of the applets - + getApplet(appletName) -- finds the applet path in the DOM + + submitAction() -- calls the submit action of the applets initializeAction() -- calls the initialize action of the applets getQE(name) -- gets an HTML element of the question by name or by id. Be sure to keep all names and ids unique within a given PG question. - + getQuestionElement(name) -- long form of getQE(name) - + listQuestionElements() -- for discovering the names of inputs in the PG question. An alert dialog will list all of the elements. - Usage: Place this at the END of the question, - just before END_DOCUMENT(): + Usage: Place this at the END of the question, just before END_DOCUMENT(): - TEXT(qq!<script> listQuestionElements() </script>!); - ENDDOCUMENT(); + TEXT(qq!<script> listQuestionElements() </script>!); + ENDDOCUMENT(); + to obtain a list of all of the HTML elements in the question + + List of accessor methods made available by the FlashApplet class: + Usage: $current_value = $applet->method(new_value or empty) + These can also be set when creating the class -- for exampe: + $applet = new FlashApplet( + # can be replaced by $applet =FlashApplet() when using AppletObjects.pl + codebase => findAppletCodebase("$appletName.swf"), + appletName => $appletName, + appletId => $appletName, + submitActionAlias => 'checkAnswer', + ); + + + appletId for simplicity and reliability appletId and appletName are always the same + appletName + archive the name of the .jar file containing the applet code + code the name of the applet code in the .jar archive + codebase a prefix url used to find the archive and the applet itself - list of accessor methods format: current_value = $self->method(new_value or empty) + height rectangle alloted in the html page for displaying the applet - appletId for simplicity and reliability appletId and appletName are always the same - appletName - - archive the name of the .jar file containing the applet code - code the name of the applet code in the .jar archive - codebase a prefix url used to find the archive and the applet itself - - height rectangle alloted in the html page for displaying the applet - width - - params an anonymous array containing name/value pairs - to configure the applet [name =>'value, ...] - - header stores the text to be added to the header section of the html page + params an anonymous array containing name/value pairs + to configure the applet [name =>'value, ...] + + header stores the text to be added to the header section of the html page object stores the text which places the applet on the html page - - debug in debug mode several alerts mark progress through the procedure of calling the applet - - config configuration are those customizable attributes of the applet which don't - change as it is used. When stored in hidden answer fields - it is usually stored in base64 encoded format. - base64_config base64 encode version of the contents of config - - configAlias (default: config ) names the applet command called with the contents of $self->config - to configure the applet. The parameters are passed to the applet in plain text using <xml> - The outer tags must be <xml> ..... </xml> - state state consists of those customizable attributes of the applet which change - as the applet is used. It is stored by the calling .pg question so that - when revisiting the question the applet - will be restored to the same state it was left in when the question was last - viewed. - - getStateAlias (default: getState) alias for command called to read the current state of the applet. - The state is passed in plain text xml format with outer tags: <xml>....</xml> - setStateAlias (default: setState) alias for the command called to reset the state of the applet. - The state is passed in plain text in xml format with outer tags: <xml>....</xml> - base64_state returns the base64 encoded version of the state stored in the applet object. - - initializeActionAlias -- (default: initializeAction) the name of the javaScript subroutine called to initialize the applet (some overlap with config/ and setState + debug in debug mode several alerts mark progress through the procedure of calling the applet + + config configuration are those customizable attributes of the applet which don't + change as it is used. When stored in hidden answer fields + it is usually stored in base64 encoded format. + base64_config base64 encode version of the contents of config + + configAlias (default: config ) names the applet command called with the contents of $self->config + to configure the applet. The parameters are passed to the applet in plain text using <xml> + The outer tags must be <xml> ..... </xml> + state state consists of those customizable attributes of the applet which change + as the applet is used. It is stored by the calling .pg question so that + when revisiting the question the applet + will be restored to the same state it was left in when the question was last + viewed. + + getStateAlias (default: getState) alias for command called to read the current state of the applet. + The state is passed in plain text xml format with outer tags: <xml>....</xml> + setStateAlias (default: setState) alias for the command called to reset the state of the applet. + The state is passed in plain text in xml format with outer tags: <xml>....</xml> + + base64_state returns the base64 encoded version of the state stored in the applet object. + + initializeActionAlias -- (default: initializeAction) the name of the javaScript subroutine called to initialize the applet (some overlap with config/ and setState submitActionAlias -- (default: submitAction)the name of the javaScript subroutine called when the submit button of the .pg question is pressed. - returnFieldName - - + returnFieldName - =cut @@ -536,6 +542,7 @@ @ISA = qw(Applet); +=head2 Insertion HTML code for FlashApplet =pod @@ -606,7 +613,7 @@ package JavaApplet; @ISA = qw(Applet); - +=head2 Insertion HTML code for JavaApplet =pod |
From: dpvc v. a. <we...@ma...> - 2008-11-14 04:15:51
|
Log Message: ----------- Updated ans_array and TeX methods so that Matrix arrays don't have an extra blank line at the bottom. (There was an extra \cr that shouldn't have been there.) Modified Files: -------------- pg/lib/Value: AnswerChecker.pm Matrix.pm Revision Data ------------- Index: AnswerChecker.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/AnswerChecker.pm,v retrieving revision 1.122 retrieving revision 1.123 diff -Llib/Value/AnswerChecker.pm -Llib/Value/AnswerChecker.pm -u -r1.122 -r1.123 --- lib/Value/AnswerChecker.pm +++ lib/Value/AnswerChecker.pm @@ -415,12 +415,13 @@ $self->{format_options} = [%options] unless $self->{format_options}; my ($open,$close,$sep) = ($options{open},$options{close},$options{sep}); my ($rows,$cols) = (scalar(@{$array}),scalar(@{$array->[0]})); - my $tex = ""; + my $tex = ""; my @rows = (); $open = '\\'.$open if $open =~ m/[{}]/; $close = '\\'.$close if $close =~ m/[{}]/; $tex .= '\(\left'.$open; $tex .= '\setlength{\arraycolsep}{2pt}', $sep = '\,'.$sep if $sep; $tex .= '\begin{array}{'.('c'x$cols).'}'; - foreach my $i (0..$rows-1) {$tex .= join($sep.'&',@{$array->[$i]}).'\cr'."\n"} + foreach my $i (0..$rows-1) {push(@rows,join($sep.'&',@{$array->[$i]}))} + $tex .= join('\cr'."\n",@rows); $tex .= '\end{array}\right'.$close.'\)'; return $tex; } Index: Matrix.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/Matrix.pm,v retrieving revision 1.36 retrieving revision 1.37 diff -Llib/Value/Matrix.pm -Llib/Value/Matrix.pm -u -r1.36 -r1.37 --- lib/Value/Matrix.pm +++ lib/Value/Matrix.pm @@ -396,6 +396,7 @@ $d = scalar(@entries); @entries = (); } } + $TeX =~ s/\\cr\n$/\n/; return '\left'.$open.'\begin{array}{'.('c'x$d).'}'."\n".$TeX.'\end{array}\right'.$close; } |
From: dpvc v. a. <we...@ma...> - 2008-10-21 18:00:13
|
Log Message: ----------- BACKPORT: Clear error message before checking student answer for errors. Tags: ---- rel-2-4-patches Modified Files: -------------- pg/lib/Value: AnswerChecker.pm Revision Data ------------- Index: AnswerChecker.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/AnswerChecker.pm,v retrieving revision 1.91.2.2.2.3 retrieving revision 1.91.2.2.2.4 diff -Llib/Value/AnswerChecker.pm -Llib/Value/AnswerChecker.pm -u -r1.91.2.2.2.3 -r1.91.2.2.2.4 --- lib/Value/AnswerChecker.pm +++ lib/Value/AnswerChecker.pm @@ -1686,6 +1686,7 @@ sub cmp_postprocess { my $self = shift; my $ans = shift; return unless $ans->{score} == 0; + $self->{context}->clearError; eval {$ans->{student_formula}->reduce} if defined($ans->{student_formula}); # check for bad function calls $self->cmp_error($ans) if $self->{context}{error}{flag}; # and report the error return if $ans->{ans_message} || $ans->{isPreview}; |
From: dpvc v. a. <we...@ma...> - 2008-10-21 17:59:11
|
Log Message: ----------- Clear the error message before checking the student's answer for errors. Modified Files: -------------- pg/lib/Value: AnswerChecker.pm Revision Data ------------- Index: AnswerChecker.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/AnswerChecker.pm,v retrieving revision 1.121 retrieving revision 1.122 diff -Llib/Value/AnswerChecker.pm -Llib/Value/AnswerChecker.pm -u -r1.121 -r1.122 --- lib/Value/AnswerChecker.pm +++ lib/Value/AnswerChecker.pm @@ -1686,6 +1686,7 @@ sub cmp_postprocess { my $self = shift; my $ans = shift; return unless $ans->{score} == 0; + $self->{context}->clearError; eval {$ans->{student_formula}->reduce} if defined($ans->{student_formula}); # check for bad function calls $self->cmp_error($ans) if $self->{context}{error}{flag}; # and report the error return if $ans->{ans_message} || $ans->{isPreview}; |
From: Mike G. v. a. <we...@ma...> - 2008-10-18 12:49:10
|
Log Message: ----------- Added Base64.js for use with applets Added Files: ----------- webwork2/htdocs/js: Base64.js Revision Data ------------- --- /dev/null +++ htdocs/js/Base64.js @@ -0,0 +1,143 @@ + +/** +* +* Base64 encode / decode +* http://www.webtoolkit.info/ +* +**/ + +var Base64 = { + + // private property + _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + + // public method for encoding + encode : function (input) { + var output = ""; + var chr1, chr2, chr3, enc1, enc2, enc3, enc4; + var i = 0; + + input = Base64._utf8_encode(input); + + while (i < input.length) { + + chr1 = input.charCodeAt(i++); + chr2 = input.charCodeAt(i++); + chr3 = input.charCodeAt(i++); + + enc1 = chr1 >> 2; + enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); + enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); + enc4 = chr3 & 63; + + if (isNaN(chr2)) { + enc3 = enc4 = 64; + } else if (isNaN(chr3)) { + enc4 = 64; + } + + output = output + + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); + + } + + return output; + }, + + // public method for decoding + decode : function (input) { + var output = ""; + var chr1, chr2, chr3; + var enc1, enc2, enc3, enc4; + var i = 0; + + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + + while (i < input.length) { + + enc1 = this._keyStr.indexOf(input.charAt(i++)); + enc2 = this._keyStr.indexOf(input.charAt(i++)); + enc3 = this._keyStr.indexOf(input.charAt(i++)); + enc4 = this._keyStr.indexOf(input.charAt(i++)); + + chr1 = (enc1 << 2) | (enc2 >> 4); + chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); + chr3 = ((enc3 & 3) << 6) | enc4; + + output = output + String.fromCharCode(chr1); + + if (enc3 != 64) { + output = output + String.fromCharCode(chr2); + } + if (enc4 != 64) { + output = output + String.fromCharCode(chr3); + } + + } + + output = Base64._utf8_decode(output); + + return output; + + }, + + // private method for UTF-8 encoding + _utf8_encode : function (string) { + string = string.replace(/\r\n/g,"\n"); + var utftext = ""; + + for (var n = 0; n < string.length; n++) { + + var c = string.charCodeAt(n); + + if (c < 128) { + utftext += String.fromCharCode(c); + } + else if((c > 127) && (c < 2048)) { + utftext += String.fromCharCode((c >> 6) | 192); + utftext += String.fromCharCode((c & 63) | 128); + } + else { + utftext += String.fromCharCode((c >> 12) | 224); + utftext += String.fromCharCode(((c >> 6) & 63) | 128); + utftext += String.fromCharCode((c & 63) | 128); + } + + } + + return utftext; + }, + + // private method for UTF-8 decoding + _utf8_decode : function (utftext) { + var string = ""; + var i = 0; + var c = c1 = c2 = 0; + + while ( i < utftext.length ) { + + c = utftext.charCodeAt(i); + + if (c < 128) { + string += String.fromCharCode(c); + i++; + } + else if((c > 191) && (c < 224)) { + c2 = utftext.charCodeAt(i+1); + string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); + i += 2; + } + else { + c2 = utftext.charCodeAt(i+1); + c3 = utftext.charCodeAt(i+2); + string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); + i += 3; + } + + } + + return string; + } + +} |
From: dpvc v. a. <we...@ma...> - 2008-10-14 12:47:43
|
Log Message: ----------- BACKPORT: changes from 1.51 and 1.52: 1.52: The copy() method now does not copy values listed by the noinherit() method (e.g., correct_ans, test_values, etc). This resolves bug #1528. 1.51: Allow the perlFunction method to produce functions that return formulas when not all the variables are used as arguments. For example: Formula("x+y")->perlFunction('f',['x']); $f = f(2); would produce the equivalent of $f = Formula("2+y"); Using the substitute method is more efficient, but this now does the right thing rather than generate error messages. Tags: ---- rel-2-4-patches Modified Files: -------------- pg/lib: Parser.pm Revision Data ------------- Index: Parser.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Parser.pm,v retrieving revision 1.32.2.2.2.1 retrieving revision 1.32.2.2.2.2 diff -Llib/Parser.pm -Llib/Parser.pm -u -r1.32.2.2.2.1 -r1.32.2.2.2.2 --- lib/Parser.pm +++ lib/Parser.pm @@ -72,6 +72,7 @@ sub copy { my $self = shift; my $copy = bless {%{$self}}, ref($self); + foreach my $id (Value::Formula::noinherit($self)) {delete $copy->{$id}} $copy->{tree} = $self->{tree}->copy($copy); foreach my $id (keys %{$self}) { $copy->{$id} = {%{$self->{$id}}} if ref($self->{$id}) eq 'HASH'; @@ -706,11 +707,15 @@ sub perlFunction { my $self = shift; my $name = shift || ''; my $vars = shift; $vars = [sort(keys %{$self->{variables}})] unless $vars; - my $n = scalar(@{$vars}); my $vnames = ''; + $vars = [$vars] unless ref($vars) eq 'ARRAY'; + my $n = scalar(@{$vars}); my $vnames = ''; my %isArg; if ($n > 0) { - my @v = (); foreach my $x (@{$vars}) {CORE::push(@v,"\$".$x)} + my @v = (); + foreach my $x (@{$vars}) {CORE::push(@v,"\$".$x); $isArg{$x} = 1} $vnames = "my (".join(',',@v).") = \@_;"; } + foreach my $x (keys %{$self->{variables}}) + {$vnames .= "\n my \$$x = main::Formula('$x');" unless $isArg{$x}} my $context = $self->context; my $fn = eval "package main; |
From: dpvc v. a. <we...@ma...> - 2008-10-14 12:44:06
|
Log Message: ----------- The copy() method now does not copy values listed by the noinherit() method (e.g., correct_ans, test_values, etc). This resolves bug #1528. Modified Files: -------------- pg/lib: Parser.pm Revision Data ------------- Index: Parser.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Parser.pm,v retrieving revision 1.51 retrieving revision 1.52 diff -Llib/Parser.pm -Llib/Parser.pm -u -r1.51 -r1.52 --- lib/Parser.pm +++ lib/Parser.pm @@ -72,6 +72,7 @@ sub copy { my $self = shift; my $copy = bless {%{$self}}, ref($self); + foreach my $id (Value::Formula::noinherit($self)) {delete $copy->{$id}} $copy->{tree} = $self->{tree}->copy($copy); foreach my $id (keys %{$self}) { $copy->{$id} = {%{$self->{$id}}} if ref($self->{$id}) eq 'HASH'; |
From: dpvc v. a. <we...@ma...> - 2008-10-11 01:49:58
|
Log Message: ----------- BACKPORT: Update to version 3.6a of jsMath. Changes include: * Worked around a problem with image fonts in Firefox3. The width of the images were not being properly reported (even when specified Killed by signal 2.MG tag's STYLE attribute) if the image wasn't loaded from the server yet. * Worked around a problem in IE8 when jsMath is loaded from the local disk rather than from a server. * Added more checks when jsMath.safeHBoxes is set to prevent additional ways in which the user could have inserted HTML tags into \hbox commands. * Fixed a bug in the spriteImageFonts plugin that had been causing it to fail in Firefox2 and earlier, Opera 9.2x and earlier, and all versions of MSIE. It seems to have stopped working somewhere after version 3.4 of jsMath. * Fixed a bug where newlines were not treated as spaces when scanning for arguments of macros that require arguments. * Fixed the eqn-number extension to handle \nonumber as a synonym for \nolabel, and made the equation*, align*, and multline* environments not produce equation numbers. * Removed a debugging alert from the Firefox3 local-file code that was accidentally left active in version 3.6. Tags: ---- rel-2-4-patches Modified Files: -------------- webwork2/htdocs/jsMath: jsMath-loader-post.html jsMath.js webwork2/htdocs/jsMath/extensions: eqn-number.js webwork2/htdocs/jsMath/plugins: autoload.js noImageFonts.js spriteImageFonts.js webwork2/htdocs/jsMath/test: index.html sample.html webwork2/htdocs/jsMath/uncompressed: jsMath.js Added Files: ----------- webwork2/htdocs/jsMath/local: macros.js Revision Data ------------- Index: jsMath.js =================================================================== RCS file: /webwork/cvs/system/webwork2/htdocs/jsMath/jsMath.js,v retrieving revision 1.36.2.1.2.2 retrieving revision 1.36.2.1.2.3 diff -Lhtdocs/jsMath/jsMath.js -Lhtdocs/jsMath/jsMath.js -u -r1.36.2.1.2.2 -r1.36.2.1.2.3 --- htdocs/jsMath/jsMath.js +++ htdocs/jsMath/jsMath.js @@ -40,11 +40,11 @@ //start = new Date().getTime(); jsMath.Script.Uncompress([ - ['if(!','window','.jsMath','||!',1,'.','jsMath.','loaded','){var ','jsMath_old','=',1,2,';',0,'document.','getElementById','||!',15,'childNodes||!',15,'createElement','){','alert("','The',' mathematics ','on this page requires W3C DOM support in its JavaScript. Unfortunately, your ','browser',' doesn\'t seem to have this.")}else{',1,2,'={version:"3.6",document:document,',1,':',1,',','platform',':(','navigator.',36,'.match(/','Mac/)?"mac":',38,36,40,'Win/)?"pc":"unix"),','sizes',':[50,60,70,85,100,120,144,173,207,249],styles:{".math','":{"font-family":"serif","font-style":"normal","font-weight":"normal','"},".typeset',48,'","line-height":"normal','","text-indent":"0px','"},".typeset .','normal',48,'"},"div','.typeset','":{"text-align":"','center",margin:"1em 0px"},"span',57,58,'left',49,' span',58,'left",border',':"0px",margin:"0px','",padding',':"0px"},"a .typeset img, .typeset a img','":{border:"0px','","border-bottom":"','1px solid',' blue;"},".typeset .size0','":{"font! -size":"','50','%"},".typeset .','size1',74,'60',76,'size2',74,'70',76,'size3',74,'85',76,'size4',74,'100',76,'size5',74,'120',76,'size6',74,'144',76,'size7',74,'173',76,'size8',74,'207',76,'size9',74,'249',76,'cmr10','":{"font-family":"jsMath-',113,', serif',53,'cmbx10',114,118,', ','jsMath-cmr10',53,'cmti10',114,124,', ',122,53,'cmmi10',114,130,53,'cmsy10',114,134,53,'cmex10',114,138,53,'textit','":{"font-family":"','serif","','font-style":"italic',53,'textbf',143,'serif","font-weight":"bold',53,'link":{"','text-decoration":"none',53,'error',74,'90%","',145,'","background-color','":"#FFFFCC',68,':"1px','",border:"',72,' #CC0000',53,'blank','":{display:"','inline-block','",overflow:"','hidden',162,'0px none",width:"0px",height:"0px',53,'spacer',167,168,'"},"#','jsMath_hiddenSpan":{','visibility:"hidden",position:"absolute",','top:"0px",left:"0px',51,52,177,'jsMath_message','":{position:"fixed",bottom:"','1px",left:"2px',158,'":"#E6E6E6','",border:"solid 1px #959595",margin! :"0px",padding:"','1px 8px','","z-index":"','102','",color:"bl! ack","fo nt-size":"','small",width:"auto','"},"#jsMath_panel',185,'1.75em",right:"1.5em',68,':".8em 1.6em',158,'":"#DDDDDD',162,'outset 2px',191,'103",','width:"auto',193,'10pt","font-style":"',54,195,' .disabled":{color:"#888888',195,' .infoLink',74,'85%"},"#jsMath_panel *":{"','font-size":"inherit","font-style":"inherit","font-family":"inherit',51,195,' div":{"','background-color":"inherit",color:"inherit"},"#jsMath_panel ','span":{"',220,'td',70,68,67,'","',220,'tr',70,68,67,'","',220,'table',70,68,67,158,'":"inherit",color:"inherit",height:"auto",',206,177,'jsMath_button',185,'1px",right:"2px',158,'":"white',189,'0px 3px 1px 3px',191,'102",color:"black","',152,'","font-size":"x-',194,'",cursor:"hand"},"#',243,' *":{padding:"0px",border',67,51,'","',216,177,'jsMath_global":{"',145,177,'jsMath_noFont',' .message":{"text-align":"center",padding:".8em 1.6em",border:"3px solid #DD0000","background-color":"#FFF8F8",color:"#AA0000","font-size":"',194,177,'jsMath_noFont .link":{padding:"! 0px 5px 2px 5px',162,'2px outset',158,'":"#E8E8E8',193,'80%",',206,255,'jsMath_PrintWarning',267,'x-',194,'"},"@media print":{"#',243,167,'none',177,'jsMath_Warning',167,'none"}},"@media screen":{"#',279,167,'none"}}},Element',':function(','A','){return ',6,15,16,'("jsMath_"+A)},','BBoxFor',294,'A','){this.','hidden.innerHTML','=\'<nobr><','span class="','typeset"><',307,'scale">\'+A+"</span></span></nobr>";var B={w:this.',170,'.offsetWidth',',h:this.',170,'.offsetHeight','};this.',305,'="";return B},EmBoxFor',294,'B){var A=',6,'Global.cache.R;if(!A[this.em]){A[this.em]={}}if(!A[this.em][B]){var C=this.BBoxFor(B);','A[this.em][B]={w:C.w/this.em,h:C.h/this.em}}return A[this.em][B]},','EmBoxForItalics',294,320,6,322,'if(B.match(/<i>|class=\\"(icm|italic|igreek|iaccent)/i)){C.w=C.Mw=','this.BBoxFor','(B+',6,'Browser.','italicString',').w-',6,333,'italicCorrection','}',323,'Init',':function(){','if(',6,'Setup.inited','!=1){',0,6,345,'){',6,'Setup.','Body()}if(',6,345,'!=1){if('! ,6,345,'==-100','){return }',23,'It looks like jsMath failed t! o set up properly (error code "+',6,345,'+"). I will try to keep going, but it could get ugly.");',6,345,'=1}}this.em=this.CurrentEm();','var A=',6,'Global.cache','.B;',0,'A[this.em]){A[this.em]={};','A[this.em].','bb=',330,'("x");var C=',375,'bb.h;',375,'d=',330,'("x"+',6,'HTML.Rule(1,','C/',6,'em)).h-C;if(',6,333,334,'){',375,'ic=',6,301,'(',6,333,334,').w}}',6,333,338,'=',375,'ic;var F=',375,'bb;var D=F.h;var E=',375,'d;this.h=(D-E)/this.em;this.d=E/this.em;this.hd=this.h+','this.d;this.',352,'TeXfonts','();var B=this.EmBoxFor(\'<',307,113,'">M</span>\').w/2;this.TeX.M_height=B*(26/14);this.TeX.h=this.h;this.TeX.d=',413,'TeX.hd=this.hd;this.Img.Scale();',0,'this.initialized',304,352,'Sizes','();this.','Img.UpdateFonts()}this.p_height=(','this.TeX.cmex10[0].','h+',429,'d)/0.85;',423,'=1},ReInit',342,'if(this.','em!=this.CurrentEm()){this.Init()}},CurrentEm',342,369,330,'(\'<span style="\'+',6,333,'block+\';','width:13em;height:1em','"></span>\').','w/13;if(A>0',296,'A}return ',33! 0,'(\'<img src="\'+',6,166,'+\'" style="',445,'"/>\').w/13},Loaded',342,'if(',9,8,'B=["Process","ProcessBeforeShowing","ConvertTeX","ConvertTeX2","ConvertLaTeX","ConvertCustom","CustomSearch","Synchronize","Macro","document"];','for(var A=0;A<','B','.length;A++){','if(',9,'[B[A]]){','delete ',9,'[B[A]]}}}if(',9,304,'Insert(jsMath,',9,')}',9,'=null;',6,7,'=1},Add',294,'C,A){for(var B in A){','C[B]=A[B]}},Insert',294,482,'if(C[B]&&typeof (A[B])=="object"&&(','typeof (C[B])=="','object"||',487,'function")){this.Insert(C[B],A[B])}else{C[B]=A[B]}}},Package',294,'B,A',304,'Insert(B.prototype,A)}};',6,'Global={isLocal:1,cache:{','T:{},D:{},R:{},B',':{}},ClearCache',342,6,371,'={',497,':{}}},GoGlobal',294,320,'String(',6,1,'.','location);var C','=(',6,'isCHMmode','?"#":"?");if(B){A=A.replace(/\\?.*/,"")+"?"+B}',6,'Controls.','Reload(',6,'root+"jsMath-','global.html"+C+escape(A))},Init',342,'if(',6,'Controls.cookie.','global=="always"&&!',6,'noGoGlobal','){if(',38,'accentColorName',! 360,0,6,1,'){',6,1,'=',1,'}',6,517,7,'=1;',6,517,'defaults.hid! denGloba l=null;this.GoGlobal(',6,517,'SetCookie(2))}},Register',342,369,6,1,'.parent;',0,6,'isCHMode){',6,514,'=(',6,1,'.','location.','protocol=="mk:")}try{',0,6,514,304,'Domain()}if(A',2,'&&A.',6,'isGlobal){A.',6,'Register(',6,1,')}}catch(B){',6,528,'=1}},Domain',342,'if(',38,'appName=="Microsoft Internet Explorer"&&',6,36,'=="mac"&&',38,'userProfile','!=null',360,'if(',1,'==parent',360,'var B=',6,15,'domain',';try{while(true){try{if(parent.',15,'title',594,'){return }}','catch(A){}',0,15,603,'.match(/\\..*\\./)){break}',6,15,603,'=',6,15,603,'.replace(/^[^.]*\\./,"")}}',609,6,15,603,'=B}};',6,'Script={request:null,Init',342,'if(!(',6,525,'asynch&&',6,525,'progress',')){if(',1,'.XMLHttpRequest','){try{','this.request','=new XMLHttpRequest}catch(C){}if(',641,'&&',6,'root.match','(/^file:\\/\\//)){try{',641,'.open("GET",',6,'root+"',6,'js",false);',641,'.send(null)}catch(','C){',641,'=null;if(',1,'.postMessage',304,'mustPost=1;',6,1,'.addEventListener("message",',6,'Post.','Listener! ,false)}}}}',0,641,'&&',1,'.','ActiveXObject',8,'A=["MSXML2.XMLHTTP.5','.0","MSXML2.XMLHTTP','.4',677,'.3',677,'","Microsoft.XMLHTTP"];','for(var B=0;B<','A.length&&!',641,';B++){try{',641,'=new ',674,'(A[B])}catch(C){}}}}',0,641,'||',6,352,'domainChanged',304,'Load=this.delayedLoad;this.needsBody=1}},Load',294,'B,A){','if(A){',6,'Message.Set("Loading "+','B);',6,'Script.','Delay(1);',6,'Script.Push(','this,"xmlRequest",B',');',6,709,6,'Message',',"Clear")}else{',6,709,710,')}},xmlRequest',294,'url){','this.blocking','=1;try{',641,649,'url,false);',641,655,'err){',723,'=0;if(',6,'Translate.','restart&&',6,'Translate.asynchronous){return""}throw"jsMath can\'t load the file \'"+url+"\'\\','nMessage: "+err.message}if(',641,'.status',594,'&&(',641,740,'>=400||',641,740,'<0)){',723,'=0;if(',6,734,'restart&&',6,737,'nError status: "+',641,740,'}',0,'url','.match(/\\.js$/)){','return(',641,'.responseText',')}var tmpQueue','=this.queue;this.queue','=[];',6,1,'.eval(',641,765,');',7! 23,'=0;','this.queue=this.queue.concat(','tmpQueue);this.Proce! ss();ret urn""},cancelTimeout:30*1000,blocking:0,cancelTimer:null,needsBody:0,queue:[],Synchronize',294,'A,B){','if(typeof (','A)!="string"){',6,709,'null,A,B',')}else{',6,709,6,1,',"eval",A)}},Push',294,'A,C,B',304,'queue[','this.queue.length',']=[A,C,B];if(!(',723,'||(this.needsBody&&!',6,15,'body))){this.Process()}},Process',342,'while(',796,'&&!',723,8,'C=this.queue[0];this.queue=this.queue.slice(1);',369,'this.SaveQueue();var B=C[0];var E=C[1];var D=C[2];if(B){B[E](D',786,'if(E){E(D)}}this.','RestoreQueue','(A)}},SaveQueue',342,'var A',767,'=[];return A},',814,294,'A){',777,'A)},delayedLoad',294,'A',304,'Push(','this,"','startLoad','",A)},',830,294,'A',8,'B=',6,15,21,'("iframe");','B.style.','visibility="','hidden";',841,'position="absolute";',841,'width="0px";B','.style.height="','0px";if(',6,15,'body.firstChild','){',6,15,'body.insertBefore(B,',6,15,852,786,6,15,'body','.appendChild(','B)}',723,'=1;this.','url=A;if(A','.substr(0,',6,'root.length',')==',6,'root){A=A.substr(',6,! 871,')}',6,703,'A);this.cancelTimer=setTimeout("',6,706,'cancelLoad','()",this.cancelTimeout);',436,'mustPost){B.src=',6,667,830,'(A,B',786,'if(A',762,'B.src=',6,520,'loader.html"}else{B.src=this.url}}},','endLoad',294,'A){if(this.cancelTimer){clearTimeout(this.cancelTimer);this.cancelTimer=null}',6,667,898,'();',6,715,'.Clear();if(A!="cancel"){',723,'=0;this.Process','()}},Start',342,'this.tmpQueue',767,'=[]},End',342,777,912,');',468,912,'},',883,294,'B,',900,'if(B==null){B','="Can\'t load file"}if(A==null){A=2000}',6,715,'.Set(B);setTimeout(\'',6,706,898,'("cancel")\',A)},Delay',294,'A){',723,'=1;setTimeout("',6,706,'endDelay','()",A)},',941,342,723,909,'()},','imageCount',':0,WaitForImage',294,'B){',723,867,948,'++;',436,'img==null',304,'img=[]}',369,'new Image',427,'img[this.img.length]=A;A.onload=function(){if(--',6,706,948,'==0){',6,706,941,'()}};A.onerror=A.onload;A.onabort=A.onload;A.src=B},Uncompress',294,'data){for(var k=0;k<data.length;k++){var d=data[k];var n=d! .length;for(var i=0;i<n;i++){',781,'d[i])=="number"){d[i]=d[d[! i]]}}dat a[k]=d.join("")}',1,771,'data.join(""))}};',6,'Post={',1,':null,Listener',294,'D){if(D.source!=',6,667,1,360,'var E=D.origin','.replace(/^file:\\/\\//,"");',369,15,603,990,'if(E==null||E==""){E','="localhost"}if(','A==null||A==""){A',996,'E!=A||!','D.data.substr(','0,6).match(/jsM(CP|LD):/)){return }var B=',1000,'6,3).replace(/ /g,"");var C=',1000,'10);if(',6,'Post.Commands[B',']){(',6,1007,'])(C)}},Commands:{SCR',294,'message){',6,1,771,'message)},ERR',294,'A){',6,706,883,'(A,3000)},BGN',294,'A){',6,706,'Start()},END',294,'A){',701,6,706,'End()}',6,706,898,'()}},',830,294,'A,B',304,1,'=B.contentWindow;',0,'A',762,'return ',6,'root+',449,6,520,'loader-post.html?"+A},',898,342,'this.',1,'=null}};',6,715,'={',166,':null,message:null,text:null,clear:null,Init',342,0,6,15,'body||!',6,525,636,360,'if(',6,352,'stylesReady){','this.message','=',6,'Setup.DIV("','message",{visibility:"',170,'"},',6,'fixedDiv',786,1078,'=',6,1081,'message",{',179,'bottom:"',186,'",','backgroundColor',! ':"#E6E6E6',189,190,'",zIndex:102,color:"black",fontSize:"',194,'"},',6,1086,')}','this.text','=',6,15,'createTextNode','("");',1078,864,1107,');',1078,'.onmousedown=',6,734,'Cancel},Set',294,700,'if(this.clear){clearTimeout(this.clear',');this.clear=null}if(',6,525,636,'){',0,1107,304,'Init();',0,1107,608,'if(',6,333,'textNodeBug','){',1078,'.innerHTML','=B','}else{',1107,'.nodeValue','=B}','this.message.style.',842,'visible";',701,1149,'cursor="pointer','";',0,1149,'cursor){',1149,'cursor="hand"}',1078,'.title=" Cancel Processing of Math "}else{',1149,'cursor="";',1078,'.title=""}}else{if(B',869,'8)!="Loading "){',6,1,740,'=B}}},Clear',342,1124,')}this.clear=setTimeout("',6,715,'.doClear()",1000)},doClear',342,436,'clear',304,'clear=null;',6,1,740,'="";',436,'text){',1107,1147,'=""}if(',1078,'){',1149,842,170,'"}}},Blank',342,436,166,'||!',6,15,'body',360,'this.blank','=',6,1081,166,'",{position',':(',6,333,'msiePositionFixedBug','?"absolute":"fixed"),',180,'",bottom:"0px! ",right:"0px",zIndex:101,',1097,':"white"},',6,1086,');if(',6,! 333,'msi eBlankBug){',1207,1143,'=" ";',1207,'.style.width="110%";',1207,848,'110%"}},UnBlank',342,436,166,'){',6,15,'body.removeChild(',1207,')}',1207,'=null}};',6,'Setup={',7,':[],DIV',294,'E,C,B){',926,'=',6,15,'body}var D=',6,15,21,'("div");D.id="jsMath_"+E;','for(var A in C){','D.style[A]=C[A]}',0,'B.hasChildNodes){B',864,'D',786,'B.insertBefore(D,','B.firstChild',')}return D},Script',294,700,436,7,'[B]){return }else{this.',7,'[B]=1}',0,'B.match("^([a-zA-Z]+:/?)?/")){B=',6,'root+B}',6,706,'Load(B,A)},Hidden',342,6,170,'=this.DIV("Hidden",{',179,'top:0,left:0,border:0,padding:0,margin:0});',6,'hiddenTop=',6,170,';return },Source',342,'if(',6,'Autoload','&&',6,1300,'.root){',6,'root=',6,1300,'.','root}else{',6,'root="";',369,6,15,'getElementsByTagName("','script");',701,683,'A.','length;B++){','var D=A[B].src;if(D&&D.match("(^|/|\\\\\\\\)',6,'js$")){',6,1306,'D.replace','(/',6,'js$/,"");break}}}}if(',6,'root.charAt(','0)=="\\\\"){',6,1306,6,'root.replace','(/\\\\/g,"/")}if(',! 6,1332,'0)=="/"){if(',6,1332,'1)!="/"){if(',6,15,566,'port){',6,'root=":"+',6,15,566,'port+',6,'root}',6,'root="//"+',6,15,566,'host+',6,1356,6,1306,6,15,566,'protocol+',6,1310,0,6,646,'(/^[a-z]+:/i)){var D=','new String(',6,15,511,'=new RegExp("/[^/]*/\\\\.\\\\./");',6,1306,1327,'(new RegExp("[^/]*$"),"")+',6,'root;while(',6,646,'(C)){',6,1306,6,1337,'(C,"/")}}}',6,'Img.',1306,6,651,'fonts/";',6,166,'=',6,651,166,'.gif";this.Domain()},Domain',342,'try{',6,15,603,'}catch(D',360,'var C="";',369,6,15,603,';if(',6,646,'("://([^/]*)/")){C=RegExp.$1}C=C.replace(/:\\d+$/,"");if(C==""||C==A',360,'if(',38,'appName=="Microsoft Internet Explorer"&&',6,36,'=="mac"&&',38,'onLine&&',38,593,'&&',6,15,'all',360,'C=C.split(/\\./);A=A.split(/\\./);if(C.length<2||A.length<2||','C[C.length-','1',']!=A[A.length-','1]||',1442,'2',1444,'2]){this.','DomainWarning','();return }var E=',1442,'2]+"."+',1442,'1];for(var B=3;B<=C.length&&B<=A.',1321,'if(',1442,'B',1444,'B]){break}E=',1442,'B]+"."+E}',6! ,15,603,'=E;this.',696,'=1},',1450,342,23,'In order for jsMath! to be a ble to load the additional components that it may need, the ',6,'js file must be ',7,' from a server in the same ',603,' as the page that contains it. Because that is not the case for this page, the',25,'displayed here may not appear correctly.")},','EncodeFont',294,'C',8,'B=',6,'TeX[C];if(B','[0].c',594,360,462,'128;A++){var D=B[A];B[A]=D[3];if(B[A]==null){B[A]={}}B[A].w=D[0];B[A].h=D[1];if(D[2]!=null){B[A].d=D[2]}B[A].c=',6,'TeX.encoding[A]}},Fonts',342,683,6,'TeX.fam','.',1321,369,6,1499,'[B];if(A',304,1482,'(A)}}},TeXfont',294,'C',8,'B=',6,1488,'==null',360,369,6,'EmBoxFor(\'<span class="\'+C+\'">\'+B[65].c','+"</span>");B.hd=A.h;B.dh=0.05;B.d=',6,1519,'+',6,386,'B.hd)+"</span>").h-B.hd;B.h=B.hd-B.d;if(C=="',130,'"){B.skewchar=','127','}else{if(','C=="',134,1528,'48}}},',415,342,462,6,1499,464,'if(',6,1499,'[A]){this.TeXfont(',6,1499,'[A])}}},Sizes',342,6,'TeXparams','=[];var B;var A;for(A=0;A<',6,46,464,6,1550,'[A]={}}for(B in ',6,'TeX){',781,6,'TeX[B])!="object"){for(! A=0;A<',6,46,464,6,1550,'[A][B]=',6,46,'[A]*',6,'TeX[B]/100}}}},Styles',294,'A){',0,'A){A=',6,'styles;A[".typeset .scale"]={"font-size":',6,525,'scale+"%"};this.stylesReady=1}',6,709,829,'AddStyleSheet','",A);if(',6,333,'styleChangeDelay','){',6,709,6,'Script,"Delay",1)}},StyleString',294,'E',8,'A={},F;for(F in E){if(typeof E[F]==="string"){A[F]=E[F]}else{if(F',869,'1)==="@"){A[F]=','this.StyleString(','E[F])}else{if(E[F]!=null',8,'D=[];for(var C in E[F]){if(E[F][C]!=null){D[D.length]=C+": "+E[F][C]}}A[F]=D.join("; ")}}}}var B="";for(F in A){B+=F+" {"+A[F]+"}\\n"}return B},',1586,294,'D',8,'B=',6,15,1316,'head")[0];',369,1602,'D);if(',6,15,'createStyleSheet){B.insertAdjacentHTML("beforeEnd",\'<','span style="display:','none">x</span><style type="text/css">\'+A+"</style>")}else{var C=',6,15,21,'("style");C.type="text/css";C',864,6,15,1111,'(A));B',864,'C)}},Body',342,436,'inited',360,'this.inited=-','1;',6,352,'Hidden();',1638,'2;',6,333,1133,1638,'3;if(',6,525,166,'){',6,71! 5,'.Blank()}',1638,'4;',6,352,'Styles();',1638,'5;',6,517,1133! ,1638,'6 ;',6,709,6,'Setup,"User","pre-font");',1638,'7;',6,709,6,'Font,"Check");if(',6,'Font.register.length){',6,709,6,'Font,"LoadRegistered")}this.inited=1},User',294,'A){if(',6,'Setup.UserEvent[A',']){(',6,1688,'])()}},UserEvent:{"pre-font":null,onload:null}};',6,'Update={',415,294,'D){for(var A in D){for(var B in D[A]){for(var C in D[A][B]){',6,'TeX[A][B][C]=D[A][B][C]}}}},TeXfontCodes',294,'C){',1262,683,'C[A].',1321,6,'TeX[A][B].c=C[A][B]}}}};',6,'Browser={allowAbsolute:1,allowAbsoluteDelim:0,','separateSkips',':0,valignBug:0,operaHiddenFix:"",','msieCenterBugFix',':"",','msieInlineBlockFix',':"",msieSpaceFix:"",imgScale:1,renameOK:1,',1590,':0,delay:1,version:0,','TestSpanHeight',342,6,305,'=\'<span><','span style="\'+this.block','+\';height:2em;width:','1px"></span></span>\';var B=',6,'hidden.firstChild;',369,1270,';this.','spanHeightVaries','=(B',315,'>=A',315,'&&B',315,'>0);','this.spanHeightTooBig','=(B',315,'>A',315,');',6,305,'=""},','TestInlineBlock',342,'this.block="d! isplay',':-','moz-inline-box";','this.hasInlineBlock','=',6,'BBoxFor(\'<span style="\'+this.block','+\';width:10px;height:5px"></span>\').w>0;if','(',1753,'){',6,'styles[".typeset',' .',166,'"].display="-',1752,468,6,1762,' .spacer"].display',1145,1750,':',168,'";',1753,'=',6,1756,1757,'(!',1753,608,'this.block+=";overflow:',843,369,6,301,'("x").h;this.mozInlineBlockBug=',6,1756,'+";height:"+A+\'px;width:1px','"></span>x','<',1723,'+";height:"+A+"px;width:1px;vertical-align:-"+A+\'px',446,'h>2*A;this.widthAddsBorder=',6,1756,'+\';overflow:',170,';height:1px;width:10px',';border-left:','10px solid',446,'w>10;','this.msieBorderBug','=',6,1756,1792,1793,'\').h!=',6,1756,1792,1804,72,1793,'\').h;','this.blankWidthBug=',1808,'||',6,1756,1724,'0px',446,'h==0},','TestRenameOK',342,6,305,'="<span></span>";',369,6,1727,'A.setAttribute("name","','jsMath_test','");this.renameOK=(',6,15,'getElementsByName("',1840,'").length>0);',6,305,1747,'TestStyleChange',342,6,305,'=\'<span ID="',18! 40,'">x</span>\';var B=',6,1727,369,'B',312,';',6,352,1586,'({! "#',1840 ,'":"font-size:200%"});this.',1590,'=(B',312,'==A);',6,305,1747,'VersionAtLeast',294,320,1377,'this.version',').split(".");','B=',1377,'B',1881,'if(B[1]==null){B[1]="0"}return A[0]>B[0]||(A[0]==B[0]&&A[1]>=B[1])},Init',342,6,27,'="unknown";this.',1748,427,1718,427,1831,427,1850,427,'MSIE',427,'Mozilla',427,'Opera',427,'OmniWeb',427,'Safari',427,'Konqueror();if(','this.allowAbsoluteDelim','){',6,'Box.DelimExtend=',6,'Box.DelimExtendAbsolute;',6,'Box.Layout=',6,'Box.LayoutAbsolute',1145,6,'Box.DelimExtend=',6,'Box.DelimExtendRelative;',6,'Box.Layout=',6,'Box.LayoutRelative}',436,1710,'){',6,'HTML.Place=',6,'HTML.','PlaceSeparateSkips',';',6,'Typeset.prototype.','Place=',6,1939,1936,'}},MSIE',342,436,1731,'&&!',1739,'){',6,27,'="MSIE";if(',6,36,'=="pc"){this.','IE7=(',1,639,594,');','this.quirks','=(',6,15,'compatMode=="BackCompat");this.msieStandard6=!',1962,'&&!this.IE7;',1910,867,1710,'=1',';this.buttonCheck=1;this.','msieBlankBug=1;this.','msieAccentBug',867,'msieRelativeCl! ipBug','=1;this.msieDivWidthBug=1;this.',1216,867,'msieIntegralBug',867,'waitForImages',867,'msieAlphaBug','=!this.IE7;this.','alphaPrintBug',1986,1712,'="position:relative; ";this.',1714,'=" display:',168,';";this.msieTeXfontBaselineBug=!',1962,';',1808,'=',1822,'1;this.msieSpaceFix=\'<',1621,168,'"></span>\';',6,'Macro("joinrel","\\\\mathrel{\\\\kern-5mu}"),',6,'Parser.prototype.mathchardef.','mapstocharOrig','=',6,2007,'mapstochar;',468,6,2007,2012,6,'Macro("mapstochar","\\\\rlap{\\\\',2008,'\\\\,}\\\\kern1mu"),',6,1762,' .arial"]={"font-family":"\'Arial unicode MS\'"};',0,'this.IE7||',1962,'){',6,'styles["#jsMath_message"].',845,468,6,2029,'width;',6,'styles["#jsMath_panel"].',845,468,6,2036,'width;',6,'styles["#jsMath_button"].','width="1px";',6,2043,845,468,6,2043,'width;',6,1086,'=',6,1081,1086,1212,':"absolute",zIndex:101});',6,1,'.attachEvent("','onscroll",',6,'Controls.MoveButton',');',6,1,2062,'onresize",',6,2065,');',6,2065,'()}',6,'styles["#jsMath_noFont .link"! ].','display="',168,'";',468,6,1762,1770,';',6,'styles[".tex2m! ath_div' ,'"]={};',6,'Add(',6,2088,'"],',6,'styles["div',57,'"]);',6,2088,'"].width="100%";',6,2088,'"].',2079,168,'";',6,1762,'"]["letter-spacing"]="0";if(','screen.deviceXDPI','&&','screen.logicalXDPI','&&',2111,'!=',2113,304,'imgScale*=',2113,'/',2111,';',6,525,'alpha=0}this.',334,'="<i>x</i>";',6,'EmBoxFor=',6,324,1530,6,36,'=="mac"){this.msieAbsoluteBug',867,'msieButtonBug',1978,1974,'quirks=1;',6,'Setup.Script("jsMath-','msie-mac.js");',6,'Parser.prototype.macros.angle=["Replace","ord",\'<font face="Symbol">‹</font>\',"',54,'"];',6,2036,'width="42em";',6,525,'printwarn=0}}',6,'Macro("not","\\\\mathrel{\\\\rlap{\\\\kern3mu','/}}")}},',1901,342,'if(',6,170,'.ATTRIBUTE_NODE){',6,27,'="',1901,'";if(',6,36,1956,1987,'=1}',1910,'=1;',6,2043,'cursor=',6,2078,1154,'",',6,2156,'/}}");if(',38,'vendor=="Firefox"){',1880,'=',38,'vendorSub',1530,38,'userAgent.match','(" Firefox/([0-9.]+)([a-z ]|$)")){',1880,'=RegExp.$1}}}},',1905,342,'if(',38,'accentColorName){',6,27,'="',1905,'";','th! is.allowAbsolute','=',1753,';',1910,'=',2208,';this.valignBug=!',2208,1973,1140,'=1;',6,'noChangeGlobal=1;',0,1753,'){',6,2143,'old-browsers.js','")}}},Opera',342,'if(',1739,'){',6,27,'="Opera";var B=',38,2194,'("Opera 7");',2208,'=0;this.delay=10;this.operaHiddenFix="[Processing]";if(B){',6,2143,2227,'")}',369,38,'appVersion.match(/^(\\d+\\.\\d+)/);',0,'A){vesion=0}this.operaAbsoluteWidthBug=this.operaLineHeightBug=(A[1]>=9.5)}},Safari:functio'], - ['n(){if(','navigator.','appVersion.match(/Safari\\//)){','jsMath.','browser','="Safari";','var A=',1,'userAgent.match','("Safari/([0-9]+)");A=(A)?A[1]:400;for(','var B=','0;B<',3,'TeX.fam','.length',';B++){','if(',3,13,'[B]&&',3,'TeX[',3,13,'[B]]){',3,21,3,13,'[B]].dh=0.1}}',3,'TeX.axis_height+=0.05;',3,'TeX.','default_rule_thickness','+=0.025',';this.allowAbsoluteDelim=','A>=125;this.safariIFRAMEbug=A>=312&&A<412;this.safariButtonBug=A<412;this.safariImgBug=1;this.textNodeBug=1;this.buttonCheck=A<500;this.styleChangeDelay=1}},','Konqueror',':function(){','if(',1,'product&&',1,'product.match("',38,'")){',3,4,'="',38,'";this.allowAbsolute=0',36,'0;if(',1,8,'(/',38,'\\/(\\d+)\\.(\\d+)/)){if(RegExp.$1<3||(RegExp.$1==3&&RegExp.$2<3)){this.separateSkips=1;this.valignBug=1;',3,'Setup.Script("jsMath-','old-browsers.js")}}',3,'Add(',3,'styles,{".typeset .cmr10','":"font-family: jsMath-','cmr10',', jsMath ','cmr10, serif','",".typeset .','cmbx10',66,71,68,71,', jsMath-cmr10, jsMa! th cmr10",".typeset .','cmti10',66,77,68,77,76,'cmmi10',66,83,68,83,70,'cmsy10',66,89,68,89,70,'cmex10',66,'cmex10, jsMath cmex10','"});',3,'Font.testFont','="jsMath','-',97,'"}}};',3,'Font={testFont:"jsMath-cmex10",','fallback',':"symbol",register:[],message:"<b>No jsMath TeX fonts found</b> -- using',' image fonts instead','.<br/>\\nThese',' may be slow and might not print well.<br/>\\nUse the jsMath control panel to get additional information','.",','extra_message',':\'Extra TeX fonts not found: <b><span id="jsMath_ExtraFonts"></span></b><br/>Using',109,'. This',111,'.\',','print_message',':"To print higher-resolution math symbols, click the<br/>\\n<b>Hi-Res Fonts for Printing</b> button on',' the jsMath control panel.<br/>\\n",','alpha_message',':"If the math symbols print as black boxes, turn off <b>image alpha channels</b><br/>\\nusing the <B>Options</B> pane of',121,'Test1',':function(','C',',F,D,E){if(F==null){F=124}if(D==null){D=2}if(E==null){E=""}var B=jsMath.BBo! xFor(\'<span style="font-family: \'+E+C+\', serif">\'+jsMath.T! eX[C][F] .c+"</span>");var A=jsMath.BBoxFor(\'<span style="font-family: serif">\'+jsMath.TeX[C][F].c+"</span>");return','(B.w>D*A.w&&B.h!=0)},Test2',126,'C',128,'(A.w>D*B.w&&B.h!=0)},CheckTeX',39,6,3,'BBoxFor(\'<span style="font-family',': \'+',3,100,'+\', serif">\'+',3,'TeX.cmex10[1','].c+"</span>");',3,'nofonts=((A.w*3>A.h||A.h==0)&&!this.Test1("cmr10','",null,null,"jsMath-"));if(!',3,'nofonts){','return }','if(',3,4,'!="Mozilla"||(',3,'platform','=="mac"&&(!',3,'Browser.VersionAtLeast(','1.5)||',3,159,'3)))||(',3,156,'!="mac"&&!',3,159,'3))){A=',3,137,': CMEX10, serif">\'+',3,'TeX.cmex10[1',144,3,146,'"));if(!',3,149,3,60,'BaKoMa-fonts.js")}}},Check',39,6,3,'Controls.','cookie;this.CheckTeX();if(',3,149,'if(A.autofont','||A','.font=="tex"){','A.font=this.',107,';if(A.warn){',3,'nofontMessage=1;A.warn=0;',3,187,'SetCookie(0);if','(',3,'window.NoFontMessage','){',3,204,'()}else{','this.Message(this.','message)}}}}else{',191,'){A.font="tex"}if(A',193,'return }}if(',3,'noImgFonts){','! A.font="unicode"}if(A','.font=="unicode','"){',3,60,107,'-"+',3,156,'+".js");',3,'Box.TeXnonfallback=',3,'Box.TeX',';',3,230,'=',3,'Box.TeXfallback;return }','if(!A.print&&A.printwarn){this.','PrintMessage','((',3,'Browser.','alphaPrintBug&&',3,187,'cookie.alpha)?this.',119,'+this.',122,':this.',119,')}if(',3,241,'waitForImages){',3,'Script.','Push(',3,'Script,"WaitForImage",',3,'blank)}if(A.font=="symbol"){',3,60,107,'-symbols.js");',3,'Box.TeXnonfallback=',3,230,';',3,230,'=',3,236,3,'Img.SetFont','({cmr10',':["all"],',83,279,89,279,'cmex10',279,71,279,77,':["all"]});',3,'Img.LoadFont','("cm-fonts")},Message',126,'A){if(',3,'Element("Warning',46,150,10,3,'Setup.DIV("','Warning','",{});B.innerHTML=\'<center><table><tr><td><div ','id="jsMath_noFont"><div ','class="message">\'+A','+\'<div style="text-align:left"><span style="float:left; margin: 8px 0px 0px 20px"><span onclick="',3,187,'Panel()" ','title=" Open ','the ','jsMath Control Panel',' " class="link">',312,'</span></! span','><span style="margin: 8px 20px 0px 0px; float:right"><s! pan oncl ick="',3,'Font.','HideMessage','()" title=" Remove this font warning message',313,'Hide this Message',315,'></div><div style="height:6px"></div><br clear="all"/></div></','div><div style="width:22em; height:1px"></div></td></tr></table></center><hr/>\'},',319,39,6,3,296,'");if(A','){A.style.display="none"}},',238,126,294,3,'Element("','PrintWarning',46,150,10,3,301,338,303,305,'+\'</',325,'Register',126,'H,B){if(typeof (H)=="string"){H={name:H}}if(!',3,'Setup.inited','&&!B){','this.register','[',355,14,']=H;',150,'var I=H.name;',6,'I.replace(/10$/,"");var F=',3,13,14,';if(H.prefix==null){H.prefix=""}if(!H.style){H.style="font-family: "+H.prefix+I+", serif"}if(!H.styles){H.styles={}}if(!H.macros){H.macros={}}',3,13,'[F]=I;',3,'TeX.famName[I]=F;H.macros[A]=["HandleFont",F];',3,63,3,'Parser.prototype.macros,H.macros);H.styles[".typeset ."+I]=H.style;',3,'Setup.Styles(H.styles);if(',3,'initialized){',3,256,'Push(',3,'Setup,"TeXfont",I)}var C=',3,187,'cookie;var E=!',3,'nofonts&&! H.test(I,H.testChar,H.testFactor,H.prefix);if(E&&C',193,'if(H.tex){H.tex','(I,F,H)}',150,'if(!E&&C.warn&&C.font=="tex"&&!',3,149,'if(!C.fonts.match("/"+I+"/")){C.fonts+=I+"/";',3,187,201,'(!',3,296,46,209,113,')}var G=',3,337,'ExtraFonts");if(G){if(G','.innerHTML','!=""){G',412,'+=","}G',412,'+=" "+H.prefix+I}}}if(C',218,'"||',3,216,'if(H.',107,'){H.',107,393,150,'var D={};if(C.font=="symbol"&&H.symbol!=null){D[I]=H.symbol',393,'else{D[I]=["all"]}',3,277,'(D);',3,291,'(I);if(',3,'initialized){',3,256,'Push(',3,'Img,"Scale");',3,256,'Push(',3,'Img,"UpdateFonts")}},LoadRegistered',39,6,'0;while(A<',355,14,'){this.Register(',355,'[A++],1)}',355,'=[]},Load',126,'A){',3,'Setup.Script(this.URL(A))},URL',126,'A){','return ',3,'Img.root+A+"/def.js"}};',3,'Controls={cookie:{scale:100,font:"tex",autofont:1,scaleImg:0,alpha:1,warn:1,fonts:"/",printwarn:1,stayhires:0,button:1,progress:1,asynch:0,blank:0,print:0,keep:"0D",global:"auto",hiddenGlobal:1},cookiePath:"/",','noCookiePattern',! ':/^(file|mk):$/,Init',39,'this.panel=',3,301,'panel",{display! :"none"} ,',3,'fixedDiv);','if(!',3,241,'msieButtonBug){this.Button',208,'setTimeout("',3,187,'Button()",500)}},Panel',39,3,'Translate.Cancel();if(','this.loaded','){this.Main',208,3,256,'delayedLoad(',3,'root+"jsMath-controls.html")}},Button',39,6,3,301,'button",{},',3,478,'A.',310,312,' ";A',412,'=\'<span onclick="',3,187,'Panel()">jsMath</span>\';if(!',3,'Global.','isLocal&&!',3,'noShowGlobal){A',412,'+=\'<span id="jsMath_global" ',310,'jsMath Global Panel " onclick="',3,516,'Show(1)">Global </span>\'}if(A.offsetWidth<30){A.style.width="auto"}if(!','this.cookie','.button',332,'MoveButton',39,3,'fixedDiv.style.','left','=document.body.','scrollLeft+"px";',3,533,'top',535,'scrollTop+"px";',3,533,'width',535,'clientWidth+"px";',3,533,'height',535,'clientHeight+"px"},GetCookie',39,'if(','this.defaults','==null){',554,'={}}',3,63,554,',',527,');this.userSet={};var C=',3,'document.cookie',';if(',3,'window.location','.protocol.match(this.',470,')){C=this.','localGetCookie','();','th! is.isLocalCookie','=1}if(','C.match(/jsMath','=([^;]+)/)){var D=unescape(RegExp.$1).split(/,/);for(',10,11,'D',14,15,6,'D[B].match(/(.*):(.*)/);if(A[2].match(/^\\d+$/)){A[2]=1*A[2]}',527,'[A[1]]=A[2];this.userSet[A[1]]=1}}},',572,39,465,3,568,'.search.substr(1)},SetCookie',126,'F){var B=[];for(var E in ',527,'){if(',554,'[E]==null||',527,'[E]!=',554,'[E]){B[B',14,']=E+":"+',527,'[E]}}B=B.join(",");if(',574,'){if(F==2){return"','jsMath="+escape(B)}','this.','localSetCookie','(B,F)}else{B=escape(B);if(B==""){F=0}if(','this.cookiePath','){B+="; path="+',613,'}if(','this.cookieDomain','){B+="; domain="+',617,'}if(',527,'.keep!="0D"){var A={D',':1000*60*60*24',',W',623,'*7,M',623,'*30,Y',623,'*365};var D=new Date;D.setTime(D.getTime()+',527,'.keep.substr(','0,1)*A[',527,632,'1,1)]);B+="; expires="+D.toGMTString()}if(B!=""){',3,565,101,'="+B;var C=',3,565,';if(F&&!',576,'=/)){alert("Cookies must be enabled in order to save jsMath options")}}}',465,'null},',611,126,'B,C){if(!C){',! 150,6,'String(',3,568,').replace(/\\?.*/,"");if(B!=""){A+="?',! 609,'if( A!=',3,568,'.href){this.Reload(A)}},Reload',126,'A){if(!',491,'){',150,491,'=0;',3,353,'=-100;',3,516,'ClearCache();if(A){',3,568,'.replace(A)}else{',3,568,'.reload()}}};',3,'Click={CheckClick',126,663,'A){A=',3,'window.event}if','(A.altKey){',3,187,'Panel()}},CheckDblClick',126,'B){if(!B){B=',3,687,'(!',3,'Click.DblClick){',3,'Extension.Require("double-click",1);',6,'B;B={};for(var C in A){B[C]=A[C]}}',3,256,'Push(',3,'Click,"DblClick",[B,this.alt])}};',3,'TeX={thinmuskip:3/18,medmuskip:4/18,thickmuskip:5/18,x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.362892,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,',34,':0.06,big_op_spacing1:0.111111,big_op_spacing2:0.166666,big_op_spacing3:0.2,big_op_spacing4:0.6,big_op_spacing5:0.1,integer:6553.6,scriptspace:0.05,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.5,scale:1,atom:["ord"! ,"op","bin","rel","open","close","punct","ord"],fam:["cmr10","',83,'","',89,'","cmex10","',77,'","","',71,'",""],famName:{cmr10:0,',83,':1,',89,':2,cmex10:3,',77,':4,',71,':6},encoding:["À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","°","Ñ","Ò","Ó","Ô","Õ","Ö","·","Ø","Ù","Ú","Û","Ü","µ","¶","ß","ï","!",""","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","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","[","\","]","^","_","`","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","{","|","}","~","ÿ"],cmr10:[[0.625',',0.683],[0.','833',728,'778',728,'694',728,'667',728,'75',728,'722',! 728,'778',728,'722',728,'778',728,'722',728,'583',',0.694,0,{i! c:0.0778 ,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15}}],[0.556',',0.694],[0.','556',752,'833',752,'833',752,'278',',0.431],[0.','306',',0.431,0.194],[0.','5',752,'5',752,'5,0.628],[0.5',752,'5,0.568],[0.75',752,'444,0,0.17],[0.5',752,'722',760,'778',760,'5,0.528,0.0972],[0.903,0.683],[1.01',728,'778,0.732,0.0486],[0.278',',0.431,0,{','krn:{"108":-0.278,"76":-0.319}}],[0.278',',0.694,0,{','lig:{"96":','60}}],[0.5',752,'833',',0.694,0.194],[','0.5',',0.75,0.0556],[0.','833',789,'778',752,'278',782,'krn:{"63":0.111,"33":0.111},lig:{"39":34}}],[0.389',',0.75,0.25],[0.','389',797,'5,0.75],[','0.778,0.583,0.0833],[','0.278,0.106',',0.194],[0.','333',780,'lig:{"45":','123}}],[',802,'],[0.5',797,'5,0.644','],[0.5,0.644],[0.5,0.','644',812,'644',812,'644',812,'644],[0.5,0.644],[0.278',760,'278',762,'278,0.5',803,'778',',0.367,-0.133],[','0.472,0.5',803,'472',782,783,'62}}],[0.778',752,'75',',0.683,0,{krn:{"','116','":-0.0278,"','67',837,'79',83! 7,'71',837,'85',837,'81',837,'84":-0.0833,"89":-0.0833,"86":-0.111,"87":-0.111}}],[0.','708',728,'722',728,'764',835,'88',837,'87',837,'65',837,'86',837,'89":-','0.0278}}],[0.','681',728,'653',',0.683,0,{','krn:{"111":-0.0833,"101":-0.0833,"117":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.111,"79":-0.0278,"67":-0.0278,"71":-0.0278,"81":-0.0278}}],[','0.785',728,'75',728,'361',835,'73":',864,'514',728,'778',835,'79',837,'67',837,'71',837,'81":-',864,'625',835,848,'917',728,'75',728,'778',835,'88',837,'87',837,'65',837,'86',837,'89":-',864,'681',835,'65','":-0.0833,"','111',837,'101',837,'97',837,'46',912,'44":-0.','0833}}],[0.','778,0.683',803,'736',835,'116',837,'67',837,'79',837,'71',837,'85',837,'81',837,848,'556',728,'722',835,'121',837,'101',912,'111',912,'114',912,'97',912,'65',912,'117":-0.',922,'75',728,'75',',0.683,0,{ic:0.','0139,',869,'1.03',961,'0139,',869,'0.75',835,'79',837,'67',837,'71',837,'81":-',864,'75',961,'025,krn:{"101',912,'111',912,'114',912,'97',912,'! 65',912,956,922,'611',728,'278',797,'5',752,'278',797,'5',752,! '278,0.6 68],[0.','278',782,783,'92}}],[0.5',780,'krn:{"118',837,'106":0.0556,"121',837,'119":-',864,'556,0.','694,0',',{krn:{"101":0.0278,"111":0.0278,"120":-0.0278,"100":0.0278,"99":0.0278,"113":0.0278,"118":-0.0278,"106":0.0556,"121":-0.0278,"119":-0.0278}}],[0.','444',780,'krn:{"104',837,'107":-',864,'556',752,'444',760,'306',750,'12,"102":11,"108":13}}],[0.5',',0.431,0.194,{','ic:0.','0139,krn:{"','106":',864,'556',782,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,1002,'306,0.668',803,'528',782,'krn:{"97','":-0.0556,"','101',837,'97',837,'111',837,'99":-',864,'278',752,'833',780,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,'556',780,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,'5,0.431,0',1016,1014,'431,0.194',1016,'528',762,'392',760,'394',760,'389,0.615,0,{krn:{"121',837,'119":-',864,'556',780,'krn:{"119":-',864,'528',',0.431,0,{ic:0.',1032,'97',1055,'101',837,'97',837,'111',837,'99":-',864,'722',1114,1032,'10! 1',837,'97',837,'111',837,'99":-',864,'528',760,'528',1030,'ic:0.',1032,'111',837,'101',837,'97',837,'46',912,'44":-0.',922,'444',760,'5',1114,'0278,',806,'124}}],[1',1114,'0278}],[0.','5',752,'5,0.668],[0.5,0.668]],',83,':[[0.615',961,'139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.',922,'833',835,'127":0.167}}],[0.','763',961,1157,'krn:{"127":0.0833}}],[0.','694',835,1173,'742',961,'0757,',1177,'831',961,'0812,krn:{"61',1055,'59":-0.0556,"58":-0.0556,"127":0.','0556}}],[0.','78',961,'0576,',1177,'583',961,'139',1169,1190,'667',868,1177,'612',961,'11,krn:{"61',1055,1189,1190,'772',961,'0502,',1177,'64',1114,'0037,','krn:{"127":',864,'566',',0.694,0.194,{ic:0.','0528,',1177,'518',1030,'ic:0.0556','}],[0.444',782,'ic:0.0378,krn:{"',1189,1190,'406',780,'krn:{"127":0.0556}}],[0.','438',1219,'0738,',1177,'497',1030,'ic:0.0359',',',1232,'469',782,'ic:0.',1157,1177,'354',780,1232,'576',760,'583',752,'603',1030,1216,864,'494',1114,'0637,krn:{"',1189,'0278}}],[0.','438',1! 219,'046,',1216,'0.111}}],[0.','57',1114,'0359}],[0.','517',10! 30,1177, '571',1114,'0359,krn:{"59',1055,'58":-0.',1190,'437',1114,'113,krn:{"',1189,1262,'54',1114,'0359,',1216,864,'596,0.694,0.194,{',1177,'626',1030,1232,'651',1219,'0359,',1216,1267,'622',1114,1270,'466',780,1177,'591',782,1177,'828',1114,1161,'517',1030,1177,'363,0.431,0.0972,{ic:0.0799,',1177,'654',1030,1216,'0.0833}}],[1',826,'1',826,'1',826,'1',826,'0.278',',0.464,-0.0363],[','0.278',1329,'0.5,0.465,-0.0347],[',1332,'0.5',760,'5',760,'5',760,'5',762,'5',762,'5,0.',1097,812,1097,812,'431',803,'278,0.106],[',802,803,'778',',0.539,0.0391],[','0.5,0.75,0.25,{krn:{"1',1055,'65',1055,'77',1055,'78',1055,'89":0.0556,"90":-0.',1190,'778',1355,1332,'0.531',782,1224,',',1177,'75',835,'127":','0.','139}}],[0.','759',961,'0502,',1177,'715',961,'0715,krn:{"61',837,1189,922,'828',961,1157,1232,'738',961,'0576,',1177,'643',961,'139',1169,922,'786',868,1177,'831',961,'0812,krn:{"61',1055,1189,1190,'44',961,'0785,',1216,1267,'555',961,'0962',1169,'167}}],[0.','849',961,'0715,krn:{"61',1055,1! 189,1190,'681',835,1376,864,'97',961,'109,krn:{"','61',1055,1189,922,'803',961,1433,'61',912,'61',837,1189,922,'763',961,1157,1177,'642',961,'139',1169,922,'791,0.683,0.194,{',1177,'759',961,'00773,',1177,'613',961,'0576,krn:{"61',1055,1189,922,'584',961,'139,krn:{"61',837,1189,922,'683',961,1433,'59":-0.111,"',1278,'111,"61',1055,1376,864,'583',961,'222',',krn:{"59":-0.167,"58":-0.167,"61":-0.111}}],[0.','944',961,'139',1486,'828',961,'0785,krn:{"61',912,'61',837,1189,922,'581',961,'222',1486,'683',961,'0715,krn:{"61',1055,1189,922,'389,0.75],[0.389',787,'0.389',787,'1,0.358,-0.142],[',1513,'0.417',782,1216,1267,'529',760,'429',752,'433',780,1232,'52',782,'krn:{"89":0.0556,"90',1055,'106":-0.111,"102":-0.167,"',1173,'466',780,1232,'49',1219,'108,krn:{"',1189,1420,'477',1030,1239,',',1216,864,'576',782,'krn:{"127":-',864,'345,0.66],[0.412,0.66,0.194,{ic:0.0572,krn:{"59',1055,1278,1190,'521',782,'ic:0.0315}],[0.298',782,'ic:0.0197,',1177,'878',760,'6',760,'485',780,1232,'503! ',1030,1177,'446',1030,1239,',',1177,'451',1114,1157,'krn:{"',! 1189,119 0,'469',780,1232,'361,0.615,0,{',1177,'572',780,1216,864,'485',1114,'0359,',1216,864,'716',1114,'0269,',1177,'572',780,1216,864,'49',1030,1239,',',1232,'465',1114,'044,',1232,'322',780,1216,864,'384',1030,1177,'636',1030,1216,1267,'5,0.714,0,{ic:0.154}],[0.278',782,'ic:0.399}]],',89,':[[',801,'0.278,0.444,-0.0556],[',801,1332,801,'0.5,0.444,-0.0556],[',801,801,801,801,801,801,801,'1',787,1633,1633,'0.778',1329,'0.778,0.464,-0.0363','],[0.778,0.636,0.136',1648,1648,1648,1648,1648,'],[0.778',826,'0.778,0.483,-0.0169],[0.778',1355,'0.778',1355,'1',1355,'1',1355,'0.778',1355,'0.778',1355,'1',826,'1',826,'0.5',787,'0.5',787,'1',826,'1',787,'1',787,'0.778',1329,'1',826,'1',826,'0.611',787,'0.611',787,'1',826,'1',787,'1',787,'0.778',760,'275,0.556],[1',760,'667',1355,'0.667',1355,'0.889',787,'0.889',787,'0',787,'0',826,'0.556',752,'556',752,'667',760,'5',789,'722',752,'722',752,'778',752,'778',752,'611',752,'798',835,'48":0.','194}}],[0.657',961,'0304',',krn:{"48":0.',1378,'527',96! 1,'0583',1738,1378,'771',961,'0278',1738,922,'528',961,'0894',1738,'111}}],[0.','719',961,'0993',1738,1754,'595',',0.683,0.0972,{ic:0.','0593',1738,1754,'845',961,'00965',1738,1754,'545',961,'0738,krn:{"48":',864,'678',1761,'185',1738,1420,'762',961,'0144',1738,1190,'69',835,1734,'139}}],[1.2',835,1734,1378,'82',961,'147',1738,922,'796',961,1747,1738,1754,'696',961,'0822',1738,922,'817,0.683,0.0972,{krn:{"48":',1267,'848',835,1734,922,'606',961,'075',1738,1378,'545',961,'254,krn:{"48":',864,'626',961,'0993',1738,922,'613',961,'0822,krn:{"48":',864,'988',961,'0822',1738,922,'713',961,'146',1738,1378,'668',1761,'0822',1738,922,'725',961,'0794',1738,1378,'667,0.556],[0.',1850,1850,1850,1850,'611',752,'611',752,'444',797,'444',797,'444',797,'444',797,'5',797,'5',797,'389',797,'389',797,'278',797,'5',797,'5',797,'611',797,'5',797,'278',787,'0.833,0.04,0.96],[0.75',728,'833',728,'417',1219,'111}],[0.',1850,'667,0.556',1648,1648,'],[0.444',787,'0.444',787,'0.444',787,'0.611',787,'! 0.778,0.694,0.13','],[',1906,'],[',1906,'],[',1906,']],cmex10:! [[0.458' ,',0.04,1.16,{n:','16}],[0.458',1914,'17}],[0.417',1914,'104}],[0.417',1914,'105','}],[0.472,0.04,1.16,{n:','106',1922,'107',1922,'108',1922,'109}],[0.583',1914,'110}],[0.583',1914,'111',1922,'68',1922,'69}],[0.333',',0,0.6,{delim:{rep:','12}}],[0.556',1938,'13}}],[0.578',1914,'46}],[0.578',1914,'47}],[0.597',',0.04,1.76,{n:','18}],[0.597',1946,'19}],[0.736',',0.04,2.36,{n:','32}],[0.736',1950,'33}],[0.528',1950,'34}],[0.528',1950,'35}],[0.583',1950,'36}],[0.583',1950,'37}],[0.583',1950,'38}],[0.583',1950,'39}],[0.75',1950,'40}],[0.75',1950,'41}],[0.75',1950,'42}],[0.75',1950,'43}],[1.04',1950,'44}],[1.04',1950,'45}],[0.792',',0.04,2.96,{n:','48}],[0.792',1978,'49}],[0.583',1978,'50}],[0.583',1978,'51}],[0.639',1978,'52}],[0.639',1978,'53}],[0.639',1978,'54}],[0.639',1978,'55}],[0.806',1978,'56}],[0.806',1978,'57}],[0.806',',0.04,2.96],[','0.806',1998,'1.28',1998,'1.28',1998,'0.811',1946,'30}],[0.811',1946,'31}],[0.875',',0.04,1.76,{delim:{top:','48,bot:64,rep:66}}],[0.875',! 2010,'49,bot:65,rep:67}}],[0.667',2010,'50,bot:52,rep:54}}],[0.667',2010,'51,bot:53,rep:55','}}],[0.667,0.04,1.76,{delim:{bot:','52,rep:54',2018,'53,rep:55','}}],[0.667,0,0.6,{delim:{top:','50,rep:54',2022,'51,rep:55','}}],[0.889,0,0.9,{delim:{top:','56,mid:60,bot:58,rep:62',2026,'57,mid:61,bot:59,rep:62',2026,'56,bot:58,rep:62',2026,'57,bot:59,rep:62','}}],[0.889,0,1.8,{delim:{rep:','63',2034,'119}}],[0.889,0,0.3,{delim:{rep:62',2022,'120,bot:121,rep:63}}],[0.875',2010,'56,bot:59,rep:62}}],[0.875',2010,'57,bot:58,rep:62}}],[0.875',1938,'66}}],[0.875',1938,'67}}],[0.611',1946,'28}],[0.611',1946,'29','}],[0.833,0,1,{n:','71}],[1.11,0.1,1.5],[','0.472,0,1.11,{ic:0.194,n:','73}],[0.556,0,2.22,{ic:0.444}],[1.','11,0,1,{n:','75}],[1.51',',0.1,1.5],[1.',2056,'77}],[1.51',2058,2056,'79}],[1.51',2058,'06,0,1,{n:88}],[0.944,0,1,{n:89}],[',2054,'90',2052,'91',2052,'92',2052,'93',2052,'94',2052,'95}],[1.44',2058,'28,0.1,1.5],[0.556,0,2.22,{ic:0.444}],[1.11',2058,'11',2058,'11',2058,'1! '], - ['1,0.1,1.5],[1.11,0.1,1.5],[0.944,0,1,{n:97}],[1.28,0.1,1.5','],[0.556,0.722,0,{n:','99','}],[1,0.75,0,{n:','100}],[1.44,0.75',1,'102',3,'103}],[1.44,0.75],[0.472',',0.04,1.76,{n:','20}],[0.472',9,'21}],[0.528',9,'22}],[0.528',9,'23}],[0.528',9,'24}],[0.528',9,'25}],[0.667',9,'26}],[0.667',9,'27','}],[1,0.04,','1.16,{n:113}],[1',9,'114',25,'2.36,{n:115',25,'2.96,{n:116}],[1.06,0,1.8,{delim:{top:118,bot:116,rep:117}}],[1.06,0,0.6],[1.06,0.04,0.56],[0.778',',0,0.6,{delim:{','top:126,','bot:127,rep:119','}}],[0.667',33,'top:120,rep:63}}],[0.667',33,'bot:121,rep:63}}],[0','.45,0.12],[0',41,41,41,'.778',33,34,'rep:119}}],[0.778',33,35,'}}]],cmti10:[[0.627',',0.683,0,{ic:0.','133}],[0.818,0.683],[0.767',52,'094}],[0.','692,0.683],[0.664',52,'153}],[0.743',52,'164}],[0.','716',52,'12}],[0.','767',52,'111}],[0.716',52,'0599}],[0.767',52,'111}],[0.716',52,'103}],[0.','613',',0.694',',0.194,{ic:0.','212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,! "108":15}}],[0.','562',74,75,72,'588',74,75,72,'882',74,75,72,'894',74,75,72,'307',',0.431,0,{ic:0.','0767}],[0.','332,0.431',75,'0374}],[0.511',',0.694],[0.','511',',0.694,0,{ic:0.','0969','}],[0.511,0.','628',',0,{ic:0.','083}],[0.511',102,'108',104,'562',106,72,'831',100,'46,0,0.17],[0.537',74,75,'105}],[0.','716',95,'0751','}],[0.716',95,122,104,'528,0.0972,{ic:0.0919}],[0.883',52,63,'985',52,63,'767,0.732,0.0486,{ic:0.',55,'256,0.431,0,{krn:{"108":-0.256,"76":-0.321}}],[0.307',102,'124,lig:{"96":','60}}],[0.','514',102,'0696}],[0.818',74,75,'0662}],[0.769',100,'818',',0.75,0.0556',',{ic:0.136}],[0.','767',102,'0969}],[0.307',102,'124',',krn:{"','63":0.102,"33":0.102','},lig:{"39":34}}],[0.','409',',0.75,0.25,{ic:0.','162}],[0.409',158,'0369',104,'75',106,'149}],[0.767,0.562,0.0567,{ic:0.0369','}],[0.307,0.','106',',0.194],[0.','358',95,'0283,','lig:{"45":123}}],[0.','307,0.106],[0.511',158,'162',104,'644,0',',{ic:0.136}],[0.511,0.644,0',178,178,178,'.194',178,178,178,1! 82,178,178,148,'307',95,'0582',166,'431',75,'0582',166,'5',75,! '0756}], [0.767,0.367,-0.133,{ic:0.0662',104,'5',168,'511',102,'122,lig:{"96":62}}],[0.767',102,'096}],[0.743,0.683,0,{','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',211,'86','":-0.102,"','87',215,'101":-0.0511,"97":-0.0511,"111":-0.0511,"100":-0.0511,"99":-0.0511,"103":-0.0511,"113":-0.0511}}],[0.','704',52,72,'716',52,'145}],[0.','755',52,'094',154,'88','":-0.0256,"','87',230,'65',230,'86',230,'89','":-0.0256}}],[0.','678',52,63,'653',52,'133',154,'111',211,'101',211,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',215,'79":-0.0256,"67":-0.0256,"71":-0.0256,"81":-0.0256}}],[0.','774',52,'0872}],[0.743',52,60,'386',52,'158}],[0.525',52,'14}],[0.769',52,'145',154,254,'627,0.683,0,{krn:{"84',211,'89',211,'86',215,'87',215,218,'897',52,60,'743',52,60,'767',52,'094',1! 54,'88',230,'87',230,'65',230,'86',230,'89',238,'678',52,'103',154,'65":-0.0767}}],[0.','767,0.683',75,55,'729',52,'0387,',209,'0.0256,"84',211,'89',211,'86',215,'87',215,218,'562',52,63,'716',52,'133',154,'121',211,'101',211,'111',251,'117',211,302,'743',52,60,'743',52,'184',154,'111',211,'101',211,'117',251,'65',215,254,'999',52,'184',154,302,'743',52,'158',154,254,'743',52,'194',154,'101',211,'111',251,'117',211,302,'613',52,224,'307',158,'188}],[0.514',102,'169}],[0.307',158,119,'511',102,'0665',166,'668',106,'118}],[0.307',102,137,'92}}],[0.','511',95,96,'46',102,'0631',154,218,'46',95,'0565',154,218,'511',102,'103',',krn:{"108":0.0511}}],[0.','46',95,122,154,218,'307',74,75,76,'12,"102":11,"108":13}}],[0.','46,0.431',75,'0885}],[0.','511',102,96,'307,0.655',106,'102',166,'655',75,224,'46',102,'108}],[0.','256',102,'103',408,'818',95,96,'562',95,'0767',154,'39":-0.102}}],[0.511',95,'0631',154,218,'511,0.431',75,'0631',154,218,'46,0.431',75,421,'422',95,'108',154,218,'4! 09',95,'0821}],[0.332,0.615',106,'0949}],[0.537',95,96,'46',95! ,434,'66 4',95,'108',408,'464',95,63,'486,0.431',75,421,'409',95,'123}],[0.511',95,'0921',',lig:{"45":124}}],[1.','02',95,'0921}],[0.511',102,'122',104,'668',106,'116',104,'668',106,'105}]],cmbx10:[[0.692',',0.686],[0.','958',503,'894',503,'806',503,'767',503,'9',503,'831',503,'894',503,'831',503,'894',503,'831',503,'671',102,'109,krn:{"39":0.109,"63":0.109,"33":0.109,"41":0.109,"93":0.109},lig:{"105":',77,'639',100,'639',100,'958',100,'958',100,'319',',0.444],[0.','351,0.444',168,'575',100,'575',100,'575,0.','632],[0.575',100,544,'596],[0.869',100,'511,0,0.17],[0.597',100,'831',537,'894',537,544,'542,0.0972],[1.04,0.686],[1.17',503,'894,0.735,0.0486],[0.319',',0.444,0,{krn:{"','108":-0.319,"76":-0.378}}],[0.35',',0.694,0,{lig:{"96":',138,'603',100,'958',74,168,'575',147,'],[0.958',147,'],[0.894',100,'319',',0.694,0,{krn:{"','63":0.128,"33":0.128',156,'447',',0.75,0.25],[0.','447',580,544,'75],[0.894,0.633,0.133],[0.','319,0.156',168,'383,0.444,0,{',172,585,'],[0.575',580,544,'644],[! ','0.575,0.644],[0.575,0.644],[',594,594,594,'0.',544,'644],[0.319',537,'319,0.444',168,'35,0.5',168,'894,0.391,-0.109],[0.543,0.5',168,'543',562,'62}}],[0.894',100,'869',',0.686,0,{krn:{"','116','":-0.0319,"','67',615,'79',615,'71',615,'85',615,'81',615,'84":-0.0958,"89":-0.0958,"86":-0.128,"87":-0.128}}],[','0.818',503,'831',503,'882',613,'88',615,'87',615,'65',615,'86',615,'89','":-0.0319}}],[0.','756',503,'724,0.686,0,{','krn:{"111":-0.0958,"101":-0.0958,"117":-0.0958,"114":-0.0958,"97":-0.0958,"65":-0.128,"79":-0.0319,"67":-0.0319,"71":-0.0319,"81":-0.0319}}],[','0.904',503,'9',503,'436',613,'73','":0.0319}}],[0.','594',503,'901',613,'79',615,'67',615,'71',615,'81',642,'692',613,626,'1.09',503,'9',503,'864',613,'88',615,'87',615,'65',615,'86',615,'89',642,'786',613,'65":-0.0958,"111',615,'101',615,'97',615,'46":-0.0958,"44":-0.0958}}],[0.','864,0.686',168,'862',613,'116',615,'67',615,'79',615,'71',615,'85',615,'81',615,626,'0.639',503,'8',613,'121',615,'101":-0.0958,"1! 11":-0.0958,"114":-0.0958,"97":-0.0958,"65":-0.0958,"117":-0.0! 958}}],[ 0.','885',503,'869,0.686',106,'016,',646,'1.19,0.686',106,'016,',646,'0.869',613,'79',615,'67',615,'71',615,'81',642,'869,0.686',106,'0287',154,718,'703',503,'319',580,'603',100,'319',580,'575',100,'319',100,'319',562,391,'559',560,'118',615,'106":0.0639,"121',615,'119',642,'639',74,',0',',{krn:{"101":0.0319,"111":0.0319,"120":-0.0319,"100":0.0319,"99":0.0319,"113":0.0319,"118":-0.0319,"106":0.0639,"121":-0.0319,"119":-0.0319}}],[0.','511',560,'104',615,'107',642,'639',100,'527',537,'351',102,526,418,544,'444',75,'016,krn:{"','106',654,'639',576,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,'319',100,'351',74,168,'607',576,'97":-0.0639,"101',615,'97',615,'111',615,'99',642,'319',100,'958',560,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,'639',560,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,544,'444,0',770,'639,0.444,0',182,770,'607,0.444',168,'474',537,'454',537,'447,0.635,0,{krn:{"121',615,'119',642,'639',560,'119',642,856,106,788,'! 97":-0.0639,"101',615,'97',615,'111',615,'99',642,'831,0.444',106,788,'101',615,'97',615,'111',615,'99',642,'607',537,856,75,788,'111',615,'101',615,'97',615,694,'511',537,544,'444',106,'0319',489,'15,0.444',106,'0319}],[0.575',100,'575',100,'575',74,']]};','jsMath.Img','={fonts:[50,60,70,85,100,120,144,173,207,249,298,358,430],w:{"50":6.9,"60":8.3,"70":9.7,"85":11.8,"100":13.9,"120":16.7,"144":20,"173":24,"207":28.8,"249":34.6,"298":41.4,"358":49.8,"430":59.8},best:4,update:{},factor:1,loaded:0,SetFont',':function(','B){for(var A in B){if(!','this.update[A',']){',924,']=[]}',924,']=',924,'].concat(B[A])}},AddFont',922,'A,B){if(!',920,'[A]){',920,'[A]={}}jsMath.Add(',920,'[A],B)},UpdateFonts',':function(){','var D=this.update;','if(!this.loaded){','return }for(var A in D){for(var B=0;B<D[A].length;B++){var C=D[A][B];if(C=="all"){for(C in ','jsMath.TeX[','A]){',944,'A][C].img','={}}}else{',944,947,'={}}}}this.update={}},BestSize',940,'var B=jsMath.em*this.factor;var A=','thi! s.w[this.fonts[','0]];for(var C=1;C<this.fonts.length;C++){if(! B<(',954 ,'C]]+2*A)/3){return C-1}A=',954,'C]]}return C-1},Scale',940,942,'return }this.best=this.BestSize();this.em=',920,'.w[this.fonts[this.best]];','this.scale','=(jsMath.em/this.em);','if(Math.abs(',965,'-1)<0.12){',965,'=1}},URL',922,'A,B,E){var D=(','jsMath.Controls.cookie.','alpha)?"/alpha/":"/plain/";','if(E==null','){E="def.js"}else{E="char"+E+".png"}if(B!=""){B+="/"}','return this.','root+A+D+B+E},LoadFont',922,'A){',942,'this.Init()}jsMath.Setup.Script(this.URL(A,""))},Init',940,'if(',974,'print||',974,'stayhires','){',974,'print=',974,989,';this.factor*=3;if(!','jsMath.Controls.','isLocalCookie||!jsMath.Global.isLocal){',996,'SetCookie(0)}if(','jsMath.Browser.','alphaPrintBug){',974,'alpha=0}}var B="0123456789ABCDEF";this.HexCode=[];for(var C=0;C<128;C++){var D=Math.floor(C/16);var A=C-16*D;this.HexCode[C]=B.charAt(D)+B.charAt(A)}this.loaded=1}};jsMath.HTML={Em',922,'A){var C=','5;if(A<0){C++}',967,'A)<0.000001){A=0}var B=String(A);B=B.replace(/(\\.\\d\\d\\d).+/,"$1");re! turn B+"em"},Spacer',922,'A){if(A==0){return""}return ',1000,'msieSpaceFix+\'<','span class="spacer" style="margin-','left:\'+this.Em(','A)+\'"></span>\'},Blank',922,'B,E,G,F){var A="";var D="";if(F){D+="border-left',':"+this.Em(','B)+" solid;";if(',1000,'widthAddsBorder){B=0}}if(B==0){if(',1000,'blankWidthBug){if(',1000,'quirks','){D+="width:1px',';";A=\'<',1013,'right:-1px"></span>\'}else{if(!F',1026,';margin-right:-1px;"}}}}else{D+="width',1018,'B)+";"}if(G==null){G=0}if(E){var C=this.Em(E+G);if(F&&E*jsMath.em<=1.5){C="1.5px";E=1.5/jsMath.em}D+="height:"+C+";"}if(',1000,'mozInlineBlockBug){G=-E}if(',1000,'msieBorderBug&&!F){G-=jsMath.d}if(G){D+="','vertical-align:"+','this.Em(-G)}return A+\'<span class="blank" ','style="\'+','D+\'"></span>\'},Rule',922,'A,B){if(B==null){B','=jsMath.TeX.default_rule_thickness}',978,'Blank(A,B,0,1)},Class',922,'A,B){return\'<span class="\'+A','+\'">\'+B+"</span','>"},Place',922,'B,A,D){',967,'A)<0.0001){A=0}',967,'D)<0.0001){D=0}if(A||D){v! ar C=\'<','span style="position',': relative',';\';if(A){C+=" ! margin-l eft',1018,'A)+";"}if(D){C+=" top:"+this.Em(-D)+";"}B=C',1049,'>"}return B},PlaceSeparateSkips',922,'E',',G,F,I,A,H){if(Math.abs(G)<0.0001){G=0}if(Math.abs(F)<0.0001){F=0}','if(F){var D=0;var C=0;','var B="";if(','I!=null){C=','A-H;D=I;B=" width',1018,'A-I)+";"}E=','this.Spacer','(D-C)+\'<',1057,1058,'; top:\'+this.Em(-F)+";left',1018,'C',')+";"+B+\'">\'+',1073,'(-D)+E+',1073,'(C)+"</span>"}if(G){E=',1073,'(G)+E}return E},PlaceAbsolute',922,'D',1066,'var C="";var ','E="";',1068,1000,'msieRelativeClipBug&&',1069,1073,'(-I);G+=I;E=',1073,'(A-H)}if(',1000,'operaAbsoluteWidthBug){B=" width: "+this.Em(H+2)}D=\'<',1057,':absolute; ',1014,'G)+"; top',1018,'F',1080,'C+D+E+" </span>";','return D},','Absolute',922,'B,A,C,D,E){if(E!="none"){',967,'E)<0.0001){E=0}B=\'<',1057,1103,'top:\'+','jsMath.HTML.','Em(E)+\'; left:0em;">\'+B+" </span>"}if(D=="none"){D=0}B+=this.Blank(A,C-D,D);if(',1000,'msieAbsoluteBug){B=\'<',1057,':relative',';">\'+B+"</span>"}B=\'<',1057,1124,';\'+',10! 00,'msieInlineBlockFix',1049,'>";return B}};','jsMath.Box','=function(C,E,A,B,D){if(D==null){D=jsMath.d}this.type="typeset";this.w=A;this.h=B;this.d=D;this.bh=B;this.bd=D;this.x=0;this.y=0;this.mw=0;this.Mw=A;this.html=E;this.format=C};jsMath.Add(',1133,',{defaultH:0,Null',940,'return new ',1133,'("null","",0,0,0)},Text',922,'J,I,A,K,H,G){var E=','jsMath.Typeset.AddClass(','I,J);E=','jsMath.Typeset.','AddStyle(','A,K,E);var B','=jsMath.EmBoxFor(','E);var C=',1145,'TeX(A,K);var F=((I=="cmsy10"||I=="cmex10")?B.h-C.h:C.d*B.h/C.hd);var D=new ',1133,'("text",J,B.w,B.h-F,F);D.style=A;D.size=K;D.tclass=I;if(G!=null){D.d=G*C.scale}else{D.d=0}if(H==null||H==1){D.h=0.9*C.M_height}else{D.h=1.1*C.x_height+C.scale*H}',1110,'TeX',922,'H,A,E,B){var I=',944,'A][H];','if(I.d==null){I.d=0}','if(I.h==null){I.h=','0}if(I.img!=null&&I.c!=""){this.TeXIMG(A,H,',1145,'StyleSize(E,B))}var G=',1145,'TeX(E,B).scale;var D=I.h+',944,'A].dh;var F=new ',1133,'("text",I.c,I.w*G,D*G,I.d*G);F.style=E;F.size! =B;if(I.tclass){F.tclass=I.tclass;if(I.img){F.bh=I.img.bh;F.bd! =I.img.b d}else{F.bh=G*jsMath.h;F.bd=G*jsMath.d}}else{F.tclass=A;F.bh=G*',944,'A].h;F.bd=G*',944,'A].d;if(',1000,'msieFontBug&&','F','.html.match(/&#/)){','F','.html+=\'<span style="display:none">x</span','>\'}}return F},TeXfallback',922,'A,D,B,L){var J=',944,'D][A];if(!J.tclass){J.tclass=D}if(J.img!=null){',978,'TeXnonfallback(A,D,B,L)}if(J.h!=null&&J.a==null){J.a=J.h-1.1*jsMath.TeX.x_height}var K=J.a;var I=J.d;var H=this.Text(J.c,J.tclass,B,L,K,I);var E=',1145,'TeX(B,L).scale;if(J.bh!=null){H.bh=J.bh*E;H.bd=J.bd*E}else{var G=H.bd+H.bh;var F=',1143,'H.tclass,H.html);F=',1145,1146,'B,L,F);H.bd',1148,'F+',1119,'Blank(1,G)).h-G;H.bh=G-H.bd;if(E==1){J.bh=H.bh;J.bd=H.bd}}if(jsMath.',1176,'H',1178,'H',1180,'>\'}return H},TeXIMG',922,'E,A,R){var M=',944,'E][A];if(M.img.size!=null&&M.img.size==R&&M.img.best!=null&&M.img.best==','jsMath.Img.best','){return }var F=(',920,'.scale!=1);var B=',1209,'+R-4;if(B<0){B=0;F=1','}else{if(','B>=','jsMath.Img.fonts','.length){','B=',1217,'.length-1',';F=! 1}}var Q=',920,'[',1217,'[B]];var I=Q[E][A];var G=1/',920,'.w[',1217,'[B]];if(B!=',1209,'+R-4){if(M.w!=null){G=M.w/I[0]}else{G*=',1217,'[R]/',1217,'[4]*',1217,'[',1209,']/',1217,'[B]}}var N=I[0]*G;var J=I[1]*G;var L=-I[2]*G;var O;var H=(M.w==null||Math.abs(M.w-N)<0.01)?"":" margin-right:"+',1119,'Em(M.w-N)+";";var D="";A=',920,'.HexCode[A];if(!F&&!',974,'scaleImg){if(2*N<J||(',1000,'msieAlphaBug&&',974,'alpha)){D="height',':"+(I[1]*',1000,'imgScale',')+"px;"}D+=" width:"+(I[0]*',1000,1255,')+"px;";O=-I[2]+"px"}else{if(2*N<J||(',1000,'msieAlphaBug&&',974,1252,':"+',1119,'Em(J*',1000,1255,')+";"}D+=" width:"+',1119,'Em(N*',1000,1255,')+";";O=',1119,'Em(L)}var P=(Math.abs(L)<0.01&&!',1000,'valignBug)?"":" ',1038,'O+";";var K=',920,'.URL(E,',1217,'[B],A);if(',1000,'msieAlphaBug&&',974,'alpha){','M.c=\'<img src="\'+','jsMath.blank+\'" ',1040,1000,'msieCenterBugFix+D+P+H','+" filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'"+K+"\', sizingMethod=\'scale\');\\" />"}! else{',1289,'K+\'" ',1040,1000,1293,'+\'" />\'}M.tclass="norma! l";M.img .bh=J+L;M.img.bd=-L;M.img.size=R;M.img.best=',1209,'},Space',922,'A){return ','new jsMath.Box("html",',1119,'Spacer(A),A,0,0)},Rule',922,'A,C){if(C','==null){C',1044,'var B=',1119,'Rule(A,C);return ',1305,'B,A,C,0)},GetChar',922,'B,',1005,944,'A][B];','if(C.img!=null){this.TeXIMG(A,B',',4)}if(C.tclass',1310,'.tclass=A}if(!C.computedW){C.w',1148,1143,'C.tclass,C.c)).w',';if(C.h',1310,'.h=',1133,'.defaultH}if(C.d',1310,'.d=0}C.computedW=1}return C},DelimBestFit',922,'E,J,D,G){if(J==0&&D==0){return null}var I;var F;D','=jsMath.TeX.fam[','D];var A=(G.charAt(1)=="S");var B=(G.charAt(0)=="S");while(J!=null){I=',944,'D][J];',1161,1133,'.defaultH}',1160,'F=I.h+I.d;if(I.delim){return[J,D,"",E]}if(A&&0.5*F>=E','){return[J,D,"','SS",0.5*F]}if(B&&0.7*F>=E',1347,'S",0.7*F]}if(F>=E||I.n==null',1347,'T",F]}J=I.n}return null},DelimExtendRelative',922,'I,T,O,V,D){var P=',944,'O][T];var N','=this.GetChar(','P.delim.','top?P','.delim.top:','P.delim.rep,O);var ','A',1357,1361,'M',1357,1358,'bot! ?P','.delim.bot:',1361,'E=',1143,'A.tclass,A.c);','var J=A.w;var S=A.h+A.d;var F;var B;var K;var L;var R;var Q;if(',1358,'mid){var U',1357,1358,'mid,O);Q','=Math.ceil((I-(','N.h+N.d)-(','U.h+U.d)-(M.h+M.d))/(2*(A.h+A.d',')));I=2*','Q*(A.h+A.d)+(N.h+N.d)+(','U.h+U.d)+(M.h+M.d);if(D){F=0}else{F=I/2+V}B=F;K=',1119,'Place(',1143,'N.tclass,N.c),0,F-N.h',')+',1119,1387,1143,'M.tclass,M.c),-(','N.w+M.w)/2,F-(I-M.d))+',1119,1387,1143,'U.tclass,U.c),-(M.w+U.w)/2,F-(I+U.h-U.d)/2);L=(J-U','.w)/2;if(Math.abs(L)<0.0001){L=0}if(L){K+=jsMath.HTML.Spacer(L)}F-=N.h+N.d+A.h;for(R=0;R<Q;R++){K+=jsMath.HTML.Place(E,-J... [truncated message content] |
From: dpvc v. a. <we...@ma...> - 2008-10-11 01:49:29
|
Log Message: ----------- Update to version 3.6a of jsMath. Changes include: * Worked around a problem with image fonts in Firefox3. The width of the images were not being properly reported (even when specified Killed by signal 2.MG tag's STYLE attribute) if the image wasn't loaded from the server yet. * Worked around a problem in IE8 when jsMath is loaded from the local disk rather than from a server. * Added more checks when jsMath.safeHBoxes is set to prevent additional ways in which the user could have inserted HTML tags into \hbox commands. * Fixed a bug in the spriteImageFonts plugin that had been causing it to fail in Firefox2 and earlier, Opera 9.2x and earlier, and all versions of MSIE. It seems to have stopped working somewhere after version 3.4 of jsMath. * Fixed a bug where newlines were not treated as spaces when scanning for arguments of macros that require arguments. * Fixed the eqn-number extension to handle \nonumber as a synonym for \nolabel, and made the equation*, align*, and multline* environments not produce equation numbers. * Removed a debugging alert from the Firefox3 local-file code that was accidentally left active in version 3.6. Modified Files: -------------- webwork2/htdocs/jsMath: jsMath-loader-post.html jsMath.js webwork2/htdocs/jsMath/extensions: eqn-number.js webwork2/htdocs/jsMath/plugins: autoload.js noImageFonts.js spriteImageFonts.js webwork2/htdocs/jsMath/test: index.html sample.html webwork2/htdocs/jsMath/uncompressed: jsMath.js Added Files: ----------- webwork2/htdocs/jsMath/local: macros.js Revision Data ------------- Index: jsMath.js =================================================================== RCS file: /webwork/cvs/system/webwork2/htdocs/jsMath/jsMath.js,v retrieving revision 1.42 retrieving revision 1.43 diff -Lhtdocs/jsMath/jsMath.js -Lhtdocs/jsMath/jsMath.js -u -r1.42 -r1.43 --- htdocs/jsMath/jsMath.js +++ htdocs/jsMath/jsMath.js @@ -40,11 +40,11 @@ //start = new Date().getTime(); jsMath.Script.Uncompress([ - ['if(!','window','.jsMath','||!',1,'.','jsMath.','loaded','){var ','jsMath_old','=',1,2,';',0,'document.','getElementById','||!',15,'childNodes||!',15,'createElement','){','alert("','The',' mathematics ','on this page requires W3C DOM support in its JavaScript. Unfortunately, your ','browser',' doesn\'t seem to have this.")}else{',1,2,'={version:"3.6",document:document,',1,':',1,',','platform',':(','navigator.',36,'.match(/','Mac/)?"mac":',38,36,40,'Win/)?"pc":"unix"),','sizes',':[50,60,70,85,100,120,144,173,207,249],styles:{".math','":{"font-family":"serif","font-style":"normal","font-weight":"normal','"},".typeset',48,'","line-height":"normal','","text-indent":"0px','"},".typeset .','normal',48,'"},"div','.typeset','":{"text-align":"','center",margin:"1em 0px"},"span',57,58,'left',49,' span',58,'left",border',':"0px",margin:"0px','",padding',':"0px"},"a .typeset img, .typeset a img','":{border:"0px','","border-bottom":"','1px solid',' blue;"},".typeset .size0','":{"font! -size":"','50','%"},".typeset .','size1',74,'60',76,'size2',74,'70',76,'size3',74,'85',76,'size4',74,'100',76,'size5',74,'120',76,'size6',74,'144',76,'size7',74,'173',76,'size8',74,'207',76,'size9',74,'249',76,'cmr10','":{"font-family":"jsMath-',113,', serif',53,'cmbx10',114,118,', ','jsMath-cmr10',53,'cmti10',114,124,', ',122,53,'cmmi10',114,130,53,'cmsy10',114,134,53,'cmex10',114,138,53,'textit','":{"font-family":"','serif","','font-style":"italic',53,'textbf',143,'serif","font-weight":"bold',53,'link":{"','text-decoration":"none',53,'error',74,'90%","',145,'","background-color','":"#FFFFCC',68,':"1px','",border:"',72,' #CC0000',53,'blank','":{display:"','inline-block','",overflow:"','hidden',162,'0px none",width:"0px",height:"0px',53,'spacer',167,168,'"},"#','jsMath_hiddenSpan":{','visibility:"hidden",position:"absolute",','top:"0px",left:"0px',51,52,177,'jsMath_message','":{position:"fixed",bottom:"','1px",left:"2px',158,'":"#E6E6E6','",border:"solid 1px #959595",margin! :"0px",padding:"','1px 8px','","z-index":"','102','",color:"bl! ack","fo nt-size":"','small",width:"auto','"},"#jsMath_panel',185,'1.75em",right:"1.5em',68,':".8em 1.6em',158,'":"#DDDDDD',162,'outset 2px',191,'103",','width:"auto',193,'10pt","font-style":"',54,195,' .disabled":{color:"#888888',195,' .infoLink',74,'85%"},"#jsMath_panel *":{"','font-size":"inherit","font-style":"inherit","font-family":"inherit',51,195,' div":{"','background-color":"inherit",color:"inherit"},"#jsMath_panel ','span":{"',220,'td',70,68,67,'","',220,'tr',70,68,67,'","',220,'table',70,68,67,158,'":"inherit",color:"inherit",height:"auto",',206,177,'jsMath_button',185,'1px",right:"2px',158,'":"white',189,'0px 3px 1px 3px',191,'102",color:"black","',152,'","font-size":"x-',194,'",cursor:"hand"},"#',243,' *":{padding:"0px",border',67,51,'","',216,177,'jsMath_global":{"',145,177,'jsMath_noFont',' .message":{"text-align":"center",padding:".8em 1.6em",border:"3px solid #DD0000","background-color":"#FFF8F8",color:"#AA0000","font-size":"',194,177,'jsMath_noFont .link":{padding:"! 0px 5px 2px 5px',162,'2px outset',158,'":"#E8E8E8',193,'80%",',206,255,'jsMath_PrintWarning',267,'x-',194,'"},"@media print":{"#',243,167,'none',177,'jsMath_Warning',167,'none"}},"@media screen":{"#',279,167,'none"}}},Element',':function(','A','){return ',6,15,16,'("jsMath_"+A)},','BBoxFor',294,'A','){this.','hidden.innerHTML','=\'<nobr><','span class="','typeset"><',307,'scale">\'+A+"</span></span></nobr>";var B={w:this.',170,'.offsetWidth',',h:this.',170,'.offsetHeight','};this.',305,'="";return B},EmBoxFor',294,'B){var A=',6,'Global.cache.R;if(!A[this.em]){A[this.em]={}}if(!A[this.em][B]){var C=this.BBoxFor(B);','A[this.em][B]={w:C.w/this.em,h:C.h/this.em}}return A[this.em][B]},','EmBoxForItalics',294,320,6,322,'if(B.match(/<i>|class=\\"(icm|italic|igreek|iaccent)/i)){C.w=C.Mw=','this.BBoxFor','(B+',6,'Browser.','italicString',').w-',6,333,'italicCorrection','}',323,'Init',':function(){','if(',6,'Setup.inited','!=1){',0,6,345,'){',6,'Setup.','Body()}if(',6,345,'!=1){if('! ,6,345,'==-100','){return }',23,'It looks like jsMath failed t! o set up properly (error code "+',6,345,'+"). I will try to keep going, but it could get ugly.");',6,345,'=1}}this.em=this.CurrentEm();','var A=',6,'Global.cache','.B;',0,'A[this.em]){A[this.em]={};','A[this.em].','bb=',330,'("x");var C=',375,'bb.h;',375,'d=',330,'("x"+',6,'HTML.Rule(1,','C/',6,'em)).h-C;if(',6,333,334,'){',375,'ic=',6,301,'(',6,333,334,').w}}',6,333,338,'=',375,'ic;var F=',375,'bb;var D=F.h;var E=',375,'d;this.h=(D-E)/this.em;this.d=E/this.em;this.hd=this.h+','this.d;this.',352,'TeXfonts','();var B=this.EmBoxFor(\'<',307,113,'">M</span>\').w/2;this.TeX.M_height=B*(26/14);this.TeX.h=this.h;this.TeX.d=',413,'TeX.hd=this.hd;this.Img.Scale();',0,'this.initialized',304,352,'Sizes','();this.','Img.UpdateFonts()}this.p_height=(','this.TeX.cmex10[0].','h+',429,'d)/0.85;',423,'=1},ReInit',342,'if(this.','em!=this.CurrentEm()){this.Init()}},CurrentEm',342,369,330,'(\'<span style="\'+',6,333,'block+\';','width:13em;height:1em','"></span>\').','w/13;if(A>0',296,'A}return ',33! 0,'(\'<img src="\'+',6,166,'+\'" style="',445,'"/>\').w/13},Loaded',342,'if(',9,8,'B=["Process","ProcessBeforeShowing","ConvertTeX","ConvertTeX2","ConvertLaTeX","ConvertCustom","CustomSearch","Synchronize","Macro","document"];','for(var A=0;A<','B','.length;A++){','if(',9,'[B[A]]){','delete ',9,'[B[A]]}}}if(',9,304,'Insert(jsMath,',9,')}',9,'=null;',6,7,'=1},Add',294,'C,A){for(var B in A){','C[B]=A[B]}},Insert',294,482,'if(C[B]&&typeof (A[B])=="object"&&(','typeof (C[B])=="','object"||',487,'function")){this.Insert(C[B],A[B])}else{C[B]=A[B]}}},Package',294,'B,A',304,'Insert(B.prototype,A)}};',6,'Global={isLocal:1,cache:{','T:{},D:{},R:{},B',':{}},ClearCache',342,6,371,'={',497,':{}}},GoGlobal',294,320,'String(',6,1,'.','location);var C','=(',6,'isCHMmode','?"#":"?");if(B){A=A.replace(/\\?.*/,"")+"?"+B}',6,'Controls.','Reload(',6,'root+"jsMath-','global.html"+C+escape(A))},Init',342,'if(',6,'Controls.cookie.','global=="always"&&!',6,'noGoGlobal','){if(',38,'accentColorName',! 360,0,6,1,'){',6,1,'=',1,'}',6,517,7,'=1;',6,517,'defaults.hid! denGloba l=null;this.GoGlobal(',6,517,'SetCookie(2))}},Register',342,369,6,1,'.parent;',0,6,'isCHMode){',6,514,'=(',6,1,'.','location.','protocol=="mk:")}try{',0,6,514,304,'Domain()}if(A',2,'&&A.',6,'isGlobal){A.',6,'Register(',6,1,')}}catch(B){',6,528,'=1}},Domain',342,'if(',38,'appName=="Microsoft Internet Explorer"&&',6,36,'=="mac"&&',38,'userProfile','!=null',360,'if(',1,'==parent',360,'var B=',6,15,'domain',';try{while(true){try{if(parent.',15,'title',594,'){return }}','catch(A){}',0,15,603,'.match(/\\..*\\./)){break}',6,15,603,'=',6,15,603,'.replace(/^[^.]*\\./,"")}}',609,6,15,603,'=B}};',6,'Script={request:null,Init',342,'if(!(',6,525,'asynch&&',6,525,'progress',')){if(',1,'.XMLHttpRequest','){try{','this.request','=new XMLHttpRequest}catch(C){}if(',641,'&&',6,'root.match','(/^file:\\/\\//)){try{',641,'.open("GET",',6,'root+"',6,'js",false);',641,'.send(null)}catch(','C){',641,'=null;if(',1,'.postMessage',304,'mustPost=1;',6,1,'.addEventListener("message",',6,'Post.','Listener! ,false)}}}}',0,641,'&&',1,'.','ActiveXObject',8,'A=["MSXML2.XMLHTTP.5','.0","MSXML2.XMLHTTP','.4',677,'.3',677,'","Microsoft.XMLHTTP"];','for(var B=0;B<','A.length&&!',641,';B++){try{',641,'=new ',674,'(A[B])}catch(C){}}}}',0,641,'||',6,352,'domainChanged',304,'Load=this.delayedLoad;this.needsBody=1}},Load',294,'B,A){','if(A){',6,'Message.Set("Loading "+','B);',6,'Script.','Delay(1);',6,'Script.Push(','this,"xmlRequest",B',');',6,709,6,'Message',',"Clear")}else{',6,709,710,')}},xmlRequest',294,'url){','this.blocking','=1;try{',641,649,'url,false);',641,655,'err){',723,'=0;if(',6,'Translate.','restart&&',6,'Translate.asynchronous){return""}throw"jsMath can\'t load the file \'"+url+"\'\\','nMessage: "+err.message}if(',641,'.status',594,'&&(',641,740,'>=400||',641,740,'<0)){',723,'=0;if(',6,734,'restart&&',6,737,'nError status: "+',641,740,'}',0,'url','.match(/\\.js$/)){','return(',641,'.responseText',')}var tmpQueue','=this.queue;this.queue','=[];',6,1,'.eval(',641,765,');',7! 23,'=0;','this.queue=this.queue.concat(','tmpQueue);this.Proce! ss();ret urn""},cancelTimeout:30*1000,blocking:0,cancelTimer:null,needsBody:0,queue:[],Synchronize',294,'A,B){','if(typeof (','A)!="string"){',6,709,'null,A,B',')}else{',6,709,6,1,',"eval",A)}},Push',294,'A,C,B',304,'queue[','this.queue.length',']=[A,C,B];if(!(',723,'||(this.needsBody&&!',6,15,'body))){this.Process()}},Process',342,'while(',796,'&&!',723,8,'C=this.queue[0];this.queue=this.queue.slice(1);',369,'this.SaveQueue();var B=C[0];var E=C[1];var D=C[2];if(B){B[E](D',786,'if(E){E(D)}}this.','RestoreQueue','(A)}},SaveQueue',342,'var A',767,'=[];return A},',814,294,'A){',777,'A)},delayedLoad',294,'A',304,'Push(','this,"','startLoad','",A)},',830,294,'A',8,'B=',6,15,21,'("iframe");','B.style.','visibility="','hidden";',841,'position="absolute";',841,'width="0px";B','.style.height="','0px";if(',6,15,'body.firstChild','){',6,15,'body.insertBefore(B,',6,15,852,786,6,15,'body','.appendChild(','B)}',723,'=1;this.','url=A;if(A','.substr(0,',6,'root.length',')==',6,'root){A=A.substr(',6,! 871,')}',6,703,'A);this.cancelTimer=setTimeout("',6,706,'cancelLoad','()",this.cancelTimeout);',436,'mustPost){B.src=',6,667,830,'(A,B',786,'if(A',762,'B.src=',6,520,'loader.html"}else{B.src=this.url}}},','endLoad',294,'A){if(this.cancelTimer){clearTimeout(this.cancelTimer);this.cancelTimer=null}',6,667,898,'();',6,715,'.Clear();if(A!="cancel"){',723,'=0;this.Process','()}},Start',342,'this.tmpQueue',767,'=[]},End',342,777,912,');',468,912,'},',883,294,'B,',900,'if(B==null){B','="Can\'t load file"}if(A==null){A=2000}',6,715,'.Set(B);setTimeout(\'',6,706,898,'("cancel")\',A)},Delay',294,'A){',723,'=1;setTimeout("',6,706,'endDelay','()",A)},',941,342,723,909,'()},','imageCount',':0,WaitForImage',294,'B){',723,867,948,'++;',436,'img==null',304,'img=[]}',369,'new Image',427,'img[this.img.length]=A;A.onload=function(){if(--',6,706,948,'==0){',6,706,941,'()}};A.onerror=A.onload;A.onabort=A.onload;A.src=B},Uncompress',294,'data){for(var k=0;k<data.length;k++){var d=data[k];var n=d! .length;for(var i=0;i<n;i++){',781,'d[i])=="number"){d[i]=d[d[! i]]}}dat a[k]=d.join("")}',1,771,'data.join(""))}};',6,'Post={',1,':null,Listener',294,'D){if(D.source!=',6,667,1,360,'var E=D.origin','.replace(/^file:\\/\\//,"");',369,15,603,990,'if(E==null||E==""){E','="localhost"}if(','A==null||A==""){A',996,'E!=A||!','D.data.substr(','0,6).match(/jsM(CP|LD):/)){return }var B=',1000,'6,3).replace(/ /g,"");var C=',1000,'10);if(',6,'Post.Commands[B',']){(',6,1007,'])(C)}},Commands:{SCR',294,'message){',6,1,771,'message)},ERR',294,'A){',6,706,883,'(A,3000)},BGN',294,'A){',6,706,'Start()},END',294,'A){',701,6,706,'End()}',6,706,898,'()}},',830,294,'A,B',304,1,'=B.contentWindow;',0,'A',762,'return ',6,'root+',449,6,520,'loader-post.html?"+A},',898,342,'this.',1,'=null}};',6,715,'={',166,':null,message:null,text:null,clear:null,Init',342,0,6,15,'body||!',6,525,636,360,'if(',6,352,'stylesReady){','this.message','=',6,'Setup.DIV("','message",{visibility:"',170,'"},',6,'fixedDiv',786,1078,'=',6,1081,'message",{',179,'bottom:"',186,'",','backgroundColor',! ':"#E6E6E6',189,190,'",zIndex:102,color:"black",fontSize:"',194,'"},',6,1086,')}','this.text','=',6,15,'createTextNode','("");',1078,864,1107,');',1078,'.onmousedown=',6,734,'Cancel},Set',294,700,'if(this.clear){clearTimeout(this.clear',');this.clear=null}if(',6,525,636,'){',0,1107,304,'Init();',0,1107,608,'if(',6,333,'textNodeBug','){',1078,'.innerHTML','=B','}else{',1107,'.nodeValue','=B}','this.message.style.',842,'visible";',701,1149,'cursor="pointer','";',0,1149,'cursor){',1149,'cursor="hand"}',1078,'.title=" Cancel Processing of Math "}else{',1149,'cursor="";',1078,'.title=""}}else{if(B',869,'8)!="Loading "){',6,1,740,'=B}}},Clear',342,1124,')}this.clear=setTimeout("',6,715,'.doClear()",1000)},doClear',342,436,'clear',304,'clear=null;',6,1,740,'="";',436,'text){',1107,1147,'=""}if(',1078,'){',1149,842,170,'"}}},Blank',342,436,166,'||!',6,15,'body',360,'this.blank','=',6,1081,166,'",{position',':(',6,333,'msiePositionFixedBug','?"absolute":"fixed"),',180,'",bottom:"0px! ",right:"0px",zIndex:101,',1097,':"white"},',6,1086,');if(',6,! 333,'msi eBlankBug){',1207,1143,'=" ";',1207,'.style.width="110%";',1207,848,'110%"}},UnBlank',342,436,166,'){',6,15,'body.removeChild(',1207,')}',1207,'=null}};',6,'Setup={',7,':[],DIV',294,'E,C,B){',926,'=',6,15,'body}var D=',6,15,21,'("div");D.id="jsMath_"+E;','for(var A in C){','D.style[A]=C[A]}',0,'B.hasChildNodes){B',864,'D',786,'B.insertBefore(D,','B.firstChild',')}return D},Script',294,700,436,7,'[B]){return }else{this.',7,'[B]=1}',0,'B.match("^([a-zA-Z]+:/?)?/")){B=',6,'root+B}',6,706,'Load(B,A)},Hidden',342,6,170,'=this.DIV("Hidden",{',179,'top:0,left:0,border:0,padding:0,margin:0});',6,'hiddenTop=',6,170,';return },Source',342,'if(',6,'Autoload','&&',6,1300,'.root){',6,'root=',6,1300,'.','root}else{',6,'root="";',369,6,15,'getElementsByTagName("','script");',701,683,'A.','length;B++){','var D=A[B].src;if(D&&D.match("(^|/|\\\\\\\\)',6,'js$")){',6,1306,'D.replace','(/',6,'js$/,"");break}}}}if(',6,'root.charAt(','0)=="\\\\"){',6,1306,6,'root.replace','(/\\\\/g,"/")}if(',! 6,1332,'0)=="/"){if(',6,1332,'1)!="/"){if(',6,15,566,'port){',6,'root=":"+',6,15,566,'port+',6,'root}',6,'root="//"+',6,15,566,'host+',6,1356,6,1306,6,15,566,'protocol+',6,1310,0,6,646,'(/^[a-z]+:/i)){var D=','new String(',6,15,511,'=new RegExp("/[^/]*/\\\\.\\\\./");',6,1306,1327,'(new RegExp("[^/]*$"),"")+',6,'root;while(',6,646,'(C)){',6,1306,6,1337,'(C,"/")}}}',6,'Img.',1306,6,651,'fonts/";',6,166,'=',6,651,166,'.gif";this.Domain()},Domain',342,'try{',6,15,603,'}catch(D',360,'var C="";',369,6,15,603,';if(',6,646,'("://([^/]*)/")){C=RegExp.$1}C=C.replace(/:\\d+$/,"");if(C==""||C==A',360,'if(',38,'appName=="Microsoft Internet Explorer"&&',6,36,'=="mac"&&',38,'onLine&&',38,593,'&&',6,15,'all',360,'C=C.split(/\\./);A=A.split(/\\./);if(C.length<2||A.length<2||','C[C.length-','1',']!=A[A.length-','1]||',1442,'2',1444,'2]){this.','DomainWarning','();return }var E=',1442,'2]+"."+',1442,'1];for(var B=3;B<=C.length&&B<=A.',1321,'if(',1442,'B',1444,'B]){break}E=',1442,'B]+"."+E}',6! ,15,603,'=E;this.',696,'=1},',1450,342,23,'In order for jsMath! to be a ble to load the additional components that it may need, the ',6,'js file must be ',7,' from a server in the same ',603,' as the page that contains it. Because that is not the case for this page, the',25,'displayed here may not appear correctly.")},','EncodeFont',294,'C',8,'B=',6,'TeX[C];if(B','[0].c',594,360,462,'128;A++){var D=B[A];B[A]=D[3];if(B[A]==null){B[A]={}}B[A].w=D[0];B[A].h=D[1];if(D[2]!=null){B[A].d=D[2]}B[A].c=',6,'TeX.encoding[A]}},Fonts',342,683,6,'TeX.fam','.',1321,369,6,1499,'[B];if(A',304,1482,'(A)}}},TeXfont',294,'C',8,'B=',6,1488,'==null',360,369,6,'EmBoxFor(\'<span class="\'+C+\'">\'+B[65].c','+"</span>");B.hd=A.h;B.dh=0.05;B.d=',6,1519,'+',6,386,'B.hd)+"</span>").h-B.hd;B.h=B.hd-B.d;if(C=="',130,'"){B.skewchar=','127','}else{if(','C=="',134,1528,'48}}},',415,342,462,6,1499,464,'if(',6,1499,'[A]){this.TeXfont(',6,1499,'[A])}}},Sizes',342,6,'TeXparams','=[];var B;var A;for(A=0;A<',6,46,464,6,1550,'[A]={}}for(B in ',6,'TeX){',781,6,'TeX[B])!="object"){for(! A=0;A<',6,46,464,6,1550,'[A][B]=',6,46,'[A]*',6,'TeX[B]/100}}}},Styles',294,'A){',0,'A){A=',6,'styles;A[".typeset .scale"]={"font-size":',6,525,'scale+"%"};this.stylesReady=1}',6,709,829,'AddStyleSheet','",A);if(',6,333,'styleChangeDelay','){',6,709,6,'Script,"Delay",1)}},StyleString',294,'E',8,'A={},F;for(F in E){if(typeof E[F]==="string"){A[F]=E[F]}else{if(F',869,'1)==="@"){A[F]=','this.StyleString(','E[F])}else{if(E[F]!=null',8,'D=[];for(var C in E[F]){if(E[F][C]!=null){D[D.length]=C+": "+E[F][C]}}A[F]=D.join("; ")}}}}var B="";for(F in A){B+=F+" {"+A[F]+"}\\n"}return B},',1586,294,'D',8,'B=',6,15,1316,'head")[0];',369,1602,'D);if(',6,15,'createStyleSheet){B.insertAdjacentHTML("beforeEnd",\'<','span style="display:','none">x</span><style type="text/css">\'+A+"</style>")}else{var C=',6,15,21,'("style");C.type="text/css";C',864,6,15,1111,'(A));B',864,'C)}},Body',342,436,'inited',360,'this.inited=-','1;',6,352,'Hidden();',1638,'2;',6,333,1133,1638,'3;if(',6,525,166,'){',6,71! 5,'.Blank()}',1638,'4;',6,352,'Styles();',1638,'5;',6,517,1133! ,1638,'6 ;',6,709,6,'Setup,"User","pre-font");',1638,'7;',6,709,6,'Font,"Check");if(',6,'Font.register.length){',6,709,6,'Font,"LoadRegistered")}this.inited=1},User',294,'A){if(',6,'Setup.UserEvent[A',']){(',6,1688,'])()}},UserEvent:{"pre-font":null,onload:null}};',6,'Update={',415,294,'D){for(var A in D){for(var B in D[A]){for(var C in D[A][B]){',6,'TeX[A][B][C]=D[A][B][C]}}}},TeXfontCodes',294,'C){',1262,683,'C[A].',1321,6,'TeX[A][B].c=C[A][B]}}}};',6,'Browser={allowAbsolute:1,allowAbsoluteDelim:0,','separateSkips',':0,valignBug:0,operaHiddenFix:"",','msieCenterBugFix',':"",','msieInlineBlockFix',':"",msieSpaceFix:"",imgScale:1,renameOK:1,',1590,':0,delay:1,version:0,','TestSpanHeight',342,6,305,'=\'<span><','span style="\'+this.block','+\';height:2em;width:','1px"></span></span>\';var B=',6,'hidden.firstChild;',369,1270,';this.','spanHeightVaries','=(B',315,'>=A',315,'&&B',315,'>0);','this.spanHeightTooBig','=(B',315,'>A',315,');',6,305,'=""},','TestInlineBlock',342,'this.block="d! isplay',':-','moz-inline-box";','this.hasInlineBlock','=',6,'BBoxFor(\'<span style="\'+this.block','+\';width:10px;height:5px"></span>\').w>0;if','(',1753,'){',6,'styles[".typeset',' .',166,'"].display="-',1752,468,6,1762,' .spacer"].display',1145,1750,':',168,'";',1753,'=',6,1756,1757,'(!',1753,608,'this.block+=";overflow:',843,369,6,301,'("x").h;this.mozInlineBlockBug=',6,1756,'+";height:"+A+\'px;width:1px','"></span>x','<',1723,'+";height:"+A+"px;width:1px;vertical-align:-"+A+\'px',446,'h>2*A;this.widthAddsBorder=',6,1756,'+\';overflow:',170,';height:1px;width:10px',';border-left:','10px solid',446,'w>10;','this.msieBorderBug','=',6,1756,1792,1793,'\').h!=',6,1756,1792,1804,72,1793,'\').h;','this.blankWidthBug=',1808,'||',6,1756,1724,'0px',446,'h==0},','TestRenameOK',342,6,305,'="<span></span>";',369,6,1727,'A.setAttribute("name","','jsMath_test','");this.renameOK=(',6,15,'getElementsByName("',1840,'").length>0);',6,305,1747,'TestStyleChange',342,6,305,'=\'<span ID="',18! 40,'">x</span>\';var B=',6,1727,369,'B',312,';',6,352,1586,'({! "#',1840 ,'":"font-size:200%"});this.',1590,'=(B',312,'==A);',6,305,1747,'VersionAtLeast',294,320,1377,'this.version',').split(".");','B=',1377,'B',1881,'if(B[1]==null){B[1]="0"}return A[0]>B[0]||(A[0]==B[0]&&A[1]>=B[1])},Init',342,6,27,'="unknown";this.',1748,427,1718,427,1831,427,1850,427,'MSIE',427,'Mozilla',427,'Opera',427,'OmniWeb',427,'Safari',427,'Konqueror();if(','this.allowAbsoluteDelim','){',6,'Box.DelimExtend=',6,'Box.DelimExtendAbsolute;',6,'Box.Layout=',6,'Box.LayoutAbsolute',1145,6,'Box.DelimExtend=',6,'Box.DelimExtendRelative;',6,'Box.Layout=',6,'Box.LayoutRelative}',436,1710,'){',6,'HTML.Place=',6,'HTML.','PlaceSeparateSkips',';',6,'Typeset.prototype.','Place=',6,1939,1936,'}},MSIE',342,436,1731,'&&!',1739,'){',6,27,'="MSIE";if(',6,36,'=="pc"){this.','IE7=(',1,639,594,');','this.quirks','=(',6,15,'compatMode=="BackCompat");this.msieStandard6=!',1962,'&&!this.IE7;',1910,867,1710,'=1',';this.buttonCheck=1;this.','msieBlankBug=1;this.','msieAccentBug',867,'msieRelativeCl! ipBug','=1;this.msieDivWidthBug=1;this.',1216,867,'msieIntegralBug',867,'waitForImages',867,'msieAlphaBug','=!this.IE7;this.','alphaPrintBug',1986,1712,'="position:relative; ";this.',1714,'=" display:',168,';";this.msieTeXfontBaselineBug=!',1962,';',1808,'=',1822,'1;this.msieSpaceFix=\'<',1621,168,'"></span>\';',6,'Macro("joinrel","\\\\mathrel{\\\\kern-5mu}"),',6,'Parser.prototype.mathchardef.','mapstocharOrig','=',6,2007,'mapstochar;',468,6,2007,2012,6,'Macro("mapstochar","\\\\rlap{\\\\',2008,'\\\\,}\\\\kern1mu"),',6,1762,' .arial"]={"font-family":"\'Arial unicode MS\'"};',0,'this.IE7||',1962,'){',6,'styles["#jsMath_message"].',845,468,6,2029,'width;',6,'styles["#jsMath_panel"].',845,468,6,2036,'width;',6,'styles["#jsMath_button"].','width="1px";',6,2043,845,468,6,2043,'width;',6,1086,'=',6,1081,1086,1212,':"absolute",zIndex:101});',6,1,'.attachEvent("','onscroll",',6,'Controls.MoveButton',');',6,1,2062,'onresize",',6,2065,');',6,2065,'()}',6,'styles["#jsMath_noFont .link"! ].','display="',168,'";',468,6,1762,1770,';',6,'styles[".tex2m! ath_div' ,'"]={};',6,'Add(',6,2088,'"],',6,'styles["div',57,'"]);',6,2088,'"].width="100%";',6,2088,'"].',2079,168,'";',6,1762,'"]["letter-spacing"]="0";if(','screen.deviceXDPI','&&','screen.logicalXDPI','&&',2111,'!=',2113,304,'imgScale*=',2113,'/',2111,';',6,525,'alpha=0}this.',334,'="<i>x</i>";',6,'EmBoxFor=',6,324,1530,6,36,'=="mac"){this.msieAbsoluteBug',867,'msieButtonBug',1978,1974,'quirks=1;',6,'Setup.Script("jsMath-','msie-mac.js");',6,'Parser.prototype.macros.angle=["Replace","ord",\'<font face="Symbol">‹</font>\',"',54,'"];',6,2036,'width="42em";',6,525,'printwarn=0}}',6,'Macro("not","\\\\mathrel{\\\\rlap{\\\\kern3mu','/}}")}},',1901,342,'if(',6,170,'.ATTRIBUTE_NODE){',6,27,'="',1901,'";if(',6,36,1956,1987,'=1}',1910,'=1;',6,2043,'cursor=',6,2078,1154,'",',6,2156,'/}}");if(',38,'vendor=="Firefox"){',1880,'=',38,'vendorSub',1530,38,'userAgent.match','(" Firefox/([0-9.]+)([a-z ]|$)")){',1880,'=RegExp.$1}}}},',1905,342,'if(',38,'accentColorName){',6,27,'="',1905,'";','th! is.allowAbsolute','=',1753,';',1910,'=',2208,';this.valignBug=!',2208,1973,1140,'=1;',6,'noChangeGlobal=1;',0,1753,'){',6,2143,'old-browsers.js','")}}},Opera',342,'if(',1739,'){',6,27,'="Opera";var B=',38,2194,'("Opera 7");',2208,'=0;this.delay=10;this.operaHiddenFix="[Processing]";if(B){',6,2143,2227,'")}',369,38,'appVersion.match(/^(\\d+\\.\\d+)/);',0,'A){vesion=0}this.operaAbsoluteWidthBug=this.operaLineHeightBug=(A[1]>=9.5)}},Safari:functio'], - ['n(){if(','navigator.','appVersion.match(/Safari\\//)){','jsMath.','browser','="Safari";','var A=',1,'userAgent.match','("Safari/([0-9]+)");A=(A)?A[1]:400;for(','var B=','0;B<',3,'TeX.fam','.length',';B++){','if(',3,13,'[B]&&',3,'TeX[',3,13,'[B]]){',3,21,3,13,'[B]].dh=0.1}}',3,'TeX.axis_height+=0.05;',3,'TeX.','default_rule_thickness','+=0.025',';this.allowAbsoluteDelim=','A>=125;this.safariIFRAMEbug=A>=312&&A<412;this.safariButtonBug=A<412;this.safariImgBug=1;this.textNodeBug=1;this.buttonCheck=A<500;this.styleChangeDelay=1}},','Konqueror',':function(){','if(',1,'product&&',1,'product.match("',38,'")){',3,4,'="',38,'";this.allowAbsolute=0',36,'0;if(',1,8,'(/',38,'\\/(\\d+)\\.(\\d+)/)){if(RegExp.$1<3||(RegExp.$1==3&&RegExp.$2<3)){this.separateSkips=1;this.valignBug=1;',3,'Setup.Script("jsMath-','old-browsers.js")}}',3,'Add(',3,'styles,{".typeset .cmr10','":"font-family: jsMath-','cmr10',', jsMath ','cmr10, serif','",".typeset .','cmbx10',66,71,68,71,', jsMath-cmr10, jsMa! th cmr10",".typeset .','cmti10',66,77,68,77,76,'cmmi10',66,83,68,83,70,'cmsy10',66,89,68,89,70,'cmex10',66,'cmex10, jsMath cmex10','"});',3,'Font.testFont','="jsMath','-',97,'"}}};',3,'Font={testFont:"jsMath-cmex10",','fallback',':"symbol",register:[],message:"<b>No jsMath TeX fonts found</b> -- using',' image fonts instead','.<br/>\\nThese',' may be slow and might not print well.<br/>\\nUse the jsMath control panel to get additional information','.",','extra_message',':\'Extra TeX fonts not found: <b><span id="jsMath_ExtraFonts"></span></b><br/>Using',109,'. This',111,'.\',','print_message',':"To print higher-resolution math symbols, click the<br/>\\n<b>Hi-Res Fonts for Printing</b> button on',' the jsMath control panel.<br/>\\n",','alpha_message',':"If the math symbols print as black boxes, turn off <b>image alpha channels</b><br/>\\nusing the <B>Options</B> pane of',121,'Test1',':function(','C',',F,D,E){if(F==null){F=124}if(D==null){D=2}if(E==null){E=""}var B=jsMath.BBo! xFor(\'<span style="font-family: \'+E+C+\', serif">\'+jsMath.T! eX[C][F] .c+"</span>");var A=jsMath.BBoxFor(\'<span style="font-family: serif">\'+jsMath.TeX[C][F].c+"</span>");return','(B.w>D*A.w&&B.h!=0)},Test2',126,'C',128,'(A.w>D*B.w&&B.h!=0)},CheckTeX',39,6,3,'BBoxFor(\'<span style="font-family',': \'+',3,100,'+\', serif">\'+',3,'TeX.cmex10[1','].c+"</span>");',3,'nofonts=((A.w*3>A.h||A.h==0)&&!this.Test1("cmr10','",null,null,"jsMath-"));if(!',3,'nofonts){','return }','if(',3,4,'!="Mozilla"||(',3,'platform','=="mac"&&(!',3,'Browser.VersionAtLeast(','1.5)||',3,159,'3)))||(',3,156,'!="mac"&&!',3,159,'3))){A=',3,137,': CMEX10, serif">\'+',3,'TeX.cmex10[1',144,3,146,'"));if(!',3,149,3,60,'BaKoMa-fonts.js")}}},Check',39,6,3,'Controls.','cookie;this.CheckTeX();if(',3,149,'if(A.autofont','||A','.font=="tex"){','A.font=this.',107,';if(A.warn){',3,'nofontMessage=1;A.warn=0;',3,187,'SetCookie(0);if','(',3,'window.NoFontMessage','){',3,204,'()}else{','this.Message(this.','message)}}}}else{',191,'){A.font="tex"}if(A',193,'return }}if(',3,'noImgFonts){','! A.font="unicode"}if(A','.font=="unicode','"){',3,60,107,'-"+',3,156,'+".js");',3,'Box.TeXnonfallback=',3,'Box.TeX',';',3,230,'=',3,'Box.TeXfallback;return }','if(!A.print&&A.printwarn){this.','PrintMessage','((',3,'Browser.','alphaPrintBug&&',3,187,'cookie.alpha)?this.',119,'+this.',122,':this.',119,')}if(',3,241,'waitForImages){',3,'Script.','Push(',3,'Script,"WaitForImage",',3,'blank)}if(A.font=="symbol"){',3,60,107,'-symbols.js");',3,'Box.TeXnonfallback=',3,230,';',3,230,'=',3,236,3,'Img.SetFont','({cmr10',':["all"],',83,279,89,279,'cmex10',279,71,279,77,':["all"]});',3,'Img.LoadFont','("cm-fonts")},Message',126,'A){if(',3,'Element("Warning',46,150,10,3,'Setup.DIV("','Warning','",{});B.innerHTML=\'<center><table><tr><td><div ','id="jsMath_noFont"><div ','class="message">\'+A','+\'<div style="text-align:left"><span style="float:left; margin: 8px 0px 0px 20px"><span onclick="',3,187,'Panel()" ','title=" Open ','the ','jsMath Control Panel',' " class="link">',312,'</span></! span','><span style="margin: 8px 20px 0px 0px; float:right"><s! pan oncl ick="',3,'Font.','HideMessage','()" title=" Remove this font warning message',313,'Hide this Message',315,'></div><div style="height:6px"></div><br clear="all"/></div></','div><div style="width:22em; height:1px"></div></td></tr></table></center><hr/>\'},',319,39,6,3,296,'");if(A','){A.style.display="none"}},',238,126,294,3,'Element("','PrintWarning',46,150,10,3,301,338,303,305,'+\'</',325,'Register',126,'H,B){if(typeof (H)=="string"){H={name:H}}if(!',3,'Setup.inited','&&!B){','this.register','[',355,14,']=H;',150,'var I=H.name;',6,'I.replace(/10$/,"");var F=',3,13,14,';if(H.prefix==null){H.prefix=""}if(!H.style){H.style="font-family: "+H.prefix+I+", serif"}if(!H.styles){H.styles={}}if(!H.macros){H.macros={}}',3,13,'[F]=I;',3,'TeX.famName[I]=F;H.macros[A]=["HandleFont",F];',3,63,3,'Parser.prototype.macros,H.macros);H.styles[".typeset ."+I]=H.style;',3,'Setup.Styles(H.styles);if(',3,'initialized){',3,256,'Push(',3,'Setup,"TeXfont",I)}var C=',3,187,'cookie;var E=!',3,'nofonts&&! H.test(I,H.testChar,H.testFactor,H.prefix);if(E&&C',193,'if(H.tex){H.tex','(I,F,H)}',150,'if(!E&&C.warn&&C.font=="tex"&&!',3,149,'if(!C.fonts.match("/"+I+"/")){C.fonts+=I+"/";',3,187,201,'(!',3,296,46,209,113,')}var G=',3,337,'ExtraFonts");if(G){if(G','.innerHTML','!=""){G',412,'+=","}G',412,'+=" "+H.prefix+I}}}if(C',218,'"||',3,216,'if(H.',107,'){H.',107,393,150,'var D={};if(C.font=="symbol"&&H.symbol!=null){D[I]=H.symbol',393,'else{D[I]=["all"]}',3,277,'(D);',3,291,'(I);if(',3,'initialized){',3,256,'Push(',3,'Img,"Scale");',3,256,'Push(',3,'Img,"UpdateFonts")}},LoadRegistered',39,6,'0;while(A<',355,14,'){this.Register(',355,'[A++],1)}',355,'=[]},Load',126,'A){',3,'Setup.Script(this.URL(A))},URL',126,'A){','return ',3,'Img.root+A+"/def.js"}};',3,'Controls={cookie:{scale:100,font:"tex",autofont:1,scaleImg:0,alpha:1,warn:1,fonts:"/",printwarn:1,stayhires:0,button:1,progress:1,asynch:0,blank:0,print:0,keep:"0D",global:"auto",hiddenGlobal:1},cookiePath:"/",','noCookiePattern',! ':/^(file|mk):$/,Init',39,'this.panel=',3,301,'panel",{display! :"none"} ,',3,'fixedDiv);','if(!',3,241,'msieButtonBug){this.Button',208,'setTimeout("',3,187,'Button()",500)}},Panel',39,3,'Translate.Cancel();if(','this.loaded','){this.Main',208,3,256,'delayedLoad(',3,'root+"jsMath-controls.html")}},Button',39,6,3,301,'button",{},',3,478,'A.',310,312,' ";A',412,'=\'<span onclick="',3,187,'Panel()">jsMath</span>\';if(!',3,'Global.','isLocal&&!',3,'noShowGlobal){A',412,'+=\'<span id="jsMath_global" ',310,'jsMath Global Panel " onclick="',3,516,'Show(1)">Global </span>\'}if(A.offsetWidth<30){A.style.width="auto"}if(!','this.cookie','.button',332,'MoveButton',39,3,'fixedDiv.style.','left','=document.body.','scrollLeft+"px";',3,533,'top',535,'scrollTop+"px";',3,533,'width',535,'clientWidth+"px";',3,533,'height',535,'clientHeight+"px"},GetCookie',39,'if(','this.defaults','==null){',554,'={}}',3,63,554,',',527,');this.userSet={};var C=',3,'document.cookie',';if(',3,'window.location','.protocol.match(this.',470,')){C=this.','localGetCookie','();','th! is.isLocalCookie','=1}if(','C.match(/jsMath','=([^;]+)/)){var D=unescape(RegExp.$1).split(/,/);for(',10,11,'D',14,15,6,'D[B].match(/(.*):(.*)/);if(A[2].match(/^\\d+$/)){A[2]=1*A[2]}',527,'[A[1]]=A[2];this.userSet[A[1]]=1}}},',572,39,465,3,568,'.search.substr(1)},SetCookie',126,'F){var B=[];for(var E in ',527,'){if(',554,'[E]==null||',527,'[E]!=',554,'[E]){B[B',14,']=E+":"+',527,'[E]}}B=B.join(",");if(',574,'){if(F==2){return"','jsMath="+escape(B)}','this.','localSetCookie','(B,F)}else{B=escape(B);if(B==""){F=0}if(','this.cookiePath','){B+="; path="+',613,'}if(','this.cookieDomain','){B+="; domain="+',617,'}if(',527,'.keep!="0D"){var A={D',':1000*60*60*24',',W',623,'*7,M',623,'*30,Y',623,'*365};var D=new Date;D.setTime(D.getTime()+',527,'.keep.substr(','0,1)*A[',527,632,'1,1)]);B+="; expires="+D.toGMTString()}if(B!=""){',3,565,101,'="+B;var C=',3,565,';if(F&&!',576,'=/)){alert("Cookies must be enabled in order to save jsMath options")}}}',465,'null},',611,126,'B,C){if(!C){',! 150,6,'String(',3,568,').replace(/\\?.*/,"");if(B!=""){A+="?',! 609,'if( A!=',3,568,'.href){this.Reload(A)}},Reload',126,'A){if(!',491,'){',150,491,'=0;',3,353,'=-100;',3,516,'ClearCache();if(A){',3,568,'.replace(A)}else{',3,568,'.reload()}}};',3,'Click={CheckClick',126,663,'A){A=',3,'window.event}if','(A.altKey){',3,187,'Panel()}},CheckDblClick',126,'B){if(!B){B=',3,687,'(!',3,'Click.DblClick){',3,'Extension.Require("double-click",1);',6,'B;B={};for(var C in A){B[C]=A[C]}}',3,256,'Push(',3,'Click,"DblClick",[B,this.alt])}};',3,'TeX={thinmuskip:3/18,medmuskip:4/18,thickmuskip:5/18,x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.362892,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,',34,':0.06,big_op_spacing1:0.111111,big_op_spacing2:0.166666,big_op_spacing3:0.2,big_op_spacing4:0.6,big_op_spacing5:0.1,integer:6553.6,scriptspace:0.05,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.5,scale:1,atom:["ord"! ,"op","bin","rel","open","close","punct","ord"],fam:["cmr10","',83,'","',89,'","cmex10","',77,'","","',71,'",""],famName:{cmr10:0,',83,':1,',89,':2,cmex10:3,',77,':4,',71,':6},encoding:["À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","°","Ñ","Ò","Ó","Ô","Õ","Ö","·","Ø","Ù","Ú","Û","Ü","µ","¶","ß","ï","!",""","#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","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","[","\","]","^","_","`","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","{","|","}","~","ÿ"],cmr10:[[0.625',',0.683],[0.','833',728,'778',728,'694',728,'667',728,'75',728,'722',! 728,'778',728,'722',728,'778',728,'722',728,'583',',0.694,0,{i! c:0.0778 ,krn:{"39":0.0778,"63":0.0778,"33":0.0778,"41":0.0778,"93":0.0778},lig:{"105":','14,"108":15}}],[0.556',',0.694],[0.','556',752,'833',752,'833',752,'278',',0.431],[0.','306',',0.431,0.194],[0.','5',752,'5',752,'5,0.628],[0.5',752,'5,0.568],[0.75',752,'444,0,0.17],[0.5',752,'722',760,'778',760,'5,0.528,0.0972],[0.903,0.683],[1.01',728,'778,0.732,0.0486],[0.278',',0.431,0,{','krn:{"108":-0.278,"76":-0.319}}],[0.278',',0.694,0,{','lig:{"96":','60}}],[0.5',752,'833',',0.694,0.194],[','0.5',',0.75,0.0556],[0.','833',789,'778',752,'278',782,'krn:{"63":0.111,"33":0.111},lig:{"39":34}}],[0.389',',0.75,0.25],[0.','389',797,'5,0.75],[','0.778,0.583,0.0833],[','0.278,0.106',',0.194],[0.','333',780,'lig:{"45":','123}}],[',802,'],[0.5',797,'5,0.644','],[0.5,0.644],[0.5,0.','644',812,'644',812,'644',812,'644],[0.5,0.644],[0.278',760,'278',762,'278,0.5',803,'778',',0.367,-0.133],[','0.472,0.5',803,'472',782,783,'62}}],[0.778',752,'75',',0.683,0,{krn:{"','116','":-0.0278,"','67',837,'79',83! 7,'71',837,'85',837,'81',837,'84":-0.0833,"89":-0.0833,"86":-0.111,"87":-0.111}}],[0.','708',728,'722',728,'764',835,'88',837,'87',837,'65',837,'86',837,'89":-','0.0278}}],[0.','681',728,'653',',0.683,0,{','krn:{"111":-0.0833,"101":-0.0833,"117":-0.0833,"114":-0.0833,"97":-0.0833,"65":-0.111,"79":-0.0278,"67":-0.0278,"71":-0.0278,"81":-0.0278}}],[','0.785',728,'75',728,'361',835,'73":',864,'514',728,'778',835,'79',837,'67',837,'71',837,'81":-',864,'625',835,848,'917',728,'75',728,'778',835,'88',837,'87',837,'65',837,'86',837,'89":-',864,'681',835,'65','":-0.0833,"','111',837,'101',837,'97',837,'46',912,'44":-0.','0833}}],[0.','778,0.683',803,'736',835,'116',837,'67',837,'79',837,'71',837,'85',837,'81',837,848,'556',728,'722',835,'121',837,'101',912,'111',912,'114',912,'97',912,'65',912,'117":-0.',922,'75',728,'75',',0.683,0,{ic:0.','0139,',869,'1.03',961,'0139,',869,'0.75',835,'79',837,'67',837,'71',837,'81":-',864,'75',961,'025,krn:{"101',912,'111',912,'114',912,'97',912,'! 65',912,956,922,'611',728,'278',797,'5',752,'278',797,'5',752,! '278,0.6 68],[0.','278',782,783,'92}}],[0.5',780,'krn:{"118',837,'106":0.0556,"121',837,'119":-',864,'556,0.','694,0',',{krn:{"101":0.0278,"111":0.0278,"120":-0.0278,"100":0.0278,"99":0.0278,"113":0.0278,"118":-0.0278,"106":0.0556,"121":-0.0278,"119":-0.0278}}],[0.','444',780,'krn:{"104',837,'107":-',864,'556',752,'444',760,'306',750,'12,"102":11,"108":13}}],[0.5',',0.431,0.194,{','ic:0.','0139,krn:{"','106":',864,'556',782,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,1002,'306,0.668',803,'528',782,'krn:{"97','":-0.0556,"','101',837,'97',837,'111',837,'99":-',864,'278',752,'833',780,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,'556',780,'krn:{"116',837,'117',837,'98',837,'121',837,'118',837,'119":-',864,'5,0.431,0',1016,1014,'431,0.194',1016,'528',762,'392',760,'394',760,'389,0.615,0,{krn:{"121',837,'119":-',864,'556',780,'krn:{"119":-',864,'528',',0.431,0,{ic:0.',1032,'97',1055,'101',837,'97',837,'111',837,'99":-',864,'722',1114,1032,'10! 1',837,'97',837,'111',837,'99":-',864,'528',760,'528',1030,'ic:0.',1032,'111',837,'101',837,'97',837,'46',912,'44":-0.',922,'444',760,'5',1114,'0278,',806,'124}}],[1',1114,'0278}],[0.','5',752,'5,0.668],[0.5,0.668]],',83,':[[0.615',961,'139',',krn:{"61":-0.0556,"59":-0.111,"58":-0.111,"127":0.',922,'833',835,'127":0.167}}],[0.','763',961,1157,'krn:{"127":0.0833}}],[0.','694',835,1173,'742',961,'0757,',1177,'831',961,'0812,krn:{"61',1055,'59":-0.0556,"58":-0.0556,"127":0.','0556}}],[0.','78',961,'0576,',1177,'583',961,'139',1169,1190,'667',868,1177,'612',961,'11,krn:{"61',1055,1189,1190,'772',961,'0502,',1177,'64',1114,'0037,','krn:{"127":',864,'566',',0.694,0.194,{ic:0.','0528,',1177,'518',1030,'ic:0.0556','}],[0.444',782,'ic:0.0378,krn:{"',1189,1190,'406',780,'krn:{"127":0.0556}}],[0.','438',1219,'0738,',1177,'497',1030,'ic:0.0359',',',1232,'469',782,'ic:0.',1157,1177,'354',780,1232,'576',760,'583',752,'603',1030,1216,864,'494',1114,'0637,krn:{"',1189,'0278}}],[0.','438',1! 219,'046,',1216,'0.111}}],[0.','57',1114,'0359}],[0.','517',10! 30,1177, '571',1114,'0359,krn:{"59',1055,'58":-0.',1190,'437',1114,'113,krn:{"',1189,1262,'54',1114,'0359,',1216,864,'596,0.694,0.194,{',1177,'626',1030,1232,'651',1219,'0359,',1216,1267,'622',1114,1270,'466',780,1177,'591',782,1177,'828',1114,1161,'517',1030,1177,'363,0.431,0.0972,{ic:0.0799,',1177,'654',1030,1216,'0.0833}}],[1',826,'1',826,'1',826,'1',826,'0.278',',0.464,-0.0363],[','0.278',1329,'0.5,0.465,-0.0347],[',1332,'0.5',760,'5',760,'5',760,'5',762,'5',762,'5,0.',1097,812,1097,812,'431',803,'278,0.106],[',802,803,'778',',0.539,0.0391],[','0.5,0.75,0.25,{krn:{"1',1055,'65',1055,'77',1055,'78',1055,'89":0.0556,"90":-0.',1190,'778',1355,1332,'0.531',782,1224,',',1177,'75',835,'127":','0.','139}}],[0.','759',961,'0502,',1177,'715',961,'0715,krn:{"61',837,1189,922,'828',961,1157,1232,'738',961,'0576,',1177,'643',961,'139',1169,922,'786',868,1177,'831',961,'0812,krn:{"61',1055,1189,1190,'44',961,'0785,',1216,1267,'555',961,'0962',1169,'167}}],[0.','849',961,'0715,krn:{"61',1055,1! 189,1190,'681',835,1376,864,'97',961,'109,krn:{"','61',1055,1189,922,'803',961,1433,'61',912,'61',837,1189,922,'763',961,1157,1177,'642',961,'139',1169,922,'791,0.683,0.194,{',1177,'759',961,'00773,',1177,'613',961,'0576,krn:{"61',1055,1189,922,'584',961,'139,krn:{"61',837,1189,922,'683',961,1433,'59":-0.111,"',1278,'111,"61',1055,1376,864,'583',961,'222',',krn:{"59":-0.167,"58":-0.167,"61":-0.111}}],[0.','944',961,'139',1486,'828',961,'0785,krn:{"61',912,'61',837,1189,922,'581',961,'222',1486,'683',961,'0715,krn:{"61',1055,1189,922,'389,0.75],[0.389',787,'0.389',787,'1,0.358,-0.142],[',1513,'0.417',782,1216,1267,'529',760,'429',752,'433',780,1232,'52',782,'krn:{"89":0.0556,"90',1055,'106":-0.111,"102":-0.167,"',1173,'466',780,1232,'49',1219,'108,krn:{"',1189,1420,'477',1030,1239,',',1216,864,'576',782,'krn:{"127":-',864,'345,0.66],[0.412,0.66,0.194,{ic:0.0572,krn:{"59',1055,1278,1190,'521',782,'ic:0.0315}],[0.298',782,'ic:0.0197,',1177,'878',760,'6',760,'485',780,1232,'503! ',1030,1177,'446',1030,1239,',',1177,'451',1114,1157,'krn:{"',! 1189,119 0,'469',780,1232,'361,0.615,0,{',1177,'572',780,1216,864,'485',1114,'0359,',1216,864,'716',1114,'0269,',1177,'572',780,1216,864,'49',1030,1239,',',1232,'465',1114,'044,',1232,'322',780,1216,864,'384',1030,1177,'636',1030,1216,1267,'5,0.714,0,{ic:0.154}],[0.278',782,'ic:0.399}]],',89,':[[',801,'0.278,0.444,-0.0556],[',801,1332,801,'0.5,0.444,-0.0556],[',801,801,801,801,801,801,801,'1',787,1633,1633,'0.778',1329,'0.778,0.464,-0.0363','],[0.778,0.636,0.136',1648,1648,1648,1648,1648,'],[0.778',826,'0.778,0.483,-0.0169],[0.778',1355,'0.778',1355,'1',1355,'1',1355,'0.778',1355,'0.778',1355,'1',826,'1',826,'0.5',787,'0.5',787,'1',826,'1',787,'1',787,'0.778',1329,'1',826,'1',826,'0.611',787,'0.611',787,'1',826,'1',787,'1',787,'0.778',760,'275,0.556],[1',760,'667',1355,'0.667',1355,'0.889',787,'0.889',787,'0',787,'0',826,'0.556',752,'556',752,'667',760,'5',789,'722',752,'722',752,'778',752,'778',752,'611',752,'798',835,'48":0.','194}}],[0.657',961,'0304',',krn:{"48":0.',1378,'527',96! 1,'0583',1738,1378,'771',961,'0278',1738,922,'528',961,'0894',1738,'111}}],[0.','719',961,'0993',1738,1754,'595',',0.683,0.0972,{ic:0.','0593',1738,1754,'845',961,'00965',1738,1754,'545',961,'0738,krn:{"48":',864,'678',1761,'185',1738,1420,'762',961,'0144',1738,1190,'69',835,1734,'139}}],[1.2',835,1734,1378,'82',961,'147',1738,922,'796',961,1747,1738,1754,'696',961,'0822',1738,922,'817,0.683,0.0972,{krn:{"48":',1267,'848',835,1734,922,'606',961,'075',1738,1378,'545',961,'254,krn:{"48":',864,'626',961,'0993',1738,922,'613',961,'0822,krn:{"48":',864,'988',961,'0822',1738,922,'713',961,'146',1738,1378,'668',1761,'0822',1738,922,'725',961,'0794',1738,1378,'667,0.556],[0.',1850,1850,1850,1850,'611',752,'611',752,'444',797,'444',797,'444',797,'444',797,'5',797,'5',797,'389',797,'389',797,'278',797,'5',797,'5',797,'611',797,'5',797,'278',787,'0.833,0.04,0.96],[0.75',728,'833',728,'417',1219,'111}],[0.',1850,'667,0.556',1648,1648,'],[0.444',787,'0.444',787,'0.444',787,'0.611',787,'! 0.778,0.694,0.13','],[',1906,'],[',1906,'],[',1906,']],cmex10:! [[0.458' ,',0.04,1.16,{n:','16}],[0.458',1914,'17}],[0.417',1914,'104}],[0.417',1914,'105','}],[0.472,0.04,1.16,{n:','106',1922,'107',1922,'108',1922,'109}],[0.583',1914,'110}],[0.583',1914,'111',1922,'68',1922,'69}],[0.333',',0,0.6,{delim:{rep:','12}}],[0.556',1938,'13}}],[0.578',1914,'46}],[0.578',1914,'47}],[0.597',',0.04,1.76,{n:','18}],[0.597',1946,'19}],[0.736',',0.04,2.36,{n:','32}],[0.736',1950,'33}],[0.528',1950,'34}],[0.528',1950,'35}],[0.583',1950,'36}],[0.583',1950,'37}],[0.583',1950,'38}],[0.583',1950,'39}],[0.75',1950,'40}],[0.75',1950,'41}],[0.75',1950,'42}],[0.75',1950,'43}],[1.04',1950,'44}],[1.04',1950,'45}],[0.792',',0.04,2.96,{n:','48}],[0.792',1978,'49}],[0.583',1978,'50}],[0.583',1978,'51}],[0.639',1978,'52}],[0.639',1978,'53}],[0.639',1978,'54}],[0.639',1978,'55}],[0.806',1978,'56}],[0.806',1978,'57}],[0.806',',0.04,2.96],[','0.806',1998,'1.28',1998,'1.28',1998,'0.811',1946,'30}],[0.811',1946,'31}],[0.875',',0.04,1.76,{delim:{top:','48,bot:64,rep:66}}],[0.875',! 2010,'49,bot:65,rep:67}}],[0.667',2010,'50,bot:52,rep:54}}],[0.667',2010,'51,bot:53,rep:55','}}],[0.667,0.04,1.76,{delim:{bot:','52,rep:54',2018,'53,rep:55','}}],[0.667,0,0.6,{delim:{top:','50,rep:54',2022,'51,rep:55','}}],[0.889,0,0.9,{delim:{top:','56,mid:60,bot:58,rep:62',2026,'57,mid:61,bot:59,rep:62',2026,'56,bot:58,rep:62',2026,'57,bot:59,rep:62','}}],[0.889,0,1.8,{delim:{rep:','63',2034,'119}}],[0.889,0,0.3,{delim:{rep:62',2022,'120,bot:121,rep:63}}],[0.875',2010,'56,bot:59,rep:62}}],[0.875',2010,'57,bot:58,rep:62}}],[0.875',1938,'66}}],[0.875',1938,'67}}],[0.611',1946,'28}],[0.611',1946,'29','}],[0.833,0,1,{n:','71}],[1.11,0.1,1.5],[','0.472,0,1.11,{ic:0.194,n:','73}],[0.556,0,2.22,{ic:0.444}],[1.','11,0,1,{n:','75}],[1.51',',0.1,1.5],[1.',2056,'77}],[1.51',2058,2056,'79}],[1.51',2058,'06,0,1,{n:88}],[0.944,0,1,{n:89}],[',2054,'90',2052,'91',2052,'92',2052,'93',2052,'94',2052,'95}],[1.44',2058,'28,0.1,1.5],[0.556,0,2.22,{ic:0.444}],[1.11',2058,'11',2058,'11',2058,'1! '], - ['1,0.1,1.5],[1.11,0.1,1.5],[0.944,0,1,{n:97}],[1.28,0.1,1.5','],[0.556,0.722,0,{n:','99','}],[1,0.75,0,{n:','100}],[1.44,0.75',1,'102',3,'103}],[1.44,0.75],[0.472',',0.04,1.76,{n:','20}],[0.472',9,'21}],[0.528',9,'22}],[0.528',9,'23}],[0.528',9,'24}],[0.528',9,'25}],[0.667',9,'26}],[0.667',9,'27','}],[1,0.04,','1.16,{n:113}],[1',9,'114',25,'2.36,{n:115',25,'2.96,{n:116}],[1.06,0,1.8,{delim:{top:118,bot:116,rep:117}}],[1.06,0,0.6],[1.06,0.04,0.56],[0.778',',0,0.6,{delim:{','top:126,','bot:127,rep:119','}}],[0.667',33,'top:120,rep:63}}],[0.667',33,'bot:121,rep:63}}],[0','.45,0.12],[0',41,41,41,'.778',33,34,'rep:119}}],[0.778',33,35,'}}]],cmti10:[[0.627',',0.683,0,{ic:0.','133}],[0.818,0.683],[0.767',52,'094}],[0.','692,0.683],[0.664',52,'153}],[0.743',52,'164}],[0.','716',52,'12}],[0.','767',52,'111}],[0.716',52,'0599}],[0.767',52,'111}],[0.716',52,'103}],[0.','613',',0.694',',0.194,{ic:0.','212,krn:{"39":0.104,"63":0.104,"33":0.104,"41":0.104,"93":0.104},lig:{"105":','14,! "108":15}}],[0.','562',74,75,72,'588',74,75,72,'882',74,75,72,'894',74,75,72,'307',',0.431,0,{ic:0.','0767}],[0.','332,0.431',75,'0374}],[0.511',',0.694],[0.','511',',0.694,0,{ic:0.','0969','}],[0.511,0.','628',',0,{ic:0.','083}],[0.511',102,'108',104,'562',106,72,'831',100,'46,0,0.17],[0.537',74,75,'105}],[0.','716',95,'0751','}],[0.716',95,122,104,'528,0.0972,{ic:0.0919}],[0.883',52,63,'985',52,63,'767,0.732,0.0486,{ic:0.',55,'256,0.431,0,{krn:{"108":-0.256,"76":-0.321}}],[0.307',102,'124,lig:{"96":','60}}],[0.','514',102,'0696}],[0.818',74,75,'0662}],[0.769',100,'818',',0.75,0.0556',',{ic:0.136}],[0.','767',102,'0969}],[0.307',102,'124',',krn:{"','63":0.102,"33":0.102','},lig:{"39":34}}],[0.','409',',0.75,0.25,{ic:0.','162}],[0.409',158,'0369',104,'75',106,'149}],[0.767,0.562,0.0567,{ic:0.0369','}],[0.307,0.','106',',0.194],[0.','358',95,'0283,','lig:{"45":123}}],[0.','307,0.106],[0.511',158,'162',104,'644,0',',{ic:0.136}],[0.511,0.644,0',178,178,178,'.194',178,178,178,1! 82,178,178,148,'307',95,'0582',166,'431',75,'0582',166,'5',75,! '0756}], [0.767,0.367,-0.133,{ic:0.0662',104,'5',168,'511',102,'122,lig:{"96":62}}],[0.767',102,'096}],[0.743,0.683,0,{','krn:{"110":-0.0256,"108":-0.0256,"114":-0.0256,"117":-0.0256,"109":-0.0256,"116":-0.0256,"105":-0.0256,"67":-0.0256,"79":-0.0256,"71":-0.0256,"104":-0.0256,"98":-0.0256,"85":-0.0256,"107":-0.0256,"118":-0.0256,"119":-0.0256,"81":-','0.0256,"84','":-0.0767,"','89',211,'86','":-0.102,"','87',215,'101":-0.0511,"97":-0.0511,"111":-0.0511,"100":-0.0511,"99":-0.0511,"103":-0.0511,"113":-0.0511}}],[0.','704',52,72,'716',52,'145}],[0.','755',52,'094',154,'88','":-0.0256,"','87',230,'65',230,'86',230,'89','":-0.0256}}],[0.','678',52,63,'653',52,'133',154,'111',211,'101',211,'117','":-0.0767,"114":-0.0767,"97":-0.0767,"','65',215,'79":-0.0256,"67":-0.0256,"71":-0.0256,"81":-0.0256}}],[0.','774',52,'0872}],[0.743',52,60,'386',52,'158}],[0.525',52,'14}],[0.769',52,'145',154,254,'627,0.683,0,{krn:{"84',211,'89',211,'86',215,'87',215,218,'897',52,60,'743',52,60,'767',52,'094',1! 54,'88',230,'87',230,'65',230,'86',230,'89',238,'678',52,'103',154,'65":-0.0767}}],[0.','767,0.683',75,55,'729',52,'0387,',209,'0.0256,"84',211,'89',211,'86',215,'87',215,218,'562',52,63,'716',52,'133',154,'121',211,'101',211,'111',251,'117',211,302,'743',52,60,'743',52,'184',154,'111',211,'101',211,'117',251,'65',215,254,'999',52,'184',154,302,'743',52,'158',154,254,'743',52,'194',154,'101',211,'111',251,'117',211,302,'613',52,224,'307',158,'188}],[0.514',102,'169}],[0.307',158,119,'511',102,'0665',166,'668',106,'118}],[0.307',102,137,'92}}],[0.','511',95,96,'46',102,'0631',154,218,'46',95,'0565',154,218,'511',102,'103',',krn:{"108":0.0511}}],[0.','46',95,122,154,218,'307',74,75,76,'12,"102":11,"108":13}}],[0.','46,0.431',75,'0885}],[0.','511',102,96,'307,0.655',106,'102',166,'655',75,224,'46',102,'108}],[0.','256',102,'103',408,'818',95,96,'562',95,'0767',154,'39":-0.102}}],[0.511',95,'0631',154,218,'511,0.431',75,'0631',154,218,'46,0.431',75,421,'422',95,'108',154,218,'4! 09',95,'0821}],[0.332,0.615',106,'0949}],[0.537',95,96,'46',95! ,434,'66 4',95,'108',408,'464',95,63,'486,0.431',75,421,'409',95,'123}],[0.511',95,'0921',',lig:{"45":124}}],[1.','02',95,'0921}],[0.511',102,'122',104,'668',106,'116',104,'668',106,'105}]],cmbx10:[[0.692',',0.686],[0.','958',503,'894',503,'806',503,'767',503,'9',503,'831',503,'894',503,'831',503,'894',503,'831',503,'671',102,'109,krn:{"39":0.109,"63":0.109,"33":0.109,"41":0.109,"93":0.109},lig:{"105":',77,'639',100,'639',100,'958',100,'958',100,'319',',0.444],[0.','351,0.444',168,'575',100,'575',100,'575,0.','632],[0.575',100,544,'596],[0.869',100,'511,0,0.17],[0.597',100,'831',537,'894',537,544,'542,0.0972],[1.04,0.686],[1.17',503,'894,0.735,0.0486],[0.319',',0.444,0,{krn:{"','108":-0.319,"76":-0.378}}],[0.35',',0.694,0,{lig:{"96":',138,'603',100,'958',74,168,'575',147,'],[0.958',147,'],[0.894',100,'319',',0.694,0,{krn:{"','63":0.128,"33":0.128',156,'447',',0.75,0.25],[0.','447',580,544,'75],[0.894,0.633,0.133],[0.','319,0.156',168,'383,0.444,0,{',172,585,'],[0.575',580,544,'644],[! ','0.575,0.644],[0.575,0.644],[',594,594,594,'0.',544,'644],[0.319',537,'319,0.444',168,'35,0.5',168,'894,0.391,-0.109],[0.543,0.5',168,'543',562,'62}}],[0.894',100,'869',',0.686,0,{krn:{"','116','":-0.0319,"','67',615,'79',615,'71',615,'85',615,'81',615,'84":-0.0958,"89":-0.0958,"86":-0.128,"87":-0.128}}],[','0.818',503,'831',503,'882',613,'88',615,'87',615,'65',615,'86',615,'89','":-0.0319}}],[0.','756',503,'724,0.686,0,{','krn:{"111":-0.0958,"101":-0.0958,"117":-0.0958,"114":-0.0958,"97":-0.0958,"65":-0.128,"79":-0.0319,"67":-0.0319,"71":-0.0319,"81":-0.0319}}],[','0.904',503,'9',503,'436',613,'73','":0.0319}}],[0.','594',503,'901',613,'79',615,'67',615,'71',615,'81',642,'692',613,626,'1.09',503,'9',503,'864',613,'88',615,'87',615,'65',615,'86',615,'89',642,'786',613,'65":-0.0958,"111',615,'101',615,'97',615,'46":-0.0958,"44":-0.0958}}],[0.','864,0.686',168,'862',613,'116',615,'67',615,'79',615,'71',615,'85',615,'81',615,626,'0.639',503,'8',613,'121',615,'101":-0.0958,"1! 11":-0.0958,"114":-0.0958,"97":-0.0958,"65":-0.0958,"117":-0.0! 958}}],[ 0.','885',503,'869,0.686',106,'016,',646,'1.19,0.686',106,'016,',646,'0.869',613,'79',615,'67',615,'71',615,'81',642,'869,0.686',106,'0287',154,718,'703',503,'319',580,'603',100,'319',580,'575',100,'319',100,'319',562,391,'559',560,'118',615,'106":0.0639,"121',615,'119',642,'639',74,',0',',{krn:{"101":0.0319,"111":0.0319,"120":-0.0319,"100":0.0319,"99":0.0319,"113":0.0319,"118":-0.0319,"106":0.0639,"121":-0.0319,"119":-0.0319}}],[0.','511',560,'104',615,'107',642,'639',100,'527',537,'351',102,526,418,544,'444',75,'016,krn:{"','106',654,'639',576,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,'319',100,'351',74,168,'607',576,'97":-0.0639,"101',615,'97',615,'111',615,'99',642,'319',100,'958',560,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,'639',560,'116',615,'117',615,'98',615,'121',615,'118',615,'119',642,544,'444,0',770,'639,0.444,0',182,770,'607,0.444',168,'474',537,'454',537,'447,0.635,0,{krn:{"121',615,'119',642,'639',560,'119',642,856,106,788,'! 97":-0.0639,"101',615,'97',615,'111',615,'99',642,'831,0.444',106,788,'101',615,'97',615,'111',615,'99',642,'607',537,856,75,788,'111',615,'101',615,'97',615,694,'511',537,544,'444',106,'0319',489,'15,0.444',106,'0319}],[0.575',100,'575',100,'575',74,']]};','jsMath.Img','={fonts:[50,60,70,85,100,120,144,173,207,249,298,358,430],w:{"50":6.9,"60":8.3,"70":9.7,"85":11.8,"100":13.9,"120":16.7,"144":20,"173":24,"207":28.8,"249":34.6,"298":41.4,"358":49.8,"430":59.8},best:4,update:{},factor:1,loaded:0,SetFont',':function(','B){for(var A in B){if(!','this.update[A',']){',924,']=[]}',924,']=',924,'].concat(B[A])}},AddFont',922,'A,B){if(!',920,'[A]){',920,'[A]={}}jsMath.Add(',920,'[A],B)},UpdateFonts',':function(){','var D=this.update;','if(!this.loaded){','return }for(var A in D){for(var B=0;B<D[A].length;B++){var C=D[A][B];if(C=="all"){for(C in ','jsMath.TeX[','A]){',944,'A][C].img','={}}}else{',944,947,'={}}}}this.update={}},BestSize',940,'var B=jsMath.em*this.factor;var A=','thi! s.w[this.fonts[','0]];for(var C=1;C<this.fonts.length;C++){if(! B<(',954 ,'C]]+2*A)/3){return C-1}A=',954,'C]]}return C-1},Scale',940,942,'return }this.best=this.BestSize();this.em=',920,'.w[this.fonts[this.best]];','this.scale','=(jsMath.em/this.em);','if(Math.abs(',965,'-1)<0.12){',965,'=1}},URL',922,'A,B,E){var D=(','jsMath.Controls.cookie.','alpha)?"/alpha/":"/plain/";','if(E==null','){E="def.js"}else{E="char"+E+".png"}if(B!=""){B+="/"}','return this.','root+A+D+B+E},LoadFont',922,'A){',942,'this.Init()}jsMath.Setup.Script(this.URL(A,""))},Init',940,'if(',974,'print||',974,'stayhires','){',974,'print=',974,989,';this.factor*=3;if(!','jsMath.Controls.','isLocalCookie||!jsMath.Global.isLocal){',996,'SetCookie(0)}if(','jsMath.Browser.','alphaPrintBug){',974,'alpha=0}}var B="0123456789ABCDEF";this.HexCode=[];for(var C=0;C<128;C++){var D=Math.floor(C/16);var A=C-16*D;this.HexCode[C]=B.charAt(D)+B.charAt(A)}this.loaded=1}};jsMath.HTML={Em',922,'A){var C=','5;if(A<0){C++}',967,'A)<0.000001){A=0}var B=String(A);B=B.replace(/(\\.\\d\\d\\d).+/,"$1");re! turn B+"em"},Spacer',922,'A){if(A==0){return""}return ',1000,'msieSpaceFix+\'<','span class="spacer" style="margin-','left:\'+this.Em(','A)+\'"></span>\'},Blank',922,'B,E,G,F){var A="";var D="";if(F){D+="border-left',':"+this.Em(','B)+" solid;";if(',1000,'widthAddsBorder){B=0}}if(B==0){if(',1000,'blankWidthBug){if(',1000,'quirks','){D+="width:1px',';";A=\'<',1013,'right:-1px"></span>\'}else{if(!F',1026,';margin-right:-1px;"}}}}else{D+="width',1018,'B)+";"}if(G==null){G=0}if(E){var C=this.Em(E+G);if(F&&E*jsMath.em<=1.5){C="1.5px";E=1.5/jsMath.em}D+="height:"+C+";"}if(',1000,'mozInlineBlockBug){G=-E}if(',1000,'msieBorderBug&&!F){G-=jsMath.d}if(G){D+="','vertical-align:"+','this.Em(-G)}return A+\'<span class="blank" ','style="\'+','D+\'"></span>\'},Rule',922,'A,B){if(B==null){B','=jsMath.TeX.default_rule_thickness}',978,'Blank(A,B,0,1)},Class',922,'A,B){return\'<span class="\'+A','+\'">\'+B+"</span','>"},Place',922,'B,A,D){',967,'A)<0.0001){A=0}',967,'D)<0.0001){D=0}if(A||D){v! ar C=\'<','span style="position',': relative',';\';if(A){C+=" ! margin-l eft',1018,'A)+";"}if(D){C+=" top:"+this.Em(-D)+";"}B=C',1049,'>"}return B},PlaceSeparateSkips',922,'E',',G,F,I,A,H){if(Math.abs(G)<0.0001){G=0}if(Math.abs(F)<0.0001){F=0}','if(F){var D=0;var C=0;','var B="";if(','I!=null){C=','A-H;D=I;B=" width',1018,'A-I)+";"}E=','this.Spacer','(D-C)+\'<',1057,1058,'; top:\'+this.Em(-F)+";left',1018,'C',')+";"+B+\'">\'+',1073,'(-D)+E+',1073,'(C)+"</span>"}if(G){E=',1073,'(G)+E}return E},PlaceAbsolute',922,'D',1066,'var C="";var ','E="";',1068,1000,'msieRelativeClipBug&&',1069,1073,'(-I);G+=I;E=',1073,'(A-H)}if(',1000,'operaAbsoluteWidthBug){B=" width: "+this.Em(H+2)}D=\'<',1057,':absolute; ',1014,'G)+"; top',1018,'F',1080,'C+D+E+" </span>";','return D},','Absolute',922,'B,A,C,D,E){if(E!="none"){',967,'E)<0.0001){E=0}B=\'<',1057,1103,'top:\'+','jsMath.HTML.','Em(E)+\'; left:0em;">\'+B+" </span>"}if(D=="none"){D=0}B+=this.Blank(A,C-D,D);if(',1000,'msieAbsoluteBug){B=\'<',1057,':relative',';">\'+B+"</span>"}B=\'<',1057,1124,';\'+',10! 00,'msieInlineBlockFix',1049,'>";return B}};','jsMath.Box','=function(C,E,A,B,D){if(D==null){D=jsMath.d}this.type="typeset";this.w=A;this.h=B;this.d=D;this.bh=B;this.bd=D;this.x=0;this.y=0;this.mw=0;this.Mw=A;this.html=E;this.format=C};jsMath.Add(',1133,',{defaultH:0,Null',940,'return new ',1133,'("null","",0,0,0)},Text',922,'J,I,A,K,H,G){var E=','jsMath.Typeset.AddClass(','I,J);E=','jsMath.Typeset.','AddStyle(','A,K,E);var B','=jsMath.EmBoxFor(','E);var C=',1145,'TeX(A,K);var F=((I=="cmsy10"||I=="cmex10")?B.h-C.h:C.d*B.h/C.hd);var D=new ',1133,'("text",J,B.w,B.h-F,F);D.style=A;D.size=K;D.tclass=I;if(G!=null){D.d=G*C.scale}else{D.d=0}if(H==null||H==1){D.h=0.9*C.M_height}else{D.h=1.1*C.x_height+C.scale*H}',1110,'TeX',922,'H,A,E,B){var I=',944,'A][H];','if(I.d==null){I.d=0}','if(I.h==null){I.h=','0}if(I.img!=null&&I.c!=""){this.TeXIMG(A,H,',1145,'StyleSize(E,B))}var G=',1145,'TeX(E,B).scale;var D=I.h+',944,'A].dh;var F=new ',1133,'("text",I.c,I.w*G,D*G,I.d*G);F.style=E;F.size! =B;if(I.tclass){F.tclass=I.tclass;if(I.img){F.bh=I.img.bh;F.bd! =I.img.b d}else{F.bh=G*jsMath.h;F.bd=G*jsMath.d}}else{F.tclass=A;F.bh=G*',944,'A].h;F.bd=G*',944,'A].d;if(',1000,'msieFontBug&&','F','.html.match(/&#/)){','F','.html+=\'<span style="display:none">x</span','>\'}}return F},TeXfallback',922,'A,D,B,L){var J=',944,'D][A];if(!J.tclass){J.tclass=D}if(J.img!=null){',978,'TeXnonfallback(A,D,B,L)}if(J.h!=null&&J.a==null){J.a=J.h-1.1*jsMath.TeX.x_height}var K=J.a;var I=J.d;var H=this.Text(J.c,J.tclass,B,L,K,I);var E=',1145,'TeX(B,L).scale;if(J.bh!=null){H.bh=J.bh*E;H.bd=J.bd*E}else{var G=H.bd+H.bh;var F=',1143,'H.tclass,H.html);F=',1145,1146,'B,L,F);H.bd',1148,'F+',1119,'Blank(1,G)).h-G;H.bh=G-H.bd;if(E==1){J.bh=H.bh;J.bd=H.bd}}if(jsMath.',1176,'H',1178,'H',1180,'>\'}return H},TeXIMG',922,'E,A,R){var M=',944,'E][A];if(M.img.size!=null&&M.img.size==R&&M.img.best!=null&&M.img.best==','jsMath.Img.best','){return }var F=(',920,'.scale!=1);var B=',1209,'+R-4;if(B<0){B=0;F=1','}else{if(','B>=','jsMath.Img.fonts','.length){','B=',1217,'.length-1',';F=! 1}}var Q=',920,'[',1217,'[B]];var I=Q[E][A];var G=1/',920,'.w[',1217,'[B]];if(B!=',1209,'+R-4){if(M.w!=null){G=M.w/I[0]}else{G*=',1217,'[R]/',1217,'[4]*',1217,'[',1209,']/',1217,'[B]}}var N=I[0]*G;var J=I[1]*G;var L=-I[2]*G;var O;var H=(M.w==null||Math.abs(M.w-N)<0.01)?"":" margin-right:"+',1119,'Em(M.w-N)+";";var D="";A=',920,'.HexCode[A];if(!F&&!',974,'scaleImg){if(2*N<J||(',1000,'msieAlphaBug&&',974,'alpha)){D="height',':"+(I[1]*',1000,'imgScale',')+"px;"}D+=" width:"+(I[0]*',1000,1255,')+"px;";O=-I[2]+"px"}else{if(2*N<J||(',1000,'msieAlphaBug&&',974,1252,':"+',1119,'Em(J*',1000,1255,')+";"}D+=" width:"+',1119,'Em(N*',1000,1255,')+";";O=',1119,'Em(L)}var P=(Math.abs(L)<0.01&&!',1000,'valignBug)?"":" ',1038,'O+";";var K=',920,'.URL(E,',1217,'[B],A);if(',1000,'msieAlphaBug&&',974,'alpha){','M.c=\'<img src="\'+','jsMath.blank+\'" ',1040,1000,'msieCenterBugFix+D+P+H','+" filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'"+K+"\', sizingMethod=\'scale\');\\" />"}! else{',1289,'K+\'" ',1040,1000,1293,'+\'" />\'}M.tclass="norma! l";M.img .bh=J+L;M.img.bd=-L;M.img.size=R;M.img.best=',1209,'},Space',922,'A){return ','new jsMath.Box("html",',1119,'Spacer(A),A,0,0)},Rule',922,'A,C){if(C','==null){C',1044,'var B=',1119,'Rule(A,C);return ',1305,'B,A,C,0)},GetChar',922,'B,',1005,944,'A][B];','if(C.img!=null){this.TeXIMG(A,B',',4)}if(C.tclass',1310,'.tclass=A}if(!C.computedW){C.w',1148,1143,'C.tclass,C.c)).w',';if(C.h',1310,'.h=',1133,'.defaultH}if(C.d',1310,'.d=0}C.computedW=1}return C},DelimBestFit',922,'E,J,D,G){if(J==0&&D==0){return null}var I;var F;D','=jsMath.TeX.fam[','D];var A=(G.charAt(1)=="S");var B=(G.charAt(0)=="S");while(J!=null){I=',944,'D][J];',1161,1133,'.defaultH}',1160,'F=I.h+I.d;if(I.delim){return[J,D,"",E]}if(A&&0.5*F>=E','){return[J,D,"','SS",0.5*F]}if(B&&0.7*F>=E',1347,'S",0.7*F]}if(F>=E||I.n==null',1347,'T",F]}J=I.n}return null},DelimExtendRelative',922,'I,T,O,V,D){var P=',944,'O][T];var N','=this.GetChar(','P.delim.','top?P','.delim.top:','P.delim.rep,O);var ','A',1357,1361,'M',1357,1358,'bot! ?P','.delim.bot:',1361,'E=',1143,'A.tclass,A.c);','var J=A.w;var S=A.h+A.d;var F;var B;var K;var L;var R;var Q;if(',1358,'mid){var U',1357,1358,'mid,O);Q','=Math.ceil((I-(','N.h+N.d)-(','U.h+U.d)-(M.h+M.d))/(2*(A.h+A.d',')));I=2*','Q*(A.h+A.d)+(N.h+N.d)+(','U.h+U.d)+(M.h+M.d);if(D){F=0}else{F=I/2+V}B=F;K=',1119,'Place(',1143,'N.tclass,N.c),0,F-N.h',')+',1119,1387,1143,'M.tclass,M.c),-(','N.w+M.w)/2,F-(I-M.d))+',1119,1387,1143,'U.tclass,U.c),-(M.w+U.w)/2,F-(I+U.h-U.d)/2);L=(J-U','.w)/2;if(Math.abs(L)<0.0001){L=0}if(L){K+=jsMath.HTML.Spacer(L)}F-=N.h+N.d+A.h;for(R=0;R<Q;R++){K+=jsMath.HTML.Place(E,-J,F-R*S)}','F-=I/2-A.h/2;for(R=0;R<Q;R++){K+=',1119,1387,'E,-J,F-R*S)}}e... [truncated message content] |
From: dpvc v. a. <we...@ma...> - 2008-10-11 01:48:59
|
Update of /webwork/cvs/system/webwork2/htdocs/jsMath/local In directory devel.webwork.rochester.edu:/tmp/cvs-serv54023/local Log Message: Directory /webwork/cvs/system/webwork2/htdocs/jsMath/local added to the repository |
From: Mike G. v. a. <we...@ma...> - 2008-10-09 02:48:48
|
Log Message: ----------- Forward ports from rel-2-4-patches Modified Files: -------------- webwork2/conf: global.conf.dist webwork.apache2-config.dist webwork2/conf/templates/math: system.template webwork2/courses.dist/modelCourse/templates: course_info.txt webwork2/doc/parser/docs: UsingParser.pod webwork2/htdocs/helpFiles: InstructorUserList.html webwork2/lib/WeBWorK: Constants.pm PG.pm Utils.pm webwork2/lib/WeBWorK/ContentGenerator: ProblemSet.pm webwork2/lib/WeBWorK/ContentGenerator/Instructor: PGProblemEditor.pm SetMaker.pm webwork2/lib/WeBWorK/DB/Schema/NewSQL: Std.pm webwork2/lib/WeBWorK/File: Classlist.pm Revision Data ------------- Index: UsingParser.pod =================================================================== RCS file: /webwork/cvs/system/webwork2/doc/parser/docs/UsingParser.pod,v retrieving revision 1.1 retrieving revision 1.2 diff -Ldoc/parser/docs/UsingParser.pod -Ldoc/parser/docs/UsingParser.pod -u -r1.1 -r1.2 --- doc/parser/docs/UsingParser.pod +++ doc/parser/docs/UsingParser.pod @@ -50,6 +50,7 @@ this easier, substitute will apply Formula() to any string values automatically. E.g., Formula("x-1")->substitute(x=>"y") + returns "y-1" as a formula. =item $f->string @@ -353,7 +354,7 @@ and can change, remove or list the constants via methods like those used for variables above. The command - $M = $constant->constants->get('M'); + $M = $context->constants->get('M'); will return the value of the consant M. (See the pg/lib/Value/Context/Data.pm file for more information on the methods @@ -362,16 +363,23 @@ To add new predefined words (like 'NONE' and 'DNE'), use something like - $constant->strings->add(TRUE=>{},FALSE=>{}); + $context->strings->add(TRUE=>{},FALSE=>{}); + +Strings are case-insensitive, unless you say otherwise. To mark a +string as being case-senstive, use + + $context->strings->add(TRUE => {caseSensitive=>1}); -Note that strings are case-sensitive, so you might want to add +You may want to privide several forms for the same word; to do so, +make the additional words into aliases: - $constant->strings->add( - true => {alias=>'TRUE'}, - false => {alias=>'FALSE'}, + $context->strings->add( + T => {alias=>'TRUE'}, + F => {alias=>'FALSE'}, ); -so that either "TRUE" or "true" will be interpreted as TRUE. +so that either "TRUE" or "T" will be interpreted as TRUE, and +similarly for "FALSE" and "F"; There are a number of values stored in the context that control things like the tolerance used when comparing numbers, and so on. You Index: InstructorUserList.html =================================================================== RCS file: /webwork/cvs/system/webwork2/htdocs/helpFiles/InstructorUserList.html,v retrieving revision 1.4 retrieving revision 1.5 diff -Lhtdocs/helpFiles/InstructorUserList.html -Lhtdocs/helpFiles/InstructorUserList.html -u -r1.4 -r1.5 --- htdocs/helpFiles/InstructorUserList.html +++ htdocs/helpFiles/InstructorUserList.html @@ -52,7 +52,7 @@ <dd> Click the "Add x student(s)" radio button and then click "Take action". This will take you to a new page where the data can be entered for one or more students. It is also possible to assign the student to one or more problem sets as they are being entered: simply select the homework sets from the list below the data entry table. Use 'command' or 'control' click to select more than one homework set.</dd> <dt>Add many students to a course from a class list.</dt> - <dd>This is most easily done by importing a class list. The class list can be uploaded from your workstation to the server using the File Manager page. The class list must be a file ending in .lst and must have a specific <a href="http://webhost.math.rochester.edu/webworkdocs/discuss/msgReader$59#2397">format</a>. Once the file has been uploaded to the server the file will appear in the import action pop-up list (5th action). demoCourse.lst is available for most courses and adds the "practice users" which activate guest logins to the class list .</dd> + <dd>This is most easily done by importing a class list. The class list can be uploaded from your workstation to the server using the File Manager page. The class list must be a file ending in .lst and must have a specific <a href="http://webwork.maa.org/wiki/Classlist_Files#Format_of_classlist_files">format</a>. Once the file has been uploaded to the server the file will appear in the import action pop-up list (5th action). demoCourse.lst is available for most courses and adds the "practice users" which activate guest logins to the class list .</dd> <dt>Add a TA or an instructor (change permission level of user)</dt> <dd>This is done by first entering the user as a student and then changing the permission level of the user. First edit the user by clicking on the pencil next to their name (or using the technique above for several users), then change their permssion level -- an entry blank at the far right of the screen, you may have to scroll to see it. The permission levels are Index: Utils.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/Utils.pm,v retrieving revision 1.81 retrieving revision 1.82 diff -Llib/WeBWorK/Utils.pm -Llib/WeBWorK/Utils.pm -u -r1.81 -r1.82 --- lib/WeBWorK/Utils.pm +++ lib/WeBWorK/Utils.pm @@ -740,6 +740,7 @@ ## Utility function to trim whitespace off the start and end of its input sub trim_spaces { my $in = shift; + return '' unless $in; # skip blank spaces $in =~ s/^\s*(.*?)\s*$/$1/; return($in); } Index: Constants.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/Constants.pm,v retrieving revision 1.57 retrieving revision 1.58 diff -Llib/WeBWorK/Constants.pm -Llib/WeBWorK/Constants.pm -u -r1.57 -r1.58 --- lib/WeBWorK/Constants.pm +++ lib/WeBWorK/Constants.pm @@ -144,7 +144,7 @@ type => 'number'}, { var => 'siteDefaults{timezone}', doc => 'Timezone for the course', - doc2 => 'Some servers handle courses taking place in different timezones. If this course is not showing the correct timezone, enter the correct value here. The format consists of unix times, such as "America/Chicago", "America/Phoenix", "America/Los_Angeles", "America/New_York", or "America/Denver".', + doc2 => 'Some servers handle courses taking place in different timezones. If this course is not showing the correct timezone, enter the correct value here. The format consists of unix times, such as "America/New_York","America/Chicago", "America/Denver", "America/Phoenix" or "America/Los_Angeles". Complete list: <a href="http://cpan.uwinnipeg.ca/dist/DateTime-TimeZone">TimeZoneFiles</a>', type => 'text'},], ['Permissions', { var => 'permissionLevels{login}', Index: PG.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/PG.pm,v retrieving revision 1.74 retrieving revision 1.75 diff -Llib/WeBWorK/PG.pm -Llib/WeBWorK/PG.pm -u -r1.74 -r1.75 --- lib/WeBWorK/PG.pm +++ lib/WeBWorK/PG.pm @@ -151,6 +151,8 @@ $envir{macrosPath} = $ce->{pg}->{directories}{macrosPath}; $envir{appletPath} = $ce->{pg}->{directories}{appletPath}; $envir{pgDirectories} = $ce->{pg}->{directories}; + $envir{webworkHtmlDirectory} = $ce->{webworkDirs}->{htdocs}."/"; + $envir{webworkHtmlURL} = $ce->{webworkURLs}->{htdocs}."/"; $envir{htmlDirectory} = $ce->{courseDirs}->{html}."/"; $envir{htmlURL} = $ce->{courseURLs}->{html}."/"; $envir{templateDirectory} = $ce->{courseDirs}->{templates}."/"; Index: course_info.txt =================================================================== RCS file: /webwork/cvs/system/webwork2/courses.dist/modelCourse/templates/course_info.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -Lcourses.dist/modelCourse/templates/course_info.txt -Lcourses.dist/modelCourse/templates/course_info.txt -u -r1.1 -r1.2 --- courses.dist/modelCourse/templates/course_info.txt +++ courses.dist/modelCourse/templates/course_info.txt @@ -1 +1,3 @@ +this information is written in the file: +[coursesDirectory]/courseName/templates/course_info.txt Index: ProblemSet.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/ProblemSet.pm,v retrieving revision 1.90 retrieving revision 1.91 diff -Llib/WeBWorK/ContentGenerator/ProblemSet.pm -Llib/WeBWorK/ContentGenerator/ProblemSet.pm -u -r1.90 -r1.91 --- lib/WeBWorK/ContentGenerator/ProblemSet.pm +++ lib/WeBWorK/ContentGenerator/ProblemSet.pm @@ -385,7 +385,7 @@ my $interactive = CGI::a({-href=>$interactiveURL}, "Problem $problemID"); my $attempts = $problem->num_correct + $problem->num_incorrect; - my $remaining = $problem->max_attempts < 0 + my $remaining = (($problem->max_attempts||-1) < 0) #a blank yields 'infinite' because it evaluates as false with out giving warnings about comparing non-numbers ? "unlimited" : $problem->max_attempts - $attempts; my $rawStatus = $problem->status || 0; Index: PGProblemEditor.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm,v retrieving revision 1.92 retrieving revision 1.93 diff -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -u -r1.92 -r1.93 --- lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm +++ lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm @@ -578,7 +578,14 @@ CGI::a({-href=>'http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/PGmacrosByFile',-target=>"manpage_window"}, ' macro list ', )," | ", - CGI::a({-href=>'http://devel.webwork.rochester.edu/doc/cvs/pg_HEAD/',-target=>"manpage_window"}, + CGI::a({-href=>'http://webwork.maa.org/wiki/Category:Authors',-target=>"wiki_window"}, + ' authoring info & help ', + )," | ", + CGI::a({-href=>'http://hosted2.webwork.rochester.edu/webwork2/wikiExamples/MathObjectsLabs2/2/?login_practice_user=true',-target=>"lab_window", + }, + ' testing lab ' + )," | ", + CGI::a({-href=>'http://devel.webwork.rochester.edu/doc/cvs/pg_HEAD/',-target=>"doc_window"}, ' pod docs ', )," | ", CGI::a({-href=>$BUGZILLA,-target=>"bugs_window"}, Index: SetMaker.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm,v retrieving revision 1.85 retrieving revision 1.86 diff -Llib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm -Llib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm -u -r1.85 -r1.86 --- lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm +++ lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm @@ -733,7 +733,7 @@ my $library_selected = $self->{current_library_set}; my $set_selected = $r->param('local_sets'); my (@dis1, @dis2, @dis3, @dis4) = (); - @dis1 = (-disabled=>1) if($browse_which eq 'browse_library'); + @dis1 = (-disabled=>1) if($browse_which eq 'browse_npl_library'); @dis2 = (-disabled=>1) if($browse_which eq 'browse_local'); @dis3 = (-disabled=>1) if($browse_which eq 'browse_mysets'); @dis4 = (-disabled=>1) if($browse_which eq 'browse_setdefs'); @@ -786,7 +786,7 @@ print CGI::Tr(CGI::td({-class=>"InfoPanel", -align=>"center"}, "Browse ", - CGI::submit(-name=>"browse_library", -value=>"National Problem Library", -style=>$these_widths, @dis1), + CGI::submit(-name=>"browse_npl_library", -value=>"National Problem Library", -style=>$these_widths, @dis1), CGI::submit(-name=>"browse_local", -value=>"Local Problems", -style=>$these_widths, @dis2), CGI::submit(-name=>"browse_mysets", -value=>"From This Course", -style=>$these_widths, @dis3), CGI::submit(-name=>"browse_setdefs", -value=>"Set Definition Files", -style=>$these_widths, @dis4), @@ -800,7 +800,7 @@ $self->browse_local_panel($library_selected); } elsif ($browse_which eq 'browse_mysets') { $self->browse_mysets_panel($library_selected, $list_of_local_sets); - } elsif ($browse_which eq 'browse_library') { + } elsif ($browse_which eq 'browse_npl_library') { $self->browse_library_panel(); } elsif ($browse_which eq 'browse_setdefs') { $self->browse_setdef_panel($library_selected); @@ -862,7 +862,7 @@ $problem_output .= $pg->{flags}->{comment} if($pg->{flags}->{comment}); - #if($self->{r}->param('browse_which') ne 'browse_library') { + #if($self->{r}->param('browse_which') ne 'browse_npl_library') { my $problem_seed = $self->{'problem_seed'} || 1234; my $edit_link = CGI::a({href=>$self->systemLink( $urlpath->newFromModule("WeBWorK::ContentGenerator::Instructor::PGProblemEditor", @@ -997,7 +997,7 @@ ############# Default of which problem selector to display - my $browse_which = $r->param('browse_which') || 'browse_library'; + my $browse_which = $r->param('browse_which') || 'browse_npl_library'; @@ -1012,7 +1012,7 @@ ########### Start the logic through if elsif elsif ... debug("browse_lib", $r->param("$browse_lib")); - debug("browse_library", $r->param("browse_library")); + debug("browse_npl_library", $r->param("browse_npl_library")); debug("browse_mysets", $r->param("browse_mysets")); debug("browse_setdefs", $r->param("browse_setdefs")); ##### Asked to browse certain problems @@ -1020,8 +1020,8 @@ $browse_which = $browse_lib; $self->{current_library_set} = ""; $use_previous_problems = 0; @pg_files = (); ## clear old problems - } elsif ($r->param('browse_library')) { - $browse_which = 'browse_library'; + } elsif ($r->param('browse_npl_library')) { + $browse_which = 'browse_npl_library'; $self->{current_library_set} = ""; $use_previous_problems = 0; @pg_files = (); ## clear old problems } elsif ($r->param('browse_local')) { Index: Std.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/DB/Schema/NewSQL/Std.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -Llib/WeBWorK/DB/Schema/NewSQL/Std.pm -Llib/WeBWorK/DB/Schema/NewSQL/Std.pm -u -r1.17 -r1.18 --- lib/WeBWorK/DB/Schema/NewSQL/Std.pm +++ lib/WeBWorK/DB/Schema/NewSQL/Std.pm @@ -228,7 +228,8 @@ my $exit = $? >> 8; my $signal = $? & 127; my $core = $? & 128; - warn "Failed to dump table '".$self->sql_table_name."' with command '$dump_cmd' (exit=$exit signal=$signal core=$core): $dump_out\n"; + warn "Warning: Failed to dump table '".$self->sql_table_name."' with command '$dump_cmd' (exit=$exit signal=$signal core=$core): $dump_out\n"; + warn "This can be expected if the course was created with an earlier version of WeBWorK."; } return 1; @@ -249,7 +250,7 @@ my $exit = $? >> 8; my $signal = $? & 127; my $core = $? & 128; - die "Failed to restore table '".$self->sql_table_name."' with command '$restore_cmd' (exit=$exit signal=$signal core=$core): $restore_out\n"; + warn "Failed to restore table '".$self->sql_table_name."' with command '$restore_cmd' (exit=$exit signal=$signal core=$core): $restore_out\n"; } return 1; Index: webwork.apache2-config.dist =================================================================== RCS file: /webwork/cvs/system/webwork2/conf/webwork.apache2-config.dist,v retrieving revision 1.12 retrieving revision 1.13 diff -Lconf/webwork.apache2-config.dist -Lconf/webwork.apache2-config.dist -u -r1.12 -r1.13 --- conf/webwork.apache2-config.dist +++ conf/webwork.apache2-config.dist @@ -27,6 +27,18 @@ # FollowSymlinksOption from working when specified # in a <Perl> section. See below for workaround. + +# Uncomment the ScriptAliasMatch to allow access to show-source.cgi +# This allows the "show source" button to work for demonstration "courses" +# See for example Davide Cervone's Knoxville lectures on math objects +# It requires that a show-source.cgi script be customized and placed in +# the myCourse/html directory of the course +# The "show source" button is most useful for webwork "courses" used to train new authors +# It is not desirable to expose the code of regular homework questions to students + +# ScriptAliasMatch /webwork2_course_files/([^/]*)/show-source.cgi/(.*) /opt/webwork/courses/$1/html/show-source.cgi/$2 + + PerlModule mod_perl2 <Perl> Index: global.conf.dist =================================================================== RCS file: /webwork/cvs/system/webwork2/conf/global.conf.dist,v retrieving revision 1.211 retrieving revision 1.212 diff -Lconf/global.conf.dist -Lconf/global.conf.dist -u -r1.211 -r1.212 --- conf/global.conf.dist +++ conf/global.conf.dist @@ -448,6 +448,11 @@ # these variables are used by database.conf. we define them here so that editing # database.conf isn't necessary. + +# required permissions +# GRANT SELECT ON webwork.* TO webworkRead@localhost IDENTIFIED BY 'passwordRO'; +# GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, LOCK TABLES ON webwork.* TO webworkWrite@localhost IDENTIFIED BY 'passwordRW'; + $database_dsn = "dbi:mysql:webwork"; $database_username = "webworkWrite"; $database_password = ""; @@ -477,9 +482,8 @@ ################################################################################ # For configuration instructions, see: -# http://devel.webwork.rochester.edu/twiki/bin/view/Webwork/DatabaseProblemLibrary - -# The directory containing the problem library files. Set to "" if no problem +# http://webwork.maa.org/wiki/National_Problem_Library +# The directory containing the natinal problem library files. Set to "" if no problem # library is installed. $problemLibrary{root} = ""; @@ -836,6 +840,10 @@ ".", # search the problem file's directory $courseDirs{macros}, $pg{directories}{macros}, + "$courseDirs{templates}/Library/macros/Dartmouth", + "$courseDirs{templates}/Library/macros/Union", + "$courseDirs{templates}/Library/macros/NAU", + "$courseDirs{templates}/Library/macros/Michigan", ]; # The applet search path. If a full URL is given, it is used unmodified. If an @@ -845,6 +853,7 @@ # and the local server is "https://math.yourschool.edu", # then the URL "https://math.yourschool.edu/math/applets" will be used. # + $pg{directories}{appletPath} = [ # paths to search for applets (requires full url) "$webworkURLs{htdocs}/applets", "$courseURLs{html}/applets", @@ -921,8 +930,9 @@ [qw(Parser Value)], [qw(Parser::Legacy)], # [qw(SaveFile)], -# [qw(Chromatic)], - [qw(Applet FlashApplet)], +# [qw(Chromatic)], # for Northern Arizona graph problems +# # -- follow instructions at libraries/nau_problib/lib/README to install + [qw(Applet FlashApplet JavaApplet)], ]; ##### Answer evaluatior defaults Index: system.template =================================================================== RCS file: /webwork/cvs/system/webwork2/conf/templates/math/system.template,v retrieving revision 1.10 retrieving revision 1.11 diff -Lconf/templates/math/system.template -Lconf/templates/math/system.template -u -r1.10 -r1.11 --- conf/templates/math/system.template +++ conf/templates/math/system.template @@ -19,7 +19,9 @@ # Artistic License for more details. ################################################################################ --> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + + +<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="<!--#url type="webwork" name="htdocs"-->/css/math.css"/> |
From: Mike G. v. a. <we...@ma...> - 2008-10-09 02:34:02
|
Log Message: ----------- backward port from HEAD Tags: ---- rel-2-4-patches Modified Files: -------------- webwork2/lib/WeBWorK: Authz.pm webwork2/lib/WeBWorK/ContentGenerator/Instructor: PGProblemEditor.pm Revision Data ------------- Index: Authz.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/Authz.pm,v retrieving revision 1.32.2.4 retrieving revision 1.32.2.4.2.1 diff -Llib/WeBWorK/Authz.pm -Llib/WeBWorK/Authz.pm -u -r1.32.2.4 -r1.32.2.4.2.1 --- lib/WeBWorK/Authz.pm +++ lib/WeBWorK/Authz.pm @@ -259,6 +259,11 @@ $set->version_id eq $verNum ) { # then we can just use this set and skip the rest + } elsif ( $setName eq 'Undefined_Set' and + $self->hasPermissions($userName, "access_instructor_tools") ) { + # this is the case of previewing a problem + # from a 'try it' link + return 0; } else { if ($db->existsSetVersion($effectiveUserName,$setName,$verNum)) { $set = $db->getMergedSetVersion($effectiveUserName,$setName,$verNum); Index: PGProblemEditor.pm =================================================================== RCS file: /webwork/cvs/system/webwork2/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm,v retrieving revision 1.90.4.1.2.3 retrieving revision 1.90.4.1.2.4 diff -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -Llib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm -u -r1.90.4.1.2.3 -r1.90.4.1.2.4 --- lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm +++ lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm @@ -1740,6 +1740,7 @@ my $viewURL = $self->systemLink($problemPage, params=>{ sourceFilePath => $relativeOutputFilePath, #The path relative to the templates directory is required. + problemSeed => $problemSeed, edit_level => $edit_level, file_type => $new_file_type, status_message => uri_escape($self->{status_message}) |
From: Mike G. v. a. <we...@ma...> - 2008-10-09 02:32:35
|
Log Message: ----------- Backward port of minor corrections from HEAD Tags: ---- rel-2-4-patches Modified Files: -------------- pg/macros: contextCurrency.pl parserAutoStrings.pl parserMultiPart.pl Revision Data ------------- Index: parserAutoStrings.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserAutoStrings.pl,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.1.2.1 diff -Lmacros/parserAutoStrings.pl -Lmacros/parserAutoStrings.pl -u -r1.4.2.1 -r1.4.2.1.2.1 --- macros/parserAutoStrings.pl +++ macros/parserAutoStrings.pl @@ -16,7 +16,7 @@ =head1 NAME -parserAutoStrings.pl - Force String() to accpet any string. +parserAutoStrings.pl - Force String() to accept any string. =head1 DESCRIPTION @@ -24,15 +24,16 @@ legal value. (It will add the string to the context if it isn't already defined.) -To acocmplish this, put the lines +To accomplish this, put the lines loadMacros("parserAutoStrings.pl"); AutoStrings(); -(You can also pass AutoStrings a context pointer if you wish to -alter context other than the current one.) +at the beginning of your problem file. (You can also pass AutoStrings +a context pointer if you wish to alter context other than the current +one.) -There is also a routine to help making strings easier to predefine. +There is also a routine to help make strings easier to predefine. For example: loadMacros("parserAutoStrings.pl"); Index: parserMultiPart.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserMultiPart.pl,v retrieving revision 1.7.2.2 retrieving revision 1.7.2.2.2.1 diff -Lmacros/parserMultiPart.pl -Lmacros/parserMultiPart.pl -u -r1.7.2.2 -r1.7.2.2.2.1 --- macros/parserMultiPart.pl +++ macros/parserMultiPart.pl @@ -30,7 +30,7 @@ loadMacros("parserMultiAnswer.pl"); sub MultiPart { - warn "The MultiPart object has been depricated.${BR}You should use MultiAnswer object instead"; + warn "The MultiPart object has been deprecated.${BR}You should use MultiAnswer object instead"; MultiAnswer->new(@_); } Index: contextCurrency.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/contextCurrency.pl,v retrieving revision 1.15.2.1 retrieving revision 1.15.2.1.2.1 diff -Lmacros/contextCurrency.pl -Lmacros/contextCurrency.pl -u -r1.15.2.1 -r1.15.2.1.2.1 --- macros/contextCurrency.pl +++ macros/contextCurrency.pl @@ -125,7 +125,7 @@ ANS(Compute('$10.95')->cmp(forceDecimals=>1)); By default, if the monitary value includes decimals digits, it -must have exactly two. You can weaken this requirement to all +must have exactly two. You can weaken this requirement to allow any number of decimals by using noExtraDecimals=>0. ANS(Compute('$10.23372')->cmp(noExtraDecimals=>0); @@ -142,7 +142,7 @@ It can also be set on an individual currency value: - $m = Compute("$50")->with(trimtrailingZeros=>1); + $m = Compute('$50')->with(trimtrailingZeros=>1); so that this $m will print as $50 rather than $50.00. |
From: dpvc v. a. <we...@ma...> - 2008-10-07 23:21:58
|
Log Message: ----------- BACKPORT: Use a compiled vesion of the MathObjects formula rather than the less-efficient eval method. This should bring graphing speeds back in line with the original non-MathObject version. Tags: ---- rel-2-4-patches Modified Files: -------------- pg/macros: PGgraphmacros.pl Revision Data ------------- Index: PGgraphmacros.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/PGgraphmacros.pl,v retrieving revision 1.6.6.1.2.2 retrieving revision 1.6.6.1.2.3 diff -Lmacros/PGgraphmacros.pl -Lmacros/PGgraphmacros.pl -u -r1.6.6.1.2.2 -r1.6.6.1.2.3 --- macros/PGgraphmacros.pl +++ macros/PGgraphmacros.pl @@ -322,14 +322,14 @@ # a workaround to call Parser code without loading MathObjects. my $localContext= Parser::Context->current(\%main::context)->copy; $localContext->variables->add($var=>'Real') unless $localContext->variables->get($var); - my $formula = Value->Package("Formula()")->new($localContext,$rule); + my $formula = Value->Package("Formula()")->new($localContext,$rule)->perlFunction(undef,[$var]); my $subRef = sub { my $x = shift; - my $y = Parser::Evaluate($formula, $var=>$x); + my $y = Parser::Eval($formula,$x); # traps errors, e.g. graph domain is larger than + # the function's domain. $y = $y->value if defined $y; - return $y + return $y; }; - # traps errors when graph domain is larger than the function's domain. #my $subRef = string_to_sub($rule,$var); my $funRef = new Fun($subRef,$graph); $funRef->color($color); @@ -489,14 +489,6 @@ $out; } - - - - - - - - ######################################################### 1; |
From: dpvc v. a. <we...@ma...> - 2008-10-07 23:20:13
|
Log Message: ----------- Use a compiled vesion of the MathObjects formula rather than the less-efficient eval method. This should bring graphing speeds back in line with the original non-MathObject version. Modified Files: -------------- pg/macros: PGgraphmacros.pl Revision Data ------------- Index: PGgraphmacros.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/PGgraphmacros.pl,v retrieving revision 1.11 retrieving revision 1.12 diff -Lmacros/PGgraphmacros.pl -Lmacros/PGgraphmacros.pl -u -r1.11 -r1.12 --- macros/PGgraphmacros.pl +++ macros/PGgraphmacros.pl @@ -322,14 +322,14 @@ # a workaround to call Parser code without loading MathObjects. my $localContext= Parser::Context->current(\%main::context)->copy; $localContext->variables->add($var=>'Real') unless $localContext->variables->get($var); - my $formula = Value->Package("Formula()")->new($localContext,$rule); + my $formula = Value->Package("Formula()")->new($localContext,$rule)->perlFunction(undef,[$var]); my $subRef = sub { my $x = shift; - my $y = Parser::Evaluate($formula, $var=>$x); + my $y = Parser::Eval($formula,$x); # traps errors, e.g. graph domain is larger than + # the function's domain. $y = $y->value if defined $y; - return $y + return $y; }; - # traps errors when graph domain is larger than the function's domain. #my $subRef = string_to_sub($rule,$var); my $funRef = new Fun($subRef,$graph); $funRef->color($color); @@ -489,14 +489,6 @@ $out; } - - - - - - - - ######################################################### 1; |
From: dpvc v. a. <we...@ma...> - 2008-10-07 23:18:05
|
Log Message: ----------- Added a routine to trap errors in a function call. I've needed this for a long time, and got tired of working around the lack by hacks involving PG_restricted_eval, which can't handle local variables from the calling function. This addition is still safe because it is passed code (not a string) and the code is already compiled in the safe compartment, so it can't include the disallowed commands. Now I need to go back to remove the hacks from the various pg/macros files where they currently exist. Tags: ---- rel-2-4-patches Modified Files: -------------- pg/lib/Value: WeBWorK.pm Revision Data ------------- Index: WeBWorK.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/WeBWorK.pm,v retrieving revision 1.11.6.1 retrieving revision 1.11.6.1.2.1 diff -Llib/Value/WeBWorK.pm -Llib/Value/WeBWorK.pm -u -r1.11.6.1 -r1.11.6.1.2.1 --- lib/Value/WeBWorK.pm +++ lib/Value/WeBWorK.pm @@ -32,10 +32,24 @@ } # +# Call a subtroutine with error trapping. +# (We need to be able to do this from custom +# answer checkers and other MathObject code. +# PG_restricted_eval is not sufficient for this +# since that uses a string and so can't access +# local variables from the calling routine.) +# +sub Eval { + my $f = shift; + return unless defined($f); + eval {&$f(@_)}; +} + +# # Remove backtrace and line number, since these # will be reported in the student message area. # -sub Parser::reportEvalError { +sub reportEvalError { my $error = shift; my $fullerror = $error; $error =~ s/ at \S+\.\S+ line \d+(\n|.)*//; $error =~ s/ at line \d+ of (\n|.)*//; |
From: dpvc v. a. <we...@ma...> - 2008-10-07 23:16:32
|
Log Message: ----------- Added a routine to trap errors in a function call. I've needed this for a long time, and got tired of working around the lack by hacks involving PG_restricted_eval, which can't handle local variables from the calling function. This addition is still safe because it is passed code (not a string) and the code is already compiled in the safe compartment, so it can't include the disallowed commands. Now I need to go back to remove the hacks from the various pg/macros files where they currently exist. Modified Files: -------------- pg/lib/Value: WeBWorK.pm Revision Data ------------- Index: WeBWorK.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Value/WeBWorK.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -Llib/Value/WeBWorK.pm -Llib/Value/WeBWorK.pm -u -r1.14 -r1.15 --- lib/Value/WeBWorK.pm +++ lib/Value/WeBWorK.pm @@ -32,10 +32,24 @@ } # +# Call a subtroutine with error trapping. +# (We need to be able to do this from custom +# answer checkers and other MathObject code. +# PG_restricted_eval is not sufficient for this +# since that uses a string and so can't access +# local variables from the calling routine.) +# +sub Eval { + my $f = shift; + return unless defined($f); + eval {&$f(@_)}; +} + +# # Remove backtrace and line number, since these # will be reported in the student message area. # -sub Parser::reportEvalError { +sub reportEvalError { my $error = shift; my $fullerror = $error; $error =~ s/ at \S+\.\S+ line \d+(\n|.)*//; $error =~ s/ at line \d+ of (\n|.)*//; |
From: Mike G. v. a. <we...@ma...> - 2008-10-03 13:26:43
|
Log Message: ----------- corrected error in localib that left out the wwassignmentid when creating an event Modified Files: -------------- wwmoodle/wwassignment4/moodle/mod/wwassignment: locallib.php version.php Revision Data ------------- Index: version.php =================================================================== RCS file: /webwork/cvs/system/wwmoodle/wwassignment4/moodle/mod/wwassignment/version.php,v retrieving revision 1.2 retrieving revision 1.3 diff -Lwwassignment4/moodle/mod/wwassignment/version.php -Lwwassignment4/moodle/mod/wwassignment/version.php -u -r1.2 -r1.3 --- wwassignment4/moodle/mod/wwassignment/version.php +++ wwassignment4/moodle/mod/wwassignment/version.php @@ -8,5 +8,4 @@ $module->version = 2008092818; // The current module version (Date: YYYYMMDDXX) $module->requires = 2007101509; // Requires this Moodle version $module->cron = 300; // Period for cron to check this module (secs) -- every 5 minutes - ?> \ No newline at end of file Index: locallib.php =================================================================== RCS file: /webwork/cvs/system/wwmoodle/wwassignment4/moodle/mod/wwassignment/locallib.php,v retrieving revision 1.8 retrieving revision 1.9 diff -Lwwassignment4/moodle/mod/wwassignment/locallib.php -Lwwassignment4/moodle/mod/wwassignment/locallib.php -u -r1.8 -r1.9 --- wwassignment4/moodle/mod/wwassignment/locallib.php +++ wwassignment4/moodle/mod/wwassignment/locallib.php @@ -90,6 +90,7 @@ $event->userid = 0; $event->format = 1; $event->modulename = 'wwassignment'; + $event->instance = $wwassignmentid; $event->visible = 1; $event->name .= ' is Due.'; $event->eventtype = 'due'; @@ -98,7 +99,7 @@ // error_log("adding a due event"); $result = 0; - if(!add_event($dueevent)) { + if(!add_event($event)) { $result = -1; } return $result; |
From: dpvc v. a. <we...@ma...> - 2008-10-03 12:42:26
|
Log Message: ----------- Allow the perlFunction method to produce functions that return formulas when not all the variables are used as arguments. For example: Formula("x+y")->perlFunction('f',['x']); $f = f(2); would produce the equivalent of $f = Formula("2+y"); Using the substitute method is more efficient, but this now does the right thing rather than generate error messages. Modified Files: -------------- pg/lib: Parser.pm Revision Data ------------- Index: Parser.pm =================================================================== RCS file: /webwork/cvs/system/pg/lib/Parser.pm,v retrieving revision 1.50 retrieving revision 1.51 diff -Llib/Parser.pm -Llib/Parser.pm -u -r1.50 -r1.51 --- lib/Parser.pm +++ lib/Parser.pm @@ -706,11 +706,15 @@ sub perlFunction { my $self = shift; my $name = shift || ''; my $vars = shift; $vars = [sort(keys %{$self->{variables}})] unless $vars; - my $n = scalar(@{$vars}); my $vnames = ''; + $vars = [$vars] unless ref($vars) eq 'ARRAY'; + my $n = scalar(@{$vars}); my $vnames = ''; my %isArg; if ($n > 0) { - my @v = (); foreach my $x (@{$vars}) {CORE::push(@v,"\$".$x)} + my @v = (); + foreach my $x (@{$vars}) {CORE::push(@v,"\$".$x); $isArg{$x} = 1} $vnames = "my (".join(',',@v).") = \@_;"; } + foreach my $x (keys %{$self->{variables}}) + {$vnames .= "\n my \$$x = main::Formula('$x');" unless $isArg{$x}} my $context = $self->context; my $fn = eval "package main; |
From: Mike G. v. a. <we...@ma...> - 2008-10-03 03:28:12
|
Log Message: ----------- corrected code updating events Modified Files: -------------- wwmoodle/wwassignment4/moodle/mod/wwassignment: locallib.php Revision Data ------------- Index: locallib.php =================================================================== RCS file: /webwork/cvs/system/wwmoodle/wwassignment4/moodle/mod/wwassignment/locallib.php,v retrieving revision 1.7 retrieving revision 1.8 diff -Lwwassignment4/moodle/mod/wwassignment/locallib.php -Lwwassignment4/moodle/mod/wwassignment/locallib.php -u -r1.7 -r1.8 --- wwassignment4/moodle/mod/wwassignment/locallib.php +++ wwassignment4/moodle/mod/wwassignment/locallib.php @@ -42,18 +42,24 @@ function _wwassignment_get_course_students($courseid) { debugLog("Begin get_course_students($courseid )"); + debugLog("courseID is ". print_r($courseid, true)); $context = get_context_instance(CONTEXT_COURSE, $courseid); - //debugLog("context is ". print_r($context, true)); + debugLog("context is ". print_r($context, true)); $users = array(); $roles_used_in_context = get_roles_used_in_context($context); + //debugLog("roles used ". print_r($roles_used_in_context, true)); foreach($roles_used_in_context as $role) { $roleid = $role->id; - //debugLog( "roleid should be 5 for a student $roleid"); - $users = array_merge($users, get_role_users($roleid, $context, true) );//FIXME a user could be liseted twice + debugLog( "roleid should be 5 for a student $roleid"); + //debugLog(get_role_users($roleid, $context, true) ); + if ($new_users = get_role_users($roleid, $context, true) ) { + $users = array_merge($users, $new_users );//FIXME a user could be liseted twice + } + debugLog("display users ".print_r($users,true)); } - debugLog("display users in course--off"); - //debugLog(print_r($users, true)); + debugLog("display users in course--on"); + debugLog("users again".print_r($users, true)); debugLog("End get_course_students($courseid )"); return $users; @@ -74,6 +80,7 @@ * @return integer 0 on success. -1 on error. */ function _wwassignment_create_events($wwsetname,$wwassignmentid,$opendate,$duedate) { + error_log("enter create_events"); global $COURSE; unset($event); $event->name = $wwsetname; @@ -83,12 +90,12 @@ $event->userid = 0; $event->format = 1; $event->modulename = 'wwassignment'; - $event->instance = $wwassignmentid; $event->visible = 1; - $dueevent->name .= ' is Due.'; - $dueevent->eventtype = 'due'; - $dueevent->timestart = $duedate; - $dueevent->timeduration = 1; + $event->name .= ' is Due.'; + $event->eventtype = 'due'; + $event->timestart = $duedate; + $event->timeduration = 1; + // error_log("adding a due event"); $result = 0; if(!add_event($dueevent)) { |
From: dpvc v. a. <we...@ma...> - 2008-10-02 10:59:25
|
Log Message: ----------- BACKPORT: Avoid side-effect of loading String context that sets the string context to being the current context. (This fixes bug 1520) Tags: ---- rel-2-4-patches Modified Files: -------------- pg/macros: parserPopUp.pl Revision Data ------------- Index: parserPopUp.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserPopUp.pl,v retrieving revision 1.1.6.2.2.1 retrieving revision 1.1.6.2.2.2 diff -Lmacros/parserPopUp.pl -Lmacros/parserPopUp.pl -u -r1.1.6.2.2.1 -r1.1.6.2.2.2 --- macros/parserPopUp.pl +++ macros/parserPopUp.pl @@ -49,7 +49,7 @@ =cut -loadMacros('MathObjects.pl','contextString.pl'); +loadMacros('MathObjects.pl'); sub _parserPopUp_init {parserPopUp::Init()}; # don't reload this file @@ -62,7 +62,14 @@ # # Setup the main:: namespace # -sub Init {main::PG_restricted_eval('sub PopUp {parserPopUp->new(@_)}')} +sub Init { + ### Hack to get around context change in contextString.pl + ### FIXME: when context definitions don't set context, put loadMacros with MathObject.pl above again + my $context = main::Context(); + main::loadMacros('contextString.pl'); + main::Context($context); + main::PG_restricted_eval('sub PopUp {parserPopUp->new(@_)}'); +} # # Create a new PopUp object |
From: dpvc v. a. <we...@ma...> - 2008-10-02 10:55:57
|
Log Message: ----------- avoid side-effect of loading String context that sets the string context to being the current context. (This fixes bug 1520) Modified Files: -------------- pg/macros: parserPopUp.pl Revision Data ------------- Index: parserPopUp.pl =================================================================== RCS file: /webwork/cvs/system/pg/macros/parserPopUp.pl,v retrieving revision 1.7 retrieving revision 1.8 diff -Lmacros/parserPopUp.pl -Lmacros/parserPopUp.pl -u -r1.7 -r1.8 --- macros/parserPopUp.pl +++ macros/parserPopUp.pl @@ -49,7 +49,7 @@ =cut -loadMacros('MathObjects.pl','contextString.pl'); +loadMacros('MathObjects.pl'); sub _parserPopUp_init {parserPopUp::Init()}; # don't reload this file @@ -62,7 +62,14 @@ # # Setup the main:: namespace # -sub Init {main::PG_restricted_eval('sub PopUp {parserPopUp->new(@_)}')} +sub Init { + ### Hack to get around context change in contextString.pl + ### FIXME: when context definitions don't set context, put loadMacros with MathObject.pl above again + my $context = main::Context(); + main::loadMacros('contextString.pl'); + main::Context($context); + main::PG_restricted_eval('sub PopUp {parserPopUp->new(@_)}'); +} # # Create a new PopUp object |