OpenLiteSpeed Server Tweaks Script

Discussion in 'OpenLiteSpeed Tips and Guides' started by eva2000, Aug 25, 2013.

  1. eva2000

    eva2000 Member

    I'm the kind of person who likes to install and configure OpenLiteSpeed to be tweaked to my own liking for out of the box installations. As such I script alot of my software installs.

    This includes OpenLiteSpeed tweaking :D

    Thought I'd share my shell script to be run in SSH telnet after initial OpenLiteSpeed installation. Feel free to modify it for your own needs.

    Save contents in file named lsws_tweaks.sh and chmod +x it.

    Code:
    #!/bin/bash
    #########################################
    DESC='OpenLiteSpeed server tweaks'
    BYLINE='by George Liu (eva2000) vbtechsupport.com'
    #########################################
    VER='0.0.1'
    DT=`date +"%d%m%y-%H%M%S"`
    RESTART='y'              # restart server after tweaks ?
    
    LSWSCONFIG='/usr/local/lsws/conf/httpd_config.xml'
    USER='nobody'          # change to your preferred user to run OLS
    GROUP='nobody'      # change to your preferred group to run OLS
    #########################################
    CPUS=$(grep "processor" /proc/cpuinfo |wc -l)
    CPUS=$(echo $CPUS/2 | bc)
    WORKERCHECK=$(grep '<httpdWorkers>' ${LSWSCONFIG})
    #########################################
    if [[ -z "$WORKERCHECK" ]]; then
    sed -i "4 i\  <httpdWorkers>${CPUS}<\/httpdWorkers>" ${LSWSCONFIG}
    fi
    #########################################
    echo "-------------------------------------------------------------------"
    echo "$DESC"
    echo "$BYLINE"
    echo "-------------------------------------------------------------------"
    echo
    echo -n "Backup $LSWSCONFIG"
    cp -a $LSWSCONFIG ${LSWSCONFIG}_backup_${DT}
    echo " done"
    echo "Backup at ${LSWSCONFIG}_backup_${DT}"
    echo -n "General Tweaks"
    sed -i 's/<indexFiles>index.html<\/indexFiles>/<indexFiles>index.html index.php<\/indexFiles>/g' ${LSWSCONFIG}
    sed -i "s/<user>nobody<\/user>/<user>${USER}<\/user>/g" ${LSWSCONFIG}
    sed -i "s/<group>nobody<\/group>/<group>${GROUP}<\/group>/g" ${LSWSCONFIG}
    sed -i "s/<inMemBufSize>60M<\/inMemBufSize>/<inMemBufSize>120M<\/inMemBufSize>/g" ${LSWSCONFIG}
    echo " done"
    echo -n "Tuning Tweaks"
    sed -i "s/<smartKeepAlive>0<\/smartKeepAlive>/<smartKeepAlive>1<\/smartKeepAlive>/g" ${LSWSCONFIG}
    sed -i "s/<sndBufSize>0<\/sndBufSize>/<sndBufSize>65535<\/sndBufSize>/g" ${LSWSCONFIG}
    sed -i "s/<rcvBufSize>0<\/rcvBufSize>/<rcvBufSize>65535<\/rcvBufSize>/g" ${LSWSCONFIG}
    sed -i "s/<maxCachedFileSize>4096<\/maxCachedFileSize>/<maxCachedFileSize>16384<\/maxCachedFileSize>/g" ${LSWSCONFIG}
    sed -i "s/<totalInMemCacheSize>20M<\/totalInMemCacheSize>/<totalInMemCacheSize>40M<\/totalInMemCacheSize>/g" ${LSWSCONFIG}
    sed -i "s/<maxMMapFileSize>256K<\/maxMMapFileSize>/<maxMMapFileSize>512K<\/maxMMapFileSize>/g" ${LSWSCONFIG}
    sed -i "s/<totalMMapCacheSize>40M<\/totalMMapCacheSize>/<totalMMapCacheSize>80M<\/totalMMapCacheSize>/g" ${LSWSCONFIG}
    echo " done"
    echo -n "External App lsphp5 Tweaks"
    sed -i "s/<maxConns>35<\/maxConns>/<maxConns>50<\/maxConns>/g" ${LSWSCONFIG}
    sed -i "s/<env>PHP_LSAPI_CHILDREN=35<\/env>/<env>PHP_LSAPI_CHILDREN=50<\/env>/g" ${LSWSCONFIG}
    sed -i "s/<memSoftLimit>450M<\/memSoftLimit>/<memSoftLimit>900M<\/memSoftLimit>/g" ${LSWSCONFIG}
    sed -i "s/<memHardLimit>500M<\/memHardLimit>/<memHardLimit>1000M<\/memHardLimit>/g" ${LSWSCONFIG}
    sed -i "s/<procSoftLimit>300<\/procSoftLimit>/<procSoftLimit>1000<\/procSoftLimit>/g" ${LSWSCONFIG}
    sed -i "s/<procHardLimit>400<\/procHardLimit>/<procHardLimit>1200<\/procHardLimit>/g" ${LSWSCONFIG}
    echo " done"
    echo
    echo "-------------------------------------------------------------------"
    echo "Compare Tweaks vs Default settings"
    echo "-------------------------------------------------------------------"
    sdiff $LSWSCONFIG ${LSWSCONFIG}_backup_${DT}
    echo
    echo "-------------------------------------------------------------------"
    echo "Compare Tweaks vs Default settings"
    echo "-------------------------------------------------------------------"
    sdiff -s $LSWSCONFIG ${LSWSCONFIG}_backup_${DT}
    echo "-------------------------------------------------------------------"
    echo
    if [[ "$RESTART" = [yY] ]]; then
        service lsws restart
    fi
    exit
    Sample output when you run the script

    Code:
    ./lsws_tweaks.sh
    -------------------------------------------------------------------
    OpenLiteSpeed server tweaks
    by George Liu (eva2000) vbtechsupport.com
    -------------------------------------------------------------------
    
    Backup /usr/local/lsws/conf/httpd_config.xml done
    Backup at /usr/local/lsws/conf/httpd_config.xml_backup_250813-115116
    General Tweaks done
    Tuning Tweaks done
    External App lsphp5 Tweaks done
    -------------------------------------------------------------------
    Compare Tweaks vs Default settings
    -------------------------------------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>                          <?xml version="1.0" encoding="UTF-8"?>
    <httpServerConfig>                                              <httpServerConfig>
      <serverName>lshttpd</serverName>                                <serverName>lshttpd</serverName>
      <httpdWorkers>4</httpdWorkers>                                  <httpdWorkers>4</httpdWorkers>
      <user>nobody</user>                                            <user>nobody</user>
      <group>nobody</group>                                          <group>nobody</group>
      <priority>0</priority>                                          <priority>0</priority>
      <inMemBufSize>120M</inMemBufSize>                          |  <inMemBufSize>60M</inMemBufSize>
      <swappingDir>/tmp/lshttpd/swap</swappingDir>                    <swappingDir>/tmp/lshttpd/swap</swappingDir>
      <autoRestart>1</autoRestart>                                    <autoRestart>1</autoRestart>
      <autoFix503>1</autoFix503>                                      <autoFix503>1</autoFix503>
      <mime>$SERVER_ROOT/conf/mime.properties</mime>                  <mime>$SERVER_ROOT/conf/mime.properties</mime>
      <showVersionNumber>0</showVersionNumber>                        <showVersionNumber>0</showVersionNumber>
      <adminRoot>$SERVER_ROOT/admin/</adminRoot>                      <adminRoot>$SERVER_ROOT/admin/</adminRoot>
      <logging>                                                      <logging>
        <log>                                                          <log>
          <fileName>$SERVER_ROOT/logs/error.log</fileName>                <fileName>$SERVER_ROOT/logs/error.log</fileName>
          <logLevel>DEBUG</logLevel>                                      <logLevel>DEBUG</logLevel>
          <debugLevel>0</debugLevel>                                      <debugLevel>0</debugLevel>
          <rollingSize>10M</rollingSize>                                  <rollingSize>10M</rollingSize>
          <enableStderrLog>1</enableStderrLog>                            <enableStderrLog>1</enableStderrLog>
        </log>                                                          </log>
        <accessLog>                                                    <accessLog>
          <fileName>$SERVER_ROOT/logs/access.log</fileName>              <fileName>$SERVER_ROOT/logs/access.log</fileName>
          <rollingSize>10M</rollingSize>                                  <rollingSize>10M</rollingSize>
          <keepDays>30</keepDays>                                        <keepDays>30</keepDays>
          <compressArchive>0</compressArchive>                            <compressArchive>0</compressArchive>
        </accessLog>                                                    </accessLog>
      </logging>                                                      </logging>
      <indexFiles>index.html index.php</indexFiles>              |  <indexFiles>index.html</indexFiles>
      <expires>                                                      <expires>
        <enableExpires>1</enableExpires>                                <enableExpires>1</enableExpires>
        <expiresByType>image/*=A604800, text/css=A604800, applica      <expiresByType>image/*=A604800, text/css=A604800, applica
      </expires>                                                      </expires>
      <tuning>                                                        <tuning>
        <eventDispatcher>best</eventDispatcher>                        <eventDispatcher>best</eventDispatcher>
        <SSLCryptoDevice>null</SSLCryptoDevice>                        <SSLCryptoDevice>null</SSLCryptoDevice>
        <maxConnections>2000</maxConnections>                          <maxConnections>2000</maxConnections>
        <maxSSLConnections>200</maxSSLConnections>                      <maxSSLConnections>200</maxSSLConnections>
        <connTimeout>300</connTimeout>                                  <connTimeout>300</connTimeout>
        <maxKeepAliveReq>10000</maxKeepAliveReq>                        <maxKeepAliveReq>10000</maxKeepAliveReq>
        <smartKeepAlive>1</smartKeepAlive>                        |    <smartKeepAlive>0</smartKeepAlive>
        <keepAliveTimeout>5</keepAliveTimeout>                          <keepAliveTimeout>5</keepAliveTimeout>
        <sndBufSize>65535</sndBufSize>                            |    <sndBufSize>0</sndBufSize>
        <rcvBufSize>65535</rcvBufSize>                            |    <rcvBufSize>0</rcvBufSize>
        <maxReqURLLen>8192</maxReqURLLen>                              <maxReqURLLen>8192</maxReqURLLen>
        <maxReqHeaderSize>16380</maxReqHeaderSize>                      <maxReqHeaderSize>16380</maxReqHeaderSize>
        <maxReqBodySize>2047M</maxReqBodySize>                          <maxReqBodySize>2047M</maxReqBodySize>
        <maxDynRespHeaderSize>8192</maxDynRespHeaderSize>              <maxDynRespHeaderSize>8192</maxDynRespHeaderSize>
        <maxDynRespSize>2047M</maxDynRespSize>                          <maxDynRespSize>2047M</maxDynRespSize>
        <maxCachedFileSize>16384</maxCachedFileSize>              |    <maxCachedFileSize>4096</maxCachedFileSize>
        <totalInMemCacheSize>40M</totalInMemCacheSize>            |    <totalInMemCacheSize>20M</totalInMemCacheSize>
        <maxMMapFileSize>512K</maxMMapFileSize>                  |    <maxMMapFileSize>256K</maxMMapFileSize>
        <totalMMapCacheSize>80M</totalMMapCacheSize>              |    <totalMMapCacheSize>40M</totalMMapCacheSize>
        <useSendfile>1</useSendfile>                                    <useSendfile>1</useSendfile>
        <enableGzipCompress>1</enableGzipCompress>                      <enableGzipCompress>1</enableGzipCompress>
        <enableDynGzipCompress>1</enableDynGzipCompress>                <enableDynGzipCompress>1</enableDynGzipCompress>
        <gzipCompressLevel>6</gzipCompressLevel>                        <gzipCompressLevel>6</gzipCompressLevel>
        <compressibleTypes>text/html</compressibleTypes>                <compressibleTypes>text/html</compressibleTypes>
        <gzipAutoUpdateStatic>1</gzipAutoUpdateStatic>                  <gzipAutoUpdateStatic>1</gzipAutoUpdateStatic>
        <gzipStaticCompressLevel>6</gzipStaticCompressLevel>            <gzipStaticCompressLevel>6</gzipStaticCompressLevel>
        <gzipMaxFileSize>1M</gzipMaxFileSize>                          <gzipMaxFileSize>1M</gzipMaxFileSize>
        <gzipMinFileSize>300</gzipMinFileSize>                          <gzipMinFileSize>300</gzipMinFileSize>
      </tuning>                                                      </tuning>
      <security>                                                      <security>
        <fileAccessControl>                                            <fileAccessControl>
          <followSymbolLink>1</followSymbolLink>                          <followSymbolLink>1</followSymbolLink>
          <checkSymbolLink>0</checkSymbolLink>                            <checkSymbolLink>0</checkSymbolLink>
          <requiredPermissionMask>000</requiredPermissionMask>            <requiredPermissionMask>000</requiredPermissionMask>
          <restrictedPermissionMask>000</restrictedPermissionMask        <restrictedPermissionMask>000</restrictedPermissionMask
        </fileAccessControl>                                            </fileAccessControl>
        <perClientConnLimit>                                            <perClientConnLimit>
          <staticReqPerSec>0</staticReqPerSec>                            <staticReqPerSec>0</staticReqPerSec>
          <dynReqPerSec>0</dynReqPerSec>                                  <dynReqPerSec>0</dynReqPerSec>
          <outBandwidth>0</outBandwidth>                                  <outBandwidth>0</outBandwidth>
          <inBandwidth>0</inBandwidth>                                    <inBandwidth>0</inBandwidth>
          <softLimit>10000</softLimit>                                    <softLimit>10000</softLimit>
          <hardLimit>10000</hardLimit>                                    <hardLimit>10000</hardLimit>
          <gracePeriod>15</gracePeriod>                                  <gracePeriod>15</gracePeriod>
          <banPeriod>300</banPeriod>                                      <banPeriod>300</banPeriod>
        </perClientConnLimit>                                          </perClientConnLimit>
        <CGIRLimit>                                                    <CGIRLimit>
          <maxCGIInstances>20</maxCGIInstances>                          <maxCGIInstances>20</maxCGIInstances>
          <minUID>11</minUID>                                            <minUID>11</minUID>
          <minGID>10</minGID>                                            <minGID>10</minGID>
          <priority>0</priority>                                          <priority>0</priority>
          <CPUSoftLimit>10</CPUSoftLimit>                                <CPUSoftLimit>10</CPUSoftLimit>
          <CPUHardLimit>50</CPUHardLimit>                                <CPUHardLimit>50</CPUHardLimit>
          <memSoftLimit>460M</memSoftLimit>                              <memSoftLimit>460M</memSoftLimit>
          <memHardLimit>470M</memHardLimit>                              <memHardLimit>470M</memHardLimit>
          <procSoftLimit>400</procSoftLimit>                              <procSoftLimit>400</procSoftLimit>
          <procHardLimit>450</procHardLimit>                              <procHardLimit>450</procHardLimit>
        </CGIRLimit>                                                    </CGIRLimit>
        <accessDenyDir>                                                <accessDenyDir>
          <dir>/</dir>                                                    <dir>/</dir>
          <dir>/etc/*</dir>                                              <dir>/etc/*</dir>
          <dir>/dev/*</dir>                                              <dir>/dev/*</dir>
          <dir>$SERVER_ROOT/conf/*</dir>                                  <dir>$SERVER_ROOT/conf/*</dir>
          <dir>$SERVER_ROOT/admin/conf/*</dir>                            <dir>$SERVER_ROOT/admin/conf/*</dir>
        </accessDenyDir>                                                </accessDenyDir>
        <accessControl>                                                <accessControl>
          <allow>ALL</allow>                                              <allow>ALL</allow>
        </accessControl>                                                </accessControl>
      </security>                                                    </security>
      <extProcessorList>                                              <extProcessorList>
        <extProcessor>                                                  <extProcessor>
          <type>lsapi</type>                                              <type>lsapi</type>
          <name>lsphp5</name>                                            <name>lsphp5</name>
          <address>uds://tmp/lshttpd/lsphp5.sock</address>                <address>uds://tmp/lshttpd/lsphp5.sock</address>
          <maxConns>50</maxConns>                                |      <maxConns>35</maxConns>
          <env>PHP_LSAPI_MAX_REQUESTS=10000</env>                        <env>PHP_LSAPI_MAX_REQUESTS=10000</env>
          <env>PHP_LSAPI_CHILDREN=50</env>                        |      <env>PHP_LSAPI_CHILDREN=35</env>
          <initTimeout>60</initTimeout>                                  <initTimeout>60</initTimeout>
          <retryTimeout>0</retryTimeout>                                  <retryTimeout>0</retryTimeout>
          <persistConn>1</persistConn>                                    <persistConn>1</persistConn>
          <respBuffer>0</respBuffer>                                      <respBuffer>0</respBuffer>
          <autoStart>1</autoStart>                                        <autoStart>1</autoStart>
          <path>$SERVER_ROOT/fcgi-bin/lsphp5</path>                      <path>$SERVER_ROOT/fcgi-bin/lsphp5</path>
          <backlog>100</backlog>                                          <backlog>100</backlog>
          <instances>1</instances>                                        <instances>1</instances>
          <priority>0</priority>                                          <priority>0</priority>
          <memSoftLimit>900M</memSoftLimit>                      |      <memSoftLimit>450M</memSoftLimit>
          <memHardLimit>1000M</memHardLimit>                      |      <memHardLimit>500M</memHardLimit>
          <procSoftLimit>1000</procSoftLimit>                    |      <procSoftLimit>300</procSoftLimit>
          <procHardLimit>1200</procHardLimit>                    |      <procHardLimit>400</procHardLimit>
        </extProcessor>                                                </extProcessor>
      </extProcessorList>                                            </extProcessorList>
      <scriptHandlerList>                                            <scriptHandlerList>
        <scriptHandler>                                                <scriptHandler>
          <suffix>php</suffix>                                            <suffix>php</suffix>
          <type>lsapi</type>                                              <type>lsapi</type>
          <handler>lsphp5</handler>                                      <handler>lsphp5</handler>
        </scriptHandler>                                                </scriptHandler>
      </scriptHandlerList>                                            </scriptHandlerList>
      <railsDefaults>                                                <railsDefaults>
        <railsEnv>1</railsEnv>                                          <railsEnv>1</railsEnv>
        <maxConns>5</maxConns>                                          <maxConns>5</maxConns>
        <env>LSAPI_MAX_REQS=1000</env>                                  <env>LSAPI_MAX_REQS=1000</env>
        <env>LSAPI_MAX_IDLE=60</env>                                    <env>LSAPI_MAX_IDLE=60</env>
        <initTimeout>60</initTimeout>                                  <initTimeout>60</initTimeout>
        <retryTimeout>0</retryTimeout>                                  <retryTimeout>0</retryTimeout>
        <pcKeepAliveTimeout>60</pcKeepAliveTimeout>                    <pcKeepAliveTimeout>60</pcKeepAliveTimeout>
        <respBuffer>0</respBuffer>                                      <respBuffer>0</respBuffer>
        <backlog>50</backlog>                                          <backlog>50</backlog>
        <runOnStartUp>1</runOnStartUp>                                  <runOnStartUp>1</runOnStartUp>
        <extMaxIdleTime>300</extMaxIdleTime>                            <extMaxIdleTime>300</extMaxIdleTime>
        <priority>3</priority>                                          <priority>3</priority>
        <memSoftLimit>550M</memSoftLimit>                              <memSoftLimit>550M</memSoftLimit>
        <memHardLimit>600M</memHardLimit>                              <memHardLimit>600M</memHardLimit>
        <procSoftLimit>1000</procSoftLimit>                      |    <procSoftLimit>300</procSoftLimit>
        <procHardLimit>1200</procHardLimit>                      |    <procHardLimit>400</procHardLimit>
      </railsDefaults>                                                </railsDefaults>
      <virtualHostList>                                              <virtualHostList>
        <virtualHost>                                                  <virtualHost>
          <name>Example</name>                                            <name>Example</name>
          <vhRoot>$SERVER_ROOT/DEFAULT/</vhRoot>                          <vhRoot>$SERVER_ROOT/DEFAULT/</vhRoot>
          <configFile>$VH_ROOT/conf/vhconf.xml</configFile>              <configFile>$VH_ROOT/conf/vhconf.xml</configFile>
          <allowSymbolLink>1</allowSymbolLink>                            <allowSymbolLink>1</allowSymbolLink>
          <enableScript>1</enableScript>                                  <enableScript>1</enableScript>
          <restrained>1</restrained>                                      <restrained>1</restrained>
          <setUIDMode>0</setUIDMode>                                      <setUIDMode>0</setUIDMode>
        </virtualHost>                                                  </virtualHost>
      </virtualHostList>                                              </virtualHostList>
      <listenerList>                                                  <listenerList>
        <listener>                                                      <listener>
          <name>Default</name>                                            <name>Default</name>
          <address>*:8088</address>                                      <address>*:8088</address>
          <secure>0</secure>                                              <secure>0</secure>
          <vhostMapList>                                                  <vhostMapList>
            <vhostMap>                                                      <vhostMap>
              <vhost>Example</vhost>                                          <vhost>Example</vhost>
              <domain>*</domain>                                              <domain>*</domain>
            </vhostMap>                                                    </vhostMap>
          </vhostMapList>                                                </vhostMapList>
        </listener>                                                    </listener>
      </listenerList>                                                </listenerList>
      <vhTemplateList>                                                <vhTemplateList>
        <vhTemplate>                                                    <vhTemplate>
          <name>centralConfigLog</name>                                  <name>centralConfigLog</name>
          <templateFile>$SERVER_ROOT/conf/templates/ccl.xml</temp        <templateFile>$SERVER_ROOT/conf/templates/ccl.xml</temp
          <listeners>Default</listeners>                                  <listeners>Default</listeners>
        </vhTemplate>                                                  </vhTemplate>
        <vhTemplate>                                                    <vhTemplate>
          <name>PHP_SuEXEC</name>                                        <name>PHP_SuEXEC</name>
          <templateFile>$SERVER_ROOT/conf/templates/phpsuexec.xml        <templateFile>$SERVER_ROOT/conf/templates/phpsuexec.xml
          <listeners>Default</listeners>                                  <listeners>Default</listeners>
        </vhTemplate>                                                  </vhTemplate>
        <vhTemplate>                                                    <vhTemplate>
          <name>EasyRailsWithSuEXEC</name>                                <name>EasyRailsWithSuEXEC</name>
          <templateFile>$SERVER_ROOT/conf/templates/rails.xml</te        <templateFile>$SERVER_ROOT/conf/templates/rails.xml</te
          <listeners>Default</listeners>                                  <listeners>Default</listeners>
        </vhTemplate>                                                  </vhTemplate>
      </vhTemplateList>                                              </vhTemplateList>
    </httpServerConfig>                                            </httpServerConfig>
    -------------------------------------------------------------------
    Compare Tweaks vs Default settings
    -------------------------------------------------------------------
      <inMemBufSize>120M</inMemBufSize>                          |  <inMemBufSize>60M</inMemBufSize>
      <indexFiles>index.html index.php</indexFiles>              |  <indexFiles>index.html</indexFiles>
        <smartKeepAlive>1</smartKeepAlive>                        |    <smartKeepAlive>0</smartKeepAlive>
        <sndBufSize>65535</sndBufSize>                            |    <sndBufSize>0</sndBufSize>
        <rcvBufSize>65535</rcvBufSize>                            |    <rcvBufSize>0</rcvBufSize>
        <maxCachedFileSize>16384</maxCachedFileSize>              |    <maxCachedFileSize>4096</maxCachedFileSize>
        <totalInMemCacheSize>40M</totalInMemCacheSize>            |    <totalInMemCacheSize>20M</totalInMemCacheSize>
        <maxMMapFileSize>512K</maxMMapFileSize>                  |    <maxMMapFileSize>256K</maxMMapFileSize>
        <totalMMapCacheSize>80M</totalMMapCacheSize>              |    <totalMMapCacheSize>40M</totalMMapCacheSize>
          <maxConns>50</maxConns>                                |      <maxConns>35</maxConns>
          <env>PHP_LSAPI_CHILDREN=50</env>                        |      <env>PHP_LSAPI_CHILDREN=35</env>
          <memSoftLimit>900M</memSoftLimit>                      |      <memSoftLimit>450M</memSoftLimit>
          <memHardLimit>1000M</memHardLimit>                      |      <memHardLimit>500M</memHardLimit>
          <procSoftLimit>1000</procSoftLimit>                    |      <procSoftLimit>300</procSoftLimit>
          <procHardLimit>1200</procHardLimit>                    |      <procHardLimit>400</procHardLimit>
        <procSoftLimit>1000</procSoftLimit>                      |    <procSoftLimit>300</procSoftLimit>
        <procHardLimit>1200</procHardLimit>                      |    <procHardLimit>400</procHardLimit>
    -------------------------------------------------------------------
    
     
    Robson, lsmichael and Slavik like this.
  2. Robson

    Robson Guest

    Nice, thank you very much!
     

Share This Page