Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/3.5' into 3.5_backported
Browse files Browse the repository at this point in the history
  • Loading branch information
eldy committed Jun 10, 2014
2 parents 865bafd + ae0116a commit b4c7a2d
Show file tree
Hide file tree
Showing 33 changed files with 132 additions and 87 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
Expand Up @@ -2,6 +2,14 @@
English Dolibarr ChangeLog
--------------------------------------------------------------

***** ChangeLog for 3.5.4 compared to 3.5.3 *****
Fix: [ bug #1415 ] Intervention document model name and suppliers model names is not shown
properly in module configuration
Fix: [ bug #1416 ] Supplier order does not list document models in the select box of the
supplier order card
Fix: [ bug #1443 ] Payment conditions is erased after editing supplier invoice label or
limit date for payment

***** ChangeLog for 3.5.3 compared to 3.5.2 *****
Fix: Error on field accountancy code for export profile of invoices.
Fix: [ bug #1351 ] VIES verification link broken.
Expand Down
7 changes: 7 additions & 0 deletions build/debian/changelog
@@ -1,3 +1,10 @@
dolibarr (3.5.4-3) unstable; urgency=low

[ Laurent Destailleur (eldy) ]
* New upstream release.

-- Laurent Destailleur (eldy) <eldy@users.sourceforge.net> Tue, 1 July 2014 12:00:00 +0100

dolibarr (3.5.3-3) unstable; urgency=low

[ Laurent Destailleur (eldy) ]
Expand Down
4 changes: 2 additions & 2 deletions build/exe/doliwamp/doliwamp.iss
Expand Up @@ -17,9 +17,9 @@
; ----- Change this -----
AppName=DoliWamp
; DoliWamp-x.x.x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
AppVerName=DoliWamp-3.5.3
AppVerName=DoliWamp-3.5.4
; DoliWamp-x.x x or DoliWamp-x.x.x-alpha or DoliWamp-x.x.x-beta or DoliWamp-x.x.x-rc or DoliWamp-x.x.x
OutputBaseFilename=DoliWamp-3.5.3
OutputBaseFilename=DoliWamp-3.5.4
; ----- End of change
;OutputManifestFile=build\doliwampbuild.log
; Define full path from which all relative path are defined
Expand Down
3 changes: 3 additions & 0 deletions build/rpm/dolibarr_fedora.spec
Expand Up @@ -331,6 +331,9 @@ fi

# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
- Upstream release

* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
- Upstream release

Expand Down
3 changes: 3 additions & 0 deletions build/rpm/dolibarr_generic.spec
Expand Up @@ -567,6 +567,9 @@ fi

# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
- Upstream release

* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
- Upstream release

Expand Down
3 changes: 3 additions & 0 deletions build/rpm/dolibarr_mandriva.spec
Expand Up @@ -336,6 +336,9 @@ fi

# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
- Upstream release

* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
- Upstream release

Expand Down
3 changes: 3 additions & 0 deletions build/rpm/dolibarr_opensuse.spec
Expand Up @@ -347,6 +347,9 @@ fi

# version x.y.z-0.1.a for alpha, x.y.z-0.2.b for beta, x.y.z-0.3 for release
%changelog
* Tue July 1 2014 Laurent Destailleur 3.5.4-0.3
- Upstream release

* Fri May 2 2014 Laurent Destailleur 3.5.3-0.3
- Upstream release

Expand Down
7 changes: 5 additions & 2 deletions htdocs/admin/fichinter.php
Expand Up @@ -376,13 +376,16 @@
{
if (substr($file, dol_strlen($file) -12) == '.modules.php' && substr($file,0,4) == 'pdf_')
{
$var=!$var;

$name = substr($file, 4, dol_strlen($file) -16);
$classname = substr($file, 0, dol_strlen($file) -12);

$var=!$var;
require_once $dir.'/'.$file;
$module = new $classname($db);

print '<tr '.$bc[$var].'><td>';
echo "$name";
print (empty($module->name)?$name:$module->name);
print "</td><td>\n";
require_once $dir.$file;
$module = new $classname($db);
Expand Down
7 changes: 6 additions & 1 deletion htdocs/admin/supplier_invoice.php
Expand Up @@ -372,9 +372,14 @@
$name = substr($file, 4, dol_strlen($file) -16);
$classname = substr($file, 0, dol_strlen($file) -12);

require_once $dir.'/'.$file;
$module = new $classname($db, new FactureFournisseur($db));

$var=!$var;
print "<tr ".$bc[$var].">\n";
print "<td>".$name."</td>\n";
print "<td>";
print (empty($module->name)?$name:$module->name);
print "</td>\n";
print "<td>\n";
require_once $dir.$file;
$module = new $classname($db,$specimenthirdparty);
Expand Down
8 changes: 7 additions & 1 deletion htdocs/admin/supplier_order.php
Expand Up @@ -42,6 +42,7 @@

$type=GETPOST('type', 'alpha');
$value=GETPOST('value', 'alpha');
$label = GETPOST('label','alpha');
$action=GETPOST('action', 'alpha');

$specimenthirdparty=new Societe($db);
Expand Down Expand Up @@ -367,9 +368,14 @@
$name = substr($file, 4, dol_strlen($file) -16);
$classname = substr($file, 0, dol_strlen($file) -12);

require_once $dir.'/'.$file;
$module = new $classname($db, new CommandeFournisseur($db));

$var=!$var;
print "<tr ".$bc[$var].">\n";
print "<td>".$name."</td>\n";
print "<td>";
print (empty($module->name)?$name:$module->name);
print "</td>\n";
print "<td>\n";
require_once $dir.$file;
$module = new $classname($db,$specimenthirdparty);
Expand Down
2 changes: 1 addition & 1 deletion htdocs/core/class/commonobject.class.php
Expand Up @@ -2083,7 +2083,7 @@ function fetch_optionals($rowid,$optionsArray='')

foreach ($tab as $key => $value)
{
//Test fetch_array ! is_int($key) because fetch_array seult is a mix table with Key as alpha and Key as int (depend db engine)
// Test fetch_array ! is_int($key) because fetch_array seult is a mix table with Key as alpha and Key as int (depend db engine)
if ($key != 'rowid' && $key != 'tms' && $key != 'fk_member' && ! is_int($key))
{
// we can add this attribute to adherent object
Expand Down
4 changes: 2 additions & 2 deletions htdocs/core/class/fileupload.class.php
Expand Up @@ -329,14 +329,14 @@ protected function validate($uploaded_file, $file, $error, $index)
$file->error = 'minFileSize';
return false;
}
if (is_int($this->options['max_number_of_files']) && (
if (is_numeric($this->options['max_number_of_files']) && (
count($this->getFileObjects()) >= $this->options['max_number_of_files'])
) {
$file->error = 'maxNumberOfFiles';
return false;
}
list($img_width, $img_height) = @getimagesize($uploaded_file);
if (is_int($img_width)) {
if (is_numeric($img_width)) {
if ($this->options['max_width'] && $img_width > $this->options['max_width'] ||
$this->options['max_height'] && $img_height > $this->options['max_height']) {
$file->error = 'maxResolution';
Expand Down
4 changes: 2 additions & 2 deletions htdocs/core/class/html.form.class.php
Expand Up @@ -2620,7 +2620,7 @@ function formconfirm($page, $title, $question, $action, $formquestion='', $selec
$autoOpen=true;
$dialogconfirm='dialog-confirm';
$button='';
if (! is_int($useajax))
if (! is_numeric($useajax))
{
$button=$useajax;
$useajax=1;
Expand Down Expand Up @@ -3475,7 +3475,7 @@ function select_date($set_time='', $prefix='re', $h=0, $m=0, $empty=0, $form_nam
if($m == '') $m=0;
if($empty == '') $empty=0;

if ($set_time === '' && $empty == 0)
if ($set_time === '' && $empty == 0)
{
include_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
$set_time = dol_now('tzuser')-(getServerTimeZoneInt('now')*3600); // set_time must be relative to PHP server timezone
Expand Down
2 changes: 1 addition & 1 deletion htdocs/core/lib/pdf.lib.php
Expand Up @@ -436,7 +436,7 @@ function pdf_pagehead(&$pdf,$outputlangs,$page_height)
if (! empty($conf->global->MAIN_USE_BACKGROUND_ON_PDF))
{
$pdf->SetAutoPageBreak(0,0); // Disable auto pagebreak before adding image
$pdf->Image($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_USE_BACKGROUND_ON_PDF, 0, 0, 0, $page_height);
$pdf->Image($conf->mycompany->dir_output.'/logos/'.$conf->global->MAIN_USE_BACKGROUND_ON_PDF, (isset($conf->global->MAIN_USE_BACKGROUND_ON_PDF_X)?$conf->global->MAIN_USE_BACKGROUND_ON_PDF_X:0), (isset($conf->global->MAIN_USE_BACKGROUND_ON_PDF_Y)?$conf->global->MAIN_USE_BACKGROUND_ON_PDF_Y:0), 0, $page_height);
$pdf->SetAutoPageBreak(1,0); // Restore pagebreak
}
}
Expand Down
10 changes: 5 additions & 5 deletions htdocs/core/lib/security2.lib.php
Expand Up @@ -292,11 +292,11 @@ function dol_loginfunction($langs,$conf,$mysoc)
if (! empty($conf->global->MAIN_USE_JQUERY_THEME)) $jquerytheme = $conf->global->MAIN_USE_JQUERY_THEME;

// Set dol_hide_topmenu, dol_hide_leftmenu, dol_optimize_smallscreen, dol_nomousehover
$dol_hide_topmenu=GETPOST('dol_hide_topmenu');
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu');
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen');
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover');
$dol_use_jmobile=GETPOST('dol_use_jmobile');
$dol_hide_topmenu=GETPOST('dol_hide_topmenu','int');
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu','int');
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen','int');
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover','int');
$dol_use_jmobile=GETPOST('dol_use_jmobile','int');

// Include login page template
include $template_dir.'login.tpl.php';
Expand Down
2 changes: 1 addition & 1 deletion htdocs/core/modules/modSociete.class.php
Expand Up @@ -329,7 +329,7 @@ function __construct($db)
unset($this->export_entities_array[$r]['s.code_fournisseur']);
}
// Add extra fields
$sql="SELECT name, label FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'socpeople'";
$sql="SELECT name, label, type, param FROM ".MAIN_DB_PREFIX."extrafields WHERE elementtype = 'socpeople'";
$resql=$this->db->query($sql);
if ($resql) // This can fail when class is used on old database (during migration for example)
{
Expand Down
2 changes: 1 addition & 1 deletion htdocs/filefunc.inc.php
Expand Up @@ -29,7 +29,7 @@
* \brief File that include conf.php file and commons lib like functions.lib.php
*/

if (! defined('DOL_VERSION')) define('DOL_VERSION','3.5.3');
if (! defined('DOL_VERSION')) define('DOL_VERSION','3.5.4');
if (! defined('EURO')) define('EURO',chr(128));

// Define syslog constants
Expand Down
4 changes: 2 additions & 2 deletions htdocs/fourn/class/fournisseur.facture.class.php
Expand Up @@ -518,7 +518,7 @@ function update($user=0, $notrigger=0)
if (isset($this->fk_user_valid)) $this->fk_user_valid=trim($this->fk_user_valid);
if (isset($this->fk_facture_source)) $this->fk_facture_source=trim($this->fk_facture_source);
if (isset($this->fk_project)) $this->fk_project=trim($this->fk_project);
if (isset($this->fk_cond_reglement)) $this->fk_cond_reglement=trim($this->fk_cond_reglement);
if (isset($this->cond_reglement_id)) $this->cond_reglement_id=trim($this->cond_reglement_id);
if (isset($this->note_private)) $this->note=trim($this->note_private);
if (isset($this->note_public)) $this->note_public=trim($this->note_public);
if (isset($this->model_pdf)) $this->model_pdf=trim($this->model_pdf);
Expand Down Expand Up @@ -556,7 +556,7 @@ function update($user=0, $notrigger=0)
$sql.= " fk_user_valid=".(isset($this->fk_user_valid)?$this->fk_user_valid:"null").",";
$sql.= " fk_facture_source=".(isset($this->fk_facture_source)?$this->fk_facture_source:"null").",";
$sql.= " fk_projet=".(isset($this->fk_project)?$this->fk_project:"null").",";
$sql.= " fk_cond_reglement=".(isset($this->fk_cond_reglement)?$this->fk_cond_reglement:"null").",";
$sql.= " fk_cond_reglement=".(isset($this->cond_reglement_id)?$this->cond_reglement_id:"null").",";
$sql.= " date_lim_reglement=".(dol_strlen($this->date_echeance)!=0 ? "'".$this->db->idate($this->date_echeance)."'" : 'null').",";
$sql.= " note_private=".(isset($this->note_private)?"'".$this->db->escape($this->note_private)."'":"null").",";
$sql.= " note_public=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").",";
Expand Down
30 changes: 15 additions & 15 deletions htdocs/main.inc.php
Expand Up @@ -360,16 +360,16 @@ function analyse_sql_and_script(&$var, $type)
// It is not already authenticated and it requests the login / password
include_once DOL_DOCUMENT_ROOT.'/core/lib/security2.lib.php';

$dol_dst_observed=GETPOST("dst_observed",3);
$dol_dst_first=GETPOST("dst_first",3);
$dol_dst_second=GETPOST("dst_second",3);
$dol_screenwidth=GETPOST("screenwidth",3);
$dol_screenheight=GETPOST("screenheight",3);
$dol_hide_topmenu=GETPOST('dol_hide_topmenu',3);
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu',3);
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen',3);
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover',3);
$dol_use_jmobile=GETPOST('dol_use_jmobile',3);
$dol_dst_observed=GETPOST("dst_observed",'int',3);
$dol_dst_first=GETPOST("dst_first",'int',3);
$dol_dst_second=GETPOST("dst_second",'int',3);
$dol_screenwidth=GETPOST("screenwidth",'int',3);
$dol_screenheight=GETPOST("screenheight",'int',3);
$dol_hide_topmenu=GETPOST('dol_hide_topmenu','int',3);
$dol_hide_leftmenu=GETPOST('dol_hide_leftmenu','int',3);
$dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen','int',3);
$dol_no_mouse_hover=GETPOST('dol_no_mouse_hover','int',3);
$dol_use_jmobile=GETPOST('dol_use_jmobile','int',3);
//dol_syslog("POST key=".join(array_keys($_POST),',').' value='.join($_POST,','));

// If in demo mode, we check we go to home page through the public/demo/index.php page
Expand Down Expand Up @@ -1035,11 +1035,11 @@ function top_htmlhead($head, $title='', $disablejs=0, $disablehead=0, $arrayofjs
$themeparam='?lang='.$langs->defaultlang.'&amp;theme='.$conf->theme.(GETPOST('optioncss')?'&amp;optioncss='.GETPOST('optioncss','alpha',1):'').'&amp;userid='.$user->id.'&amp;entity='.$conf->entity;
$themeparam.=($ext?'&amp;'.$ext:'');
if (! empty($_SESSION['dol_resetcache'])) $themeparam.='&amp;dol_resetcache='.$_SESSION['dol_resetcache'];
if (GETPOST('dol_hide_topmenu')) { $themeparam.='&amp;dol_hide_topmenu='.GETPOST('dol_hide_topmenu'); }
if (GETPOST('dol_hide_leftmenu')) { $themeparam.='&amp;dol_hide_leftmenu='.GETPOST('dol_hide_leftmenu'); }
if (GETPOST('dol_optimize_smallscreen')) { $themeparam.='&amp;dol_optimize_smallscreen='.GETPOST('dol_optimize_smallscreen'); }
if (GETPOST('dol_no_mouse_hover')) { $themeparam.='&amp;dol_no_mouse_hover='.GETPOST('dol_no_mouse_hover'); }
if (GETPOST('dol_use_jmobile')) { $themeparam.='&amp;dol_use_jmobile='.GETPOST('dol_use_jmobile'); $conf->dol_use_jmobile=GETPOST('dol_use_jmobile'); }
if (GETPOST('dol_hide_topmenu')) { $themeparam.='&amp;dol_hide_topmenu='.GETPOST('dol_hide_topmenu','int'); }
if (GETPOST('dol_hide_leftmenu')) { $themeparam.='&amp;dol_hide_leftmenu='.GETPOST('dol_hide_leftmenu','int'); }
if (GETPOST('dol_optimize_smallscreen')) { $themeparam.='&amp;dol_optimize_smallscreen='.GETPOST('dol_optimize_smallscreen','int'); }
if (GETPOST('dol_no_mouse_hover')) { $themeparam.='&amp;dol_no_mouse_hover='.GETPOST('dol_no_mouse_hover','int'); }
if (GETPOST('dol_use_jmobile')) { $themeparam.='&amp;dol_use_jmobile='.GETPOST('dol_use_jmobile','int'); $conf->dol_use_jmobile=GETPOST('dol_use_jmobile','int'); }
//print 'themepath='.$themepath.' themeparam='.$themeparam;exit;
print '<link rel="stylesheet" type="text/css" title="default" href="'.$themepath.$themeparam.'">'."\n";

Expand Down
9 changes: 6 additions & 3 deletions htdocs/master.inc.php
Expand Up @@ -160,19 +160,22 @@
{
$conf->entity = GETPOST("entity",'int');
}
else if (defined('DOLENTITY') && is_int(DOLENTITY)) // For public page with MultiCompany module
else if (defined('DOLENTITY') && is_numeric(DOLENTITY)) // For public page with MultiCompany module
{
$conf->entity = DOLENTITY;
}
else if (!empty($_COOKIE['DOLENTITY'])) // For other application with MultiCompany module
else if (!empty($_COOKIE['DOLENTITY'])) // For other application with MultiCompany module (TODO: We should remove this. entity to use should never be stored into client side)
{
$conf->entity = $_COOKIE['DOLENTITY'];
}
else if (! empty($conf->multicompany->force_entity) && is_int($conf->multicompany->force_entity)) // To force entity in login page
else if (! empty($conf->multicompany->force_entity) && is_numeric($conf->multicompany->force_entity)) // To force entity in login page
{
$conf->entity = $conf->multicompany->force_entity;
}

// Sanitize entity
if (! is_numeric($conf->entity)) $conf->entity=1;

//print "Will work with data into entity instance number '".$conf->entity."'";

// Here we read database (llx_const table) and define $conf->global->XXX var.
Expand Down
10 changes: 5 additions & 5 deletions htdocs/public/demo/index.php
Expand Up @@ -33,11 +33,11 @@
$langs->load("install");
$langs->load("other");

$conf->dol_hide_topmenu=GETPOST('dol_hide_topmenu');
$conf->dol_hide_leftmenu=GETPOST('dol_hide_leftmenu');
$conf->dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen');
$conf->dol_no_mouse_hover=GETPOST('dol_no_mouse_hover');
$conf->dol_use_jmobile=GETPOST('dol_use_jmobile');
$conf->dol_hide_topmenu=GETPOST('dol_hide_topmenu','int');
$conf->dol_hide_leftmenu=GETPOST('dol_hide_leftmenu','int');
$conf->dol_optimize_smallscreen=GETPOST('dol_optimize_smallscreen','int');
$conf->dol_no_mouse_hover=GETPOST('dol_no_mouse_hover','int');
$conf->dol_use_jmobile=GETPOST('dol_use_jmobile','int');

// Security check
global $dolibarr_main_demo;
Expand Down
4 changes: 2 additions & 2 deletions htdocs/public/members/new.php
Expand Up @@ -38,11 +38,11 @@
define("NOLOGIN",1); // This means this output page does not require to be logged.
define("NOCSRFCHECK",1); // We accept to go on this page from external web site.

// For MultiCompany module.
// For MultiCompany module.
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_int($entity)) define("DOLENTITY", $entity);
if (is_numeric($entity)) define("DOLENTITY", $entity);

require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
Expand Down
4 changes: 2 additions & 2 deletions htdocs/public/members/public_card.php
Expand Up @@ -27,11 +27,11 @@
define("NOLOGIN",1); // This means this output page does not require to be logged.
define("NOCSRFCHECK",1); // We accept to go on this page from external web site.

// For MultiCompany module.
// For MultiCompany module.
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_int($entity)) define("DOLENTITY", $entity);
if (is_numeric($entity)) define("DOLENTITY", $entity);

require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
Expand Down
4 changes: 2 additions & 2 deletions htdocs/public/members/public_list.php
Expand Up @@ -27,11 +27,11 @@
define("NOLOGIN",1); // This means this output page does not require to be logged.
define("NOCSRFCHECK",1); // We accept to go on this page from external web site.

// For MultiCompany module.
// For MultiCompany module.
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_int($entity)) define("DOLENTITY", $entity);
if (is_numeric($entity)) define("DOLENTITY", $entity);

require '../../main.inc.php';

Expand Down
4 changes: 2 additions & 2 deletions htdocs/public/paybox/newpayment.php
Expand Up @@ -27,11 +27,11 @@
define("NOLOGIN",1); // This means this output page does not require to be logged.
define("NOCSRFCHECK",1); // We accept to go on this page from external web site.

// For MultiCompany module.
// For MultiCompany module.
// Do not use GETPOST here, function is not defined and define must be done before including main.inc.php
// TODO This should be useless. Because entity must be retreive from object ref and not from url.
$entity=(! empty($_GET['entity']) ? (int) $_GET['entity'] : (! empty($_POST['entity']) ? (int) $_POST['entity'] : 1));
if (is_int($entity)) define("DOLENTITY", $entity);
if (is_numeric($entity)) define("DOLENTITY", $entity);

require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/paybox/lib/paybox.lib.php';
Expand Down

0 comments on commit b4c7a2d

Please sign in to comment.