__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
<?xml version="1.0" encoding="UTF-8" ?>
<COMPATIBILITY_MATRIX>
  <MOODLE version="1.5">
    <DATABASE level="required">
      <VENDOR name="mysql" version="3.23" />
      <VENDOR name="postgres" version="7.4" />
    </DATABASE>
    <PHP version="4.1.0" level="required" />
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="mbstring" level="optional" />
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.6">
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
    </DATABASE>
    <PHP version="4.3.0" level="required" />
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.7">
    <UNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="unicoderecommended" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
        <BYPASS function="bypass_mysql416_reqs" message="mysql416bypassed" />
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.8">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
      </VENDOR>
      <VENDOR name="postgres" version="7.4" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="curlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ctyperecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
  </MOODLE>
  <MOODLE version="1.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="4.1.16">
        <FEEDBACK>
          <ON_ERROR message="mysql416required" />
        </FEEDBACK>
      </VENDOR>
      <VENDOR name="postgres" version="8.0" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="9.0" />
    </DATABASE>
    <PHP version="4.3.0" level="required">
      <RESTRICT function="restrict_php50_version" message="php50restricted" />
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iconvrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="curlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ctyperecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="question/upgrade.php" function="question_check_no_rqp_questions" level="optional">
        <FEEDBACK>
          <ON_CHECK message="qtyperqpwillberemovedanyway" />
          <ON_OK message="qtyperqpwillberemoved" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/upgrade.php" function="question_random_check" level="optional">
        <FEEDBACK>
          <ON_OK message="questioncwqpfsok" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_register_globals" level="required">
        <FEEDBACK>
          <ON_CHECK message="globalswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="2.0" requires="1.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.0.25" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.2.8" level="required">
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="optional">
        <FEEDBACK>
          <ON_CHECK message="gdrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_php533" level="optional">
        <FEEDBACK>
          <ON_CHECK message="php533warning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="2.1" requires="1.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.0.25" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.3.2" level="required">
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="optional">
        <FEEDBACK>
          <ON_CHECK message="gdrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.2" requires="1.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.0.25" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.3.2" level="required">
    </PHP>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="optional">
        <FEEDBACK>
          <ON_CHECK message="gdrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.3" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.1.33" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.3.2" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="optional">
        <FEEDBACK>
          <ON_CHECK message="gdrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.4" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.1.33" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.3.2" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="optional">
        <FEEDBACK>
          <ON_CHECK message="gdrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.5" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mysql" version="5.1.33" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="odbc_mssql" version="9.0" />
      <VENDOR name="mssql_n" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
      <VENDOR name="sqlite" version="2.0" />
    </DATABASE>
    <PHP version="5.3.3" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="40M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.6" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.3.5" />
      <VENDOR name="mysql" version="5.1.33" />
      <VENDOR name="postgres" version="8.3" />
      <VENDOR name="mssql" version="9.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.3.3" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="optional">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="64M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="safe_mode" value="0" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingsafemode" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
  </MOODLE>
  <MOODLE version="2.7" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.4.4" level="required">
      <RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="2.8" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.4.4" level="required">
      <RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="2.9" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.4.4" level="required">
      <RESTRICT function="restrict_php_version_7" message="unsupportedphpversion7" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.0" requires="2.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.4.4" level="required">
      <RESTRICT function="restrict_php_version_71" message="unsupportedphpversion71" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.1" requires="2.7">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.4.4" level="required">
      <RESTRICT function="restrict_php_version_71" message="unsupportedphpversion71" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.2" requires="2.7">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.1" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.6.5" level="required">
      <RESTRICT function="restrict_php_version_72" message="unsupportedphpversion72" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opensslrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.3" requires="2.7">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.3" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="5.6.5" level="required">
      <RESTRICT function="restrict_php_version_72" message="unsupportedphpversion72" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="optional">
        <FEEDBACK>
          <ON_CHECK message="intlrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.4" requires="3.0">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.3" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="7.0.0" level="required">
      <RESTRICT function="restrict_php_version_73" message="unsupportedphpversion73" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.5" requires="3.1">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.5.31" />
      <VENDOR name="postgres" version="9.3" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="10.2" />
    </DATABASE>
    <PHP version="7.0.0" level="required">
      <RESTRICT function="restrict_php_version_73" message="unsupportedphpversion73" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.6" requires="3.1">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.6" />
      <VENDOR name="postgres" version="9.4" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.0.0" level="required">
      <RESTRICT function="restrict_php_version_74" message="unsupportedphpversion74" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.7" requires="3.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.6" />
      <VENDOR name="postgres" version="9.4" />
      <VENDOR name="mssql" version="10.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.1.0" level="required">
      <RESTRICT function="restrict_php_version_74" message="unsupportedphpversion74" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.8" requires="3.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="5.5.31" />
      <VENDOR name="mysql" version="5.6" />
      <VENDOR name="postgres" version="9.4" />
      <VENDOR name="mssql" version="11.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.1.0" level="required">
      <RESTRICT function="restrict_php_version_80" message="unsupportedphpversion80" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="optional">
        <FEEDBACK>
          <ON_CHECK message="mbstringrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.9" requires="3.5">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.2.29" />
      <VENDOR name="mysql" version="5.6" />
      <VENDOR name="postgres" version="9.5" />
      <VENDOR name="mssql" version="11.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.2.0" level="required">
      <RESTRICT function="restrict_php_version_80" message="unsupportedphpversion80" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_igbinary322_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="igbinary322buggyversion" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.10" requires="3.5">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.2.29" />
      <VENDOR name="mysql" version="5.7" />
      <VENDOR name="postgres" version="9.6" />
      <VENDOR name="mssql" version="11.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.2.0" level="required">
      <RESTRICT function="restrict_php_version_80" message="unsupportedphpversion80" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_igbinary322_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="igbinary322buggyversion" />
        </FEEDBACK>
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="3.11" requires="3.6">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.2.29" />
      <VENDOR name="mysql" version="5.7" />
      <VENDOR name="postgres" version="9.6" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.3.0" level="required">
      <RESTRICT function="restrict_php_version_81" message="unsupportedphpversion81" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.0" requires="3.6">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.2.29" />
      <VENDOR name="mysql" version="5.7" />
      <VENDOR name="postgres" version="10" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="11.2" />
    </DATABASE>
    <PHP version="7.3.0" level="required">
      <RESTRICT function="restrict_php_version_81" message="unsupportedphpversion81" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlrpc" level="optional">
        <FEEDBACK>
          <ON_CHECK message="xmlrpcrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="optional"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.1" requires="3.9">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.4" />
      <VENDOR name="mysql" version="5.7" />
      <VENDOR name="postgres" version="12" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="19" />
    </DATABASE>
    <PHP version="7.4.0" level="required">
      <RESTRICT function="restrict_php_version_82" message="unsupportedphpversion82" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="optional"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="optional">
        <FEEDBACK>
          <ON_CHECK message="sixtyfourbitswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.2" requires="3.11.8">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.6.7" />
      <VENDOR name="mysql" version="8.0" />
      <VENDOR name="postgres" version="13" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="19" />
    </DATABASE>
    <PHP version="8.0.0" level="required">
      <RESTRICT function="restrict_php_version_83" message="unsupportedphpversion83" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="required"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
        <FEEDBACK>
          <ON_ERROR message="sixtyfourbitsrequired" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.3" requires="3.11.8">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.6.7" />
      <VENDOR name="mysql" version="8.0" />
      <VENDOR name="postgres" version="13" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="19" />
    </DATABASE>
    <PHP version="8.0.0" level="required">
      <RESTRICT function="restrict_php_version_83" message="unsupportedphpversion83" />
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="required"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
        <FEEDBACK>
          <ON_ERROR message="sixtyfourbitsrequired" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.4" requires="4.1.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.6.7" />
      <VENDOR name="mysql" version="8.0" />
      <VENDOR name="postgres" version="13" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="19" />
    </DATABASE>
    <PHP version="8.1.0" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="required"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
        <FEEDBACK>
          <ON_ERROR message="sixtyfourbitsrequired" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="4.5" requires="4.1.2">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.6.7" />
      <VENDOR name="mysql" version="8.0" />
      <VENDOR name="postgres" version="13" />
      <VENDOR name="mssql" version="14.0" />
      <VENDOR name="oracle" version="19" />
    </DATABASE>
    <PHP version="8.1.0" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="required"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
        <FEEDBACK>
          <ON_ERROR message="sixtyfourbitsrequired" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_oracle_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
  <MOODLE version="5.0" requires="4.2.3">
    <UNICODE level="required">
      <FEEDBACK>
        <ON_ERROR message="unicoderequired" />
      </FEEDBACK>
    </UNICODE>
    <DATABASE level="required">
      <VENDOR name="mariadb" version="10.11.0" />
      <VENDOR name="mysql" version="8.4" />
      <VENDOR name="postgres" version="14" />
      <VENDOR name="mssql" version="14.0" />
    </DATABASE>
    <PHP version="8.2.0" level="required">
    </PHP>
    <PCREUNICODE level="optional">
      <FEEDBACK>
        <ON_CHECK message="pcreunicodewarning" />
      </FEEDBACK>
    </PCREUNICODE>
    <PHP_EXTENSIONS>
      <PHP_EXTENSION name="iconv" level="required">
        <FEEDBACK>
          <ON_ERROR message="iconvrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="mbstring" level="required">
        <FEEDBACK>
          <ON_ERROR message="mbstringrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="curl" level="required">
        <FEEDBACK>
          <ON_ERROR message="curlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="openssl" level="required">
        <FEEDBACK>
          <ON_ERROR message="opensslrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="tokenizer" level="optional">
        <FEEDBACK>
          <ON_CHECK message="tokenizerrecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="soap" level="optional">
        <FEEDBACK>
          <ON_CHECK message="soaprecommended" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="ctype" level="required">
        <FEEDBACK>
          <ON_ERROR message="ctyperequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zip" level="required">
        <FEEDBACK>
          <ON_ERROR message="ziprequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="zlib" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="gd" level="required">
        <FEEDBACK>
          <ON_ERROR message="gdrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="simplexml" level="required">
        <FEEDBACK>
          <ON_ERROR message="simplexmlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="spl" level="required">
        <FEEDBACK>
          <ON_ERROR message="splrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="pcre" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="dom" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xml" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="xmlreader" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="intl" level="required">
        <FEEDBACK>
          <ON_ERROR message="intlrequired" />
        </FEEDBACK>
      </PHP_EXTENSION>
      <PHP_EXTENSION name="json" level="required">
      </PHP_EXTENSION>
      <PHP_EXTENSION name="hash" level="required"/>
      <PHP_EXTENSION name="fileinfo" level="required"/>
      <PHP_EXTENSION name="sodium" level="required"/>
      <PHP_EXTENSION name="exif" level="optional"/>
    </PHP_EXTENSIONS>
    <PHP_SETTINGS>
      <PHP_SETTING name="memory_limit" value="96M" level="required">
        <FEEDBACK>
          <ON_ERROR message="settingmemorylimit" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="file_uploads" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="settingfileuploads" />
        </FEEDBACK>
      </PHP_SETTING>
      <PHP_SETTING name="opcache.enable" value="1" level="optional">
        <FEEDBACK>
          <ON_CHECK message="opcacherecommended" />
        </FEEDBACK>
      </PHP_SETTING>
    </PHP_SETTINGS>
    <CUSTOM_CHECKS>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbstorageengine" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
        <FEEDBACK>
          <ON_ERROR message="quizattemptsupgradedmessage" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
        <FEEDBACK>
          <ON_CHECK message="slashargumentswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unsupporteddbtablerowformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="unoconvwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
        <FEEDBACK>
          <ON_CHECK message="libcurlwarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfileformat" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddbfilepertable" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
        <FEEDBACK>
          <ON_ERROR message="unsupporteddblargeprefix" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
        <FEEDBACK>
          <ON_CHECK message="ishttpswarning" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
        <FEEDBACK>
          <ON_CHECK message="incompleteunicodesupport" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
        <FEEDBACK>
          <ON_ERROR message="sixtyfourbitsrequired" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
        <FEEDBACK>
          <ON_CHECK message="iscustomadminwarnings" />
        </FEEDBACK>
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
      </CUSTOM_CHECK>
      <CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
      </CUSTOM_CHECK>
    </CUSTOM_CHECKS>
  </MOODLE>
