Code

Updated smarty to 3.0.5
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 29 Nov 2010 14:41:14 +0000 (14:41 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 29 Nov 2010 14:41:14 +0000 (14:41 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@20409 594d385d-05f5-0310-b6e9-bd551577e9d8

22 files changed:
gosa-core/include/smarty/Smarty.class.php
gosa-core/include/smarty/debug.tpl
gosa-core/include/smarty/plugins/function.fetch.php
gosa-core/include/smarty/plugins/function.html_image.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_call.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_capture.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_foreach.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_object_block_function.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_print_expression.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php
gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_special_variable.php
gosa-core/include/smarty/sysplugins/smarty_internal_data.php
gosa-core/include/smarty/sysplugins/smarty_internal_filter_handler.php
gosa-core/include/smarty/sysplugins/smarty_internal_function_call_handler.php
gosa-core/include/smarty/sysplugins/smarty_internal_template.php
gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php
gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php
gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php
gosa-core/include/smarty/sysplugins/smarty_internal_wrapper.php

index 213d01b0593d3b844cb4b28f076533190ae48b7b..77d527cfc2c244b248acf7e9895d1fb7e1f977de 100644 (file)
@@ -3,7 +3,7 @@
 /**
  * Project:     Smarty: the PHP compiling template engine
  * File:        Smarty.class.php
- * SVN:         $Id: Smarty.class.php 3788 2010-11-13 18:32:50Z uwe.tews@googlemail.com $
+ * SVN:         $Id: Smarty.class.php 3794 2010-11-15 22:54:59Z uwe.tews@googlemail.com $
  * 
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -28,7 +28,7 @@
  * @author Monte Ohrt <monte at ohrt dot com> 
  * @author Uwe Tews 
  * @package Smarty
- * @version 3.0.4
+ * @version 3.0.5
  */
 
 /**
@@ -87,7 +87,7 @@ class Smarty extends Smarty_Internal_Data {
        * constant definitions
        */
     // smarty version
-    const SMARTY_VERSION = 'Smarty-3.0.4'; 
+    const SMARTY_VERSION = 'Smarty-3.0.5'; 
        //define variable scopes
        const SCOPE_LOCAL = 0;
        const SCOPE_PARENT = 1;
@@ -223,7 +223,7 @@ class Smarty extends Smarty_Internal_Data {
     // default modifier
     public $default_modifiers = array(); 
     // global internal smarty  vars
-    public $_smarty_vars = array(); 
+    static $_smarty_vars = array(); 
     // start time for execution time calculation
     public $start_time = 0; 
     // default file permissions
@@ -305,7 +305,7 @@ class Smarty extends Smarty_Internal_Data {
      */
     public function fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false)
     {
-        if (is_object($cache_id)) {
+        if (!empty($cache_id) && is_object($cache_id)) {
             $parent = $cache_id;
             $cache_id = null;
         } 
@@ -330,7 +330,7 @@ class Smarty extends Smarty_Internal_Data {
         } 
         // return redered template
         if (isset($this->autoload_filters['output']) || isset($this->registered_filters['output'])) {
-            $_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $this, $_template);
+            $_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $_template);
         } else {
             $_output = $_template->getRenderedTemplate();
         } 
@@ -422,11 +422,11 @@ class Smarty extends Smarty_Internal_Data {
      */
     public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
     {
-        if (is_object($cache_id) || is_array($cache_id)) {
+        if (!empty($cache_id) && (is_object($cache_id) || is_array($cache_id))) {
             $parent = $cache_id;
             $cache_id = null;
         } 
-        if (is_array($parent)) {
+        if (!empty($parent) && is_array($parent)) {
             $data = $parent;
             $parent = null;
         } else {
@@ -448,7 +448,7 @@ class Smarty extends Smarty_Internal_Data {
             $tpl = $template;
         } 
         // fill data if present
-        if (is_array($data)) {
+        if (!empty($data) && is_array($data)) {
             // set up variable values
             foreach ($data as $_key => $_val) {
                 $tpl->tpl_vars[$_key] = new Smarty_variable($_val);
index 9fd46b15354dd7e8ff322fde55774469118318bd..2a456ca9463606cdb38cdcfedcb1aeb12b3ce61c 100644 (file)
@@ -1,4 +1,4 @@
-{capture assign=debug_output}
+{capture name='_smarty_debug' assign=debug_output}
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
index 21ea69ba6d65a2928e710c8539d053d8bf7d0e12..2b09fb94752ee108378e123182e7129f0842257d 100644 (file)
@@ -52,7 +52,7 @@ function smarty_function_fetch($params, $template)
                 $host = $server_name = $uri_parts['host'];
                 $timeout = 30;
                 $accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*";
-                $agent = "Smarty Template Engine ".$smarty->_version;
+                $agent = "Smarty Template Engine ".$template->_version;
                 $referer = "";
                 $uri = !empty($uri_parts['path']) ? $uri_parts['path'] : '/';
                 $uri .= !empty($uri_parts['query']) ? '?' . $uri_parts['query'] : '';
index 57c266586dfa72cf113c224d3af8c4cefc4dfd9e..abb7b578981d45311ee186c82da633dd79861fd9 100644 (file)
@@ -45,7 +45,7 @@ function smarty_function_html_image($params, $template)
     $prefix = '';
     $suffix = '';
     $path_prefix = '';
-    $server_vars = ($template->request_use_auto_globals) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS'];
+    $server_vars = $_SERVER;
     $basedir = isset($server_vars['DOCUMENT_ROOT']) ? $server_vars['DOCUMENT_ROOT'] : '';
     foreach($params as $_key => $_val) {
         switch ($_key) {
index 2cc03ee72fab6df37cd3de877ad6e1b4f0b56075..7f622165a69bbf4bd003385a0e9c0f48d2d28ec9 100644 (file)
@@ -49,8 +49,9 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
          $_rdl = preg_quote($template->smarty->right_delimiter);
         $_ldl = preg_quote($template->smarty->left_delimiter);
 
-        if (0 == preg_match("!({$_ldl}block\s+)(name=)?(\w+|'\w+'|\"\w+\")(\s*?)?((append|prepend|nocache)(=true)?)?(\s*{$_rdl})!", $block_tag, $_match)) {
-            $template->compiler_object->trigger_template_error('Illegal {block} tag syntax');
+        if (0 == preg_match("!({$_ldl}block\s+)(name=)?(\w+|'.*'|\".*\")(\s*?)?((append|prepend|nocache)(=true)?)?(\s*{$_rdl})!", $block_tag, $_match)) {
+            $error_text = 'Syntax Error in template "' . $template->getTemplateFilepath() . '"   "' . htmlspecialchars($block_tag) . '" illegal options';
+            throw new SmartyCompilerException($error_text);
         } else {
             $_name = trim($_match[3], '\'"'); 
             // replace {$smarty.block.child}
@@ -101,7 +102,11 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
             }
         }
                if ($_name == null) {
-                       $compiler->trigger_template_error('{$smarty.block.child} used out of context');
+                       $compiler->trigger_template_error('{$smarty.block.child} used out of context', $this->compiler->lex->taglineno);
+               }
+               // undefined child?
+               if (!isset($compiler->template->block_data[$_name])) {
+                       return '';
                }
                    $_tpl = new Smarty_Internal_template ('eval:' . $compiler->template->block_data[$_name]['source'], $compiler->smarty, $compiler->template, $compiler->template->cache_id, 
                               $compiler->template->compile_id = null, $compiler->template->caching, $compiler->template->cache_lifetime);
index 8d63b7c7358f3ebac810283f6bdb0bf167e5025e..50ba6328d3209906ced4a6ae272ac0f26c4b3d7c 100644 (file)
@@ -38,7 +38,7 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
             // output will be stored in a smarty variable instead of beind displayed
             $_assign = $_attr['assign'];
         } 
-        $_name = trim($_attr['name'], "'\"");
+        $_name = $_attr['name'];
         unset($_attr['name'], $_attr['assign'], $_attr['nocache']); 
         // set flag (compiled code of {function} must be included in cache file
         if ($compiler->nocache || $compiler->tag_nocache) {
@@ -54,7 +54,6 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
                 $_paramsArray[] = "'$_key'=>$_value";
             } 
         }
-       if (false) {
         if (isset($compiler->template->properties['function'][$_name]['parameter'])) {
             foreach ($compiler->template->properties['function'][$_name]['parameter'] as $_key => $_value) {
                 if (!isset($_attr[$_key])) {
@@ -76,21 +75,30 @@ class Smarty_Internal_Compile_Call extends Smarty_Internal_CompileBase {
                 } 
             } 
         }
-       }
+        //varibale name?
+        if (!(strpos($_name,'$')===false)) {
+               $call_cache = $_name;
+               $call_function = '$tmp = "smarty_template_function_".'.$_name.'; $tmp';
+               } else {
+               $_name = trim($_name, "'\"");
+                       $call_cache = "'{$_name}'";
+               $call_function = 'smarty_template_function_'.$_name;
+        }
+       
         $_params = 'array(' . implode(",", $_paramsArray) . ')';
-    $_hash = str_replace('-','_',$compiler->template->properties['nocache_hash']);
+       $_hash = str_replace('-','_',$compiler->template->properties['nocache_hash']);
         // was there an assign attribute
         if (isset($_assign)) {
             if ($compiler->template->caching) {
-                $_output = "<?php ob_start(); Smarty_Internal_Function_Call_Handler::call ('{$_name}',\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
+                $_output = "<?php ob_start(); Smarty_Internal_Function_Call_Handler::call ({$call_cache},\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
             } else {
-                $_output = "<?php ob_start(); smarty_template_function_{$_name}(\$_smarty_tpl,{$_params}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
+                $_output = "<?php ob_start(); {$call_function}(\$_smarty_tpl,{$_params}); \$_smarty_tpl->assign({$_assign}, ob_get_clean());?>\n";
             } 
         } else {
             if ($compiler->template->caching) {
-                $_output = "<?php Smarty_Internal_Function_Call_Handler::call ('{$_name}',\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache});?>\n";
+                $_output = "<?php Smarty_Internal_Function_Call_Handler::call ({$call_cache},\$_smarty_tpl,{$_params},'{$_hash}',{$_nocache});?>\n";
             } else {
-                $_output = "<?php smarty_template_function_{$_name}(\$_smarty_tpl,{$_params});?>\n";
+                $_output = "<?php {$call_function}(\$_smarty_tpl,{$_params});?>\n";
             } 
         } 
         return $_output;
index 2583aadc08fe6f1e1347128000d812a0b3f86649..74ade6804288aebfcfe1ed4e64b4eb0f5359577e 100644 (file)
@@ -73,7 +73,7 @@ class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase {
         if (isset($append)) {
             $_output .= " \$_smarty_tpl->append($append, ob_get_contents());";
         } 
-        $_output .= " \$_smarty_tpl->smarty->_smarty_vars['capture'][$buffer]=ob_get_clean();?>";
+        $_output .= " Smarty::\$_smarty_vars['capture'][$buffer]=ob_get_clean();?>";
         return $_output;
     } 
 } 
index 9564c6a25bcacec884ea758ace210074390bf917..6ad1e07ef3d64a32f7f285219f717380e99b6353 100644 (file)
@@ -37,7 +37,7 @@ class Smarty_Internal_Compile_Foreach extends Smarty_Internal_CompileBase {
         $item = $_attr['item'];
 
         if (substr_compare("\$_smarty_tpl->getVariable($item)", $from,0, strlen("\$_smarty_tpl->getVariable($item)")) == 0) {
-            $this->compiler->trigger_template_error("item parameter {$item} may not be the same parameter at 'from'");
+            $this->compiler->trigger_template_error("item variable {$item} may not be the same variable as at 'from'", $this->compiler->lex->taglineno);
         } 
 
         if (isset($_attr['key'])) {
index 3b7ebca283b4ddaad2bcbf80d6563fc4fa5f3733..54429ebd89f20ee80952096df9f92d4e6e2c9393 100644 (file)
@@ -35,7 +35,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
         if ($_attr['nocache'] === true) {
                $this->compiler->trigger_template_error('nocache option not allowed', $this->compiler->lex->taglineno);
         }
-
+               unset($_attr['nocache']);
         $save = array($_attr, $compiler->parser->current_buffer,
             $compiler->template->has_nocache_code, $compiler->template->required_plugins);
         $this->_open_tag('function', $save);
@@ -52,7 +52,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase {
             $output = "<?php if (!function_exists('smarty_template_function_{$_name}')) {
     function smarty_template_function_{$_name}(\$_smarty_tpl,\$params) {
     \$saved_tpl_vars = \$_smarty_tpl->tpl_vars;
-    foreach (\$_smarty_tpl->smarty->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(trim(\$value,'\''));};
+    foreach (\$_smarty_tpl->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(trim(\$value,'\''));};
     foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";
         } 
         // Init temporay context
index 7cfdc51c8bef71dc82f24c1440f21ae543f596d2..f61ff49094467e897f2bfeb0e685edaa7f3ef5de 100644 (file)
@@ -1,4 +1,4 @@
- <?php
+<?php
 /**
  * Smarty Internal Plugin Compile Block Plugin
  * 
@@ -63,7 +63,13 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
             // This tag does create output
             $this->compiler->has_output = true; 
             // compile code
-            $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+            if (!isset($parameter['modifier_list'])) {
+               $mod_pre = $mod_post ='';
+            } else {
+               $mod_pre = ' ob_start(); ';
+               $mod_post = 'echo '.$this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';';
+            }
+            $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post." } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
         } 
         return $output . "\n";
     } 
index f3ae966f6703c4581e0a75425452774b6b051a6b..97737e8d24a39c3aee8935a88b63e8d3bff84d97 100644 (file)
@@ -65,7 +65,13 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
             // This tag does create output
             $this->compiler->has_output = true; 
             // compile code
-            $output = "<?php \$_block_content = ob_get_contents(); ob_end_clean(); \$_block_repeat=false; echo \$_smarty_tpl->smarty->registered_objects['{$base_tag}'][0]->{$methode}({$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
+            if (!isset($parameter['modifier_list'])) {
+               $mod_pre = $mod_post ='';
+            } else {
+               $mod_pre = ' ob_start(); ';
+               $mod_post = 'echo '.$this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';';
+            }
+            $output = "<?php \$_block_content = ob_get_contents(); ob_end_clean(); \$_block_repeat=false;".$mod_pre." echo \$_smarty_tpl->smarty->registered_objects['{$base_tag}'][0]->{$methode}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post."  } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
         } 
         return $output."\n";
     } 
index 3843428f4c435cfccbfc43de15f23e3cc8ddc606..5a9c9319199c391e903d21ba515850f2c9f6c95f 100644 (file)
@@ -48,7 +48,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C
         } else {
             // display value
             if (!$_attr['nofilter'] && isset($this->compiler->smarty->registered_filters['variable'])) {
-                $output = "Smarty_Internal_Filter_Handler::runFilter('variable', {$parameter['value']},\$_smarty_tpl->smarty, \$_smarty_tpl, {$_filter})";
+                $output = "Smarty_Internal_Filter_Handler::runFilter('variable', {$parameter['value']}, \$_smarty_tpl, {$_filter})";
             } else {
                 $output = $parameter['value'];
             } 
index 8f55a97c55f8f4787842fae0268580d087dc4033..37e1de73dfe75bf0e8261ee546d2640cec17f60b 100644 (file)
@@ -71,12 +71,18 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C
             $this->compiler->has_output = true;\r
             $function = $compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag][0]; \r
             // compile code\r
+            if (!isset($parameter['modifier_list'])) {\r
+               $mod_pre = $mod_post ='';\r
+            } else {\r
+               $mod_pre = ' ob_start(); ';\r
+               $mod_post = 'echo '.$this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$parameter['modifier_list'],'value'=>'ob_get_clean()')).';';\r
+            }\r
             if (!is_array($function)) {\r
-                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
+                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat);".$mod_post." } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
             } else if (is_object($function[0])) {\r
-                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo \$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0][0]->{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
+                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo \$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0][0]->{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post."} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
             } else {\r
-                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo {$function[0]}::{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
+                $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false;".$mod_pre." echo {$function[0]}::{$function[1]}({$_params}, \$_block_content, \$_smarty_tpl, \$_block_repeat); ".$mod_post."} array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
             } \r
         } \r
         return $output."\n";\r
index 76527f4eeb72b59c50abb5542acbb30263f643f5..22fd95171cbe9ff8a15a1864cd50ace0ffb6041c 100644 (file)
@@ -31,7 +31,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
             case 'section':
                 return "\$_smarty_tpl->getVariable('smarty')->value$parameter";
             case 'capture':
-                return "\$_smarty_tpl->smarty->_smarty_vars$parameter";
+                return "Smarty::\$_smarty_vars$parameter";
             case 'now':
                 return 'time()';
             case 'cookies':
@@ -104,7 +104,7 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C
                 $compiled_ref = $compiled_ref . "[$_ind]";
             } 
         } 
-        return "(isset($compiled_ref)? $compiled_ref : null)";
+        return $compiled_ref;
     } 
 } 
 
index 5b8d48abc48e8b0c0ffddd5c2115ef2a0d92de7a..9246f7f644442c55459db438cb2fc82048b51665 100644 (file)
@@ -259,14 +259,14 @@ class Smarty_Internal_Data {
      * @param boolean $search_parents search also in parent data
      * @return object the object of the variable
      */
-    public function getVariable($variable, $_ptr = null, $search_parents = true, $error_enable = true)
+    public function getVariable($_variable, $_ptr = null, $search_parents = true, $error_enable = true)
     {
         if ($_ptr === null) {
             $_ptr = $this;
         } while ($_ptr !== null) {
-            if (isset($_ptr->tpl_vars[$variable])) {
+            if (isset($_ptr->tpl_vars[$_variable])) {
                 // found it, return it
-                return $_ptr->tpl_vars[$variable];
+                return $_ptr->tpl_vars[$_variable];
             } 
             // not found, try at parent
             if ($search_parents) {
@@ -275,13 +275,17 @@ class Smarty_Internal_Data {
                 $_ptr = null;
             } 
         } 
-        if (isset(Smarty::$global_tpl_vars[$variable])) {
+        if (isset(Smarty::$global_tpl_vars[$_variable])) {
             // found it, return it
-            return Smarty::$global_tpl_vars[$variable];
+            return Smarty::$global_tpl_vars[$_variable];
         } 
         if ($this->smarty->error_unassigned && $error_enable) {
-            throw new SmartyException('Undefined Smarty variable "' . $variable . '"');
+            throw new SmartyException('Undefined Smarty variable "' . $_variable . '"');
         } else {
+               if ($error_enable) {
+                               // force a notice
+                               $x = $$_variable;
+               }
             return new Undefined_Smarty_Variable;
         } 
     } 
@@ -291,23 +295,26 @@ class Smarty_Internal_Data {
      * @param string $variable the name of the config variable
      * @return mixed the value of the config variable
      */
-    public function getConfigVariable($variable)
+    public function getConfigVariable($_variable)
     {
         $_ptr = $this;
         while ($_ptr !== null) {
-            if (isset($_ptr->config_vars[$variable])) {
+            if (isset($_ptr->config_vars[$_variable])) {
                 // found it, return it
-                return $_ptr->config_vars[$variable];
+                return $_ptr->config_vars[$_variable];
             } 
             // not found, try at parent
             $_ptr = $_ptr->parent;
         } 
         if ($this->smarty->error_unassigned) {
-            throw new SmartyException('Undefined config variable "' . $variable . '"');
+            throw new SmartyException('Undefined config variable "' . $_variable . '"');
         } else {
+                       // force a notice
+                       $x = $$_variable;
             return null;
         } 
     } 
+
     /**
      * gets  a stream variable
      * 
@@ -338,16 +345,30 @@ class Smarty_Internal_Data {
      * @param string $varname variable name or null
      * @return string variable value or or array of variables
      */
-    function getConfigVars($varname = null)
+    function getConfigVars($varname = null, $search_parents = true)
     {
-        if (isset($varname)) {
-            if (isset($this->config_vars[$varname])) {
-                return $this->config_vars[$varname];
+ //    var_dump($this);
+        $_ptr = $this;
+        $var_array = array();
+        while ($_ptr !== null) {
+               if (isset($varname)) {
+               if (isset($_ptr->config_vars[$varname])) {
+                       return $_ptr->config_vars[$varname];
+                }
             } else {
-                return '';
+               $var_array = array_merge($_ptr->config_vars, $var_array);
+               } 
+             // not found, try at parent
+            if ($search_parents) {
+                $_ptr = $_ptr->parent;
+            } else {
+                $_ptr = null;
             } 
+       } 
+        if (isset($varname)) {
+               return '';
         } else {
-            return $this->config_vars;
+            return $var_array;
         } 
     } 
 
index 1992b55e9ea96b82c68c787a4bd56f656586c31e..fbd88460226c5ab7bef4afa6a628ba00728c19b6 100644 (file)
@@ -26,21 +26,21 @@ class Smarty_Internal_Filter_Handler {
      * @param string $content the content which shall be processed by the filters
      * @return string the filtered content
      */
-    static function runFilter($type, $content, $smarty, $template, $flag = null)
+    static function runFilter($type, $content, $template, $flag = null)
     {
         $output = $content;
-        if ($type != 'variable' || ($smarty->variable_filter && $flag !== false) || $flag === true) {
+        if ($type != 'variable' || ($template->smarty->variable_filter && $flag !== false) || $flag === true) {
             // loop over autoload filters of specified type
-            if (!empty($smarty->autoload_filters[$type])) {
-                foreach ((array)$smarty->autoload_filters[$type] as $name) {
+            if (!empty($template->smarty->autoload_filters[$type])) {
+                foreach ((array)$template->smarty->autoload_filters[$type] as $name) {
                     $plugin_name = "Smarty_{$type}filter_{$name}";
-                    if ($smarty->loadPlugin($plugin_name)) {
+                    if ($template->smarty->loadPlugin($plugin_name)) {
                         if (function_exists($plugin_name)) {
                             // use loaded Smarty2 style plugin
-                            $output = $plugin_name($output, $smarty);
+                            $output = $plugin_name($output, $template);
                         } elseif (class_exists($plugin_name, false)) {
                             // loaded class of filter plugin
-                            $output = call_user_func(array($plugin_name, 'execute'), $output, $smarty, $template);
+                            $output = call_user_func(array($plugin_name, 'execute'), $output, $template);
                         } 
                     } else {
                         // nothing found, throw exception
@@ -49,12 +49,12 @@ class Smarty_Internal_Filter_Handler {
                 } 
             } 
             // loop over registerd filters of specified type
-            if (!empty($smarty->registered_filters[$type])) {
-                foreach ($smarty->registered_filters[$type] as $key => $name) {
-                    if (is_array($smarty->registered_filters[$type][$key])) {
-                        $output = call_user_func($smarty->registered_filters[$type][$key], $output, $smarty, $template);
+            if (!empty($template->smarty->registered_filters[$type])) {
+                foreach ($template->smarty->registered_filters[$type] as $key => $name) {
+                    if (is_array($template->smarty->registered_filters[$type][$key])) {
+                        $output = call_user_func($template->smarty->registered_filters[$type][$key], $output, $template);
                     } else {
-                        $output = $smarty->registered_filters[$type][$key]($output, $smarty, $template);
+                        $output = $template->smarty->registered_filters[$type][$key]($output, $template);
                     } 
                 } 
             } 
index 543c77b4725085b564bca4b9f37343656a34f800..44039169204c7679d4ab0bc8e2d0a9a1feaf4e36 100644 (file)
@@ -22,6 +22,7 @@ class Smarty_Internal_Function_Call_Handler extends Smarty_Internal_Template {
         if (!is_callable($_function)) {\r
             $_code = "function {$_function}(\$_smarty_tpl,\$params) {\r
     \$saved_tpl_vars = \$_smarty_tpl->tpl_vars;\r
+    foreach (\$_smarty_tpl->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(trim(\$value,'\''));};\r
     foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>";\r
             if ($_nocache) {\r
                 $_code .= preg_replace(array("!<\?php echo \\'/\*%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/|/\*/%%SmartyNocache:{$_template->smarty->template_functions[$_name]['nocache_hash']}%%\*/\\';\?>!",\r
index 6b81ed0ce9c0ac62589196bf53ade216bc1ff9e9..94f2deb9dcb5683d1ae509175d024d54ad003188 100644 (file)
@@ -69,6 +69,7 @@ class Smarty_Internal_Template extends Smarty_Internal_Data {
     public $smarty = null;
     // blocks for template inheritance
     public $block_data = array();
+    public $wrapper = null;
     /**
      * Create template data object
      * 
@@ -964,6 +965,13 @@ class Smarty_Internal_Template extends Smarty_Internal_Data {
                        return $this->$property_name = $args[0];
                }
         }
+        // Smarty Backward Compatible wrapper
+               if (strpos($name,'_') !== false) {
+               if (!isset($this->wrapper)) {
+                $this->wrapper = new Smarty_Internal_Wrapper($this);
+               } 
+               return $this->wrapper->convert($name, $args);
+        }
         // pass call to Smarty object  
         return call_user_func_array(array($this->smarty,$name),$args);
     } 
index cca157845deb49f2b2ca3f7c84cd3414bae578e5..ffa7955e81956231c3f59580f08249f9c4c11d3f 100644 (file)
@@ -67,7 +67,7 @@ class Smarty_Internal_TemplateCompilerBase {
             $_content = $template->getTemplateSource(); \r
             // run prefilter if required\r
             if (isset($this->smarty->autoload_filters['pre']) || isset($this->smarty->registered_filters['pre'])) {\r
-                $_content = Smarty_Internal_Filter_Handler::runFilter('pre', $_content, $this->smarty, $template);\r
+                $_content = Smarty_Internal_Filter_Handler::runFilter('pre', $_content, $template);\r
             } \r
             // on empty template just return header\r
             if ($_content == '') {\r
@@ -89,7 +89,7 @@ class Smarty_Internal_TemplateCompilerBase {
         } \r
         // run postfilter if required\r
         if (isset($this->smarty->autoload_filters['post']) || isset($this->smarty->registered_filters['post'])) {\r
-            $template->compiled_template = Smarty_Internal_Filter_Handler::runFilter('post', $template->compiled_template, $this->smarty, $template);\r
+            $template->compiled_template = Smarty_Internal_Filter_Handler::runFilter('post', $template->compiled_template, $template);\r
         } \r
     } \r
 \r
index 6744e7f67a2eda085558264c5ed09c6b8feafc36..2210aba045000027d8292c66b5cb97b7b171a4db 100644 (file)
@@ -1175,5 +1175,6 @@ class Smarty_Internal_Templatelexer
 
   $this->token = Smarty_Internal_Templateparser::TP_OTHER;
     }
+
 }
 ?>
\ No newline at end of file
index c06df6d1f3fdf42e8a5601bf37f57da9be2fc132..ab94f95e1b768e90f57e52728fbf037af76e5568 100644 (file)
@@ -215,547 +215,545 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php
     const TP_QUOTE                          = 75;
     const TP_BACKTICK                       = 76;
     const TP_DOLLARID                       = 77;
-    const YY_NO_ACTION = 573;
-    const YY_ACCEPT_ACTION = 572;
-    const YY_ERROR_ACTION = 571;
+    const YY_NO_ACTION = 572;
+    const YY_ACCEPT_ACTION = 571;
+    const YY_ERROR_ACTION = 570;
 
-    const YY_SZ_ACTTAB = 2401;
+    const YY_SZ_ACTTAB = 2394;
 static public $yy_action = array(
- /*     0 */   191,  304,  303,  306,  305,  307,  302,  301,  297,  296,
- /*    10 */   298,  299,  300,  168,  334,  325,   37,  341,  152,    3,
- /*    20 */    38,   38,  215,  281,  201,  218,  360,  128,  277,  133,
- /*    30 */    33,  243,  270,  209,   50,   44,   49,   43,   13,    9,
- /*    40 */   354,  361,   19,   35,  362,  370,   30,   20,  320,  315,
- /*    50 */   311,  310,  316,  103,  265,  279,  168,  309,  319,  356,
- /*    60 */   191,   38,  371,  372,  373,  369,  368,  364,  363,  365,
- /*    70 */   366,  367,  349,  268,  191,  269,  331,  170,   25,  219,
- /*    80 */   202,   38,  213,   52,  252,  116,  115,  176,  440,  324,
- /*    90 */    17,   14,  284,  348,  440,   38,  359,  352,    3,  330,
- /*   100 */   226,  572,   91,  239,  303,  306,  128,  169,   50,   44,
- /*   110 */    49,   43,   13,    9,  354,  361,   19,   35,  362,  370,
- /*   120 */    30,   20,    3,  272,    7,  146,  437,  204,  102,   38,
- /*   130 */   128,   10,  437,  112,  322,  277,  371,  372,  373,  369,
- /*   140 */   368,  364,  363,  365,  366,  367,  349,  268,  191,  357,
- /*   150 */   331,  179,  238,  142,  202,  275,  213,   61,   18,  116,
- /*   160 */     3,  274,   41,  295,   24,  135,  284,  348,  128,   38,
- /*   170 */   359,  352,   18,  330,   18,  274,   41,  274,  233,  192,
- /*   180 */   232,   38,   50,   44,   49,   43,   13,    9,  354,  361,
- /*   190 */    19,   35,  362,  370,   30,   20,   18,  283,   18,  274,
- /*   200 */    15,  274,  228,  119,  185,   18,  236,  155,  274,    8,
- /*   210 */   371,  372,  373,  369,  368,  364,  363,  365,  366,  367,
- /*   220 */   349,  268,  191,  167,  331,  281,  148,  173,  202,  101,
- /*   230 */   213,   61,   21,  116,  120,  158,  277,   12,   11,  135,
- /*   240 */   284,  348,  228,   38,  359,  352,  159,  330,   39,  230,
- /*   250 */   179,   40,  179,   27,  200,  260,   50,   44,   49,   43,
- /*   260 */    13,    9,  354,  361,   19,   35,  362,  370,   30,   20,
- /*   270 */     3,  144,   48,  442,  100,  185,  339,  312,  128,  442,
- /*   280 */     8,  277,  191,   38,  371,  372,  373,  369,  368,  364,
- /*   290 */   363,  365,  366,  367,  349,  268,  191,  179,  331,  259,
- /*   300 */    94,  147,  202,   38,  213,   61,   48,  116,  229,   18,
- /*   310 */    48,  277,  274,  321,  284,  348,   38,   38,  359,  352,
- /*   320 */   313,  330,  275,  439,  206,   23,   38,  285,  257,  439,
- /*   330 */    50,   44,   49,   43,   13,    9,  354,  361,   19,   35,
- /*   340 */   362,  370,   30,   20,  287,  436,  286,  141,  175,  335,
- /*   350 */   267,   38,  114,  231,  281,    2,   48,  277,  371,  372,
- /*   360 */   373,  369,  368,  364,  363,  365,  366,  367,  349,  268,
- /*   370 */   191,  331,  164,  177,  150,  202,  174,  213,   61,  162,
- /*   380 */   116,  191,  277,   18,  277,  180,  274,  284,  348,  277,
- /*   390 */    38,  359,  352,  275,  330,   96,  436,  271,  210,   38,
- /*   400 */   275,  223,   38,   38,   50,   44,   49,   43,   13,    9,
- /*   410 */   354,  361,   19,   35,  362,  370,   30,   20,  345,  278,
- /*   420 */   151,  327,  220,   18,   38,   38,  274,   38,  166,  335,
- /*   430 */   277,  126,  371,  372,  373,  369,  368,  364,  363,  365,
- /*   440 */   366,  367,  349,  268,  191,  331,  177,  222,  143,  202,
- /*   450 */   131,  197,   68,  121,  116,  224,  203,  276,  277,  178,
- /*   460 */   135,  284,  348,   38,  330,  359,  352,  346,  330,  275,
- /*   470 */   227,  347,   18,   38,  318,  208,  317,   38,   50,   44,
- /*   480 */    49,   43,   13,    9,  354,  361,   19,   35,  362,  370,
- /*   490 */    30,   20,  191,  153,  149,  294,  329,   18,  119,  240,
- /*   500 */   225,   38,   38,  277,  277,   38,  371,  372,  373,  369,
- /*   510 */   368,  364,  363,  365,  366,  367,  349,  268,  326,  177,
- /*   520 */   177,  156,   18,  275,   38,  207,   50,   44,   49,   43,
- /*   530 */    13,    9,  354,  361,   19,   35,  362,  370,   30,   20,
- /*   540 */    99,  280,  247,  248,  336,  266,  323,   38,    6,   38,
- /*   550 */    38,   38,  117,  321,  371,  372,  373,  369,  368,  364,
- /*   560 */   363,  365,  366,  367,  349,  268,  191,  331,  172,  335,
- /*   570 */   353,  202,  256,  213,   74,  160,  116,  130,   38,   48,
- /*   580 */   333,  254,   28,  284,  348,  277,   38,  359,  352,  258,
- /*   590 */   330,  328,  255,  281,    4,   38,   18,   38,   38,  196,
- /*   600 */    50,   44,   49,   43,   13,    9,  354,  361,   19,   35,
- /*   610 */   362,  370,   30,   20,  191,  288,   89,    2,  127,  234,
- /*   620 */    48,  293,  130,  264,  289,  341,  204,   93,  371,  372,
- /*   630 */   373,  369,  368,  364,  363,  365,  366,  367,  349,  268,
- /*   640 */   321,  253,  229,  118,   34,  134,   90,    5,   50,   44,
- /*   650 */    49,   43,   13,    9,  354,  361,   19,   35,  362,  370,
- /*   660 */    30,   20,  338,  157,  165,  161,  314,  286,  135,   16,
- /*   670 */   275,  332,   42,  123,  277,  277,  371,  372,  373,  369,
- /*   680 */   368,  364,  363,  365,  366,  367,  349,  268,  191,  331,
- /*   690 */   263,  122,   95,  202,  108,  213,   72,  214,  116,  242,
- /*   700 */   136,  108,  245,  106,  321,  284,  348,  321,  132,  359,
- /*   710 */   352,  171,  330,  321,  321,  273,  321,  177,  191,  104,
- /*   720 */   275,   29,   50,   44,   49,   43,   13,    9,  354,  361,
- /*   730 */    19,   35,  362,  370,   30,   20,  105,  308,  318,  318,
- /*   740 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  321,
- /*   750 */   371,  372,  373,  369,  368,  364,  363,  365,  366,  367,
- /*   760 */   349,  268,  191,  331,  318,  318,  318,  202,  318,  213,
- /*   770 */    55,  318,  116,  318,  137,   97,  318,  261,  318,  284,
- /*   780 */   348,  318,  318,  359,  352,  318,  330,  321,  321,  318,
- /*   790 */   318,  318,  318,  318,  318,  318,   50,   44,   49,   43,
- /*   800 */    13,    9,  354,  361,   19,   35,  362,  370,   30,   20,
- /*   810 */   191,   31,  318,  318,  318,  318,  318,  318,  318,  318,
- /*   820 */   318,  318,  318,  318,  371,  372,  373,  369,  368,  364,
- /*   830 */   363,  365,  366,  367,  349,  268,  318,  318,  318,  318,
- /*   840 */   318,  318,  318,  318,   50,   44,   49,   43,   13,    9,
- /*   850 */   354,  361,   19,   35,  362,  370,   30,   20,  191,  318,
- /*   860 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*   870 */   318,  318,  371,  372,  373,  369,  368,  364,  363,  365,
- /*   880 */   366,  367,  349,  268,  318,  318,  318,  318,  318,  318,
- /*   890 */   318,  318,   50,   44,   49,   43,   13,    9,  354,  361,
- /*   900 */    19,   35,  362,  370,   30,   20,  191,  318,  221,  318,
- /*   910 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*   920 */   371,  372,  373,  369,  368,  364,  363,  365,  366,  367,
- /*   930 */   349,  268,  318,  318,  217,  318,  318,  318,  318,  318,
- /*   940 */    50,   44,   49,   43,   13,    9,  354,  361,   19,   35,
- /*   950 */   362,  370,   30,   20,  191,  318,  318,  318,  318,  318,
- /*   960 */   318,  318,  318,  318,  318,  318,  318,  318,  371,  372,
- /*   970 */   373,  369,  368,  364,  363,  365,  366,  367,  349,  268,
- /*   980 */   318,  318,  318,  318,  318,  318,  318,  318,   50,   44,
- /*   990 */    49,   43,   13,    9,  354,  361,   19,   35,  362,  370,
- /*  1000 */    30,   20,  191,  318,  318,  318,  318,  318,  318,  318,
- /*  1010 */   318,  318,  318,  318,  318,  246,  371,  372,  373,  369,
- /*  1020 */   368,  364,  363,  365,  366,  367,  349,  268,  318,  318,
- /*  1030 */   318,  318,  318,  318,  318,  318,   50,   44,   49,   43,
- /*  1040 */    13,    9,  354,  361,   19,   35,  362,  370,   30,   20,
- /*  1050 */   191,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*  1060 */   318,  318,  318,  318,  371,  372,  373,  369,  368,  364,
- /*  1070 */   363,  365,  366,  367,  349,  268,  318,  337,  318,  318,
- /*  1080 */   318,  318,  318,  318,   50,   44,   49,   43,   13,    9,
- /*  1090 */   354,  361,   19,   35,  362,  370,   30,   20,  318,  318,
- /*  1100 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*  1110 */   318,  318,  371,  372,  373,  369,  368,  364,  363,  365,
- /*  1120 */   366,  367,  349,  268,   50,   44,   49,   43,   13,    9,
- /*  1130 */   354,  361,   19,   35,  362,  370,   30,   20,  318,  318,
- /*  1140 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*  1150 */   318,  318,  371,  372,  373,  369,  368,  364,  363,  365,
- /*  1160 */   366,  367,  349,  268,  318,  318,  318,  318,   37,  318,
- /*  1170 */   129,  186,  318,  331,  215,  318,  201,  351,  318,  213,
- /*  1180 */   318,  133,  116,  318,  270,  209,  216,  318,  318,   45,
- /*  1190 */   355,  442,  318,  359,  352,  318,  330,  442,  318,  318,
- /*  1200 */   318,  318,  318,   32,  212,  318,   46,   47,  292,  205,
- /*  1210 */   350,  318,  318,   96,    1,  241,  318,  318,  318,   37,
- /*  1220 */   318,  129,  193,  318,   48,  215,  318,  201,   92,  318,
- /*  1230 */   318,  318,  133,  318,  318,  270,  209,  216,  318,  318,
- /*  1240 */    45,  318,  318,  318,  318,  318,  331,  318,  318,  318,
- /*  1250 */   195,  318,  213,   73,   32,  116,  318,   46,   47,  292,
- /*  1260 */   205,  350,  284,  348,   96,    1,  359,  352,  318,  330,
- /*  1270 */    37,  318,  114,  193,  318,  318,  215,  318,  201,   92,
- /*  1280 */   194,  235,  318,  133,  318,  318,  270,  209,  216,  318,
- /*  1290 */   318,   45,  318,  318,  318,  318,  318,  331,  318,  318,
- /*  1300 */   318,  195,  318,  213,   73,   36,  116,  318,   46,   47,
- /*  1310 */   292,  205,  350,  284,  348,   96,    1,  359,  352,  318,
- /*  1320 */   330,   37,  318,  129,  189,  318,  318,  215,  318,  201,
- /*  1330 */    92,  318,  244,  318,  133,  318,  318,  270,  209,  216,
- /*  1340 */   318,  318,   45,  318,  318,  318,  318,  318,  331,  318,
- /*  1350 */   318,  318,  202,  318,  213,   66,   32,  116,  318,   46,
- /*  1360 */    47,  292,  205,  350,  284,  348,   96,    1,  359,  352,
- /*  1370 */   318,  330,   37,  318,  129,  181,  318,  318,  215,  318,
- /*  1380 */   201,   92,  318,  318,  318,  133,  318,  318,  270,  209,
- /*  1390 */   216,  318,  318,   45,  318,  318,  318,  318,  318,  331,
- /*  1400 */   318,  318,  318,  202,  318,  213,   77,   32,  116,  318,
- /*  1410 */    46,   47,  292,  205,  350,  284,  348,   96,    1,  359,
- /*  1420 */   352,  318,  330,   37,  318,  129,  182,  318,  318,  215,
- /*  1430 */   318,  201,   92,  318,  318,  318,  133,  318,  318,  270,
- /*  1440 */   209,  198,  318,  318,   45,  318,  318,  318,  318,  318,
- /*  1450 */   331,  318,  318,  318,  187,  318,  213,   83,   32,  116,
- /*  1460 */   318,   46,   47,  292,  205,  350,  284,  348,   96,    1,
- /*  1470 */   359,  352,  318,  330,   37,  318,  113,  193,  318,  318,
- /*  1480 */   215,  318,  201,   92,  318,  318,  318,  133,  318,  318,
- /*  1490 */   270,  209,  216,  318,  318,   45,  318,  318,  318,  318,
- /*  1500 */   318,  331,  318,  318,  318,  202,  318,  213,   71,   32,
- /*  1510 */   116,  318,   46,   47,  292,  205,  350,  284,  348,   96,
- /*  1520 */     1,  359,  352,  318,  330,   37,  318,  124,   88,  318,
- /*  1530 */   318,  215,  318,  201,   92,  318,  318,  318,  133,  318,
- /*  1540 */   318,  270,  209,  216,  318,  318,   45,  318,  318,  318,
- /*  1550 */   318,  318,  331,  318,  318,  318,  202,  318,  213,   81,
- /*  1560 */    32,  116,  318,   46,   47,  292,  205,  350,  284,  348,
- /*  1570 */    96,    1,  359,  352,  318,  330,   37,  318,  129,  183,
- /*  1580 */   318,  318,  215,  318,  201,   92,  318,  318,  318,  133,
- /*  1590 */   318,  318,  270,  209,  216,  318,  318,   45,  318,  318,
- /*  1600 */   318,  318,  318,  331,  318,  318,  318,  202,  318,  213,
- /*  1610 */    58,   32,  116,  318,   46,   47,  292,  205,  350,  284,
- /*  1620 */   348,   96,    1,  359,  352,  318,  330,   37,  318,  125,
- /*  1630 */   193,  318,  318,  215,  318,  201,   92,  318,  318,  318,
- /*  1640 */   133,  318,  318,  270,  209,  216,  318,  318,   45,  318,
- /*  1650 */   318,  318,  318,  318,  331,  318,  318,  318,  190,  318,
- /*  1660 */   213,   53,   32,  116,  318,   46,   47,  292,  205,  350,
- /*  1670 */   284,  348,   96,    1,  359,  352,  318,  330,   37,  318,
- /*  1680 */   114,  193,  318,  318,  215,  318,  201,   92,  318,  318,
- /*  1690 */   318,  133,  318,  318,  270,  209,  216,  318,  318,   45,
- /*  1700 */   318,  318,  318,  318,  318,  331,  318,  318,  318,  111,
- /*  1710 */   318,  107,   54,   36,  109,  318,   46,   47,  292,  205,
- /*  1720 */   350,  284,  348,   96,  318,  359,  352,  318,  330,   37,
- /*  1730 */   318,  114,  199,  318,  318,  215,  318,  201,   92,  318,
- /*  1740 */   318,  318,  133,  318,  318,  270,  209,  216,  483,  318,
- /*  1750 */    45,  318,  318,  318,  483,  318,  483,  318,  483,  483,
- /*  1760 */   318,  483,  139,  318,   36,  173,  483,   46,   47,  292,
- /*  1770 */   205,  350,  277,  318,   96,   12,   11,  318,  318,  318,
- /*  1780 */   318,  483,    3,  483,  318,  318,  318,  318,  179,   92,
- /*  1790 */   128,  318,  318,  163,  483,  331,   98,  318,  318,  202,
- /*  1800 */   318,  213,   84,  277,  116,  318,   12,   11,  483,  318,
- /*  1810 */   318,  284,  348,  318,  318,  359,  352,  318,  330,  179,
- /*  1820 */   331,  318,  318,  318,  202,  318,  213,   85,  318,  116,
- /*  1830 */   318,  318,  318,  318,  318,  318,  284,  348,  318,  318,
- /*  1840 */   359,  352,  331,  330,  318,  318,  184,  318,  213,   63,
- /*  1850 */   318,  116,  318,  318,  318,  318,  318,  318,  284,  348,
- /*  1860 */   318,  318,  359,  352,  331,  330,  318,  318,  202,  318,
- /*  1870 */   213,   75,  318,  116,  318,  318,  318,  318,  318,  318,
- /*  1880 */   284,  348,  331,  318,  359,  352,  202,  330,  213,   62,
- /*  1890 */   318,  116,  318,  318,  318,  318,  318,  318,  284,  348,
- /*  1900 */   318,  318,  359,  352,  318,  330,  318,  331,  318,  318,
- /*  1910 */   318,  202,  318,  213,   76,  318,  116,  318,  318,  318,
- /*  1920 */   318,  318,  318,  284,  348,  318,  318,  359,  352,  318,
- /*  1930 */   330,  318,  318,  318,  374,  318,  318,  318,  318,   22,
- /*  1940 */   318,  318,  331,  318,  318,  215,  202,  201,  213,   60,
- /*  1950 */   318,  116,  133,  318,  318,  270,  209,  318,  284,  348,
- /*  1960 */   318,  318,  359,  352,  331,  330,  318,  318,  202,  318,
- /*  1970 */   213,   80,  318,  116,  318,  318,  318,  318,  318,  318,
- /*  1980 */   284,  348,  318,  318,  359,  352,  331,  330,  318,  318,
- /*  1990 */   202,  318,  213,   82,  318,  116,  318,  318,  318,  343,
- /*  2000 */    26,  340,  284,  348,  318,  318,  359,  352,  318,  330,
- /*  2010 */   331,  318,  318,  318,  202,  318,  213,   87,  318,  116,
- /*  2020 */   318,  318,  318,  318,  318,  318,  284,  348,  331,  318,
- /*  2030 */   359,  352,  202,  330,  213,   69,  318,  116,  318,  318,
- /*  2040 */   318,  318,  318,  318,  284,  348,  331,  318,  359,  352,
- /*  2050 */   202,  330,  213,   57,  318,  116,  318,  318,  318,  318,
- /*  2060 */   318,  318,  284,  348,  331,  318,  359,  352,  202,  330,
- /*  2070 */   213,   70,  318,  116,  318,  318,  318,  318,  318,  318,
- /*  2080 */   284,  348,  331,  318,  359,  352,  202,  330,  213,   59,
- /*  2090 */   318,  116,  318,  318,  318,  318,  318,  318,  284,  348,
- /*  2100 */   331,  318,  359,  352,  111,  330,  110,   56,  318,  109,
- /*  2110 */   318,  318,  318,  318,  318,  318,  284,  348,  331,  318,
- /*  2120 */   359,  352,  188,  330,  213,   79,  318,  116,  318,  318,
- /*  2130 */   318,  374,  318,  318,  284,  348,   22,  318,  359,  352,
- /*  2140 */   318,  330,  215,  318,  201,  318,  318,  318,  318,  133,
- /*  2150 */   331,  318,  270,  209,  202,  318,  213,   78,  318,  116,
- /*  2160 */   318,  318,  318,  318,  318,  318,  284,  348,  331,  318,
- /*  2170 */   359,  352,  202,  330,  213,   51,  318,  116,  318,  318,
- /*  2180 */   318,  318,  318,  318,  284,  348,  331,  318,  359,  352,
- /*  2190 */   202,  330,  213,   67,  318,  116,  342,   26,  340,  318,
- /*  2200 */   318,  318,  284,  348,  331,  318,  359,  352,  202,  330,
- /*  2210 */   213,   65,  318,  116,  318,  318,  318,  318,  318,  318,
- /*  2220 */   284,  348,  331,  318,  359,  352,  202,  330,  213,   64,
- /*  2230 */   318,  116,  318,  318,  318,  318,  318,  318,  284,  348,
- /*  2240 */   331,  318,  359,  352,  202,  330,  213,   86,  318,  116,
- /*  2250 */   318,  318,  318,  318,  318,  318,  284,  348,  331,  318,
- /*  2260 */   359,  352,  251,  330,  213,  318,  318,  116,  331,  318,
- /*  2270 */   318,  318,  282,  318,  213,  250,  331,  116,  359,  352,
- /*  2280 */   358,  330,  213,  318,  318,  116,  331,  318,  359,  352,
- /*  2290 */   290,  330,  213,  318,  331,  116,  359,  352,  262,  330,
- /*  2300 */   213,  318,  318,  116,  331,  318,  359,  352,  249,  330,
- /*  2310 */   213,  318,  331,  116,  359,  352,  237,  330,  213,  191,
- /*  2320 */   318,  116,  331,  318,  359,  352,  291,  330,  213,  318,
- /*  2330 */   318,  116,  359,  352,  344,  330,  318,  318,  211,  318,
- /*  2340 */    38,  318,  359,  352,  140,  330,  138,  173,  318,  173,
- /*  2350 */   318,  318,  145,  318,  277,  173,  277,   12,   11,   12,
- /*  2360 */    11,  318,  277,  318,  318,   12,   11,  318,    3,  318,
- /*  2370 */   179,  318,  179,  318,  154,  318,  128,  173,  179,  318,
- /*  2380 */   318,  318,  318,  318,  277,  318,  318,   12,   11,  318,
- /*  2390 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
- /*  2400 */   179,
+ /*     0 */   192,  249,  282,  291,  295,  270,  277,  272,  269,  284,
+ /*    10 */   287,  373,  349,  168,  155,  308,   39,  136,  138,    5,
+ /*    20 */   320,   12,  222,  185,  228,  219,   12,  126,    7,  134,
+ /*    30 */   303,  251,  246,  232,   48,   45,   44,   43,   26,   24,
+ /*    40 */   255,  250,   16,   27,  267,  286,   14,   10,  364,  307,
+ /*    50 */   298,  305,  313,   46,  185,  362,  168,  340,  365,    7,
+ /*    60 */   192,   12,  266,  268,  271,  289,  239,  245,  257,  260,
+ /*    70 */   254,  297,  353,  345,  192,  290,  302,  157,   13,  208,
+ /*    80 */   224,  237,  229,   72,  140,  119,  571,   91,  252,  282,
+ /*    90 */   291,  176,  363,  338,  273,   12,  327,  314,   13,  304,
+ /*   100 */    41,  237,   30,  230,  196,  259,  195,  175,   48,   45,
+ /*   110 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
+ /*   120 */    14,   10,  211,  318,   13,  147,  439,  237,  100,   34,
+ /*   130 */    13,   12,  439,  237,   30,  273,  266,  268,  271,  289,
+ /*   140 */   239,  245,  257,  260,  254,  297,  353,  345,  192,  192,
+ /*   150 */   302,  181,  148,    8,  224,  101,  229,   72,   13,  119,
+ /*   160 */     5,  237,  273,  299,  264,  350,  363,  338,  126,   12,
+ /*   170 */   327,  314,   46,  304,  214,  336,  293,  145,  181,  259,
+ /*   180 */   201,   12,   48,   45,   44,   43,   26,   24,  255,  250,
+ /*   190 */    16,   27,  267,  286,   14,   10,   13,    2,  309,  237,
+ /*   200 */    18,   46,  214,  441,   12,   19,  279,  130,  330,  441,
+ /*   210 */   266,  268,  271,  289,  239,  245,  257,  260,  254,  297,
+ /*   220 */   353,  345,  192,  328,  302,  342,  360,  372,  224,  112,
+ /*   230 */   229,   54,   12,  119,  127,   13,   46,  316,  237,  369,
+ /*   240 */   363,  338,   12,   12,  327,  314,   32,  304,  124,  154,
+ /*   250 */   233,  209,  311,   31,  170,  312,   48,   45,   44,   43,
+ /*   260 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*   270 */   192,  317,  315,    5,  435,  102,  367,   12,   12,  221,
+ /*   280 */    12,  126,  131,  293,  266,  268,  271,  289,  239,  245,
+ /*   290 */   257,  260,  254,  297,  353,  345,  304,  438,  355,  164,
+ /*   300 */   343,   29,   29,  438,   48,   45,   44,   43,   26,   24,
+ /*   310 */   255,  250,   16,   27,  267,  286,   14,   10,  339,  247,
+ /*   320 */   248,  436,  181,   33,    4,   40,  138,  436,  114,  220,
+ /*   330 */    46,  322,  266,  268,  271,  289,  239,  245,  257,  260,
+ /*   340 */   254,  297,  353,  345,  192,  302,  159,  167,  347,  224,
+ /*   350 */    13,  229,   72,  237,  119,    5,  273,   21,   22,  285,
+ /*   360 */   209,  363,  338,  126,  121,  327,  314,  259,  304,    5,
+ /*   370 */   181,   99,  231,  177,  312,  197,   29,  126,   48,   45,
+ /*   380 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
+ /*   390 */    14,   10,  192,  234,  326,  334,  306,  163,  156,  259,
+ /*   400 */    12,   12,   12,  192,  293,   28,  266,  268,  271,  289,
+ /*   410 */   239,  245,  257,  260,  254,  297,  353,  345,  435,  354,
+ /*   420 */    13,  181,  348,  205,   12,   12,   48,   45,   44,   43,
+ /*   430 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*   440 */     6,  241,  150,  280,    6,  325,  293,   12,  301,   12,
+ /*   450 */   210,   12,  273,  253,  266,  268,  271,  289,  239,  245,
+ /*   460 */   257,  260,  254,  297,  353,  345,  192,   38,  180,  165,
+ /*   470 */   152,   13,  122,   97,  237,  161,  324,  366,   12,  273,
+ /*   480 */   273,   46,   23,   21,   22,  273,  204,  238,  222,  173,
+ /*   490 */   228,  292,  111,   12,  133,  134,  181,   12,  246,  232,
+ /*   500 */    48,   45,   44,   43,   26,   24,  255,  250,   16,   27,
+ /*   510 */   267,  286,   14,   10,  256,  160,  172,  356,    3,   13,
+ /*   520 */    12,  329,  227,   12,  369,  273,  174,   12,  266,  268,
+ /*   530 */   271,  289,  239,  245,  257,  260,  254,  297,  353,  345,
+ /*   540 */   192,  180,  357,   37,  370,  137,  294,  162,  333,  166,
+ /*   550 */   192,  366,   12,  158,   12,  179,   23,  273,  303,  273,
+ /*   560 */   281,  358,  222,  273,  228,  274,   12,  346,  259,  134,
+ /*   570 */   259,  217,  246,  232,   48,   45,   44,   43,   26,   24,
+ /*   580 */   255,  250,   16,   27,  267,  286,   14,   10,  192,  149,
+ /*   590 */   368,   13,  215,  226,  207,   36,   11,  132,  138,  273,
+ /*   600 */   192,   98,  266,  268,  271,  289,  239,  245,  257,  260,
+ /*   610 */   254,  297,  353,  345,  303,  180,  359,   37,  370,  169,
+ /*   620 */   312,   12,   48,   45,   44,   43,   26,   24,  255,  250,
+ /*   630 */    16,   27,  267,  286,   14,   10,  121,  144,  216,  337,
+ /*   640 */    13,  361,  236,  194,  210,  116,  132,  273,   12,  120,
+ /*   650 */   266,  268,  271,  289,  239,  245,  257,  260,  254,  297,
+ /*   660 */   353,  345,  192,  302,  300,  105,  123,  224,   94,  229,
+ /*   670 */    55,   15,  119,  135,  129,  109,  192,  263,  303,  363,
+ /*   680 */   338,  303,  143,  327,  314,  259,  304,  303,  303,  171,
+ /*   690 */   335,  258,  273,  261,   90,  118,   48,   45,   44,   43,
+ /*   700 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*   710 */   192,   35,  323,  180,  311,  138,  153,  192,  113,  259,
+ /*   720 */   351,   20,   12,   96,  266,  268,  271,  289,  239,  245,
+ /*   730 */   257,  260,  254,  297,  353,  345,  303,  275,   25,   42,
+ /*   740 */   276,  212,   95,  352,   48,   45,   44,   43,   26,   24,
+ /*   750 */   255,  250,   16,   27,  267,  286,   14,   10,   93,  318,
+ /*   760 */   318,  103,  318,  265,  318,  318,  318,  318,  318,  318,
+ /*   770 */   318,  303,  266,  268,  271,  289,  239,  245,  257,  260,
+ /*   780 */   254,  297,  353,  345,  192,  318,  302,  104,  318,  318,
+ /*   790 */   224,  318,  229,   82,  318,  119,  318,  318,  318,  318,
+ /*   800 */   303,  318,  363,  338,  318,   12,  327,  314,  318,  304,
+ /*   810 */   318,  318,  318,  318,  318,  318,  318,  318,   48,   45,
+ /*   820 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
+ /*   830 */    14,   10,  192,  318,  318,  318,  318,  318,  318,  318,
+ /*   840 */   318,  318,  318,  318,  318,  318,  266,  268,  271,  289,
+ /*   850 */   239,  245,  257,  260,  254,  297,  353,  345,  318,  318,
+ /*   860 */   318,  318,  318,  318,  318,  318,   48,   45,   44,   43,
+ /*   870 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*   880 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
+ /*   890 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
+ /*   900 */   257,  260,  254,  297,  353,  345,  192,  371,  302,  318,
+ /*   910 */   318,  318,  224,  318,  229,   86,  318,  119,  318,  318,
+ /*   920 */   318,  178,  318,  318,  363,  338,  318,  318,  327,  314,
+ /*   930 */   318,  304,  318,  318,  318,  318,  318,  318,  318,  318,
+ /*   940 */    48,   45,   44,   43,   26,   24,  255,  250,   16,   27,
+ /*   950 */   267,  286,   14,   10,  192,  318,  318,  318,  318,  318,
+ /*   960 */   318,  318,  318,  318,  318,  318,  318,  318,  266,  268,
+ /*   970 */   271,  289,  239,  245,  257,  260,  254,  297,  353,  345,
+ /*   980 */   318,  318,  206,  318,  318,  318,  318,  318,   48,   45,
+ /*   990 */    44,   43,   26,   24,  255,  250,   16,   27,  267,  286,
+ /*  1000 */    14,   10,  192,  318,  318,  318,  318,  318,  318,  318,
+ /*  1010 */   318,  318,  318,  318,  318,  318,  266,  268,  271,  289,
+ /*  1020 */   239,  245,  257,  260,  254,  297,  353,  345,  318,  318,
+ /*  1030 */   318,  318,  318,  318,  318,  318,   48,   45,   44,   43,
+ /*  1040 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*  1050 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
+ /*  1060 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
+ /*  1070 */   257,  260,  254,  297,  353,  345,   48,   45,   44,   43,
+ /*  1080 */    26,   24,  255,  250,   16,   27,  267,  286,   14,   10,
+ /*  1090 */   318,  318,  318,  318,  318,  318,  318,  318,  318,  318,
+ /*  1100 */   318,  318,  318,  318,  266,  268,  271,  289,  239,  245,
+ /*  1110 */   257,  260,  254,  297,  353,  345,  318,  318,  318,  318,
+ /*  1120 */    39,  318,  115,  186,  318,  302,  222,  318,  228,  319,
+ /*  1130 */   318,  229,  318,  134,  119,  318,  246,  232,  223,  318,
+ /*  1140 */   318,   50,  321,  441,  318,  327,  314,  318,  304,  441,
+ /*  1150 */   318,  318,  318,  318,  318,    9,  225,  318,   47,   49,
+ /*  1160 */   242,  218,  331,  318,  318,   99,    1,  262,  318,  318,
+ /*  1170 */   318,   39,  318,  115,  199,  318,   46,  222,  318,  228,
+ /*  1180 */    92,  318,  318,  318,  134,  318,  318,  246,  232,  223,
+ /*  1190 */   318,  318,   50,  318,  318,  318,  318,  318,  302,  318,
+ /*  1200 */   318,  318,  193,  318,  229,   85,    9,  119,  318,   47,
+ /*  1210 */    49,  242,  218,  331,  363,  338,   99,    1,  327,  314,
+ /*  1220 */   318,  304,   39,  318,  115,  187,  318,  318,  222,  318,
+ /*  1230 */   228,   92,  200,  341,  318,  134,  318,  318,  246,  232,
+ /*  1240 */   223,  318,  318,   50,  318,  318,  318,  318,  318,  302,
+ /*  1250 */   318,  318,  318,  193,  318,  229,   85,    9,  119,  318,
+ /*  1260 */    47,   49,  242,  218,  331,  363,  338,   99,    1,  327,
+ /*  1270 */   314,  318,  304,   39,  318,  114,  199,  318,  318,  222,
+ /*  1280 */   318,  228,   92,  318,  344,  318,  134,  318,  318,  246,
+ /*  1290 */   232,  223,  318,  318,   50,  318,  318,  318,  318,  318,
+ /*  1300 */   302,  318,  318,  318,  224,  318,  229,   67,   17,  119,
+ /*  1310 */   318,   47,   49,  242,  218,  331,  363,  338,   99,    1,
+ /*  1320 */   327,  314,  318,  304,   39,  318,  115,  190,  318,  318,
+ /*  1330 */   222,  318,  228,   92,  318,  318,  318,  134,  318,  318,
+ /*  1340 */   246,  232,  223,  318,  318,   50,  318,  318,  318,  318,
+ /*  1350 */   318,  302,  318,  318,  318,  224,  318,  229,   68,    9,
+ /*  1360 */   119,  318,   47,   49,  242,  218,  331,  363,  338,   99,
+ /*  1370 */     1,  327,  314,  318,  304,   39,  318,  125,  199,  318,
+ /*  1380 */   318,  222,  318,  228,   92,  318,  318,  318,  134,  318,
+ /*  1390 */   318,  246,  232,  223,  318,  318,   50,  318,  318,  318,
+ /*  1400 */   318,  318,  302,  318,  318,  318,  224,  318,  229,   77,
+ /*  1410 */     9,  119,  318,   47,   49,  242,  218,  331,  363,  338,
+ /*  1420 */    99,    1,  327,  314,  318,  304,   39,  318,  128,   89,
+ /*  1430 */   318,  318,  222,  318,  228,   92,  318,  318,  318,  134,
+ /*  1440 */   318,  318,  246,  232,  223,  318,  318,   50,  318,  318,
+ /*  1450 */   318,  318,  318,  302,  318,  318,  318,  224,  318,  229,
+ /*  1460 */    61,    9,  119,  318,   47,   49,  242,  218,  331,  363,
+ /*  1470 */   338,   99,    1,  327,  314,  318,  304,   39,  318,  115,
+ /*  1480 */   182,  318,  318,  222,  318,  228,   92,  318,  318,  318,
+ /*  1490 */   134,  318,  318,  246,  232,  223,  318,  318,   50,  318,
+ /*  1500 */   318,  318,  318,  318,  302,  318,  318,  318,  224,  318,
+ /*  1510 */   229,   73,    9,  119,  318,   47,   49,  242,  218,  331,
+ /*  1520 */   363,  338,   99,    1,  327,  314,  318,  304,   39,  318,
+ /*  1530 */   115,  183,  318,  318,  222,  318,  228,   92,  318,  318,
+ /*  1540 */   318,  134,  318,  318,  246,  232,  191,  318,  318,   50,
+ /*  1550 */   318,  318,  318,  318,  318,  302,  318,  318,  318,  224,
+ /*  1560 */   318,  229,   63,    9,  119,  318,   47,   49,  242,  218,
+ /*  1570 */   331,  363,  338,   99,    1,  327,  314,  318,  304,   39,
+ /*  1580 */   318,  117,  199,  318,  318,  222,  318,  228,   92,  318,
+ /*  1590 */   318,  318,  134,  318,  318,  246,  232,  223,  318,  318,
+ /*  1600 */    50,  318,  318,  318,  318,  318,  302,  318,  318,  318,
+ /*  1610 */   224,  318,  229,   70,    9,  119,  318,   47,   49,  242,
+ /*  1620 */   218,  331,  363,  338,   99,    1,  327,  314,  318,  304,
+ /*  1630 */    39,  318,  114,  203,  318,  318,  222,  318,  228,   92,
+ /*  1640 */   318,  318,  318,  134,  318,  318,  246,  232,  223,  318,
+ /*  1650 */   318,   50,  318,  318,  318,  318,  318,  302,  318,  318,
+ /*  1660 */   318,  224,  318,  229,   74,   17,  119,  318,   47,   49,
+ /*  1670 */   242,  218,  331,  363,  338,   99,  318,  327,  314,  318,
+ /*  1680 */   304,   39,  318,  114,  199,  318,  318,  222,  318,  228,
+ /*  1690 */    92,  318,  318,  318,  134,  318,  318,  246,  232,  223,
+ /*  1700 */   482,  318,   50,  318,  318,  318,  482,  318,  482,  318,
+ /*  1710 */   482,  482,  318,  482,  151,  318,   17,  167,  482,   47,
+ /*  1720 */    49,  242,  218,  331,  273,  318,   99,   21,   22,  318,
+ /*  1730 */   318,  318,  318,  482,    5,  482,  318,  318,  318,  318,
+ /*  1740 */   181,   92,  126,  318,  318,  141,  482,  302,  167,  318,
+ /*  1750 */   318,  224,  318,  229,   81,  273,  119,  318,   21,   22,
+ /*  1760 */   482,  318,  318,  363,  338,  318,  318,  327,  314,  318,
+ /*  1770 */   304,  181,  302,  318,  318,  318,  224,  318,  229,   71,
+ /*  1780 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
+ /*  1790 */   318,  318,  327,  314,  302,  304,  318,  318,  224,  318,
+ /*  1800 */   229,   79,  318,  119,  318,  318,  318,  318,  318,  318,
+ /*  1810 */   363,  338,  318,  318,  327,  314,  302,  304,  318,  318,
+ /*  1820 */   108,  318,  106,   51,  318,  107,  318,  318,  318,  318,
+ /*  1830 */   318,  318,  363,  338,  302,  318,  327,  314,  224,  304,
+ /*  1840 */   229,   78,  318,  119,  318,  318,  318,  318,  318,  318,
+ /*  1850 */   363,  338,  192,  318,  327,  314,  318,  304,  318,  302,
+ /*  1860 */   318,  318,  318,  224,  318,  229,   64,  310,  119,  318,
+ /*  1870 */   318,  213,  318,   12,  318,  363,  338,  302,  318,  327,
+ /*  1880 */   314,  224,  304,  229,   62,  318,  119,  318,  318,  318,
+ /*  1890 */   318,  318,  318,  363,  338,  318,  318,  327,  314,  302,
+ /*  1900 */   304,    5,  318,  188,  318,  229,   84,  318,  119,  126,
+ /*  1910 */   318,  318,  318,  318,  318,  363,  338,  302,  318,  327,
+ /*  1920 */   314,  224,  304,  229,   80,  318,  119,  318,  318,  318,
+ /*  1930 */   318,  318,  318,  363,  338,  318,  318,  327,  314,  318,
+ /*  1940 */   304,  318,  302,  318,  318,  318,  224,  318,  229,   76,
+ /*  1950 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
+ /*  1960 */   302,  318,  327,  314,  224,  304,  229,   66,  318,  119,
+ /*  1970 */   318,  318,  318,  318,  318,  318,  363,  338,  318,  318,
+ /*  1980 */   327,  314,  302,  304,  318,  318,  224,  318,  229,   83,
+ /*  1990 */   318,  119,  318,  318,  318,  318,  318,  318,  363,  338,
+ /*  2000 */   302,  318,  327,  314,  224,  304,  229,   75,  318,  119,
+ /*  2010 */   318,  318,  318,  318,  318,  318,  363,  338,  318,  318,
+ /*  2020 */   327,  314,  318,  304,  318,  302,  318,  318,  318,  184,
+ /*  2030 */   318,  229,   58,  318,  119,  318,  318,  318,  318,  318,
+ /*  2040 */   318,  363,  338,  302,  318,  327,  314,  224,  304,  229,
+ /*  2050 */    87,  318,  119,  318,  318,  318,  318,  318,  318,  363,
+ /*  2060 */   338,  318,  318,  327,  314,  302,  304,  318,  318,  189,
+ /*  2070 */   318,  229,   69,  318,  119,  318,  318,  318,  318,  318,
+ /*  2080 */   318,  363,  338,  302,  318,  327,  314,  224,  304,  229,
+ /*  2090 */    59,  318,  119,  318,  318,  318,  318,  318,  318,  363,
+ /*  2100 */   338,  318,  318,  327,  314,  318,  304,  318,  302,  318,
+ /*  2110 */   318,  318,  224,  318,  229,   57,  318,  119,  318,  318,
+ /*  2120 */   318,  318,  318,  318,  363,  338,  302,  318,  327,  314,
+ /*  2130 */   108,  304,  110,   56,  318,  107,  318,  318,  318,  318,
+ /*  2140 */   318,  318,  363,  338,  318,  318,  327,  314,  302,  304,
+ /*  2150 */   318,  318,  224,  318,  198,   60,  318,  119,  318,  318,
+ /*  2160 */   318,  318,  318,  318,  363,  338,  302,  318,  327,  314,
+ /*  2170 */   224,  304,  229,   65,  318,  119,  318,  318,  318,  318,
+ /*  2180 */   318,  318,  363,  338,  318,  318,  327,  314,  318,  304,
+ /*  2190 */   318,  302,  318,  318,  318,  224,  318,  229,   52,  318,
+ /*  2200 */   119,  318,  318,  318,  318,  318,  318,  363,  338,  302,
+ /*  2210 */   318,  327,  314,  202,  304,  229,   53,  318,  119,  318,
+ /*  2220 */   318,  318,  318,  318,  318,  363,  338,  318,  318,  327,
+ /*  2230 */   314,  302,  304,  318,  318,  224,  318,  229,   88,  318,
+ /*  2240 */   119,  318,  318,  318,  318,  318,  318,  363,  338,  302,
+ /*  2250 */   318,  327,  314,  240,  304,  229,  302,  318,  119,  318,
+ /*  2260 */   283,  318,  229,  318,  318,  119,  244,  318,  318,  327,
+ /*  2270 */   314,  318,  304,  318,  302,  318,  327,  314,  235,  304,
+ /*  2280 */   229,  302,  318,  119,  318,  278,  318,  229,  318,  318,
+ /*  2290 */   119,  318,  318,  318,  327,  314,  318,  304,  318,  302,
+ /*  2300 */   318,  327,  314,  288,  304,  229,  318,  318,  119,  302,
+ /*  2310 */   318,  318,  318,  296,  318,  229,  318,  318,  119,  327,
+ /*  2320 */   314,  318,  304,  318,  318,  318,  318,  318,  318,  327,
+ /*  2330 */   314,  302,  304,  318,  318,  332,  318,  229,  302,  318,
+ /*  2340 */   119,  318,  243,  318,  229,  318,  318,  119,  318,  318,
+ /*  2350 */   142,  327,  314,  167,  304,  318,  318,  318,  327,  314,
+ /*  2360 */   273,  304,  318,   21,   22,  139,  318,  146,  167,  318,
+ /*  2370 */   167,  318,  318,  318,  318,  273,  181,  273,   21,   22,
+ /*  2380 */    21,   22,  318,  318,  318,  318,  318,  318,  318,  318,
+ /*  2390 */   318,  181,  318,  181,
     );
     static public $yy_lookahead = array(
  /*     0 */     1,   81,   82,   83,    3,    4,    5,    6,    7,    8,
- /*    10 */     9,   10,   11,   12,   16,   16,   15,   82,   87,   50,
- /*    20 */    22,   22,   21,   25,   23,   56,   18,   58,   97,   28,
- /*    30 */     2,   62,   31,   32,   35,   36,   37,   38,   39,   40,
+ /*    10 */     9,   10,   11,   12,  106,   16,   15,   95,   20,   50,
+ /*    20 */    16,   22,   21,   56,   23,   56,   22,   58,   61,   28,
+ /*    30 */   108,   62,   31,   32,   35,   36,   37,   38,   39,   40,
  /*    40 */    41,   42,   43,   44,   45,   46,   47,   48,    4,    5,
- /*    50 */     6,    7,    8,  118,  119,   16,   12,   13,   14,   18,
+ /*    50 */     6,    7,    8,   49,   56,   16,   12,   13,   14,   61,
  /*    60 */     1,   22,   63,   64,   65,   66,   67,   68,   69,   70,
- /*    70 */    71,   72,   73,   74,    1,   16,   82,   24,   30,   20,
- /*    80 */    86,   22,   88,   89,   51,   91,   92,   34,   16,   16,
- /*    90 */    19,   19,   98,   99,   22,   22,  102,  103,   50,  105,
- /*   100 */    59,   79,   80,   81,   82,   83,   58,   18,   35,   36,
+ /*    70 */    71,   72,   73,   74,    1,   16,   82,  106,   15,   20,
+ /*    80 */    86,   18,   88,   89,   87,   91,   79,   80,   81,   82,
+ /*    90 */    83,  114,   98,   99,   97,   22,  102,  103,   15,  105,
+ /*   100 */    27,   18,   19,   92,   93,  108,  112,  114,   35,   36,
  /*   110 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
- /*   120 */    47,   48,   50,   16,   34,   87,   16,   56,   90,   22,
- /*   130 */    58,   15,   22,   17,   18,   97,   63,   64,   65,   66,
- /*   140 */    67,   68,   69,   70,   71,   72,   73,   74,    1,   33,
- /*   150 */    82,  113,   62,  106,   86,  108,   88,   89,   15,   91,
- /*   160 */    50,   18,   19,   16,   19,   20,   98,   99,   58,   22,
- /*   170 */   102,  103,   15,  105,   15,   18,   19,   18,   92,   93,
+ /*   120 */    47,   48,   59,  110,   15,   87,   16,   18,   90,   19,
+ /*   130 */    15,   22,   22,   18,   19,   97,   63,   64,   65,   66,
+ /*   140 */    67,   68,   69,   70,   71,   72,   73,   74,    1,    1,
+ /*   150 */    82,  113,   87,   30,   86,   90,   88,   89,   15,   91,
+ /*   160 */    50,   18,   97,   16,   16,   33,   98,   99,   58,   22,
+ /*   170 */   102,  103,   49,  105,   59,   16,   25,  106,  113,  108,
  /*   180 */   112,   22,   35,   36,   37,   38,   39,   40,   41,   42,
- /*   190 */    43,   44,   45,   46,   47,   48,   15,   18,   15,   18,
- /*   200 */    19,   18,   59,   58,   56,   15,   25,  106,   18,   61,
+ /*   190 */    43,   44,   45,   46,   47,   48,   15,   34,   16,   18,
+ /*   200 */    19,   49,   59,   16,   22,   15,   25,   17,   18,   22,
  /*   210 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
- /*   220 */    73,   74,    1,  114,   82,   25,   87,   90,   86,   90,
- /*   230 */    88,   89,   15,   91,   17,   18,   97,  100,  101,   20,
- /*   240 */    98,   99,   59,   22,  102,  103,  106,  105,   27,   59,
- /*   250 */   113,   26,  113,   30,  112,   51,   35,   36,   37,   38,
+ /*   220 */    73,   74,    1,   33,   82,   62,   16,   76,   86,   17,
+ /*   230 */    88,   89,   22,   91,   92,   15,   49,   16,   18,   82,
+ /*   240 */    98,   99,   22,   22,  102,  103,   15,  105,   17,   18,
+ /*   250 */    30,   56,  107,   30,  109,  110,   35,   36,   37,   38,
  /*   260 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
- /*   270 */    50,   87,   49,   16,   90,   56,   76,   16,   58,   22,
- /*   280 */    61,   97,    1,   22,   63,   64,   65,   66,   67,   68,
- /*   290 */    69,   70,   71,   72,   73,   74,    1,  113,   82,   62,
- /*   300 */    95,   87,   86,   22,   88,   89,   49,   91,    2,   15,
- /*   310 */    49,   97,   18,  108,   98,   99,   22,   22,  102,  103,
- /*   320 */    16,  105,  108,   16,   30,   19,   22,   18,  112,   22,
- /*   330 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
- /*   340 */    45,   46,   47,   48,   18,   16,  107,   87,  109,  110,
- /*   350 */    60,   22,   17,   18,   25,   50,   49,   97,   63,   64,
- /*   360 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
- /*   370 */     1,   82,   87,  113,   87,   86,  114,   88,   89,   87,
- /*   380 */    91,    1,   97,   15,   97,   16,   18,   98,   99,   97,
- /*   390 */    22,  102,  103,  108,  105,   60,   16,   16,   30,   22,
- /*   400 */   108,  112,   22,   22,   35,   36,   37,   38,   39,   40,
- /*   410 */    41,   42,   43,   44,   45,   46,   47,   48,   16,   16,
- /*   420 */    87,   16,   18,   15,   22,   22,   18,   22,  109,  110,
- /*   430 */    97,   17,   63,   64,   65,   66,   67,   68,   69,   70,
- /*   440 */    71,   72,   73,   74,    1,   82,  113,   88,   87,   86,
- /*   450 */    91,   88,   89,   17,   91,   17,   18,   16,   97,   16,
- /*   460 */    20,   98,   99,   22,  105,  102,  103,   16,  105,  108,
- /*   470 */    18,   16,   15,   22,   83,   18,   85,   22,   35,   36,
- /*   480 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
- /*   490 */    47,   48,    1,   87,   87,   16,   16,   15,   58,   16,
- /*   500 */    18,   22,   22,   97,   97,   22,   63,   64,   65,   66,
- /*   510 */    67,   68,   69,   70,   71,   72,   73,   74,   16,  113,
- /*   520 */   113,  106,   15,  108,   22,   18,   35,   36,   37,   38,
- /*   530 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
- /*   540 */    95,   16,   51,   16,   16,   16,   16,   22,   22,   22,
- /*   550 */    22,   22,   17,  108,   63,   64,   65,   66,   67,   68,
- /*   560 */    69,   70,   71,   72,   73,   74,    1,   82,  109,  110,
- /*   570 */   104,   86,   16,   88,   89,   87,   91,  111,   22,   49,
- /*   580 */    16,   16,   15,   98,   99,   97,   22,  102,  103,   16,
- /*   590 */   105,   16,   16,   25,   50,   22,   15,   22,   22,   18,
- /*   600 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
- /*   610 */    45,   46,   47,   48,    1,  104,   18,   50,   17,   60,
- /*   620 */    49,   33,  111,   51,   33,   82,   56,   95,   63,   64,
- /*   630 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
- /*   640 */   108,   16,    2,   17,   52,   22,   18,   34,   35,   36,
- /*   650 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
- /*   660 */    47,   48,  119,  106,   87,   87,   97,  107,   20,   22,
- /*   670 */   108,  110,    2,   17,   97,   97,   63,   64,   65,   66,
- /*   680 */    67,   68,   69,   70,   71,   72,   73,   74,    1,   82,
- /*   690 */   111,   95,  106,   86,   95,   88,   89,   94,   91,   22,
- /*   700 */    95,   95,   92,   95,  108,   98,   99,  108,   96,  102,
- /*   710 */   103,   24,  105,  108,  108,  115,  108,  113,    1,   84,
- /*   720 */   108,   94,   35,   36,   37,   38,   39,   40,   41,   42,
- /*   730 */    43,   44,   45,   46,   47,   48,   95,   13,  120,  120,
- /*   740 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  108,
- /*   750 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
- /*   760 */    73,   74,    1,   82,  120,  120,  120,   86,  120,   88,
- /*   770 */    89,  120,   91,  120,   95,   95,  120,   16,  120,   98,
- /*   780 */    99,  120,  120,  102,  103,  120,  105,  108,  108,  120,
- /*   790 */   120,  120,  120,  120,  120,  120,   35,   36,   37,   38,
- /*   800 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
- /*   810 */     1,    2,  120,  120,  120,  120,  120,  120,  120,  120,
- /*   820 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
- /*   830 */    69,   70,   71,   72,   73,   74,  120,  120,  120,  120,
- /*   840 */   120,  120,  120,  120,   35,   36,   37,   38,   39,   40,
- /*   850 */    41,   42,   43,   44,   45,   46,   47,   48,    1,  120,
- /*   860 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
- /*   870 */   120,  120,   63,   64,   65,   66,   67,   68,   69,   70,
- /*   880 */    71,   72,   73,   74,  120,  120,  120,  120,  120,  120,
- /*   890 */   120,  120,   35,   36,   37,   38,   39,   40,   41,   42,
- /*   900 */    43,   44,   45,   46,   47,   48,    1,  120,   51,  120,
- /*   910 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
- /*   920 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
- /*   930 */    73,   74,  120,  120,   29,  120,  120,  120,  120,  120,
+ /*   270 */     1,   16,   16,   50,   16,  118,  119,   22,   22,   88,
+ /*   280 */    22,   58,   91,   25,   63,   64,   65,   66,   67,   68,
+ /*   290 */    69,   70,   71,   72,   73,   74,  105,   16,   83,   90,
+ /*   300 */    85,   34,   34,   22,   35,   36,   37,   38,   39,   40,
+ /*   310 */    41,   42,   43,   44,   45,   46,   47,   48,   51,   51,
+ /*   320 */    51,   16,  113,   19,   22,   19,   20,   22,   17,   18,
+ /*   330 */    49,   18,   63,   64,   65,   66,   67,   68,   69,   70,
+ /*   340 */    71,   72,   73,   74,    1,   82,   87,   90,   60,   86,
+ /*   350 */    15,   88,   89,   18,   91,   50,   97,  100,  101,   16,
+ /*   360 */    56,   98,   99,   58,   58,  102,  103,  108,  105,   50,
+ /*   370 */   113,   60,   59,  109,  110,  112,   34,   58,   35,   36,
+ /*   380 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
+ /*   390 */    47,   48,    1,   51,   16,   16,   16,  106,   90,  108,
+ /*   400 */    22,   22,   22,    1,   25,   15,   63,   64,   65,   66,
+ /*   410 */    67,   68,   69,   70,   71,   72,   73,   74,   16,   16,
+ /*   420 */    15,  113,   60,   18,   22,   22,   35,   36,   37,   38,
+ /*   430 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
+ /*   440 */    50,   16,   87,   16,   50,   16,   25,   22,   16,   22,
+ /*   450 */     2,   22,   97,   62,   63,   64,   65,   66,   67,   68,
+ /*   460 */    69,   70,   71,   72,   73,   74,    1,   19,  113,   87,
+ /*   470 */    87,   15,   17,   90,   18,   87,   18,   10,   22,   97,
+ /*   480 */    97,   49,   15,  100,  101,   97,   30,   16,   21,   24,
+ /*   490 */    23,   16,   18,   22,   22,   28,  113,   22,   31,   32,
+ /*   500 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
+ /*   510 */    45,   46,   47,   48,   16,   87,   24,   16,   50,   15,
+ /*   520 */    22,   16,   18,   22,   82,   97,   34,   22,   63,   64,
+ /*   530 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
+ /*   540 */     1,  113,   75,   76,   77,   95,   16,   87,   16,   87,
+ /*   550 */     1,   10,   22,   87,   22,   16,   15,   97,  108,   97,
+ /*   560 */    16,  119,   21,   97,   23,   16,   22,   33,  108,   28,
+ /*   570 */   108,   18,   31,   32,   35,   36,   37,   38,   39,   40,
+ /*   580 */    41,   42,   43,   44,   45,   46,   47,   48,    1,   87,
+ /*   590 */   104,   15,   17,   18,   18,   26,    2,  111,   20,   97,
+ /*   600 */     1,   95,   63,   64,   65,   66,   67,   68,   69,   70,
+ /*   610 */    71,   72,   73,   74,  108,  113,   75,   76,   77,  109,
+ /*   620 */   110,   22,   35,   36,   37,   38,   39,   40,   41,   42,
+ /*   630 */    43,   44,   45,   46,   47,   48,   58,   87,   51,  104,
+ /*   640 */    15,   18,   16,   18,    2,   18,  111,   97,   22,   17,
+ /*   650 */    63,   64,   65,   66,   67,   68,   69,   70,   71,   72,
+ /*   660 */    73,   74,    1,   82,   18,   95,   17,   86,   95,   88,
+ /*   670 */    89,   52,   91,   96,   95,   95,    1,   16,  108,   98,
+ /*   680 */    99,  108,   87,  102,  103,  108,  105,  108,  108,   18,
+ /*   690 */    18,   16,   97,   62,   18,   17,   35,   36,   37,   38,
+ /*   700 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
+ /*   710 */     1,    2,   97,  113,  107,   20,  106,    1,   17,  108,
+ /*   720 */   111,   22,   22,   95,   63,   64,   65,   66,   67,   68,
+ /*   730 */    69,   70,   71,   72,   73,   74,  108,   92,   94,    2,
+ /*   740 */    22,   94,  106,   13,   35,   36,   37,   38,   39,   40,
+ /*   750 */    41,   42,   43,   44,   45,   46,   47,   48,   95,  120,
+ /*   760 */   120,   84,  120,  115,  120,  120,  120,  120,  120,  120,
+ /*   770 */   120,  108,   63,   64,   65,   66,   67,   68,   69,   70,
+ /*   780 */    71,   72,   73,   74,    1,  120,   82,   95,  120,  120,
+ /*   790 */    86,  120,   88,   89,  120,   91,  120,  120,  120,  120,
+ /*   800 */   108,  120,   98,   99,  120,   22,  102,  103,  120,  105,
+ /*   810 */   120,  120,  120,  120,  120,  120,  120,  120,   35,   36,
+ /*   820 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
+ /*   830 */    47,   48,    1,  120,  120,  120,  120,  120,  120,  120,
+ /*   840 */   120,  120,  120,  120,  120,  120,   63,   64,   65,   66,
+ /*   850 */    67,   68,   69,   70,   71,   72,   73,   74,  120,  120,
+ /*   860 */   120,  120,  120,  120,  120,  120,   35,   36,   37,   38,
+ /*   870 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
+ /*   880 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+ /*   890 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
+ /*   900 */    69,   70,   71,   72,   73,   74,    1,   76,   82,  120,
+ /*   910 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
+ /*   920 */   120,   16,  120,  120,   98,   99,  120,  120,  102,  103,
+ /*   930 */   120,  105,  120,  120,  120,  120,  120,  120,  120,  120,
  /*   940 */    35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
  /*   950 */    45,   46,   47,   48,    1,  120,  120,  120,  120,  120,
  /*   960 */   120,  120,  120,  120,  120,  120,  120,  120,   63,   64,
  /*   970 */    65,   66,   67,   68,   69,   70,   71,   72,   73,   74,
- /*   980 */   120,  120,  120,  120,  120,  120,  120,  120,   35,   36,
+ /*   980 */   120,  120,   29,  120,  120,  120,  120,  120,   35,   36,
  /*   990 */    37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
  /*  1000 */    47,   48,    1,  120,  120,  120,  120,  120,  120,  120,
- /*  1010 */   120,  120,  120,  120,  120,   62,   63,   64,   65,   66,
+ /*  1010 */   120,  120,  120,  120,  120,  120,   63,   64,   65,   66,
  /*  1020 */    67,   68,   69,   70,   71,   72,   73,   74,  120,  120,
  /*  1030 */   120,  120,  120,  120,  120,  120,   35,   36,   37,   38,
  /*  1040 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
- /*  1050 */     1,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+ /*  1050 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
  /*  1060 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
- /*  1070 */    69,   70,   71,   72,   73,   74,  120,   76,  120,  120,
- /*  1080 */   120,  120,  120,  120,   35,   36,   37,   38,   39,   40,
- /*  1090 */    41,   42,   43,   44,   45,   46,   47,   48,  120,  120,
- /*  1100 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
- /*  1110 */   120,  120,   63,   64,   65,   66,   67,   68,   69,   70,
- /*  1120 */    71,   72,   73,   74,   35,   36,   37,   38,   39,   40,
- /*  1130 */    41,   42,   43,   44,   45,   46,   47,   48,  120,  120,
- /*  1140 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
- /*  1150 */   120,  120,   63,   64,   65,   66,   67,   68,   69,   70,
- /*  1160 */    71,   72,   73,   74,  120,  120,  120,  120,   15,  120,
- /*  1170 */    17,   18,  120,   82,   21,  120,   23,   86,  120,   88,
- /*  1180 */   120,   28,   91,  120,   31,   32,   33,  120,  120,   36,
- /*  1190 */    99,   16,  120,  102,  103,  120,  105,   22,  120,  120,
- /*  1200 */   120,  120,  120,   50,   29,  120,   53,   54,   55,   56,
- /*  1210 */    57,  120,  120,   60,   61,   62,  120,  120,  120,   15,
- /*  1220 */   120,   17,   18,  120,   49,   21,  120,   23,   75,  120,
- /*  1230 */   120,  120,   28,  120,  120,   31,   32,   33,  120,  120,
- /*  1240 */    36,  120,  120,  120,  120,  120,   82,  120,  120,  120,
- /*  1250 */    86,  120,   88,   89,   50,   91,  120,   53,   54,   55,
- /*  1260 */    56,   57,   98,   99,   60,   61,  102,  103,  120,  105,
- /*  1270 */    15,  120,   17,   18,  120,  120,   21,  120,   23,   75,
- /*  1280 */   116,  117,  120,   28,  120,  120,   31,   32,   33,  120,
- /*  1290 */   120,   36,  120,  120,  120,  120,  120,   82,  120,  120,
- /*  1300 */   120,   86,  120,   88,   89,   50,   91,  120,   53,   54,
- /*  1310 */    55,   56,   57,   98,   99,   60,   61,  102,  103,  120,
- /*  1320 */   105,   15,  120,   17,   18,  120,  120,   21,  120,   23,
- /*  1330 */    75,  120,  117,  120,   28,  120,  120,   31,   32,   33,
- /*  1340 */   120,  120,   36,  120,  120,  120,  120,  120,   82,  120,
- /*  1350 */   120,  120,   86,  120,   88,   89,   50,   91,  120,   53,
- /*  1360 */    54,   55,   56,   57,   98,   99,   60,   61,  102,  103,
- /*  1370 */   120,  105,   15,  120,   17,   18,  120,  120,   21,  120,
- /*  1380 */    23,   75,  120,  120,  120,   28,  120,  120,   31,   32,
- /*  1390 */    33,  120,  120,   36,  120,  120,  120,  120,  120,   82,
- /*  1400 */   120,  120,  120,   86,  120,   88,   89,   50,   91,  120,
- /*  1410 */    53,   54,   55,   56,   57,   98,   99,   60,   61,  102,
- /*  1420 */   103,  120,  105,   15,  120,   17,   18,  120,  120,   21,
- /*  1430 */   120,   23,   75,  120,  120,  120,   28,  120,  120,   31,
- /*  1440 */    32,   33,  120,  120,   36,  120,  120,  120,  120,  120,
- /*  1450 */    82,  120,  120,  120,   86,  120,   88,   89,   50,   91,
- /*  1460 */   120,   53,   54,   55,   56,   57,   98,   99,   60,   61,
- /*  1470 */   102,  103,  120,  105,   15,  120,   17,   18,  120,  120,
- /*  1480 */    21,  120,   23,   75,  120,  120,  120,   28,  120,  120,
- /*  1490 */    31,   32,   33,  120,  120,   36,  120,  120,  120,  120,
- /*  1500 */   120,   82,  120,  120,  120,   86,  120,   88,   89,   50,
- /*  1510 */    91,  120,   53,   54,   55,   56,   57,   98,   99,   60,
- /*  1520 */    61,  102,  103,  120,  105,   15,  120,   17,   18,  120,
- /*  1530 */   120,   21,  120,   23,   75,  120,  120,  120,   28,  120,
- /*  1540 */   120,   31,   32,   33,  120,  120,   36,  120,  120,  120,
- /*  1550 */   120,  120,   82,  120,  120,  120,   86,  120,   88,   89,
- /*  1560 */    50,   91,  120,   53,   54,   55,   56,   57,   98,   99,
- /*  1570 */    60,   61,  102,  103,  120,  105,   15,  120,   17,   18,
- /*  1580 */   120,  120,   21,  120,   23,   75,  120,  120,  120,   28,
- /*  1590 */   120,  120,   31,   32,   33,  120,  120,   36,  120,  120,
- /*  1600 */   120,  120,  120,   82,  120,  120,  120,   86,  120,   88,
- /*  1610 */    89,   50,   91,  120,   53,   54,   55,   56,   57,   98,
- /*  1620 */    99,   60,   61,  102,  103,  120,  105,   15,  120,   17,
- /*  1630 */    18,  120,  120,   21,  120,   23,   75,  120,  120,  120,
- /*  1640 */    28,  120,  120,   31,   32,   33,  120,  120,   36,  120,
- /*  1650 */   120,  120,  120,  120,   82,  120,  120,  120,   86,  120,
- /*  1660 */    88,   89,   50,   91,  120,   53,   54,   55,   56,   57,
- /*  1670 */    98,   99,   60,   61,  102,  103,  120,  105,   15,  120,
- /*  1680 */    17,   18,  120,  120,   21,  120,   23,   75,  120,  120,
- /*  1690 */   120,   28,  120,  120,   31,   32,   33,  120,  120,   36,
- /*  1700 */   120,  120,  120,  120,  120,   82,  120,  120,  120,   86,
- /*  1710 */   120,   88,   89,   50,   91,  120,   53,   54,   55,   56,
- /*  1720 */    57,   98,   99,   60,  120,  102,  103,  120,  105,   15,
- /*  1730 */   120,   17,   18,  120,  120,   21,  120,   23,   75,  120,
- /*  1740 */   120,  120,   28,  120,  120,   31,   32,   33,   16,  120,
- /*  1750 */    36,  120,  120,  120,   22,  120,   24,  120,   26,   27,
- /*  1760 */   120,   29,   87,  120,   50,   90,   34,   53,   54,   55,
- /*  1770 */    56,   57,   97,  120,   60,  100,  101,  120,  120,  120,
- /*  1780 */   120,   49,   50,   51,  120,  120,  120,  120,  113,   75,
- /*  1790 */    58,  120,  120,   87,   62,   82,   90,  120,  120,   86,
- /*  1800 */   120,   88,   89,   97,   91,  120,  100,  101,   76,  120,
- /*  1810 */   120,   98,   99,  120,  120,  102,  103,  120,  105,  113,
- /*  1820 */    82,  120,  120,  120,   86,  120,   88,   89,  120,   91,
- /*  1830 */   120,  120,  120,  120,  120,  120,   98,   99,  120,  120,
- /*  1840 */   102,  103,   82,  105,  120,  120,   86,  120,   88,   89,
- /*  1850 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
- /*  1860 */   120,  120,  102,  103,   82,  105,  120,  120,   86,  120,
- /*  1870 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
- /*  1880 */    98,   99,   82,  120,  102,  103,   86,  105,   88,   89,
- /*  1890 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
- /*  1900 */   120,  120,  102,  103,  120,  105,  120,   82,  120,  120,
- /*  1910 */   120,   86,  120,   88,   89,  120,   91,  120,  120,  120,
- /*  1920 */   120,  120,  120,   98,   99,  120,  120,  102,  103,  120,
- /*  1930 */   105,  120,  120,  120,   10,  120,  120,  120,  120,   15,
- /*  1940 */   120,  120,   82,  120,  120,   21,   86,   23,   88,   89,
- /*  1950 */   120,   91,   28,  120,  120,   31,   32,  120,   98,   99,
- /*  1960 */   120,  120,  102,  103,   82,  105,  120,  120,   86,  120,
- /*  1970 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
- /*  1980 */    98,   99,  120,  120,  102,  103,   82,  105,  120,  120,
- /*  1990 */    86,  120,   88,   89,  120,   91,  120,  120,  120,   75,
- /*  2000 */    76,   77,   98,   99,  120,  120,  102,  103,  120,  105,
- /*  2010 */    82,  120,  120,  120,   86,  120,   88,   89,  120,   91,
- /*  2020 */   120,  120,  120,  120,  120,  120,   98,   99,   82,  120,
- /*  2030 */   102,  103,   86,  105,   88,   89,  120,   91,  120,  120,
- /*  2040 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
- /*  2050 */    86,  105,   88,   89,  120,   91,  120,  120,  120,  120,
- /*  2060 */   120,  120,   98,   99,   82,  120,  102,  103,   86,  105,
- /*  2070 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
- /*  2080 */    98,   99,   82,  120,  102,  103,   86,  105,   88,   89,
- /*  2090 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
- /*  2100 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
- /*  2110 */   120,  120,  120,  120,  120,  120,   98,   99,   82,  120,
- /*  2120 */   102,  103,   86,  105,   88,   89,  120,   91,  120,  120,
- /*  2130 */   120,   10,  120,  120,   98,   99,   15,  120,  102,  103,
- /*  2140 */   120,  105,   21,  120,   23,  120,  120,  120,  120,   28,
- /*  2150 */    82,  120,   31,   32,   86,  120,   88,   89,  120,   91,
- /*  2160 */   120,  120,  120,  120,  120,  120,   98,   99,   82,  120,
- /*  2170 */   102,  103,   86,  105,   88,   89,  120,   91,  120,  120,
- /*  2180 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
- /*  2190 */    86,  105,   88,   89,  120,   91,   75,   76,   77,  120,
- /*  2200 */   120,  120,   98,   99,   82,  120,  102,  103,   86,  105,
- /*  2210 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
- /*  2220 */    98,   99,   82,  120,  102,  103,   86,  105,   88,   89,
- /*  2230 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
- /*  2240 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
- /*  2250 */   120,  120,  120,  120,  120,  120,   98,   99,   82,  120,
- /*  2260 */   102,  103,   86,  105,   88,  120,  120,   91,   82,  120,
- /*  2270 */   120,  120,   86,  120,   88,   99,   82,   91,  102,  103,
- /*  2280 */    86,  105,   88,  120,  120,   91,   82,  120,  102,  103,
- /*  2290 */    86,  105,   88,  120,   82,   91,  102,  103,   86,  105,
- /*  2300 */    88,  120,  120,   91,   82,  120,  102,  103,   86,  105,
- /*  2310 */    88,  120,   82,   91,  102,  103,   86,  105,   88,    1,
- /*  2320 */   120,   91,   82,  120,  102,  103,   86,  105,   88,  120,
- /*  2330 */   120,   91,  102,  103,   16,  105,  120,  120,   20,  120,
- /*  2340 */    22,  120,  102,  103,   87,  105,   87,   90,  120,   90,
- /*  2350 */   120,  120,   87,  120,   97,   90,   97,  100,  101,  100,
- /*  2360 */   101,  120,   97,  120,  120,  100,  101,  120,   50,  120,
- /*  2370 */   113,  120,  113,  120,   87,  120,   58,   90,  113,  120,
- /*  2380 */   120,  120,  120,  120,   97,  120,  120,  100,  101,  120,
- /*  2390 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
- /*  2400 */   113,
+ /*  1070 */    69,   70,   71,   72,   73,   74,   35,   36,   37,   38,
+ /*  1080 */    39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
+ /*  1090 */   120,  120,  120,  120,  120,  120,  120,  120,  120,  120,
+ /*  1100 */   120,  120,  120,  120,   63,   64,   65,   66,   67,   68,
+ /*  1110 */    69,   70,   71,   72,   73,   74,  120,  120,  120,  120,
+ /*  1120 */    15,  120,   17,   18,  120,   82,   21,  120,   23,   86,
+ /*  1130 */   120,   88,  120,   28,   91,  120,   31,   32,   33,  120,
+ /*  1140 */   120,   36,   99,   16,  120,  102,  103,  120,  105,   22,
+ /*  1150 */   120,  120,  120,  120,  120,   50,   29,  120,   53,   54,
+ /*  1160 */    55,   56,   57,  120,  120,   60,   61,   62,  120,  120,
+ /*  1170 */   120,   15,  120,   17,   18,  120,   49,   21,  120,   23,
+ /*  1180 */    75,  120,  120,  120,   28,  120,  120,   31,   32,   33,
+ /*  1190 */   120,  120,   36,  120,  120,  120,  120,  120,   82,  120,
+ /*  1200 */   120,  120,   86,  120,   88,   89,   50,   91,  120,   53,
+ /*  1210 */    54,   55,   56,   57,   98,   99,   60,   61,  102,  103,
+ /*  1220 */   120,  105,   15,  120,   17,   18,  120,  120,   21,  120,
+ /*  1230 */    23,   75,  116,  117,  120,   28,  120,  120,   31,   32,
+ /*  1240 */    33,  120,  120,   36,  120,  120,  120,  120,  120,   82,
+ /*  1250 */   120,  120,  120,   86,  120,   88,   89,   50,   91,  120,
+ /*  1260 */    53,   54,   55,   56,   57,   98,   99,   60,   61,  102,
+ /*  1270 */   103,  120,  105,   15,  120,   17,   18,  120,  120,   21,
+ /*  1280 */   120,   23,   75,  120,  117,  120,   28,  120,  120,   31,
+ /*  1290 */    32,   33,  120,  120,   36,  120,  120,  120,  120,  120,
+ /*  1300 */    82,  120,  120,  120,   86,  120,   88,   89,   50,   91,
+ /*  1310 */   120,   53,   54,   55,   56,   57,   98,   99,   60,   61,
+ /*  1320 */   102,  103,  120,  105,   15,  120,   17,   18,  120,  120,
+ /*  1330 */    21,  120,   23,   75,  120,  120,  120,   28,  120,  120,
+ /*  1340 */    31,   32,   33,  120,  120,   36,  120,  120,  120,  120,
+ /*  1350 */   120,   82,  120,  120,  120,   86,  120,   88,   89,   50,
+ /*  1360 */    91,  120,   53,   54,   55,   56,   57,   98,   99,   60,
+ /*  1370 */    61,  102,  103,  120,  105,   15,  120,   17,   18,  120,
+ /*  1380 */   120,   21,  120,   23,   75,  120,  120,  120,   28,  120,
+ /*  1390 */   120,   31,   32,   33,  120,  120,   36,  120,  120,  120,
+ /*  1400 */   120,  120,   82,  120,  120,  120,   86,  120,   88,   89,
+ /*  1410 */    50,   91,  120,   53,   54,   55,   56,   57,   98,   99,
+ /*  1420 */    60,   61,  102,  103,  120,  105,   15,  120,   17,   18,
+ /*  1430 */   120,  120,   21,  120,   23,   75,  120,  120,  120,   28,
+ /*  1440 */   120,  120,   31,   32,   33,  120,  120,   36,  120,  120,
+ /*  1450 */   120,  120,  120,   82,  120,  120,  120,   86,  120,   88,
+ /*  1460 */    89,   50,   91,  120,   53,   54,   55,   56,   57,   98,
+ /*  1470 */    99,   60,   61,  102,  103,  120,  105,   15,  120,   17,
+ /*  1480 */    18,  120,  120,   21,  120,   23,   75,  120,  120,  120,
+ /*  1490 */    28,  120,  120,   31,   32,   33,  120,  120,   36,  120,
+ /*  1500 */   120,  120,  120,  120,   82,  120,  120,  120,   86,  120,
+ /*  1510 */    88,   89,   50,   91,  120,   53,   54,   55,   56,   57,
+ /*  1520 */    98,   99,   60,   61,  102,  103,  120,  105,   15,  120,
+ /*  1530 */    17,   18,  120,  120,   21,  120,   23,   75,  120,  120,
+ /*  1540 */   120,   28,  120,  120,   31,   32,   33,  120,  120,   36,
+ /*  1550 */   120,  120,  120,  120,  120,   82,  120,  120,  120,   86,
+ /*  1560 */   120,   88,   89,   50,   91,  120,   53,   54,   55,   56,
+ /*  1570 */    57,   98,   99,   60,   61,  102,  103,  120,  105,   15,
+ /*  1580 */   120,   17,   18,  120,  120,   21,  120,   23,   75,  120,
+ /*  1590 */   120,  120,   28,  120,  120,   31,   32,   33,  120,  120,
+ /*  1600 */    36,  120,  120,  120,  120,  120,   82,  120,  120,  120,
+ /*  1610 */    86,  120,   88,   89,   50,   91,  120,   53,   54,   55,
+ /*  1620 */    56,   57,   98,   99,   60,   61,  102,  103,  120,  105,
+ /*  1630 */    15,  120,   17,   18,  120,  120,   21,  120,   23,   75,
+ /*  1640 */   120,  120,  120,   28,  120,  120,   31,   32,   33,  120,
+ /*  1650 */   120,   36,  120,  120,  120,  120,  120,   82,  120,  120,
+ /*  1660 */   120,   86,  120,   88,   89,   50,   91,  120,   53,   54,
+ /*  1670 */    55,   56,   57,   98,   99,   60,  120,  102,  103,  120,
+ /*  1680 */   105,   15,  120,   17,   18,  120,  120,   21,  120,   23,
+ /*  1690 */    75,  120,  120,  120,   28,  120,  120,   31,   32,   33,
+ /*  1700 */    16,  120,   36,  120,  120,  120,   22,  120,   24,  120,
+ /*  1710 */    26,   27,  120,   29,   87,  120,   50,   90,   34,   53,
+ /*  1720 */    54,   55,   56,   57,   97,  120,   60,  100,  101,  120,
+ /*  1730 */   120,  120,  120,   49,   50,   51,  120,  120,  120,  120,
+ /*  1740 */   113,   75,   58,  120,  120,   87,   62,   82,   90,  120,
+ /*  1750 */   120,   86,  120,   88,   89,   97,   91,  120,  100,  101,
+ /*  1760 */    76,  120,  120,   98,   99,  120,  120,  102,  103,  120,
+ /*  1770 */   105,  113,   82,  120,  120,  120,   86,  120,   88,   89,
+ /*  1780 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
+ /*  1790 */   120,  120,  102,  103,   82,  105,  120,  120,   86,  120,
+ /*  1800 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
+ /*  1810 */    98,   99,  120,  120,  102,  103,   82,  105,  120,  120,
+ /*  1820 */    86,  120,   88,   89,  120,   91,  120,  120,  120,  120,
+ /*  1830 */   120,  120,   98,   99,   82,  120,  102,  103,   86,  105,
+ /*  1840 */    88,   89,  120,   91,  120,  120,  120,  120,  120,  120,
+ /*  1850 */    98,   99,    1,  120,  102,  103,  120,  105,  120,   82,
+ /*  1860 */   120,  120,  120,   86,  120,   88,   89,   16,   91,  120,
+ /*  1870 */   120,   20,  120,   22,  120,   98,   99,   82,  120,  102,
+ /*  1880 */   103,   86,  105,   88,   89,  120,   91,  120,  120,  120,
+ /*  1890 */   120,  120,  120,   98,   99,  120,  120,  102,  103,   82,
+ /*  1900 */   105,   50,  120,   86,  120,   88,   89,  120,   91,   58,
+ /*  1910 */   120,  120,  120,  120,  120,   98,   99,   82,  120,  102,
+ /*  1920 */   103,   86,  105,   88,   89,  120,   91,  120,  120,  120,
+ /*  1930 */   120,  120,  120,   98,   99,  120,  120,  102,  103,  120,
+ /*  1940 */   105,  120,   82,  120,  120,  120,   86,  120,   88,   89,
+ /*  1950 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
+ /*  1960 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
+ /*  1970 */   120,  120,  120,  120,  120,  120,   98,   99,  120,  120,
+ /*  1980 */   102,  103,   82,  105,  120,  120,   86,  120,   88,   89,
+ /*  1990 */   120,   91,  120,  120,  120,  120,  120,  120,   98,   99,
+ /*  2000 */    82,  120,  102,  103,   86,  105,   88,   89,  120,   91,
+ /*  2010 */   120,  120,  120,  120,  120,  120,   98,   99,  120,  120,
+ /*  2020 */   102,  103,  120,  105,  120,   82,  120,  120,  120,   86,
+ /*  2030 */   120,   88,   89,  120,   91,  120,  120,  120,  120,  120,
+ /*  2040 */   120,   98,   99,   82,  120,  102,  103,   86,  105,   88,
+ /*  2050 */    89,  120,   91,  120,  120,  120,  120,  120,  120,   98,
+ /*  2060 */    99,  120,  120,  102,  103,   82,  105,  120,  120,   86,
+ /*  2070 */   120,   88,   89,  120,   91,  120,  120,  120,  120,  120,
+ /*  2080 */   120,   98,   99,   82,  120,  102,  103,   86,  105,   88,
+ /*  2090 */    89,  120,   91,  120,  120,  120,  120,  120,  120,   98,
+ /*  2100 */    99,  120,  120,  102,  103,  120,  105,  120,   82,  120,
+ /*  2110 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
+ /*  2120 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
+ /*  2130 */    86,  105,   88,   89,  120,   91,  120,  120,  120,  120,
+ /*  2140 */   120,  120,   98,   99,  120,  120,  102,  103,   82,  105,
+ /*  2150 */   120,  120,   86,  120,   88,   89,  120,   91,  120,  120,
+ /*  2160 */   120,  120,  120,  120,   98,   99,   82,  120,  102,  103,
+ /*  2170 */    86,  105,   88,   89,  120,   91,  120,  120,  120,  120,
+ /*  2180 */   120,  120,   98,   99,  120,  120,  102,  103,  120,  105,
+ /*  2190 */   120,   82,  120,  120,  120,   86,  120,   88,   89,  120,
+ /*  2200 */    91,  120,  120,  120,  120,  120,  120,   98,   99,   82,
+ /*  2210 */   120,  102,  103,   86,  105,   88,   89,  120,   91,  120,
+ /*  2220 */   120,  120,  120,  120,  120,   98,   99,  120,  120,  102,
+ /*  2230 */   103,   82,  105,  120,  120,   86,  120,   88,   89,  120,
+ /*  2240 */    91,  120,  120,  120,  120,  120,  120,   98,   99,   82,
+ /*  2250 */   120,  102,  103,   86,  105,   88,   82,  120,   91,  120,
+ /*  2260 */    86,  120,   88,  120,  120,   91,   99,  120,  120,  102,
+ /*  2270 */   103,  120,  105,  120,   82,  120,  102,  103,   86,  105,
+ /*  2280 */    88,   82,  120,   91,  120,   86,  120,   88,  120,  120,
+ /*  2290 */    91,  120,  120,  120,  102,  103,  120,  105,  120,   82,
+ /*  2300 */   120,  102,  103,   86,  105,   88,  120,  120,   91,   82,
+ /*  2310 */   120,  120,  120,   86,  120,   88,  120,  120,   91,  102,
+ /*  2320 */   103,  120,  105,  120,  120,  120,  120,  120,  120,  102,
+ /*  2330 */   103,   82,  105,  120,  120,   86,  120,   88,   82,  120,
+ /*  2340 */    91,  120,   86,  120,   88,  120,  120,   91,  120,  120,
+ /*  2350 */    87,  102,  103,   90,  105,  120,  120,  120,  102,  103,
+ /*  2360 */    97,  105,  120,  100,  101,   87,  120,   87,   90,  120,
+ /*  2370 */    90,  120,  120,  120,  120,   97,  113,   97,  100,  101,
+ /*  2380 */   100,  101,  120,  120,  120,  120,  120,  120,  120,  120,
+ /*  2390 */   120,  113,  120,  113,
 );
-    const YY_SHIFT_USE_DFLT = -32;
+    const YY_SHIFT_USE_DFLT = -34;
     const YY_SHIFT_MAX = 233;
     static public $yy_shift_ofst = array(
- /*     0 */     1, 1306, 1204, 1204, 1204, 1204, 1612, 1306, 1153, 1204,
- /*    10 */  1204, 1204, 1204, 1204, 1561, 1204, 1408, 1204, 1204, 1204,
- /*    20 */  1204, 1204, 1510, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
- /*    30 */  1204, 1204, 1204, 1357, 1459, 1204, 1204, 1510, 1408, 1204,
- /*    40 */  1204, 1204, 1255, 1255, 1663, 1663, 1663, 1663, 1714, 1663,
- /*    50 */  1663,  221,  147,   -1,   73,  295,  295,  295,  369,  491,
- /*    60 */   443,  613,  565,  905,  809,  857,  761,  953, 1001,  687,
- /*    70 */  1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049,
- /*    80 */  1049, 1049, 1049, 1049, 1049, 1049, 1089, 1089, 2318,   59,
- /*    90 */   281,    1, 1924,  368,  294,  219,  335,  159,  380,  159,
- /*   100 */   281,  281,  281, 2121,   44,  143,  181,   -2,  183,  145,
- /*   110 */   329,  261,  408,  482,  408,  576,  440,  408,  408,  438,
- /*   120 */   457,  408,  408,  408,  581,  507,  408,  408,  438,  507,
- /*   130 */   648,  648,  377,  647,  656,  217,  190,  157,  479,  483,
- /*   140 */   527,  480,  148,  525,  528,  405,  381,   39,  402,  455,
- /*   150 */   441,  451,  403,  107,  502,  148,  148,  148,  567,  148,
- /*   160 */   556,  564,  529,  575,  573,  304,  648,  670,  724,  544,
- /*   170 */   677,  677,  648,  717,  670,  648,  656,  -32,  -32,  -32,
- /*   180 */   -32, 1732,   72,  110, 1175,  116,  -31,  307,  257,   48,
- /*   190 */   530,   41,   53,  220,   90,  223,  306,  200,   71,  220,
- /*   200 */    33,  623,  571,  305,  588,  591,  626,  640,  544,  598,
- /*   210 */   414,  628,  436,  568,  601,  526,  570,  535,  452,  404,
- /*   220 */   625,  592,  559,  572,   89,   28,    8,  237,  309,  179,
- /*   230 */   326,  290,  204,  225,
+ /*     0 */     1, 1309, 1309, 1156, 1360, 1156, 1156, 1105, 1156, 1156,
+ /*    10 */  1156, 1462, 1513, 1156, 1156, 1564, 1156, 1156, 1156, 1156,
+ /*    20 */  1513, 1156, 1156, 1411, 1156, 1156, 1156, 1156, 1156, 1156,
+ /*    30 */  1156, 1156, 1156, 1156, 1207, 1156, 1156, 1156, 1156, 1411,
+ /*    40 */  1156, 1156, 1258, 1258, 1666, 1666, 1615, 1666, 1666, 1666,
+ /*    50 */  1666,  221,   73,  147,   -1,  783,  783,  783,  953,  905,
+ /*    60 */   831,  539,  709,  343,  269,  391,  661,  587,  465, 1001,
+ /*    70 */  1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ /*    80 */  1001, 1001, 1001, 1001, 1001, 1001, 1001, 1041, 1041, 1851,
+ /*    90 */   599,    1,  541,  456,  220,   -2,  109,  402,  109,  311,
+ /*   100 */   599,  599,  467,   44,  115,  181,  379,  306,    4,  143,
+ /*   110 */   258,   59,  335,  335,  335,  405,  675,  576,  335,  578,
+ /*   120 */   335,  575,  335,  335,  504,  405,  575,  626,  625,  335,
+ /*   130 */   335,  695,  695,  701,  699,  700,   63,   83,  231,  425,
+ /*   140 */   427,  475,  403,  471,  429,  -33,  256,  182,  159,   39,
+ /*   150 */   210,  380,  255,  -33,  390,  -33,  148,  -33,  532,  530,
+ /*   160 */   505,  501,  544,  -33,  549,  378,  498,  716,  730,  695,
+ /*   170 */   695,  468,  718,  718,  701,  737,  737,  695,  -34,  -34,
+ /*   180 */   -34,  -34, 1684,  110, 1127,  190,  -31,  305,  187,  281,
+ /*   190 */   223,  304,  313,  123,  448,  268,  492,  267,  151,  319,
+ /*   200 */   163,  342,  432,  319,  678,  642,  632,  594,  627,  132,
+ /*   210 */   623,  646,  649,  676,  672,  671,  619,  631,  534,  553,
+ /*   220 */   288,  362,  302,  195,  152,  212,  394,  468,  472,  421,
+ /*   230 */   569,  458,  474,  455,
 );
-    const YY_REDUCE_USE_DFLT = -81;
-    const YY_REDUCE_MAX = 180;
+    const YY_REDUCE_USE_DFLT = -93;
+    const YY_REDUCE_MAX = 181;
     static public $yy_reduce_ofst = array(
- /*     0 */    22, 1164,  289,   68,  142,  216,   -6, 1215, 2104, 1470,
- /*    10 */  1266,  607, 1904, 1738, 1368, 1782, 1760, 1713, 1800, 1825,
- /*    20 */  1882, 1860, 1623, 1572,  681,  485,  363, 1317, 1521, 1946,
- /*    30 */  1419, 1928, 2122, 2158, 2140, 1982, 2000, 2018, 2036, 1964,
- /*    40 */  2086, 2068, 2176, 1091, 2230, 2186, 2204, 2240, 2212, 2194,
- /*    50 */  2222, 1675, 2259, 2287, 1706, 2265, 1706, 2257,  137,  137,
- /*    60 */   137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
- /*    70 */   137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
- /*    80 */   137,  137,  137,  137,  137,  137,  137,  137,  184,   38,
- /*    90 */   139,  -80,  -65,  214,  285,  239,  359,  361,  260,  292,
- /*   100 */   407,  333,  406,  543,  391,  415,  612,  578,  415,  319,
- /*   110 */   578,  577,  605,  606,  599,  488,  319,  205,  445,  466,
- /*   120 */   596,  532,   47,  679,  599,  641,  680,  608,  511,  599,
- /*   130 */   459,  319,  287,  -69,   86,  579,  562,  562,  569,  569,
- /*   140 */   569,  569,  560,  569,  569,  569,  569,  569,  569,  569,
- /*   150 */   569,  569,  569,  569,  569,  560,  560,  560,  557,  560,
- /*   160 */   569,  569,  569,  569,  569,  569,  561,  600,  635,  586,
- /*   170 */   627,  603,  561,  604,  600,  561,  610,  262,  140,  109,
- /*   180 */   101,
+ /*     0 */     7, 1116, 1167,  263,  142,   68,   -6, 2084, 1575, 1218,
+ /*    10 */  1320, 1961, 1817, 1473, 1835, 1795, 1752, 1777, 1860, 1878,
+ /*    20 */  1943, 1918, 1900, 1734, 1712, 1269,  704,  826, 1371, 1422,
+ /*    30 */  1690, 1665, 2001, 1524, 1983, 2149, 2109, 2066, 2127, 2044,
+ /*    40 */  2026,  581, 2167, 1043, 2249, 2199, 2192, 2174, 2256, 2227,
+ /*    50 */  2217,  383, 1658, 1627, 2263, 2278,  383, 2280,  257,  257,
+ /*    60 */   257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+ /*    70 */   257,  257,  257,  257,  257,  257,  257,  257,  257,  257,
+ /*    80 */   257,  257,  257,  257,  257,  257,  257,  257,  257,   38,
+ /*    90 */    65,  -80,  157,  259,  460,  145,   -3,  428,  462,  191,
+ /*   100 */   355,  502,  442,  215,  291,  577,  466,  264,  550,  291,
+ /*   110 */   466,  209,  573,  450,  580,  580,  308,  580,  628,  264,
+ /*   120 */   663,  486,  506,  570,  579,  692,  535,  595,  580,   71,
+ /*   130 */   -78,  264,  510,   11,  388,  382,  611,  611,  609,  615,
+ /*   140 */   615,  615,  615,  615,  615,  607,  615,  615,  615,  615,
+ /*   150 */   615,  615,  615,  607,  610,  607,  600,  607,  615,  615,
+ /*   160 */   615,  615,  615,  607,  600,  615,  615,  600,  677,   13,
+ /*   170 */    13,  636,  644,  647,  645,  648,  648,   13,  -29,  -92,
+ /*   180 */   -23,   -7,
 );
     static public $yyExpectedTokens = array(
         /* 0 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 23, 28, 31, 32, ),
@@ -765,8 +763,8 @@ static public $yy_action = array(
         /* 4 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
         /* 5 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
         /* 6 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
-        /* 7 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
-        /* 8 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 62, 75, ),
+        /* 7 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 62, 75, ),
+        /* 8 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
         /* 9 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
         /* 10 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
         /* 11 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 61, 75, ),
@@ -809,25 +807,25 @@ static public $yy_action = array(
         /* 48 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
         /* 49 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
         /* 50 */ array(15, 17, 18, 21, 23, 28, 31, 32, 33, 36, 50, 53, 54, 55, 56, 57, 60, 75, ),
-        /* 51 */ array(1, 22, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 52 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 51 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 52 */ array(1, 22, 27, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 53 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 54 */ array(1, 16, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 55 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 56 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 57 */ array(1, 22, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 58 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 59 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 60 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 61 */ array(1, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 62 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 63 */ array(1, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 64 */ array(1, 2, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 65 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 58 */ array(1, 29, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 59 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 60 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, ),
+        /* 61 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 62 */ array(1, 2, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 63 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 64 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 65 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 66 */ array(1, 16, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 67 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 68 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, ),
-        /* 69 */ array(1, 24, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 67 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 68 */ array(1, 24, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 69 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 70 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 71 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 72 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
@@ -844,66 +842,66 @@ static public $yy_action = array(
         /* 83 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 84 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 85 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 86 */ array(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 86 */ array(1, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
         /* 87 */ array(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
-        /* 88 */ array(1, 16, 20, 22, 50, 58, ),
-        /* 89 */ array(1, 16, 20, 22, ),
+        /* 88 */ array(35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, ),
+        /* 89 */ array(1, 16, 20, 22, 50, 58, ),
         /* 90 */ array(1, 22, ),
         /* 91 */ array(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 15, 21, 23, 28, 31, 32, ),
         /* 92 */ array(10, 15, 21, 23, 28, 31, 32, 75, 76, 77, ),
         /* 93 */ array(15, 18, 22, 30, ),
         /* 94 */ array(15, 18, 22, 30, ),
         /* 95 */ array(20, 56, 61, ),
-        /* 96 */ array(17, 18, 60, ),
-        /* 97 */ array(15, 18, 22, ),
-        /* 98 */ array(1, 16, 22, ),
-        /* 99 */ array(15, 18, 22, ),
+        /* 96 */ array(15, 18, 22, ),
+        /* 97 */ array(1, 16, 22, ),
+        /* 98 */ array(15, 18, 22, ),
+        /* 99 */ array(17, 18, 60, ),
         /* 100 */ array(1, 22, ),
         /* 101 */ array(1, 22, ),
-        /* 102 */ array(1, 22, ),
-        /* 103 */ array(10, 15, 21, 23, 28, 31, 32, 75, 76, 77, ),
-        /* 104 */ array(4, 5, 6, 7, 8, 12, 13, 14, ),
-        /* 105 */ array(15, 18, 19, 59, ),
-        /* 106 */ array(15, 18, 19, 25, ),
-        /* 107 */ array(16, 22, 25, ),
-        /* 108 */ array(15, 18, 59, ),
-        /* 109 */ array(19, 20, 58, ),
+        /* 102 */ array(10, 15, 21, 23, 28, 31, 32, 75, 76, 77, ),
+        /* 103 */ array(4, 5, 6, 7, 8, 12, 13, 14, ),
+        /* 104 */ array(15, 18, 19, 59, ),
+        /* 105 */ array(15, 18, 19, 25, ),
+        /* 106 */ array(16, 22, 25, ),
+        /* 107 */ array(19, 20, 58, ),
+        /* 108 */ array(16, 22, 49, ),
+        /* 109 */ array(15, 18, 59, ),
         /* 110 */ array(16, 22, 25, ),
-        /* 111 */ array(16, 22, 49, ),
+        /* 111 */ array(1, 16, 20, ),
         /* 112 */ array(15, 18, ),
         /* 113 */ array(15, 18, ),
         /* 114 */ array(15, 18, ),
-        /* 115 */ array(16, 22, ),
-        /* 116 */ array(20, 58, ),
+        /* 115 */ array(15, 18, ),
+        /* 116 */ array(1, 16, ),
         /* 117 */ array(15, 18, ),
         /* 118 */ array(15, 18, ),
-        /* 119 */ array(17, 18, ),
+        /* 119 */ array(20, 58, ),
         /* 120 */ array(15, 18, ),
-        /* 121 */ array(15, 18, ),
+        /* 121 */ array(17, 18, ),
         /* 122 */ array(15, 18, ),
         /* 123 */ array(15, 18, ),
         /* 124 */ array(15, 18, ),
         /* 125 */ array(15, 18, ),
-        /* 126 */ array(15, 18, ),
-        /* 127 */ array(15, 18, ),
-        /* 128 */ array(17, 18, ),
+        /* 126 */ array(17, 18, ),
+        /* 127 */ array(16, 22, ),
+        /* 128 */ array(15, 18, ),
         /* 129 */ array(15, 18, ),
-        /* 130 */ array(20, ),
+        /* 130 */ array(15, 18, ),
         /* 131 */ array(20, ),
-        /* 132 */ array(22, ),
-        /* 133 */ array(22, ),
-        /* 134 */ array(17, ),
-        /* 135 */ array(15, 17, 18, ),
+        /* 132 */ array(20, ),
+        /* 133 */ array(17, ),
+        /* 134 */ array(22, ),
+        /* 135 */ array(22, ),
         /* 136 */ array(15, 18, 59, ),
         /* 137 */ array(15, 18, 19, ),
-        /* 138 */ array(16, 22, ),
+        /* 138 */ array(15, 17, 18, ),
         /* 139 */ array(16, 22, ),
         /* 140 */ array(16, 22, ),
         /* 141 */ array(16, 22, ),
-        /* 142 */ array(56, 61, ),
+        /* 142 */ array(16, 22, ),
         /* 143 */ array(16, 22, ),
         /* 144 */ array(16, 22, ),
-        /* 145 */ array(16, 22, ),
+        /* 145 */ array(56, 61, ),
         /* 146 */ array(16, 22, ),
         /* 147 */ array(16, 22, ),
         /* 148 */ array(16, 22, ),
@@ -911,87 +909,87 @@ static public $yy_action = array(
         /* 150 */ array(16, 22, ),
         /* 151 */ array(16, 22, ),
         /* 152 */ array(16, 22, ),
-        /* 153 */ array(16, 22, ),
-        /* 154 */ array(16, 22, ),
+        /* 153 */ array(56, 61, ),
+        /* 154 */ array(15, 50, ),
         /* 155 */ array(56, 61, ),
-        /* 156 */ array(56, 61, ),
+        /* 156 */ array(1, 16, ),
         /* 157 */ array(56, 61, ),
-        /* 158 */ array(15, 50, ),
-        /* 159 */ array(56, 61, ),
+        /* 158 */ array(16, 22, ),
+        /* 159 */ array(16, 22, ),
         /* 160 */ array(16, 22, ),
         /* 161 */ array(16, 22, ),
         /* 162 */ array(16, 22, ),
-        /* 163 */ array(16, 22, ),
-        /* 164 */ array(16, 22, ),
+        /* 163 */ array(56, 61, ),
+        /* 164 */ array(1, 16, ),
         /* 165 */ array(16, 22, ),
-        /* 166 */ array(20, ),
-        /* 167 */ array(2, ),
+        /* 166 */ array(16, 22, ),
+        /* 167 */ array(1, ),
         /* 168 */ array(13, ),
-        /* 169 */ array(50, ),
-        /* 170 */ array(22, ),
-        /* 171 */ array(22, ),
-        /* 172 */ array(20, ),
-        /* 173 */ array(1, ),
-        /* 174 */ array(2, ),
-        /* 175 */ array(20, ),
-        /* 176 */ array(17, ),
-        /* 177 */ array(),
+        /* 169 */ array(20, ),
+        /* 170 */ array(20, ),
+        /* 171 */ array(50, ),
+        /* 172 */ array(22, ),
+        /* 173 */ array(22, ),
+        /* 174 */ array(17, ),
+        /* 175 */ array(2, ),
+        /* 176 */ array(2, ),
+        /* 177 */ array(20, ),
         /* 178 */ array(),
         /* 179 */ array(),
         /* 180 */ array(),
-        /* 181 */ array(16, 22, 24, 26, 27, 29, 34, 49, 50, 51, 58, 62, 76, ),
-        /* 182 */ array(16, 19, 22, 50, 58, ),
-        /* 183 */ array(16, 22, 50, 58, ),
+        /* 181 */ array(),
+        /* 182 */ array(16, 22, 24, 26, 27, 29, 34, 49, 50, 51, 58, 62, 76, ),
+        /* 183 */ array(16, 19, 22, 50, 58, ),
         /* 184 */ array(16, 22, 29, 49, ),
         /* 185 */ array(15, 17, 18, 33, ),
         /* 186 */ array(50, 56, 58, 62, ),
-        /* 187 */ array(16, 22, 49, ),
+        /* 187 */ array(16, 22, 50, 58, ),
         /* 188 */ array(16, 22, 49, ),
-        /* 189 */ array(30, 50, 58, ),
-        /* 190 */ array(16, 49, ),
-        /* 191 */ array(18, 59, ),
-        /* 192 */ array(24, 34, ),
-        /* 193 */ array(50, 58, ),
-        /* 194 */ array(34, 62, ),
-        /* 195 */ array(30, 49, ),
-        /* 196 */ array(2, 19, ),
-        /* 197 */ array(25, 76, ),
-        /* 198 */ array(19, 56, ),
+        /* 189 */ array(16, 22, 49, ),
+        /* 190 */ array(30, 50, 58, ),
+        /* 191 */ array(19, 56, ),
+        /* 192 */ array(18, 59, ),
+        /* 193 */ array(30, 49, ),
+        /* 194 */ array(2, 19, ),
+        /* 195 */ array(34, 51, ),
+        /* 196 */ array(24, 34, ),
+        /* 197 */ array(34, 51, ),
+        /* 198 */ array(25, 76, ),
         /* 199 */ array(50, 58, ),
-        /* 200 */ array(51, ),
-        /* 201 */ array(22, ),
-        /* 202 */ array(49, ),
-        /* 203 */ array(50, ),
-        /* 204 */ array(33, ),
-        /* 205 */ array(33, ),
+        /* 200 */ array(34, 62, ),
+        /* 201 */ array(34, 51, ),
+        /* 202 */ array(16, 49, ),
+        /* 203 */ array(50, 58, ),
+        /* 204 */ array(17, ),
+        /* 205 */ array(2, ),
         /* 206 */ array(17, ),
         /* 207 */ array(2, ),
-        /* 208 */ array(50, ),
-        /* 209 */ array(18, ),
-        /* 210 */ array(17, ),
+        /* 208 */ array(18, ),
+        /* 209 */ array(33, ),
+        /* 210 */ array(18, ),
         /* 211 */ array(18, ),
         /* 212 */ array(17, ),
-        /* 213 */ array(25, ),
-        /* 214 */ array(17, ),
-        /* 215 */ array(22, ),
-        /* 216 */ array(56, ),
-        /* 217 */ array(17, ),
-        /* 218 */ array(18, ),
+        /* 213 */ array(18, ),
+        /* 214 */ array(18, ),
+        /* 215 */ array(18, ),
+        /* 216 */ array(52, ),
+        /* 217 */ array(62, ),
+        /* 218 */ array(33, ),
         /* 219 */ array(18, ),
-        /* 220 */ array(16, ),
-        /* 221 */ array(52, ),
-        /* 222 */ array(60, ),
-        /* 223 */ array(51, ),
-        /* 224 */ array(18, ),
-        /* 225 */ array(2, ),
-        /* 226 */ array(18, ),
-        /* 227 */ array(62, ),
-        /* 228 */ array(18, ),
-        /* 229 */ array(18, ),
-        /* 230 */ array(18, ),
-        /* 231 */ array(60, ),
-        /* 232 */ array(51, ),
-        /* 233 */ array(26, ),
+        /* 220 */ array(60, ),
+        /* 221 */ array(60, ),
+        /* 222 */ array(22, ),
+        /* 223 */ array(56, ),
+        /* 224 */ array(49, ),
+        /* 225 */ array(17, ),
+        /* 226 */ array(50, ),
+        /* 227 */ array(50, ),
+        /* 228 */ array(22, ),
+        /* 229 */ array(25, ),
+        /* 230 */ array(26, ),
+        /* 231 */ array(18, ),
+        /* 232 */ array(18, ),
+        /* 233 */ array(17, ),
         /* 234 */ array(),
         /* 235 */ array(),
         /* 236 */ array(),
@@ -1132,51 +1130,50 @@ static public $yy_action = array(
         /* 371 */ array(),
         /* 372 */ array(),
         /* 373 */ array(),
-        /* 374 */ array(),
 );
     static public $yy_default = array(
- /*     0 */   378,  554,  525,  525,  525,  525,  571,  571,  571,  571,
- /*    10 */   571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
- /*    20 */   571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
- /*    30 */   571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
- /*    40 */   571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
- /*    50 */   571,  436,  571,  571,  571,  436,  436,  436,  571,  571,
- /*    60 */   571,  524,  571,  441,  571,  571,  571,  571,  571,  571,
- /*    70 */   464,  467,  458,  557,  556,  420,  463,  555,  446,  441,
- /*    80 */   468,  460,  455,  438,  443,  459,  471,  472,  483,  571,
- /*    90 */   436,  375,  571,  436,  436,  537,  571,  436,  454,  436,
- /*   100 */   436,  436,  436,  571,  571,  498,  571,  473,  498,  491,
- /*   110 */   473,  447,  571,  571,  571,  571,  491,  571,  571,  571,
- /*   120 */   571,  571,  498,  571,  571,  571,  571,  571,  571,  571,
- /*   130 */   534,  491,  436,  436,  571,  571,  499,  571,  571,  571,
- /*   140 */   571,  571,  516,  571,  571,  571,  571,  571,  571,  571,
- /*   150 */   571,  571,  571,  571,  571,  518,  496,  515,  498,  517,
- /*   160 */   571,  571,  571,  571,  571,  571,  512,  527,  393,  498,
- /*   170 */   570,  570,  535,  454,  526,  538,  571,  531,  498,  531,
- /*   180 */   498,  449,  483,  483,  447,  571,  483,  447,  447,  483,
- /*   190 */   447,  571,  571,  483,  571,  447,  510,  473,  479,  469,
- /*   200 */   571,  571,  447,  536,  481,  571,  571,  510,  510,  571,
- /*   210 */   571,  571,  571,  473,  571,  571,  479,  571,  571,  571,
- /*   220 */   571,  485,  571,  571,  571,  510,  571,  571,  571,  571,
- /*   230 */   571,  571,  571,  444,  495,  552,  421,  451,  551,  376,
- /*   240 */   422,  507,  569,  504,  553,  445,  506,  485,  423,  450,
- /*   250 */   533,  532,  522,  433,  511,  417,  418,  523,  427,  505,
- /*   260 */   520,  503,  470,  519,  521,  561,  428,  494,  550,  430,
- /*   270 */   429,  431,  432,  530,  510,  509,  419,  435,  424,  425,
- /*   280 */   426,  477,  474,  449,  448,  492,  497,  500,  488,  482,
- /*   290 */   475,  476,  478,  480,  416,  415,  386,  385,  387,  388,
- /*   300 */   389,  384,  383,  379,  377,  380,  381,  382,  390,  391,
- /*   310 */   400,  399,  401,  402,  434,  398,  397,  392,  394,  395,
- /*   320 */   396,  508,  501,  406,  566,  407,  408,  409,  405,  404,
- /*   330 */   493,  490,  514,  403,  565,  513,  410,  563,  560,  562,
- /*   340 */   564,  567,  559,  558,  411,  412,  414,  413,  453,  549,
- /*   350 */   486,  457,  487,  489,  461,  456,  529,  502,  452,  484,
- /*   360 */   528,  462,  465,  545,  544,  546,  547,  548,  543,  542,
- /*   370 */   466,  539,  540,  541,  568,
+ /*     0 */   377,  553,  570,  524,  570,  524,  524,  570,  570,  570,
+ /*    10 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+ /*    20 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+ /*    30 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+ /*    40 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
+ /*    50 */   570,  570,  435,  570,  570,  435,  435,  435,  440,  570,
+ /*    60 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  437,
+ /*    70 */   442,  445,  523,  522,  554,  454,  419,  467,  462,  459,
+ /*    80 */   466,  555,  458,  457,  440,  556,  463,  470,  471,  482,
+ /*    90 */   435,  374,  570,  435,  435,  536,  435,  453,  435,  570,
+ /*   100 */   435,  435,  570,  570,  497,  570,  472,  490,  446,  497,
+ /*   110 */   472,  570,  570,  570,  570,  570,  570,  570,  570,  490,
+ /*   120 */   570,  570,  570,  570,  570,  570,  570,  570,  570,  497,
+ /*   130 */   570,  490,  533,  570,  435,  435,  498,  570,  570,  570,
+ /*   140 */   570,  570,  570,  570,  570,  515,  570,  570,  570,  570,
+ /*   150 */   570,  570,  570,  514,  497,  517,  570,  516,  570,  570,
+ /*   160 */   570,  570,  570,  495,  570,  570,  570,  453,  392,  534,
+ /*   170 */   537,  497,  569,  569,  570,  526,  525,  511,  497,  497,
+ /*   180 */   530,  530,  448,  482,  446,  570,  482,  482,  446,  446,
+ /*   190 */   482,  478,  570,  446,  509,  570,  570,  570,  472,  482,
+ /*   200 */   570,  570,  446,  468,  570,  509,  570,  509,  570,  480,
+ /*   210 */   570,  570,  570,  570,  570,  570,  484,  570,  570,  570,
+ /*   220 */   570,  570,  570,  478,  446,  570,  535,  509,  570,  472,
+ /*   230 */   443,  570,  570,  570,  519,  469,  416,  509,  417,  542,
+ /*   240 */   531,  422,  477,  449,  532,  543,  428,  520,  484,  376,
+ /*   250 */   461,  503,  375,  505,  546,  460,  425,  544,  431,  508,
+ /*   260 */   545,  504,  506,  502,  432,  529,  538,  464,  539,  384,
+ /*   270 */   381,  540,  383,  434,  430,  444,  568,  382,  450,  420,
+ /*   280 */   427,  424,  378,  474,  385,  510,  465,  386,  473,  541,
+ /*   290 */   429,  380,  421,  476,  426,  379,  475,  547,  398,  406,
+ /*   300 */   499,  405,  489,  507,  492,  399,  407,  397,  414,  409,
+ /*   310 */   410,  496,  512,  396,  486,  408,  565,  404,  513,  456,
+ /*   320 */   400,  455,  528,  433,  527,  401,  418,  483,  501,  403,
+ /*   330 */   500,  485,  451,  402,  564,  491,  411,  487,  452,  521,
+ /*   340 */   390,  551,  550,  391,  552,  549,  481,  493,  494,  388,
+ /*   350 */   479,  518,  389,  548,  415,  393,  423,  558,  559,  557,
+ /*   360 */   412,  448,  413,  447,  395,  394,  567,  560,  488,  566,
+ /*   370 */   563,  562,  561,  387,
 );
     const YYNOCODE = 121;
     const YYSTACKDEPTH = 100;
-    const YYNSTATE = 375;
+    const YYNSTATE = 374;
     const YYNRULE = 196;
     const YYERRORSYMBOL = 78;
     const YYERRSYMDT = 'yy0';
@@ -1296,9 +1293,9 @@ static public $yy_action = array(
  /*  53 */ "smartytag ::= LDELFOREACH SPACE expr AS DOLLAR varvar APTR DOLLAR varvar attributes RDEL",
  /*  54 */ "smartytag ::= SMARTYBLOCKCHILD",
  /*  55 */ "smartytag ::= LDELSLASH ID RDEL",
- /*  56 */ "smartytag ::= LDELSLASH ID attributes RDEL",
- /*  57 */ "smartytag ::= LDELSLASH ID modifierlist attributes RDEL",
- /*  58 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",
+ /*  56 */ "smartytag ::= LDELSLASH ID modifierlist RDEL",
+ /*  57 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",
+ /*  58 */ "smartytag ::= LDELSLASH ID PTR ID modifierlist RDEL",
  /*  59 */ "attributes ::= attributes attribute",
  /*  60 */ "attributes ::= attribute",
  /*  61 */ "attributes ::=",
@@ -1388,7 +1385,7 @@ static public $yy_action = array(
  /* 145 */ "function ::= ID OPENP params CLOSEP",
  /* 146 */ "method ::= ID OPENP params CLOSEP",
  /* 147 */ "method ::= DOLLAR ID OPENP params CLOSEP",
- /* 148 */ "params ::= expr COMMA params",
+ /* 148 */ "params ::= params COMMA expr",
  /* 149 */ "params ::= expr",
  /* 150 */ "params ::=",
  /* 151 */ "modifierlist ::= modifierlist modifier modparameters",
@@ -1695,7 +1692,7 @@ static public $yy_action = array(
 
     $this->internalError = true;
     $this->compiler->trigger_template_error("Stack overflow in template parser");
-#line 1694 "smarty_internal_templateparser.php"
+#line 1691 "smarty_internal_templateparser.php"
             return;
         }
         $yytos = new TP_yyStackEntry;
@@ -1774,7 +1771,7 @@ static public $yy_action = array(
   array( 'lhs' => 82, 'rhs' => 3 ),
   array( 'lhs' => 82, 'rhs' => 4 ),
   array( 'lhs' => 82, 'rhs' => 5 ),
-  array( 'lhs' => 82, 'rhs' => 5 ),
+  array( 'lhs' => 82, 'rhs' => 6 ),
   array( 'lhs' => 87, 'rhs' => 2 ),
   array( 'lhs' => 87, 'rhs' => 1 ),
   array( 'lhs' => 87, 'rhs' => 0 ),
@@ -1978,7 +1975,6 @@ static public $yy_action = array(
         46 => 46,
         66 => 46,
         67 => 46,
-        149 => 46,
         161 => 46,
         182 => 46,
         47 => 47,
@@ -1996,8 +1992,10 @@ static public $yy_action = array(
         59 => 59,
         60 => 60,
         69 => 60,
+        149 => 60,
         153 => 60,
         61 => 61,
+        150 => 61,
         62 => 62,
         63 => 63,
         64 => 63,
@@ -2071,7 +2069,6 @@ static public $yy_action = array(
         146 => 146,
         147 => 147,
         148 => 148,
-        150 => 150,
         151 => 151,
         152 => 152,
         154 => 154,
@@ -2113,10 +2110,10 @@ static public $yy_action = array(
     );
 #line 95 "smarty_internal_templateparser.y"
     function yy_r0(){ $this->_retvalue = $this->root_buffer->to_smarty_php();     }
-#line 2112 "smarty_internal_templateparser.php"
+#line 2109 "smarty_internal_templateparser.php"
 #line 101 "smarty_internal_templateparser.y"
     function yy_r1(){ $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor);     }
-#line 2115 "smarty_internal_templateparser.php"
+#line 2112 "smarty_internal_templateparser.php"
 #line 113 "smarty_internal_templateparser.y"
     function yy_r4(){
                                           if ($this->compiler->has_code) {
@@ -2128,13 +2125,13 @@ static public $yy_action = array(
                                          $this->compiler->has_variable_string = false;
                                          $this->block_nesting_level = count($this->compiler->_tag_stack);
                                             }
-#line 2127 "smarty_internal_templateparser.php"
+#line 2124 "smarty_internal_templateparser.php"
 #line 125 "smarty_internal_templateparser.y"
     function yy_r5(){ $this->_retvalue = new _smarty_tag($this, '');    }
-#line 2130 "smarty_internal_templateparser.php"
+#line 2127 "smarty_internal_templateparser.php"
 #line 128 "smarty_internal_templateparser.y"
     function yy_r6(){ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);     }
-#line 2133 "smarty_internal_templateparser.php"
+#line 2130 "smarty_internal_templateparser.php"
 #line 131 "smarty_internal_templateparser.y"
     function yy_r7(){
                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
@@ -2147,7 +2144,7 @@ static public $yy_action = array(
                                        $this->_retvalue = new _smarty_text($this, '');
                                       }
                                          }
-#line 2146 "smarty_internal_templateparser.php"
+#line 2143 "smarty_internal_templateparser.php"
 #line 143 "smarty_internal_templateparser.y"
     function yy_r8(){if ($this->is_xml) {
                                        $this->compiler->tag_nocache = true; 
@@ -2163,7 +2160,7 @@ static public $yy_action = array(
                                        $this->_retvalue = new _smarty_text($this, '');
                                       }
                                          }
-#line 2162 "smarty_internal_templateparser.php"
+#line 2159 "smarty_internal_templateparser.php"
 #line 159 "smarty_internal_templateparser.y"
     function yy_r9(){
                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
@@ -2184,7 +2181,7 @@ static public $yy_action = array(
                                         }
                                       }
                                         }
-#line 2183 "smarty_internal_templateparser.php"
+#line 2180 "smarty_internal_templateparser.php"
 #line 180 "smarty_internal_templateparser.y"
     function yy_r10(){
                                       if ($this->php_handling == Smarty::PHP_PASSTHRU) {
@@ -2205,7 +2202,7 @@ static public $yy_action = array(
                                         }
                                       }
                                         }
-#line 2204 "smarty_internal_templateparser.php"
+#line 2201 "smarty_internal_templateparser.php"
 #line 200 "smarty_internal_templateparser.y"
     function yy_r11(){if ($this->lex->strip) {
                                        $this->_retvalue = new _smarty_text($this, preg_replace('![\$this->yystack[$this->yyidx + 0]->minor ]*[\r\n]+[\$this->yystack[$this->yyidx + 0]->minor ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)));     
@@ -2213,10 +2210,10 @@ static public $yy_action = array(
                                        $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor));    
                                      }
                                         }
-#line 2212 "smarty_internal_templateparser.php"
+#line 2209 "smarty_internal_templateparser.php"
 #line 208 "smarty_internal_templateparser.y"
     function yy_r12(){ $this->compiler->tag_nocache = true; $this->is_xml = true; $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true));    }
-#line 2215 "smarty_internal_templateparser.php"
+#line 2212 "smarty_internal_templateparser.php"
 #line 211 "smarty_internal_templateparser.y"
     function yy_r13(){if ($this->lex->strip) {
                                        $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor)); 
@@ -2224,140 +2221,139 @@ static public $yy_action = array(
                                        $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor);    
                                      }
                                         }
-#line 2223 "smarty_internal_templateparser.php"
+#line 2220 "smarty_internal_templateparser.php"
 #line 217 "smarty_internal_templateparser.y"
     function yy_r14(){
                                      $this->_retvalue = new _smarty_linebreak($this, $this->yystack[$this->yyidx + 0]->minor);
                                        }
-#line 2228 "smarty_internal_templateparser.php"
+#line 2225 "smarty_internal_templateparser.php"
 #line 222 "smarty_internal_templateparser.y"
     function yy_r15(){ $this->_retvalue = '';     }
-#line 2231 "smarty_internal_templateparser.php"
+#line 2228 "smarty_internal_templateparser.php"
 #line 223 "smarty_internal_templateparser.y"
     function yy_r16(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;     }
-#line 2234 "smarty_internal_templateparser.php"
+#line 2231 "smarty_internal_templateparser.php"
 #line 225 "smarty_internal_templateparser.y"
     function yy_r17(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2237 "smarty_internal_templateparser.php"
+#line 2234 "smarty_internal_templateparser.php"
 #line 228 "smarty_internal_templateparser.y"
     function yy_r19(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;     }
-#line 2240 "smarty_internal_templateparser.php"
+#line 2237 "smarty_internal_templateparser.php"
 #line 230 "smarty_internal_templateparser.y"
     function yy_r21(){ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor);     }
-#line 2243 "smarty_internal_templateparser.php"
+#line 2240 "smarty_internal_templateparser.php"
 #line 232 "smarty_internal_templateparser.y"
     function yy_r23(){ $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor);     }
-#line 2246 "smarty_internal_templateparser.php"
+#line 2243 "smarty_internal_templateparser.php"
 #line 233 "smarty_internal_templateparser.y"
     function yy_r24(){ $this->_retvalue = '<<?php ?>%';     }
-#line 2249 "smarty_internal_templateparser.php"
+#line 2246 "smarty_internal_templateparser.php"
 #line 234 "smarty_internal_templateparser.y"
     function yy_r25(){ $this->_retvalue = '%<?php ?>>';     }
-#line 2252 "smarty_internal_templateparser.php"
+#line 2249 "smarty_internal_templateparser.php"
 #line 242 "smarty_internal_templateparser.y"
     function yy_r26(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor));    }
-#line 2255 "smarty_internal_templateparser.php"
+#line 2252 "smarty_internal_templateparser.php"
 #line 243 "smarty_internal_templateparser.y"
     function yy_r27(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor));    }
-#line 2258 "smarty_internal_templateparser.php"
+#line 2255 "smarty_internal_templateparser.php"
 #line 245 "smarty_internal_templateparser.y"
     function yy_r29(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -3]->minor,'modifierlist'=>$this->yystack[$this->yyidx + -2]->minor));    }
-#line 2261 "smarty_internal_templateparser.php"
+#line 2258 "smarty_internal_templateparser.php"
 #line 253 "smarty_internal_templateparser.y"
     function yy_r31(){ $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")));    }
-#line 2264 "smarty_internal_templateparser.php"
+#line 2261 "smarty_internal_templateparser.php"
 #line 255 "smarty_internal_templateparser.y"
     function yy_r33(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'")),$this->yystack[$this->yyidx + -1]->minor));    }
-#line 2267 "smarty_internal_templateparser.php"
+#line 2264 "smarty_internal_templateparser.php"
 #line 256 "smarty_internal_templateparser.y"
     function yy_r34(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>$this->yystack[$this->yyidx + -4]->minor['var'])),$this->yystack[$this->yyidx + -1]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -4]->minor['smarty_internal_index']));    }
-#line 2270 "smarty_internal_templateparser.php"
+#line 2267 "smarty_internal_templateparser.php"
 #line 258 "smarty_internal_templateparser.y"
     function yy_r35(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor);    }
-#line 2273 "smarty_internal_templateparser.php"
+#line 2270 "smarty_internal_templateparser.php"
 #line 259 "smarty_internal_templateparser.y"
     function yy_r36(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array());    }
-#line 2276 "smarty_internal_templateparser.php"
+#line 2273 "smarty_internal_templateparser.php"
 #line 261 "smarty_internal_templateparser.y"
     function yy_r37(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor));    }
-#line 2279 "smarty_internal_templateparser.php"
+#line 2276 "smarty_internal_templateparser.php"
 #line 263 "smarty_internal_templateparser.y"
     function yy_r38(){  $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
                                                                                     $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
                                                                                      }
-#line 2284 "smarty_internal_templateparser.php"
+#line 2281 "smarty_internal_templateparser.php"
 #line 267 "smarty_internal_templateparser.y"
     function yy_r39(){  $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -3]->minor)).'<?php echo ';
                                                                                                $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
                                                                                                 }
-#line 2289 "smarty_internal_templateparser.php"
+#line 2286 "smarty_internal_templateparser.php"
 #line 271 "smarty_internal_templateparser.y"
     function yy_r40(){ $tag = trim(substr($this->yystack[$this->yyidx + -3]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));    }
-#line 2292 "smarty_internal_templateparser.php"
+#line 2289 "smarty_internal_templateparser.php"
 #line 272 "smarty_internal_templateparser.y"
     function yy_r41(){ $tag = trim(substr($this->yystack[$this->yyidx + -4]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + -1]->minor,array('if condition'=>$this->yystack[$this->yyidx + -2]->minor));    }
-#line 2295 "smarty_internal_templateparser.php"
+#line 2292 "smarty_internal_templateparser.php"
 #line 276 "smarty_internal_templateparser.y"
     function yy_r44(){
                                                              $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -10]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -7]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),1);    }
-#line 2299 "smarty_internal_templateparser.php"
+#line 2296 "smarty_internal_templateparser.php"
 #line 279 "smarty_internal_templateparser.y"
     function yy_r45(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2302 "smarty_internal_templateparser.php"
+#line 2299 "smarty_internal_templateparser.php"
 #line 280 "smarty_internal_templateparser.y"
     function yy_r46(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;    }
-#line 2305 "smarty_internal_templateparser.php"
+#line 2302 "smarty_internal_templateparser.php"
 #line 281 "smarty_internal_templateparser.y"
     function yy_r47(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -4]->minor),array('to'=>$this->yystack[$this->yyidx + -2]->minor))),0);    }
-#line 2308 "smarty_internal_templateparser.php"
+#line 2305 "smarty_internal_templateparser.php"
 #line 282 "smarty_internal_templateparser.y"
     function yy_r48(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('to'=>$this->yystack[$this->yyidx + -4]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),0);    }
-#line 2311 "smarty_internal_templateparser.php"
+#line 2308 "smarty_internal_templateparser.php"
 #line 284 "smarty_internal_templateparser.y"
     function yy_r49(){ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + -1]->minor);    }
-#line 2314 "smarty_internal_templateparser.php"
+#line 2311 "smarty_internal_templateparser.php"
 #line 286 "smarty_internal_templateparser.y"
     function yy_r50(){
                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));    }
-#line 2318 "smarty_internal_templateparser.php"
+#line 2315 "smarty_internal_templateparser.php"
 #line 288 "smarty_internal_templateparser.y"
     function yy_r51(){
                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));    }
-#line 2322 "smarty_internal_templateparser.php"
+#line 2319 "smarty_internal_templateparser.php"
 #line 290 "smarty_internal_templateparser.y"
     function yy_r52(){ 
                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor))));    }
-#line 2326 "smarty_internal_templateparser.php"
+#line 2323 "smarty_internal_templateparser.php"
 #line 292 "smarty_internal_templateparser.y"
     function yy_r53(){ 
                                                             $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor))));    }
-#line 2330 "smarty_internal_templateparser.php"
+#line 2327 "smarty_internal_templateparser.php"
 #line 296 "smarty_internal_templateparser.y"
     function yy_r54(){ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler);    }
-#line 2333 "smarty_internal_templateparser.php"
+#line 2330 "smarty_internal_templateparser.php"
 #line 300 "smarty_internal_templateparser.y"
     function yy_r55(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array());    }
-#line 2336 "smarty_internal_templateparser.php"
-#line 301 "smarty_internal_templateparser.y"
-    function yy_r56(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',$this->yystack[$this->yyidx + -1]->minor);    }
-#line 2339 "smarty_internal_templateparser.php"
+#line 2333 "smarty_internal_templateparser.php"
 #line 302 "smarty_internal_templateparser.y"
-    function yy_r57(){  $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';
-                                                                                         $this->_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>';
+    function yy_r56(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));
                                                                                           }
-#line 2344 "smarty_internal_templateparser.php"
+#line 2337 "smarty_internal_templateparser.php"
+#line 305 "smarty_internal_templateparser.y"
+    function yy_r57(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor));    }
+#line 2340 "smarty_internal_templateparser.php"
 #line 306 "smarty_internal_templateparser.y"
-    function yy_r58(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor));    }
-#line 2347 "smarty_internal_templateparser.php"
+    function yy_r58(){  $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + -1]->minor));    }
+#line 2343 "smarty_internal_templateparser.php"
 #line 312 "smarty_internal_templateparser.y"
     function yy_r59(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;    }
-#line 2350 "smarty_internal_templateparser.php"
+#line 2346 "smarty_internal_templateparser.php"
 #line 314 "smarty_internal_templateparser.y"
     function yy_r60(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);    }
-#line 2353 "smarty_internal_templateparser.php"
+#line 2349 "smarty_internal_templateparser.php"
 #line 316 "smarty_internal_templateparser.y"
     function yy_r61(){ $this->_retvalue = array();    }
-#line 2356 "smarty_internal_templateparser.php"
+#line 2352 "smarty_internal_templateparser.php"
 #line 319 "smarty_internal_templateparser.y"
     function yy_r62(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'true');
@@ -2367,82 +2363,82 @@ static public $yy_action = array(
                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'null');
                                                  } else
                                                   $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'");    }
-#line 2366 "smarty_internal_templateparser.php"
+#line 2362 "smarty_internal_templateparser.php"
 #line 327 "smarty_internal_templateparser.y"
     function yy_r63(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);    }
-#line 2369 "smarty_internal_templateparser.php"
+#line 2365 "smarty_internal_templateparser.php"
 #line 329 "smarty_internal_templateparser.y"
     function yy_r65(){ $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";    }
-#line 2372 "smarty_internal_templateparser.php"
+#line 2368 "smarty_internal_templateparser.php"
 #line 332 "smarty_internal_templateparser.y"
     function yy_r68(){$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);    }
-#line 2375 "smarty_internal_templateparser.php"
+#line 2371 "smarty_internal_templateparser.php"
 #line 339 "smarty_internal_templateparser.y"
     function yy_r70(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;    }
-#line 2378 "smarty_internal_templateparser.php"
+#line 2374 "smarty_internal_templateparser.php"
 #line 341 "smarty_internal_templateparser.y"
     function yy_r71(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);    }
-#line 2381 "smarty_internal_templateparser.php"
+#line 2377 "smarty_internal_templateparser.php"
 #line 352 "smarty_internal_templateparser.y"
     function yy_r74(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')';    }
-#line 2384 "smarty_internal_templateparser.php"
+#line 2380 "smarty_internal_templateparser.php"
 #line 354 "smarty_internal_templateparser.y"
     function yy_r75(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;     }
-#line 2387 "smarty_internal_templateparser.php"
+#line 2383 "smarty_internal_templateparser.php"
 #line 360 "smarty_internal_templateparser.y"
     function yy_r78(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;    }
-#line 2390 "smarty_internal_templateparser.php"
+#line 2386 "smarty_internal_templateparser.php"
 #line 363 "smarty_internal_templateparser.y"
     function yy_r79(){  $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));     }
-#line 2393 "smarty_internal_templateparser.php"
+#line 2389 "smarty_internal_templateparser.php"
 #line 367 "smarty_internal_templateparser.y"
     function yy_r80(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2396 "smarty_internal_templateparser.php"
+#line 2392 "smarty_internal_templateparser.php"
 #line 368 "smarty_internal_templateparser.y"
     function yy_r81(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2399 "smarty_internal_templateparser.php"
+#line 2395 "smarty_internal_templateparser.php"
 #line 369 "smarty_internal_templateparser.y"
     function yy_r82(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2402 "smarty_internal_templateparser.php"
+#line 2398 "smarty_internal_templateparser.php"
 #line 371 "smarty_internal_templateparser.y"
     function yy_r84(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2405 "smarty_internal_templateparser.php"
+#line 2401 "smarty_internal_templateparser.php"
 #line 372 "smarty_internal_templateparser.y"
     function yy_r85(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2408 "smarty_internal_templateparser.php"
+#line 2404 "smarty_internal_templateparser.php"
 #line 373 "smarty_internal_templateparser.y"
     function yy_r86(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';    }
-#line 2411 "smarty_internal_templateparser.php"
+#line 2407 "smarty_internal_templateparser.php"
 #line 374 "smarty_internal_templateparser.y"
     function yy_r87(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')';    }
-#line 2414 "smarty_internal_templateparser.php"
+#line 2410 "smarty_internal_templateparser.php"
 #line 375 "smarty_internal_templateparser.y"
     function yy_r88(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2417 "smarty_internal_templateparser.php"
+#line 2413 "smarty_internal_templateparser.php"
 #line 376 "smarty_internal_templateparser.y"
     function yy_r89(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')';    }
-#line 2420 "smarty_internal_templateparser.php"
+#line 2416 "smarty_internal_templateparser.php"
 #line 382 "smarty_internal_templateparser.y"
     function yy_r95(){$this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number;    }
-#line 2423 "smarty_internal_templateparser.php"
+#line 2419 "smarty_internal_templateparser.php"
 #line 388 "smarty_internal_templateparser.y"
     function yy_r96(){ $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? $_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'\')->value : '.$this->yystack[$this->yyidx + 0]->minor;  $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + -2]->minor', null, true, false)->nocache;    }
-#line 2426 "smarty_internal_templateparser.php"
+#line 2422 "smarty_internal_templateparser.php"
 #line 389 "smarty_internal_templateparser.y"
     function yy_r97(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2429 "smarty_internal_templateparser.php"
+#line 2425 "smarty_internal_templateparser.php"
 #line 396 "smarty_internal_templateparser.y"
     function yy_r100(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2432 "smarty_internal_templateparser.php"
+#line 2428 "smarty_internal_templateparser.php"
 #line 402 "smarty_internal_templateparser.y"
     function yy_r105(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2435 "smarty_internal_templateparser.php"
+#line 2431 "smarty_internal_templateparser.php"
 #line 403 "smarty_internal_templateparser.y"
     function yy_r106(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';     }
-#line 2438 "smarty_internal_templateparser.php"
+#line 2434 "smarty_internal_templateparser.php"
 #line 404 "smarty_internal_templateparser.y"
     function yy_r107(){ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2441 "smarty_internal_templateparser.php"
+#line 2437 "smarty_internal_templateparser.php"
 #line 406 "smarty_internal_templateparser.y"
     function yy_r108(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) {
                                 $this->_retvalue = 'true';
@@ -2452,10 +2448,10 @@ static public $yy_action = array(
                                 $this->_retvalue = 'null';
                                } else
                                $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'";     }
-#line 2451 "smarty_internal_templateparser.php"
+#line 2447 "smarty_internal_templateparser.php"
 #line 417 "smarty_internal_templateparser.y"
     function yy_r110(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")";     }
-#line 2454 "smarty_internal_templateparser.php"
+#line 2450 "smarty_internal_templateparser.php"
 #line 423 "smarty_internal_templateparser.y"
     function yy_r113(){if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler)) {
                                                                                                                                                                                   if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
@@ -2467,252 +2463,260 @@ static public $yy_action = array(
                                                                  $this->compiler->trigger_template_error ("static class '".$this->yystack[$this->yyidx + -2]->minor."' is undefined or not allowed by security setting");
                                                                 }
                                                                    }
-#line 2466 "smarty_internal_templateparser.php"
+#line 2462 "smarty_internal_templateparser.php"
 #line 433 "smarty_internal_templateparser.y"
     function yy_r114(){ if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor;} else {
                                                          $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].'::'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor['var'],"'"), null, true, false)->nocache;}    }
-#line 2470 "smarty_internal_templateparser.php"
+#line 2466 "smarty_internal_templateparser.php"
 #line 436 "smarty_internal_templateparser.y"
     function yy_r115(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number;     }
-#line 2473 "smarty_internal_templateparser.php"
+#line 2469 "smarty_internal_templateparser.php"
 #line 445 "smarty_internal_templateparser.y"
-    function yy_r116(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
+    function yy_r116(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') {
+                                                                                                                                                               $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
+                                                                                                                                                               $this->_retvalue = $smarty_var;
                                       } else {
-                                      if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + 0]->minor['var']])) {
-                                          $this->_retvalue = '(isset($_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + 0]->minor['var'] .']->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'].') ? $_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + 0]->minor['var'] .']->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'].' : null)';
-                                       } else {
-                                         if (isset($this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'])) {
-                                            $this->_retvalue = '(isset($_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'].') ? $_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'].' : null)';
-                                         } else {
-                                            $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
-                                         }
-                                       }
-                                       $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;}    }
-#line 2487 "smarty_internal_templateparser.php"
-#line 458 "smarty_internal_templateparser.y"
+                                       // used for array reset,next,prev,end,current 
+                                       $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
+                                       $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+                                       if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + 0]->minor['var']])) {
+                                          $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + 0]->minor['var'] .']->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+                                       } else {
+                                          $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
+                                       }
+                                       $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;
+                                     }
+                                        }
+#line 2486 "smarty_internal_templateparser.php"
+#line 461 "smarty_internal_templateparser.y"
     function yy_r117(){if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + -2]->minor])) {
                                                   $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
                                                  } else {
                                                   $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor;
                                                  }
                                                   $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache;    }
