http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/constant-values.html
----------------------------------------------------------------------
diff --git a/docs/api/constant-values.html b/docs/api/constant-values.html
index cdec598..075dd22 100644
--- a/docs/api/constant-values.html
+++ b/docs/api/constant-values.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:51 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:47 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Constant Field Values (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>Constant Field Values (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Constant Field Values (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="Constant Field Values (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {
@@ -773,21 +773,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>AND</code></td>
-<td class="colLast"><code>125</code></td>
+<td class="colLast"><code>126</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.AS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>AS</code></td>
-<td class="colLast"><code>138</code></td>
+<td class="colLast"><code>139</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ASCII_DIGIT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ASCII_DIGIT</code></td>
-<td class="colLast"><code>145</code></td>
+<td class="colLast"><code>146</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ASSIGN">
@@ -829,7 +829,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>BUILT_IN</code></td>
-<td class="colLast"><code>102</code></td>
+<td class="colLast"><code>103</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.CALL">
@@ -850,14 +850,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSE_BRACKET</code></td>
-<td class="colLast"><code>132</code></td>
+<td class="colLast"><code>133</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.CLOSE_PAREN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSE_PAREN</code></td>
-<td class="colLast"><code>134</code></td>
+<td class="colLast"><code>135</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.CLOSE_TAG1">
@@ -878,21 +878,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSING_CURLY_BRACKET</code></td>
-<td class="colLast"><code>136</code></td>
+<td class="colLast"><code>137</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.COLON">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>COLON</code></td>
-<td class="colLast"><code>130</code></td>
+<td class="colLast"><code>131</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.COMMA">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>COMMA</code></td>
-<td class="colLast"><code>128</code></td>
+<td class="colLast"><code>129</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.COMMENT">
@@ -920,7 +920,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DECIMAL</code></td>
-<td class="colLast"><code>97</code></td>
+<td class="colLast"><code>98</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DEFAUL">
@@ -941,21 +941,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIRECTIVE_END</code></td>
-<td class="colLast"><code>146</code></td>
+<td class="colLast"><code>147</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DIV_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIV_EQUALS</code></td>
-<td class="colLast"><code>110</code></td>
+<td class="colLast"><code>111</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DIVIDE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIVIDE</code></td>
-<td class="colLast"><code>123</code></td>
+<td class="colLast"><code>124</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.DOLLAR_INTERPOLATION_OPENING">
@@ -969,49 +969,49 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT</code></td>
-<td class="colLast"><code>98</code></td>
+<td class="colLast"><code>99</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DOT_DOT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT</code></td>
-<td class="colLast"><code>99</code></td>
+<td class="colLast"><code>100</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DOT_DOT_ASTERISK">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT_ASTERISK</code></td>
-<td class="colLast"><code>101</code></td>
+<td class="colLast"><code>102</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DOT_DOT_LESS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT_LESS</code></td>
-<td class="colLast"><code>100</code></td>
+<td class="colLast"><code>101</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DOUBLE_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOUBLE_EQUALS</code></td>
-<td class="colLast"><code>105</code></td>
+<td class="colLast"><code>106</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.DOUBLE_STAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOUBLE_STAR</code></td>
-<td class="colLast"><code>121</code></td>
+<td class="colLast"><code>122</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ELLIPSIS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ELLIPSIS</code></td>
-<td class="colLast"><code>122</code></td>
+<td class="colLast"><code>123</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ELSE">
@@ -1032,7 +1032,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EMPTY_DIRECTIVE_END</code></td>
-<td class="colLast"><code>147</code></td>
+<td class="colLast"><code>148</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.END_ASSIGN">
@@ -1193,7 +1193,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EQUALS</code></td>
-<td class="colLast"><code>104</code></td>
+<td class="colLast"><code>105</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ESCAPE">
@@ -1207,42 +1207,42 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_CHAR</code></td>
-<td class="colLast"><code>91</code></td>
+<td class="colLast"><code>92</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ESCAPED_GT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_GT</code></td>
-<td class="colLast"><code>116</code></td>
+<td class="colLast"><code>117</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ESCAPED_GTE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_GTE</code></td>
-<td class="colLast"><code>117</code></td>
+<td class="colLast"><code>118</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ESCAPED_ID_CHAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_ID_CHAR</code></td>
-<td class="colLast"><code>143</code></td>
+<td class="colLast"><code>144</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.EXCLAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EXCLAM</code></td>
-<td class="colLast"><code>127</code></td>
+<td class="colLast"><code>128</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.EXISTS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EXISTS</code></td>
-<td class="colLast"><code>103</code></td>
+<td class="colLast"><code>104</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.EXPRESSION_COMMENT">
@@ -1263,7 +1263,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>FALSE</code></td>
-<td class="colLast"><code>94</code></td>
+<td class="colLast"><code>95</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.FLUSH">
@@ -1326,14 +1326,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ID</code></td>
-<td class="colLast"><code>140</code></td>
+<td class="colLast"><code>141</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ID_START_CHAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ID_START_CHAR</code></td>
-<td class="colLast"><code>144</code></td>
+<td class="colLast"><code>145</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.IF">
@@ -1354,7 +1354,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>IN</code></td>
-<td class="colLast"><code>137</code></td>
+<td class="colLast"><code>138</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.IN_PAREN">
@@ -1368,7 +1368,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>INTEGER</code></td>
-<td class="colLast"><code>96</code></td>
+<td class="colLast"><code>97</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.ITEMS">
@@ -1382,21 +1382,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>KEEP_GOING</code></td>
-<td class="colLast"><code>154</code></td>
+<td class="colLast"><code>155</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.LESS_THAN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LESS_THAN</code></td>
-<td class="colLast"><code>114</code></td>
+<td class="colLast"><code>115</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.LESS_THAN_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LESS_THAN_EQUALS</code></td>
-<td class="colLast"><code>115</code></td>
+<td class="colLast"><code>116</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.LIST">
@@ -1417,7 +1417,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LONE_LESS_THAN_OR_DASH</code></td>
-<td class="colLast"><code>155</code></td>
+<td class="colLast"><code>156</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.LTRIM">
@@ -1438,35 +1438,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MAYBE_END</code></td>
-<td class="colLast"><code>153</code></td>
+<td class="colLast"><code>154</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.MINUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS</code></td>
-<td class="colLast"><code>119</code></td>
+<td class="colLast"><code>120</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.MINUS_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS_EQUALS</code></td>
-<td class="colLast"><code>108</code></td>
+<td class="colLast"><code>109</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.MINUS_MINUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS_MINUS</code></td>
-<td class="colLast"><code>113</code></td>
+<td class="colLast"><code>114</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.MOD_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MOD_EQUALS</code></td>
-<td class="colLast"><code>111</code></td>
+<td class="colLast"><code>112</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.NAMED_PARAMETER_EXPRESSION">
@@ -1480,14 +1480,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NATURAL_GT</code></td>
-<td class="colLast"><code>148</code></td>
+<td class="colLast"><code>149</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NATURAL_GTE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NATURAL_GTE</code></td>
-<td class="colLast"><code>149</code></td>
+<td class="colLast"><code>150</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NESTED">
@@ -1497,33 +1497,33 @@
 <td class="colLast"><code>66</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a name="freemarker.core.ParseException.NO_DIRECTIVE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code>NO_DIRECTIVE</code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NO_PARSE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NO_PARSE</code></td>
 <td class="colLast"><code>7</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.NO_SPACE_EXPRESSION">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NO_SPACE_EXPRESSION</code></td>
 <td class="colLast"><code>6</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NOAUTOESC">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NOAUTOESC</code></td>
 <td class="colLast"><code>31</code></td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a name="freemarker.core.ParseException.NODIRECTIVE">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code>NODIRECTIVE</code></td>
-<td class="colLast"><code>1</code></td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NOESCAPE">
 <!--   -->
@@ -1536,7 +1536,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NON_ESCAPED_ID_START_CHAR</code></td>
-<td class="colLast"><code>142</code></td>
+<td class="colLast"><code>143</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NOPARSE">
@@ -1550,7 +1550,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NOT_EQUALS</code></td>
-<td class="colLast"><code>106</code></td>
+<td class="colLast"><code>107</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.NOTRIM">
@@ -1564,35 +1564,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_BRACKET</code></td>
-<td class="colLast"><code>131</code></td>
+<td class="colLast"><code>132</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.OPEN_MISPLACED_INTERPOLATION">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_MISPLACED_INTERPOLATION</code></td>
-<td class="colLast"><code>141</code></td>
+<td class="colLast"><code>142</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.OPEN_PAREN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_PAREN</code></td>
-<td class="colLast"><code>133</code></td>
+<td class="colLast"><code>134</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.OPENING_CURLY_BRACKET">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPENING_CURLY_BRACKET</code></td>
-<td class="colLast"><code>135</code></td>
+<td class="colLast"><code>136</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.OR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OR</code></td>
-<td class="colLast"><code>126</code></td>
+<td class="colLast"><code>127</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.OUTPUTFORMAT">
@@ -1606,35 +1606,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PERCENT</code></td>
-<td class="colLast"><code>124</code></td>
+<td class="colLast"><code>125</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.PLUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS</code></td>
-<td class="colLast"><code>118</code></td>
+<td class="colLast"><code>119</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.PLUS_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS_EQUALS</code></td>
-<td class="colLast"><code>107</code></td>
+<td class="colLast"><code>108</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.PLUS_PLUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS_PLUS</code></td>
-<td class="colLast"><code>112</code></td>
+<td class="colLast"><code>113</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.RAW_STRING">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>RAW_STRING</code></td>
-<td class="colLast"><code>93</code></td>
+<td class="colLast"><code>94</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.RECOVER">
@@ -1669,7 +1669,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>SEMICOLON</code></td>
-<td class="colLast"><code>129</code></td>
+<td class="colLast"><code>130</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.SEP">
@@ -1707,153 +1707,160 @@
 <td class="colLast"><code>57</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a 
name="freemarker.core.ParseException.SQUARE_BRACKET_INTERPOLATION_OPENING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code>SQUARE_BRACKET_INTERPOLATION_OPENING</code></td>
+<td class="colLast"><code>84</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.START_TAG">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>START_TAG</code></td>
 <td class="colLast"><code>2</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.STATIC_TEXT_FALSE_ALARM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_FALSE_ALARM</code></td>
 <td class="colLast"><code>81</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.STATIC_TEXT_NON_WS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_NON_WS</code></td>
 <td class="colLast"><code>80</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.STATIC_TEXT_WS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_WS</code></td>
 <td class="colLast"><code>79</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.STOP">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STOP</code></td>
 <td class="colLast"><code>25</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.STRING_LITERAL">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STRING_LITERAL</code></td>
-<td class="colLast"><code>92</code></td>
+<td class="colLast"><code>93</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.SWITCH">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>SWITCH</code></td>
 <td class="colLast"><code>14</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.TERMINATING_EXCLAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERMINATING_EXCLAM</code></td>
-<td class="colLast"><code>151</code></td>
+<td class="colLast"><code>152</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.TERMINATING_WHITESPACE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERMINATING_WHITESPACE</code></td>
-<td class="colLast"><code>150</code></td>
+<td class="colLast"><code>151</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TERSE_COMMENT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERSE_COMMENT</code></td>
 <td class="colLast"><code>34</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.TERSE_COMMENT_END">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERSE_COMMENT_END</code></td>
-<td class="colLast"><code>152</code></td>
+<td class="colLast"><code>153</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TIMES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TIMES</code></td>
-<td class="colLast"><code>120</code></td>
+<td class="colLast"><code>121</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TIMES_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TIMES_EQUALS</code></td>
-<td class="colLast"><code>109</code></td>
+<td class="colLast"><code>110</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TRANSFORM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRANSFORM</code></td>
 <td class="colLast"><code>23</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TRIM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRIM</code></td>
 <td class="colLast"><code>60</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.TRIVIAL_FTL_HEADER">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRIVIAL_FTL_HEADER</code></td>
 <td class="colLast"><code>77</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.TRUE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRUE</code></td>
-<td class="colLast"><code>95</code></td>
+<td class="colLast"><code>96</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.UNIFIED_CALL">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNIFIED_CALL</code></td>
 <td class="colLast"><code>74</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.UNIFIED_CALL_END">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNIFIED_CALL_END</code></td>
 <td class="colLast"><code>75</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.core.ParseException.UNKNOWN_DIRECTIVE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNKNOWN_DIRECTIVE</code></td>
 <td class="colLast"><code>78</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.USING">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>USING</code></td>
-<td class="colLast"><code>139</code></td>
+<td class="colLast"><code>140</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a name="freemarker.core.ParseException.VISIT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
@@ -2575,166 +2582,208 @@
 <td class="colLast"><code>20</code></td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.DOLLAR_INTERPOLATION_SYNTAX">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#DOLLAR_INTERPOLATION_SYNTAX">DOLLAR_INTERPOLATION_SYNTAX</a></code></td>
+<td class="colLast"><code>21</code></td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY">ENABLE_IF_DEFAULT_AUTO_ESCAPING_POLICY</a></code></td>
 <td class="colLast"><code>21</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY">ENABLE_IF_SUPPORTED_AUTO_ESCAPING_POLICY</a></code></td>
 <td class="colLast"><code>22</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.INCOMPATIBLE_ENHANCEMENTS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#INCOMPATIBLE_ENHANCEMENTS">INCOMPATIBLE_ENHANCEMENTS</a></code></td>
 <td class="colLast"><code>"incompatible_enhancements"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS">INCOMPATIBLE_IMPROVEMENTS</a></code></td>
 <td class="colLast"><code>"incompatible_improvements"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY">INCOMPATIBLE_IMPROVEMENTS_KEY</a></code></td>
 <td class="colLast"><code>"incompatible_improvements"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE">INCOMPATIBLE_IMPROVEMENTS_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"incompatibleImprovements"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE">INCOMPATIBLE_IMPROVEMENTS_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"incompatible_improvements"</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#INTERPOLATION_SYNTAX_KEY">INTERPOLATION_SYNTAX_KEY</a></code></td>
+<td class="colLast"><code>"interpolation_syntax"</code></td>
+</tr>
 <tr class="rowColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY_CAMEL_CASE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#INTERPOLATION_SYNTAX_KEY_CAMEL_CASE">INTERPOLATION_SYNTAX_KEY_CAMEL_CASE</a></code></td>
+<td class="colLast"><code>"interpolationSyntax"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.INTERPOLATION_SYNTAX_KEY_SNAKE_CASE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#INTERPOLATION_SYNTAX_KEY_SNAKE_CASE">INTERPOLATION_SYNTAX_KEY_SNAKE_CASE</a></code></td>
+<td class="colLast"><code>"interpolation_syntax"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.LEGACY_INTERPOLATION_SYNTAX">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#LEGACY_INTERPOLATION_SYNTAX">LEGACY_INTERPOLATION_SYNTAX</a></code></td>
+<td class="colLast"><code>20</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.LEGACY_NAMING_CONVENTION">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#LEGACY_NAMING_CONVENTION">LEGACY_NAMING_CONVENTION</a></code></td>
 <td class="colLast"><code>11</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#LOCALIZED_LOOKUP_KEY">LOCALIZED_LOOKUP_KEY</a></code></td>
 <td class="colLast"><code>"localized_lookup"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#LOCALIZED_LOOKUP_KEY_CAMEL_CASE">LOCALIZED_LOOKUP_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"localizedLookup"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.LOCALIZED_LOOKUP_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#LOCALIZED_LOOKUP_KEY_SNAKE_CASE">LOCALIZED_LOOKUP_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"localized_lookup"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.NAMING_CONVENTION_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#NAMING_CONVENTION_KEY">NAMING_CONVENTION_KEY</a></code></td>
 <td class="colLast"><code>"naming_convention"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.NAMING_CONVENTION_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#NAMING_CONVENTION_KEY_CAMEL_CASE">NAMING_CONVENTION_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"namingConvention"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.NAMING_CONVENTION_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#NAMING_CONVENTION_KEY_SNAKE_CASE">NAMING_CONVENTION_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"naming_convention"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.OUTPUT_FORMAT_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#OUTPUT_FORMAT_KEY">OUTPUT_FORMAT_KEY</a></code></td>
 <td class="colLast"><code>"output_format"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.OUTPUT_FORMAT_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#OUTPUT_FORMAT_KEY_CAMEL_CASE">OUTPUT_FORMAT_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"outputFormat"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.OUTPUT_FORMAT_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#OUTPUT_FORMAT_KEY_SNAKE_CASE">OUTPUT_FORMAT_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"output_format"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY</a></code></td>
 <td class="colLast"><code>"recognize_standard_file_extensions"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"recognizeStandardFileExtensions"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE">RECOGNIZE_STANDARD_FILE_EXTENSIONS_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"recognize_standard_file_extensions"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY</a></code></td>
 <td class="colLast"><code>"registered_custom_output_formats"</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_CAMEL_CASE</a></code></td>
 <td class="colLast"><code>"registeredCustomOutputFormats"</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;java.lang.String</code></td>
 <td><code><a 
href="freemarker/template/Configuration.html#REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE">REGISTERED_CUSTOM_OUTPUT_FORMATS_KEY_SNAKE_CASE</a></code></td>
 <td class="colLast"><code>"registered_custom_output_formats"</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a 
name="freemarker.template.Configuration.SQUARE_BRACKET_INTERPOLATION_SYNTAX">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a 
href="freemarker/template/Configuration.html#SQUARE_BRACKET_INTERPOLATION_SYNTAX">SQUARE_BRACKET_INTERPOLATION_SYNTAX</a></code></td>
+<td class="colLast"><code>22</code></td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Configuration.SQUARE_BRACKET_TAG_SYNTAX">
 <!--   -->
@@ -2981,21 +3030,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>AND</code></td>
-<td class="colLast"><code>125</code></td>
+<td class="colLast"><code>126</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.AS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>AS</code></td>
-<td class="colLast"><code>138</code></td>
+<td class="colLast"><code>139</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ASCII_DIGIT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ASCII_DIGIT</code></td>
-<td class="colLast"><code>145</code></td>
+<td class="colLast"><code>146</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ASSIGN">
@@ -3037,7 +3086,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>BUILT_IN</code></td>
-<td class="colLast"><code>102</code></td>
+<td class="colLast"><code>103</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.CALL">
@@ -3058,14 +3107,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSE_BRACKET</code></td>
-<td class="colLast"><code>132</code></td>
+<td class="colLast"><code>133</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.CLOSE_PAREN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSE_PAREN</code></td>
-<td class="colLast"><code>134</code></td>
+<td class="colLast"><code>135</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.CLOSE_TAG1">
@@ -3086,21 +3135,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>CLOSING_CURLY_BRACKET</code></td>
-<td class="colLast"><code>136</code></td>
+<td class="colLast"><code>137</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.COLON">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>COLON</code></td>
-<td class="colLast"><code>130</code></td>
+<td class="colLast"><code>131</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.COMMA">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>COMMA</code></td>
-<td class="colLast"><code>128</code></td>
+<td class="colLast"><code>129</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.COMMENT">
@@ -3128,7 +3177,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DECIMAL</code></td>
-<td class="colLast"><code>97</code></td>
+<td class="colLast"><code>98</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DEFAUL">
@@ -3149,21 +3198,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIRECTIVE_END</code></td>
-<td class="colLast"><code>146</code></td>
+<td class="colLast"><code>147</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DIV_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIV_EQUALS</code></td>
-<td class="colLast"><code>110</code></td>
+<td class="colLast"><code>111</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DIVIDE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DIVIDE</code></td>
-<td class="colLast"><code>123</code></td>
+<td class="colLast"><code>124</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOLLAR_INTERPOLATION_OPENING">
@@ -3177,49 +3226,49 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT</code></td>
-<td class="colLast"><code>98</code></td>
+<td class="colLast"><code>99</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOT_DOT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT</code></td>
-<td class="colLast"><code>99</code></td>
+<td class="colLast"><code>100</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOT_DOT_ASTERISK">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT_ASTERISK</code></td>
-<td class="colLast"><code>101</code></td>
+<td class="colLast"><code>102</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOT_DOT_LESS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOT_DOT_LESS</code></td>
-<td class="colLast"><code>100</code></td>
+<td class="colLast"><code>101</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOUBLE_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOUBLE_EQUALS</code></td>
-<td class="colLast"><code>105</code></td>
+<td class="colLast"><code>106</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.DOUBLE_STAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>DOUBLE_STAR</code></td>
-<td class="colLast"><code>121</code></td>
+<td class="colLast"><code>122</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ELLIPSIS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ELLIPSIS</code></td>
-<td class="colLast"><code>122</code></td>
+<td class="colLast"><code>123</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ELSE">
@@ -3240,7 +3289,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EMPTY_DIRECTIVE_END</code></td>
-<td class="colLast"><code>147</code></td>
+<td class="colLast"><code>148</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.END_ASSIGN">
@@ -3401,7 +3450,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EQUALS</code></td>
-<td class="colLast"><code>104</code></td>
+<td class="colLast"><code>105</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ESCAPE">
@@ -3415,42 +3464,42 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_CHAR</code></td>
-<td class="colLast"><code>91</code></td>
+<td class="colLast"><code>92</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ESCAPED_GT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_GT</code></td>
-<td class="colLast"><code>116</code></td>
+<td class="colLast"><code>117</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ESCAPED_GTE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_GTE</code></td>
-<td class="colLast"><code>117</code></td>
+<td class="colLast"><code>118</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ESCAPED_ID_CHAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ESCAPED_ID_CHAR</code></td>
-<td class="colLast"><code>143</code></td>
+<td class="colLast"><code>144</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.EXCLAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EXCLAM</code></td>
-<td class="colLast"><code>127</code></td>
+<td class="colLast"><code>128</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.EXISTS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>EXISTS</code></td>
-<td class="colLast"><code>103</code></td>
+<td class="colLast"><code>104</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.EXPRESSION_COMMENT">
@@ -3471,7 +3520,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>FALSE</code></td>
-<td class="colLast"><code>94</code></td>
+<td class="colLast"><code>95</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.FLUSH">
@@ -3534,14 +3583,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ID</code></td>
-<td class="colLast"><code>140</code></td>
+<td class="colLast"><code>141</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ID_START_CHAR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>ID_START_CHAR</code></td>
-<td class="colLast"><code>144</code></td>
+<td class="colLast"><code>145</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.IF">
@@ -3562,7 +3611,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>IN</code></td>
-<td class="colLast"><code>137</code></td>
+<td class="colLast"><code>138</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.IN_PAREN">
@@ -3576,7 +3625,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>INTEGER</code></td>
-<td class="colLast"><code>96</code></td>
+<td class="colLast"><code>97</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.ITEMS">
@@ -3590,21 +3639,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>KEEP_GOING</code></td>
-<td class="colLast"><code>154</code></td>
+<td class="colLast"><code>155</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.LESS_THAN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LESS_THAN</code></td>
-<td class="colLast"><code>114</code></td>
+<td class="colLast"><code>115</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.LESS_THAN_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LESS_THAN_EQUALS</code></td>
-<td class="colLast"><code>115</code></td>
+<td class="colLast"><code>116</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.LIST">
@@ -3625,7 +3674,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>LONE_LESS_THAN_OR_DASH</code></td>
-<td class="colLast"><code>155</code></td>
+<td class="colLast"><code>156</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.LTRIM">
@@ -3646,35 +3695,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MAYBE_END</code></td>
-<td class="colLast"><code>153</code></td>
+<td class="colLast"><code>154</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.MINUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS</code></td>
-<td class="colLast"><code>119</code></td>
+<td class="colLast"><code>120</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.MINUS_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS_EQUALS</code></td>
-<td class="colLast"><code>108</code></td>
+<td class="colLast"><code>109</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.MINUS_MINUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MINUS_MINUS</code></td>
-<td class="colLast"><code>113</code></td>
+<td class="colLast"><code>114</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.MOD_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>MOD_EQUALS</code></td>
-<td class="colLast"><code>111</code></td>
+<td class="colLast"><code>112</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NAMED_PARAMETER_EXPRESSION">
@@ -3688,14 +3737,14 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NATURAL_GT</code></td>
-<td class="colLast"><code>148</code></td>
+<td class="colLast"><code>149</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NATURAL_GTE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NATURAL_GTE</code></td>
-<td class="colLast"><code>149</code></td>
+<td class="colLast"><code>150</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NESTED">
@@ -3705,33 +3754,33 @@
 <td class="colLast"><code>66</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NO_DIRECTIVE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code>NO_DIRECTIVE</code></td>
+<td class="colLast"><code>1</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NO_PARSE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NO_PARSE</code></td>
 <td class="colLast"><code>7</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NO_SPACE_EXPRESSION">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NO_SPACE_EXPRESSION</code></td>
 <td class="colLast"><code>6</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NOAUTOESC">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NOAUTOESC</code></td>
 <td class="colLast"><code>31</code></td>
 </tr>
-<tr class="altColor">
-<td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NODIRECTIVE">
-<!--   -->
-</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
-<td><code>NODIRECTIVE</code></td>
-<td class="colLast"><code>1</code></td>
-</tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NOESCAPE">
 <!--   -->
@@ -3744,7 +3793,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NON_ESCAPED_ID_START_CHAR</code></td>
-<td class="colLast"><code>142</code></td>
+<td class="colLast"><code>143</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NOPARSE">
@@ -3758,7 +3807,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>NOT_EQUALS</code></td>
-<td class="colLast"><code>106</code></td>
+<td class="colLast"><code>107</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.NOTRIM">
@@ -3772,35 +3821,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_BRACKET</code></td>
-<td class="colLast"><code>131</code></td>
+<td class="colLast"><code>132</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.OPEN_MISPLACED_INTERPOLATION">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_MISPLACED_INTERPOLATION</code></td>
-<td class="colLast"><code>141</code></td>
+<td class="colLast"><code>142</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.OPEN_PAREN">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPEN_PAREN</code></td>
-<td class="colLast"><code>133</code></td>
+<td class="colLast"><code>134</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.OPENING_CURLY_BRACKET">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OPENING_CURLY_BRACKET</code></td>
-<td class="colLast"><code>135</code></td>
+<td class="colLast"><code>136</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.OR">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>OR</code></td>
-<td class="colLast"><code>126</code></td>
+<td class="colLast"><code>127</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.OUTPUTFORMAT">
@@ -3814,35 +3863,35 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PERCENT</code></td>
-<td class="colLast"><code>124</code></td>
+<td class="colLast"><code>125</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.PLUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS</code></td>
-<td class="colLast"><code>118</code></td>
+<td class="colLast"><code>119</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.PLUS_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS_EQUALS</code></td>
-<td class="colLast"><code>107</code></td>
+<td class="colLast"><code>108</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.PLUS_PLUS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>PLUS_PLUS</code></td>
-<td class="colLast"><code>112</code></td>
+<td class="colLast"><code>113</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.RAW_STRING">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>RAW_STRING</code></td>
-<td class="colLast"><code>93</code></td>
+<td class="colLast"><code>94</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.RECOVER">
@@ -3877,7 +3926,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>SEMICOLON</code></td>
-<td class="colLast"><code>129</code></td>
+<td class="colLast"><code>130</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.SEP">
@@ -3915,153 +3964,160 @@
 <td class="colLast"><code>57</code></td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.SQUARE_BRACKET_INTERPOLATION_OPENING">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code>SQUARE_BRACKET_INTERPOLATION_OPENING</code></td>
+<td class="colLast"><code>84</code></td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.START_TAG">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>START_TAG</code></td>
 <td class="colLast"><code>2</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.STATIC_TEXT_FALSE_ALARM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_FALSE_ALARM</code></td>
 <td class="colLast"><code>81</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.STATIC_TEXT_NON_WS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_NON_WS</code></td>
 <td class="colLast"><code>80</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.STATIC_TEXT_WS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STATIC_TEXT_WS</code></td>
 <td class="colLast"><code>79</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.STOP">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STOP</code></td>
 <td class="colLast"><code>25</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.STRING_LITERAL">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>STRING_LITERAL</code></td>
-<td class="colLast"><code>92</code></td>
+<td class="colLast"><code>93</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.SWITCH">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>SWITCH</code></td>
 <td class="colLast"><code>14</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TERMINATING_EXCLAM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERMINATING_EXCLAM</code></td>
-<td class="colLast"><code>151</code></td>
+<td class="colLast"><code>152</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TERMINATING_WHITESPACE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERMINATING_WHITESPACE</code></td>
-<td class="colLast"><code>150</code></td>
+<td class="colLast"><code>151</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TERSE_COMMENT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERSE_COMMENT</code></td>
 <td class="colLast"><code>34</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TERSE_COMMENT_END">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TERSE_COMMENT_END</code></td>
-<td class="colLast"><code>152</code></td>
+<td class="colLast"><code>153</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TIMES">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TIMES</code></td>
-<td class="colLast"><code>120</code></td>
+<td class="colLast"><code>121</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TIMES_EQUALS">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TIMES_EQUALS</code></td>
-<td class="colLast"><code>109</code></td>
+<td class="colLast"><code>110</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TRANSFORM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRANSFORM</code></td>
 <td class="colLast"><code>23</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TRIM">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRIM</code></td>
 <td class="colLast"><code>60</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TRIVIAL_FTL_HEADER">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRIVIAL_FTL_HEADER</code></td>
 <td class="colLast"><code>77</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.TRUE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>TRUE</code></td>
-<td class="colLast"><code>95</code></td>
+<td class="colLast"><code>96</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.UNIFIED_CALL">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNIFIED_CALL</code></td>
 <td class="colLast"><code>74</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.UNIFIED_CALL_END">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNIFIED_CALL_END</code></td>
 <td class="colLast"><code>75</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.UNKNOWN_DIRECTIVE">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>UNKNOWN_DIRECTIVE</code></td>
 <td class="colLast"><code>78</code></td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.USING">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
 <td><code>USING</code></td>
-<td class="colLast"><code>139</code></td>
+<td class="colLast"><code>140</code></td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a 
name="freemarker.template.Template.WrongEncodingException.VISIT">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/deprecated-list.html
----------------------------------------------------------------------
diff --git a/docs/api/deprecated-list.html b/docs/api/deprecated-list.html
index 428ce72..e0408f9 100644
--- a/docs/api/deprecated-list.html
+++ b/docs/api/deprecated-list.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:52 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:48 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Deprecated List (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>Deprecated List (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
 <script type="text/javascript" src="script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Deprecated List (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="Deprecated List (FreeMarker 2.3.28 API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/AndMatcher.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/AndMatcher.html 
b/docs/api/freemarker/cache/AndMatcher.html
index a01b84d..a2a6392 100644
--- a/docs/api/freemarker/cache/AndMatcher.html
+++ b/docs/api/freemarker/cache/AndMatcher.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>AndMatcher (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>AndMatcher (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="AndMatcher (FreeMarker 2.3.27-incubating 
API)";
+            parent.document.title="AndMatcher (FreeMarker 2.3.28 API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/ByteArrayTemplateLoader.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/ByteArrayTemplateLoader.html 
b/docs/api/freemarker/cache/ByteArrayTemplateLoader.html
index 342eb98..47dca03 100644
--- a/docs/api/freemarker/cache/ByteArrayTemplateLoader.html
+++ b/docs/api/freemarker/cache/ByteArrayTemplateLoader.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ByteArrayTemplateLoader (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>ByteArrayTemplateLoader (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ByteArrayTemplateLoader (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="ByteArrayTemplateLoader (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {
@@ -400,7 +400,11 @@ implements <a 
href="../../freemarker/cache/TemplateLoader.html" title="interface
  <a 
href="../../freemarker/cache/TemplateLoader.html#findTemplateSource-java.lang.String-"><code>TemplateLoader.findTemplateSource(String)</code></a>
 and <a 
href="../../freemarker/cache/TemplateLoader.html#getLastModified-java.lang.Object-"><code>TemplateLoader.getLastModified(Object)</code></a>
 it was determined that the cached copy
  of the template is stale. Then, if it turns out that the 
<code>encoding</code> parameter used doesn't match the actual
  template content (based on the <code>#ftl encoding=...</code> header), this 
method will be called for a second time
- with the correct <code>encoding</code> parameter value.</div>
+ with the correct <code>encoding</code> parameter value.
+ 
+ <p>
+ Unlike <a 
href="../../freemarker/cache/TemplateLoader.html#findTemplateSource-java.lang.String-"><code>TemplateLoader.findTemplateSource(String)</code></a>,
 this method must not tolerate if the template is not found, and
+ must throw <code>IOException</code> in that case.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a 
href="../../freemarker/cache/TemplateLoader.html#getReader-java.lang.Object-java.lang.String-">getReader</a></code>&nbsp;in
 interface&nbsp;<code><a href="../../freemarker/cache/TemplateLoader.html" 
title="interface in freemarker.cache">TemplateLoader</a></code></dd>
@@ -412,9 +416,9 @@ implements <a 
href="../../freemarker/cache/TemplateLoader.html" title="interface
             to the byte representation of the template stream, and instead 
directly obtain a character stream.
             These loaders should ignore the encoding parameter.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>A <code>Reader</code> representing the template character stream. It's the 
responsibility of the caller (which
-         is <a href="../../freemarker/cache/TemplateCache.html" title="class 
in freemarker.cache"><code>TemplateCache</code></a> usually) to 
<code>close()</code> it. The <code>Reader</code> is not required to work after
-         the <code>templateSource</code> was closed (<a 
href="../../freemarker/cache/TemplateLoader.html#closeTemplateSource-java.lang.Object-"><code>TemplateLoader.closeTemplateSource(Object)</code></a>).</dd>
+<dd>A <code>Reader</code> representing the template character stream; not 
<code>null</code>. It's the responsibility of
+         the caller (which is <a 
href="../../freemarker/cache/TemplateCache.html" title="class in 
freemarker.cache"><code>TemplateCache</code></a> usually) to 
<code>close()</code> it. The <code>Reader</code> is not
+         required to work after the <code>templateSource</code> was closed (<a 
href="../../freemarker/cache/TemplateLoader.html#closeTemplateSource-java.lang.Object-"><code>TemplateLoader.closeTemplateSource(Object)</code></a>).</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code>java.io.UnsupportedEncodingException</code></dd>
 </dl>

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/CacheStorage.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/CacheStorage.html 
b/docs/api/freemarker/cache/CacheStorage.html
index 01abc21..ab0c428 100644
--- a/docs/api/freemarker/cache/CacheStorage.html
+++ b/docs/api/freemarker/cache/CacheStorage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CacheStorage (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>CacheStorage (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CacheStorage (FreeMarker 2.3.27-incubating 
API)";
+            parent.document.title="CacheStorage (FreeMarker 2.3.28 API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/CacheStorageWithGetSize.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/CacheStorageWithGetSize.html 
b/docs/api/freemarker/cache/CacheStorageWithGetSize.html
index 2f5abb3..7ea6f93 100644
--- a/docs/api/freemarker/cache/CacheStorageWithGetSize.html
+++ b/docs/api/freemarker/cache/CacheStorageWithGetSize.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>CacheStorageWithGetSize (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>CacheStorageWithGetSize (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="CacheStorageWithGetSize (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="CacheStorageWithGetSize (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/ClassTemplateLoader.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/ClassTemplateLoader.html 
b/docs/api/freemarker/cache/ClassTemplateLoader.html
index d943032..4ca86a7 100644
--- a/docs/api/freemarker/cache/ClassTemplateLoader.html
+++ b/docs/api/freemarker/cache/ClassTemplateLoader.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ClassTemplateLoader (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>ClassTemplateLoader (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ClassTemplateLoader (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="ClassTemplateLoader (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/ConcurrentCacheStorage.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/ConcurrentCacheStorage.html 
b/docs/api/freemarker/cache/ConcurrentCacheStorage.html
index ecf76ed..ae6b460 100644
--- a/docs/api/freemarker/cache/ConcurrentCacheStorage.html
+++ b/docs/api/freemarker/cache/ConcurrentCacheStorage.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConcurrentCacheStorage (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>ConcurrentCacheStorage (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConcurrentCacheStorage (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="ConcurrentCacheStorage (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/ConditionalTemplateConfigurationFactory.html
----------------------------------------------------------------------
diff --git 
a/docs/api/freemarker/cache/ConditionalTemplateConfigurationFactory.html 
b/docs/api/freemarker/cache/ConditionalTemplateConfigurationFactory.html
index 14105b7..88a5f3e 100644
--- a/docs/api/freemarker/cache/ConditionalTemplateConfigurationFactory.html
+++ b/docs/api/freemarker/cache/ConditionalTemplateConfigurationFactory.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ConditionalTemplateConfigurationFactory (FreeMarker 2.3.27-incubating 
API)</title>
-<meta name="date" content="2017-11-11">
+<title>ConditionalTemplateConfigurationFactory (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ConditionalTemplateConfigurationFactory 
(FreeMarker 2.3.27-incubating API)";
+            parent.document.title="ConditionalTemplateConfigurationFactory 
(FreeMarker 2.3.28 API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/FileExtensionMatcher.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/FileExtensionMatcher.html 
b/docs/api/freemarker/cache/FileExtensionMatcher.html
index 6a9fae3..902e331 100644
--- a/docs/api/freemarker/cache/FileExtensionMatcher.html
+++ b/docs/api/freemarker/cache/FileExtensionMatcher.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FileExtensionMatcher (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>FileExtensionMatcher (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileExtensionMatcher (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="FileExtensionMatcher (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/FileNameGlobMatcher.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/FileNameGlobMatcher.html 
b/docs/api/freemarker/cache/FileNameGlobMatcher.html
index dd3287e..6838f52 100644
--- a/docs/api/freemarker/cache/FileNameGlobMatcher.html
+++ b/docs/api/freemarker/cache/FileNameGlobMatcher.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FileNameGlobMatcher (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>FileNameGlobMatcher (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileNameGlobMatcher (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="FileNameGlobMatcher (FreeMarker 2.3.28 
API)";
         }
     }
     catch(err) {

http://git-wip-us.apache.org/repos/asf/freemarker-site/blob/e3ae7133/docs/api/freemarker/cache/FileTemplateLoader.html
----------------------------------------------------------------------
diff --git a/docs/api/freemarker/cache/FileTemplateLoader.html 
b/docs/api/freemarker/cache/FileTemplateLoader.html
index 115a378..27a6956 100644
--- a/docs/api/freemarker/cache/FileTemplateLoader.html
+++ b/docs/api/freemarker/cache/FileTemplateLoader.html
@@ -2,10 +2,10 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (1.8.0_144) on Sat Nov 11 19:25:47 CET 2017 -->
+<!-- Generated by javadoc (1.8.0_144) on Fri Mar 30 23:10:41 CEST 2018 -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>FileTemplateLoader (FreeMarker 2.3.27-incubating API)</title>
-<meta name="date" content="2017-11-11">
+<title>FileTemplateLoader (FreeMarker 2.3.28 API)</title>
+<meta name="date" content="2018-03-30">
 <link rel="stylesheet" type="text/css" href="../../stylesheet.css" 
title="Style">
 <script type="text/javascript" src="../../script.js"></script>
 </head>
@@ -13,7 +13,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="FileTemplateLoader (FreeMarker 
2.3.27-incubating API)";
+            parent.document.title="FileTemplateLoader (FreeMarker 2.3.28 API)";
         }
     }
     catch(err) {
@@ -476,7 +476,11 @@ public&nbsp;FileTemplateLoader()
  <a 
href="../../freemarker/cache/TemplateLoader.html#findTemplateSource-java.lang.String-"><code>TemplateLoader.findTemplateSource(String)</code></a>
 and <a 
href="../../freemarker/cache/TemplateLoader.html#getLastModified-java.lang.Object-"><code>TemplateLoader.getLastModified(Object)</code></a>
 it was determined that the cached copy
  of the template is stale. Then, if it turns out that the 
<code>encoding</code> parameter used doesn't match the actual
  template content (based on the <code>#ftl encoding=...</code> header), this 
method will be called for a second time
- with the correct <code>encoding</code> parameter value.</div>
+ with the correct <code>encoding</code> parameter value.
+ 
+ <p>
+ Unlike <a 
href="../../freemarker/cache/TemplateLoader.html#findTemplateSource-java.lang.String-"><code>TemplateLoader.findTemplateSource(String)</code></a>,
 this method must not tolerate if the template is not found, and
+ must throw <code>IOException</code> in that case.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a 
href="../../freemarker/cache/TemplateLoader.html#getReader-java.lang.Object-java.lang.String-">getReader</a></code>&nbsp;in
 interface&nbsp;<code><a href="../../freemarker/cache/TemplateLoader.html" 
title="interface in freemarker.cache">TemplateLoader</a></code></dd>
@@ -488,9 +492,9 @@ public&nbsp;FileTemplateLoader()
             to the byte representation of the template stream, and instead 
directly obtain a character stream.
             These loaders should ignore the encoding parameter.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>A <code>Reader</code> representing the template character stream. It's the 
responsibility of the caller (which
-         is <a href="../../freemarker/cache/TemplateCache.html" title="class 
in freemarker.cache"><code>TemplateCache</code></a> usually) to 
<code>close()</code> it. The <code>Reader</code> is not required to work after
-         the <code>templateSource</code> was closed (<a 
href="../../freemarker/cache/TemplateLoader.html#closeTemplateSource-java.lang.Object-"><code>TemplateLoader.closeTemplateSource(Object)</code></a>).</dd>
+<dd>A <code>Reader</code> representing the template character stream; not 
<code>null</code>. It's the responsibility of
+         the caller (which is <a 
href="../../freemarker/cache/TemplateCache.html" title="class in 
freemarker.cache"><code>TemplateCache</code></a> usually) to 
<code>close()</code> it. The <code>Reader</code> is not
+         required to work after the <code>templateSource</code> was closed (<a 
href="../../freemarker/cache/TemplateLoader.html#closeTemplateSource-java.lang.Object-"><code>TemplateLoader.closeTemplateSource(Object)</code></a>).</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code>java.io.IOException</code> - if an I/O error occurs while accessing 
the stream.</dd>
 </dl>

Reply via email to