</COMPATIBILITY_MATRIX>

Filemanager

Name Type Size Permission Actions
amd Folder 0777
classes Folder 0777
cli Folder 0777
course Folder 0777
mnet Folder 0777
presets Folder 0777
registration Folder 0777
roles Folder 0777
settings Folder 0777
templates Folder 0777
tests Folder 0777
tool Folder 0777
user Folder 0777
webservice Folder 0777
UPGRADING.md File 373 B 0777
ai.php File 2.17 KB 0777
antiviruses.php File 3.57 KB 0777
auth.php File 2.61 KB 0777
blocks.php File 3.34 KB 0777
category.php File 6.33 KB 0777
communication.php File 2.13 KB 0777
contentbank.php File 2.98 KB 0777
courseformats.php File 2.79 KB 0777
cron.php File 2.82 KB 0777
customfields.php File 2.14 KB 0777
dataformats.php File 2.71 KB 0777
editors.php File 3.35 KB 0777
enrol.php File 3.93 KB 0777
environment.php File 4.2 KB 0777
environment.xml File 172.87 KB 0777
filters.php File 8.95 KB 0777
hooks.php File 1.33 KB 0777
index.php File 41.18 KB 0777
lib.php File 4.41 KB 0777
localplugins.php File 2.66 KB 0777
lock.php File 2.89 KB 0777
mailout-debugger.php File 2.19 KB 0777
media.php File 2.21 KB 0777
message.php File 4.7 KB 0777
modules.php File 2.35 KB 0777
moodlenet_oauth2_callback.php File 2.04 KB 0777
oauth2callback.php File 2.65 KB 0777
phpinfo.php File 968 B 0777
plagiarism.php File 3.18 KB 0777
plugins.php File 8.55 KB 0777
portfolio.php File 8.41 KB 0777
process_email.php File 1.72 KB 0777
purgecaches.php File 2.54 KB 0777
qbankplugins.php File 2.4 KB 0777
qbehaviours.php File 8.47 KB 0777
qtypes.php File 10.33 KB 0777
renderer.php File 96.09 KB 0777
reports.php File 4.11 KB 0777
repository.php File 16.67 KB 0777
repositoryinstance.php File 5.75 KB 0777
resetemoticons.php File 1.63 KB 0777
search.php File 3.2 KB 0777
searchareas.php File 11.03 KB 0777
searchreindex.php File 3.3 KB 0777
settings.php File 6.19 KB 0777
swaggerui.php File 2.41 KB 0777
tasklogs.php File 3.09 KB 0777
testoutgoingmailconf.php File 4.53 KB 0777
themeselector.php File 5.25 KB 0777
thirdpartylibs.php File 2.56 KB 0777
timezone.php File 1.55 KB 0777
updatesetting.php File 2.53 KB 0777
upgrade.txt File 4.26 KB 0777
upgradesettings.php File 2.48 KB 0777
user.php File 8.23 KB 0777
Filemanager