-#line 2495 "smarty_internal_templateparser.php"
-#line 467 "smarty_internal_templateparser.y"
+#line 2494 "smarty_internal_templateparser.php"
+#line 470 "smarty_internal_templateparser.y"
     function yy_r119(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')';    }
-#line 2498 "smarty_internal_templateparser.php"
-#line 468 "smarty_internal_templateparser.y"
-    function yy_r120(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')';    }
-#line 2501 "smarty_internal_templateparser.php"
+#line 2497 "smarty_internal_templateparser.php"
 #line 471 "smarty_internal_templateparser.y"
+    function yy_r120(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')';    }
+#line 2500 "smarty_internal_templateparser.php"
+#line 474 "smarty_internal_templateparser.y"
     function yy_r121(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);    }
-#line 2504 "smarty_internal_templateparser.php"
-#line 477 "smarty_internal_templateparser.y"
+#line 2503 "smarty_internal_templateparser.php"
+#line 480 "smarty_internal_templateparser.y"
     function yy_r122(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2507 "smarty_internal_templateparser.php"
-#line 479 "smarty_internal_templateparser.y"
+#line 2506 "smarty_internal_templateparser.php"
+#line 482 "smarty_internal_templateparser.y"
     function yy_r123(){return;    }
-#line 2510 "smarty_internal_templateparser.php"
-#line 483 "smarty_internal_templateparser.y"
+#line 2509 "smarty_internal_templateparser.php"
+#line 486 "smarty_internal_templateparser.y"
     function yy_r124(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache;    }
-#line 2513 "smarty_internal_templateparser.php"
-#line 484 "smarty_internal_templateparser.y"
+#line 2512 "smarty_internal_templateparser.php"
+#line 487 "smarty_internal_templateparser.y"
     function yy_r125(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache;    }
-#line 2516 "smarty_internal_templateparser.php"
-#line 485 "smarty_internal_templateparser.y"
+#line 2515 "smarty_internal_templateparser.php"
+#line 488 "smarty_internal_templateparser.y"
     function yy_r126(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']";    }
-#line 2519 "smarty_internal_templateparser.php"
-#line 486 "smarty_internal_templateparser.y"
+#line 2518 "smarty_internal_templateparser.php"
+#line 489 "smarty_internal_templateparser.y"
     function yy_r127(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]";    }
-#line 2522 "smarty_internal_templateparser.php"
-#line 487 "smarty_internal_templateparser.y"
+#line 2521 "smarty_internal_templateparser.php"
+#line 490 "smarty_internal_templateparser.y"
     function yy_r128(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]";    }
-#line 2525 "smarty_internal_templateparser.php"
-#line 489 "smarty_internal_templateparser.y"
+#line 2524 "smarty_internal_templateparser.php"
+#line 492 "smarty_internal_templateparser.y"
     function yy_r129(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';    }
-#line 2528 "smarty_internal_templateparser.php"
-#line 490 "smarty_internal_templateparser.y"
+#line 2527 "smarty_internal_templateparser.php"
+#line 493 "smarty_internal_templateparser.y"
     function yy_r130(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';    }
-#line 2531 "smarty_internal_templateparser.php"
-#line 494 "smarty_internal_templateparser.y"
+#line 2530 "smarty_internal_templateparser.php"
+#line 497 "smarty_internal_templateparser.y"
     function yy_r132(){$this->_retvalue = '[]';    }
-#line 2534 "smarty_internal_templateparser.php"
-#line 502 "smarty_internal_templateparser.y"
+#line 2533 "smarty_internal_templateparser.php"
+#line 505 "smarty_internal_templateparser.y"
     function yy_r134(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2537 "smarty_internal_templateparser.php"
-#line 504 "smarty_internal_templateparser.y"
+#line 2536 "smarty_internal_templateparser.php"
+#line 507 "smarty_internal_templateparser.y"
     function yy_r135(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';    }
-#line 2540 "smarty_internal_templateparser.php"
-#line 506 "smarty_internal_templateparser.y"
+#line 2539 "smarty_internal_templateparser.php"
+#line 509 "smarty_internal_templateparser.y"
     function yy_r136(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';    }
-#line 2543 "smarty_internal_templateparser.php"
-#line 511 "smarty_internal_templateparser.y"
+#line 2542 "smarty_internal_templateparser.php"
+#line 514 "smarty_internal_templateparser.y"
     function yy_r137(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;} else {
                                                          $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;}    }
-#line 2547 "smarty_internal_templateparser.php"
-#line 514 "smarty_internal_templateparser.y"
+#line 2546 "smarty_internal_templateparser.php"
+#line 517 "smarty_internal_templateparser.y"
     function yy_r138(){$this->_retvalue  = $this->yystack[$this->yyidx + 0]->minor;     }
-#line 2550 "smarty_internal_templateparser.php"
-#line 516 "smarty_internal_templateparser.y"
+#line 2549 "smarty_internal_templateparser.php"
+#line 519 "smarty_internal_templateparser.y"
     function yy_r139(){$this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2553 "smarty_internal_templateparser.php"
-#line 518 "smarty_internal_templateparser.y"
+#line 2552 "smarty_internal_templateparser.php"
+#line 521 "smarty_internal_templateparser.y"
     function yy_r140(){if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') {
                                                       $this->compiler->trigger_template_error (self::Err1);
                                                                                                                                                                                                           }
                                                      $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
                                                          }
-#line 2560 "smarty_internal_templateparser.php"
-#line 523 "smarty_internal_templateparser.y"
+#line 2559 "smarty_internal_templateparser.php"
+#line 526 "smarty_internal_templateparser.y"
     function yy_r141(){if ($this->security) {
                                                                  $this->compiler->trigger_template_error (self::Err2);
                                                                                                                                                                                                                                                         }
                                                                $this->_retvalue = '->{$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor .')->value'.$this->yystack[$this->yyidx + 0]->minor.'}'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor,"'"), null, true, false)->nocache;
                                                                    }
-#line 2567 "smarty_internal_templateparser.php"
-#line 528 "smarty_internal_templateparser.y"
+#line 2566 "smarty_internal_templateparser.php"
+#line 531 "smarty_internal_templateparser.y"
     function yy_r142(){if ($this->security) {
                                                                  $this->compiler->trigger_template_error (self::Err2);
                                                                                                                                                                                                                                                           }
                                                                                                                                                                                                 $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
                                                                                                                                                                                                    }
-#line 2574 "smarty_internal_templateparser.php"
-#line 533 "smarty_internal_templateparser.y"
+#line 2573 "smarty_internal_templateparser.php"
+#line 536 "smarty_internal_templateparser.y"
     function yy_r143(){if ($this->security) {
                                                                          $this->compiler->trigger_template_error (self::Err2);
                                                                                                                                                                                                                                                                 }
                                                                        $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
                                                                           }
-#line 2581 "smarty_internal_templateparser.php"
-#line 539 "smarty_internal_templateparser.y"
+#line 2580 "smarty_internal_templateparser.php"
+#line 542 "smarty_internal_templateparser.y"
     function yy_r144(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2584 "smarty_internal_templateparser.php"
-#line 545 "smarty_internal_templateparser.y"
+#line 2583 "smarty_internal_templateparser.php"
+#line 548 "smarty_internal_templateparser.y"
     function yy_r145(){if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {
                                                                                                                                                                                    if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) {
-                                                                                                                                                                                       if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0) {
-                                                                                                                                                                                         $this->_retvalue = '('. $this->yystack[$this->yyidx + -1]->minor .' !== null)';
-                                                                                                                                                                                       } elseif (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0){
-                                                                                                                                                                                          $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + -1]->minor.';?>';
-                                                                                                                                                                                         $this->_retvalue = 'empty($_tmp'.$this->prefix_number.')';
+                                                                                                                                                                                       $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor);
+                                                                                                                                                                                       if ($func_name == 'isset') {
+                                                                                                                                                                                         if (count($this->yystack[$this->yyidx + -1]->minor) == 0) {
+                                                                                                                                                                                          $this->compiler->trigger_template_error ('Illegal number of paramer in "isset()"');
+                                                                                                                                                                                         }
+                                                                                                                                                                                         $isset_par=str_replace("')->value","',null,true,false)->value",implode(',',$this->yystack[$this->yyidx + -1]->minor));
+                                                                                                                                                                                         $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $isset_par .")";
+                                                                                                                                                                                             } elseif (in_array($func_name,array('empty','reset','current','end','prev','next'))){
+                                                                                                                                                                                         if (count($this->yystack[$this->yyidx + -1]->minor) != 1) {
+                                                                                                                                                                                          $this->compiler->trigger_template_error ('Illegal number of paramer in "empty()"');
+                                                                                                                                                                                         }
+                                                                                                                                                                                         $this->_retvalue = $func_name.'('.$this->yystack[$this->yyidx + -1]->minor[0].')';
                                                                                                                                                                                        } else {
-                                                                                                                                                                                         $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")";
+                                                                                                                                                                                         $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
                                                                                                                                                                                        }
                                                                                                                                                                                    } else {
                                                        $this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");
                                                       }
-                                                    }    }
-#line 2600 "smarty_internal_templateparser.php"
-#line 563 "smarty_internal_templateparser.y"
+                                                     }
+                                                        }
+#line 2607 "smarty_internal_templateparser.php"
+#line 574 "smarty_internal_templateparser.y"
     function yy_r146(){if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') {
                                                       $this->compiler->trigger_template_error (self::Err1);
                                                                                                                                                                                                         }
