aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/corelib/api/projectdata.cpp2
-rw-r--r--src/lib/corelib/api/rulecommand.h3
-rw-r--r--src/lib/corelib/api/runenvironment.h3
-rw-r--r--src/lib/corelib/buildgraph/dependencyparametersscriptvalue.cpp2
-rw-r--r--src/lib/corelib/buildgraph/filedependency.h4
-rw-r--r--src/lib/corelib/buildgraph/jscommandexecutor.cpp3
-rw-r--r--src/lib/corelib/buildgraph/rulecommands.cpp4
-rw-r--r--src/lib/corelib/corelib.qbs5
-rw-r--r--src/lib/corelib/generators/generatordata.cpp2
-rw-r--r--src/lib/corelib/jsextensions/process.cpp42
-rw-r--r--src/lib/corelib/jsextensions/propertylistutils.mm28
-rw-r--r--src/lib/corelib/jsextensions/textfile.cpp41
-rw-r--r--src/lib/corelib/language/astpropertiesitemhandler.cpp2
-rw-r--r--src/lib/corelib/language/asttools.cpp4
-rw-r--r--src/lib/corelib/language/asttools.h2
-rw-r--r--src/lib/corelib/language/item.cpp4
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.cpp2
-rw-r--r--src/lib/corelib/language/itemreadervisitorstate.cpp4
-rw-r--r--src/lib/corelib/language/moduleloader.cpp57
-rw-r--r--src/lib/corelib/language/moduleloader.h5
-rw-r--r--src/lib/corelib/language/projectresolver.cpp10
-rw-r--r--src/lib/corelib/language/projectresolver.h4
-rw-r--r--src/lib/corelib/language/propertydeclaration.h4
-rw-r--r--src/lib/corelib/language/scriptengine.cpp2
-rw-r--r--src/lib/corelib/language/scriptimporter.cpp9
-rw-r--r--src/lib/corelib/language/value.cpp2
-rw-r--r--src/lib/corelib/language/value.h6
-rw-r--r--src/lib/corelib/logging/logger.cpp2
-rw-r--r--src/lib/corelib/parser/qmlerror.cpp6
-rw-r--r--src/lib/corelib/parser/qmljs.g44
-rw-r--r--src/lib/corelib/parser/qmljsast_p.h4
-rw-r--r--src/lib/corelib/parser/qmljsengine_p.cpp2
-rw-r--r--src/lib/corelib/parser/qmljsengine_p.h9
-rw-r--r--src/lib/corelib/parser/qmljsgrammar.cpp1902
-rw-r--r--src/lib/corelib/parser/qmljsgrammar_p.h287
-rw-r--r--src/lib/corelib/parser/qmljslexer.cpp2
-rw-r--r--src/lib/corelib/parser/qmljslexer_p.h4
-rw-r--r--src/lib/corelib/tools/buildoptions.h2
-rw-r--r--src/lib/corelib/tools/clangclinfo.cpp7
-rw-r--r--src/lib/corelib/tools/commandechomode.h6
-rw-r--r--src/lib/corelib/tools/error.h4
-rw-r--r--src/lib/corelib/tools/fileinfo.cpp17
-rw-r--r--src/lib/corelib/tools/fileinfo.h5
-rw-r--r--src/lib/corelib/tools/jsliterals.cpp8
-rw-r--r--src/lib/corelib/tools/launcherinterface.cpp14
-rw-r--r--src/lib/corelib/tools/persistence.cpp4
-rw-r--r--src/lib/corelib/tools/persistence.h4
-rw-r--r--src/lib/corelib/tools/processresult.h3
-rw-r--r--src/lib/corelib/tools/profile.h5
-rw-r--r--src/lib/corelib/tools/projectgeneratormanager.h5
-rw-r--r--src/lib/corelib/tools/qttools.h9
-rw-r--r--src/lib/corelib/tools/settings.cpp4
-rw-r--r--src/lib/corelib/tools/settings.h2
-rw-r--r--src/lib/corelib/tools/settingscreator.cpp4
-rw-r--r--src/lib/corelib/tools/settingsrepresentation.cpp4
-rw-r--r--src/lib/corelib/tools/setupprojectparameters.h2
-rw-r--r--src/lib/corelib/tools/stlutils.h11
-rw-r--r--src/lib/msbuild/io/msbuildprojectwriter.cpp4
-rw-r--r--src/lib/msbuild/solution/visualstudiosolutionfileproject.cpp2
-rw-r--r--src/lib/msbuild/solution/visualstudiosolutionfolderproject.cpp2
-rw-r--r--src/lib/scriptengine/scriptengine.qbs8
61 files changed, 1358 insertions, 1296 deletions
diff --git a/src/lib/corelib/api/projectdata.cpp b/src/lib/corelib/api/projectdata.cpp
index c378fbea4..289c14781 100644
--- a/src/lib/corelib/api/projectdata.cpp
+++ b/src/lib/corelib/api/projectdata.cpp
@@ -994,7 +994,7 @@ static QString mapToString(const QVariantMap &map, const QString &prefix)
QString stringRep;
for (const QString &key : qAsConst(keys)) {
const QVariant &val = map.value(key);
- if (val.type() == QVariant::Map) {
+ if (val.userType() == QMetaType::QVariantMap) {
stringRep += mapToString(val.value<QVariantMap>(), prefix + key + QLatin1Char('.'));
} else {
stringRep += QStringLiteral("%1%2: %3\n")
diff --git a/src/lib/corelib/api/rulecommand.h b/src/lib/corelib/api/rulecommand.h
index 438849604..cebcfa949 100644
--- a/src/lib/corelib/api/rulecommand.h
+++ b/src/lib/corelib/api/rulecommand.h
@@ -44,11 +44,10 @@
#include <QtCore/qlist.h>
#include <QtCore/qshareddata.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QProcessEnvironment;
-class QString;
-class QStringList;
QT_END_NAMESPACE
namespace qbs {
diff --git a/src/lib/corelib/api/runenvironment.h b/src/lib/corelib/api/runenvironment.h
index c5123ca9c..b95bfbf85 100644
--- a/src/lib/corelib/api/runenvironment.h
+++ b/src/lib/corelib/api/runenvironment.h
@@ -44,12 +44,11 @@
#include <tools/qbs_export.h>
#include <QtCore/qglobal.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QProcess;
class QProcessEnvironment;
-class QString;
-class QStringList;
QT_END_NAMESPACE
class TestApi;
diff --git a/src/lib/corelib/buildgraph/dependencyparametersscriptvalue.cpp b/src/lib/corelib/buildgraph/dependencyparametersscriptvalue.cpp
index f1bf8db13..ac6b1dc42 100644
--- a/src/lib/corelib/buildgraph/dependencyparametersscriptvalue.cpp
+++ b/src/lib/corelib/buildgraph/dependencyparametersscriptvalue.cpp
@@ -53,7 +53,7 @@ static QScriptValue toScriptValue(ScriptEngine *engine, const QString &productNa
QScriptValue obj = engine->newObject();
bool objIdAddedToObserver = false;
for (auto it = v.begin(); it != v.end(); ++it) {
- if (it.value().type() == QVariant::Map) {
+ if (it.value().userType() == QMetaType::QVariantMap) {
obj.setProperty(it.key(), toScriptValue(engine, productName, it.value().toMap(),
depName, QualifiedId(moduleName) << it.key()));
} else {
diff --git a/src/lib/corelib/buildgraph/filedependency.h b/src/lib/corelib/buildgraph/filedependency.h
index 802654e9f..93bfc5d05 100644
--- a/src/lib/corelib/buildgraph/filedependency.h
+++ b/src/lib/corelib/buildgraph/filedependency.h
@@ -77,8 +77,8 @@ private:
FileTime m_timestamp;
QString m_filePath;
- QStringRef m_dirPath;
- QStringRef m_fileName;
+ QStringView m_dirPath;
+ QStringView m_fileName;
};
class FileDependency : public FileResourceBase
diff --git a/src/lib/corelib/buildgraph/jscommandexecutor.cpp b/src/lib/corelib/buildgraph/jscommandexecutor.cpp
index b7270c9a5..c933a6a35 100644
--- a/src/lib/corelib/buildgraph/jscommandexecutor.cpp
+++ b/src/lib/corelib/buildgraph/jscommandexecutor.cpp
@@ -202,6 +202,9 @@ JsCommandExecutor::JsCommandExecutor(const Logger &logger, QObject *parent)
, m_objectInThread(new JsCommandExecutorThreadObject(logger))
, m_running(false)
{
+ qRegisterMetaType<Transformer *>("Transformer *");
+ qRegisterMetaType<const JavaScriptCommand *>("const JavaScriptCommand *");
+
m_objectInThread->moveToThread(m_thread);
connect(m_objectInThread, &JsCommandExecutorThreadObject::finished,
this, &JsCommandExecutor::onJavaScriptCommandFinished);
diff --git a/src/lib/corelib/buildgraph/rulecommands.cpp b/src/lib/corelib/buildgraph/rulecommands.cpp
index 8fa3255f1..9eed7c715 100644
--- a/src/lib/corelib/buildgraph/rulecommands.cpp
+++ b/src/lib/corelib/buildgraph/rulecommands.cpp
@@ -156,7 +156,7 @@ void AbstractCommand::applyCommandProperties(const QScriptValue *scriptValue)
if (m_predefinedProperties.contains(it.name()))
continue;
const QVariant value = it.value().toVariant();
- if (QMetaType::Type(value.type()) == QMetaType::QObjectStar
+ if (QMetaType::Type(value.userType()) == QMetaType::QObjectStar
|| it.value().scriptClass()
|| it.value().data().isValid()) {
throw ErrorInfo(Tr::tr("Property '%1' has a type unsuitable for storing in a command "
@@ -468,7 +468,7 @@ void CommandList::load(PersistentPool &pool)
void CommandList::store(PersistentPool &pool) const
{
- pool.store(m_commands.size());
+ pool.store(int(m_commands.size()));
for (const AbstractCommandPtr &cmd : m_commands) {
pool.store(static_cast<quint8>(cmd->type()));
pool.store(cmd);
diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs
index 9f95f417f..8645ea0b6 100644
--- a/src/lib/corelib/corelib.qbs
+++ b/src/lib/corelib/corelib.qbs
@@ -5,6 +5,10 @@ QbsLibrary {
Depends { name: "cpp" }
Depends { name: "Qt"; submodules: ["core-private", "network", "xml"] }
Depends {
+ name: "Qt.core5compat";
+ condition: Utilities.versionCompare(Qt.core.version, "6.0.0") >= 0
+ }
+ Depends {
name: "Qt.script"
condition: !qbsbuildconfig.useBundledQtScript
required: false
@@ -372,6 +376,7 @@ QbsLibrary {
files: [
"qmlerror.cpp",
"qmlerror.h",
+ "qmljs.g",
"qmljsast.cpp",
"qmljsast_p.h",
"qmljsastfwd_p.h",
diff --git a/src/lib/corelib/generators/generatordata.cpp b/src/lib/corelib/generators/generatordata.cpp
index 7c6573484..25afae23d 100644
--- a/src/lib/corelib/generators/generatordata.cpp
+++ b/src/lib/corelib/generators/generatordata.cpp
@@ -133,7 +133,7 @@ QFileInfo GeneratableProject::filePath() const
filePath.insert(it.value().location().filePath());
}
Q_ASSERT(filePath.size() == 1);
- return *filePath.begin();
+ return QFileInfo(*filePath.begin());
}
bool GeneratableProject::hasMultipleConfigurations() const
diff --git a/src/lib/corelib/jsextensions/process.cpp b/src/lib/corelib/jsextensions/process.cpp
index a91084b4a..8ddb48acd 100644
--- a/src/lib/corelib/jsextensions/process.cpp
+++ b/src/lib/corelib/jsextensions/process.cpp
@@ -46,10 +46,13 @@
#include <QtCore/qobject.h>
#include <QtCore/qprocess.h>
-#include <QtCore/qtextcodec.h>
#include <QtCore/qtextstream.h>
#include <QtCore/qvariant.h>
-
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+#include <QtCore5Compat/qtextcodec.h>
+#else
+#include <QtCore/qtextcodec.h>
+#endif
#include <QtScript/qscriptable.h>
#include <QtScript/qscriptengine.h>
#include <QtScript/qscriptvalue.h>
@@ -100,10 +103,10 @@ private:
// ResourceAcquiringScriptObject implementation
void releaseResources() override;
- QProcess *m_qProcess;
+ QProcess *m_qProcess = nullptr;
QProcessEnvironment m_environment;
QString m_workingDirectory;
- QTextStream *m_textStream;
+ QTextCodec *m_codec = nullptr;
};
QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine)
@@ -143,7 +146,6 @@ QScriptValue Process::ctor(QScriptContext *context, QScriptEngine *engine)
Process::~Process()
{
- delete m_textStream;
delete m_qProcess;
}
@@ -153,7 +155,7 @@ Process::Process(QScriptContext *context)
Q_ASSERT(thisObject().engine() == engine());
m_qProcess = new QProcess;
- m_textStream = new QTextStream(m_qProcess);
+ m_codec = QTextCodec::codecForName("UTF-8");
}
QString Process::getEnv(const QString &name)
@@ -188,7 +190,7 @@ bool Process::start(const QString &program, const QStringList &arguments)
m_qProcess->setWorkingDirectory(m_workingDirectory);
m_qProcess->setProcessEnvironment(m_environment);
- m_qProcess->start(findExecutable(program), arguments);
+ m_qProcess->start(findExecutable(program), arguments, QIODevice::ReadWrite | QIODevice::Text);
return m_qProcess->waitForStarted();
}
@@ -234,8 +236,6 @@ void Process::close()
if (!m_qProcess)
return;
Q_ASSERT(thisObject().engine() == engine());
- delete m_textStream;
- m_textStream = nullptr;
delete m_qProcess;
m_qProcess = nullptr;
}
@@ -262,32 +262,36 @@ void Process::kill()
void Process::setCodec(const QString &codec)
{
Q_ASSERT(thisObject().engine() == engine());
- m_textStream->setCodec(qPrintable(codec));
+ const auto newCodec = QTextCodec::codecForName(qPrintable(codec));
+ if (newCodec)
+ m_codec = newCodec;
}
QString Process::readLine()
{
- return m_textStream->readLine();
+ auto result = m_codec->toUnicode(m_qProcess->readLine());
+ if (!result.isEmpty() && result.back() == QLatin1Char('\n'))
+ result.chop(1);
+ return result;
}
bool Process::atEnd() const
{
- return m_textStream->atEnd();
+ return m_qProcess->atEnd();
}
QString Process::readStdOut()
{
- return m_textStream->readAll();
+ return m_codec->toUnicode(m_qProcess->readAllStandardOutput());
}
QString Process::readStdErr()
{
- return m_textStream->codec()->toUnicode(m_qProcess->readAllStandardError());
+ return m_codec->toUnicode(m_qProcess->readAllStandardError());
}
void Process::closeWriteChannel()
{
- m_textStream->flush();
m_qProcess->closeWriteChannel();
}
@@ -310,15 +314,13 @@ void Process::releaseResources()
void Process::write(const QString &str)
{
- (*m_textStream) << str;
+ m_qProcess->write(m_codec->fromUnicode(str));
}
void Process::writeLine(const QString &str)
{
- (*m_textStream) << str;
- if (HostOsInfo::isWindowsHost())
- (*m_textStream) << '\r';
- (*m_textStream) << '\n';
+ m_qProcess->write(m_codec->fromUnicode(str));
+ m_qProcess->putChar('\n');
}
QScriptValue Process::js_shellQuote(QScriptContext *context, QScriptEngine *engine)
diff --git a/src/lib/corelib/jsextensions/propertylistutils.mm b/src/lib/corelib/jsextensions/propertylistutils.mm
index b8ae1b8e0..704b1a8ce 100644
--- a/src/lib/corelib/jsextensions/propertylistutils.mm
+++ b/src/lib/corelib/jsextensions/propertylistutils.mm
@@ -127,33 +127,33 @@ static NSArray *toArray(const QVariantList &list);
static id toObject(const QVariant &variant)
{
- if (variant.type() == QVariant::Hash) {
+ if (variant.userType() == QMetaType::QVariantHash) {
return toDictionary(qHashToMap(variant.toHash()));
- } else if (variant.type() == QVariant::Map) {
+ } else if (variant.userType() == QMetaType::QVariantMap) {
return toDictionary(variant.toMap());
- } else if (variant.type() == QVariant::List) {
+ } else if (variant.userType() == QMetaType::QVariantList) {
return toArray(variant.toList());
- } else if (variant.type() == QVariant::String) {
+ } else if (variant.userType() == QMetaType::QString) {
return variant.toString().toNSString();
- } else if (variant.type() == QVariant::ByteArray) {
+ } else if (variant.userType() == QMetaType::QByteArray) {
return variant.toByteArray().toNSData();
- } else if (variant.type() == QVariant::Date ||
- variant.type() == QVariant::DateTime) {
+ } else if (variant.userType() == QMetaType::QDate ||
+ variant.userType() == QMetaType::QDateTime) {
return variant.toDateTime().toNSDate();
- } else if (variant.type() == QVariant::Bool) {
+ } else if (variant.userType() == QMetaType::Bool) {
return variant.toBool()
? [NSNumber numberWithBool:YES]
: [NSNumber numberWithBool:NO];
- } else if (variant.type() == QVariant::Char ||
- variant.type() == QVariant::Int) {
+ } else if (variant.userType() == QMetaType::Char ||
+ variant.userType() == QMetaType::Int) {
return [NSNumber numberWithInt:variant.toInt()];
- } else if (variant.type() == QVariant::UInt) {
+ } else if (variant.userType() == QMetaType::UInt) {
return [NSNumber numberWithUnsignedInt:variant.toUInt()];
- } else if (variant.type() == QVariant::LongLong) {
+ } else if (variant.userType() == QMetaType::LongLong) {
return [NSNumber numberWithLongLong:variant.toLongLong()];
- } else if (variant.type() == QVariant::ULongLong) {
+ } else if (variant.userType() == QMetaType::ULongLong) {
return [NSNumber numberWithUnsignedLongLong:variant.toULongLong()];
- } else if (variant.type() == QVariant::Double) {
+ } else if (variant.userType() == QMetaType::Double) {
return [NSNumber numberWithDouble:variant.toDouble()];
} else {
return [NSNull null];
diff --git a/src/lib/corelib/jsextensions/textfile.cpp b/src/lib/corelib/jsextensions/textfile.cpp
index 7c67f9019..3c7f2d316 100644
--- a/src/lib/corelib/jsextensions/textfile.cpp
+++ b/src/lib/corelib/jsextensions/textfile.cpp
@@ -47,6 +47,12 @@
#include <QtCore/qtextstream.h>
#include <QtCore/qvariant.h>
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+#include <QtCore5Compat/qtextcodec.h>
+#else
+#include <QtCore/qtextcodec.h>
+#endif
+
#include <QtScript/qscriptable.h>
#include <QtScript/qscriptengine.h>
#include <QtScript/qscriptvalue.h>
@@ -82,15 +88,15 @@ public:
private:
TextFile(QScriptContext *context, const QString &filePath, OpenMode mode = ReadOnly,
- const QString &codec = QLatin1String("UTF8"));
+ const QString &codec = QLatin1String("UTF-8"));
bool checkForClosed() const;
// ResourceAcquiringScriptObject implementation
void releaseResources() override;
- QFile *m_file;
- QTextStream *m_stream;
+ QFile *m_file = nullptr;
+ QTextCodec *m_codec = nullptr;
};
QScriptValue TextFile::ctor(QScriptContext *context, QScriptEngine *engine)
@@ -132,7 +138,6 @@ QScriptValue TextFile::ctor(QScriptContext *context, QScriptEngine *engine)
TextFile::~TextFile()
{
- delete m_stream;
delete m_file;
}
@@ -143,7 +148,8 @@ TextFile::TextFile(QScriptContext *context, const QString &filePath, OpenMode mo
Q_ASSERT(thisObject().engine() == engine());
m_file = new QFile(filePath);
- m_stream = new QTextStream(m_file);
+ const auto newCodec = QTextCodec::codecForName(qPrintable(codec));
+ m_codec = newCodec ? newCodec : QTextCodec::codecForName("UTF-8");
QIODevice::OpenMode m = QIODevice::NotOpen;
if (mode & ReadOnly)
m |= QIODevice::ReadOnly;
@@ -151,6 +157,7 @@ TextFile::TextFile(QScriptContext *context, const QString &filePath, OpenMode mo
m |= QIODevice::WriteOnly;
if (mode & Append)
m |= QIODevice::Append;
+ m |= QIODevice::Text;
if (Q_UNLIKELY(!m_file->open(m))) {
context->throwError(Tr::tr("Unable to open file '%1': %2")
.arg(filePath, m_file->errorString()));
@@ -163,8 +170,6 @@ void TextFile::close()
{
if (checkForClosed())
return;
- delete m_stream;
- m_stream = nullptr;
m_file->close();
delete m_file;
m_file = nullptr;
@@ -181,28 +186,33 @@ void TextFile::setCodec(const QString &codec)
{
if (checkForClosed())
return;
- m_stream->setCodec(qPrintable(codec));
+ const auto newCodec = QTextCodec::codecForName(qPrintable(codec));
+ if (newCodec)
+ m_codec = newCodec;
}
QString TextFile::readLine()
{
if (checkForClosed())
return {};
- return m_stream->readLine();
+ auto result = m_codec->toUnicode(m_file->readLine());
+ if (!result.isEmpty() && result.back() == QLatin1Char('\n'))
+ result.chop(1);
+ return result;
}
QString TextFile::readAll()
{
if (checkForClosed())
return {};
- return m_stream->readAll();
+ return m_codec->toUnicode(m_file->readAll());
}
bool TextFile::atEof() const
{
if (checkForClosed())
return true;
- return m_stream->atEnd();
+ return m_file->atEnd();
}
void TextFile::truncate()
@@ -210,24 +220,21 @@ void TextFile::truncate()
if (checkForClosed())
return;
m_file->resize(0);
- m_stream->reset();
}
void TextFile::write(const QString &str)
{
if (checkForClosed())
return;
- (*m_stream) << str;
+ m_file->write(m_codec->fromUnicode(str));
}
void TextFile::writeLine(const QString &str)
{
if (checkForClosed())
return;
- (*m_stream) << str;
- if (HostOsInfo::isWindowsHost())
- (*m_stream) << '\r';
- (*m_stream) << '\n';
+ m_file->write(m_codec->fromUnicode(str));
+ m_file->putChar('\n');
}
bool TextFile::checkForClosed() const
diff --git a/src/lib/corelib/language/astpropertiesitemhandler.cpp b/src/lib/corelib/language/astpropertiesitemhandler.cpp
index 1ea78bf79..b28fe7d76 100644
--- a/src/lib/corelib/language/astpropertiesitemhandler.cpp
+++ b/src/lib/corelib/language/astpropertiesitemhandler.cpp
@@ -139,7 +139,7 @@ private:
value = JSSourceValue::create(true);
value->setFile(conditionalValue->file());
item->setProperty(propertyName, value);
- value->setSourceCode(QStringRef(&StringConstants::baseVar()));
+ value->setSourceCode(StringConstants::baseVar());
value->setSourceUsesBaseFlag();
}
m_alternative.value = conditionalValue;
diff --git a/src/lib/corelib/language/asttools.cpp b/src/lib/corelib/language/asttools.cpp
index 1b6abac7f..0d0c234c4 100644
--- a/src/lib/corelib/language/asttools.cpp
+++ b/src/lib/corelib/language/asttools.cpp
@@ -64,10 +64,10 @@ QString textOf(const QString &source, QbsQmlJS::AST::Node *node)
int(node->lastSourceLocation().end() - node->firstSourceLocation().begin()));
}
-QStringRef textRefOf(const QString &source, QbsQmlJS::AST::Node *node)
+QStringView textViewOf(const QString &source, QbsQmlJS::AST::Node *node)
{
const quint32 firstBegin = node->firstSourceLocation().begin();
- return source.midRef(firstBegin, int(node->lastSourceLocation().end() - firstBegin));
+ return QStringView(source).mid(firstBegin, int(node->lastSourceLocation().end() - firstBegin));
}
} // namespace Internal
diff --git a/src/lib/corelib/language/asttools.h b/src/lib/corelib/language/asttools.h
index b4f5c4d98..086d59290 100644
--- a/src/lib/corelib/language/asttools.h
+++ b/src/lib/corelib/language/asttools.h
@@ -50,7 +50,7 @@ namespace Internal {
QStringList toStringList(QbsQmlJS::AST::UiQualifiedId *qid);
CodeLocation toCodeLocation(const QString &filePath, const QbsQmlJS::AST::SourceLocation &location);
QString textOf(const QString &source, QbsQmlJS::AST::Node *node);
-QStringRef textRefOf(const QString &source, QbsQmlJS::AST::Node *node);
+QStringView textViewOf(const QString &source, QbsQmlJS::AST::Node *node);
} // namespace Internal
} // namespace qbs
diff --git a/src/lib/corelib/language/item.cpp b/src/lib/corelib/language/item.cpp
index a86cfeac1..fa33a264d 100644
--- a/src/lib/corelib/language/item.cpp
+++ b/src/lib/corelib/language/item.cpp
@@ -260,8 +260,8 @@ void Item::setupForBuiltinType(Logger &logger)
sourceValue->setIsBuiltinDefaultValue();
sourceValue->setFile(file());
sourceValue->setSourceCode(pd.initialValueSource().isEmpty()
- ? QStringRef(&StringConstants::undefinedValue())
- : QStringRef(&pd.initialValueSource()));
+ ? StringConstants::undefinedValue()
+ : pd.initialValueSource());
m_properties.insert(pd.name(), sourceValue);
} else if (pd.isDeprecated()) {
const DeprecationInfo &di = pd.deprecationInfo();
diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp
index 901772d16..f22a1c4e8 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.cpp
+++ b/src/lib/corelib/language/itemreaderastvisitor.cpp
@@ -271,7 +271,7 @@ bool ItemReaderASTVisitor::handleBindingRhs(AST::Statement *statement,
value->m_flags |= JSSourceValue::HasFunctionForm;
value->setFile(m_file);
- value->setSourceCode(textRefOf(m_file->content(), statement));
+ value->setSourceCode(textViewOf(m_file->content(), statement));
value->setLocation(statement->firstSourceLocation().startLine,
statement->firstSourceLocation().startColumn);
diff --git a/src/lib/corelib/language/itemreadervisitorstate.cpp b/src/lib/corelib/language/itemreadervisitorstate.cpp
index 1946715b8..a51b7eab4 100644
--- a/src/lib/corelib/language/itemreadervisitorstate.cpp
+++ b/src/lib/corelib/language/itemreadervisitorstate.cpp
@@ -99,7 +99,7 @@ private:
QExplicitlySharedDataPointer<ASTCacheValueData> d;
};
-class ItemReaderVisitorState::ASTCache : public QHash<QString, ASTCacheValue> {};
+class ItemReaderVisitorState::ASTCache : public std::unordered_map<QString, ASTCacheValue> {};
ItemReaderVisitorState::ItemReaderVisitorState(Logger &logger)
@@ -125,7 +125,7 @@ Item *ItemReaderVisitorState::readFile(const QString &filePath, const QStringLis
m_filesRead.insert(filePath);
QTextStream stream(&file);
- stream.setCodec("UTF-8");
+ setupDefaultCodec(stream);
const QString &code = stream.readAll();
QbsQmlJS::Lexer lexer(cacheValue.engine());
lexer.setCode(code, 1);
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index 5c4033c3f..591a3df34 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -1339,7 +1339,7 @@ void ModuleLoader::setupProductDependencies(ProductContext *productContext,
|| !containsKey(m_productsWithDeferredDependsItems, productContext)) {
addProductModuleDependencies(productContext);
}
- productContext->project->result->productInfos.insert(item, productContext->info);
+ productContext->project->result->productInfos[item] = productContext->info;
}
// Leaf modules first.
@@ -1515,7 +1515,7 @@ void ModuleLoader::handleProduct(ModuleLoader::ProductContext *productContext)
handleGroup(productContext, child, reverseModuleDeps);
}
}
- productContext->project->result->productInfos.insert(item, productContext->info);
+ productContext->project->result->productInfos[item] = productContext->info;
}
static Item *rootPrototype(Item *item)
@@ -1544,7 +1544,7 @@ private:
void check(const QVariantMap &parameters, const QualifiedId &moduleName) const
{
for (auto it = parameters.begin(); it != parameters.end(); ++it) {
- if (it.value().type() == QVariant::Map) {
+ if (it.value().userType() == QMetaType::QVariantMap) {
check(it.value().toMap(), QualifiedId(moduleName) << it.key());
} else {
const auto &deps = m_productItem->modules();
@@ -1942,7 +1942,7 @@ void ModuleLoader::printProfilingInfo()
static void mergeParameters(QVariantMap &dst, const QVariantMap &src)
{
for (auto it = src.begin(); it != src.end(); ++it) {
- if (it.value().type() == QVariant::Map) {
+ if (it.value().userType() == QMetaType::QVariantMap) {
QVariant &vdst = dst[it.key()];
QVariantMap mdst = vdst.toMap();
mergeParameters(mdst, it.value().toMap());
@@ -3207,30 +3207,30 @@ QStringList &ModuleLoader::getModuleFileNames(const QString &dirPath)
return moduleFileNames;
}
-// returns QVariant::Invalid for types that do not need conversion
-static QVariant::Type variantType(PropertyDeclaration::Type t)
+// returns QMetaType::UnknownType for types that do not need conversion
+static QMetaType::Type variantType(PropertyDeclaration::Type t)
{
switch (t) {
case PropertyDeclaration::UnknownType:
break;
case PropertyDeclaration::Boolean:
- return QVariant::Bool;
+ return QMetaType::Bool;
case PropertyDeclaration::Integer:
- return QVariant::Int;
+ return QMetaType::Int;
case PropertyDeclaration::Path:
- return QVariant::String;
+ return QMetaType::QString;
case PropertyDeclaration::PathList:
- return QVariant::StringList;
+ return QMetaType::QStringList;
case PropertyDeclaration::String:
- return QVariant::String;
+ return QMetaType::QString;
case PropertyDeclaration::StringList:
- return QVariant::StringList;
+ return QMetaType::QStringList;
case PropertyDeclaration::VariantList:
- return QVariant::List;
+ return QMetaType::QVariantList;
case PropertyDeclaration::Variant:
break;
}
- return QVariant::Invalid;
+ return QMetaType::UnknownType;
}
static QVariant convertToPropertyType(const QVariant &v, PropertyDeclaration::Type t,
@@ -3238,12 +3238,12 @@ static QVariant convertToPropertyType(const QVariant &v, PropertyDeclaration::Ty
{
if (v.isNull() || !v.isValid())
return v;
- const QVariant::Type vt = variantType(t);
- if (vt == QVariant::Invalid)
+ const auto vt = variantType(t);
+ if (vt == QMetaType::UnknownType)
return v;
// Handle the foo,bar,bla stringlist syntax.
- if (t == PropertyDeclaration::StringList && v.type() == QVariant::String)
+ if (t == PropertyDeclaration::StringList && v.userType() == QMetaType::QString)
return v.toString().split(QLatin1Char(','));
QVariant c = v;
@@ -3802,13 +3802,14 @@ QStringList ModuleLoader::findExistingModulePaths(
QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &product)
{
- if (product.moduleProviderConfigRetrieved)
- return product.theModuleProviderConfig;
+ if (product.theModuleProviderConfig)
+ return *product.theModuleProviderConfig;
+ QVariantMap providerConfig;
const ItemValueConstPtr configItemValue
= product.item->itemProperty(StringConstants::moduleProviders());
if (configItemValue) {
const std::function<void(const Item *, QualifiedId)> collectMap
- = [this, &product, &collectMap](const Item *item, const QualifiedId &name) {
+ = [this, &providerConfig, &collectMap](const Item *item, const QualifiedId &name) {
const Item::PropertyMap &props = item->properties();
for (auto it = props.begin(); it != props.end(); ++it) {
QVariant value;
@@ -3826,9 +3827,9 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro
value = static_cast<VariantValue *>(it.value().get())->value();
break;
}
- QVariantMap m = product.theModuleProviderConfig.value(name.toString()).toMap();
+ QVariantMap m = providerConfig.value(name.toString()).toMap();
m.insert(it.key(), value);
- product.theModuleProviderConfig.insert(name.toString(), m);
+ providerConfig.insert(name.toString(), m);
}
};
configItemValue->item()->setScope(product.item);
@@ -3841,15 +3842,14 @@ QVariantMap ModuleLoader::moduleProviderConfig(ModuleLoader::ProductContext &pro
const QVariantMap providerConfigFromBuildConfig = it.value().toMap();
if (providerConfigFromBuildConfig.empty())
continue;
- QVariantMap currentMapForProvider = product.theModuleProviderConfig.value(provider).toMap();
+ QVariantMap currentMapForProvider = providerConfig.value(provider).toMap();
for (auto propIt = providerConfigFromBuildConfig.begin();
propIt != providerConfigFromBuildConfig.end(); ++propIt) {
currentMapForProvider.insert(propIt.key(), propIt.value());
}
- product.theModuleProviderConfig.insert(provider, currentMapForProvider);
+ providerConfig.insert(provider, currentMapForProvider);
}
- product.moduleProviderConfigRetrieved = true;
- return product.theModuleProviderConfig;
+ return *(product.theModuleProviderConfig = std::move(providerConfig));
}
ModuleLoader::ModuleProviderResult ModuleLoader::findModuleProvider(const QualifiedId &name,
@@ -3887,7 +3887,7 @@ ModuleLoader::ModuleProviderResult ModuleLoader::findModuleProvider(const Qualif
const QVariant moduleConfig = moduleProviderConfig(product).value(name.toString());
QTextStream stream(&dummyItemFile);
using Qt::endl;
- stream.setCodec("UTF-8");
+ setupDefaultCodec(stream);
stream << "import qbs.FileInfo" << endl;
stream << "import qbs.Utilities" << endl;
stream << "import '" << providerFile << "' as Provider" << endl;
@@ -4166,8 +4166,7 @@ void ModuleLoader::handleProductError(const ErrorInfo &error,
const auto errorItems = error.items();
for (const ErrorItem &ei : errorItems)
productContext->info.delayedError.append(ei.description(), ei.codeLocation());
- productContext->project->result->productInfos.insert(productContext->item,
- productContext->info);
+ productContext->project->result->productInfos[productContext->item] = productContext->info;
m_disabledItems << productContext->item;
m_erroneousProducts.insert(productContext->name);
}
diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h
index df853e77f..3dc091003 100644
--- a/src/lib/corelib/language/moduleloader.h
+++ b/src/lib/corelib/language/moduleloader.h
@@ -106,7 +106,7 @@ struct ModuleLoaderResult
std::shared_ptr<ItemPool> itemPool;
Item *root;
- QHash<Item *, ProductInfo> productInfos;
+ std::unordered_map<Item *, ProductInfo> productInfos;
std::vector<ProbeConstPtr> projectProbes;
ModuleProviderInfoList moduleProviderInfo;
Set<QString> qbsFiles;
@@ -187,8 +187,7 @@ private:
std::vector<QStringList> newlyAddedModuleProviderSearchPaths;
Set<QualifiedId> knownModuleProviders;
- QVariantMap theModuleProviderConfig;
- bool moduleProviderConfigRetrieved = false;
+ std::optional<QVariantMap> theModuleProviderConfig;
// The key corresponds to DeferredDependsContext.exportingProductItem, which is the
// only value from that data structure that we still need here.
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index 570b3513f..4ae5f3ca7 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -655,8 +655,8 @@ QVariantMap ProjectResolver::resolveAdditionalModuleProperties(const Item *group
const QVariantMap &currentValues)
{
// Step 1: Retrieve the properties directly set in the group
- const ModulePropertiesPerGroup &mp = m_loadResult.productInfos.value(m_productContext->item)
- .modulePropertiesSetInGroups;
+ const ModulePropertiesPerGroup &mp = mapValue(
+ m_loadResult.productInfos, m_productContext->item).modulePropertiesSetInGroups;
const auto it = mp.find(group);
if (it == mp.end())
return {};
@@ -900,7 +900,7 @@ void ProjectResolver::adaptExportedPropertyValues(const Item *shadowProductItem)
const std::function<QVariant(const QVariantMap &, const QVariant &)> mapper
= [&stringListMapper, &mapper](
const QVariantMap &mappings, const QVariant &value) -> QVariant {
- switch (static_cast<QMetaType::Type>(value.type())) {
+ switch (static_cast<QMetaType::Type>(value.userType())) {
case QMetaType::QString:
return stringMapper(mappings, value.toString());
case QMetaType::QStringList:
@@ -945,7 +945,7 @@ void ProjectResolver::collectExportedProductDependencies()
}
}
const ModuleLoaderResult::ProductInfo &importingProductInfo
- = m_loadResult.productInfos.value(importingProductItem);
+ = mapValue(m_loadResult.productInfos, importingProductItem);
const ProductDependencyInfos &depInfos
= getProductDependencies(dummyProduct, importingProductInfo);
for (const auto &dep : depInfos.dependencies) {
@@ -1610,7 +1610,7 @@ void ProjectResolver::resolveProductDependencies(const ProjectContext &projectCo
continue;
Item *productItem = m_productItemMap.value(rproduct);
const ModuleLoaderResult::ProductInfo &productInfo
- = m_loadResult.productInfos.value(productItem);
+ = mapValue(m_loadResult.productInfos, productItem);
const ProductDependencyInfos &depInfos = getProductDependencies(rproduct, productInfo);
if (depInfos.hasDisabledDependency)
disabledDependency = true;
diff --git a/src/lib/corelib/language/projectresolver.h b/src/lib/corelib/language/projectresolver.h
index 73f3442ac..52d835535 100644
--- a/src/lib/corelib/language/projectresolver.h
+++ b/src/lib/corelib/language/projectresolver.h
@@ -186,8 +186,8 @@ private:
QHash<ResolvedProductPtr, Item *> m_productItemMap;
mutable QHash<FileContextConstPtr, ResolvedFileContextPtr> m_fileContextMap;
mutable QHash<CodeLocation, ScriptFunctionPtr> m_scriptFunctionMap;
- mutable QHash<std::pair<QStringRef, QStringList>, QString> m_scriptFunctions;
- mutable QHash<QStringRef, QString> m_sourceCode;
+ mutable QHash<std::pair<QStringView, QStringList>, QString> m_scriptFunctions;
+ mutable QHash<QStringView, QString> m_sourceCode;
const SetupProjectParameters m_setupParams;
ModuleLoaderResult m_loadResult;
Set<CodeLocation> m_groupLocationWarnings;
diff --git a/src/lib/corelib/language/propertydeclaration.h b/src/lib/corelib/language/propertydeclaration.h
index 5ced7eccb..77b6837f5 100644
--- a/src/lib/corelib/language/propertydeclaration.h
+++ b/src/lib/corelib/language/propertydeclaration.h
@@ -43,10 +43,6 @@
#include <QtCore/qshareddata.h>
#include <QtCore/qstring.h>
-QT_BEGIN_NAMESPACE
-class QStringList;
-QT_END_NAMESPACE
-
namespace qbs {
namespace Internal {
class DeprecationInfo;
diff --git a/src/lib/corelib/language/scriptengine.cpp b/src/lib/corelib/language/scriptengine.cpp
index e79ec54d7..8b3d6fa76 100644
--- a/src/lib/corelib/language/scriptengine.cpp
+++ b/src/lib/corelib/language/scriptengine.cpp
@@ -381,7 +381,7 @@ void ScriptEngine::importFile(const QString &filePath, QScriptValue &targetObjec
if (Q_UNLIKELY(!file.open(QFile::ReadOnly)))
throw ErrorInfo(tr("Cannot open '%1'.").arg(filePath));
QTextStream stream(&file);
- stream.setCodec("UTF-8");
+ setupDefaultCodec(stream);
const QString sourceCode = stream.readAll();
file.close();
m_currentDirPathStack.push(FileInfo::path(filePath));
diff --git a/src/lib/corelib/language/scriptimporter.cpp b/src/lib/corelib/language/scriptimporter.cpp
index 9c6d4d38e..40162eb12 100644
--- a/src/lib/corelib/language/scriptimporter.cpp
+++ b/src/lib/corelib/language/scriptimporter.cpp
@@ -95,7 +95,7 @@ private:
return false;
}
- void add(const QStringRef &name)
+ void add(QStringView name)
{
if (m_first) {
m_first = false;
@@ -104,9 +104,10 @@ private:
m_suffix.reserve(m_suffix.length() + name.length() * 2 + 2);
m_suffix += QLatin1Char(',');
}
- m_suffix += name;
- m_suffix += QLatin1Char(':');
- m_suffix += name;
+ // ugly, but qt5 does not have append overload for QStringView
+ m_suffix.append(name.data(), name.size());
+ m_suffix.append(QLatin1Char(':'));
+ m_suffix.append(name.data(), name.size());
}
bool m_first = false;
diff --git a/src/lib/corelib/language/value.cpp b/src/lib/corelib/language/value.cpp
index b3e782519..16326f521 100644
--- a/src/lib/corelib/language/value.cpp
+++ b/src/lib/corelib/language/value.cpp
@@ -189,7 +189,7 @@ VariantValuePtr VariantValue::create(const QVariant &v)
{
if (!v.isValid())
return invalidValue();
- if (static_cast<QMetaType::Type>(v.type()) == QMetaType::Bool)
+ if (static_cast<QMetaType::Type>(v.userType()) == QMetaType::Bool)
return v.toBool() ? VariantValue::trueValue() : VariantValue::falseValue();
return std::make_shared<VariantValue>(v);
}
diff --git a/src/lib/corelib/language/value.h b/src/lib/corelib/language/value.h
index 287060809..5f6b5ca16 100644
--- a/src/lib/corelib/language/value.h
+++ b/src/lib/corelib/language/value.h
@@ -121,8 +121,8 @@ public:
void apply(ValueHandler *handler) override { handler->handle(this); }
ValuePtr clone() const override;
- void setSourceCode(const QStringRef &sourceCode) { m_sourceCode = sourceCode; }
- const QStringRef &sourceCode() const { return m_sourceCode; }
+ void setSourceCode(QStringView sourceCode) { m_sourceCode = sourceCode; }
+ QStringView sourceCode() const { return m_sourceCode; }
QString sourceCodeForEvaluation() const;
void setLocation(int line, int column);
@@ -179,7 +179,7 @@ public:
void setDefiningItem(Item *item) override;
private:
- QStringRef m_sourceCode;
+ QStringView m_sourceCode;
int m_line;
int m_column;
FileContextPtr m_file;
diff --git a/src/lib/corelib/logging/logger.cpp b/src/lib/corelib/logging/logger.cpp
index 2ed29c4c2..d4020892f 100644
--- a/src/lib/corelib/logging/logger.cpp
+++ b/src/lib/corelib/logging/logger.cpp
@@ -163,7 +163,7 @@ LogWriter operator<<(LogWriter w, const Internal::Set<QString> &strSet)
LogWriter operator<<(LogWriter w, const QVariant &variant)
{
QString str = QLatin1String(variant.typeName()) + QLatin1Char('(');
- if (variant.type() == QVariant::List) {
+ if (variant.userType() == QMetaType::QVariantList) {
bool firstLoop = true;
const auto list = variant.toList();
for (const QVariant &item : list) {
diff --git a/src/lib/corelib/parser/qmlerror.cpp b/src/lib/corelib/parser/qmlerror.cpp
index d638b7202..8a8118290 100644
--- a/src/lib/corelib/parser/qmlerror.cpp
+++ b/src/lib/corelib/parser/qmlerror.cpp
@@ -39,6 +39,8 @@
#include "qmlerror.h"
+#include <tools/qttools.h>
+
#include <QtCore/qdebug.h>
#include <QtCore/qfile.h>
#include <QtCore/qstringlist.h>
@@ -259,9 +261,7 @@ QDebug operator<<(QDebug debug, const QmlError &error)
if (f.open(QIODevice::ReadOnly)) {
QByteArray data = f.readAll();
QTextStream stream(data, QIODevice::ReadOnly);
-#ifndef QT_NO_TEXTCODEC
- stream.setCodec("UTF-8");
-#endif
+ qbs::setupDefaultCodec(stream);
const QString code = stream.readAll();
const QStringList lines = code.split(QLatin1Char('\n'));
diff --git a/src/lib/corelib/parser/qmljs.g b/src/lib/corelib/parser/qmljs.g
index 956c65809..b9d533ada 100644
--- a/src/lib/corelib/parser/qmljs.g
+++ b/src/lib/corelib/parser/qmljs.g
@@ -189,6 +189,23 @@
**
****************************************************************************/
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+//
+// This file is automatically generated from qmljs.g.
+// Changes will be lost.
+//
+
#ifndef QMLJSPARSER_P_H
#define QMLJSPARSER_P_H
@@ -196,17 +213,16 @@
#include "qmljsgrammar_p.h"
#include "qmljsast_p.h"
#include "qmljsengine_p.h"
+#include <tools/qbs_export.h>
#include <QtCore/qlist.h>
#include <QtCore/qstring.h>
-QT_QML_BEGIN_NAMESPACE
-
-namespace QmlJS {
+namespace QbsQmlJS {
class Engine;
-class QML_PARSER_EXPORT Parser: protected $table
+class QBS_AUTOTEST_EXPORT Parser: protected $table
{
public:
union Value {
@@ -270,7 +286,7 @@ public:
AST::Statement *statement() const
{
if (! program)
- return 0;
+ return nullptr;
return program->statementCast();
}
@@ -278,7 +294,7 @@ public:
AST::ExpressionNode *expression() const
{
if (! program)
- return 0;
+ return nullptr;
return program->expressionCast();
}
@@ -286,7 +302,7 @@ public:
AST::UiObjectMember *uiObjectMember() const
{
if (! program)
- return 0;
+ return nullptr;
return program->uiObjectMemberCast();
}
@@ -348,13 +364,13 @@ protected:
enum { TOKEN_BUFFER_SIZE = 3 };
struct SavedToken {
- int token;
- double dval;
+ int token = 0;
+ double dval = 0.0;
AST::SourceLocation loc;
QStringRef spell;
};
- double yylval;
+ double yylval = 0.0;
QStringRef yytokenspell;
AST::SourceLocation yylloc;
AST::SourceLocation yyprevlloc;
@@ -366,7 +382,7 @@ protected:
QList<DiagnosticMessage> diagnostic_messages;
};
-} // end of namespace QmlJS
+} // end of namespace QbsQmlJS
:/
@@ -458,7 +474,7 @@ AST::UiQualifiedId *Parser::reparseAsQualifiedId(AST::ExpressionNode *expr)
return currentId->finish();
}
- return 0;
+ return nullptr;
}
bool Parser::parse(int startToken)
@@ -3003,9 +3019,5 @@ QT_QML_END_NAMESPACE
./
/:
-QT_QML_END_NAMESPACE
-
-
-
#endif // QMLJSPARSER_P_H
:/
diff --git a/src/lib/corelib/parser/qmljsast_p.h b/src/lib/corelib/parser/qmljsast_p.h
index dcee233da..e2ba68508 100644
--- a/src/lib/corelib/parser/qmljsast_p.h
+++ b/src/lib/corelib/parser/qmljsast_p.h
@@ -57,6 +57,10 @@
#include <QtCore/qstring.h>
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+#include <QtCore5Compat/qstringref.h>
+#endif
+
namespace QbsQmlJS {
#define QMLJS_DECLARE_AST_NODE(name) \
diff --git a/src/lib/corelib/parser/qmljsengine_p.cpp b/src/lib/corelib/parser/qmljsengine_p.cpp
index 92ac6452a..11bf8a3f3 100644
--- a/src/lib/corelib/parser/qmljsengine_p.cpp
+++ b/src/lib/corelib/parser/qmljsengine_p.cpp
@@ -149,7 +149,7 @@ QStringRef Engine::newStringRef(const QString &text)
{
const int pos = _extraCode.length();
_extraCode += text;
- return _extraCode.midRef(pos, text.length());
+ return QStringRef(&_extraCode).mid(pos, text.length());
}
QStringRef Engine::newStringRef(const QChar *chars, int size)
diff --git a/src/lib/corelib/parser/qmljsengine_p.h b/src/lib/corelib/parser/qmljsengine_p.h
index c55d525f8..2a616126d 100644
--- a/src/lib/corelib/parser/qmljsengine_p.h
+++ b/src/lib/corelib/parser/qmljsengine_p.h
@@ -58,6 +58,10 @@
#include <QtCore/qstring.h>
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+#include <QtCore5Compat/qstringref.h>
+#endif
+
#include <set>
#include <utility>
@@ -115,7 +119,10 @@ public:
MemoryPool *pool();
- inline QStringRef midRef(int position, int size) { return _code.midRef(position, size); }
+ inline QStringRef midRef(int position, int size)
+ {
+ return QStringRef(&_code).mid(position, size);
+ }
QStringRef newStringRef(const QString &s);
QStringRef newStringRef(const QChar *chars, int size);
diff --git a/src/lib/corelib/parser/qmljsgrammar.cpp b/src/lib/corelib/parser/qmljsgrammar.cpp
index 07a193f6f..75b4a488a 100644
--- a/src/lib/corelib/parser/qmljsgrammar.cpp
+++ b/src/lib/corelib/parser/qmljsgrammar.cpp
@@ -43,969 +43,975 @@
namespace QbsQmlJS {
const char *const QmlJSGrammar::spell [] = {
- "end of file", "&", "&&", "&=", "break", "case", "catch", ":", ",", "continue",
- "default", "delete", "/", "/=", "do", ".", "else", "=", "==", "===",
- "finally", "for", "function", ">=", ">", ">>", ">>=", ">>>", ">>>=", "identifier",
- "if", "in", "instanceof", "{", "[", "<=", "(", "<", "<<", "<<=",
- "-", "-=", "--", "new", "!", "!=", "!==", "numeric literal", "|", "|=",
- "||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return",
- ")", ";", 0, "*", "*=", "string literal", "property", "signal", "readonly", "switch",
- "this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^",
- "^=", "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "comment", "public",
- "import", "as", "on", 0, 0, 0, 0, 0, 0, 0,
- 0, 0};
+ "end of file", "&", "&&", "&=", "break", "case", "catch", ":", ",", "continue",
+ "default", "delete", "/", "/=", "do", ".", "else", "=", "==", "===",
+ "finally", "for", "function", ">=", ">", ">>", ">>=", ">>>", ">>>=", "identifier",
+ "if", "in", "instanceof", "{", "[", "<=", "(", "<", "<<", "<<=",
+ "-", "-=", "--", "new", "!", "!=", "!==", "numeric literal", "|", "|=",
+ "||", "+", "+=", "++", "?", "}", "]", "%", "%=", "return",
+ ")", ";", 0, "*", "*=", "string literal", "property", "signal", "readonly", "switch",
+ "this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^",
+ "^=", "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "comment", "public",
+ "import", "as", "on", 0, 0, 0, 0, 0, 0, 0,
+ 0, 0
+};
const short QmlJSGrammar::lhs [] = {
- 102, 102, 102, 102, 102, 102, 103, 109, 109, 112,
- 112, 114, 113, 113, 113, 113, 113, 113, 113, 113,
- 116, 111, 110, 119, 119, 120, 120, 121, 121, 118,
- 107, 107, 107, 107, 123, 123, 123, 123, 123, 123,
- 123, 107, 131, 131, 131, 132, 132, 133, 133, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 117, 117, 117, 117,
- 117, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 122,
- 138, 138, 138, 138, 137, 137, 140, 140, 142, 142,
- 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
- 143, 143, 143, 143, 143, 144, 144, 115, 115, 115,
- 115, 115, 147, 147, 148, 148, 148, 148, 146, 146,
- 149, 149, 150, 150, 151, 151, 151, 152, 152, 152,
- 152, 152, 152, 152, 152, 152, 152, 153, 153, 153,
- 153, 154, 154, 154, 155, 155, 155, 155, 156, 156,
- 156, 156, 156, 156, 156, 157, 157, 157, 157, 157,
- 157, 158, 158, 158, 158, 158, 159, 159, 159, 159,
- 159, 160, 160, 161, 161, 162, 162, 163, 163, 164,
- 164, 165, 165, 166, 166, 167, 167, 168, 168, 169,
- 169, 170, 170, 171, 171, 141, 141, 172, 172, 173,
- 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
- 173, 105, 105, 174, 174, 175, 175, 176, 176, 104,
- 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
- 104, 104, 104, 104, 124, 185, 185, 184, 184, 135,
- 135, 186, 186, 187, 187, 189, 189, 188, 190, 193,
- 191, 191, 194, 192, 192, 125, 126, 126, 127, 127,
- 177, 177, 177, 177, 177, 177, 177, 178, 178, 178,
- 178, 179, 179, 179, 179, 180, 180, 128, 129, 195,
- 195, 198, 198, 196, 196, 199, 197, 181, 181, 181,
- 182, 182, 130, 130, 130, 200, 201, 183, 183, 134,
- 145, 205, 205, 202, 202, 203, 203, 206, 108, 108,
- 207, 207, 106, 106, 204, 204, 139, 139, 208};
+ 102, 102, 102, 102, 102, 102, 103, 109, 109, 112,
+ 112, 114, 113, 113, 113, 113, 113, 113, 113, 113,
+ 116, 111, 110, 119, 119, 120, 120, 121, 121, 118,
+ 107, 107, 107, 107, 123, 123, 123, 123, 123, 123,
+ 123, 107, 131, 131, 131, 132, 132, 133, 133, 107,
+ 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
+ 107, 107, 107, 107, 107, 107, 117, 117, 117, 117,
+ 117, 136, 136, 136, 136, 136, 136, 136, 136, 136,
+ 136, 136, 136, 136, 136, 136, 136, 136, 136, 122,
+ 138, 138, 138, 138, 137, 137, 140, 140, 142, 142,
+ 142, 142, 142, 142, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
+ 143, 143, 143, 143, 143, 144, 144, 115, 115, 115,
+ 115, 115, 147, 147, 148, 148, 148, 148, 146, 146,
+ 149, 149, 150, 150, 151, 151, 151, 152, 152, 152,
+ 152, 152, 152, 152, 152, 152, 152, 153, 153, 153,
+ 153, 154, 154, 154, 155, 155, 155, 155, 156, 156,
+ 156, 156, 156, 156, 156, 157, 157, 157, 157, 157,
+ 157, 158, 158, 158, 158, 158, 159, 159, 159, 159,
+ 159, 160, 160, 161, 161, 162, 162, 163, 163, 164,
+ 164, 165, 165, 166, 166, 167, 167, 168, 168, 169,
+ 169, 170, 170, 171, 171, 141, 141, 172, 172, 173,
+ 173, 173, 173, 173, 173, 173, 173, 173, 173, 173,
+ 173, 105, 105, 174, 174, 175, 175, 176, 176, 104,
+ 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
+ 104, 104, 104, 104, 124, 185, 185, 184, 184, 135,
+ 135, 186, 186, 187, 187, 189, 189, 188, 190, 193,
+ 191, 191, 194, 192, 192, 125, 126, 126, 127, 127,
+ 177, 177, 177, 177, 177, 177, 177, 178, 178, 178,
+ 178, 179, 179, 179, 179, 180, 180, 128, 129, 195,
+ 195, 198, 198, 196, 196, 199, 197, 181, 181, 181,
+ 182, 182, 130, 130, 130, 200, 201, 183, 183, 134,
+ 145, 205, 205, 202, 202, 203, 203, 206, 108, 108,
+ 207, 207, 106, 106, 204, 204, 139, 139, 208
+};
const short QmlJSGrammar::rhs [] = {
- 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
- 2, 1, 2, 2, 3, 3, 5, 5, 4, 4,
- 2, 0, 1, 1, 2, 1, 3, 2, 3, 2,
- 1, 5, 4, 4, 1, 1, 1, 1, 1, 1,
- 1, 3, 1, 1, 1, 0, 1, 2, 4, 6,
- 6, 3, 3, 7, 7, 4, 4, 5, 5, 5,
- 6, 6, 10, 6, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 3, 3, 4, 5, 3, 4, 3, 1,
- 1, 2, 3, 4, 1, 2, 3, 5, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
- 3, 5, 1, 2, 4, 4, 4, 3, 0, 1,
- 1, 3, 1, 1, 1, 2, 2, 1, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 1, 3, 3,
- 3, 1, 3, 3, 1, 3, 3, 3, 1, 3,
- 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
- 3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
- 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
- 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
- 3, 1, 5, 1, 5, 1, 3, 1, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 3, 0, 1, 1, 3, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 1, 2, 0, 1, 3,
- 3, 1, 1, 1, 3, 1, 3, 2, 2, 2,
- 0, 1, 2, 0, 1, 1, 2, 2, 7, 5,
- 7, 7, 5, 9, 10, 7, 8, 2, 2, 3,
- 3, 2, 2, 3, 3, 3, 3, 5, 5, 3,
- 5, 1, 2, 0, 1, 4, 3, 3, 3, 3,
- 3, 3, 3, 3, 4, 5, 2, 2, 2, 8,
- 8, 1, 3, 0, 1, 0, 1, 1, 1, 1,
- 1, 2, 1, 1, 0, 1, 0, 1, 2};
+ 2, 2, 2, 2, 2, 2, 2, 1, 1, 1,
+ 2, 1, 2, 2, 3, 3, 5, 5, 4, 4,
+ 2, 0, 1, 1, 2, 1, 3, 2, 3, 2,
+ 1, 5, 4, 4, 1, 1, 1, 1, 1, 1,
+ 1, 3, 1, 1, 1, 0, 1, 2, 4, 6,
+ 6, 3, 3, 7, 7, 4, 4, 5, 5, 5,
+ 6, 6, 10, 6, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 3, 3, 4, 5, 3, 4, 3, 1,
+ 1, 2, 3, 4, 1, 2, 3, 5, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
+ 3, 5, 1, 2, 4, 4, 4, 3, 0, 1,
+ 1, 3, 1, 1, 1, 2, 2, 1, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 1, 3, 3,
+ 3, 1, 3, 3, 1, 3, 3, 3, 1, 3,
+ 3, 3, 3, 3, 3, 1, 3, 3, 3, 3,
+ 3, 1, 3, 3, 3, 3, 1, 3, 3, 3,
+ 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
+ 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
+ 3, 1, 5, 1, 5, 1, 3, 1, 3, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 3, 0, 1, 1, 3, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 3, 1, 2, 0, 1, 3,
+ 3, 1, 1, 1, 3, 1, 3, 2, 2, 2,
+ 0, 1, 2, 0, 1, 1, 2, 2, 7, 5,
+ 7, 7, 5, 9, 10, 7, 8, 2, 2, 3,
+ 3, 2, 2, 3, 3, 3, 3, 5, 5, 3,
+ 5, 1, 2, 0, 1, 4, 3, 3, 3, 3,
+ 3, 3, 3, 3, 4, 5, 2, 2, 2, 8,
+ 8, 1, 3, 0, 1, 0, 1, 1, 1, 1,
+ 1, 2, 1, 1, 0, 1, 0, 1, 2
+};
const short QmlJSGrammar::action_default [] = {
- 0, 0, 22, 0, 0, 0, 22, 0, 175, 242,
- 206, 214, 210, 154, 226, 202, 3, 139, 73, 155,
- 218, 222, 143, 172, 153, 158, 138, 192, 179, 0,
- 80, 81, 76, 345, 67, 347, 0, 0, 0, 0,
- 78, 0, 0, 74, 77, 71, 0, 0, 68, 70,
- 69, 79, 72, 0, 75, 0, 0, 168, 0, 0,
- 155, 174, 157, 156, 0, 0, 0, 170, 171, 169,
- 173, 0, 203, 0, 0, 0, 0, 193, 0, 0,
- 0, 0, 0, 0, 183, 0, 0, 0, 177, 178,
- 176, 181, 185, 184, 182, 180, 195, 194, 196, 0,
- 211, 0, 207, 0, 0, 149, 136, 148, 137, 105,
- 106, 107, 132, 108, 133, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 134, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 135,
- 0, 0, 147, 243, 150, 0, 151, 0, 152, 146,
- 0, 239, 232, 230, 237, 238, 236, 235, 241, 234,
- 233, 231, 240, 227, 0, 215, 0, 0, 219, 0,
- 0, 223, 0, 0, 149, 141, 0, 140, 0, 145,
- 159, 0, 346, 334, 335, 0, 332, 0, 333, 0,
- 336, 250, 257, 256, 264, 252, 0, 253, 337, 0,
- 344, 254, 255, 260, 258, 341, 338, 343, 261, 0,
- 272, 0, 0, 0, 0, 345, 67, 0, 347, 68,
- 244, 286, 69, 0, 0, 0, 273, 0, 0, 262,
- 263, 0, 251, 259, 287, 288, 331, 342, 0, 302,
- 303, 304, 305, 0, 298, 299, 300, 301, 328, 329,
- 0, 0, 0, 0, 0, 291, 292, 248, 246, 208,
- 216, 212, 228, 204, 249, 0, 155, 220, 224, 197,
- 186, 0, 0, 205, 0, 0, 0, 0, 198, 0,
- 0, 0, 0, 0, 190, 188, 191, 189, 187, 200,
- 199, 201, 0, 213, 0, 209, 0, 247, 155, 0,
- 229, 244, 245, 0, 244, 0, 0, 294, 0, 0,
- 0, 296, 0, 217, 0, 0, 221, 0, 0, 225,
- 284, 0, 276, 285, 279, 0, 283, 0, 244, 277,
- 0, 244, 0, 0, 295, 0, 0, 0, 297, 346,
- 334, 0, 0, 336, 0, 330, 0, 320, 0, 0,
- 0, 290, 0, 289, 0, 348, 0, 104, 266, 269,
- 0, 105, 272, 108, 133, 110, 111, 76, 115, 116,
- 67, 117, 120, 74, 77, 68, 244, 69, 79, 123,
- 72, 125, 75, 127, 128, 273, 130, 131, 135, 0,
- 97, 0, 0, 99, 103, 101, 88, 100, 102, 0,
- 98, 87, 267, 265, 143, 144, 149, 0, 142, 0,
- 319, 0, 306, 307, 0, 318, 0, 0, 0, 309,
- 314, 312, 315, 0, 0, 313, 314, 0, 310, 0,
- 311, 268, 317, 0, 268, 316, 0, 321, 322, 0,
- 268, 323, 324, 0, 0, 325, 0, 0, 0, 326,
- 327, 161, 160, 0, 0, 0, 293, 0, 0, 0,
- 308, 281, 274, 0, 282, 278, 0, 280, 270, 0,
- 271, 275, 91, 0, 0, 95, 82, 0, 84, 93,
- 0, 85, 94, 96, 86, 92, 83, 0, 89, 165,
- 163, 167, 164, 162, 166, 339, 6, 340, 4, 2,
- 65, 90, 0, 0, 68, 70, 69, 31, 5, 0,
- 66, 0, 45, 44, 43, 0, 0, 58, 0, 59,
- 35, 36, 37, 38, 40, 41, 62, 39, 0, 45,
- 0, 0, 0, 0, 0, 54, 0, 55, 0, 0,
- 26, 0, 0, 63, 27, 0, 30, 28, 24, 0,
- 29, 25, 0, 56, 0, 57, 143, 0, 60, 64,
- 0, 0, 0, 0, 61, 0, 52, 46, 53, 47,
- 0, 0, 0, 0, 49, 0, 50, 51, 48, 0,
- 0, 143, 268, 0, 0, 42, 105, 272, 108, 133,
- 110, 111, 76, 115, 116, 67, 117, 120, 74, 77,
- 68, 244, 69, 79, 123, 72, 125, 75, 127, 128,
- 273, 130, 131, 135, 0, 32, 33, 0, 34, 8,
- 0, 10, 0, 9, 0, 1, 21, 12, 0, 13,
- 0, 14, 0, 19, 20, 0, 15, 16, 0, 17,
- 18, 11, 23, 7, 349};
+ 0, 0, 22, 0, 0, 0, 22, 0, 175, 242,
+ 206, 214, 210, 154, 226, 202, 3, 139, 73, 155,
+ 218, 222, 143, 172, 153, 158, 138, 192, 179, 0,
+ 80, 81, 76, 345, 67, 347, 0, 0, 0, 0,
+ 78, 0, 0, 74, 77, 71, 0, 0, 68, 70,
+ 69, 79, 72, 0, 75, 0, 0, 168, 0, 0,
+ 155, 174, 157, 156, 0, 0, 0, 170, 171, 169,
+ 173, 0, 203, 0, 0, 0, 0, 193, 0, 0,
+ 0, 0, 0, 0, 183, 0, 0, 0, 177, 178,
+ 176, 181, 185, 184, 182, 180, 195, 194, 196, 0,
+ 211, 0, 207, 0, 0, 149, 136, 148, 137, 105,
+ 106, 107, 132, 108, 133, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 134, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 135,
+ 0, 0, 147, 243, 150, 0, 151, 0, 152, 146,
+ 0, 239, 232, 230, 237, 238, 236, 235, 241, 234,
+ 233, 231, 240, 227, 0, 215, 0, 0, 219, 0,
+ 0, 223, 0, 0, 149, 141, 0, 140, 0, 145,
+ 159, 0, 346, 334, 335, 0, 332, 0, 333, 0,
+ 336, 250, 257, 256, 264, 252, 0, 253, 337, 0,
+ 344, 254, 255, 260, 258, 341, 338, 343, 261, 0,
+ 272, 0, 0, 0, 0, 345, 67, 0, 347, 68,
+ 244, 286, 69, 0, 0, 0, 273, 0, 0, 262,
+ 263, 0, 251, 259, 287, 288, 331, 342, 0, 302,
+ 303, 304, 305, 0, 298, 299, 300, 301, 328, 329,
+ 0, 0, 0, 0, 0, 291, 292, 248, 246, 208,
+ 216, 212, 228, 204, 249, 0, 155, 220, 224, 197,
+ 186, 0, 0, 205, 0, 0, 0, 0, 198, 0,
+ 0, 0, 0, 0, 190, 188, 191, 189, 187, 200,
+ 199, 201, 0, 213, 0, 209, 0, 247, 155, 0,
+ 229, 244, 245, 0, 244, 0, 0, 294, 0, 0,
+ 0, 296, 0, 217, 0, 0, 221, 0, 0, 225,
+ 284, 0, 276, 285, 279, 0, 283, 0, 244, 277,
+ 0, 244, 0, 0, 295, 0, 0, 0, 297, 346,
+ 334, 0, 0, 336, 0, 330, 0, 320, 0, 0,
+ 0, 290, 0, 289, 0, 348, 0, 104, 266, 269,
+ 0, 105, 272, 108, 133, 110, 111, 76, 115, 116,
+ 67, 117, 120, 74, 77, 68, 244, 69, 79, 123,
+ 72, 125, 75, 127, 128, 273, 130, 131, 135, 0,
+ 97, 0, 0, 99, 103, 101, 88, 100, 102, 0,
+ 98, 87, 267, 265, 143, 144, 149, 0, 142, 0,
+ 319, 0, 306, 307, 0, 318, 0, 0, 0, 309,
+ 314, 312, 315, 0, 0, 313, 314, 0, 310, 0,
+ 311, 268, 317, 0, 268, 316, 0, 321, 322, 0,
+ 268, 323, 324, 0, 0, 325, 0, 0, 0, 326,
+ 327, 161, 160, 0, 0, 0, 293, 0, 0, 0,
+ 308, 281, 274, 0, 282, 278, 0, 280, 270, 0,
+ 271, 275, 91, 0, 0, 95, 82, 0, 84, 93,
+ 0, 85, 94, 96, 86, 92, 83, 0, 89, 165,
+ 163, 167, 164, 162, 166, 339, 6, 340, 4, 2,
+ 65, 90, 0, 0, 68, 70, 69, 31, 5, 0,
+ 66, 0, 45, 44, 43, 0, 0, 58, 0, 59,
+ 35, 36, 37, 38, 40, 41, 62, 39, 0, 45,
+ 0, 0, 0, 0, 0, 54, 0, 55, 0, 0,
+ 26, 0, 0, 63, 27, 0, 30, 28, 24, 0,
+ 29, 25, 0, 56, 0, 57, 143, 0, 60, 64,
+ 0, 0, 0, 0, 61, 0, 52, 46, 53, 47,
+ 0, 0, 0, 0, 49, 0, 50, 51, 48, 0,
+ 0, 143, 268, 0, 0, 42, 105, 272, 108, 133,
+ 110, 111, 76, 115, 116, 67, 117, 120, 74, 77,
+ 68, 244, 69, 79, 123, 72, 125, 75, 127, 128,
+ 273, 130, 131, 135, 0, 32, 33, 0, 34, 8,
+ 0, 10, 0, 9, 0, 1, 21, 12, 0, 13,
+ 0, 14, 0, 19, 20, 0, 15, 16, 0, 17,
+ 18, 11, 23, 7, 349
+};
const short QmlJSGrammar::goto_default [] = {
- 7, 625, 207, 196, 205, 508, 496, 624, 643, 495,
- 623, 621, 626, 22, 622, 18, 507, 549, 539, 546,
- 541, 526, 191, 195, 197, 201, 233, 208, 230, 530,
- 570, 569, 200, 232, 26, 474, 473, 356, 355, 9,
- 354, 357, 107, 17, 145, 24, 13, 144, 19, 25,
- 57, 23, 8, 28, 27, 269, 15, 263, 10, 259,
- 12, 261, 11, 260, 20, 267, 21, 268, 14, 262,
- 258, 299, 411, 264, 265, 202, 193, 192, 204, 203,
- 229, 194, 360, 359, 231, 463, 462, 321, 322, 465,
- 324, 464, 323, 419, 423, 426, 422, 421, 441, 442,
- 185, 199, 181, 184, 198, 206, 0};
+ 7, 625, 207, 196, 205, 508, 496, 624, 643, 495,
+ 623, 621, 626, 22, 622, 18, 507, 549, 539, 546,
+ 541, 526, 191, 195, 197, 201, 233, 208, 230, 530,
+ 570, 569, 200, 232, 26, 474, 473, 356, 355, 9,
+ 354, 357, 107, 17, 145, 24, 13, 144, 19, 25,
+ 57, 23, 8, 28, 27, 269, 15, 263, 10, 259,
+ 12, 261, 11, 260, 20, 267, 21, 268, 14, 262,
+ 258, 299, 411, 264, 265, 202, 193, 192, 204, 203,
+ 229, 194, 360, 359, 231, 463, 462, 321, 322, 465,
+ 324, 464, 323, 419, 423, 426, 422, 421, 441, 442,
+ 185, 199, 181, 184, 198, 206, 0
+};
const short QmlJSGrammar::action_index [] = {
- 404, 1275, 2411, 2411, 2509, 1000, 68, 92, 90, -102,
- 88, 62, 60, 256, -102, 298, 86, -102, -102, 638,
- 83, 134, 172, 219, -102, -102, -102, 454, 194, 1275,
- -102, -102, -102, 381, -102, 2215, 1555, 1275, 1275, 1275,
- -102, 790, 1275, -102, -102, -102, 1275, 1275, -102, -102,
- -102, -102, -102, 1275, -102, 1275, 1275, -102, 1275, 1275,
- 102, 217, -102, -102, 1275, 1275, 1275, -102, -102, -102,
- 204, 1275, 304, 1275, 1275, 1275, 1275, 539, 1275, 1275,
- 1275, 1275, 1275, 1275, 308, 1275, 1275, 1275, 103, 131,
- 135, 308, 210, 225, 216, 308, 444, 390, 434, 1275,
- 82, 1275, 100, 2117, 1275, 1275, -102, -102, -102, -102,
- -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
- -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
- -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
- 139, 1275, -102, -102, 91, 10, -102, 1275, -102, -102,
- 1275, -102, -102, -102, -102, -102, -102, -102, -102, -102,
- -102, -102, -102, -102, 1275, 26, 1275, 1275, 69, 66,
- 1275, -102, 2117, 1275, 1275, -102, 97, -102, 44, -102,
- -102, 67, -102, 297, 78, 24, -102, 291, -102, 36,
- 2411, -102, -102, -102, -102, -102, 234, -102, -102, 12,
- -102, -102, -102, -102, -102, -102, 2411, -102, -102, 464,
- -102, 461, 115, 2509, 42, 381, 58, 46, 2705, 70,
- 1275, -102, 74, 57, 1275, 65, -102, 59, 61, -102,
- -102, 367, -102, -102, -102, -102, -102, -102, 106, -102,
- -102, -102, -102, 87, -102, -102, -102, -102, -102, -102,
- 56, 55, 1275, 99, 84, -102, -102, 1461, -102, 75,
- 48, 52, -102, 306, 72, 53, 579, 77, 110, 370,
- 230, 381, 1275, 286, 1275, 1275, 1275, 1275, 380, 1275,
- 1275, 1275, 1275, 1275, 184, 169, 166, 190, 198, 460,
- 363, 353, 1275, 50, 1275, 63, 1275, -102, 638, 1275,
- -102, 1275, 64, 39, 1275, 30, 2509, -102, 1275, 173,
- 2509, -102, 1275, 79, 1275, 1275, 81, 80, 1275, -102,
- 71, 149, 32, -102, -102, 1275, -102, 381, 1275, -102,
- 73, 1275, 76, 2509, -102, 1275, 142, 2509, -102, -16,
- 381, -42, -12, 2411, -39, -102, 2509, -102, 1275, 154,
- 2509, 14, 2509, -102, 20, 16, -32, -102, -102, 2509,
- -51, 519, -4, 511, 136, 1275, 2509, -2, -35, 395,
- -1, -27, 908, 4, 6, -102, 1370, -102, 0, -36,
- 27, 1275, 47, 22, 1275, 45, 1275, 21, 17, 1275,
- -102, 2313, 144, -102, -102, -102, -102, -102, -102, 1275,
- -102, -102, -102, -102, 274, -102, 1275, -21, -102, 2509,
- -102, 138, -102, -102, 2509, -102, 1275, 132, 5, -102,
- 40, -102, 41, 101, 1275, -102, 38, 34, -102, -38,
- -102, 2509, -102, 105, 2509, -102, 245, -102, -102, 96,
- 2509, 11, -102, -7, -11, -102, 352, 8, 18, -102,
- -102, -102, -102, 1275, 129, 2509, -102, 1275, 130, 2509,
- -102, 49, -102, 226, -102, -102, 1275, -102, -102, 362,
- -102, -102, -102, 107, 1837, -102, -102, 1649, -102, -102,
- 1743, -102, -102, -102, -102, -102, -102, 114, -102, -102,
- -102, -102, -102, -102, -102, -102, -102, 2411, -102, -102,
- -102, 94, 9, 818, 189, -10, 31, -102, -102, 223,
- -102, 191, -102, -102, -102, 300, 178, -102, 1928, -102,
- -102, -102, -102, -102, -102, -102, -102, -102, 257, -25,
- 381, 195, -22, 305, 240, -102, -6, -102, 818, 127,
- -102, -18, 818, -102, -102, 1184, -102, -102, -102, 1092,
- -102, -102, 237, -102, 1928, -102, 294, -8, -102, -102,
- 176, 381, 19, 1928, -102, 165, -102, 174, -102, 2,
- -52, 381, 183, 381, -102, 117, -102, -102, -102, 2019,
- 880, 285, 2607, 1555, 3, -102, 522, 35, 453, 108,
- 1275, 2509, 51, 23, 475, 54, -17, 700, 7, 43,
- -102, 1370, -102, 28, -3, 33, 1275, 37, 15, 1275,
- 25, 1275, 1, 13, 124, -102, -102, 29, -102, -102,
- 728, -102, 250, -43, 627, -102, -102, 231, 372, -102,
- 222, -102, 111, -102, -102, 381, -102, -102, 104, -102,
- -102, -102, -102, -102, -102,
+ 360, 1257, 2491, 2491, 2393, 982, 78, 84, 145, -102,
+ 81, 64, 68, 210, -102, 306, 54, -102, -102, 620,
+ 59, 128, 268, 244, -102, -102, -102, 521, 205, 1257,
+ -102, -102, -102, 442, -102, 2197, 1819, 1257, 1257, 1257,
+ -102, 682, 1257, -102, -102, -102, 1257, 1257, -102, -102,
+ -102, -102, -102, 1257, -102, 1257, 1257, -102, 1257, 1257,
+ 95, 188, -102, -102, 1257, 1257, 1257, -102, -102, -102,
+ 191, 1257, 313, 1257, 1257, 1257, 1257, 521, 1257, 1257,
+ 1257, 1257, 1257, 1257, 196, 1257, 1257, 1257, 151, 146,
+ 116, 167, 174, 182, 186, 189, 521, 429, 521, 1257,
+ 45, 1257, 41, 2099, 1257, 1257, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ 125, 1257, -102, -102, 58, 46, -102, 1257, -102, -102,
+ 1257, -102, -102, -102, -102, -102, -102, -102, -102, -102,
+ -102, -102, -102, -102, 1257, 17, 1257, 1257, 75, 71,
+ 1257, -102, 2099, 1257, 1257, -102, 154, -102, 51, -102,
+ -102, 55, -102, 288, 72, 57, -102, 297, -102, 62,
+ 2491, -102, -102, -102, -102, -102, 232, -102, -102, 60,
+ -102, -102, -102, -102, -102, -102, 2491, -102, -102, 458,
+ -102, 470, 89, 2393, 49, 442, 69, 47, 2687, 65,
+ 1257, -102, 61, 43, 1257, 40, -102, 39, 82, -102,
+ -102, 442, -102, -102, -102, -102, -102, -102, 102, -102,
+ -102, -102, -102, 98, -102, -102, -102, -102, -102, -102,
+ 76, 63, 1257, 92, 93, -102, -102, 1348, -102, 88,
+ 66, 48, -102, 304, 80, 77, 560, 187, 86, 400,
+ 271, 442, 1257, 302, 1257, 1257, 1257, 1257, 407, 1257,
+ 1257, 1257, 1257, 1257, 253, 257, 272, 281, 278, 362,
+ 358, 337, 1257, 48, 1257, 73, 1257, -102, 620, 1257,
+ -102, 1257, 56, 44, 1257, 42, 2393, -102, 1257, 117,
+ 2393, -102, 1257, 38, 1257, 1257, 187, 74, 1257, -102,
+ 70, 118, 22, -102, -102, 1257, -102, 442, 1257, -102,
+ 67, 1257, 79, 2393, -102, 1257, 112, 2393, -102, -25,
+ 442, -48, -20, 2491, -41, -102, 2393, -102, 1257, 113,
+ 2393, 2, 2393, -102, 3, 11, -34, -102, -102, 2393,
+ -30, 504, 19, 450, 114, 1257, 2393, 20, -16, 414,
+ -1, -31, 772, -3, -4, -102, 1443, -102, 87, -35,
+ -5, 1257, 0, 30, 1257, 33, 1257, 14, 15, 1257,
+ -102, 2295, 1, -102, -102, -102, -102, -102, -102, 1257,
+ -102, -102, -102, -102, 226, -102, 1257, -6, -102, 2393,
+ -102, 96, -102, -102, 2393, -102, 1257, 101, 36, -102,
+ 53, -102, 29, 91, 1257, -102, 24, 23, -102, -24,
+ -102, 2393, -102, 100, 2393, -102, 250, -102, -102, 90,
+ 2393, 16, -102, 10, 12, -102, 442, -12, 4, -102,
+ -102, -102, -102, 1257, 111, 2393, -102, 1257, 105, 2393,
+ -102, 6, -102, 214, -102, -102, 1257, -102, -102, 354,
+ -102, -102, -102, 85, 1537, -102, -102, 1631, -102, -102,
+ 1725, -102, -102, -102, -102, -102, -102, 135, -102, -102,
+ -102, -102, -102, -102, -102, -102, -102, 2491, -102, -102,
+ -102, 159, -10, 890, 202, -11, 18, -102, -102, 222,
+ -102, 199, -102, -102, -102, 359, 211, -102, 1910, -102,
+ -102, -102, -102, -102, -102, -102, -102, -102, 183, -13,
+ 349, 175, -2, 344, 282, -102, -17, -102, 800, 124,
+ -102, -18, 890, -102, -102, 1074, -102, -102, -102, 1166,
+ -102, -102, 208, -102, 1910, -102, 369, -18, -102, -102,
+ 204, 341, 9, 1910, -102, 203, -102, 177, -102, -8,
+ -51, 309, 206, 442, -102, 83, -102, -102, -102, 2001,
+ 800, 369, 2589, 1819, 34, -102, 436, 25, 493, 108,
+ 1257, 2393, 26, 7, 409, 28, 8, 598, 32, 31,
+ -102, 1443, -102, 87, 5, 21, 1257, 52, 37, 1257,
+ 50, 1257, 35, 13, 134, -102, -102, 27, -102, -102,
+ 710, -102, 266, -38, 890, -102, -102, 115, 300, -102,
+ 176, -102, 122, -102, -102, 442, -102, -102, 126, -102,
+ -102, -102, -102, -102, -102,
- -107, 9, -103, 2, 5, 266, 1, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -39,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, 86,
- -107, -107, -107, 8, -107, -107, -22, 19, 71, 174,
- -107, 186, 171, -107, -107, -107, 184, 178, -107, -107,
- -107, -107, -107, 144, -107, 124, 150, -107, 165, 161,
- -107, -107, -107, -107, 156, 160, 157, -107, -107, -107,
- -107, 147, -107, 142, 135, 179, 166, -107, 177, 170,
- 117, 72, 134, 92, -107, 75, 94, 66, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, 181,
- -107, 106, -107, 143, 78, 55, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -5, -107, -107, -107, -107, -107, 54, -107, -107,
- 51, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, 114, -107, 113, 38, -107, -107,
- 41, -107, 231, 63, 112, -107, -107, -107, -107, -107,
- -107, -107, -107, 30, -107, -107, -107, 52, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, 36, -107, -107, 45,
- -107, 42, -107, 40, -107, 80, -107, -107, 77, -107,
- 88, -107, -107, -107, 83, 74, -107, -107, -107, -107,
- -107, -10, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, 23, -107, -107, -107, -107, 100, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, 4, 223, -107, 230, 236, 222, 205, -107, 127,
- 125, 115, 96, 102, -107, -107, -107, -107, -107, -107,
- -107, -107, 234, -107, 215, -107, 199, -107, -107, 197,
- -107, 190, -107, -107, 163, -107, 90, -107, 0, -107,
- -1, -107, 203, -107, 189, 211, -107, -107, 195, -107,
- -107, -107, -107, -107, -107, 191, -107, 98, 119, -107,
- -107, 95, -107, 81, -107, 79, -107, 82, -107, -107,
- 101, -107, -107, -16, -107, -107, 53, -107, 46, -107,
- 57, -107, 59, -107, -107, -107, -107, -107, -107, 35,
- -107, 33, -107, 39, -107, 89, 67, -107, -107, 58,
- -107, -107, 84, -107, -107, -107, 73, -107, -107, -107,
- -107, 65, -107, 43, 93, -107, 109, -107, -107, 49,
- -107, 47, -107, -107, -107, -107, -107, -107, -107, 50,
- -107, -107, -107, -107, -107, -107, 108, -107, -107, 61,
- -107, -107, -107, -107, 62, -107, 68, -107, -107, -107,
- -107, -107, -23, -107, 69, -107, -19, -107, -107, -107,
- -107, 97, -107, -107, 99, -107, -107, -107, -107, -107,
- 60, -61, -107, -107, 34, -107, 37, -107, 29, -107,
- -107, -107, -107, 32, -107, 76, -107, 44, -107, 56,
- -107, -107, -107, -107, -107, -107, 31, -107, -107, 116,
- -107, -107, -107, -107, -6, -107, -107, 70, -107, -107,
- 64, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -107, -107, -107, -107, -107, -107, -107, 193, -107, -107,
- -107, -107, -107, 7, -107, -107, -107, -107, -107, -107,
- -107, -20, -107, -107, -107, -7, -107, -107, 290, -107,
- -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
- -2, -25, -107, -15, -107, -107, -107, -107, 172, -107,
- -107, -107, 287, -107, -107, 288, -107, -107, -107, 291,
- -107, -107, -107, -107, 336, -107, -107, 20, -107, -107,
- 15, 3, -107, 304, -107, -107, -107, 24, -107, -107,
- -107, 28, 21, 26, -107, -107, -107, -107, -107, 320,
- 104, -107, 13, 381, -3, -107, 6, -107, 10, -107,
- 167, 22, -107, -107, 12, -107, -107, 87, -107, -107,
- -107, 25, -107, -107, -107, -107, 11, -107, 14, 85,
- -107, 121, -107, -107, -107, -107, -107, 27, -107, -107,
- 17, -107, -107, 18, 91, -107, -107, -107, 16, -107,
- -107, -107, -107, -107, -107, -4, -107, -107, -107, -107,
- -107, -107, -107, -107, -107};
+ -107, -3, -98, 4, 7, 280, 3, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -35,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, 78,
+ -107, -107, -107, 20, -107, -107, -22, 15, 86, 72,
+ -107, 193, 175, -107, -107, -107, 174, 170, -107, -107,
+ -107, -107, -107, 118, -107, 144, 145, -107, 127, 156,
+ -107, -107, -107, -107, 162, 165, 166, -107, -107, -107,
+ -107, 149, -107, 137, 136, 135, 134, -107, 181, 180,
+ 179, 173, 53, 117, -107, 81, 95, 90, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, 103,
+ -107, 101, -107, 194, 92, 58, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, 32, -107, -107, -107, -107, -107, 16, -107, -107,
+ 49, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, 70, -107, 109, 34, -107, -107,
+ 45, -107, 216, 60, 100, -107, -107, -107, -107, -107,
+ -107, -107, -107, 44, -107, -107, -107, 47, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, 48, -107, -107, 35,
+ -107, 39, -107, 56, -107, 79, -107, -107, 83, -107,
+ 76, -107, -107, -107, 89, 69, -107, -107, -107, -107,
+ -107, -2, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, 19, -107, -107, -107, -107, 105, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -13, 195, -107, 218, 212, 215, 228, -107, 114,
+ 87, 121, 124, 107, -107, -107, -107, -107, -107, -107,
+ -107, -107, 198, -107, 221, -107, 236, -107, -107, 237,
+ -107, 128, -107, -107, 184, -107, 36, -107, 24, -107,
+ 102, -107, 192, -107, 234, 238, -107, -107, 224, -107,
+ -107, -107, -107, -107, -107, 191, -107, 93, 99, -107,
+ -107, 108, -107, 88, -107, 84, -107, 91, -107, -107,
+ 141, -107, -107, -23, -107, -107, 59, -107, 57, -107,
+ 55, -107, 54, -107, -107, -107, -107, -107, -107, 46,
+ -107, 31, -107, 30, -107, 169, 37, -107, -107, 68,
+ -107, -107, 85, -107, -107, -107, 73, -107, -107, -107,
+ -107, 66, -107, 52, 98, -107, 104, -107, -107, 43,
+ -107, 40, -107, -107, -107, -107, -107, -107, -107, 42,
+ -107, -107, -107, -107, -107, -107, 106, -107, -107, 62,
+ -107, -107, -107, -107, 63, -107, 65, -107, -107, -107,
+ -107, -107, -30, -107, 67, -107, -19, -107, -107, -107,
+ -107, 94, -107, -107, 97, -107, -107, -107, -107, -107,
+ 75, -50, -107, -107, 25, -107, 28, -107, 29, -107,
+ -107, -107, -107, 41, -107, 64, -107, 38, -107, 51,
+ -107, -107, -107, -107, -107, -107, 33, -107, -107, 122,
+ -107, -107, -107, -107, 61, -107, -107, 163, -107, -107,
+ 50, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107, -107, -107, 82, -107, -107,
+ -107, -107, -107, -12, -107, -107, -107, -107, -107, -107,
+ -107, -15, -107, -107, -107, -5, -107, -107, 297, -107,
+ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107,
+ -9, -26, -107, -11, -107, -107, -107, -107, 183, -107,
+ -107, -107, 288, -107, -107, 283, -107, -107, -107, 390,
+ -107, -107, -107, -107, 321, -107, -107, -8, -107, -107,
+ 11, 18, -107, 305, -107, -107, -107, 1, -107, -107,
+ -107, 14, -4, 0, -107, -107, -107, -107, -107, 337,
+ 217, -107, 22, 279, 9, -107, 8, -107, 6, -107,
+ 153, 17, -107, -107, 5, -107, -107, 96, -107, -107,
+ -107, 13, -107, -107, -107, -107, 23, -107, 10, 77,
+ -107, 71, -107, -107, -107, -107, -107, 12, -107, -107,
+ 21, -107, -107, 26, 148, -107, -107, -107, 27, -107,
+ -107, -107, -107, -107, -107, -10, -107, -107, -107, -107,
+ -107, -107, -107, -107, -107
+};
const short QmlJSGrammar::action_info [] = {
- 416, 257, 533, -132, 403, -113, 346, -102, 575, 348,
- 572, -121, 531, -103, -121, 545, 345, 430, 342, 348,
- 340, 343, 440, 401, 391, 545, 563, 389, 538, 446,
- 352, 444, -129, 416, -124, -102, 545, 453, 420, 408,
- -124, 431, -132, 424, -126, 424, 424, 620, 440, 457,
- -103, 440, -129, 457, -126, 440, 560, 453, -113, 257,
- 565, 346, 545, 335, 272, 346, 466, 236, 448, 190,
- 149, 164, 141, 170, 99, 511, 272, 409, 257, 312,
- 296, 414, 348, 312, 189, 164, 187, 318, 325, 71,
- 306, 252, 644, 416, 141, 453, 292, 457, 440, 147,
- 304, 71, 443, 183, 179, 141, 0, 141, 0, 172,
- 99, 427, 434, 141, 301, 477, 444, 0, 0, 0,
- 0, 0, 141, 0, 0, 0, 0, 292, 173, 294,
- 58, 294, 542, 251, 331, 542, 333, 141, 141, 101,
- 141, 59, 0, 58, 62, 256, 255, 141, 247, 246,
- 141, 399, 0, 177, 59, 63, 428, 327, 620, 254,
- 314, 101, 141, 478, 315, 640, 639, 242, 241, 249,
- 248, 58, 634, 633, 488, 58, 249, 248, 577, 576,
- 615, 141, 59, 543, 166, 518, 59, 172, 167, 455,
- 459, 85, 418, 86, 85, 142, 86, 249, 248, 413,
- 412, 567, 337, 512, 87, 512, 173, 87, 174, 85,
- 328, 86, 512, 0, 350, 85, 64, 86, 529, 85,
- 512, 86, 87, 85, 512, 86, 568, 566, 87, 64,
- 579, 64, 87, 310, 469, 85, 87, 86, 0, 519,
- 517, 85, 141, 86, 554, 0, 172, 536, 87, 514,
- 85, 514, 86, 141, 87, 85, 545, 86, 514, 0,
- 513, 65, 513, 87, 514, 173, 514, 66, 87, 513,
- 514, 103, 172, 0, 65, 513, 65, 513, 0, 0,
- 66, 513, 66, 637, 636, 0, 0, 470, 468, 172,
- 104, 173, 105, 406, 0, 235, 234, 630, 555, 553,
- 172, 537, 535, 0, 274, 275, 438, 437, 173, 172,
- 406, 631, 629, 635, 0, 580, 73, 74, -90, 173,
- 34, 174, 73, 74, 274, 275, 34, -90, 173, 34,
- 174, 276, 277, 85, 34, 86, 0, 0, 0, 0,
- 0, 628, 0, 75, 76, 0, 87, 0, 0, 75,
- 76, 276, 277, 0, 0, 0, 0, 48, 50, 49,
- 0, 0, 0, 48, 50, 49, 48, 50, 49, 0,
- 0, 48, 50, 49, 0, 0, 279, 280, 0, 0,
- 0, 34, 0, 45, 0, 281, 279, 280, 282, 45,
- 283, 34, 45, 279, 280, 281, 34, 45, 282, 0,
- 283, 34, 281, 279, 280, 282, 0, 283, 0, 0,
- 34, 0, 281, 78, 79, 282, 0, 283, 48, 50,
- 49, 80, 81, 0, 34, 82, 0, 83, 48, 50,
- 49, -345, 0, 48, 50, 49, 0, 0, 48, 50,
- 49, 0, 0, 0, 45, 0, 0, 48, 50, 49,
- 0, 0, 0, 0, 45, 0, 0, 78, 79, 45,
- 0, 48, 50, 49, 45, 80, 81, 78, 79, 82,
- 0, 83, 0, 45, 0, 80, 81, 78, 79, 82,
- 0, 83, 34, 279, 280, 80, 81, 45, 0, 82,
- 34, 83, 281, 34, 0, 282, 0, 283, 6, 5,
- 4, 1, 3, 2, 34, 0, 0, 0, 0, 0,
- 0, -345, 0, 0, 245, 244, 0, 0, 0, 48,
- 50, 49, 245, 244, 0, 240, 239, 48, 50, 49,
- 48, 50, 49, 0, 0, 0, 0, 0, 0, 0,
- 34, 48, 50, 49, 0, 45, 0, 0, 34, 0,
- 0, 34, 0, 45, 0, 0, 45, 0, 0, 0,
- 0, 0, 78, 79, 0, 0, 0, 45, 0, 0,
- 80, 81, 245, 244, 82, 0, 83, 48, 50, 49,
- 240, 239, 151, 240, 239, 48, 50, 49, 48, 50,
- 49, 0, 152, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 0, 45, 0, 154, 0, 155, 0, 0,
- 308, 45, 0, 0, 45, 0, 0, 0, 156, 0,
- 157, 62, 0, 0, 0, 0, 0, 0, 158, 0,
- 0, 159, 63, 0, 0, 0, 0, 160, 0, 30,
- 31, 151, 0, 161, 0, 0, 0, 0, 0, 33,
- 0, 152, 0, 0, 0, 153, 34, 0, 0, 162,
- 35, 36, 0, 37, 154, 0, 155, 0, 0, 0,
- 503, 0, 0, 0, 44, 0, 0, 156, 0, 157,
- 62, 0, 0, 0, 0, 0, 0, 158, 0, 0,
- 159, 63, 51, 48, 50, 49, 160, 52, 0, 0,
- 0, 0, 161, 0, 0, 0, 0, 0, 43, 54,
- 32, 0, 30, 31, 40, 0, 0, 0, 162, 45,
- 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
- 0, 0, 0, 35, 36, 0, 37, 0, 0, 0,
- 30, 31, 0, 41, 0, 0, 0, 44, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 34, 0, 0,
- 0, 35, 36, 0, 37, 51, 48, 50, 49, 0,
- 52, 503, 0, 0, 0, 44, 0, 0, 0, 0,
- 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
- 0, 0, 45, 51, 48, 50, 49, 0, 52, 0,
- 0, 0, 30, 31, 0, 0, 0, 0, 0, 43,
- 54, 32, 33, 0, 0, 40, 0, 0, 0, 34,
- 45, 0, 0, 35, 36, 0, 37, 0, 0, 0,
- 30, 31, 0, 41, 0, 0, 0, 44, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 34, 0, 0,
- 0, 35, 36, 0, 37, 51, 48, 50, 49, 0,
- 52, 503, 0, 0, 0, 44, 0, 0, 0, 0,
- 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
- 0, 0, 45, 51, 48, 50, 49, 0, 52, 0,
- 0, 0, 30, 31, 0, 0, 0, 0, 0, 43,
- 54, 32, 33, 0, 0, 40, 0, 0, 0, 34,
- 45, 0, 0, 35, 36, 0, 37, 0, 0, 0,
- 30, 31, 0, 503, 0, 0, 0, 44, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 34, 0, 0,
- 0, 35, 36, 0, 37, 51, 48, 50, 49, 0,
- 52, 41, 0, 0, 0, 44, 0, 0, 0, 0,
- 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
- 0, 0, 45, 51, 48, 50, 49, 0, 52, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
- 54, 32, 0, 0, 0, 40, 0, 0, 0, 0,
- 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 502, 0, 30, 31, 0, 0, 0, 0, 0, 0,
- 0, 0, 215, 0, 0, 0, 0, 0, 0, 34,
- 0, 0, 0, 35, 36, 0, 37, 0, 0, 0,
- 0, 0, 0, 503, 0, 0, 0, 44, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 51, 504, 506, 505, 0,
- 52, 0, 0, 0, 0, 226, 0, 0, 0, 0,
- 0, 43, 54, 32, 210, 0, 0, 40, 0, 0,
- 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 502, 0, 30, 31, 0, 0, 0, 0,
- 0, 0, 0, 0, 215, 0, 0, 0, 0, 0,
- 0, 34, 0, 0, 0, 35, 36, 0, 37, 0,
- 0, 0, 0, 0, 0, 503, 0, 0, 0, 44,
- 0, 0, 0, 0, 0, 0, 0, 550, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 51, 504, 506,
- 505, 0, 52, 0, 0, 0, 0, 226, 0, 0,
- 0, 0, 0, 43, 54, 32, 210, 0, 0, 40,
- 0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 502, 0, 30, 31, 0, 0,
- 0, 0, 0, 0, 0, 0, 215, 0, 0, 0,
- 0, 0, 0, 34, 0, 0, 0, 35, 36, 0,
- 37, 0, 0, 0, 0, 0, 0, 503, 0, 0,
- 0, 44, 0, 0, 0, 0, 0, 0, 0, 547,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
- 504, 506, 505, 0, 52, 0, 0, 0, 0, 226,
- 0, 0, 0, 0, 0, 43, 54, 32, 210, 0,
- 0, 40, 0, 0, 0, 0, 45, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 29, 30, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
- 0, 0, 0, 0, 34, 0, 0, 0, 35, 36,
- 0, 37, 0, 0, 0, 38, 0, 39, 41, 42,
- 0, 0, 44, 0, 0, 0, 46, 0, 47, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 51, 48, 50, 49, 0, 52, 0, 53, 0, 55,
- 0, 56, 0, 0, 0, 0, 43, 54, 32, 0,
- 0, 0, 40, 0, 0, 0, 0, 45, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -122, 0, 0,
- 0, 29, 30, 31, 0, 0, 0, 0, 0, 0,
- 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
- 0, 0, 0, 35, 36, 0, 37, 0, 0, 0,
- 38, 0, 39, 41, 42, 0, 0, 44, 0, 0,
- 0, 46, 0, 47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 51, 48, 50, 49, 0,
- 52, 0, 53, 0, 55, 0, 56, 0, 0, 0,
- 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
- 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 29, 30, 31, 0, 0, 0, 0, 0,
- 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
- 34, 0, 0, 0, 35, 36, 0, 37, 0, 0,
- 0, 38, 0, 39, 41, 42, 0, 0, 44, 0,
- 0, 0, 46, 0, 47, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 51, 48, 50, 49,
- 0, 52, 0, 53, 0, 55, 271, 56, 0, 0,
- 0, 0, 43, 54, 32, 0, 0, 0, 40, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 475, 0, 0, 29, 30, 31, 0,
- 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
- 0, 0, 0, 0, 34, 0, 0, 0, 35, 36,
- 0, 37, 0, 0, 0, 38, 0, 39, 41, 42,
- 0, 0, 44, 0, 0, 0, 46, 0, 47, 0,
- 0, 476, 0, 0, 0, 0, 0, 0, 0, 0,
- 51, 48, 50, 49, 0, 52, 0, 53, 0, 55,
- 0, 56, 0, 0, 0, 0, 43, 54, 32, 0,
- 0, 0, 40, 0, 0, 0, 0, 45, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 475, 0, 0,
- 29, 30, 31, 0, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 0, 0, 0, 0, 34, 0,
- 0, 0, 35, 36, 0, 37, 0, 0, 0, 38,
- 0, 39, 41, 42, 0, 0, 44, 0, 0, 0,
- 46, 0, 47, 0, 0, 481, 0, 0, 0, 0,
- 0, 0, 0, 0, 51, 48, 50, 49, 0, 52,
- 0, 53, 0, 55, 0, 56, 0, 0, 0, 0,
- 43, 54, 32, 0, 0, 0, 40, 0, 0, 0,
- 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 483, 0, 0, 29, 30, 31, 0, 0, 0,
- 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
- 0, 0, 34, 0, 0, 0, 35, 36, 0, 37,
- 0, 0, 0, 38, 0, 39, 41, 42, 0, 0,
- 44, 0, 0, 0, 46, 0, 47, 0, 0, 484,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 48,
- 50, 49, 0, 52, 0, 53, 0, 55, 0, 56,
- 0, 0, 0, 0, 43, 54, 32, 0, 0, 0,
- 40, 0, 0, 0, 0, 45, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 483, 0, 0, 29, 30,
- 31, 0, 0, 0, 0, 0, 0, 0, 0, 33,
- 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
- 35, 36, 0, 37, 0, 0, 0, 38, 0, 39,
- 41, 42, 0, 0, 44, 0, 0, 0, 46, 0,
- 47, 0, 0, 486, 0, 0, 0, 0, 0, 0,
- 0, 0, 51, 48, 50, 49, 0, 52, 0, 53,
- 0, 55, 0, 56, 0, 0, 0, 0, 43, 54,
- 32, 0, 0, 0, 40, 0, 0, 0, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
- 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
- 33, 0, 0, 0, 0, 0, 0, 34, 217, 0,
- 0, 218, 36, 0, 37, 0, 0, 0, 38, 0,
- 39, 41, 42, 0, 0, 44, 0, 0, 0, 46,
- 0, 47, 0, 0, 0, 0, 0, 0, 0, 221,
- 0, 0, 0, 51, 48, 50, 49, 223, 52, 0,
- 53, 225, 55, 0, 56, 0, 228, 0, 0, 43,
- 54, 32, 0, 0, 0, 40, 0, 0, 0, 0,
- 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 29, 30, 31, 0, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 0, 0, 0, 0, 0, 34, 217,
- 0, 0, 582, 583, 0, 37, 0, 0, 0, 38,
- 0, 39, 41, 42, 0, 0, 44, 0, 0, 0,
- 46, 0, 47, 0, 0, 0, 0, 0, 0, 0,
- 221, 0, 0, 0, 51, 48, 50, 49, 223, 52,
- 0, 53, 225, 55, 0, 56, 0, 228, 0, 0,
- 43, 54, 32, 0, 0, 0, 40, 0, 0, 0,
- 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 109, 110, 111, 0, 0, 113, 115, 116, 0,
- 0, 117, 0, 118, 0, 0, 0, 120, 121, 122,
- 0, 0, 0, 0, 0, 0, 34, 123, 124, 125,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 126, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 129, 0, 0, 0,
- 0, 0, 0, 48, 50, 49, 130, 131, 132, 0,
- 134, 135, 136, 137, 138, 139, 0, 0, 127, 133,
- 119, 112, 114, 128, 0, 0, 0, 0, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
- 110, 111, 0, 0, 113, 115, 116, 0, 0, 117,
- 0, 118, 0, 0, 0, 120, 121, 122, 0, 0,
- 0, 0, 0, 0, 393, 123, 124, 125, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 126, 0,
- 0, 0, 394, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 129, 0, 0, 0, 0, 0,
- 398, 395, 397, 0, 130, 131, 132, 0, 134, 135,
- 136, 137, 138, 139, 0, 0, 127, 133, 119, 112,
- 114, 128, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 109, 110, 111,
- 0, 0, 113, 115, 116, 0, 0, 117, 0, 118,
- 0, 0, 0, 120, 121, 122, 0, 0, 0, 0,
- 0, 0, 393, 123, 124, 125, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 126, 0, 0, 0,
- 394, 0, 0, 0, 0, 0, 0, 0, 396, 0,
- 0, 0, 129, 0, 0, 0, 0, 0, 398, 395,
- 397, 0, 130, 131, 132, 0, 134, 135, 136, 137,
- 138, 139, 0, 0, 127, 133, 119, 112, 114, 128,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
- 211, 0, 29, 30, 31, 213, 0, 0, 0, 0,
- 0, 0, 214, 215, 0, 0, 0, 0, 0, 0,
- 216, 217, 0, 0, 218, 36, 0, 37, 0, 0,
- 0, 38, 0, 39, 41, 42, 0, 0, 44, 0,
- 0, 0, 46, 0, 47, 0, 0, 0, 0, 0,
- 220, 0, 221, 0, 0, 0, 51, 219, 222, 49,
- 223, 52, 224, 53, 225, 55, 226, 56, 227, 228,
- 0, 0, 43, 54, 32, 210, 212, 0, 40, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 209, 0, 0, 0, 0, 211, 0,
- 29, 30, 31, 213, 0, 0, 0, 0, 0, 0,
- 214, 33, 0, 0, 0, 0, 0, 0, 216, 217,
- 0, 0, 218, 36, 0, 37, 0, 0, 0, 38,
- 0, 39, 41, 42, 0, 0, 44, 0, 0, 0,
- 46, 0, 47, 0, 0, 0, 0, 0, 220, 0,
- 221, 0, 0, 0, 51, 219, 222, 49, 223, 52,
- 224, 53, 225, 55, 226, 56, 227, 228, 0, 0,
- 43, 54, 32, 210, 212, 0, 40, 0, 0, 0,
- 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 586, 110, 111, 0, 0, 588, 115, 590, 30,
- 31, 591, 0, 118, 0, 0, 0, 120, 593, 594,
- 0, 0, 0, 0, 0, 0, 595, 596, 124, 125,
- 218, 36, 0, 37, 0, 0, 0, 38, 0, 39,
- 597, 42, 0, 0, 599, 0, 0, 0, 46, 0,
- 47, 0, 0, 0, 0, 0, 601, 0, 221, 0,
- 0, 0, 603, 600, 602, 49, 604, 605, 606, 53,
- 608, 609, 610, 611, 612, 613, 0, 0, 598, 607,
- 592, 587, 589, 128, 40, 0, 0, 0, 0, 45,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 361,
- 110, 111, 0, 0, 363, 115, 365, 30, 31, 366,
- 0, 118, 0, 0, 0, 120, 368, 369, 0, 0,
- 0, 0, 0, 0, 370, 371, 124, 125, 218, 36,
- 0, 37, 0, 0, 0, 38, 0, 39, 372, 42,
- 0, 0, 374, 0, 0, 0, 46, 0, 47, 0,
- -268, 0, 0, 0, 376, 0, 221, 0, 0, 0,
- 378, 375, 377, 49, 379, 380, 381, 53, 383, 384,
- 385, 386, 387, 388, 0, 0, 373, 382, 367, 362,
- 364, 128, 40, 0, 0, 0, 0, 45, 0, 0,
- 0, 0, 0, 0, 0, 0, 0,
+ 572, 416, -124, -103, -121, 348, 346, -126, 399, 575,
+ 389, 340, 342, 343, 345, 545, 563, 538, 352, 391,
+ 257, 401, 533, 466, 531, 403, -132, -113, -124, 424,
+ 431, 430, -132, -113, 424, 346, 444, 440, -103, -121,
+ -129, 416, 71, 257, 348, 440, 446, 565, 448, 457,
+ 453, 457, 620, 335, 408, 560, 511, -129, 424, -126,
+ 545, 164, 141, 440, 141, 99, 147, 545, 414, 420,
+ 440, 453, 409, 440, 272, 453, 346, 164, 170, 416,
+ 187, 318, 71, 348, 644, 257, 292, 325, 296, 272,
+ 0, 183, 0, 477, -102, 190, 443, 0, 0, 252,
+ 141, 427, 306, 0, 0, 304, 149, 434, 141, 141,
+ 444, 179, 99, 141, 292, 236, 0, 189, 457, 141,
+ 141, 141, 0, 0, 101, 141, 327, 294, 331, 0,
+ 172, 0, 542, 141, 0, 0, 314, 62, 301, 333,
+ 315, 478, 542, 141, 577, 576, 428, 101, 63, 173,
+ 249, 248, 254, 251, 256, 255, 58, 413, 412, 247,
+ 246, 418, 141, 242, 241, 459, 0, 59, 620, 249,
+ 248, 455, 337, 350, 172, 249, 248, 310, 166, 328,
+ 543, 142, 167, 634, 633, 58, 58, 640, 639, 312,
+ 615, 58, 85, 173, 86, 488, 59, 59, 172, 85,
+ 64, 86, 59, 64, 512, 87, 512, 85, 0, 86,
+ 177, 85, 87, 86, 85, 554, 86, 173, 518, 406,
+ 87, 85, 469, 86, 87, 103, 0, 87, 512, 579,
+ 85, 529, 86, 512, 87, 512, 0, 637, 636, 567,
+ 141, 172, 0, 87, 104, 65, 105, 0, 65, 0,
+ 514, 66, 514, 0, 66, 545, 64, 0, 141, 0,
+ 173, 513, 406, 513, 568, 566, 0, 635, 0, 555,
+ 553, 0, 519, 517, 514, 470, 468, 514, 85, 514,
+ 86, 514, 85, 172, 86, 513, 0, 0, 513, 536,
+ 513, 87, 513, 235, 234, 87, 85, 85, 86, 86,
+ 0, 65, 173, 85, 174, 86, 85, 66, 86, 87,
+ 87, 438, 437, 630, 580, 0, 87, 34, 0, 87,
+ 274, 275, 274, 275, 73, 74, 34, 631, 629, 34,
+ 0, 73, 74, 0, 0, 0, 0, 0, 34, 0,
+ 0, 0, 0, 537, 535, 0, 0, 276, 277, 276,
+ 277, 75, 76, 0, 48, 50, 49, 628, 75, 76,
+ 279, 280, 0, 48, 50, 49, 48, 50, 49, 281,
+ 34, 0, 282, 34, 283, 48, 50, 49, 34, 0,
+ 45, 279, 280, 34, 172, 279, 280, 0, 34, 45,
+ 281, 0, 45, 282, 281, 283, 0, 282, 0, 283,
+ 0, 45, -90, 173, 0, 174, 0, 48, 50, 49,
+ 48, 50, 49, 0, 0, 48, 50, 49, 0, 0,
+ 48, 50, 49, 279, 280, 48, 50, 49, 0, 0,
+ 279, 280, 281, 45, 0, 282, 45, 283, 34, 281,
+ 0, 45, 282, 34, 283, -345, 45, 0, 0, 0,
+ -345, 45, 78, 79, 6, 5, 4, 1, 3, 2,
+ 80, 81, 0, 0, 82, 34, 83, 0, 0, 0,
+ 0, 34, 0, 0, 0, 48, 50, 49, 0, 34,
+ 48, 50, 49, 0, 0, 0, 0, 34, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 240, 239, 34,
+ 0, 45, 48, 50, 49, 0, 45, 0, 48, 50,
+ 49, 245, 244, 0, 0, 0, 48, 50, 49, 240,
+ 239, 0, 34, 0, 48, 50, 49, 0, 45, 0,
+ 0, 245, 244, 34, 45, 0, 48, 50, 49, 0,
+ 0, 0, 45, 0, 78, 79, 0, 0, 0, 0,
+ 45, 0, 80, 81, 245, 244, 82, 0, 83, 48,
+ 50, 49, 45, 151, 0, 240, 239, 0, 0, 0,
+ 48, 50, 49, 152, 0, 0, 0, 153, 0, 0,
+ 0, 0, 0, 0, 0, 45, 154, 0, 155, 0,
+ 0, 308, 0, 0, 0, 0, 45, 0, 0, 156,
+ 0, 157, 62, 0, 0, 0, 0, 0, 0, 158,
+ 30, 31, 159, 63, 0, 0, 0, 0, 160, 0,
+ 33, 0, 0, 151, 161, 0, 0, 34, 0, 0,
+ 0, 35, 36, 152, 37, 0, 0, 153, 0, 0,
+ 162, 41, 0, 0, 0, 44, 154, 0, 155, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 156,
+ 0, 157, 62, 51, 48, 50, 49, 0, 52, 158,
+ 0, 0, 159, 63, 0, 0, 0, 0, 160, 43,
+ 54, 32, 0, 0, 161, 40, 0, 0, 0, 0,
+ 45, 0, 0, 0, 30, 31, 0, 0, 0, 0,
+ 162, 0, 0, 0, 33, 0, 0, 0, 0, 0,
+ 0, 34, 0, 0, 0, 35, 36, 0, 37, 0,
+ 0, 0, 30, 31, 0, 41, 0, 0, 0, 44,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
+ 0, 0, 0, 35, 36, 0, 37, 51, 48, 50,
+ 49, 0, 52, 503, 0, 0, 0, 44, 0, 0,
+ 0, 0, 0, 43, 54, 32, 0, 0, 0, 40,
+ 0, 0, 0, 0, 45, 51, 48, 50, 49, 0,
+ 52, 0, 0, 0, 30, 31, 0, 0, 0, 0,
+ 0, 43, 54, 32, 33, 0, 0, 40, 0, 0,
+ 0, 34, 45, 0, 0, 35, 36, 0, 37, 0,
+ 0, 0, 30, 31, 0, 41, 0, 0, 0, 44,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
+ 0, 0, 0, 35, 36, 0, 37, 51, 48, 50,
+ 49, 0, 52, 503, 0, 0, 0, 44, 0, 0,
+ 0, 0, 0, 43, 54, 32, 0, 0, 0, 40,
+ 0, 0, 0, 0, 45, 51, 48, 50, 49, 0,
+ 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
+ 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 30, 31, 0, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
+ 0, 0, 0, 35, 36, 0, 37, 0, 0, 0,
+ 0, 0, 0, 503, 0, 0, 0, 44, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 51, 48, 50, 49, 0,
+ 52, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
+ 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 502, 0, 30, 31, 0, 0, 0, 0,
+ 0, 0, 0, 0, 215, 0, 0, 0, 0, 0,
+ 0, 34, 0, 0, 0, 35, 36, 0, 37, 0,
+ 0, 0, 0, 0, 0, 503, 0, 0, 0, 44,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 51, 504, 506,
+ 505, 0, 52, 0, 0, 0, 0, 226, 0, 0,
+ 0, 0, 0, 43, 54, 32, 210, 0, 0, 40,
+ 0, 0, 0, 0, 45, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 502, 0, 30, 31, 0, 0,
+ 0, 0, 0, 0, 0, 0, 215, 0, 0, 0,
+ 0, 0, 0, 34, 0, 0, 0, 35, 36, 0,
+ 37, 0, 0, 0, 0, 0, 0, 503, 0, 0,
+ 0, 44, 0, 0, 0, 0, 0, 0, 0, 547,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
+ 504, 506, 505, 0, 52, 0, 0, 0, 0, 226,
+ 0, 0, 0, 0, 0, 43, 54, 32, 210, 0,
+ 0, 40, 0, 0, 0, 0, 45, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 502, 0, 30, 31,
+ 0, 0, 0, 0, 0, 0, 0, 0, 215, 0,
+ 0, 0, 0, 0, 0, 34, 0, 0, 0, 35,
+ 36, 0, 37, 0, 0, 0, 0, 0, 0, 503,
+ 0, 0, 0, 44, 0, 0, 0, 0, 0, 0,
+ 0, 550, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 51, 504, 506, 505, 0, 52, 0, 0, 0,
+ 0, 226, 0, 0, 0, 0, 0, 43, 54, 32,
+ 210, 0, 0, 40, 0, 0, 0, 0, 45, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 29, 30,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
+ 35, 36, 0, 37, 0, 0, 0, 38, 0, 39,
+ 41, 42, 0, 0, 44, 0, 0, 0, 46, 0,
+ 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 51, 48, 50, 49, 0, 52, 0, 53,
+ 0, 55, 0, 56, 0, 0, 0, 0, 43, 54,
+ 32, 0, 0, 0, 40, 0, 0, 0, 0, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
+ 30, 31, 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 0, 0, 0, 0, 0, 0, 34, 0, 0,
+ 0, 35, 36, 0, 37, 0, 0, 0, 38, 0,
+ 39, 41, 42, 0, 0, 44, 0, 0, 0, 46,
+ 0, 47, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 51, 48, 50, 49, 0, 52, 0,
+ 53, 0, 55, 271, 56, 0, 0, 0, 0, 43,
+ 54, 32, 0, 0, 0, 40, 0, 0, 0, 0,
+ 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -122, 0, 0, 0, 29, 30, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
+ 0, 0, 34, 0, 0, 0, 35, 36, 0, 37,
+ 0, 0, 0, 38, 0, 39, 41, 42, 0, 0,
+ 44, 0, 0, 0, 46, 0, 47, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 51, 48,
+ 50, 49, 0, 52, 0, 53, 0, 55, 0, 56,
+ 0, 0, 0, 0, 43, 54, 32, 0, 0, 0,
+ 40, 0, 0, 0, 0, 45, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 483, 0, 0, 29, 30,
+ 31, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 0, 0, 0, 0, 0, 0, 34, 0, 0, 0,
+ 35, 36, 0, 37, 0, 0, 0, 38, 0, 39,
+ 41, 42, 0, 0, 44, 0, 0, 0, 46, 0,
+ 47, 0, 0, 486, 0, 0, 0, 0, 0, 0,
+ 0, 0, 51, 48, 50, 49, 0, 52, 0, 53,
+ 0, 55, 0, 56, 0, 0, 0, 0, 43, 54,
+ 32, 0, 0, 0, 40, 0, 0, 0, 0, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 475,
+ 0, 0, 29, 30, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
+ 34, 0, 0, 0, 35, 36, 0, 37, 0, 0,
+ 0, 38, 0, 39, 41, 42, 0, 0, 44, 0,
+ 0, 0, 46, 0, 47, 0, 0, 481, 0, 0,
+ 0, 0, 0, 0, 0, 0, 51, 48, 50, 49,
+ 0, 52, 0, 53, 0, 55, 0, 56, 0, 0,
+ 0, 0, 43, 54, 32, 0, 0, 0, 40, 0,
+ 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 483, 0, 0, 29, 30, 31, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
+ 0, 0, 0, 0, 34, 0, 0, 0, 35, 36,
+ 0, 37, 0, 0, 0, 38, 0, 39, 41, 42,
+ 0, 0, 44, 0, 0, 0, 46, 0, 47, 0,
+ 0, 484, 0, 0, 0, 0, 0, 0, 0, 0,
+ 51, 48, 50, 49, 0, 52, 0, 53, 0, 55,
+ 0, 56, 0, 0, 0, 0, 43, 54, 32, 0,
+ 0, 0, 40, 0, 0, 0, 0, 45, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 475, 0, 0,
+ 29, 30, 31, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 0, 0, 0, 0, 34, 0,
+ 0, 0, 35, 36, 0, 37, 0, 0, 0, 38,
+ 0, 39, 41, 42, 0, 0, 44, 0, 0, 0,
+ 46, 0, 47, 0, 0, 476, 0, 0, 0, 0,
+ 0, 0, 0, 0, 51, 48, 50, 49, 0, 52,
+ 0, 53, 0, 55, 0, 56, 0, 0, 0, 0,
+ 43, 54, 32, 0, 0, 0, 40, 0, 0, 0,
+ 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 29, 30, 31, 0, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 0, 0, 0, 0, 0, 34,
+ 217, 0, 0, 218, 36, 0, 37, 0, 0, 0,
+ 38, 0, 39, 41, 42, 0, 0, 44, 0, 0,
+ 0, 46, 0, 47, 0, 0, 0, 0, 0, 0,
+ 0, 221, 0, 0, 0, 51, 48, 50, 49, 223,
+ 52, 0, 53, 225, 55, 0, 56, 0, 228, 0,
+ 0, 43, 54, 32, 0, 0, 0, 40, 0, 0,
+ 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 29, 30, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
+ 34, 217, 0, 0, 582, 583, 0, 37, 0, 0,
+ 0, 38, 0, 39, 41, 42, 0, 0, 44, 0,
+ 0, 0, 46, 0, 47, 0, 0, 0, 0, 0,
+ 0, 0, 221, 0, 0, 0, 51, 48, 50, 49,
+ 223, 52, 0, 53, 225, 55, 0, 56, 0, 228,
+ 0, 0, 43, 54, 32, 0, 0, 0, 40, 0,
+ 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 109, 110, 111, 0, 0, 113, 115,
+ 116, 0, 0, 117, 0, 118, 0, 0, 0, 120,
+ 121, 122, 0, 0, 0, 0, 0, 0, 34, 123,
+ 124, 125, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 126, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129, 0,
+ 0, 0, 0, 0, 0, 48, 50, 49, 130, 131,
+ 132, 0, 134, 135, 136, 137, 138, 139, 0, 0,
+ 127, 133, 119, 112, 114, 128, 0, 0, 0, 0,
+ 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 109, 110, 111, 0, 0, 113, 115, 116, 0,
+ 0, 117, 0, 118, 0, 0, 0, 120, 121, 122,
+ 0, 0, 0, 0, 0, 0, 393, 123, 124, 125,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 126, 0, 0, 0, 394, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 129, 0, 0, 0,
+ 0, 0, 398, 395, 397, 0, 130, 131, 132, 0,
+ 134, 135, 136, 137, 138, 139, 0, 0, 127, 133,
+ 119, 112, 114, 128, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
+ 110, 111, 0, 0, 113, 115, 116, 0, 0, 117,
+ 0, 118, 0, 0, 0, 120, 121, 122, 0, 0,
+ 0, 0, 0, 0, 393, 123, 124, 125, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 126, 0,
+ 0, 0, 394, 0, 0, 0, 0, 0, 0, 0,
+ 396, 0, 0, 0, 129, 0, 0, 0, 0, 0,
+ 398, 395, 397, 0, 130, 131, 132, 0, 134, 135,
+ 136, 137, 138, 139, 0, 0, 127, 133, 119, 112,
+ 114, 128, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 209, 0, 0,
+ 0, 0, 211, 0, 29, 30, 31, 213, 0, 0,
+ 0, 0, 0, 0, 214, 33, 0, 0, 0, 0,
+ 0, 0, 216, 217, 0, 0, 218, 36, 0, 37,
+ 0, 0, 0, 38, 0, 39, 41, 42, 0, 0,
+ 44, 0, 0, 0, 46, 0, 47, 0, 0, 0,
+ 0, 0, 220, 0, 221, 0, 0, 0, 51, 219,
+ 222, 49, 223, 52, 224, 53, 225, 55, 226, 56,
+ 227, 228, 0, 0, 43, 54, 32, 210, 212, 0,
+ 40, 0, 0, 0, 0, 45, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 209, 0, 0, 0, 0,
+ 211, 0, 29, 30, 31, 213, 0, 0, 0, 0,
+ 0, 0, 214, 215, 0, 0, 0, 0, 0, 0,
+ 216, 217, 0, 0, 218, 36, 0, 37, 0, 0,
+ 0, 38, 0, 39, 41, 42, 0, 0, 44, 0,
+ 0, 0, 46, 0, 47, 0, 0, 0, 0, 0,
+ 220, 0, 221, 0, 0, 0, 51, 219, 222, 49,
+ 223, 52, 224, 53, 225, 55, 226, 56, 227, 228,
+ 0, 0, 43, 54, 32, 210, 212, 0, 40, 0,
+ 0, 0, 0, 45, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 586, 110, 111, 0, 0, 588, 115,
+ 590, 30, 31, 591, 0, 118, 0, 0, 0, 120,
+ 593, 594, 0, 0, 0, 0, 0, 0, 595, 596,
+ 124, 125, 218, 36, 0, 37, 0, 0, 0, 38,
+ 0, 39, 597, 42, 0, 0, 599, 0, 0, 0,
+ 46, 0, 47, 0, 0, 0, 0, 0, 601, 0,
+ 221, 0, 0, 0, 603, 600, 602, 49, 604, 605,
+ 606, 53, 608, 609, 610, 611, 612, 613, 0, 0,
+ 598, 607, 592, 587, 589, 128, 40, 0, 0, 0,
+ 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 361, 110, 111, 0, 0, 363, 115, 365, 30,
+ 31, 366, 0, 118, 0, 0, 0, 120, 368, 369,
+ 0, 0, 0, 0, 0, 0, 370, 371, 124, 125,
+ 218, 36, 0, 37, 0, 0, 0, 38, 0, 39,
+ 372, 42, 0, 0, 374, 0, 0, 0, 46, 0,
+ 47, 0, -268, 0, 0, 0, 376, 0, 221, 0,
+ 0, 0, 378, 375, 377, 49, 379, 380, 381, 53,
+ 383, 384, 385, 386, 387, 388, 0, 0, 373, 382,
+ 367, 362, 364, 128, 40, 0, 0, 0, 0, 45,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 534, 311, 497, 309, 532, 461, 498, 499, 516, 515,
- 619, 638, 16, 552, 436, 358, 616, 472, 562, 320,
- 528, 238, 487, 182, 250, 243, 253, 182, 302, 641,
- 627, 632, 150, 485, 143, 454, 439, 402, 445, 559,
- 237, 574, 250, 578, 561, 186, 618, 458, 238, 349,
- 573, 449, 447, 571, 243, 347, 450, 243, 460, 351,
- 238, 353, 358, 410, 415, 439, 176, 188, 436, 250,
- 467, 417, 433, 182, 425, 429, 302, 169, 456, 358,
- 171, 140, 336, 334, 338, 344, 436, 392, 390, 400,
- 163, 302, 307, 148, 146, 339, 439, 404, 302, 358,
- 404, 358, 0, 482, 501, 480, 0, 642, 0, 479,
- 0, 0, 0, 320, 60, 0, 186, 501, 90, 60,
- 60, 489, 302, 60, 617, 93, 0, 88, 0, 405,
- 0, 461, 405, 60, 60, 451, 180, 60, 0, 180,
- 60, 60, 60, 451, 60, 95, 89, 146, 266, 287,
- 60, 146, 407, 270, 60, 288, 178, 60, 106, 452,
- 0, 60, 60, 60, 102, 60, 302, 332, 286, 60,
- 92, 452, 60, 60, 451, 60, 165, 168, 285, 432,
- 284, 435, 60, 60, 108, 501, 329, 94, 540, 96,
- 60, 330, 60, 302, 494, 60, 77, 237, 60, 404,
- 452, 341, 471, 72, 60, 60, 67, 69, 60, 60,
- 68, 0, 70, 60, 60, 60, 61, 180, 60, 60,
- 98, 491, 60, 91, 490, 60, 60, 60, 493, 60,
- 84, 405, 60, 97, 492, 305, 0, 60, 0, 298,
- 0, 100, 270, 298, 270, 298, 106, 298, 270, 0,
- 270, 60, 270, 60, 316, 0, 270, 0, 270, 298,
- 291, 326, 303, 60, 270, 319, 313, 300, 270, 297,
- 60, 60, 108, 175, 295, 270, 270, 290, 60, 501,
- 273, 317, 60, 270, 60, 278, 509, 270, 0, 270,
- 0, 289, 0, 548, 0, 293, 551, 0, 500, 510,
- 501, 501, 0, 544, 501, 0, 0, 0, 509, 0,
- 0, 509, 520, 521, 522, 523, 527, 524, 525, 0,
- 500, 510, 0, 500, 510, 564, 520, 521, 522, 523,
- 527, 524, 525, 581, 0, 0, 0, 0, 0, 0,
- 584, 585, 520, 521, 522, 523, 527, 524, 525, 556,
- 0, 0, 0, 0, 0, 0, 557, 558, 520, 521,
- 522, 523, 527, 524, 525, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 556, 0, 0, 540, 0, 614,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 472, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0};
+ 16, 528, 320, 532, 534, 638, 552, 497, 498, 499,
+ 516, 559, 619, 461, 515, 574, 302, 472, 487, 250,
+ 182, 243, 253, 238, 358, 573, 436, 309, 616, 578,
+ 571, 618, 439, 562, 627, 182, 150, 641, 307, 250,
+ 561, 458, 632, 447, 454, 243, 238, 450, 402, 445,
+ 238, 449, 237, 460, 243, 148, 353, 351, 250, 186,
+ 349, 347, 188, 176, 410, 415, 456, 425, 417, 436,
+ 433, 143, 467, 169, 439, 429, 302, 358, 344, 302,
+ 392, 400, 390, 182, 171, 358, 237, 336, 163, 482,
+ 334, 439, 436, 338, 339, 140, 358, 146, 404, 358,
+ 485, 60, 302, 0, 311, 0, 94, 0, 320, 404,
+ 0, 302, 0, 0, 0, 0, 0, 0, 60, 60,
+ 60, 452, 490, 0, 0, 60, 60, 451, 180, 60,
+ 405, 302, 165, 88, 60, 60, 489, 461, 60, 146,
+ 285, 405, 90, 60, 178, 146, 60, 89, 451, 60,
+ 407, 60, 60, 266, 452, 60, 186, 60, 270, 102,
+ 288, 501, 60, 100, 642, 60, 60, 284, 494, 60,
+ 95, 330, 60, 168, 286, 60, 432, 287, 61, 435,
+ 332, 329, 60, 60, 60, 60, 0, 302, 98, 97,
+ 96, 77, 60, 60, 451, 452, 501, 60, 480, 540,
+ 303, 60, 479, 180, 60, 72, 404, 70, 471, 106,
+ 60, 0, 67, 60, 60, 68, 69, 60, 60, 180,
+ 493, 60, 60, 60, 492, 491, 93, 60, 60, 60,
+ 501, 106, 92, 91, 84, 108, 0, 617, 405, 298,
+ 60, 341, 0, 60, 270, 270, 60, 0, 270, 0,
+ 0, 270, 273, 0, 0, 313, 305, 108, 175, 293,
+ 60, 326, 0, 60, 0, 270, 60, 289, 270, 60,
+ 290, 270, 298, 278, 270, 0, 60, 270, 0, 0,
+ 295, 270, 60, 291, 298, 298, 298, 270, 548, 270,
+ 270, 270, 556, 501, 319, 540, 501, 614, 0, 316,
+ 509, 501, 0, 509, 544, 0, 297, 300, 317, 0,
+ 0, 0, 500, 510, 0, 500, 510, 0, 472, 520,
+ 521, 522, 523, 527, 524, 525, 564, 520, 521, 522,
+ 523, 527, 524, 525, 556, 0, 0, 0, 0, 0,
+ 0, 557, 558, 520, 521, 522, 523, 527, 524, 525,
+ 581, 0, 0, 0, 0, 0, 0, 584, 585, 520,
+ 521, 522, 523, 527, 524, 525, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 551, 0, 0, 0, 0,
+ 0, 0, 0, 501, 0, 0, 0, 0, 0, 0,
+ 509, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 500, 510, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0
+};
const short QmlJSGrammar::action_check [] = {
- 36, 36, 24, 7, 55, 7, 7, 7, 60, 36,
- 8, 7, 37, 7, 7, 33, 55, 55, 60, 36,
- 36, 33, 33, 55, 8, 33, 7, 7, 34, 36,
- 16, 20, 7, 36, 7, 7, 33, 36, 33, 60,
- 7, 7, 7, 5, 7, 5, 5, 90, 33, 36,
- 7, 33, 7, 36, 7, 33, 66, 36, 7, 36,
- 29, 7, 33, 31, 1, 7, 17, 55, 60, 33,
- 60, 2, 8, 7, 48, 66, 1, 7, 36, 2,
- 8, 7, 36, 2, 60, 2, 8, 7, 17, 1,
- 60, 36, 0, 36, 8, 36, 48, 36, 33, 8,
- 61, 1, 6, 36, 60, 8, -1, 8, -1, 15,
- 48, 10, 7, 8, 61, 8, 20, -1, -1, -1,
- -1, -1, 8, -1, -1, -1, -1, 48, 34, 79,
- 40, 79, 8, 77, 61, 8, 60, 8, 8, 79,
- 8, 51, -1, 40, 42, 61, 62, 8, 61, 62,
- 8, 7, -1, 56, 51, 53, 55, 8, 90, 60,
- 50, 79, 8, 56, 54, 61, 62, 61, 62, 61,
- 62, 40, 61, 62, 60, 40, 61, 62, 61, 62,
- 56, 8, 51, 56, 50, 7, 51, 15, 54, 60,
- 60, 25, 60, 27, 25, 56, 27, 61, 62, 61,
- 62, 36, 60, 29, 38, 29, 34, 38, 36, 25,
- 61, 27, 29, -1, 60, 25, 12, 27, 29, 25,
- 29, 27, 38, 25, 29, 27, 61, 62, 38, 12,
- 7, 12, 38, 60, 8, 25, 38, 27, -1, 61,
- 62, 25, 8, 27, 7, -1, 15, 7, 38, 75,
- 25, 75, 27, 8, 38, 25, 33, 27, 75, -1,
- 86, 57, 86, 38, 75, 34, 75, 63, 38, 86,
- 75, 15, 15, -1, 57, 86, 57, 86, -1, -1,
- 63, 86, 63, 61, 62, -1, -1, 61, 62, 15,
- 34, 34, 36, 36, -1, 61, 62, 47, 61, 62,
- 15, 61, 62, -1, 18, 19, 61, 62, 34, 15,
- 36, 61, 62, 91, -1, 92, 18, 19, 33, 34,
- 29, 36, 18, 19, 18, 19, 29, 33, 34, 29,
- 36, 45, 46, 25, 29, 27, -1, -1, -1, -1,
- -1, 91, -1, 45, 46, -1, 38, -1, -1, 45,
- 46, 45, 46, -1, -1, -1, -1, 66, 67, 68,
- -1, -1, -1, 66, 67, 68, 66, 67, 68, -1,
- -1, 66, 67, 68, -1, -1, 23, 24, -1, -1,
- -1, 29, -1, 92, -1, 32, 23, 24, 35, 92,
- 37, 29, 92, 23, 24, 32, 29, 92, 35, -1,
- 37, 29, 32, 23, 24, 35, -1, 37, -1, -1,
- 29, -1, 32, 23, 24, 35, -1, 37, 66, 67,
- 68, 31, 32, -1, 29, 35, -1, 37, 66, 67,
- 68, 36, -1, 66, 67, 68, -1, -1, 66, 67,
- 68, -1, -1, -1, 92, -1, -1, 66, 67, 68,
- -1, -1, -1, -1, 92, -1, -1, 23, 24, 92,
- -1, 66, 67, 68, 92, 31, 32, 23, 24, 35,
- -1, 37, -1, 92, -1, 31, 32, 23, 24, 35,
- -1, 37, 29, 23, 24, 31, 32, 92, -1, 35,
- 29, 37, 32, 29, -1, 35, -1, 37, 94, 95,
- 96, 97, 98, 99, 29, -1, -1, -1, -1, -1,
- -1, 36, -1, -1, 61, 62, -1, -1, -1, 66,
- 67, 68, 61, 62, -1, 61, 62, 66, 67, 68,
- 66, 67, 68, -1, -1, -1, -1, -1, -1, -1,
- 29, 66, 67, 68, -1, 92, -1, -1, 29, -1,
- -1, 29, -1, 92, -1, -1, 92, -1, -1, -1,
- -1, -1, 23, 24, -1, -1, -1, 92, -1, -1,
- 31, 32, 61, 62, 35, -1, 37, 66, 67, 68,
- 61, 62, 3, 61, 62, 66, 67, 68, 66, 67,
- 68, -1, 13, -1, -1, -1, 17, -1, -1, -1,
- -1, -1, -1, 92, -1, 26, -1, 28, -1, -1,
- 31, 92, -1, -1, 92, -1, -1, -1, 39, -1,
- 41, 42, -1, -1, -1, -1, -1, -1, 49, -1,
- -1, 52, 53, -1, -1, -1, -1, 58, -1, 12,
- 13, 3, -1, 64, -1, -1, -1, -1, -1, 22,
- -1, 13, -1, -1, -1, 17, 29, -1, -1, 80,
- 33, 34, -1, 36, 26, -1, 28, -1, -1, -1,
- 43, -1, -1, -1, 47, -1, -1, 39, -1, 41,
- 42, -1, -1, -1, -1, -1, -1, 49, -1, -1,
- 52, 53, 65, 66, 67, 68, 58, 70, -1, -1,
- -1, -1, 64, -1, -1, -1, -1, -1, 81, 82,
- 83, -1, 12, 13, 87, -1, -1, -1, 80, 92,
- -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
- -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
- 12, 13, -1, 43, -1, -1, -1, 47, -1, -1,
- 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
- -1, 33, 34, -1, 36, 65, 66, 67, 68, -1,
- 70, 43, -1, -1, -1, 47, -1, -1, -1, -1,
- -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
- -1, -1, 92, 65, 66, 67, 68, -1, 70, -1,
- -1, -1, 12, 13, -1, -1, -1, -1, -1, 81,
- 82, 83, 22, -1, -1, 87, -1, -1, -1, 29,
- 92, -1, -1, 33, 34, -1, 36, -1, -1, -1,
- 12, 13, -1, 43, -1, -1, -1, 47, -1, -1,
- 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
- -1, 33, 34, -1, 36, 65, 66, 67, 68, -1,
- 70, 43, -1, -1, -1, 47, -1, -1, -1, -1,
- -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
- -1, -1, 92, 65, 66, 67, 68, -1, 70, -1,
- -1, -1, 12, 13, -1, -1, -1, -1, -1, 81,
- 82, 83, 22, -1, -1, 87, -1, -1, -1, 29,
- 92, -1, -1, 33, 34, -1, 36, -1, -1, -1,
- 12, 13, -1, 43, -1, -1, -1, 47, -1, -1,
- 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
- -1, 33, 34, -1, 36, 65, 66, 67, 68, -1,
- 70, 43, -1, -1, -1, 47, -1, -1, -1, -1,
- -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
- -1, -1, 92, 65, 66, 67, 68, -1, 70, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 81,
- 82, 83, -1, -1, -1, 87, -1, -1, -1, -1,
- 92, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 10, -1, 12, 13, -1, -1, -1, -1, -1, -1,
- -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
- -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
- -1, -1, -1, 43, -1, -1, -1, 47, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 65, 66, 67, 68, -1,
- 70, -1, -1, -1, -1, 75, -1, -1, -1, -1,
- -1, 81, 82, 83, 84, -1, -1, 87, -1, -1,
- -1, -1, 92, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 10, -1, 12, 13, -1, -1, -1, -1,
- -1, -1, -1, -1, 22, -1, -1, -1, -1, -1,
- -1, 29, -1, -1, -1, 33, 34, -1, 36, -1,
- -1, -1, -1, -1, -1, 43, -1, -1, -1, 47,
- -1, -1, -1, -1, -1, -1, -1, 55, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 65, 66, 67,
- 68, -1, 70, -1, -1, -1, -1, 75, -1, -1,
- -1, -1, -1, 81, 82, 83, 84, -1, -1, 87,
- -1, -1, -1, -1, 92, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 10, -1, 12, 13, -1, -1,
- -1, -1, -1, -1, -1, -1, 22, -1, -1, -1,
- -1, -1, -1, 29, -1, -1, -1, 33, 34, -1,
- 36, -1, -1, -1, -1, -1, -1, 43, -1, -1,
- -1, 47, -1, -1, -1, -1, -1, -1, -1, 55,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 65,
- 66, 67, 68, -1, 70, -1, -1, -1, -1, 75,
- -1, -1, -1, -1, -1, 81, 82, 83, 84, -1,
- -1, 87, -1, -1, -1, -1, 92, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 11, 12, 13, -1,
- -1, -1, -1, -1, -1, -1, -1, 22, -1, -1,
- -1, -1, -1, -1, 29, -1, -1, -1, 33, 34,
- -1, 36, -1, -1, -1, 40, -1, 42, 43, 44,
- -1, -1, 47, -1, -1, -1, 51, -1, 53, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 65, 66, 67, 68, -1, 70, -1, 72, -1, 74,
- -1, 76, -1, -1, -1, -1, 81, 82, 83, -1,
- -1, -1, 87, -1, -1, -1, -1, 92, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 7, -1, -1,
- -1, 11, 12, 13, -1, -1, -1, -1, -1, -1,
- -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
- -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
- 40, -1, 42, 43, 44, -1, -1, 47, -1, -1,
- -1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 65, 66, 67, 68, -1,
- 70, -1, 72, -1, 74, -1, 76, -1, -1, -1,
- -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
- -1, -1, 92, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
- -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
- 29, -1, -1, -1, 33, 34, -1, 36, -1, -1,
- -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
- -1, -1, 51, -1, 53, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 65, 66, 67, 68,
- -1, 70, -1, 72, -1, 74, 75, 76, -1, -1,
- -1, -1, 81, 82, 83, -1, -1, -1, 87, -1,
- -1, -1, -1, 92, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 8, -1, -1, 11, 12, 13, -1,
- -1, -1, -1, -1, -1, -1, -1, 22, -1, -1,
- -1, -1, -1, -1, 29, -1, -1, -1, 33, 34,
- -1, 36, -1, -1, -1, 40, -1, 42, 43, 44,
- -1, -1, 47, -1, -1, -1, 51, -1, 53, -1,
- -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
- 65, 66, 67, 68, -1, 70, -1, 72, -1, 74,
- -1, 76, -1, -1, -1, -1, 81, 82, 83, -1,
- -1, -1, 87, -1, -1, -1, -1, 92, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 8, -1, -1,
- 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
- -1, 22, -1, -1, -1, -1, -1, -1, 29, -1,
- -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
- -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
- 51, -1, 53, -1, -1, 56, -1, -1, -1, -1,
- -1, -1, -1, -1, 65, 66, 67, 68, -1, 70,
- -1, 72, -1, 74, -1, 76, -1, -1, -1, -1,
- 81, 82, 83, -1, -1, -1, 87, -1, -1, -1,
- -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 8, -1, -1, 11, 12, 13, -1, -1, -1,
- -1, -1, -1, -1, -1, 22, -1, -1, -1, -1,
- -1, -1, 29, -1, -1, -1, 33, 34, -1, 36,
- -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
- 47, -1, -1, -1, 51, -1, 53, -1, -1, 56,
- -1, -1, -1, -1, -1, -1, -1, -1, 65, 66,
- 67, 68, -1, 70, -1, 72, -1, 74, -1, 76,
- -1, -1, -1, -1, 81, 82, 83, -1, -1, -1,
- 87, -1, -1, -1, -1, 92, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 8, -1, -1, 11, 12,
- 13, -1, -1, -1, -1, -1, -1, -1, -1, 22,
- -1, -1, -1, -1, -1, -1, 29, -1, -1, -1,
- 33, 34, -1, 36, -1, -1, -1, 40, -1, 42,
- 43, 44, -1, -1, 47, -1, -1, -1, 51, -1,
- 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
- -1, -1, 65, 66, 67, 68, -1, 70, -1, 72,
- -1, 74, -1, 76, -1, -1, -1, -1, 81, 82,
- 83, -1, -1, -1, 87, -1, -1, -1, -1, 92,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 11,
- 12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
- 22, -1, -1, -1, -1, -1, -1, 29, 30, -1,
- -1, 33, 34, -1, 36, -1, -1, -1, 40, -1,
- 42, 43, 44, -1, -1, 47, -1, -1, -1, 51,
- -1, 53, -1, -1, -1, -1, -1, -1, -1, 61,
- -1, -1, -1, 65, 66, 67, 68, 69, 70, -1,
- 72, 73, 74, -1, 76, -1, 78, -1, -1, 81,
- 82, 83, -1, -1, -1, 87, -1, -1, -1, -1,
- 92, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
- -1, 22, -1, -1, -1, -1, -1, -1, 29, 30,
- -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
- -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
- 51, -1, 53, -1, -1, -1, -1, -1, -1, -1,
- 61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
- -1, 72, 73, 74, -1, 76, -1, 78, -1, -1,
- 81, 82, 83, -1, -1, -1, 87, -1, -1, -1,
- -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 4, 5, 6, -1, -1, 9, 10, 11, -1,
- -1, 14, -1, 16, -1, -1, -1, 20, 21, 22,
- -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 43, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
- -1, -1, -1, 66, 67, 68, 69, 70, 71, -1,
- 73, 74, 75, 76, 77, 78, -1, -1, 81, 82,
- 83, 84, 85, 86, -1, -1, -1, -1, -1, 92,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
- 5, 6, -1, -1, 9, 10, 11, -1, -1, 14,
- -1, 16, -1, -1, -1, 20, 21, 22, -1, -1,
- -1, -1, -1, -1, 29, 30, 31, 32, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 43, -1,
- -1, -1, 47, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- 65, 66, 67, -1, 69, 70, 71, -1, 73, 74,
- 75, 76, 77, 78, -1, -1, 81, 82, 83, 84,
- 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 4, 5, 6,
- -1, -1, 9, 10, 11, -1, -1, 14, -1, 16,
- -1, -1, -1, 20, 21, 22, -1, -1, -1, -1,
- -1, -1, 29, 30, 31, 32, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 43, -1, -1, -1,
- 47, -1, -1, -1, -1, -1, -1, -1, 55, -1,
- -1, -1, 59, -1, -1, -1, -1, -1, 65, 66,
- 67, -1, 69, 70, 71, -1, 73, 74, 75, 76,
- 77, 78, -1, -1, 81, 82, 83, 84, 85, 86,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 4, -1, -1, -1, -1,
- 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
- -1, -1, 21, 22, -1, -1, -1, -1, -1, -1,
- 29, 30, -1, -1, 33, 34, -1, 36, -1, -1,
- -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
- -1, -1, 51, -1, 53, -1, -1, -1, -1, -1,
- 59, -1, 61, -1, -1, -1, 65, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- -1, -1, 81, 82, 83, 84, 85, -1, 87, -1,
- -1, -1, -1, 92, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 4, -1, -1, -1, -1, 9, -1,
- 11, 12, 13, 14, -1, -1, -1, -1, -1, -1,
- 21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
- -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
- -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
- 51, -1, 53, -1, -1, -1, -1, -1, 59, -1,
- 61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, -1, -1,
- 81, 82, 83, 84, 85, -1, 87, -1, -1, -1,
- -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 4, 5, 6, -1, -1, 9, 10, 11, 12,
- 13, 14, -1, 16, -1, -1, -1, 20, 21, 22,
- -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
- 33, 34, -1, 36, -1, -1, -1, 40, -1, 42,
- 43, 44, -1, -1, 47, -1, -1, -1, 51, -1,
- 53, -1, -1, -1, -1, -1, 59, -1, 61, -1,
- -1, -1, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, -1, -1, 81, 82,
- 83, 84, 85, 86, 87, -1, -1, -1, -1, 92,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
- 5, 6, -1, -1, 9, 10, 11, 12, 13, 14,
- -1, 16, -1, -1, -1, 20, 21, 22, -1, -1,
- -1, -1, -1, -1, 29, 30, 31, 32, 33, 34,
- -1, 36, -1, -1, -1, 40, -1, 42, 43, 44,
- -1, -1, 47, -1, -1, -1, 51, -1, 53, -1,
- 55, -1, -1, -1, 59, -1, 61, -1, -1, -1,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, -1, -1, 81, 82, 83, 84,
- 85, 86, 87, -1, -1, -1, -1, 92, -1, -1,
- -1, -1, -1, -1, -1, -1, -1,
+ 8, 36, 7, 7, 7, 36, 7, 7, 7, 60,
+ 7, 36, 60, 33, 55, 33, 7, 34, 16, 8,
+ 36, 55, 24, 17, 37, 55, 7, 7, 7, 5,
+ 7, 55, 7, 7, 5, 7, 20, 33, 7, 7,
+ 7, 36, 1, 36, 36, 33, 36, 29, 60, 36,
+ 36, 36, 90, 31, 60, 66, 66, 7, 5, 7,
+ 33, 2, 8, 33, 8, 48, 8, 33, 7, 33,
+ 33, 36, 7, 33, 1, 36, 7, 2, 7, 36,
+ 8, 7, 1, 36, 0, 36, 48, 17, 8, 1,
+ -1, 36, -1, 8, 7, 33, 6, -1, -1, 36,
+ 8, 10, 60, -1, -1, 61, 60, 7, 8, 8,
+ 20, 60, 48, 8, 48, 55, -1, 60, 36, 8,
+ 8, 8, -1, -1, 79, 8, 8, 79, 61, -1,
+ 15, -1, 8, 8, -1, -1, 50, 42, 61, 60,
+ 54, 56, 8, 8, 61, 62, 55, 79, 53, 34,
+ 61, 62, 60, 77, 61, 62, 40, 61, 62, 61,
+ 62, 60, 8, 61, 62, 60, -1, 51, 90, 61,
+ 62, 60, 60, 60, 15, 61, 62, 60, 50, 61,
+ 56, 56, 54, 61, 62, 40, 40, 61, 62, 2,
+ 56, 40, 25, 34, 27, 60, 51, 51, 15, 25,
+ 12, 27, 51, 12, 29, 38, 29, 25, -1, 27,
+ 56, 25, 38, 27, 25, 7, 27, 34, 7, 36,
+ 38, 25, 8, 27, 38, 15, -1, 38, 29, 7,
+ 25, 29, 27, 29, 38, 29, -1, 61, 62, 36,
+ 8, 15, -1, 38, 34, 57, 36, -1, 57, -1,
+ 75, 63, 75, -1, 63, 33, 12, -1, 8, -1,
+ 34, 86, 36, 86, 61, 62, -1, 91, -1, 61,
+ 62, -1, 61, 62, 75, 61, 62, 75, 25, 75,
+ 27, 75, 25, 15, 27, 86, -1, -1, 86, 7,
+ 86, 38, 86, 61, 62, 38, 25, 25, 27, 27,
+ -1, 57, 34, 25, 36, 27, 25, 63, 27, 38,
+ 38, 61, 62, 47, 92, -1, 38, 29, -1, 38,
+ 18, 19, 18, 19, 18, 19, 29, 61, 62, 29,
+ -1, 18, 19, -1, -1, -1, -1, -1, 29, -1,
+ -1, -1, -1, 61, 62, -1, -1, 45, 46, 45,
+ 46, 45, 46, -1, 66, 67, 68, 91, 45, 46,
+ 23, 24, -1, 66, 67, 68, 66, 67, 68, 32,
+ 29, -1, 35, 29, 37, 66, 67, 68, 29, -1,
+ 92, 23, 24, 29, 15, 23, 24, -1, 29, 92,
+ 32, -1, 92, 35, 32, 37, -1, 35, -1, 37,
+ -1, 92, 33, 34, -1, 36, -1, 66, 67, 68,
+ 66, 67, 68, -1, -1, 66, 67, 68, -1, -1,
+ 66, 67, 68, 23, 24, 66, 67, 68, -1, -1,
+ 23, 24, 32, 92, -1, 35, 92, 37, 29, 32,
+ -1, 92, 35, 29, 37, 36, 92, -1, -1, -1,
+ 36, 92, 23, 24, 94, 95, 96, 97, 98, 99,
+ 31, 32, -1, -1, 35, 29, 37, -1, -1, -1,
+ -1, 29, -1, -1, -1, 66, 67, 68, -1, 29,
+ 66, 67, 68, -1, -1, -1, -1, 29, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 61, 62, 29,
+ -1, 92, 66, 67, 68, -1, 92, -1, 66, 67,
+ 68, 61, 62, -1, -1, -1, 66, 67, 68, 61,
+ 62, -1, 29, -1, 66, 67, 68, -1, 92, -1,
+ -1, 61, 62, 29, 92, -1, 66, 67, 68, -1,
+ -1, -1, 92, -1, 23, 24, -1, -1, -1, -1,
+ 92, -1, 31, 32, 61, 62, 35, -1, 37, 66,
+ 67, 68, 92, 3, -1, 61, 62, -1, -1, -1,
+ 66, 67, 68, 13, -1, -1, -1, 17, -1, -1,
+ -1, -1, -1, -1, -1, 92, 26, -1, 28, -1,
+ -1, 31, -1, -1, -1, -1, 92, -1, -1, 39,
+ -1, 41, 42, -1, -1, -1, -1, -1, -1, 49,
+ 12, 13, 52, 53, -1, -1, -1, -1, 58, -1,
+ 22, -1, -1, 3, 64, -1, -1, 29, -1, -1,
+ -1, 33, 34, 13, 36, -1, -1, 17, -1, -1,
+ 80, 43, -1, -1, -1, 47, 26, -1, 28, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 39,
+ -1, 41, 42, 65, 66, 67, 68, -1, 70, 49,
+ -1, -1, 52, 53, -1, -1, -1, -1, 58, 81,
+ 82, 83, -1, -1, 64, 87, -1, -1, -1, -1,
+ 92, -1, -1, -1, 12, 13, -1, -1, -1, -1,
+ 80, -1, -1, -1, 22, -1, -1, -1, -1, -1,
+ -1, 29, -1, -1, -1, 33, 34, -1, 36, -1,
+ -1, -1, 12, 13, -1, 43, -1, -1, -1, 47,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, 65, 66, 67,
+ 68, -1, 70, 43, -1, -1, -1, 47, -1, -1,
+ -1, -1, -1, 81, 82, 83, -1, -1, -1, 87,
+ -1, -1, -1, -1, 92, 65, 66, 67, 68, -1,
+ 70, -1, -1, -1, 12, 13, -1, -1, -1, -1,
+ -1, 81, 82, 83, 22, -1, -1, 87, -1, -1,
+ -1, 29, 92, -1, -1, 33, 34, -1, 36, -1,
+ -1, -1, 12, 13, -1, 43, -1, -1, -1, 47,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, 65, 66, 67,
+ 68, -1, 70, 43, -1, -1, -1, 47, -1, -1,
+ -1, -1, -1, 81, 82, 83, -1, -1, -1, 87,
+ -1, -1, -1, -1, 92, 65, 66, 67, 68, -1,
+ 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
+ -1, -1, 92, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 12, 13, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ -1, -1, -1, 33, 34, -1, 36, -1, -1, -1,
+ -1, -1, -1, 43, -1, -1, -1, 47, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 65, 66, 67, 68, -1,
+ 70, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
+ -1, -1, 92, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 10, -1, 12, 13, -1, -1, -1, -1,
+ -1, -1, -1, -1, 22, -1, -1, -1, -1, -1,
+ -1, 29, -1, -1, -1, 33, 34, -1, 36, -1,
+ -1, -1, -1, -1, -1, 43, -1, -1, -1, 47,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 65, 66, 67,
+ 68, -1, 70, -1, -1, -1, -1, 75, -1, -1,
+ -1, -1, -1, 81, 82, 83, 84, -1, -1, 87,
+ -1, -1, -1, -1, 92, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 10, -1, 12, 13, -1, -1,
+ -1, -1, -1, -1, -1, -1, 22, -1, -1, -1,
+ -1, -1, -1, 29, -1, -1, -1, 33, 34, -1,
+ 36, -1, -1, -1, -1, -1, -1, 43, -1, -1,
+ -1, 47, -1, -1, -1, -1, -1, -1, -1, 55,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 65,
+ 66, 67, 68, -1, 70, -1, -1, -1, -1, 75,
+ -1, -1, -1, -1, -1, 81, 82, 83, 84, -1,
+ -1, 87, -1, -1, -1, -1, 92, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 10, -1, 12, 13,
+ -1, -1, -1, -1, -1, -1, -1, -1, 22, -1,
+ -1, -1, -1, -1, -1, 29, -1, -1, -1, 33,
+ 34, -1, 36, -1, -1, -1, -1, -1, -1, 43,
+ -1, -1, -1, 47, -1, -1, -1, -1, -1, -1,
+ -1, 55, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 65, 66, 67, 68, -1, 70, -1, -1, -1,
+ -1, 75, -1, -1, -1, -1, -1, 81, 82, 83,
+ 84, -1, -1, 87, -1, -1, -1, -1, 92, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 11, 12,
+ 13, -1, -1, -1, -1, -1, -1, -1, -1, 22,
+ -1, -1, -1, -1, -1, -1, 29, -1, -1, -1,
+ 33, 34, -1, 36, -1, -1, -1, 40, -1, 42,
+ 43, 44, -1, -1, 47, -1, -1, -1, 51, -1,
+ 53, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 65, 66, 67, 68, -1, 70, -1, 72,
+ -1, 74, -1, 76, -1, -1, -1, -1, 81, 82,
+ 83, -1, -1, -1, 87, -1, -1, -1, -1, 92,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 11,
+ 12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
+ 22, -1, -1, -1, -1, -1, -1, 29, -1, -1,
+ -1, 33, 34, -1, 36, -1, -1, -1, 40, -1,
+ 42, 43, 44, -1, -1, 47, -1, -1, -1, 51,
+ -1, 53, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 65, 66, 67, 68, -1, 70, -1,
+ 72, -1, 74, 75, 76, -1, -1, -1, -1, 81,
+ 82, 83, -1, -1, -1, 87, -1, -1, -1, -1,
+ 92, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 7, -1, -1, -1, 11, 12, 13, -1, -1, -1,
+ -1, -1, -1, -1, -1, 22, -1, -1, -1, -1,
+ -1, -1, 29, -1, -1, -1, 33, 34, -1, 36,
+ -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
+ 47, -1, -1, -1, 51, -1, 53, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 65, 66,
+ 67, 68, -1, 70, -1, 72, -1, 74, -1, 76,
+ -1, -1, -1, -1, 81, 82, 83, -1, -1, -1,
+ 87, -1, -1, -1, -1, 92, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 8, -1, -1, 11, 12,
+ 13, -1, -1, -1, -1, -1, -1, -1, -1, 22,
+ -1, -1, -1, -1, -1, -1, 29, -1, -1, -1,
+ 33, 34, -1, 36, -1, -1, -1, 40, -1, 42,
+ 43, 44, -1, -1, 47, -1, -1, -1, 51, -1,
+ 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
+ -1, -1, 65, 66, 67, 68, -1, 70, -1, 72,
+ -1, 74, -1, 76, -1, -1, -1, -1, 81, 82,
+ 83, -1, -1, -1, 87, -1, -1, -1, -1, 92,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 8,
+ -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
+ -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
+ 29, -1, -1, -1, 33, 34, -1, 36, -1, -1,
+ -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
+ -1, -1, 51, -1, 53, -1, -1, 56, -1, -1,
+ -1, -1, -1, -1, -1, -1, 65, 66, 67, 68,
+ -1, 70, -1, 72, -1, 74, -1, 76, -1, -1,
+ -1, -1, 81, 82, 83, -1, -1, -1, 87, -1,
+ -1, -1, -1, 92, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 8, -1, -1, 11, 12, 13, -1,
+ -1, -1, -1, -1, -1, -1, -1, 22, -1, -1,
+ -1, -1, -1, -1, 29, -1, -1, -1, 33, 34,
+ -1, 36, -1, -1, -1, 40, -1, 42, 43, 44,
+ -1, -1, 47, -1, -1, -1, 51, -1, 53, -1,
+ -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
+ 65, 66, 67, 68, -1, 70, -1, 72, -1, 74,
+ -1, 76, -1, -1, -1, -1, 81, 82, 83, -1,
+ -1, -1, 87, -1, -1, -1, -1, 92, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 8, -1, -1,
+ 11, 12, 13, -1, -1, -1, -1, -1, -1, -1,
+ -1, 22, -1, -1, -1, -1, -1, -1, 29, -1,
+ -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
+ -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+ 51, -1, 53, -1, -1, 56, -1, -1, -1, -1,
+ -1, -1, -1, -1, 65, 66, 67, 68, -1, 70,
+ -1, 72, -1, 74, -1, 76, -1, -1, -1, -1,
+ 81, 82, 83, -1, -1, -1, 87, -1, -1, -1,
+ -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 11, 12, 13, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
+ 30, -1, -1, 33, 34, -1, 36, -1, -1, -1,
+ 40, -1, 42, 43, 44, -1, -1, 47, -1, -1,
+ -1, 51, -1, 53, -1, -1, -1, -1, -1, -1,
+ -1, 61, -1, -1, -1, 65, 66, 67, 68, 69,
+ 70, -1, 72, 73, 74, -1, 76, -1, 78, -1,
+ -1, 81, 82, 83, -1, -1, -1, 87, -1, -1,
+ -1, -1, 92, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 11, 12, 13, -1, -1, -1, -1, -1,
+ -1, -1, -1, 22, -1, -1, -1, -1, -1, -1,
+ 29, 30, -1, -1, 33, 34, -1, 36, -1, -1,
+ -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
+ -1, -1, 51, -1, 53, -1, -1, -1, -1, -1,
+ -1, -1, 61, -1, -1, -1, 65, 66, 67, 68,
+ 69, 70, -1, 72, 73, 74, -1, 76, -1, 78,
+ -1, -1, 81, 82, 83, -1, -1, -1, 87, -1,
+ -1, -1, -1, 92, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4, 5, 6, -1, -1, 9, 10,
+ 11, -1, -1, 14, -1, 16, -1, -1, -1, 20,
+ 21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+ 31, 32, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 43, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
+ -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
+ 71, -1, 73, 74, 75, 76, 77, 78, -1, -1,
+ 81, 82, 83, 84, 85, 86, -1, -1, -1, -1,
+ -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4, 5, 6, -1, -1, 9, 10, 11, -1,
+ -1, 14, -1, 16, -1, -1, -1, 20, 21, 22,
+ -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 43, -1, -1, -1, 47, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
+ -1, -1, 65, 66, 67, -1, 69, 70, 71, -1,
+ 73, 74, 75, 76, 77, 78, -1, -1, 81, 82,
+ 83, 84, 85, 86, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
+ 5, 6, -1, -1, 9, 10, 11, -1, -1, 14,
+ -1, 16, -1, -1, -1, 20, 21, 22, -1, -1,
+ -1, -1, -1, -1, 29, 30, 31, 32, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 43, -1,
+ -1, -1, 47, -1, -1, -1, -1, -1, -1, -1,
+ 55, -1, -1, -1, 59, -1, -1, -1, -1, -1,
+ 65, 66, 67, -1, 69, 70, 71, -1, 73, 74,
+ 75, 76, 77, 78, -1, -1, 81, 82, 83, 84,
+ 85, 86, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 4, -1, -1,
+ -1, -1, 9, -1, 11, 12, 13, 14, -1, -1,
+ -1, -1, -1, -1, 21, 22, -1, -1, -1, -1,
+ -1, -1, 29, 30, -1, -1, 33, 34, -1, 36,
+ -1, -1, -1, 40, -1, 42, 43, 44, -1, -1,
+ 47, -1, -1, -1, 51, -1, 53, -1, -1, -1,
+ -1, -1, 59, -1, 61, -1, -1, -1, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, -1, -1, 81, 82, 83, 84, 85, -1,
+ 87, -1, -1, -1, -1, 92, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 4, -1, -1, -1, -1,
+ 9, -1, 11, 12, 13, 14, -1, -1, -1, -1,
+ -1, -1, 21, 22, -1, -1, -1, -1, -1, -1,
+ 29, 30, -1, -1, 33, 34, -1, 36, -1, -1,
+ -1, 40, -1, 42, 43, 44, -1, -1, 47, -1,
+ -1, -1, 51, -1, 53, -1, -1, -1, -1, -1,
+ 59, -1, 61, -1, -1, -1, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
+ -1, -1, 81, 82, 83, 84, 85, -1, 87, -1,
+ -1, -1, -1, 92, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 4, 5, 6, -1, -1, 9, 10,
+ 11, 12, 13, 14, -1, 16, -1, -1, -1, 20,
+ 21, 22, -1, -1, -1, -1, -1, -1, 29, 30,
+ 31, 32, 33, 34, -1, 36, -1, -1, -1, 40,
+ -1, 42, 43, 44, -1, -1, 47, -1, -1, -1,
+ 51, -1, 53, -1, -1, -1, -1, -1, 59, -1,
+ 61, -1, -1, -1, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, -1, -1,
+ 81, 82, 83, 84, 85, 86, 87, -1, -1, -1,
+ -1, 92, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 4, 5, 6, -1, -1, 9, 10, 11, 12,
+ 13, 14, -1, 16, -1, -1, -1, 20, 21, 22,
+ -1, -1, -1, -1, -1, -1, 29, 30, 31, 32,
+ 33, 34, -1, 36, -1, -1, -1, 40, -1, 42,
+ 43, 44, -1, -1, 47, -1, -1, -1, 51, -1,
+ 53, -1, 55, -1, -1, -1, 59, -1, 61, -1,
+ -1, -1, 65, 66, 67, 68, 69, 70, 71, 72,
+ 73, 74, 75, 76, 77, 78, -1, -1, 81, 82,
+ 83, 84, 85, 86, 87, -1, -1, -1, -1, 92,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 15, 2, 105, 3, 29, 15, 4, 2, 15, 29,
- 9, 15, 3, 15, 3, 2, 19, 39, 15, 15,
- 13, 15, 3, 15, 2, 15, 3, 15, 3, 11,
- 13, 15, 71, 39, 39, 3, 22, 2, 99, 19,
- 4, 15, 2, 15, 29, 15, 19, 3, 15, 3,
- 29, 22, 15, 29, 15, 2, 22, 15, 2, 2,
- 15, 2, 2, 2, 2, 22, 3, 15, 3, 2,
- 39, 3, 3, 15, 97, 94, 3, 39, 2, 2,
- 39, 3, 3, 2, 2, 101, 3, 40, 39, 39,
- 39, 3, 2, 39, 39, 15, 22, 13, 3, 2,
- 13, 2, -1, 39, 13, 35, -1, 16, -1, 39,
- -1, -1, -1, 15, 48, -1, 15, 13, 52, 48,
- 48, 50, 3, 48, 20, 53, -1, 52, -1, 45,
- -1, 15, 45, 48, 48, 50, 50, 48, -1, 50,
- 48, 48, 48, 50, 48, 53, 52, 39, 48, 53,
- 48, 39, 44, 53, 48, 53, 44, 48, 15, 50,
- -1, 48, 48, 48, 58, 48, 3, 72, 53, 48,
- 53, 50, 48, 48, 50, 48, 62, 64, 53, 82,
- 53, 82, 48, 48, 41, 13, 88, 53, 16, 54,
- 48, 72, 48, 3, 50, 48, 54, 4, 48, 13,
- 50, 100, 86, 56, 48, 48, 50, 50, 48, 48,
- 50, -1, 51, 48, 48, 48, 51, 50, 48, 48,
- 54, 50, 48, 53, 50, 48, 48, 48, 50, 48,
- 53, 45, 48, 54, 50, 72, -1, 48, -1, 48,
- -1, 60, 53, 48, 53, 48, 15, 48, 53, -1,
- 53, 48, 53, 48, 65, -1, 53, -1, 53, 48,
- 55, 70, 72, 48, 53, 70, 63, 70, 53, 70,
- 48, 48, 41, 42, 59, 53, 53, 55, 48, 13,
- 57, 70, 48, 53, 48, 55, 20, 53, -1, 53,
- -1, 55, -1, 5, -1, 61, 5, -1, 32, 33,
- 13, 13, -1, 16, 13, -1, -1, -1, 20, -1,
- -1, 20, 22, 23, 24, 25, 26, 27, 28, -1,
- 32, 33, -1, 32, 33, 21, 22, 23, 24, 25,
- 26, 27, 28, 13, -1, -1, -1, -1, -1, -1,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 13,
- -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 13, -1, -1, 16, -1, 18,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 39, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1};
+ 3, 13, 15, 29, 15, 15, 15, 105, 4, 2,
+ 15, 19, 9, 15, 29, 15, 3, 39, 3, 2,
+ 15, 15, 3, 15, 2, 29, 3, 3, 19, 15,
+ 29, 19, 22, 15, 13, 15, 71, 11, 2, 2,
+ 29, 3, 15, 15, 3, 15, 15, 22, 2, 99,
+ 15, 22, 4, 2, 15, 39, 2, 2, 2, 15,
+ 3, 2, 15, 3, 2, 2, 2, 97, 3, 3,
+ 3, 39, 39, 39, 22, 94, 3, 2, 101, 3,
+ 40, 39, 39, 15, 39, 2, 4, 3, 39, 39,
+ 2, 22, 3, 2, 15, 3, 2, 39, 13, 2,
+ 39, 48, 3, -1, 2, -1, 53, -1, 15, 13,
+ -1, 3, -1, -1, -1, -1, -1, -1, 48, 48,
+ 48, 50, 50, -1, -1, 48, 48, 50, 50, 48,
+ 45, 3, 62, 52, 48, 48, 50, 15, 48, 39,
+ 53, 45, 52, 48, 44, 39, 48, 52, 50, 48,
+ 44, 48, 48, 48, 50, 48, 15, 48, 53, 58,
+ 53, 13, 48, 60, 16, 48, 48, 53, 50, 48,
+ 53, 72, 48, 64, 53, 48, 82, 53, 51, 82,
+ 72, 88, 48, 48, 48, 48, -1, 3, 54, 54,
+ 54, 54, 48, 48, 50, 50, 13, 48, 35, 16,
+ 72, 48, 39, 50, 48, 56, 13, 51, 86, 15,
+ 48, -1, 50, 48, 48, 50, 50, 48, 48, 50,
+ 50, 48, 48, 48, 50, 50, 53, 48, 48, 48,
+ 13, 15, 53, 53, 53, 41, -1, 20, 45, 48,
+ 48, 100, -1, 48, 53, 53, 48, -1, 53, -1,
+ -1, 53, 57, -1, -1, 63, 72, 41, 42, 61,
+ 48, 70, -1, 48, -1, 53, 48, 55, 53, 48,
+ 55, 53, 48, 55, 53, -1, 48, 53, -1, -1,
+ 59, 53, 48, 55, 48, 48, 48, 53, 5, 53,
+ 53, 53, 13, 13, 70, 16, 13, 18, -1, 65,
+ 20, 13, -1, 20, 16, -1, 70, 70, 70, -1,
+ -1, -1, 32, 33, -1, 32, 33, -1, 39, 22,
+ 23, 24, 25, 26, 27, 28, 21, 22, 23, 24,
+ 25, 26, 27, 28, 13, -1, -1, -1, -1, -1,
+ -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
+ 13, -1, -1, -1, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 5, -1, -1, -1, -1,
+ -1, -1, -1, 13, -1, -1, -1, -1, -1, -1,
+ 20, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 32, 33, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1
+};
-} // namespace QbsQmlJS
+} // end of namespace QbsQmlJS
diff --git a/src/lib/corelib/parser/qmljsgrammar_p.h b/src/lib/corelib/parser/qmljsgrammar_p.h
index a3525408b..aa41562de 100644
--- a/src/lib/corelib/parser/qmljsgrammar_p.h
+++ b/src/lib/corelib/parser/qmljsgrammar_p.h
@@ -52,156 +52,155 @@
#ifndef QMLJSGRAMMAR_P_H
#define QMLJSGRAMMAR_P_H
-#include "qmljsglobal_p.h"
#include <QtCore/qglobal.h>
namespace QbsQmlJS {
-class QML_PARSER_EXPORT QmlJSGrammar
+class QmlJSGrammar
{
public:
- enum VariousConstants {
- EOF_SYMBOL = 0,
- REDUCE_HERE = 101,
- SHIFT_THERE = 100,
- T_AND = 1,
- T_AND_AND = 2,
- T_AND_EQ = 3,
- T_AS = 91,
- T_AUTOMATIC_SEMICOLON = 62,
- T_BREAK = 4,
- T_CASE = 5,
- T_CATCH = 6,
- T_COLON = 7,
- T_COMMA = 8,
- T_COMMENT = 88,
- T_CONST = 84,
- T_CONTINUE = 9,
- T_DEBUGGER = 85,
- T_DEFAULT = 10,
- T_DELETE = 11,
- T_DIVIDE_ = 12,
- T_DIVIDE_EQ = 13,
- T_DO = 14,
- T_DOT = 15,
- T_ELSE = 16,
- T_EQ = 17,
- T_EQ_EQ = 18,
- T_EQ_EQ_EQ = 19,
- T_ERROR = 93,
- T_FALSE = 83,
- T_FEED_JS_EXPRESSION = 97,
- T_FEED_JS_PROGRAM = 99,
- T_FEED_JS_SOURCE_ELEMENT = 98,
- T_FEED_JS_STATEMENT = 96,
- T_FEED_UI_OBJECT_MEMBER = 95,
- T_FEED_UI_PROGRAM = 94,
- T_FINALLY = 20,
- T_FOR = 21,
- T_FUNCTION = 22,
- T_GE = 23,
- T_GT = 24,
- T_GT_GT = 25,
- T_GT_GT_EQ = 26,
- T_GT_GT_GT = 27,
- T_GT_GT_GT_EQ = 28,
- T_IDENTIFIER = 29,
- T_IF = 30,
- T_IMPORT = 90,
- T_IN = 31,
- T_INSTANCEOF = 32,
- T_LBRACE = 33,
- T_LBRACKET = 34,
- T_LE = 35,
- T_LPAREN = 36,
- T_LT = 37,
- T_LT_LT = 38,
- T_LT_LT_EQ = 39,
- T_MINUS = 40,
- T_MINUS_EQ = 41,
- T_MINUS_MINUS = 42,
- T_MULTILINE_STRING_LITERAL = 87,
- T_NEW = 43,
- T_NOT = 44,
- T_NOT_EQ = 45,
- T_NOT_EQ_EQ = 46,
- T_NULL = 81,
- T_NUMERIC_LITERAL = 47,
- T_ON = 92,
- T_OR = 48,
- T_OR_EQ = 49,
- T_OR_OR = 50,
- T_PLUS = 51,
- T_PLUS_EQ = 52,
- T_PLUS_PLUS = 53,
- T_PROPERTY = 66,
- T_PUBLIC = 89,
- T_QUESTION = 54,
- T_RBRACE = 55,
- T_RBRACKET = 56,
- T_READONLY = 68,
- T_REMAINDER = 57,
- T_REMAINDER_EQ = 58,
- T_RESERVED_WORD = 86,
- T_RETURN = 59,
- T_RPAREN = 60,
- T_SEMICOLON = 61,
- T_SIGNAL = 67,
- T_STAR = 63,
- T_STAR_EQ = 64,
- T_STRING_LITERAL = 65,
- T_SWITCH = 69,
- T_THIS = 70,
- T_THROW = 71,
- T_TILDE = 72,
- T_TRUE = 82,
- T_TRY = 73,
- T_TYPEOF = 74,
- T_VAR = 75,
- T_VOID = 76,
- T_WHILE = 77,
- T_WITH = 78,
- T_XOR = 79,
- T_XOR_EQ = 80,
-
- ACCEPT_STATE = 644,
- RULE_COUNT = 349,
- STATE_COUNT = 645,
- TERMINAL_COUNT = 102,
- NON_TERMINAL_COUNT = 107,
-
- GOTO_INDEX_OFFSET = 645,
- GOTO_INFO_OFFSET = 2807,
- GOTO_CHECK_OFFSET = 2807
- };
-
- static const char *const spell [];
- static const short lhs [];
- static const short rhs [];
- static const short goto_default [];
- static const short action_default [];
- static const short action_index [];
- static const short action_info [];
- static const short action_check [];
-
- static inline int nt_action (int state, int nt)
- {
- const int yyn = action_index [GOTO_INDEX_OFFSET + state] + nt;
- if (yyn < 0 || action_check [GOTO_CHECK_OFFSET + yyn] != nt)
- return goto_default [nt];
-
- return action_info [GOTO_INFO_OFFSET + yyn];
- }
-
- static inline int t_action (int state, int token)
- {
- const int yyn = action_index [state] + token;
-
- if (yyn < 0 || action_check [yyn] != token)
- return - action_default [state];
-
- return action_info [yyn];
- }
+ enum VariousConstants {
+ EOF_SYMBOL = 0,
+ REDUCE_HERE = 101,
+ SHIFT_THERE = 100,
+ T_AND = 1,
+ T_AND_AND = 2,
+ T_AND_EQ = 3,
+ T_AS = 91,
+ T_AUTOMATIC_SEMICOLON = 62,
+ T_BREAK = 4,
+ T_CASE = 5,
+ T_CATCH = 6,
+ T_COLON = 7,
+ T_COMMA = 8,
+ T_COMMENT = 88,
+ T_CONST = 84,
+ T_CONTINUE = 9,
+ T_DEBUGGER = 85,
+ T_DEFAULT = 10,
+ T_DELETE = 11,
+ T_DIVIDE_ = 12,
+ T_DIVIDE_EQ = 13,
+ T_DO = 14,
+ T_DOT = 15,
+ T_ELSE = 16,
+ T_EQ = 17,
+ T_EQ_EQ = 18,
+ T_EQ_EQ_EQ = 19,
+ T_ERROR = 93,
+ T_FALSE = 83,
+ T_FEED_JS_EXPRESSION = 97,
+ T_FEED_JS_PROGRAM = 99,
+ T_FEED_JS_SOURCE_ELEMENT = 98,
+ T_FEED_JS_STATEMENT = 96,
+ T_FEED_UI_OBJECT_MEMBER = 95,
+ T_FEED_UI_PROGRAM = 94,
+ T_FINALLY = 20,
+ T_FOR = 21,
+ T_FUNCTION = 22,
+ T_GE = 23,
+ T_GT = 24,
+ T_GT_GT = 25,
+ T_GT_GT_EQ = 26,
+ T_GT_GT_GT = 27,
+ T_GT_GT_GT_EQ = 28,
+ T_IDENTIFIER = 29,
+ T_IF = 30,
+ T_IMPORT = 90,
+ T_IN = 31,
+ T_INSTANCEOF = 32,
+ T_LBRACE = 33,
+ T_LBRACKET = 34,
+ T_LE = 35,
+ T_LPAREN = 36,
+ T_LT = 37,
+ T_LT_LT = 38,
+ T_LT_LT_EQ = 39,
+ T_MINUS = 40,
+ T_MINUS_EQ = 41,
+ T_MINUS_MINUS = 42,
+ T_MULTILINE_STRING_LITERAL = 87,
+ T_NEW = 43,
+ T_NOT = 44,
+ T_NOT_EQ = 45,
+ T_NOT_EQ_EQ = 46,
+ T_NULL = 81,
+ T_NUMERIC_LITERAL = 47,
+ T_ON = 92,
+ T_OR = 48,
+ T_OR_EQ = 49,
+ T_OR_OR = 50,
+ T_PLUS = 51,
+ T_PLUS_EQ = 52,
+ T_PLUS_PLUS = 53,
+ T_PROPERTY = 66,
+ T_PUBLIC = 89,
+ T_QUESTION = 54,
+ T_RBRACE = 55,
+ T_RBRACKET = 56,
+ T_READONLY = 68,
+ T_REMAINDER = 57,
+ T_REMAINDER_EQ = 58,
+ T_RESERVED_WORD = 86,
+ T_RETURN = 59,
+ T_RPAREN = 60,
+ T_SEMICOLON = 61,
+ T_SIGNAL = 67,
+ T_STAR = 63,
+ T_STAR_EQ = 64,
+ T_STRING_LITERAL = 65,
+ T_SWITCH = 69,
+ T_THIS = 70,
+ T_THROW = 71,
+ T_TILDE = 72,
+ T_TRUE = 82,
+ T_TRY = 73,
+ T_TYPEOF = 74,
+ T_VAR = 75,
+ T_VOID = 76,
+ T_WHILE = 77,
+ T_WITH = 78,
+ T_XOR = 79,
+ T_XOR_EQ = 80,
+
+ ACCEPT_STATE = 644,
+ RULE_COUNT = 349,
+ STATE_COUNT = 645,
+ TERMINAL_COUNT = 102,
+ NON_TERMINAL_COUNT = 107,
+
+ GOTO_INDEX_OFFSET = 645,
+ GOTO_INFO_OFFSET = 2789,
+ GOTO_CHECK_OFFSET = 2789
+ };
+
+ static const char *const spell[];
+ static const short lhs[];
+ static const short rhs[];
+ static const short goto_default[];
+ static const short action_default[];
+ static const short action_index[];
+ static const short action_info[];
+ static const short action_check[];
+
+ static inline int nt_action (int state, int nt)
+ {
+ const int yyn = action_index [GOTO_INDEX_OFFSET + state] + nt;
+ if (yyn < 0 || action_check [GOTO_CHECK_OFFSET + yyn] != nt)
+ return goto_default [nt];
+
+ return action_info [GOTO_INFO_OFFSET + yyn];
+ }
+
+ static inline int t_action (int state, int token)
+ {
+ const int yyn = action_index [state] + token;
+
+ if (yyn < 0 || action_check [yyn] != token)
+ return - action_default [state];
+
+ return action_info [yyn];
+ }
};
diff --git a/src/lib/corelib/parser/qmljslexer.cpp b/src/lib/corelib/parser/qmljslexer.cpp
index 931704339..db3004fc8 100644
--- a/src/lib/corelib/parser/qmljslexer.cpp
+++ b/src/lib/corelib/parser/qmljslexer.cpp
@@ -82,7 +82,7 @@ static QChar convertHex(QChar c1, QChar c2)
static QChar convertUnicode(QChar c1, QChar c2, QChar c3, QChar c4)
{
- return {uchar((convertHex(c3.unicode()) << 4) + convertHex(c4.unicode())),
+ return QChar{uchar((convertHex(c3.unicode()) << 4) + convertHex(c4.unicode())),
uchar((convertHex(c1.unicode()) << 4) + convertHex(c2.unicode()))};
}
diff --git a/src/lib/corelib/parser/qmljslexer_p.h b/src/lib/corelib/parser/qmljslexer_p.h
index cf41fb255..aef68e0c5 100644
--- a/src/lib/corelib/parser/qmljslexer_p.h
+++ b/src/lib/corelib/parser/qmljslexer_p.h
@@ -56,6 +56,10 @@
#include <tools/qbs_export.h>
#include <QtCore/qstring.h>
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
+#include <QtCore5Compat/qstringref.h>
+#endif
+
namespace QbsQmlJS {
class Engine;
diff --git a/src/lib/corelib/tools/buildoptions.h b/src/lib/corelib/tools/buildoptions.h
index bd0fb22cb..59b87237d 100644
--- a/src/lib/corelib/tools/buildoptions.h
+++ b/src/lib/corelib/tools/buildoptions.h
@@ -45,10 +45,10 @@
#include "joblimits.h"
#include <QtCore/qshareddata.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QJsonObject;
-class QStringList;
QT_END_NAMESPACE
namespace qbs {
diff --git a/src/lib/corelib/tools/clangclinfo.cpp b/src/lib/corelib/tools/clangclinfo.cpp
index 4e1022c28..0090b8f2c 100644
--- a/src/lib/corelib/tools/clangclinfo.cpp
+++ b/src/lib/corelib/tools/clangclinfo.cpp
@@ -102,8 +102,7 @@ ClangClInfo ClangClInfo::fromCompilerFilePath(const QString &path, Logger &logge
return {};
}
- const auto toolchainInstallPath = getToolchainInstallPath(path);
- return {toolchainInstallPath, vcvarsallPath};
+ return {getToolchainInstallPath(QFileInfo(path)), vcvarsallPath};
}
std::vector<ClangClInfo> ClangClInfo::installedCompilers(
@@ -151,7 +150,7 @@ std::vector<ClangClInfo> ClangClInfo::installedCompilers(
result.reserve(compilerPaths.size() + msvcs.size());
for (const auto &path: compilerPaths)
- result.push_back({getToolchainInstallPath(path), vcvarsallPath});
+ result.push_back({getToolchainInstallPath(QFileInfo(path)), vcvarsallPath});
// If we didn't find custom LLVM installation, try to find if it's installed with Visual Studio
for (const auto &msvc : msvcs) {
@@ -165,7 +164,7 @@ std::vector<ClangClInfo> ClangClInfo::installedCompilers(
.arg(msvc.installDir);
}
- result.push_back({getToolchainInstallPath(compilerPath), vcvarsallPath});
+ result.push_back({getToolchainInstallPath(QFileInfo(compilerPath)), vcvarsallPath});
}
}
diff --git a/src/lib/corelib/tools/commandechomode.h b/src/lib/corelib/tools/commandechomode.h
index 88d8377ad..e7b315563 100644
--- a/src/lib/corelib/tools/commandechomode.h
+++ b/src/lib/corelib/tools/commandechomode.h
@@ -43,11 +43,7 @@
#include "qbs_export.h"
#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-class QString;
-class QStringList;
-QT_END_NAMESPACE
+#include <QtCore/qstringlist.h>
namespace qbs {
diff --git a/src/lib/corelib/tools/error.h b/src/lib/corelib/tools/error.h
index 3ae9399f1..ea8ddb5ec 100644
--- a/src/lib/corelib/tools/error.h
+++ b/src/lib/corelib/tools/error.h
@@ -45,12 +45,10 @@
#include <QtCore/qhash.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qshareddata.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QJsonObject;
-template <class T> class QList;
-class QString;
-class QStringList;
QT_END_NAMESPACE
namespace qbs {
diff --git a/src/lib/corelib/tools/fileinfo.cpp b/src/lib/corelib/tools/fileinfo.cpp
index 6fdd90fb1..382843a33 100644
--- a/src/lib/corelib/tools/fileinfo.cpp
+++ b/src/lib/corelib/tools/fileinfo.cpp
@@ -133,16 +133,16 @@ void FileInfo::splitIntoDirectoryAndFileName(const QString &filePath, QString *d
*fileName = filePath.mid(idx + 1);
}
-void FileInfo::splitIntoDirectoryAndFileName(const QString &filePath, QStringRef *dirPath, QStringRef *fileName)
+void FileInfo::splitIntoDirectoryAndFileName(const QString &filePath, QStringView *dirPath, QStringView *fileName)
{
int idx = filePath.lastIndexOf(QLatin1Char('/'));
if (idx < 0) {
- dirPath->clear();
- *fileName = QStringRef(&filePath);
+ *dirPath = QStringView();
+ *fileName = QStringView(filePath);
return;
}
- *dirPath = filePath.leftRef(idx);
- *fileName = filePath.midRef(idx + 1);
+ *dirPath = QStringView(filePath).left(idx);
+ *fileName = QStringView(filePath).mid(idx + 1);
}
bool FileInfo::exists(const QString &fp)
@@ -180,12 +180,7 @@ bool FileInfo::isAbsolute(const QString &path, HostOsInfo::HostOs hostOs)
return false;
}
-bool FileInfo::isPattern(const QString &str)
-{
- return isPattern(QStringRef(&str));
-}
-
-bool FileInfo::isPattern(const QStringRef &str)
+bool FileInfo::isPattern(QStringView str)
{
for (const QChar &ch : str) {
if (ch == QLatin1Char('*') || ch == QLatin1Char('?')
diff --git a/src/lib/corelib/tools/fileinfo.h b/src/lib/corelib/tools/fileinfo.h
index c4ca5931a..f0a09a16b 100644
--- a/src/lib/corelib/tools/fileinfo.h
+++ b/src/lib/corelib/tools/fileinfo.h
@@ -72,11 +72,10 @@ public:
static QString completeSuffix(const QString &fp);
static QString path(const QString &fp, HostOsInfo::HostOs hostOs = HostOsInfo::hostOs());
static void splitIntoDirectoryAndFileName(const QString &filePath, QString *dirPath, QString *fileName);
- static void splitIntoDirectoryAndFileName(const QString &filePath, QStringRef *dirPath, QStringRef *fileName);
+ static void splitIntoDirectoryAndFileName(const QString &filePath, QStringView *dirPath, QStringView *fileName);
static bool exists(const QString &fp);
static bool isAbsolute(const QString &fp, HostOsInfo::HostOs hostOs = HostOsInfo::hostOs());
- static bool isPattern(const QStringRef &str);
- static bool isPattern(const QString &str);
+ static bool isPattern(QStringView str);
static QString resolvePath(const QString &base, const QString &rel,
HostOsInfo::HostOs hostOs = HostOsInfo::hostOs());
static bool isFileCaseCorrect(const QString &filePath);
diff --git a/src/lib/corelib/tools/jsliterals.cpp b/src/lib/corelib/tools/jsliterals.cpp
index 69d170336..bc6112a27 100644
--- a/src/lib/corelib/tools/jsliterals.cpp
+++ b/src/lib/corelib/tools/jsliterals.cpp
@@ -75,7 +75,7 @@ QString toJSLiteral(const QVariant &val)
{
if (!val.isValid())
return Internal::StringConstants::undefinedValue();
- if (val.type() == QVariant::List || val.type() == QVariant::StringList) {
+ if (val.userType() == QMetaType::QVariantList || val.userType() == QMetaType::QStringList) {
QString res;
const auto list = val.toList();
for (const QVariant &child : list) {
@@ -86,7 +86,7 @@ QString toJSLiteral(const QVariant &val)
res.append(QLatin1Char(']'));
return res;
}
- if (val.type() == QVariant::Map) {
+ if (val.userType() == QMetaType::QVariantMap) {
const QVariantMap &vm = val.toMap();
QString str = QStringLiteral("{");
for (QVariantMap::const_iterator it = vm.begin(); it != vm.end(); ++it) {
@@ -97,9 +97,9 @@ QString toJSLiteral(const QVariant &val)
str += QLatin1Char('}');
return str;
}
- if (val.type() == QVariant::Bool)
+ if (val.userType() == QMetaType::Bool)
return toJSLiteral(val.toBool());
- if (val.canConvert(QVariant::String))
+ if (val.canConvert(QMetaType::QString))
return toJSLiteral(val.toString());
return QStringLiteral("Unconvertible type %1").arg(QLatin1String(val.typeName()));
}
diff --git a/src/lib/corelib/tools/launcherinterface.cpp b/src/lib/corelib/tools/launcherinterface.cpp
index d2cdf44df..cd877c154 100644
--- a/src/lib/corelib/tools/launcherinterface.cpp
+++ b/src/lib/corelib/tools/launcherinterface.cpp
@@ -61,11 +61,23 @@ namespace Internal {
class LauncherProcess : public QProcess
{
public:
- LauncherProcess(QObject *parent) : QProcess(parent) { }
+ LauncherProcess(QObject *parent) : QProcess(parent)
+ {
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) && defined(Q_OS_UNIX)
+ setChildProcessModifier([this] { setupChildProcess_impl(); });
+#endif
+ }
private:
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
void setupChildProcess() override
{
+ setupChildProcess_impl();
+ }
+#endif
+
+ void setupChildProcess_impl()
+ {
#ifdef Q_OS_UNIX
const auto pid = static_cast<pid_t>(processId());
setpgid(pid, pid);
diff --git a/src/lib/corelib/tools/persistence.cpp b/src/lib/corelib/tools/persistence.cpp
index 4674b24ae..7c4458b5f 100644
--- a/src/lib/corelib/tools/persistence.cpp
+++ b/src/lib/corelib/tools/persistence.cpp
@@ -140,7 +140,7 @@ void PersistentPool::finalizeWriteStream()
void PersistentPool::storeVariant(const QVariant &variant)
{
- const auto type = static_cast<quint32>(variant.type());
+ const auto type = static_cast<quint32>(variant.userType());
m_stream << type;
switch (type) {
case QMetaType::QString:
@@ -218,7 +218,7 @@ void PersistentPool::doStoreValue(const QString &s)
void PersistentPool::doStoreValue(const QStringList &l)
{
- m_stream << l.size();
+ m_stream << int(l.size());
for (const QString &s : l)
store(s);
}
diff --git a/src/lib/corelib/tools/persistence.h b/src/lib/corelib/tools/persistence.h
index b0fed9f68..29d586177 100644
--- a/src/lib/corelib/tools/persistence.h
+++ b/src/lib/corelib/tools/persistence.h
@@ -50,6 +50,7 @@
#include <QtCore/qprocess.h>
#include <QtCore/qregularexpression.h>
#include <QtCore/qstring.h>
+#include <QtCore/qstringlist.h>
#include <QtCore/qvariant.h>
#include <memory>
@@ -467,6 +468,7 @@ template<typename T> struct PPHelper<QFlags<T>>
template<typename T> struct IsSimpleContainer : std::false_type { };
template<typename T> struct IsSimpleContainer<QList<T>> : std::true_type { };
+template<> struct IsSimpleContainer<QStringList> : std::false_type { };
template<typename T> struct IsSimpleContainer<std::vector<T>> : std::true_type { };
template<typename T> struct PPHelper<T, std::enable_if_t<IsSimpleContainer<T>::value>>
@@ -496,7 +498,7 @@ struct PPHelper<T, std::enable_if_t<IsKeyValueContainer<T>::value>>
{
static void store(const T &container, PersistentPool *pool)
{
- pool->store(container.size());
+ pool->store(int(container.size()));
for (auto it = container.cbegin(); it != container.cend(); ++it) {
pool->store(it.key());
pool->store(it.value());
diff --git a/src/lib/corelib/tools/processresult.h b/src/lib/corelib/tools/processresult.h
index 92408aa31..3870a3ae5 100644
--- a/src/lib/corelib/tools/processresult.h
+++ b/src/lib/corelib/tools/processresult.h
@@ -44,11 +44,10 @@
#include <QtCore/qshareddata.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qprocess.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QJsonObject;
-class QString;
-class QStringList;
QT_END_NAMESPACE
namespace qbs {
diff --git a/src/lib/corelib/tools/profile.h b/src/lib/corelib/tools/profile.h
index 0eee23ae4..b7fc7ff67 100644
--- a/src/lib/corelib/tools/profile.h
+++ b/src/lib/corelib/tools/profile.h
@@ -42,12 +42,9 @@
#include "qbs_export.h"
#include <QtCore/qstring.h>
+#include <QtCore/qstringlist.h>
#include <QtCore/qvariant.h>
-QT_BEGIN_NAMESPACE
-class QStringList;
-QT_END_NAMESPACE
-
namespace qbs {
class ErrorInfo;
class Settings;
diff --git a/src/lib/corelib/tools/projectgeneratormanager.h b/src/lib/corelib/tools/projectgeneratormanager.h
index 469d650b9..1efe593fc 100644
--- a/src/lib/corelib/tools/projectgeneratormanager.h
+++ b/src/lib/corelib/tools/projectgeneratormanager.h
@@ -45,10 +45,7 @@
#include <QtCore/qmap.h>
#include <QtCore/qstring.h>
-
-QT_BEGIN_NAMESPACE
-class QStringList;
-QT_END_NAMESPACE
+#include <QtCore/qstringlist.h>
namespace qbs {
class ProjectGenerator;
diff --git a/src/lib/corelib/tools/qttools.h b/src/lib/corelib/tools/qttools.h
index 2d4a38544..ccc9a5552 100644
--- a/src/lib/corelib/tools/qttools.h
+++ b/src/lib/corelib/tools/qttools.h
@@ -118,6 +118,15 @@ QHash<K, V> &unite(QHash<K, V> &h, const QHash<K, V> &other)
#endif
}
+inline void setupDefaultCodec(QTextStream &stream)
+{
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
+ stream.setCodec("UTF-8");
+#else
+ Q_UNUSED(stream);
+#endif
+}
+
} // namespace qbs
#endif // QBSQTTOOLS_H
diff --git a/src/lib/corelib/tools/settings.cpp b/src/lib/corelib/tools/settings.cpp
index fccb9c9b2..8b22c45e5 100644
--- a/src/lib/corelib/tools/settings.cpp
+++ b/src/lib/corelib/tools/settings.cpp
@@ -117,9 +117,9 @@ QVariant Settings::value(const QString &key, Scopes scopes, const QVariant &defa
}
if (!systemValue.isValid())
return userValue;
- if (static_cast<QMetaType::Type>(userValue.type()) == QMetaType::QStringList)
+ if (static_cast<QMetaType::Type>(userValue.userType()) == QMetaType::QStringList)
return userValue.toStringList() + systemValue.toStringList();
- if (static_cast<QMetaType::Type>(userValue.type()) == QMetaType::QVariantList)
+ if (static_cast<QMetaType::Type>(userValue.userType()) == QMetaType::QVariantList)
return userValue.toList() + systemValue.toList();
return userValue;
}
diff --git a/src/lib/corelib/tools/settings.h b/src/lib/corelib/tools/settings.h
index 638216669..4ea148af0 100644
--- a/src/lib/corelib/tools/settings.h
+++ b/src/lib/corelib/tools/settings.h
@@ -43,13 +43,13 @@
#include "qbs_export.h"
#include <QtCore/qstring.h>
+#include <QtCore/qstringlist.h>
#include <QtCore/qvariant.h>
#include <memory>
QT_BEGIN_NAMESPACE
class QSettings;
-class QStringList;
QT_END_NAMESPACE
namespace qbs {
diff --git a/src/lib/corelib/tools/settingscreator.cpp b/src/lib/corelib/tools/settingscreator.cpp
index 36e67440c..3fdaf0bc3 100644
--- a/src/lib/corelib/tools/settingscreator.cpp
+++ b/src/lib/corelib/tools/settingscreator.cpp
@@ -109,11 +109,11 @@ void SettingsCreator::migrate()
const auto allKeys = m_settings->allKeys();
for (const QString &key : allKeys) {
QVariant v = m_settings->value(key);
- if (v.type() == QVariant::String) {
+ if (v.userType() == QMetaType::QString) {
QString s = v.toString();
if (s.contains(oldProfilesDir))
m_settings->setValue(key, s.replace(oldProfilesDir, newProfilesDir));
- } else if (v.type() == QVariant::StringList) {
+ } else if (v.userType() == QMetaType::QStringList) {
const QStringList oldList = v.toStringList();
QStringList newList;
for (const QString &oldString : oldList) {
diff --git a/src/lib/corelib/tools/settingsrepresentation.cpp b/src/lib/corelib/tools/settingsrepresentation.cpp
index 256c60c0e..7790f1aa1 100644
--- a/src/lib/corelib/tools/settingsrepresentation.cpp
+++ b/src/lib/corelib/tools/settingsrepresentation.cpp
@@ -67,8 +67,8 @@ QVariant representationToSettingsValue(const QString &representation)
QVariant variant = variantFromString(representation, ok);
// We have no floating-point properties, so this is most likely intended to be a string.
- if (static_cast<QMetaType::Type>(variant.type()) == QMetaType::Float
- || static_cast<QMetaType::Type>(variant.type()) == QMetaType::Double) {
+ if (static_cast<QMetaType::Type>(variant.userType()) == QMetaType::Float
+ || static_cast<QMetaType::Type>(variant.userType()) == QMetaType::Double) {
variant = variantFromString(QLatin1Char('"') + representation + QLatin1Char('"'), ok);
}
diff --git a/src/lib/corelib/tools/setupprojectparameters.h b/src/lib/corelib/tools/setupprojectparameters.h
index a4d090ec5..2617a34cd 100644
--- a/src/lib/corelib/tools/setupprojectparameters.h
+++ b/src/lib/corelib/tools/setupprojectparameters.h
@@ -44,10 +44,10 @@
#include <tools/error.h>
#include <QtCore/qshareddata.h>
+#include <QtCore/qstringlist.h>
QT_BEGIN_NAMESPACE
class QProcessEnvironment;
-class QStringList;
using QVariantMap = QMap<QString, QVariant>;
QT_END_NAMESPACE
diff --git a/src/lib/corelib/tools/stlutils.h b/src/lib/corelib/tools/stlutils.h
index 63b9c098e..1b6d7278f 100644
--- a/src/lib/corelib/tools/stlutils.h
+++ b/src/lib/corelib/tools/stlutils.h
@@ -75,6 +75,17 @@ bool containsKey(const C &container, const typename C::key_type &v)
return container.find(v) != end;
}
+template <class C>
+typename C::mapped_type mapValue(
+ const C &container,
+ const typename C::key_type &key,
+ const typename C::mapped_type &value = typename C::mapped_type())
+{
+ const auto end = container.cend();
+ const auto it = container.find(key);
+ return it != end ? it->second : value;
+}
+
template <typename C>
bool removeOne(C &container, const typename C::value_type &v)
{
diff --git a/src/lib/msbuild/io/msbuildprojectwriter.cpp b/src/lib/msbuild/io/msbuildprojectwriter.cpp
index 12fbe2da5..aaab11aa6 100644
--- a/src/lib/msbuild/io/msbuildprojectwriter.cpp
+++ b/src/lib/msbuild/io/msbuildprojectwriter.cpp
@@ -178,7 +178,7 @@ void MSBuildProjectWriterPrivate::visitEnd(const MSBuildItemGroup *)
void MSBuildProjectWriterPrivate::visitStart(const MSBuildItemMetadata *itemMetadata)
{
QString stringValue;
- if (itemMetadata->value().type() == QVariant::Bool) {
+ if (itemMetadata->value().userType() == QMetaType::Bool) {
stringValue = itemMetadata->value().toBool()
? QStringLiteral("True")
: QStringLiteral("False");
@@ -210,7 +210,7 @@ void MSBuildProjectWriterPrivate::visitEnd(const MSBuildProject *)
void MSBuildProjectWriterPrivate::visitStart(const MSBuildProperty *property)
{
QString stringValue;
- if (property->value().type() == QVariant::Bool)
+ if (property->value().userType() == QMetaType::Bool)
stringValue = property->value().toBool() ? QStringLiteral("True") : QStringLiteral("False");
else
stringValue = property->value().toString();
diff --git a/src/lib/msbuild/solution/visualstudiosolutionfileproject.cpp b/src/lib/msbuild/solution/visualstudiosolutionfileproject.cpp
index ab5db088d..7a67ce22b 100644
--- a/src/lib/msbuild/solution/visualstudiosolutionfileproject.cpp
+++ b/src/lib/msbuild/solution/visualstudiosolutionfileproject.cpp
@@ -60,7 +60,7 @@ QString VisualStudioSolutionFileProject::name() const
QUuid VisualStudioSolutionFileProject::projectTypeGuid() const
{
- return QStringLiteral("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}"); // C++
+ return QUuid::fromString(QStringLiteral("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}")); // C++
}
QString VisualStudioSolutionFileProject::filePath() const
diff --git a/src/lib/msbuild/solution/visualstudiosolutionfolderproject.cpp b/src/lib/msbuild/solution/visualstudiosolutionfolderproject.cpp
index d59d1e1ed..8b0997040 100644
--- a/src/lib/msbuild/solution/visualstudiosolutionfolderproject.cpp
+++ b/src/lib/msbuild/solution/visualstudiosolutionfolderproject.cpp
@@ -41,7 +41,7 @@ VisualStudioSolutionFolderProject::VisualStudioSolutionFolderProject(QObject *pa
QUuid VisualStudioSolutionFolderProject::projectTypeGuid() const
{
- return QStringLiteral("{2150E333-8FDC-42A3-9474-1A3956D46DE8}");
+ return QUuid::fromString(QStringLiteral("{2150E333-8FDC-42A3-9474-1A3956D46DE8}"));
}
} // namespace qbs
diff --git a/src/lib/scriptengine/scriptengine.qbs b/src/lib/scriptengine/scriptengine.qbs
index 660b64a82..bb9984999 100644
--- a/src/lib/scriptengine/scriptengine.qbs
+++ b/src/lib/scriptengine/scriptengine.qbs
@@ -1,6 +1,7 @@
import qbs
import qbs.File
import qbs.FileInfo
+import qbs.Probes
import qbs.Process
Project {
@@ -389,6 +390,11 @@ Project {
]
fileTags: ["qtscriptheader"]
}
+ Probes.BinaryProbe {
+ id: perlProbe
+ names: "perl"
+ }
+ property string perlPath: perlProbe.found ? perlProbe.filePath : undefined
Rule {
multiplex: true
inputs: ["qtscriptheader"]
@@ -413,7 +419,7 @@ Project {
var qtScriptSrcPath = FileInfo.cleanPath(
FileInfo.path(inputs["qtscriptheader"][0].filePath) + "/../../..");
console.info("qtScriptSrcPath: " + qtScriptSrcPath);
- var cmd = new Command("perl", [
+ var cmd = new Command(product.perlPath, [
syncQtPath,
"-minimal",
"-version", product.Qt.core.version,