rewind(_m444);
rewind(_m445);
	protected final void mXML_CDATA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {		int _ttype; Token _token=null; int _begin=text.length();		_ttype = XML_CDATA;		int _saveIndex;				_saveIndex=text.length();		mXML_CDATA_START(false);		text.setLength(_saveIndex);		{		_loop449:		do {			boolean synPredMatched444 = false;			if (((LA(1)==']') && ((LA(2) >= '\u0003' && LA(2) <= '\ufffe')) && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe')) && ((LA(4) >= '\u0003' && LA(4) <= '\ufffe')))) {				int _m444 = mark();				synPredMatched444 = true;				inputState.guessing++;				try {					{					match(']');					{					match(_tokenSet_17);					}					}				}				catch (RecognitionException pe) {					synPredMatched444 = false;				}				rewind(_m444);				inputState.guessing--;			}			if ( synPredMatched444 ) {				match(']');			}			else {				boolean synPredMatched447 = false;				if (((LA(1)==']') && (LA(2)==']') && ((LA(3) >= '\u0003' && LA(3) <= '\ufffe')) && ((LA(4) >= '\u0003' && LA(4) <= '\ufffe')))) {					int _m447 = mark();					synPredMatched447 = true;					inputState.guessing++;					try {						{						match(']');						match(']');						{						match(_tokenSet_16);						}						}					}					catch (RecognitionException pe) {						synPredMatched447 = false;					}					rewind(_m447);					inputState.guessing--;				}				if ( synPredMatched447 ) {					{					match(']');					match(']');					}				}				else if ((_tokenSet_17.member(LA(1)))) {					{					match(_tokenSet_17);					}				}				else {					break _loop449;				}				}			} while (true);			}			_saveIndex=text.length();			mXML_CDATA_END(false);			text.setLength(_saveIndex);			if ( _createToken && _token==null && _ttype!=Token.SKIP ) {				_token = makeToken(_ttype);				_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));			}			_returnToken = _token;		}