-                                                   $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")";
+                                                   $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")";
                                                       }
-#line 2607 "smarty_internal_templateparser.php"
-#line 568 "smarty_internal_templateparser.y"
+#line 2614 "smarty_internal_templateparser.php"
+#line 579 "smarty_internal_templateparser.y"
     function yy_r147(){if ($this->security) {
                                                               $this->compiler->trigger_template_error (self::Err2);
                                                                                                                                                                                                                                         }
-                                                           $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -1]->minor .')';
+                                                           $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
                                                               }
-#line 2614 "smarty_internal_templateparser.php"
-#line 576 "smarty_internal_templateparser.y"
-    function yy_r148(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2617 "smarty_internal_templateparser.php"
-#line 580 "smarty_internal_templateparser.y"
-    function yy_r150(){ return;    }
-#line 2620 "smarty_internal_templateparser.php"
-#line 585 "smarty_internal_templateparser.y"
+#line 2621 "smarty_internal_templateparser.php"
+#line 587 "smarty_internal_templateparser.y"
+    function yy_r148(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));    }
+#line 2624 "smarty_internal_templateparser.php"
+#line 596 "smarty_internal_templateparser.y"
     function yy_r151(){$this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)));    }
-#line 2623 "smarty_internal_templateparser.php"
-#line 586 "smarty_internal_templateparser.y"
+#line 2627 "smarty_internal_templateparser.php"
+#line 597 "smarty_internal_templateparser.y"
     function yy_r152(){$this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));    }
