summaryrefslogtreecommitdiff
path: root/Python
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2016-09-07 16:56:15 -0700
committerEric Snow <ericsnowcurrently@gmail.com>2016-09-07 16:56:15 -0700
commit54dc09e399e40109e5b61f0ed2e94558cc07aaa8 (patch)
tree6050cc8fc1914e1ce549810279377b5d29922095 /Python
parentee1f94f1161d806ce7158ad039522798ff4f35ac (diff)
downloadcpython-54dc09e399e40109e5b61f0ed2e94558cc07aaa8.tar.gz
Issue #15767: Use ModuleNotFoundError.
Diffstat (limited to 'Python')
-rw-r--r--Python/errors.c28
-rw-r--r--Python/import.c3
-rw-r--r--Python/importlib.h501
3 files changed, 274 insertions, 258 deletions
diff --git a/Python/errors.c b/Python/errors.c
index e6285e8b3b..13ae6b4561 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -697,27 +697,37 @@ PyObject *PyErr_SetFromWindowsErrWithUnicodeFilename(
#endif /* MS_WINDOWS */
PyObject *
-PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
+PyErr_SetImportErrorSubclass(PyObject *exception, PyObject *msg,
+ PyObject *name, PyObject *path)
{
+ int issubclass;
PyObject *kwargs, *error;
- if (msg == NULL) {
+ issubclass = PyObject_IsSubclass(exception, PyExc_ImportError);
+ if (issubclass < 0) {
+ return NULL;
+ }
+ else if (!issubclass) {
+ PyErr_SetString(PyExc_TypeError, "expected a subclass of ImportError");
return NULL;
}
- kwargs = PyDict_New();
- if (kwargs == NULL) {
+ if (msg == NULL) {
+ PyErr_SetString(PyExc_TypeError, "expected a message argument");
return NULL;
}
if (name == NULL) {
name = Py_None;
}
-
if (path == NULL) {
path = Py_None;
}
+ kwargs = PyDict_New();
+ if (kwargs == NULL) {
+ return NULL;
+ }
if (PyDict_SetItemString(kwargs, "name", name) < 0) {
goto done;
}
@@ -725,7 +735,7 @@ PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
goto done;
}
- error = _PyObject_FastCallDict(PyExc_ImportError, &msg, 1, kwargs);
+ error = _PyObject_FastCallDict(exception, &msg, 1, kwargs);
if (error != NULL) {
PyErr_SetObject((PyObject *)Py_TYPE(error), error);
Py_DECREF(error);
@@ -736,6 +746,12 @@ done:
return NULL;
}
+PyObject *
+PyErr_SetImportError(PyObject *msg, PyObject *name, PyObject *path)
+{
+ return PyErr_SetImportErrorSubclass(PyExc_ImportError, msg, name, path);
+}
+
void
_PyErr_BadInternalCall(const char *filename, int lineno)
{
diff --git a/Python/import.c b/Python/import.c
index 3bac5b8e41..c780fe2976 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1539,7 +1539,8 @@ PyImport_ImportModuleLevelObject(PyObject *name, PyObject *globals,
PyObject *msg = PyUnicode_FromFormat("import of %R halted; "
"None in sys.modules", abs_name);
if (msg != NULL) {
- PyErr_SetImportError(msg, abs_name, NULL);
+ PyErr_SetImportErrorSubclass(PyExc_ModuleNotFoundError, msg,
+ abs_name, NULL);
Py_DECREF(msg);
}
mod = NULL;
diff --git a/Python/importlib.h b/Python/importlib.h
index 50937476c7..4ba754fd15 100644
--- a/Python/importlib.h
+++ b/Python/importlib.h
@@ -1516,7 +1516,8 @@ const unsigned char _Py_M__importlib[] = {
137,0,0,0,41,12,114,118,0,0,0,114,14,0,0,0,
114,79,0,0,0,114,58,0,0,0,114,127,0,0,0,114,
90,0,0,0,218,8,95,69,82,82,95,77,83,71,114,38,
- 0,0,0,114,70,0,0,0,114,173,0,0,0,114,146,0,
+ 0,0,0,218,19,77,111,100,117,108,101,78,111,116,70,111,
+ 117,110,100,69,114,114,111,114,114,173,0,0,0,114,146,0,
0,0,114,5,0,0,0,41,8,114,15,0,0,0,218,7,
105,109,112,111,114,116,95,114,149,0,0,0,114,119,0,0,
0,90,13,112,97,114,101,110,116,95,109,111,100,117,108,101,
@@ -1526,7 +1527,7 @@ const unsigned char _Py_M__importlib[] = {
110,108,111,99,107,101,100,164,3,0,0,115,42,0,0,0,
0,1,4,1,14,1,4,1,10,1,10,2,10,1,10,1,
10,1,2,1,10,1,14,1,16,1,22,1,10,1,8,1,
- 22,2,8,1,4,2,10,1,22,1,114,181,0,0,0,99,
+ 22,2,8,1,4,2,10,1,22,1,114,182,0,0,0,99,
2,0,0,0,0,0,0,0,2,0,0,0,10,0,0,0,
67,0,0,0,115,30,0,0,0,116,0,124,0,131,1,143,
12,1,0,116,1,124,0,124,1,131,2,83,0,81,0,82,
@@ -1534,11 +1535,11 @@ const unsigned char _Py_M__importlib[] = {
97,110,100,32,108,111,97,100,32,116,104,101,32,109,111,100,
117,108,101,44,32,97,110,100,32,114,101,108,101,97,115,101,
32,116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,
- 46,78,41,2,114,42,0,0,0,114,181,0,0,0,41,2,
- 114,15,0,0,0,114,180,0,0,0,114,10,0,0,0,114,
+ 46,78,41,2,114,42,0,0,0,114,182,0,0,0,41,2,
+ 114,15,0,0,0,114,181,0,0,0,114,10,0,0,0,114,
10,0,0,0,114,11,0,0,0,218,14,95,102,105,110,100,
95,97,110,100,95,108,111,97,100,191,3,0,0,115,4,0,
- 0,0,0,2,10,1,114,182,0,0,0,114,19,0,0,0,
+ 0,0,0,2,10,1,114,183,0,0,0,114,19,0,0,0,
99,3,0,0,0,0,0,0,0,5,0,0,0,4,0,0,
0,67,0,0,0,115,122,0,0,0,116,0,124,0,124,1,
124,2,131,3,1,0,124,2,100,1,107,4,114,32,116,1,
@@ -1573,259 +1574,257 @@ const unsigned char _Py_M__importlib[] = {
110,32,115,121,115,46,109,111,100,117,108,101,115,114,15,0,
0,0,41,12,114,178,0,0,0,114,168,0,0,0,114,46,
0,0,0,114,142,0,0,0,114,14,0,0,0,114,79,0,
- 0,0,114,182,0,0,0,218,11,95,103,99,100,95,105,109,
- 112,111,114,116,114,47,0,0,0,114,38,0,0,0,114,70,
+ 0,0,114,183,0,0,0,218,11,95,103,99,100,95,105,109,
+ 112,111,114,116,114,47,0,0,0,114,38,0,0,0,114,180,
0,0,0,114,56,0,0,0,41,5,114,15,0,0,0,114,
166,0,0,0,114,167,0,0,0,114,83,0,0,0,114,67,
0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,114,183,0,0,0,197,3,0,0,115,28,0,0,0,
+ 0,0,114,184,0,0,0,197,3,0,0,115,28,0,0,0,
0,9,12,1,8,1,12,1,8,1,10,1,10,1,10,1,
- 8,1,8,1,4,1,6,1,14,1,8,1,114,183,0,0,
+ 8,1,8,1,4,1,6,1,14,1,8,1,114,184,0,0,
0,99,3,0,0,0,0,0,0,0,6,0,0,0,17,0,
- 0,0,67,0,0,0,115,178,0,0,0,116,0,124,0,100,
- 1,131,2,114,174,100,2,124,1,107,6,114,58,116,1,124,
+ 0,0,67,0,0,0,115,164,0,0,0,116,0,124,0,100,
+ 1,131,2,114,160,100,2,124,1,107,6,114,58,116,1,124,
1,131,1,125,1,124,1,106,2,100,2,131,1,1,0,116,
0,124,0,100,3,131,2,114,58,124,1,106,3,124,0,106,
- 4,131,1,1,0,120,114,124,1,68,0,93,106,125,3,116,
+ 4,131,1,1,0,120,100,124,1,68,0,93,92,125,3,116,
0,124,0,124,3,131,2,115,64,100,4,106,5,124,0,106,
6,124,3,131,2,125,4,121,14,116,7,124,2,124,4,131,
- 2,1,0,87,0,113,64,4,0,116,8,107,10,114,168,1,
- 0,125,5,1,0,122,34,116,9,124,5,131,1,106,10,116,
- 11,131,1,114,150,124,5,106,12,124,4,107,2,114,150,119,
- 64,130,0,87,0,89,0,100,5,100,5,125,5,126,5,88,
- 0,113,64,88,0,113,64,87,0,124,0,83,0,41,6,122,
- 238,70,105,103,117,114,101,32,111,117,116,32,119,104,97,116,
- 32,95,95,105,109,112,111,114,116,95,95,32,115,104,111,117,
- 108,100,32,114,101,116,117,114,110,46,10,10,32,32,32,32,
- 84,104,101,32,105,109,112,111,114,116,95,32,112,97,114,97,
- 109,101,116,101,114,32,105,115,32,97,32,99,97,108,108,97,
- 98,108,101,32,119,104,105,99,104,32,116,97,107,101,115,32,
- 116,104,101,32,110,97,109,101,32,111,102,32,109,111,100,117,
- 108,101,32,116,111,10,32,32,32,32,105,109,112,111,114,116,
- 46,32,73,116,32,105,115,32,114,101,113,117,105,114,101,100,
- 32,116,111,32,100,101,99,111,117,112,108,101,32,116,104,101,
- 32,102,117,110,99,116,105,111,110,32,102,114,111,109,32,97,
- 115,115,117,109,105,110,103,32,105,109,112,111,114,116,108,105,
- 98,39,115,10,32,32,32,32,105,109,112,111,114,116,32,105,
- 109,112,108,101,109,101,110,116,97,116,105,111,110,32,105,115,
- 32,100,101,115,105,114,101,100,46,10,10,32,32,32,32,114,
- 127,0,0,0,250,1,42,218,7,95,95,97,108,108,95,95,
- 122,5,123,125,46,123,125,78,41,13,114,4,0,0,0,114,
- 126,0,0,0,218,6,114,101,109,111,118,101,218,6,101,120,
- 116,101,110,100,114,185,0,0,0,114,38,0,0,0,114,1,
- 0,0,0,114,58,0,0,0,114,70,0,0,0,114,175,0,
- 0,0,114,64,0,0,0,218,15,95,69,82,82,95,77,83,
- 71,95,80,82,69,70,73,88,114,15,0,0,0,41,6,114,
- 83,0,0,0,218,8,102,114,111,109,108,105,115,116,114,180,
- 0,0,0,218,1,120,90,9,102,114,111,109,95,110,97,109,
- 101,90,3,101,120,99,114,10,0,0,0,114,10,0,0,0,
- 114,11,0,0,0,218,16,95,104,97,110,100,108,101,95,102,
- 114,111,109,108,105,115,116,221,3,0,0,115,34,0,0,0,
- 0,10,10,1,8,1,8,1,10,1,10,1,12,1,10,1,
- 10,1,14,1,2,1,14,1,16,4,14,1,10,1,2,1,
- 24,1,114,191,0,0,0,99,1,0,0,0,0,0,0,0,
- 3,0,0,0,6,0,0,0,67,0,0,0,115,154,0,0,
- 0,124,0,106,0,100,1,131,1,125,1,124,0,106,0,100,
- 2,131,1,125,2,124,1,100,3,107,9,114,86,124,2,100,
- 3,107,9,114,80,124,1,124,2,106,1,107,3,114,80,116,
- 2,106,3,100,4,124,1,155,2,100,5,124,2,106,1,155,
- 2,100,6,157,5,116,4,100,7,100,8,144,1,131,2,1,
- 0,124,1,83,0,110,64,124,2,100,3,107,9,114,102,124,
- 2,106,1,83,0,110,48,116,2,106,3,100,9,116,4,100,
- 7,100,8,144,1,131,2,1,0,124,0,100,10,25,0,125,
- 1,100,11,124,0,107,7,114,150,124,1,106,5,100,12,131,
- 1,100,13,25,0,125,1,124,1,83,0,41,14,122,167,67,
- 97,108,99,117,108,97,116,101,32,119,104,97,116,32,95,95,
- 112,97,99,107,97,103,101,95,95,32,115,104,111,117,108,100,
- 32,98,101,46,10,10,32,32,32,32,95,95,112,97,99,107,
- 97,103,101,95,95,32,105,115,32,110,111,116,32,103,117,97,
- 114,97,110,116,101,101,100,32,116,111,32,98,101,32,100,101,
- 102,105,110,101,100,32,111,114,32,99,111,117,108,100,32,98,
- 101,32,115,101,116,32,116,111,32,78,111,110,101,10,32,32,
- 32,32,116,111,32,114,101,112,114,101,115,101,110,116,32,116,
- 104,97,116,32,105,116,115,32,112,114,111,112,101,114,32,118,
- 97,108,117,101,32,105,115,32,117,110,107,110,111,119,110,46,
- 10,10,32,32,32,32,114,130,0,0,0,114,89,0,0,0,
- 78,122,32,95,95,112,97,99,107,97,103,101,95,95,32,33,
- 61,32,95,95,115,112,101,99,95,95,46,112,97,114,101,110,
- 116,32,40,122,4,32,33,61,32,250,1,41,114,136,0,0,
- 0,233,3,0,0,0,122,89,99,97,110,39,116,32,114,101,
- 115,111,108,118,101,32,112,97,99,107,97,103,101,32,102,114,
- 111,109,32,95,95,115,112,101,99,95,95,32,111,114,32,95,
- 95,112,97,99,107,97,103,101,95,95,44,32,102,97,108,108,
- 105,110,103,32,98,97,99,107,32,111,110,32,95,95,110,97,
- 109,101,95,95,32,97,110,100,32,95,95,112,97,116,104,95,
- 95,114,1,0,0,0,114,127,0,0,0,114,117,0,0,0,
- 114,19,0,0,0,41,6,114,30,0,0,0,114,119,0,0,
- 0,114,138,0,0,0,114,139,0,0,0,114,172,0,0,0,
- 114,118,0,0,0,41,3,218,7,103,108,111,98,97,108,115,
- 114,166,0,0,0,114,82,0,0,0,114,10,0,0,0,114,
- 10,0,0,0,114,11,0,0,0,218,17,95,99,97,108,99,
- 95,95,95,112,97,99,107,97,103,101,95,95,253,3,0,0,
- 115,30,0,0,0,0,7,10,1,10,1,8,1,18,1,22,
- 2,12,1,6,1,8,1,8,2,6,2,12,1,8,1,8,
- 1,14,1,114,195,0,0,0,99,5,0,0,0,0,0,0,
- 0,9,0,0,0,5,0,0,0,67,0,0,0,115,170,0,
- 0,0,124,4,100,1,107,2,114,18,116,0,124,0,131,1,
- 125,5,110,36,124,1,100,2,107,9,114,30,124,1,110,2,
- 105,0,125,6,116,1,124,6,131,1,125,7,116,0,124,0,
- 124,7,124,4,131,3,125,5,124,3,115,154,124,4,100,1,
- 107,2,114,86,116,0,124,0,106,2,100,3,131,1,100,1,
- 25,0,131,1,83,0,113,166,124,0,115,96,124,5,83,0,
- 113,166,116,3,124,0,131,1,116,3,124,0,106,2,100,3,
- 131,1,100,1,25,0,131,1,24,0,125,8,116,4,106,5,
- 124,5,106,6,100,2,116,3,124,5,106,6,131,1,124,8,
- 24,0,133,2,25,0,25,0,83,0,110,12,116,7,124,5,
- 124,3,116,0,131,3,83,0,100,2,83,0,41,4,97,215,
- 1,0,0,73,109,112,111,114,116,32,97,32,109,111,100,117,
- 108,101,46,10,10,32,32,32,32,84,104,101,32,39,103,108,
- 111,98,97,108,115,39,32,97,114,103,117,109,101,110,116,32,
- 105,115,32,117,115,101,100,32,116,111,32,105,110,102,101,114,
- 32,119,104,101,114,101,32,116,104,101,32,105,109,112,111,114,
- 116,32,105,115,32,111,99,99,117,114,114,105,110,103,32,102,
- 114,111,109,10,32,32,32,32,116,111,32,104,97,110,100,108,
- 101,32,114,101,108,97,116,105,118,101,32,105,109,112,111,114,
- 116,115,46,32,84,104,101,32,39,108,111,99,97,108,115,39,
- 32,97,114,103,117,109,101,110,116,32,105,115,32,105,103,110,
- 111,114,101,100,46,32,84,104,101,10,32,32,32,32,39,102,
- 114,111,109,108,105,115,116,39,32,97,114,103,117,109,101,110,
- 116,32,115,112,101,99,105,102,105,101,115,32,119,104,97,116,
- 32,115,104,111,117,108,100,32,101,120,105,115,116,32,97,115,
- 32,97,116,116,114,105,98,117,116,101,115,32,111,110,32,116,
- 104,101,32,109,111,100,117,108,101,10,32,32,32,32,98,101,
- 105,110,103,32,105,109,112,111,114,116,101,100,32,40,101,46,
- 103,46,32,96,96,102,114,111,109,32,109,111,100,117,108,101,
- 32,105,109,112,111,114,116,32,60,102,114,111,109,108,105,115,
- 116,62,96,96,41,46,32,32,84,104,101,32,39,108,101,118,
- 101,108,39,10,32,32,32,32,97,114,103,117,109,101,110,116,
- 32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32,
- 112,97,99,107,97,103,101,32,108,111,99,97,116,105,111,110,
- 32,116,111,32,105,109,112,111,114,116,32,102,114,111,109,32,
- 105,110,32,97,32,114,101,108,97,116,105,118,101,10,32,32,
- 32,32,105,109,112,111,114,116,32,40,101,46,103,46,32,96,
- 96,102,114,111,109,32,46,46,112,107,103,32,105,109,112,111,
- 114,116,32,109,111,100,96,96,32,119,111,117,108,100,32,104,
- 97,118,101,32,97,32,39,108,101,118,101,108,39,32,111,102,
- 32,50,41,46,10,10,32,32,32,32,114,19,0,0,0,78,
- 114,117,0,0,0,41,8,114,183,0,0,0,114,195,0,0,
- 0,218,9,112,97,114,116,105,116,105,111,110,114,164,0,0,
- 0,114,14,0,0,0,114,79,0,0,0,114,1,0,0,0,
- 114,191,0,0,0,41,9,114,15,0,0,0,114,194,0,0,
- 0,218,6,108,111,99,97,108,115,114,189,0,0,0,114,167,
- 0,0,0,114,83,0,0,0,90,8,103,108,111,98,97,108,
- 115,95,114,166,0,0,0,90,7,99,117,116,95,111,102,102,
- 114,10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,
- 10,95,95,105,109,112,111,114,116,95,95,24,4,0,0,115,
- 26,0,0,0,0,11,8,1,10,2,16,1,8,1,12,1,
- 4,3,8,1,20,1,4,1,6,4,26,3,32,2,114,198,
- 0,0,0,99,1,0,0,0,0,0,0,0,2,0,0,0,
- 3,0,0,0,67,0,0,0,115,38,0,0,0,116,0,106,
- 1,124,0,131,1,125,1,124,1,100,0,107,8,114,30,116,
- 2,100,1,124,0,23,0,131,1,130,1,116,3,124,1,131,
- 1,83,0,41,2,78,122,25,110,111,32,98,117,105,108,116,
- 45,105,110,32,109,111,100,117,108,101,32,110,97,109,101,100,
- 32,41,4,114,147,0,0,0,114,151,0,0,0,114,70,0,
- 0,0,114,146,0,0,0,41,2,114,15,0,0,0,114,82,
- 0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,0,
- 0,0,218,18,95,98,117,105,108,116,105,110,95,102,114,111,
- 109,95,110,97,109,101,59,4,0,0,115,8,0,0,0,0,
- 1,10,1,8,1,12,1,114,199,0,0,0,99,2,0,0,
- 0,0,0,0,0,12,0,0,0,12,0,0,0,67,0,0,
- 0,115,244,0,0,0,124,1,97,0,124,0,97,1,116,2,
- 116,1,131,1,125,2,120,86,116,1,106,3,106,4,131,0,
- 68,0,93,72,92,2,125,3,125,4,116,5,124,4,124,2,
- 131,2,114,28,124,3,116,1,106,6,107,6,114,62,116,7,
- 125,5,110,18,116,0,106,8,124,3,131,1,114,28,116,9,
- 125,5,110,2,113,28,116,10,124,4,124,5,131,2,125,6,
- 116,11,124,6,124,4,131,2,1,0,113,28,87,0,116,1,
- 106,3,116,12,25,0,125,7,120,54,100,5,68,0,93,46,
- 125,8,124,8,116,1,106,3,107,7,114,144,116,13,124,8,
- 131,1,125,9,110,10,116,1,106,3,124,8,25,0,125,9,
- 116,14,124,7,124,8,124,9,131,3,1,0,113,120,87,0,
- 121,12,116,13,100,2,131,1,125,10,87,0,110,24,4,0,
- 116,15,107,10,114,206,1,0,1,0,1,0,100,3,125,10,
- 89,0,110,2,88,0,116,14,124,7,100,2,124,10,131,3,
- 1,0,116,13,100,4,131,1,125,11,116,14,124,7,100,4,
- 124,11,131,3,1,0,100,3,83,0,41,6,122,250,83,101,
- 116,117,112,32,105,109,112,111,114,116,108,105,98,32,98,121,
- 32,105,109,112,111,114,116,105,110,103,32,110,101,101,100,101,
- 100,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108,
- 101,115,32,97,110,100,32,105,110,106,101,99,116,105,110,103,
- 32,116,104,101,109,10,32,32,32,32,105,110,116,111,32,116,
- 104,101,32,103,108,111,98,97,108,32,110,97,109,101,115,112,
- 97,99,101,46,10,10,32,32,32,32,65,115,32,115,121,115,
- 32,105,115,32,110,101,101,100,101,100,32,102,111,114,32,115,
- 121,115,46,109,111,100,117,108,101,115,32,97,99,99,101,115,
- 115,32,97,110,100,32,95,105,109,112,32,105,115,32,110,101,
- 101,100,101,100,32,116,111,32,108,111,97,100,32,98,117,105,
- 108,116,45,105,110,10,32,32,32,32,109,111,100,117,108,101,
- 115,44,32,116,104,111,115,101,32,116,119,111,32,109,111,100,
- 117,108,101,115,32,109,117,115,116,32,98,101,32,101,120,112,
- 108,105,99,105,116,108,121,32,112,97,115,115,101,100,32,105,
- 110,46,10,10,32,32,32,32,114,138,0,0,0,114,20,0,
- 0,0,78,114,55,0,0,0,41,1,122,9,95,119,97,114,
- 110,105,110,103,115,41,16,114,46,0,0,0,114,14,0,0,
- 0,114,13,0,0,0,114,79,0,0,0,218,5,105,116,101,
- 109,115,114,174,0,0,0,114,69,0,0,0,114,147,0,0,
- 0,114,75,0,0,0,114,157,0,0,0,114,128,0,0,0,
- 114,133,0,0,0,114,1,0,0,0,114,199,0,0,0,114,
- 5,0,0,0,114,70,0,0,0,41,12,218,10,115,121,115,
- 95,109,111,100,117,108,101,218,11,95,105,109,112,95,109,111,
- 100,117,108,101,90,11,109,111,100,117,108,101,95,116,121,112,
- 101,114,15,0,0,0,114,83,0,0,0,114,93,0,0,0,
- 114,82,0,0,0,90,11,115,101,108,102,95,109,111,100,117,
- 108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,101,
- 90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,101,
- 90,13,116,104,114,101,97,100,95,109,111,100,117,108,101,90,
- 14,119,101,97,107,114,101,102,95,109,111,100,117,108,101,114,
- 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,6,
- 95,115,101,116,117,112,66,4,0,0,115,50,0,0,0,0,
- 9,4,1,4,3,8,1,20,1,10,1,10,1,6,1,10,
- 1,6,2,2,1,10,1,14,3,10,1,10,1,10,1,10,
- 2,10,1,16,3,2,1,12,1,14,2,10,1,12,3,8,
- 1,114,203,0,0,0,99,2,0,0,0,0,0,0,0,3,
- 0,0,0,3,0,0,0,67,0,0,0,115,66,0,0,0,
- 116,0,124,0,124,1,131,2,1,0,116,1,106,2,106,3,
- 116,4,131,1,1,0,116,1,106,2,106,3,116,5,131,1,
- 1,0,100,1,100,2,108,6,125,2,124,2,97,7,124,2,
- 106,8,116,1,106,9,116,10,25,0,131,1,1,0,100,2,
- 83,0,41,3,122,50,73,110,115,116,97,108,108,32,105,109,
- 112,111,114,116,108,105,98,32,97,115,32,116,104,101,32,105,
- 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102,
- 32,105,109,112,111,114,116,46,114,19,0,0,0,78,41,11,
- 114,203,0,0,0,114,14,0,0,0,114,171,0,0,0,114,
- 109,0,0,0,114,147,0,0,0,114,157,0,0,0,218,26,
- 95,102,114,111,122,101,110,95,105,109,112,111,114,116,108,105,
- 98,95,101,120,116,101,114,110,97,108,114,115,0,0,0,218,
- 8,95,105,110,115,116,97,108,108,114,79,0,0,0,114,1,
- 0,0,0,41,3,114,201,0,0,0,114,202,0,0,0,114,
- 204,0,0,0,114,10,0,0,0,114,10,0,0,0,114,11,
- 0,0,0,114,205,0,0,0,113,4,0,0,115,12,0,0,
- 0,0,2,10,2,12,1,12,3,8,1,4,1,114,205,0,
- 0,0,41,2,78,78,41,1,78,41,2,78,114,19,0,0,
- 0,41,50,114,3,0,0,0,114,115,0,0,0,114,12,0,
- 0,0,114,16,0,0,0,114,51,0,0,0,114,29,0,0,
- 0,114,36,0,0,0,114,17,0,0,0,114,18,0,0,0,
- 114,41,0,0,0,114,42,0,0,0,114,45,0,0,0,114,
- 56,0,0,0,114,58,0,0,0,114,68,0,0,0,114,74,
- 0,0,0,114,77,0,0,0,114,84,0,0,0,114,95,0,
- 0,0,114,96,0,0,0,114,102,0,0,0,114,78,0,0,
- 0,218,6,111,98,106,101,99,116,90,9,95,80,79,80,85,
- 76,65,84,69,114,128,0,0,0,114,133,0,0,0,114,141,
- 0,0,0,114,91,0,0,0,114,80,0,0,0,114,145,0,
- 0,0,114,146,0,0,0,114,81,0,0,0,114,147,0,0,
- 0,114,157,0,0,0,114,162,0,0,0,114,168,0,0,0,
- 114,170,0,0,0,114,173,0,0,0,114,178,0,0,0,114,
- 188,0,0,0,114,179,0,0,0,114,181,0,0,0,114,182,
- 0,0,0,114,183,0,0,0,114,191,0,0,0,114,195,0,
- 0,0,114,198,0,0,0,114,199,0,0,0,114,203,0,0,
- 0,114,205,0,0,0,114,10,0,0,0,114,10,0,0,0,
- 114,10,0,0,0,114,11,0,0,0,218,8,60,109,111,100,
- 117,108,101,62,8,0,0,0,115,94,0,0,0,4,17,4,
- 2,8,8,8,7,4,2,4,3,16,4,14,68,14,21,14,
- 19,8,19,8,19,8,11,14,8,8,11,8,12,8,16,8,
- 36,14,27,14,101,16,26,6,3,10,45,14,60,8,18,8,
- 17,8,25,8,29,8,23,8,16,14,73,14,77,14,13,8,
- 9,8,9,10,47,8,20,4,1,8,2,8,27,8,6,10,
- 24,8,32,8,27,18,35,8,7,8,47,
+ 2,1,0,87,0,113,64,4,0,116,8,107,10,114,154,1,
+ 0,125,5,1,0,122,20,124,5,106,9,124,4,107,2,114,
+ 136,119,64,130,0,87,0,89,0,100,5,100,5,125,5,126,
+ 5,88,0,113,64,88,0,113,64,87,0,124,0,83,0,41,
+ 6,122,238,70,105,103,117,114,101,32,111,117,116,32,119,104,
+ 97,116,32,95,95,105,109,112,111,114,116,95,95,32,115,104,
+ 111,117,108,100,32,114,101,116,117,114,110,46,10,10,32,32,
+ 32,32,84,104,101,32,105,109,112,111,114,116,95,32,112,97,
+ 114,97,109,101,116,101,114,32,105,115,32,97,32,99,97,108,
+ 108,97,98,108,101,32,119,104,105,99,104,32,116,97,107,101,
+ 115,32,116,104,101,32,110,97,109,101,32,111,102,32,109,111,
+ 100,117,108,101,32,116,111,10,32,32,32,32,105,109,112,111,
+ 114,116,46,32,73,116,32,105,115,32,114,101,113,117,105,114,
+ 101,100,32,116,111,32,100,101,99,111,117,112,108,101,32,116,
+ 104,101,32,102,117,110,99,116,105,111,110,32,102,114,111,109,
+ 32,97,115,115,117,109,105,110,103,32,105,109,112,111,114,116,
+ 108,105,98,39,115,10,32,32,32,32,105,109,112,111,114,116,
+ 32,105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,
+ 105,115,32,100,101,115,105,114,101,100,46,10,10,32,32,32,
+ 32,114,127,0,0,0,250,1,42,218,7,95,95,97,108,108,
+ 95,95,122,5,123,125,46,123,125,78,41,10,114,4,0,0,
+ 0,114,126,0,0,0,218,6,114,101,109,111,118,101,218,6,
+ 101,120,116,101,110,100,114,186,0,0,0,114,38,0,0,0,
+ 114,1,0,0,0,114,58,0,0,0,114,180,0,0,0,114,
+ 15,0,0,0,41,6,114,83,0,0,0,218,8,102,114,111,
+ 109,108,105,115,116,114,181,0,0,0,218,1,120,90,9,102,
+ 114,111,109,95,110,97,109,101,90,3,101,120,99,114,10,0,
+ 0,0,114,10,0,0,0,114,11,0,0,0,218,16,95,104,
+ 97,110,100,108,101,95,102,114,111,109,108,105,115,116,222,3,
+ 0,0,115,32,0,0,0,0,10,10,1,8,1,8,1,10,
+ 1,10,1,12,1,10,1,10,1,14,1,2,1,14,1,16,
+ 4,10,1,2,1,24,1,114,191,0,0,0,99,1,0,0,
+ 0,0,0,0,0,3,0,0,0,6,0,0,0,67,0,0,
+ 0,115,154,0,0,0,124,0,106,0,100,1,131,1,125,1,
+ 124,0,106,0,100,2,131,1,125,2,124,1,100,3,107,9,
+ 114,86,124,2,100,3,107,9,114,80,124,1,124,2,106,1,
+ 107,3,114,80,116,2,106,3,100,4,124,1,155,2,100,5,
+ 124,2,106,1,155,2,100,6,157,5,116,4,100,7,100,8,
+ 144,1,131,2,1,0,124,1,83,0,110,64,124,2,100,3,
+ 107,9,114,102,124,2,106,1,83,0,110,48,116,2,106,3,
+ 100,9,116,4,100,7,100,8,144,1,131,2,1,0,124,0,
+ 100,10,25,0,125,1,100,11,124,0,107,7,114,150,124,1,
+ 106,5,100,12,131,1,100,13,25,0,125,1,124,1,83,0,
+ 41,14,122,167,67,97,108,99,117,108,97,116,101,32,119,104,
+ 97,116,32,95,95,112,97,99,107,97,103,101,95,95,32,115,
+ 104,111,117,108,100,32,98,101,46,10,10,32,32,32,32,95,
+ 95,112,97,99,107,97,103,101,95,95,32,105,115,32,110,111,
+ 116,32,103,117,97,114,97,110,116,101,101,100,32,116,111,32,
+ 98,101,32,100,101,102,105,110,101,100,32,111,114,32,99,111,
+ 117,108,100,32,98,101,32,115,101,116,32,116,111,32,78,111,
+ 110,101,10,32,32,32,32,116,111,32,114,101,112,114,101,115,
+ 101,110,116,32,116,104,97,116,32,105,116,115,32,112,114,111,
+ 112,101,114,32,118,97,108,117,101,32,105,115,32,117,110,107,
+ 110,111,119,110,46,10,10,32,32,32,32,114,130,0,0,0,
+ 114,89,0,0,0,78,122,32,95,95,112,97,99,107,97,103,
+ 101,95,95,32,33,61,32,95,95,115,112,101,99,95,95,46,
+ 112,97,114,101,110,116,32,40,122,4,32,33,61,32,250,1,
+ 41,114,136,0,0,0,233,3,0,0,0,122,89,99,97,110,
+ 39,116,32,114,101,115,111,108,118,101,32,112,97,99,107,97,
+ 103,101,32,102,114,111,109,32,95,95,115,112,101,99,95,95,
+ 32,111,114,32,95,95,112,97,99,107,97,103,101,95,95,44,
+ 32,102,97,108,108,105,110,103,32,98,97,99,107,32,111,110,
+ 32,95,95,110,97,109,101,95,95,32,97,110,100,32,95,95,
+ 112,97,116,104,95,95,114,1,0,0,0,114,127,0,0,0,
+ 114,117,0,0,0,114,19,0,0,0,41,6,114,30,0,0,
+ 0,114,119,0,0,0,114,138,0,0,0,114,139,0,0,0,
+ 114,172,0,0,0,114,118,0,0,0,41,3,218,7,103,108,
+ 111,98,97,108,115,114,166,0,0,0,114,82,0,0,0,114,
+ 10,0,0,0,114,10,0,0,0,114,11,0,0,0,218,17,
+ 95,99,97,108,99,95,95,95,112,97,99,107,97,103,101,95,
+ 95,253,3,0,0,115,30,0,0,0,0,7,10,1,10,1,
+ 8,1,18,1,22,2,12,1,6,1,8,1,8,2,6,2,
+ 12,1,8,1,8,1,14,1,114,195,0,0,0,99,5,0,
+ 0,0,0,0,0,0,9,0,0,0,5,0,0,0,67,0,
+ 0,0,115,170,0,0,0,124,4,100,1,107,2,114,18,116,
+ 0,124,0,131,1,125,5,110,36,124,1,100,2,107,9,114,
+ 30,124,1,110,2,105,0,125,6,116,1,124,6,131,1,125,
+ 7,116,0,124,0,124,7,124,4,131,3,125,5,124,3,115,
+ 154,124,4,100,1,107,2,114,86,116,0,124,0,106,2,100,
+ 3,131,1,100,1,25,0,131,1,83,0,113,166,124,0,115,
+ 96,124,5,83,0,113,166,116,3,124,0,131,1,116,3,124,
+ 0,106,2,100,3,131,1,100,1,25,0,131,1,24,0,125,
+ 8,116,4,106,5,124,5,106,6,100,2,116,3,124,5,106,
+ 6,131,1,124,8,24,0,133,2,25,0,25,0,83,0,110,
+ 12,116,7,124,5,124,3,116,0,131,3,83,0,100,2,83,
+ 0,41,4,97,215,1,0,0,73,109,112,111,114,116,32,97,
+ 32,109,111,100,117,108,101,46,10,10,32,32,32,32,84,104,
+ 101,32,39,103,108,111,98,97,108,115,39,32,97,114,103,117,
+ 109,101,110,116,32,105,115,32,117,115,101,100,32,116,111,32,
+ 105,110,102,101,114,32,119,104,101,114,101,32,116,104,101,32,
+ 105,109,112,111,114,116,32,105,115,32,111,99,99,117,114,114,
+ 105,110,103,32,102,114,111,109,10,32,32,32,32,116,111,32,
+ 104,97,110,100,108,101,32,114,101,108,97,116,105,118,101,32,
+ 105,109,112,111,114,116,115,46,32,84,104,101,32,39,108,111,
+ 99,97,108,115,39,32,97,114,103,117,109,101,110,116,32,105,
+ 115,32,105,103,110,111,114,101,100,46,32,84,104,101,10,32,
+ 32,32,32,39,102,114,111,109,108,105,115,116,39,32,97,114,
+ 103,117,109,101,110,116,32,115,112,101,99,105,102,105,101,115,
+ 32,119,104,97,116,32,115,104,111,117,108,100,32,101,120,105,
+ 115,116,32,97,115,32,97,116,116,114,105,98,117,116,101,115,
+ 32,111,110,32,116,104,101,32,109,111,100,117,108,101,10,32,
+ 32,32,32,98,101,105,110,103,32,105,109,112,111,114,116,101,
+ 100,32,40,101,46,103,46,32,96,96,102,114,111,109,32,109,
+ 111,100,117,108,101,32,105,109,112,111,114,116,32,60,102,114,
+ 111,109,108,105,115,116,62,96,96,41,46,32,32,84,104,101,
+ 32,39,108,101,118,101,108,39,10,32,32,32,32,97,114,103,
+ 117,109,101,110,116,32,114,101,112,114,101,115,101,110,116,115,
+ 32,116,104,101,32,112,97,99,107,97,103,101,32,108,111,99,
+ 97,116,105,111,110,32,116,111,32,105,109,112,111,114,116,32,
+ 102,114,111,109,32,105,110,32,97,32,114,101,108,97,116,105,
+ 118,101,10,32,32,32,32,105,109,112,111,114,116,32,40,101,
+ 46,103,46,32,96,96,102,114,111,109,32,46,46,112,107,103,
+ 32,105,109,112,111,114,116,32,109,111,100,96,96,32,119,111,
+ 117,108,100,32,104,97,118,101,32,97,32,39,108,101,118,101,
+ 108,39,32,111,102,32,50,41,46,10,10,32,32,32,32,114,
+ 19,0,0,0,78,114,117,0,0,0,41,8,114,184,0,0,
+ 0,114,195,0,0,0,218,9,112,97,114,116,105,116,105,111,
+ 110,114,164,0,0,0,114,14,0,0,0,114,79,0,0,0,
+ 114,1,0,0,0,114,191,0,0,0,41,9,114,15,0,0,
+ 0,114,194,0,0,0,218,6,108,111,99,97,108,115,114,189,
+ 0,0,0,114,167,0,0,0,114,83,0,0,0,90,8,103,
+ 108,111,98,97,108,115,95,114,166,0,0,0,90,7,99,117,
+ 116,95,111,102,102,114,10,0,0,0,114,10,0,0,0,114,
+ 11,0,0,0,218,10,95,95,105,109,112,111,114,116,95,95,
+ 24,4,0,0,115,26,0,0,0,0,11,8,1,10,2,16,
+ 1,8,1,12,1,4,3,8,1,20,1,4,1,6,4,26,
+ 3,32,2,114,198,0,0,0,99,1,0,0,0,0,0,0,
+ 0,2,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,116,0,106,1,124,0,131,1,125,1,124,1,100,0,
+ 107,8,114,30,116,2,100,1,124,0,23,0,131,1,130,1,
+ 116,3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,
+ 98,117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,
+ 110,97,109,101,100,32,41,4,114,147,0,0,0,114,151,0,
+ 0,0,114,70,0,0,0,114,146,0,0,0,41,2,114,15,
+ 0,0,0,114,82,0,0,0,114,10,0,0,0,114,10,0,
+ 0,0,114,11,0,0,0,218,18,95,98,117,105,108,116,105,
+ 110,95,102,114,111,109,95,110,97,109,101,59,4,0,0,115,
+ 8,0,0,0,0,1,10,1,8,1,12,1,114,199,0,0,
+ 0,99,2,0,0,0,0,0,0,0,12,0,0,0,12,0,
+ 0,0,67,0,0,0,115,244,0,0,0,124,1,97,0,124,
+ 0,97,1,116,2,116,1,131,1,125,2,120,86,116,1,106,
+ 3,106,4,131,0,68,0,93,72,92,2,125,3,125,4,116,
+ 5,124,4,124,2,131,2,114,28,124,3,116,1,106,6,107,
+ 6,114,62,116,7,125,5,110,18,116,0,106,8,124,3,131,
+ 1,114,28,116,9,125,5,110,2,113,28,116,10,124,4,124,
+ 5,131,2,125,6,116,11,124,6,124,4,131,2,1,0,113,
+ 28,87,0,116,1,106,3,116,12,25,0,125,7,120,54,100,
+ 5,68,0,93,46,125,8,124,8,116,1,106,3,107,7,114,
+ 144,116,13,124,8,131,1,125,9,110,10,116,1,106,3,124,
+ 8,25,0,125,9,116,14,124,7,124,8,124,9,131,3,1,
+ 0,113,120,87,0,121,12,116,13,100,2,131,1,125,10,87,
+ 0,110,24,4,0,116,15,107,10,114,206,1,0,1,0,1,
+ 0,100,3,125,10,89,0,110,2,88,0,116,14,124,7,100,
+ 2,124,10,131,3,1,0,116,13,100,4,131,1,125,11,116,
+ 14,124,7,100,4,124,11,131,3,1,0,100,3,83,0,41,
+ 6,122,250,83,101,116,117,112,32,105,109,112,111,114,116,108,
+ 105,98,32,98,121,32,105,109,112,111,114,116,105,110,103,32,
+ 110,101,101,100,101,100,32,98,117,105,108,116,45,105,110,32,
+ 109,111,100,117,108,101,115,32,97,110,100,32,105,110,106,101,
+ 99,116,105,110,103,32,116,104,101,109,10,32,32,32,32,105,
+ 110,116,111,32,116,104,101,32,103,108,111,98,97,108,32,110,
+ 97,109,101,115,112,97,99,101,46,10,10,32,32,32,32,65,
+ 115,32,115,121,115,32,105,115,32,110,101,101,100,101,100,32,
+ 102,111,114,32,115,121,115,46,109,111,100,117,108,101,115,32,
+ 97,99,99,101,115,115,32,97,110,100,32,95,105,109,112,32,
+ 105,115,32,110,101,101,100,101,100,32,116,111,32,108,111,97,
+ 100,32,98,117,105,108,116,45,105,110,10,32,32,32,32,109,
+ 111,100,117,108,101,115,44,32,116,104,111,115,101,32,116,119,
+ 111,32,109,111,100,117,108,101,115,32,109,117,115,116,32,98,
+ 101,32,101,120,112,108,105,99,105,116,108,121,32,112,97,115,
+ 115,101,100,32,105,110,46,10,10,32,32,32,32,114,138,0,
+ 0,0,114,20,0,0,0,78,114,55,0,0,0,41,1,122,
+ 9,95,119,97,114,110,105,110,103,115,41,16,114,46,0,0,
+ 0,114,14,0,0,0,114,13,0,0,0,114,79,0,0,0,
+ 218,5,105,116,101,109,115,114,174,0,0,0,114,69,0,0,
+ 0,114,147,0,0,0,114,75,0,0,0,114,157,0,0,0,
+ 114,128,0,0,0,114,133,0,0,0,114,1,0,0,0,114,
+ 199,0,0,0,114,5,0,0,0,114,70,0,0,0,41,12,
+ 218,10,115,121,115,95,109,111,100,117,108,101,218,11,95,105,
+ 109,112,95,109,111,100,117,108,101,90,11,109,111,100,117,108,
+ 101,95,116,121,112,101,114,15,0,0,0,114,83,0,0,0,
+ 114,93,0,0,0,114,82,0,0,0,90,11,115,101,108,102,
+ 95,109,111,100,117,108,101,90,12,98,117,105,108,116,105,110,
+ 95,110,97,109,101,90,14,98,117,105,108,116,105,110,95,109,
+ 111,100,117,108,101,90,13,116,104,114,101,97,100,95,109,111,
+ 100,117,108,101,90,14,119,101,97,107,114,101,102,95,109,111,
+ 100,117,108,101,114,10,0,0,0,114,10,0,0,0,114,11,
+ 0,0,0,218,6,95,115,101,116,117,112,66,4,0,0,115,
+ 50,0,0,0,0,9,4,1,4,3,8,1,20,1,10,1,
+ 10,1,6,1,10,1,6,2,2,1,10,1,14,3,10,1,
+ 10,1,10,1,10,2,10,1,16,3,2,1,12,1,14,2,
+ 10,1,12,3,8,1,114,203,0,0,0,99,2,0,0,0,
+ 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
+ 115,66,0,0,0,116,0,124,0,124,1,131,2,1,0,116,
+ 1,106,2,106,3,116,4,131,1,1,0,116,1,106,2,106,
+ 3,116,5,131,1,1,0,100,1,100,2,108,6,125,2,124,
+ 2,97,7,124,2,106,8,116,1,106,9,116,10,25,0,131,
+ 1,1,0,100,2,83,0,41,3,122,50,73,110,115,116,97,
+ 108,108,32,105,109,112,111,114,116,108,105,98,32,97,115,32,
+ 116,104,101,32,105,109,112,108,101,109,101,110,116,97,116,105,
+ 111,110,32,111,102,32,105,109,112,111,114,116,46,114,19,0,
+ 0,0,78,41,11,114,203,0,0,0,114,14,0,0,0,114,
+ 171,0,0,0,114,109,0,0,0,114,147,0,0,0,114,157,
+ 0,0,0,218,26,95,102,114,111,122,101,110,95,105,109,112,
+ 111,114,116,108,105,98,95,101,120,116,101,114,110,97,108,114,
+ 115,0,0,0,218,8,95,105,110,115,116,97,108,108,114,79,
+ 0,0,0,114,1,0,0,0,41,3,114,201,0,0,0,114,
+ 202,0,0,0,114,204,0,0,0,114,10,0,0,0,114,10,
+ 0,0,0,114,11,0,0,0,114,205,0,0,0,113,4,0,
+ 0,115,12,0,0,0,0,2,10,2,12,1,12,3,8,1,
+ 4,1,114,205,0,0,0,41,2,78,78,41,1,78,41,2,
+ 78,114,19,0,0,0,41,50,114,3,0,0,0,114,115,0,
+ 0,0,114,12,0,0,0,114,16,0,0,0,114,51,0,0,
+ 0,114,29,0,0,0,114,36,0,0,0,114,17,0,0,0,
+ 114,18,0,0,0,114,41,0,0,0,114,42,0,0,0,114,
+ 45,0,0,0,114,56,0,0,0,114,58,0,0,0,114,68,
+ 0,0,0,114,74,0,0,0,114,77,0,0,0,114,84,0,
+ 0,0,114,95,0,0,0,114,96,0,0,0,114,102,0,0,
+ 0,114,78,0,0,0,218,6,111,98,106,101,99,116,90,9,
+ 95,80,79,80,85,76,65,84,69,114,128,0,0,0,114,133,
+ 0,0,0,114,141,0,0,0,114,91,0,0,0,114,80,0,
+ 0,0,114,145,0,0,0,114,146,0,0,0,114,81,0,0,
+ 0,114,147,0,0,0,114,157,0,0,0,114,162,0,0,0,
+ 114,168,0,0,0,114,170,0,0,0,114,173,0,0,0,114,
+ 178,0,0,0,90,15,95,69,82,82,95,77,83,71,95,80,
+ 82,69,70,73,88,114,179,0,0,0,114,182,0,0,0,114,
+ 183,0,0,0,114,184,0,0,0,114,191,0,0,0,114,195,
+ 0,0,0,114,198,0,0,0,114,199,0,0,0,114,203,0,
+ 0,0,114,205,0,0,0,114,10,0,0,0,114,10,0,0,
+ 0,114,10,0,0,0,114,11,0,0,0,218,8,60,109,111,
+ 100,117,108,101,62,8,0,0,0,115,94,0,0,0,4,17,
+ 4,2,8,8,8,7,4,2,4,3,16,4,14,68,14,21,
+ 14,19,8,19,8,19,8,11,14,8,8,11,8,12,8,16,
+ 8,36,14,27,14,101,16,26,6,3,10,45,14,60,8,18,
+ 8,17,8,25,8,29,8,23,8,16,14,73,14,77,14,13,
+ 8,9,8,9,10,47,8,20,4,1,8,2,8,27,8,6,
+ 10,25,8,31,8,27,18,35,8,7,8,47,
};