Issue #15767: back out 8a0ed9f63c6e, finishing the removal of

ModuleNotFoundError.
This commit is contained in:
Brett Cannon 2013-07-04 17:51:50 -04:00
parent 82da8886cc
commit 679ecb565b
17 changed files with 412 additions and 427 deletions

View File

@ -686,8 +686,6 @@ the variables:
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_ImportError` | :exc:`ImportError` | |
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_ModuleNotFoundError` | :exc:`ModuleNotFoundError` | |
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_IndexError` | :exc:`IndexError` | |
+-----------------------------------------+---------------------------------+----------+
| :c:data:`PyExc_InterruptedError` | :exc:`InterruptedError` | |

View File

@ -169,8 +169,8 @@ The following exceptions are the exceptions that are usually raised.
.. exception:: ImportError
Raised when the :keyword:`import` statement has troubles trying to load a
module.
Raised when an :keyword:`import` statement fails to find the module definition
or when a ``from ... import`` fails to find a name that is to be imported.
The :attr:`name` and :attr:`path` attributes can be set using keyword-only
arguments to the constructor. When set they represent the name of the module
@ -180,15 +180,6 @@ The following exceptions are the exceptions that are usually raised.
.. versionchanged:: 3.3
Added the :attr:`name` and :attr:`path` attributes.
.. exception:: ModuleNotFoundError
A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a
module could not be located. This includes ``from ... import`` statements as
the specific attribute being requested cannot be known a priori to be a module
or some other type of object.
.. versionadded:: 3.4
.. exception:: IndexError

View File

@ -137,9 +137,6 @@ Some smaller changes made to the core Python language are:
* Unicode database updated to UCD version 6.2.
* Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of
:exc:`ImportError`) when it cannot find something.
* :func:`min` and :func:`max` now accept a *default* argument that can be used
to specify the value they return if the iterable they are evaluating has no
elements. Contributed by Julian Berman in :issue:`18111`.

View File

@ -152,7 +152,6 @@ PyAPI_DATA(PyObject *) PyExc_EOFError;
PyAPI_DATA(PyObject *) PyExc_FloatingPointError;
PyAPI_DATA(PyObject *) PyExc_OSError;
PyAPI_DATA(PyObject *) PyExc_ImportError;
PyAPI_DATA(PyObject *) PyExc_ModuleNotFoundError;
PyAPI_DATA(PyObject *) PyExc_IndexError;
PyAPI_DATA(PyObject *) PyExc_KeyError;
PyAPI_DATA(PyObject *) PyExc_KeyboardInterrupt;

View File

@ -1556,7 +1556,11 @@ def _find_and_load_unlocked(name, import_):
raise ImportError(msg, name=name)
loader = _find_module(name, path)
if loader is None:
raise ModuleNotFoundError(_ERR_MSG.format(name), name=name)
exc = ImportError(_ERR_MSG.format(name), name=name)
# TODO(brett): switch to a proper ModuleNotFound exception in Python
# 3.4.
exc._not_found = True
raise exc
elif name not in sys.modules:
# The parent import may have already imported this module.
loader.load_module(name)
@ -1642,12 +1646,15 @@ def _handle_fromlist(module, fromlist, import_):
from_name = '{}.{}'.format(module.__name__, x)
try:
_call_with_frames_removed(import_, from_name)
except ModuleNotFoundError as exc:
except ImportError as exc:
# Backwards-compatibility dictates we ignore failed
# imports triggered by fromlist for modules that don't
# exist.
if exc.name == from_name:
continue
# TODO(brett): In Python 3.4, have import raise
# ModuleNotFound and catch that.
if getattr(exc, '_not_found', False):
if exc.name == from_name:
continue
raise
return module

View File

@ -316,7 +316,7 @@ def safeimport(path, forceload=0, cache={}):
elif exc is SyntaxError:
# A SyntaxError occurred before we could execute the module.
raise ErrorDuringImport(value.filename, info)
elif issubclass(exc, ImportError) and value.name == path:
elif exc is ImportError and value.name == path:
# No such module in the path.
return None
else:

View File

@ -13,7 +13,6 @@ BaseException
+-- BufferError
+-- EOFError
+-- ImportError
+-- ModuleNotFoundError
+-- LookupError
| +-- IndexError
| +-- KeyError

View File

@ -953,5 +953,8 @@ class ImportErrorTests(unittest.TestCase):
self.assertEqual(str(arg), str(exc))
def test_main():
run_unittest(ExceptionTests, ImportErrorTests)
if __name__ == '__main__':
unittest.main()

View File

@ -68,15 +68,7 @@ class ImportTests(unittest.TestCase):
def tearDown(self):
unload(TESTFN)
def test_import_raises_ModuleNotFoundError(self):
with self.assertRaises(ModuleNotFoundError):
import something_that_should_not_exist_anywhere
def test_from_import_raises_ModuleNotFoundError(self):
with self.assertRaises(ModuleNotFoundError):
from something_that_should_not_exist_anywhere import blah
with self.assertRaises(ModuleNotFoundError):
from importlib import something_that_should_not_exist_anywhere
setUp = tearDown
def test_case_sensitivity(self):
# Brief digression to test that import is case-sensitive: if we got
@ -495,7 +487,7 @@ func_filename = func.__code__.co_filename
header = f.read(12)
code = marshal.load(f)
constants = list(code.co_consts)
foreign_code = importlib.import_module.__code__
foreign_code = test_main.__code__
pos = constants.index(1)
constants[pos] = foreign_code
code = type(code)(code.co_argcount, code.co_kwonlyargcount,
@ -1021,5 +1013,16 @@ class ImportTracebackTests(unittest.TestCase):
importlib.SourceLoader.load_module = old_load_module
def test_main(verbose=None):
run_unittest(ImportTests, PycacheTests, FilePermissionTests,
PycRewritingTests, PathsTests, RelativeImportTests,
OverridingImportBuiltinTests,
ImportlibBootstrapTests,
TestSymbolicallyLinkedPackage,
ImportTracebackTests)
if __name__ == '__main__':
unittest.main()
# Test needs to be a package, so we can do relative imports.
from test.test_import import test_main
test_main()

View File

@ -22,10 +22,6 @@ class APITest(unittest.TestCase):
"""Test API-specific details for __import__ (e.g. raising the right
exception when passing in an int for the module name)."""
def test_raises_ModuleNotFoundError(self):
with self.assertRaises(ModuleNotFoundError):
util.import_('some module that does not exist')
def test_name_requires_rparition(self):
# Raise TypeError if a non-string is passed in for the module name.
with self.assertRaises(TypeError):

View File

@ -68,16 +68,16 @@ class HandlingFromlist(unittest.TestCase):
self.assertTrue(hasattr(module, 'module'))
self.assertEqual(module.module.__name__, 'pkg.module')
def test_module_from_package_triggers_ModuleNotFoundError(self):
# If a submodule causes an ModuleNotFoundError because it tries to import
# a module which doesn't exist, that should let the ModuleNotFoundError
def test_module_from_package_triggers_ImportError(self):
# If a submodule causes an ImportError because it tries to import
# a module which doesn't exist, that should let the ImportError
# propagate.
def module_code():
import i_do_not_exist
with util.mock_modules('pkg.__init__', 'pkg.mod',
module_code={'pkg.mod': module_code}) as importer:
with util.import_state(meta_path=[importer]):
with self.assertRaises(ModuleNotFoundError) as exc:
with self.assertRaises(ImportError) as exc:
import_util.import_('pkg', fromlist=['mod'])
self.assertEqual('i_do_not_exist', exc.exception.name)

View File

@ -206,7 +206,7 @@ expected_html_data_docstrings = tuple(s.replace(' ', ' ')
missing_pattern = "no Python documentation found for '%s'"
# output pattern for module with bad imports
badimport_pattern = "problem in %s - ModuleNotFoundError: No module named %r"
badimport_pattern = "problem in %s - ImportError: No module named %r"
def run_pydoc(module_name, *args, **env):
"""

View File

@ -131,7 +131,7 @@ class HelperFunctionsTests(unittest.TestCase):
re.escape(os.path.join(pth_dir, pth_fn)))
# XXX: ditto previous XXX comment.
self.assertRegex(err_out.getvalue(), 'Traceback')
self.assertRegex(err_out.getvalue(), 'ModuleNotFoundError')
self.assertRegex(err_out.getvalue(), 'ImportError')
@unittest.skipIf(sys.platform == "win32", "Windows does not raise an "
"error for file paths containing null characters")

View File

@ -25,9 +25,6 @@ Core and Builtins
- Issue #18137: Detect integer overflow on precision in float.__format__()
and complex.__format__().
- Issue #15767: Introduce ModuleNotFoundError which is raised when a module
could not be found.
- Issue #18183: Fix various unicode operations on strings with large unicode
codepoints.

View File

@ -709,13 +709,6 @@ ComplexExtendsException(PyExc_Exception, ImportError,
"Import can't find module, or can't find name in "
"module.");
/*
* ModuleNotFoundError extends ImportError
*/
MiddlingExtendsException(PyExc_ImportError, ModuleNotFoundError, ImportError,
"Module not found.");
/*
* OSError extends Exception
*/
@ -2402,7 +2395,6 @@ _PyExc_Init(PyObject *bltinmod)
PRE_INIT(SystemExit)
PRE_INIT(KeyboardInterrupt)
PRE_INIT(ImportError)
PRE_INIT(ModuleNotFoundError)
PRE_INIT(OSError)
PRE_INIT(EOFError)
PRE_INIT(RuntimeError)
@ -2473,7 +2465,6 @@ _PyExc_Init(PyObject *bltinmod)
POST_INIT(SystemExit)
POST_INIT(KeyboardInterrupt)
POST_INIT(ImportError)
POST_INIT(ModuleNotFoundError)
POST_INIT(OSError)
INIT_ALIAS(EnvironmentError, OSError)
INIT_ALIAS(IOError, OSError)

View File

@ -4588,7 +4588,7 @@ import_from(PyObject *v, PyObject *name)
x = PyObject_GetAttr(v, name);
if (x == NULL && PyErr_ExceptionMatches(PyExc_AttributeError)) {
PyErr_Format(PyExc_ModuleNotFoundError, "cannot import name %S", name);
PyErr_Format(PyExc_ImportError, "cannot import name %S", name);
}
return x;
}

View File

@ -3182,8 +3182,8 @@ const unsigned char _Py_M__importlib[] = {
1,30,1,12,1,15,1,6,1,15,1,15,1,15,1,6,
2,27,1,19,1,114,63,1,0,0,117,20,0,0,0,78,
111,32,109,111,100,117,108,101,32,110,97,109,101,100,32,123,
33,114,125,99,2,0,0,0,0,0,0,0,8,0,0,0,
27,0,0,0,67,0,0,0,115,6,2,0,0,100,0,0,
33,114,125,99,2,0,0,0,0,0,0,0,9,0,0,0,
27,0,0,0,67,0,0,0,115,21,2,0,0,100,0,0,
125,2,0,124,0,0,106,0,0,100,1,0,131,1,0,100,
2,0,25,125,3,0,124,3,0,114,178,0,124,3,0,116,
1,0,106,2,0,107,7,0,114,62,0,116,3,0,124,1,
@ -3196,50 +3196,51 @@ const unsigned char _Py_M__importlib[] = {
2,0,125,5,0,116,8,0,124,5,0,100,4,0,124,0,
0,131,1,1,130,1,0,89,113,178,0,88,110,0,0,116,
9,0,124,0,0,124,2,0,131,2,0,125,6,0,124,6,
0,100,0,0,107,8,0,114,235,0,116,10,0,116,6,0,
0,100,0,0,107,8,0,114,250,0,116,8,0,116,6,0,
106,7,0,124,0,0,131,1,0,100,4,0,124,0,0,131,
1,1,130,1,0,110,47,0,124,0,0,116,1,0,106,2,
0,107,7,0,114,26,1,124,6,0,106,11,0,124,0,0,
131,1,0,1,116,12,0,100,5,0,124,0,0,124,6,0,
131,3,0,1,110,0,0,116,1,0,106,2,0,124,0,0,
25,125,7,0,124,3,0,114,90,1,116,1,0,106,2,0,
124,3,0,25,125,4,0,116,13,0,124,4,0,124,0,0,
106,0,0,100,1,0,131,1,0,100,6,0,25,124,7,0,
131,3,0,1,110,0,0,116,14,0,124,7,0,100,7,0,
100,0,0,131,3,0,100,0,0,107,8,0,114,197,1,121,
59,0,124,7,0,106,15,0,124,7,0,95,16,0,116,17,
0,124,7,0,100,8,0,131,2,0,115,172,1,124,7,0,
106,16,0,106,0,0,100,1,0,131,1,0,100,2,0,25,
124,7,0,95,16,0,110,0,0,87,113,197,1,4,116,5,
0,107,10,0,114,193,1,1,1,1,89,113,197,1,88,110,
0,0,116,14,0,124,7,0,100,9,0,100,0,0,131,3,
0,100,0,0,107,8,0,114,2,2,121,13,0,124,6,0,
124,7,0,95,18,0,87,113,2,2,4,116,5,0,107,10,
0,114,254,1,1,1,1,89,113,2,2,88,110,0,0,124,
7,0,83,40,10,0,0,0,78,114,101,0,0,0,114,67,
0,0,0,117,21,0,0,0,59,32,123,125,32,105,115,32,
110,111,116,32,97,32,112,97,99,107,97,103,101,114,71,0,
0,0,117,18,0,0,0,105,109,112,111,114,116,32,123,33,
1,1,125,7,0,100,5,0,124,7,0,95,10,0,124,7,
0,130,1,0,110,47,0,124,0,0,116,1,0,106,2,0,
107,7,0,114,41,1,124,6,0,106,11,0,124,0,0,131,
1,0,1,116,12,0,100,6,0,124,0,0,124,6,0,131,
3,0,1,110,0,0,116,1,0,106,2,0,124,0,0,25,
125,8,0,124,3,0,114,105,1,116,1,0,106,2,0,124,
3,0,25,125,4,0,116,13,0,124,4,0,124,0,0,106,
0,0,100,1,0,131,1,0,100,7,0,25,124,8,0,131,
3,0,1,110,0,0,116,14,0,124,8,0,100,8,0,100,
0,0,131,3,0,100,0,0,107,8,0,114,212,1,121,59,
0,124,8,0,106,15,0,124,8,0,95,16,0,116,17,0,
124,8,0,100,9,0,131,2,0,115,187,1,124,8,0,106,
16,0,106,0,0,100,1,0,131,1,0,100,2,0,25,124,
8,0,95,16,0,110,0,0,87,113,212,1,4,116,5,0,
107,10,0,114,208,1,1,1,1,89,113,212,1,88,110,0,
0,116,14,0,124,8,0,100,10,0,100,0,0,131,3,0,
100,0,0,107,8,0,114,17,2,121,13,0,124,6,0,124,
8,0,95,18,0,87,113,17,2,4,116,5,0,107,10,0,
114,13,2,1,1,1,89,113,17,2,88,110,0,0,124,8,
0,83,40,11,0,0,0,78,114,101,0,0,0,114,67,0,
0,0,117,21,0,0,0,59,32,123,125,32,105,115,32,110,
111,116,32,97,32,112,97,99,107,97,103,101,114,71,0,0,
0,84,117,18,0,0,0,105,109,112,111,114,116,32,123,33,
114,125,32,35,32,123,33,114,125,114,100,0,0,0,114,159,
0,0,0,114,160,0,0,0,114,172,0,0,0,40,19,0,
0,0,114,32,0,0,0,114,7,0,0,0,114,141,0,0,
0,114,99,0,0,0,114,160,0,0,0,114,155,0,0,0,
244,8,0,0,0,95,69,82,82,95,77,83,71,114,46,0,
0,0,114,158,0,0,0,114,60,1,0,0,244,19,0,0,
0,77,111,100,117,108,101,78,111,116,70,111,117,110,100,69,
114,114,111,114,114,218,0,0,0,114,138,0,0,0,114,60,
0,0,0,114,61,0,0,0,114,56,0,0,0,114,159,0,
0,0,114,59,0,0,0,114,172,0,0,0,40,8,0,0,
0,114,71,0,0,0,244,7,0,0,0,105,109,112,111,114,
116,95,114,35,0,0,0,114,6,1,0,0,116,13,0,0,
0,112,97,114,101,110,116,95,109,111,100,117,108,101,114,190,
0,0,0,114,161,0,0,0,114,162,0,0,0,114,4,0,
0,0,114,4,0,0,0,114,5,0,0,0,244,23,0,0,
0,95,102,105,110,100,95,97,110,100,95,108,111,97,100,95,
117,110,108,111,99,107,101,100,5,6,0,0,115,72,0,0,
0,0,1,6,1,19,1,6,1,15,1,16,2,15,1,11,
2,13,1,3,1,13,1,13,1,22,1,26,1,15,1,12,
1,30,1,15,2,13,1,19,2,13,1,6,2,13,1,32,
0,0,114,158,0,0,0,114,60,1,0,0,244,10,0,0,
0,95,110,111,116,95,102,111,117,110,100,114,218,0,0,0,
114,138,0,0,0,114,60,0,0,0,114,61,0,0,0,114,
56,0,0,0,114,159,0,0,0,114,59,0,0,0,114,172,
0,0,0,40,9,0,0,0,114,71,0,0,0,244,7,0,
0,0,105,109,112,111,114,116,95,114,35,0,0,0,114,6,
1,0,0,116,13,0,0,0,112,97,114,101,110,116,95,109,
111,100,117,108,101,114,190,0,0,0,114,161,0,0,0,114,
248,0,0,0,114,162,0,0,0,114,4,0,0,0,114,4,
0,0,0,114,5,0,0,0,244,23,0,0,0,95,102,105,
110,100,95,97,110,100,95,108,111,97,100,95,117,110,108,111,
99,107,101,100,5,6,0,0,115,76,0,0,0,0,1,6,
1,19,1,6,1,15,1,16,2,15,1,11,2,13,1,3,
1,13,1,13,1,22,1,26,1,15,1,12,1,27,3,9,
1,9,1,15,2,13,1,19,2,13,1,6,2,13,1,32,
2,24,1,3,1,12,1,15,1,32,1,13,1,8,2,24,
1,3,1,13,1,13,1,8,1,114,67,1,0,0,99,2,
0,0,0,0,0,0,0,3,0,0,0,18,0,0,0,67,
@ -3257,7 +3258,7 @@ const unsigned char _Py_M__importlib[] = {
0,0,114,84,0,0,0,40,3,0,0,0,114,71,0,0,
0,114,66,1,0,0,114,69,0,0,0,114,4,0,0,0,
114,4,0,0,0,114,5,0,0,0,244,14,0,0,0,95,
102,105,110,100,95,97,110,100,95,108,111,97,100,51,6,0,
102,105,110,100,95,97,110,100,95,108,111,97,100,55,6,0,
0,115,14,0,0,0,0,2,3,1,16,2,11,1,10,1,
3,1,17,2,114,68,1,0,0,99,3,0,0,0,0,0,
0,0,5,0,0,0,4,0,0,0,67,0,0,0,115,172,
@ -3303,347 +3304,350 @@ const unsigned char _Py_M__importlib[] = {
5,0,0,0,114,71,0,0,0,114,56,1,0,0,114,57,
1,0,0,114,162,0,0,0,114,137,0,0,0,114,4,0,
0,0,114,4,0,0,0,114,5,0,0,0,114,69,1,0,
0,64,6,0,0,115,26,0,0,0,0,9,16,1,12,1,
0,68,6,0,0,115,26,0,0,0,0,9,16,1,12,1,
21,1,10,1,15,1,13,1,13,1,12,1,10,2,15,1,
21,1,10,1,114,69,1,0,0,99,3,0,0,0,0,0,
0,0,6,0,0,0,17,0,0,0,67,0,0,0,115,233,
0,0,6,0,0,0,17,0,0,0,67,0,0,0,115,254,
0,0,0,116,0,0,124,0,0,100,1,0,131,2,0,114,
229,0,100,2,0,124,1,0,107,6,0,114,89,0,116,1,
250,0,100,2,0,124,1,0,107,6,0,114,89,0,116,1,
0,124,1,0,131,1,0,125,1,0,124,1,0,106,2,0,
100,2,0,131,1,0,1,116,0,0,124,0,0,100,3,0,
131,2,0,114,89,0,124,1,0,106,3,0,124,0,0,106,
4,0,131,1,0,1,113,89,0,110,0,0,120,137,0,124,
1,0,68,93,126,0,125,3,0,116,0,0,124,0,0,124,
4,0,131,1,0,1,113,89,0,110,0,0,120,158,0,124,
1,0,68,93,147,0,125,3,0,116,0,0,124,0,0,124,
3,0,131,2,0,115,96,0,100,4,0,106,5,0,124,0,
0,106,6,0,124,3,0,131,2,0,125,4,0,121,17,0,
116,7,0,124,2,0,124,4,0,131,2,0,1,87,113,222,
0,4,116,8,0,107,10,0,114,218,0,1,125,5,0,1,
122,29,0,124,5,0,106,9,0,124,4,0,107,2,0,114,
197,0,119,96,0,110,0,0,130,0,0,87,89,100,5,0,
100,5,0,125,5,0,126,5,0,88,113,222,0,88,113,96,
0,113,96,0,87,110,0,0,124,0,0,83,40,6,0,0,
0,117,238,0,0,0,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,160,0,0,0,245,1,0,0,0,42,244,
7,0,0,0,95,95,97,108,108,95,95,117,5,0,0,0,
123,125,46,123,125,78,40,10,0,0,0,114,59,0,0,0,
244,4,0,0,0,108,105,115,116,244,6,0,0,0,114,101,
109,111,118,101,114,207,0,0,0,114,71,1,0,0,114,46,
0,0,0,114,56,0,0,0,114,99,0,0,0,114,65,1,
116,7,0,124,2,0,124,4,0,131,2,0,1,87,113,243,
0,4,116,8,0,107,10,0,114,239,0,1,125,5,0,1,
122,50,0,116,9,0,124,5,0,100,5,0,100,6,0,131,
3,0,114,218,0,124,5,0,106,10,0,124,4,0,107,2,
0,114,218,0,119,96,0,113,218,0,110,0,0,130,0,0,
87,89,100,7,0,100,7,0,125,5,0,126,5,0,88,113,
243,0,88,113,96,0,113,96,0,87,110,0,0,124,0,0,
83,40,8,0,0,0,117,238,0,0,0,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,160,0,0,0,245,1,
0,0,0,42,244,7,0,0,0,95,95,97,108,108,95,95,
117,5,0,0,0,123,125,46,123,125,114,65,1,0,0,70,
78,40,11,0,0,0,114,59,0,0,0,244,4,0,0,0,
108,105,115,116,244,6,0,0,0,114,101,109,111,118,101,114,
207,0,0,0,114,71,1,0,0,114,46,0,0,0,114,56,
0,0,0,114,99,0,0,0,114,158,0,0,0,114,61,0,
0,0,114,71,0,0,0,40,6,0,0,0,114,162,0,0,
0,244,8,0,0,0,102,114,111,109,108,105,115,116,114,66,
1,0,0,114,16,0,0,0,116,9,0,0,0,102,114,111,
109,95,110,97,109,101,114,248,0,0,0,114,4,0,0,0,
114,4,0,0,0,114,5,0,0,0,244,16,0,0,0,95,
104,97,110,100,108,101,95,102,114,111,109,108,105,115,116,88,
6,0,0,115,32,0,0,0,0,10,15,1,12,1,12,1,
104,97,110,100,108,101,95,102,114,111,109,108,105,115,116,92,
6,0,0,115,34,0,0,0,0,10,15,1,12,1,12,1,
13,1,15,1,22,1,13,1,15,1,21,1,3,1,17,1,
18,4,15,1,6,1,32,1,114,75,1,0,0,99,1,0,
0,0,0,0,0,0,2,0,0,0,2,0,0,0,67,0,
0,0,115,78,0,0,0,124,0,0,106,0,0,100,1,0,
131,1,0,125,1,0,124,1,0,100,2,0,107,8,0,114,
74,0,124,0,0,100,3,0,25,125,1,0,100,4,0,124,
0,0,107,7,0,114,74,0,124,1,0,106,1,0,100,5,
0,131,1,0,100,6,0,25,125,1,0,113,74,0,110,0,
0,124,1,0,83,40,7,0,0,0,117,167,0,0,0,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,159,0,0,0,78,114,56,0,0,
0,114,160,0,0,0,114,101,0,0,0,114,67,0,0,0,
40,2,0,0,0,114,79,0,0,0,114,32,0,0,0,40,
2,0,0,0,244,7,0,0,0,103,108,111,98,97,108,115,
114,56,1,0,0,114,4,0,0,0,114,4,0,0,0,114,
5,0,0,0,244,17,0,0,0,95,99,97,108,99,95,95,
95,112,97,99,107,97,103,101,95,95,119,6,0,0,115,12,
0,0,0,0,7,15,1,12,1,10,1,12,1,25,1,114,
77,1,0,0,99,0,0,0,0,0,0,0,0,3,0,0,
0,3,0,0,0,67,0,0,0,115,55,0,0,0,116,0,
0,116,1,0,106,2,0,131,0,0,102,2,0,125,0,0,
116,3,0,116,4,0,102,2,0,125,1,0,116,5,0,116,
6,0,102,2,0,125,2,0,124,0,0,124,1,0,124,2,
0,103,3,0,83,40,1,0,0,0,117,111,0,0,0,82,
101,116,117,114,110,115,32,97,32,108,105,115,116,32,111,102,
32,102,105,108,101,45,98,97,115,101,100,32,109,111,100,117,
108,101,32,108,111,97,100,101,114,115,46,10,10,32,32,32,
32,69,97,99,104,32,105,116,101,109,32,105,115,32,97,32,
116,117,112,108,101,32,40,108,111,97,100,101,114,44,32,115,
117,102,102,105,120,101,115,44,32,97,108,108,111,119,95,112,
97,99,107,97,103,101,115,41,46,10,32,32,32,32,40,7,
0,0,0,114,8,1,0,0,114,94,0,0,0,244,18,0,
0,0,101,120,116,101,110,115,105,111,110,95,115,117,102,102,
105,120,101,115,114,2,1,0,0,114,119,0,0,0,114,7,
1,0,0,244,17,0,0,0,66,89,84,69,67,79,68,69,
95,83,85,70,70,73,88,69,83,40,3,0,0,0,116,10,
0,0,0,101,120,116,101,110,115,105,111,110,115,116,6,0,
0,0,115,111,117,114,99,101,116,8,0,0,0,98,121,116,
101,99,111,100,101,114,4,0,0,0,114,4,0,0,0,114,
5,0,0,0,114,234,0,0,0,134,6,0,0,115,8,0,
0,0,0,5,18,1,12,1,12,1,114,234,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,227,0,0,0,124,4,0,100,1,0,107,
2,0,114,27,0,116,0,0,124,0,0,131,1,0,125,5,
0,110,54,0,124,1,0,100,2,0,107,9,0,114,45,0,
124,1,0,110,3,0,105,0,0,125,6,0,116,1,0,124,
6,0,131,1,0,125,7,0,116,0,0,124,0,0,124,7,
0,124,4,0,131,3,0,125,5,0,124,3,0,115,207,0,
124,4,0,100,1,0,107,2,0,114,122,0,116,0,0,124,
0,0,106,2,0,100,3,0,131,1,0,100,1,0,25,131,
1,0,83,124,0,0,115,132,0,124,5,0,83,116,3,0,
124,0,0,131,1,0,116,3,0,124,0,0,106,2,0,100,
3,0,131,1,0,100,1,0,25,131,1,0,24,125,8,0,
116,4,0,106,5,0,124,5,0,106,6,0,100,2,0,116,
3,0,124,5,0,106,6,0,131,1,0,124,8,0,24,133,
2,0,25,25,83,110,16,0,116,7,0,124,5,0,124,3,
0,116,0,0,131,3,0,83,100,2,0,83,40,4,0,0,
0,117,214,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,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,67,0,0,
0,78,114,101,0,0,0,40,8,0,0,0,114,69,1,0,
0,114,77,1,0,0,114,106,0,0,0,114,31,0,0,0,
114,7,0,0,0,114,141,0,0,0,114,56,0,0,0,114,
75,1,0,0,40,9,0,0,0,114,71,0,0,0,114,76,
1,0,0,244,6,0,0,0,108,111,99,97,108,115,114,74,
1,0,0,114,57,1,0,0,114,162,0,0,0,116,8,0,
0,0,103,108,111,98,97,108,115,95,114,56,1,0,0,116,
7,0,0,0,99,117,116,95,111,102,102,114,4,0,0,0,
114,4,0,0,0,114,5,0,0,0,244,10,0,0,0,95,
95,105,109,112,111,114,116,95,95,145,6,0,0,115,26,0,
0,0,0,11,12,1,15,2,24,1,12,1,18,1,6,3,
12,1,23,1,6,1,4,4,35,3,40,2,114,81,1,0,
0,99,2,0,0,0,0,0,0,0,16,0,0,0,13,0,
0,0,67,0,0,0,115,237,2,0,0,124,1,0,97,0,
0,124,0,0,97,1,0,116,1,0,106,2,0,106,3,0,
114,33,0,116,4,0,97,5,0,110,6,0,116,6,0,97,
5,0,116,7,0,116,1,0,131,1,0,125,2,0,120,128,
0,116,1,0,106,8,0,106,9,0,131,0,0,68,93,111,
0,92,2,0,125,3,0,125,4,0,116,10,0,124,4,0,
124,2,0,131,2,0,114,67,0,116,11,0,124,4,0,100,
1,0,100,2,0,131,3,0,100,2,0,107,8,0,114,178,
0,124,3,0,116,1,0,106,12,0,107,6,0,114,145,0,
116,13,0,124,4,0,95,14,0,113,175,0,116,0,0,106,
15,0,124,3,0,131,1,0,114,175,0,116,16,0,124,4,
0,95,14,0,113,175,0,113,178,0,113,67,0,113,67,0,
87,116,1,0,106,8,0,116,17,0,25,125,5,0,120,76,
0,100,27,0,68,93,68,0,125,6,0,124,6,0,116,1,
0,106,8,0,107,7,0,114,241,0,116,13,0,106,18,0,
124,6,0,131,1,0,125,7,0,110,13,0,116,1,0,106,
8,0,124,6,0,25,125,7,0,116,19,0,124,5,0,124,
6,0,124,7,0,131,3,0,1,113,202,0,87,100,7,0,
100,8,0,103,1,0,102,2,0,100,9,0,100,10,0,100,
8,0,103,2,0,102,2,0,102,2,0,125,8,0,120,149,
0,124,8,0,68,93,129,0,92,2,0,125,9,0,125,10,
0,116,20,0,100,11,0,100,12,0,132,0,0,124,10,0,
68,131,1,0,131,1,0,115,101,1,116,21,0,130,1,0,
124,10,0,100,13,0,25,125,11,0,124,9,0,116,1,0,
106,8,0,107,6,0,114,143,1,116,1,0,106,8,0,124,
9,0,25,125,12,0,80,113,58,1,121,20,0,116,13,0,
106,18,0,124,9,0,131,1,0,125,12,0,80,87,113,58,
1,4,116,22,0,107,10,0,114,186,1,1,1,1,119,58,
1,89,113,58,1,88,113,58,1,87,116,22,0,100,14,0,
131,1,0,130,1,0,121,19,0,116,13,0,106,18,0,100,
15,0,131,1,0,125,13,0,87,110,24,0,4,116,22,0,
107,10,0,114,248,1,1,1,1,100,2,0,125,13,0,89,
110,1,0,88,116,13,0,106,18,0,100,16,0,131,1,0,
125,14,0,124,9,0,100,9,0,107,2,0,114,54,2,116,
13,0,106,18,0,100,17,0,131,1,0,125,15,0,116,19,
0,124,5,0,100,18,0,124,15,0,131,3,0,1,110,0,
0,116,19,0,124,5,0,100,19,0,124,12,0,131,3,0,
1,116,19,0,124,5,0,100,15,0,124,13,0,131,3,0,
1,116,19,0,124,5,0,100,16,0,124,14,0,131,3,0,
1,116,19,0,124,5,0,100,20,0,124,11,0,131,3,0,
1,116,19,0,124,5,0,100,21,0,100,22,0,106,23,0,
124,10,0,131,1,0,131,3,0,1,116,19,0,124,5,0,
100,23,0,116,24,0,131,0,0,131,3,0,1,116,25,0,
106,26,0,116,0,0,106,27,0,131,0,0,131,1,0,1,
124,9,0,100,9,0,107,2,0,114,233,2,116,28,0,106,
29,0,100,24,0,131,1,0,1,100,25,0,116,25,0,107,
6,0,114,233,2,100,26,0,116,30,0,95,31,0,113,233,
2,110,0,0,100,2,0,83,40,28,0,0,0,117,250,0,
0,0,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,172,0,0,
0,78,114,48,0,0,0,114,186,0,0,0,244,8,0,0,
0,98,117,105,108,116,105,110,115,114,201,0,0,0,116,5,
0,0,0,112,111,115,105,120,245,1,0,0,0,47,244,2,
0,0,0,110,116,245,1,0,0,0,92,99,1,0,0,0,
0,0,0,0,2,0,0,0,3,0,0,0,115,0,0,0,
115,33,0,0,0,124,0,0,93,23,0,125,1,0,116,0,
0,124,1,0,131,1,0,100,0,0,107,2,0,86,1,113,
3,0,100,1,0,83,40,2,0,0,0,114,29,0,0,0,
78,40,1,0,0,0,114,31,0,0,0,40,2,0,0,0,
114,22,0,0,0,114,115,0,0,0,114,4,0,0,0,114,
4,0,0,0,114,5,0,0,0,114,144,0,0,0,218,6,
0,0,115,2,0,0,0,6,0,117,25,0,0,0,95,115,
101,116,117,112,46,60,108,111,99,97,108,115,62,46,60,103,
101,110,101,120,112,114,62,114,67,0,0,0,117,30,0,0,
0,105,109,112,111,114,116,108,105,98,32,114,101,113,117,105,
114,101,115,32,112,111,115,105,120,32,111,114,32,110,116,114,
68,0,0,0,114,92,0,0,0,116,6,0,0,0,119,105,
110,114,101,103,114,225,0,0,0,114,3,0,0,0,114,25,
0,0,0,114,21,0,0,0,114,30,0,0,0,114,6,0,
0,0,117,4,0,0,0,46,112,121,119,117,6,0,0,0,
95,100,46,112,121,100,84,40,4,0,0,0,117,3,0,0,
0,95,105,111,117,9,0,0,0,95,119,97,114,110,105,110,
103,115,117,8,0,0,0,98,117,105,108,116,105,110,115,117,
7,0,0,0,109,97,114,115,104,97,108,40,32,0,0,0,
114,94,0,0,0,114,7,0,0,0,114,102,0,0,0,114,
103,0,0,0,114,105,0,0,0,114,79,1,0,0,114,104,
0,0,0,114,153,0,0,0,114,141,0,0,0,244,5,0,
0,0,105,116,101,109,115,114,202,0,0,0,114,61,0,0,
0,114,178,0,0,0,114,214,0,0,0,114,172,0,0,0,
114,182,0,0,0,114,222,0,0,0,114,56,0,0,0,114,
218,0,0,0,114,60,0,0,0,244,3,0,0,0,97,108,
108,114,86,0,0,0,114,158,0,0,0,114,26,0,0,0,
114,11,0,0,0,114,11,1,0,0,114,207,0,0,0,114,
78,1,0,0,114,119,0,0,0,114,166,0,0,0,114,224,
0,0,0,114,228,0,0,0,40,16,0,0,0,244,10,0,
0,0,115,121,115,95,109,111,100,117,108,101,244,11,0,0,
0,95,105,109,112,95,109,111,100,117,108,101,116,11,0,0,
0,109,111,100,117,108,101,95,116,121,112,101,114,71,0,0,
0,114,162,0,0,0,116,11,0,0,0,115,101,108,102,95,
109,111,100,117,108,101,116,12,0,0,0,98,117,105,108,116,
105,110,95,110,97,109,101,116,14,0,0,0,98,117,105,108,
116,105,110,95,109,111,100,117,108,101,116,10,0,0,0,111,
115,95,100,101,116,97,105,108,115,116,10,0,0,0,98,117,
105,108,116,105,110,95,111,115,114,21,0,0,0,114,25,0,
0,0,116,9,0,0,0,111,115,95,109,111,100,117,108,101,
116,13,0,0,0,116,104,114,101,97,100,95,109,111,100,117,
108,101,116,14,0,0,0,119,101,97,107,114,101,102,95,109,
111,100,117,108,101,116,13,0,0,0,119,105,110,114,101,103,
95,109,111,100,117,108,101,114,4,0,0,0,114,4,0,0,
0,114,5,0,0,0,244,6,0,0,0,95,115,101,116,117,
112,181,6,0,0,115,102,0,0,0,0,9,6,1,6,2,
12,1,9,2,6,2,12,1,28,1,15,1,24,1,15,1,
12,1,15,1,22,2,13,1,13,1,15,1,18,2,13,1,
20,2,33,1,19,2,31,1,10,1,15,1,13,1,4,2,
3,1,15,1,5,1,13,1,12,2,12,2,3,1,19,1,
13,2,11,1,15,2,12,1,15,1,19,2,16,1,16,1,
16,1,16,1,25,2,19,1,19,1,12,1,13,1,12,1,
114,90,1,0,0,99,2,0,0,0,0,0,0,0,3,0,
0,0,3,0,0,0,67,0,0,0,115,136,0,0,0,116,
0,0,124,0,0,124,1,0,131,2,0,1,116,1,0,131,
0,0,125,2,0,116,2,0,106,3,0,106,4,0,116,5,
0,106,6,0,124,2,0,140,0,0,103,1,0,131,1,0,
1,116,2,0,106,7,0,106,8,0,116,9,0,131,1,0,
1,116,2,0,106,7,0,106,8,0,116,10,0,131,1,0,
1,116,11,0,106,12,0,100,1,0,107,2,0,114,116,0,
116,2,0,106,7,0,106,8,0,116,13,0,131,1,0,1,
110,0,0,116,2,0,106,7,0,106,8,0,116,14,0,131,
1,0,1,100,2,0,83,40,3,0,0,0,117,50,0,0,
0,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,84,1,0,0,78,40,15,0,0,0,114,90,
1,0,0,114,234,0,0,0,114,7,0,0,0,114,32,1,
0,0,114,207,0,0,0,114,39,1,0,0,114,53,1,0,
0,114,59,1,0,0,114,166,0,0,0,114,214,0,0,0,
114,222,0,0,0,114,3,0,0,0,114,56,0,0,0,114,
224,0,0,0,114,27,1,0,0,40,3,0,0,0,114,88,
1,0,0,114,89,1,0,0,116,17,0,0,0,115,117,112,
112,111,114,116,101,100,95,108,111,97,100,101,114,115,114,4,
0,0,0,114,4,0,0,0,114,5,0,0,0,244,8,0,
0,0,95,105,110,115,116,97,108,108,1,7,0,0,115,16,
0,0,0,0,2,13,1,9,1,28,1,16,1,16,1,15,
1,19,1,114,91,1,0,0,40,3,0,0,0,117,3,0,
0,0,119,105,110,114,1,0,0,0,114,2,0,0,0,40,
81,0,0,0,114,58,0,0,0,114,10,0,0,0,114,11,
0,0,0,114,17,0,0,0,114,19,0,0,0,114,28,0,
0,0,114,38,0,0,0,114,43,0,0,0,114,44,0,0,
0,114,45,0,0,0,114,54,0,0,0,114,64,0,0,0,
114,153,0,0,0,244,8,0,0,0,95,95,99,111,100,101,
95,95,114,203,0,0,0,114,89,0,0,0,114,78,0,0,
0,114,85,0,0,0,114,65,0,0,0,114,66,0,0,0,
114,88,0,0,0,114,93,0,0,0,114,96,0,0,0,114,
99,0,0,0,114,15,0,0,0,114,196,0,0,0,114,14,
0,0,0,114,18,0,0,0,116,17,0,0,0,95,82,65,
87,95,77,65,71,73,67,95,78,85,77,66,69,82,114,110,
0,0,0,114,119,0,0,0,114,104,0,0,0,114,105,0,
0,0,114,117,0,0,0,114,120,0,0,0,114,128,0,0,
0,114,130,0,0,0,114,138,0,0,0,114,139,0,0,0,
114,147,0,0,0,114,156,0,0,0,114,163,0,0,0,114,
167,0,0,0,114,171,0,0,0,114,174,0,0,0,114,177,
0,0,0,114,181,0,0,0,114,184,0,0,0,114,191,0,
0,0,114,200,0,0,0,114,205,0,0,0,114,208,0,0,
0,114,213,0,0,0,114,214,0,0,0,114,222,0,0,0,
114,224,0,0,0,114,237,0,0,0,114,241,0,0,0,114,
0,1,0,0,114,2,1,0,0,114,7,1,0,0,114,11,
1,0,0,114,8,1,0,0,114,12,1,0,0,114,26,1,
0,0,114,27,1,0,0,114,39,1,0,0,114,54,1,0,
0,114,58,1,0,0,114,60,1,0,0,114,63,1,0,0,
114,64,1,0,0,114,67,1,0,0,114,68,1,0,0,114,
69,1,0,0,114,75,1,0,0,114,77,1,0,0,114,234,
0,0,0,114,81,1,0,0,114,90,1,0,0,114,91,1,
0,0,114,4,0,0,0,114,4,0,0,0,114,4,0,0,
0,114,5,0,0,0,244,8,0,0,0,60,109,111,100,117,
108,101,62,8,0,0,0,115,148,0,0,0,6,17,6,3,
12,12,12,5,12,5,12,6,12,12,12,10,12,6,12,7,
15,22,12,8,15,6,6,2,6,3,22,4,19,68,19,23,
12,19,12,20,12,111,22,1,18,2,6,2,9,2,9,1,
9,2,15,27,12,23,12,21,12,12,18,8,19,17,22,42,
18,9,12,15,12,11,12,13,12,11,12,18,12,11,12,11,
12,13,21,55,21,12,18,10,12,14,19,52,19,49,19,50,
19,41,22,110,19,29,25,43,25,20,6,3,19,40,19,55,
19,32,19,91,19,128,19,13,12,9,12,17,12,17,6,2,
12,46,12,13,18,24,12,31,12,15,12,11,24,36,12,76,
18,6,18,1,15,1,9,1,32,1,114,75,1,0,0,99,
1,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,
67,0,0,0,115,78,0,0,0,124,0,0,106,0,0,100,
1,0,131,1,0,125,1,0,124,1,0,100,2,0,107,8,
0,114,74,0,124,0,0,100,3,0,25,125,1,0,100,4,
0,124,0,0,107,7,0,114,74,0,124,1,0,106,1,0,
100,5,0,131,1,0,100,6,0,25,125,1,0,113,74,0,
110,0,0,124,1,0,83,40,7,0,0,0,117,167,0,0,
0,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,159,0,0,0,78,114,56,
0,0,0,114,160,0,0,0,114,101,0,0,0,114,67,0,
0,0,40,2,0,0,0,114,79,0,0,0,114,32,0,0,
0,40,2,0,0,0,244,7,0,0,0,103,108,111,98,97,
108,115,114,56,1,0,0,114,4,0,0,0,114,4,0,0,
0,114,5,0,0,0,244,17,0,0,0,95,99,97,108,99,
95,95,95,112,97,99,107,97,103,101,95,95,126,6,0,0,
115,12,0,0,0,0,7,15,1,12,1,10,1,12,1,25,
1,114,77,1,0,0,99,0,0,0,0,0,0,0,0,3,
0,0,0,3,0,0,0,67,0,0,0,115,55,0,0,0,
116,0,0,116,1,0,106,2,0,131,0,0,102,2,0,125,
0,0,116,3,0,116,4,0,102,2,0,125,1,0,116,5,
0,116,6,0,102,2,0,125,2,0,124,0,0,124,1,0,
124,2,0,103,3,0,83,40,1,0,0,0,117,111,0,0,
0,82,101,116,117,114,110,115,32,97,32,108,105,115,116,32,
111,102,32,102,105,108,101,45,98,97,115,101,100,32,109,111,
100,117,108,101,32,108,111,97,100,101,114,115,46,10,10,32,
32,32,32,69,97,99,104,32,105,116,101,109,32,105,115,32,
97,32,116,117,112,108,101,32,40,108,111,97,100,101,114,44,
32,115,117,102,102,105,120,101,115,44,32,97,108,108,111,119,
95,112,97,99,107,97,103,101,115,41,46,10,32,32,32,32,
40,7,0,0,0,114,8,1,0,0,114,94,0,0,0,244,
18,0,0,0,101,120,116,101,110,115,105,111,110,95,115,117,
102,102,105,120,101,115,114,2,1,0,0,114,119,0,0,0,
114,7,1,0,0,244,17,0,0,0,66,89,84,69,67,79,
68,69,95,83,85,70,70,73,88,69,83,40,3,0,0,0,
116,10,0,0,0,101,120,116,101,110,115,105,111,110,115,116,
6,0,0,0,115,111,117,114,99,101,116,8,0,0,0,98,
121,116,101,99,111,100,101,114,4,0,0,0,114,4,0,0,
0,114,5,0,0,0,114,234,0,0,0,141,6,0,0,115,
8,0,0,0,0,5,18,1,12,1,12,1,114,234,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,227,0,0,0,124,4,0,100,1,
0,107,2,0,114,27,0,116,0,0,124,0,0,131,1,0,
125,5,0,110,54,0,124,1,0,100,2,0,107,9,0,114,
45,0,124,1,0,110,3,0,105,0,0,125,6,0,116,1,
0,124,6,0,131,1,0,125,7,0,116,0,0,124,0,0,
124,7,0,124,4,0,131,3,0,125,5,0,124,3,0,115,
207,0,124,4,0,100,1,0,107,2,0,114,122,0,116,0,
0,124,0,0,106,2,0,100,3,0,131,1,0,100,1,0,
25,131,1,0,83,124,0,0,115,132,0,124,5,0,83,116,
3,0,124,0,0,131,1,0,116,3,0,124,0,0,106,2,
0,100,3,0,131,1,0,100,1,0,25,131,1,0,24,125,
8,0,116,4,0,106,5,0,124,5,0,106,6,0,100,2,
0,116,3,0,124,5,0,106,6,0,131,1,0,124,8,0,
24,133,2,0,25,25,83,110,16,0,116,7,0,124,5,0,
124,3,0,116,0,0,131,3,0,83,100,2,0,83,40,4,
0,0,0,117,214,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,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,67,
0,0,0,78,114,101,0,0,0,40,8,0,0,0,114,69,
1,0,0,114,77,1,0,0,114,106,0,0,0,114,31,0,
0,0,114,7,0,0,0,114,141,0,0,0,114,56,0,0,
0,114,75,1,0,0,40,9,0,0,0,114,71,0,0,0,
114,76,1,0,0,244,6,0,0,0,108,111,99,97,108,115,
114,74,1,0,0,114,57,1,0,0,114,162,0,0,0,116,
8,0,0,0,103,108,111,98,97,108,115,95,114,56,1,0,
0,116,7,0,0,0,99,117,116,95,111,102,102,114,4,0,
0,0,114,4,0,0,0,114,5,0,0,0,244,10,0,0,
0,95,95,105,109,112,111,114,116,95,95,152,6,0,0,115,
26,0,0,0,0,11,12,1,15,2,24,1,12,1,18,1,
6,3,12,1,23,1,6,1,4,4,35,3,40,2,114,81,
1,0,0,99,2,0,0,0,0,0,0,0,16,0,0,0,
13,0,0,0,67,0,0,0,115,237,2,0,0,124,1,0,
97,0,0,124,0,0,97,1,0,116,1,0,106,2,0,106,
3,0,114,33,0,116,4,0,97,5,0,110,6,0,116,6,
0,97,5,0,116,7,0,116,1,0,131,1,0,125,2,0,
120,128,0,116,1,0,106,8,0,106,9,0,131,0,0,68,
93,111,0,92,2,0,125,3,0,125,4,0,116,10,0,124,
4,0,124,2,0,131,2,0,114,67,0,116,11,0,124,4,
0,100,1,0,100,2,0,131,3,0,100,2,0,107,8,0,
114,178,0,124,3,0,116,1,0,106,12,0,107,6,0,114,
145,0,116,13,0,124,4,0,95,14,0,113,175,0,116,0,
0,106,15,0,124,3,0,131,1,0,114,175,0,116,16,0,
124,4,0,95,14,0,113,175,0,113,178,0,113,67,0,113,
67,0,87,116,1,0,106,8,0,116,17,0,25,125,5,0,
120,76,0,100,27,0,68,93,68,0,125,6,0,124,6,0,
116,1,0,106,8,0,107,7,0,114,241,0,116,13,0,106,
18,0,124,6,0,131,1,0,125,7,0,110,13,0,116,1,
0,106,8,0,124,6,0,25,125,7,0,116,19,0,124,5,
0,124,6,0,124,7,0,131,3,0,1,113,202,0,87,100,
7,0,100,8,0,103,1,0,102,2,0,100,9,0,100,10,
0,100,8,0,103,2,0,102,2,0,102,2,0,125,8,0,
120,149,0,124,8,0,68,93,129,0,92,2,0,125,9,0,
125,10,0,116,20,0,100,11,0,100,12,0,132,0,0,124,
10,0,68,131,1,0,131,1,0,115,101,1,116,21,0,130,
1,0,124,10,0,100,13,0,25,125,11,0,124,9,0,116,
1,0,106,8,0,107,6,0,114,143,1,116,1,0,106,8,
0,124,9,0,25,125,12,0,80,113,58,1,121,20,0,116,
13,0,106,18,0,124,9,0,131,1,0,125,12,0,80,87,
113,58,1,4,116,22,0,107,10,0,114,186,1,1,1,1,
119,58,1,89,113,58,1,88,113,58,1,87,116,22,0,100,
14,0,131,1,0,130,1,0,121,19,0,116,13,0,106,18,
0,100,15,0,131,1,0,125,13,0,87,110,24,0,4,116,
22,0,107,10,0,114,248,1,1,1,1,100,2,0,125,13,
0,89,110,1,0,88,116,13,0,106,18,0,100,16,0,131,
1,0,125,14,0,124,9,0,100,9,0,107,2,0,114,54,
2,116,13,0,106,18,0,100,17,0,131,1,0,125,15,0,
116,19,0,124,5,0,100,18,0,124,15,0,131,3,0,1,
110,0,0,116,19,0,124,5,0,100,19,0,124,12,0,131,
3,0,1,116,19,0,124,5,0,100,15,0,124,13,0,131,
3,0,1,116,19,0,124,5,0,100,16,0,124,14,0,131,
3,0,1,116,19,0,124,5,0,100,20,0,124,11,0,131,
3,0,1,116,19,0,124,5,0,100,21,0,100,22,0,106,
23,0,124,10,0,131,1,0,131,3,0,1,116,19,0,124,
5,0,100,23,0,116,24,0,131,0,0,131,3,0,1,116,
25,0,106,26,0,116,0,0,106,27,0,131,0,0,131,1,
0,1,124,9,0,100,9,0,107,2,0,114,233,2,116,28,
0,106,29,0,100,24,0,131,1,0,1,100,25,0,116,25,
0,107,6,0,114,233,2,100,26,0,116,30,0,95,31,0,
113,233,2,110,0,0,100,2,0,83,40,28,0,0,0,117,
250,0,0,0,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,172,
0,0,0,78,114,48,0,0,0,114,186,0,0,0,244,8,
0,0,0,98,117,105,108,116,105,110,115,114,201,0,0,0,
116,5,0,0,0,112,111,115,105,120,245,1,0,0,0,47,
244,2,0,0,0,110,116,245,1,0,0,0,92,99,1,0,
0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,0,
0,0,115,33,0,0,0,124,0,0,93,23,0,125,1,0,
116,0,0,124,1,0,131,1,0,100,0,0,107,2,0,86,
1,113,3,0,100,1,0,83,40,2,0,0,0,114,29,0,
0,0,78,40,1,0,0,0,114,31,0,0,0,40,2,0,
0,0,114,22,0,0,0,114,115,0,0,0,114,4,0,0,
0,114,4,0,0,0,114,5,0,0,0,114,144,0,0,0,
225,6,0,0,115,2,0,0,0,6,0,117,25,0,0,0,
95,115,101,116,117,112,46,60,108,111,99,97,108,115,62,46,
60,103,101,110,101,120,112,114,62,114,67,0,0,0,117,30,
0,0,0,105,109,112,111,114,116,108,105,98,32,114,101,113,
117,105,114,101,115,32,112,111,115,105,120,32,111,114,32,110,
116,114,68,0,0,0,114,92,0,0,0,116,6,0,0,0,
119,105,110,114,101,103,114,225,0,0,0,114,3,0,0,0,
114,25,0,0,0,114,21,0,0,0,114,30,0,0,0,114,
6,0,0,0,117,4,0,0,0,46,112,121,119,117,6,0,
0,0,95,100,46,112,121,100,84,40,4,0,0,0,117,3,
0,0,0,95,105,111,117,9,0,0,0,95,119,97,114,110,
105,110,103,115,117,8,0,0,0,98,117,105,108,116,105,110,
115,117,7,0,0,0,109,97,114,115,104,97,108,40,32,0,
0,0,114,94,0,0,0,114,7,0,0,0,114,102,0,0,
0,114,103,0,0,0,114,105,0,0,0,114,79,1,0,0,
114,104,0,0,0,114,153,0,0,0,114,141,0,0,0,244,
5,0,0,0,105,116,101,109,115,114,202,0,0,0,114,61,
0,0,0,114,178,0,0,0,114,214,0,0,0,114,172,0,
0,0,114,182,0,0,0,114,222,0,0,0,114,56,0,0,
0,114,218,0,0,0,114,60,0,0,0,244,3,0,0,0,
97,108,108,114,86,0,0,0,114,158,0,0,0,114,26,0,
0,0,114,11,0,0,0,114,11,1,0,0,114,207,0,0,
0,114,78,1,0,0,114,119,0,0,0,114,166,0,0,0,
114,224,0,0,0,114,228,0,0,0,40,16,0,0,0,244,
10,0,0,0,115,121,115,95,109,111,100,117,108,101,244,11,
0,0,0,95,105,109,112,95,109,111,100,117,108,101,116,11,
0,0,0,109,111,100,117,108,101,95,116,121,112,101,114,71,
0,0,0,114,162,0,0,0,116,11,0,0,0,115,101,108,
102,95,109,111,100,117,108,101,116,12,0,0,0,98,117,105,
108,116,105,110,95,110,97,109,101,116,14,0,0,0,98,117,
105,108,116,105,110,95,109,111,100,117,108,101,116,10,0,0,
0,111,115,95,100,101,116,97,105,108,115,116,10,0,0,0,
98,117,105,108,116,105,110,95,111,115,114,21,0,0,0,114,
25,0,0,0,116,9,0,0,0,111,115,95,109,111,100,117,
108,101,116,13,0,0,0,116,104,114,101,97,100,95,109,111,
100,117,108,101,116,14,0,0,0,119,101,97,107,114,101,102,
95,109,111,100,117,108,101,116,13,0,0,0,119,105,110,114,
101,103,95,109,111,100,117,108,101,114,4,0,0,0,114,4,
0,0,0,114,5,0,0,0,244,6,0,0,0,95,115,101,
116,117,112,188,6,0,0,115,102,0,0,0,0,9,6,1,
6,2,12,1,9,2,6,2,12,1,28,1,15,1,24,1,
15,1,12,1,15,1,22,2,13,1,13,1,15,1,18,2,
13,1,20,2,33,1,19,2,31,1,10,1,15,1,13,1,
4,2,3,1,15,1,5,1,13,1,12,2,12,2,3,1,
19,1,13,2,11,1,15,2,12,1,15,1,19,2,16,1,
16,1,16,1,16,1,25,2,19,1,19,1,12,1,13,1,
12,1,114,90,1,0,0,99,2,0,0,0,0,0,0,0,
3,0,0,0,3,0,0,0,67,0,0,0,115,136,0,0,
0,116,0,0,124,0,0,124,1,0,131,2,0,1,116,1,
0,131,0,0,125,2,0,116,2,0,106,3,0,106,4,0,
116,5,0,106,6,0,124,2,0,140,0,0,103,1,0,131,
1,0,1,116,2,0,106,7,0,106,8,0,116,9,0,131,
1,0,1,116,2,0,106,7,0,106,8,0,116,10,0,131,
1,0,1,116,11,0,106,12,0,100,1,0,107,2,0,114,
116,0,116,2,0,106,7,0,106,8,0,116,13,0,131,1,
0,1,110,0,0,116,2,0,106,7,0,106,8,0,116,14,
0,131,1,0,1,100,2,0,83,40,3,0,0,0,117,50,
0,0,0,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,84,1,0,0,78,40,15,0,0,0,
114,90,1,0,0,114,234,0,0,0,114,7,0,0,0,114,
32,1,0,0,114,207,0,0,0,114,39,1,0,0,114,53,
1,0,0,114,59,1,0,0,114,166,0,0,0,114,214,0,
0,0,114,222,0,0,0,114,3,0,0,0,114,56,0,0,
0,114,224,0,0,0,114,27,1,0,0,40,3,0,0,0,
114,88,1,0,0,114,89,1,0,0,116,17,0,0,0,115,
117,112,112,111,114,116,101,100,95,108,111,97,100,101,114,115,
114,4,0,0,0,114,4,0,0,0,114,5,0,0,0,244,
8,0,0,0,95,105,110,115,116,97,108,108,8,7,0,0,
115,16,0,0,0,0,2,13,1,9,1,28,1,16,1,16,
1,15,1,19,1,114,91,1,0,0,40,3,0,0,0,117,
3,0,0,0,119,105,110,114,1,0,0,0,114,2,0,0,
0,40,81,0,0,0,114,58,0,0,0,114,10,0,0,0,
114,11,0,0,0,114,17,0,0,0,114,19,0,0,0,114,
28,0,0,0,114,38,0,0,0,114,43,0,0,0,114,44,
0,0,0,114,45,0,0,0,114,54,0,0,0,114,64,0,
0,0,114,153,0,0,0,244,8,0,0,0,95,95,99,111,
100,101,95,95,114,203,0,0,0,114,89,0,0,0,114,78,
0,0,0,114,85,0,0,0,114,65,0,0,0,114,66,0,
0,0,114,88,0,0,0,114,93,0,0,0,114,96,0,0,
0,114,99,0,0,0,114,15,0,0,0,114,196,0,0,0,
114,14,0,0,0,114,18,0,0,0,116,17,0,0,0,95,
82,65,87,95,77,65,71,73,67,95,78,85,77,66,69,82,
114,110,0,0,0,114,119,0,0,0,114,104,0,0,0,114,
105,0,0,0,114,117,0,0,0,114,120,0,0,0,114,128,
0,0,0,114,130,0,0,0,114,138,0,0,0,114,139,0,
0,0,114,147,0,0,0,114,156,0,0,0,114,163,0,0,
0,114,167,0,0,0,114,171,0,0,0,114,174,0,0,0,
114,177,0,0,0,114,181,0,0,0,114,184,0,0,0,114,
191,0,0,0,114,200,0,0,0,114,205,0,0,0,114,208,
0,0,0,114,213,0,0,0,114,214,0,0,0,114,222,0,
0,0,114,224,0,0,0,114,237,0,0,0,114,241,0,0,
0,114,0,1,0,0,114,2,1,0,0,114,7,1,0,0,
114,11,1,0,0,114,8,1,0,0,114,12,1,0,0,114,
26,1,0,0,114,27,1,0,0,114,39,1,0,0,114,54,
1,0,0,114,58,1,0,0,114,60,1,0,0,114,63,1,
0,0,114,64,1,0,0,114,67,1,0,0,114,68,1,0,
0,114,69,1,0,0,114,75,1,0,0,114,77,1,0,0,
114,234,0,0,0,114,81,1,0,0,114,90,1,0,0,114,
91,1,0,0,114,4,0,0,0,114,4,0,0,0,114,4,
0,0,0,114,5,0,0,0,244,8,0,0,0,60,109,111,
100,117,108,101,62,8,0,0,0,115,148,0,0,0,6,17,
6,3,12,12,12,5,12,5,12,6,12,12,12,10,12,6,
12,7,15,22,12,8,15,6,6,2,6,3,22,4,19,68,
19,23,12,19,12,20,12,111,22,1,18,2,6,2,9,2,
9,1,9,2,15,27,12,23,12,21,12,12,18,8,19,17,
22,42,18,9,12,15,12,11,12,13,12,11,12,18,12,11,
12,11,12,13,21,55,21,12,18,10,12,14,19,52,19,49,
19,50,19,41,22,110,19,29,25,43,25,20,6,3,19,40,
19,55,19,32,19,91,19,128,19,13,12,9,12,17,12,17,
6,2,12,50,12,13,18,24,12,34,12,15,12,11,24,36,
12,76,
};