-#line 2626 "smarty_internal_templateparser.php"
-#line 589 "smarty_internal_templateparser.y"
+#line 2630 "smarty_internal_templateparser.php"
+#line 600 "smarty_internal_templateparser.y"
     function yy_r154(){ $this->_retvalue =  array($this->yystack[$this->yyidx + 0]->minor);    }
-#line 2629 "smarty_internal_templateparser.php"
-#line 594 "smarty_internal_templateparser.y"
+#line 2633 "smarty_internal_templateparser.php"
+#line 605 "smarty_internal_templateparser.y"
     function yy_r155(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);    }
-#line 2632 "smarty_internal_templateparser.php"
-#line 596 "smarty_internal_templateparser.y"
+#line 2636 "smarty_internal_templateparser.php"
+#line 607 "smarty_internal_templateparser.y"
     function yy_r156(){$this->_retvalue = array();    }
-#line 2635 "smarty_internal_templateparser.php"
-#line 598 "smarty_internal_templateparser.y"
+#line 2639 "smarty_internal_templateparser.php"
+#line 609 "smarty_internal_templateparser.y"
     function yy_r157(){$this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);    }
-#line 2638 "smarty_internal_templateparser.php"
-#line 608 "smarty_internal_templateparser.y"
+#line 2642 "smarty_internal_templateparser.php"
+#line 619 "smarty_internal_templateparser.y"
     function yy_r162(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2641 "smarty_internal_templateparser.php"
-#line 610 "smarty_internal_templateparser.y"
+#line 2645 "smarty_internal_templateparser.php"
+#line 621 "smarty_internal_templateparser.y"
     function yy_r163(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2644 "smarty_internal_templateparser.php"
-#line 619 "smarty_internal_templateparser.y"
+#line 2648 "smarty_internal_templateparser.php"
+#line 630 "smarty_internal_templateparser.y"
     function yy_r164(){$this->_retvalue = '==';    }
-#line 2647 "smarty_internal_templateparser.php"
-#line 620 "smarty_internal_templateparser.y"
+#line 2651 "smarty_internal_templateparser.php"
+#line 631 "smarty_internal_templateparser.y"
     function yy_r165(){$this->_retvalue = '!=';    }
-#line 2650 "smarty_internal_templateparser.php"
-#line 621 "smarty_internal_templateparser.y"
+#line 2654 "smarty_internal_templateparser.php"
+#line 632 "smarty_internal_templateparser.y"
     function yy_r166(){$this->_retvalue = '>';    }
-#line 2653 "smarty_internal_templateparser.php"
-#line 622 "smarty_internal_templateparser.y"
+#line 2657 "smarty_internal_templateparser.php"
+#line 633 "smarty_internal_templateparser.y"
     function yy_r167(){$this->_retvalue = '<';    }
-#line 2656 "smarty_internal_templateparser.php"
-#line 623 "smarty_internal_templateparser.y"
+#line 2660 "smarty_internal_templateparser.php"
+#line 634 "smarty_internal_templateparser.y"
     function yy_r168(){$this->_retvalue = '>=';    }
-#line 2659 "smarty_internal_templateparser.php"
-#line 624 "smarty_internal_templateparser.y"
+#line 2663 "smarty_internal_templateparser.php"
+#line 635 "smarty_internal_templateparser.y"
     function yy_r169(){$this->_retvalue = '<=';    }
-#line 2662 "smarty_internal_templateparser.php"
-#line 625 "smarty_internal_templateparser.y"
+#line 2666 "smarty_internal_templateparser.php"
+#line 636 "smarty_internal_templateparser.y"
     function yy_r170(){$this->_retvalue = '===';    }
-#line 2665 "smarty_internal_templateparser.php"
-#line 626 "smarty_internal_templateparser.y"
+#line 2669 "smarty_internal_templateparser.php"
+#line 637 "smarty_internal_templateparser.y"
     function yy_r171(){$this->_retvalue = '!==';    }
-#line 2668 "smarty_internal_templateparser.php"
-#line 627 "smarty_internal_templateparser.y"
+#line 2672 "smarty_internal_templateparser.php"
+#line 638 "smarty_internal_templateparser.y"
     function yy_r172(){$this->_retvalue = '%';    }
-#line 2671 "smarty_internal_templateparser.php"
-#line 629 "smarty_internal_templateparser.y"
+#line 2675 "smarty_internal_templateparser.php"
+#line 640 "smarty_internal_templateparser.y"
     function yy_r173(){$this->_retvalue = '&&';    }
-#line 2674 "smarty_internal_templateparser.php"
-#line 630 "smarty_internal_templateparser.y"
+#line 2678 "smarty_internal_templateparser.php"
+#line 641 "smarty_internal_templateparser.y"
     function yy_r174(){$this->_retvalue = '||';    }
-#line 2677 "smarty_internal_templateparser.php"
-#line 631 "smarty_internal_templateparser.y"
+#line 2681 "smarty_internal_templateparser.php"
+#line 642 "smarty_internal_templateparser.y"
     function yy_r175(){$this->_retvalue = ' XOR ';    }
-#line 2680 "smarty_internal_templateparser.php"
-#line 636 "smarty_internal_templateparser.y"
+#line 2684 "smarty_internal_templateparser.php"
+#line 647 "smarty_internal_templateparser.y"
     function yy_r176(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';    }
-#line 2683 "smarty_internal_templateparser.php"
-#line 638 "smarty_internal_templateparser.y"
+#line 2687 "smarty_internal_templateparser.php"
+#line 649 "smarty_internal_templateparser.y"
     function yy_r178(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;     }
-#line 2686 "smarty_internal_templateparser.php"
-#line 639 "smarty_internal_templateparser.y"
+#line 2690 "smarty_internal_templateparser.php"
+#line 650 "smarty_internal_templateparser.y"
     function yy_r179(){ return;     }
-#line 2689 "smarty_internal_templateparser.php"
-#line 640 "smarty_internal_templateparser.y"
+#line 2693 "smarty_internal_templateparser.php"
+#line 651 "smarty_internal_templateparser.y"
     function yy_r180(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2692 "smarty_internal_templateparser.php"
-#line 641 "smarty_internal_templateparser.y"
+#line 2696 "smarty_internal_templateparser.php"
+#line 652 "smarty_internal_templateparser.y"
     function yy_r181(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;    }
-#line 2695 "smarty_internal_templateparser.php"
-#line 648 "smarty_internal_templateparser.y"
+#line 2699 "smarty_internal_templateparser.php"
+#line 659 "smarty_internal_templateparser.y"
     function yy_r183(){ $this->_retvalue = "''";     }
-#line 2698 "smarty_internal_templateparser.php"
-#line 649 "smarty_internal_templateparser.y"
+#line 2702 "smarty_internal_templateparser.php"
+#line 660 "smarty_internal_templateparser.y"
     function yy_r184(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php();     }
-#line 2701 "smarty_internal_templateparser.php"
-#line 651 "smarty_internal_templateparser.y"
+#line 2705 "smarty_internal_templateparser.php"
+#line 662 "smarty_internal_templateparser.y"
     function yy_r185(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;     }
-#line 2704 "smarty_internal_templateparser.php"
-#line 652 "smarty_internal_templateparser.y"
+#line 2708 "smarty_internal_templateparser.php"
+#line 663 "smarty_internal_templateparser.y"
     function yy_r186(){ $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor);     }
-#line 2707 "smarty_internal_templateparser.php"
-#line 654 "smarty_internal_templateparser.y"
+#line 2711 "smarty_internal_templateparser.php"
+#line 665 "smarty_internal_templateparser.y"
     function yy_r187(){ $this->_retvalue = new _smarty_code($this, $this->yystack[$this->yyidx + -1]->minor);     }
-#line 2710 "smarty_internal_templateparser.php"
-#line 656 "smarty_internal_templateparser.y"
+#line 2714 "smarty_internal_templateparser.php"
+#line 667 "smarty_internal_templateparser.y"
     function yy_r189(){if (isset($this->compiler->local_var["'".substr($this->yystack[$this->yyidx + 0]->minor,1)."'"])) {
                                                        $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
                                                       } else {
@@ -2720,21 +2724,21 @@ static public $yy_action = array(
                                                       }
                                                       $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache;
       }
-#line 2719 "smarty_internal_templateparser.php"
-#line 664 "smarty_internal_templateparser.y"
+#line 2723 "smarty_internal_templateparser.php"
+#line 675 "smarty_internal_templateparser.y"
     function yy_r191(){ $this->_retvalue = new _smarty_code($this, '('.$this->yystack[$this->yyidx + -1]->minor.')');     }
-#line 2722 "smarty_internal_templateparser.php"
-#line 665 "smarty_internal_templateparser.y"
+#line 2726 "smarty_internal_templateparser.php"
+#line 676 "smarty_internal_templateparser.y"
     function yy_r192(){
    $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);
       }
-#line 2727 "smarty_internal_templateparser.php"
-#line 668 "smarty_internal_templateparser.y"
+#line 2731 "smarty_internal_templateparser.php"
+#line 679 "smarty_internal_templateparser.y"
     function yy_r193(){ $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor);     }
-#line 2730 "smarty_internal_templateparser.php"
-#line 675 "smarty_internal_templateparser.y"
+#line 2734 "smarty_internal_templateparser.php"
+#line 686 "smarty_internal_templateparser.y"
     function yy_r195(){$this->_retvalue = '';    }
-#line 2733 "smarty_internal_templateparser.php"
+#line 2737 "smarty_internal_templateparser.php"
 
     private $_retvalue;
 
@@ -2796,7 +2800,7 @@ static public $yy_action = array(
     $this->internalError = true;
     $this->yymajor = $yymajor;
     $this->compiler->trigger_template_error();
-#line 2796 "smarty_internal_templateparser.php"
+#line 2800 "smarty_internal_templateparser.php"
     }
 
     function yy_accept()
@@ -2813,7 +2817,7 @@ static public $yy_action = array(
     $this->internalError = false;
     $this->retvalue = $this->_retvalue;
     //echo $this->retvalue."\n\n";
-#line 2814 "smarty_internal_templateparser.php"
+#line 2818 "smarty_internal_templateparser.php"
     }
 
     function doParse($yymajor, $yytokenvalue)
index 2895e8ae948cfb098b6937a2d2f798a321ed87e7..f45153c34c5215678c9bd6fc121b8910d5eb7b61 100644 (file)
@@ -106,7 +106,12 @@ class Smarty_Internal_Wrapper {
            case 'trigger':
            switch($name_parts[1]) {
               case 'error':
-                 return call_user_func_array(array($this,'trigger_error'),$args);
+                 return call_user_func_array('trigger_error',$args);
+           }
+           case 'load':
+           switch($name_parts[1]) {
+              case 'filter':
+                 return call_user_func_array(array($this->smarty,'loadFilter'),$args);
            }
        }
        throw new SmartyException("unknown method '$name'");