public function showImage($digest, $mml, $param, $call)
 {
     if ($digest === null && $mml === null) {
         throw new HException("Missing parameters 'formula' or 'mml'.");
     }
     if ($digest !== null && $mml !== null) {
         throw new HException("Only one parameter 'formula' or 'mml' is valid.");
     }
     $atts = false;
     if ($digest === null && $mml !== null) {
         $digest = $this->render->computeDigest($mml, $param);
     }
     $formula = $this->plugin->getStorageAndCache()->decodeDigest($digest);
     if ($formula === null) {
         throw new HException("Formula associated to digest not found.");
     }
     if (StringTools::startsWith($formula, "<")) {
         throw new HException("Not implemented.");
     }
     $iniFile = com_wiris_util_sys_IniFile::newIniFileFromString($formula);
     $renderParams = $iniFile->getProperties();
     $i = null;
     $ss = $this->render->getEditorParametersList();
     if ($param !== null) {
         $_g1 = 0;
         $_g = $ss->length;
         while ($_g1 < $_g) {
             $i1 = $_g1++;
             $key = $ss[$i1];
             $value = com_wiris_system_PropertiesTools::getProperty($param, $key, null);
             if ($value !== null) {
                 $atts = true;
                 $renderParams->set($key, $value);
             }
             unset($value, $key, $i1);
         }
     }
     if ($atts) {
         if ($mml !== null) {
             $digest = $this->render->computeDigest($mml, com_wiris_system_PropertiesTools::toProperties($renderParams));
         } else {
             $digest = $this->render->computeDigest($renderParams->get("mml"), com_wiris_system_PropertiesTools::toProperties($renderParams));
         }
     }
     $store = $this->plugin->getStorageAndCache();
     $bs = null;
     $bs = $store->retreiveData($digest, "png");
     if ($bs === null) {
         $_g1 = 0;
         $_g = $ss->length;
         while ($_g1 < $_g) {
             $i1 = $_g1++;
             $key = $ss[$i1];
             if (!$renderParams->exists($key)) {
                 $confKey = com_wiris_plugin_api_ConfigurationKeys::$imageConfigProperties->get($key);
                 if ($confKey !== null) {
                     $value = $this->plugin->getConfiguration()->getProperty($confKey, null);
                     if ($value !== null) {
                         $renderParams->set($key, $value);
                     }
                     unset($value);
                 }
                 unset($confKey);
             }
             unset($key, $i1);
         }
         $h = new com_wiris_plugin_impl_HttpImpl($this->plugin->getImageServiceURL(null), null);
         $h->setHeader("Content-Type", "application/x-www-form-urlencoded");
         $this->plugin->addReferer($h);
         $this->plugin->addProxy($h);
         $iter = $renderParams->keys();
         while ($iter->hasNext()) {
             $key = $iter->next();
             $h->setParameter($key, $renderParams->get($key));
             unset($key);
         }
         $this->digest = $digest;
         $this->call = $call;
         com_wiris_plugin_asyncimpl_HttpPostAndContinue::doPost($h, $this, "onData");
     } else {
         $call->returnBytes($bs);
     }
 }