summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/importlib/_adapters.py82
-rw-r--r--Lib/importlib/_bootstrap_external.py4
-rw-r--r--Lib/importlib/_common.py15
-rw-r--r--Lib/importlib/abc.py65
-rw-r--r--Lib/importlib/readers.py82
-rw-r--r--Lib/importlib/resources.py110
-rw-r--r--Lib/test/test_importlib/namespacedata01/binary.filebin0 -> 4 bytes
-rw-r--r--Lib/test/test_importlib/namespacedata01/utf-16.filebin0 -> 44 bytes
-rw-r--r--Lib/test/test_importlib/namespacedata01/utf-8.file1
-rw-r--r--Lib/test/test_importlib/test_abc.py4
-rw-r--r--Lib/test/test_importlib/test_files.py2
-rw-r--r--Lib/test/test_importlib/test_open.py27
-rw-r--r--Lib/test/test_importlib/test_path.py12
-rw-r--r--Lib/test/test_importlib/test_read.py15
-rw-r--r--Lib/test/test_importlib/test_reader.py123
-rw-r--r--Lib/test/test_importlib/test_resource.py169
-rwxr-xr-xLib/test/test_importlib/update-zips.py53
-rw-r--r--Lib/test/test_importlib/zipdata01/ziptestdata.zipbin1131 -> 876 bytes
-rw-r--r--Lib/test/test_importlib/zipdata02/ziptestdata.zipbin698 -> 698 bytes
-rw-r--r--Misc/NEWS.d/next/Library/2021-02-28-04-21-35.bpo-42129.V0KifQ.rst3
-rw-r--r--Python/importlib_external.h1472
21 files changed, 1319 insertions, 920 deletions
diff --git a/Lib/importlib/_adapters.py b/Lib/importlib/_adapters.py
new file mode 100644
index 0000000..eedde49
--- /dev/null
+++ b/Lib/importlib/_adapters.py
@@ -0,0 +1,82 @@
+from contextlib import suppress
+
+from . import abc
+
+
+class SpecLoaderAdapter:
+ """
+ Adapt a package spec to adapt the underlying loader.
+ """
+
+ def __init__(self, spec, adapter=lambda spec: spec.loader):
+ self.spec = spec
+ self.loader = adapter(spec)
+
+ def __getattr__(self, name):
+ return getattr(self.spec, name)
+
+
+class TraversableResourcesLoader:
+ """
+ Adapt a loader to provide TraversableResources.
+ """
+
+ def __init__(self, spec):
+ self.spec = spec
+
+ def get_resource_reader(self, name):
+ return DegenerateFiles(self.spec)._native()
+
+
+class DegenerateFiles:
+ """
+ Adapter for an existing or non-existant resource reader
+ to provide a degenerate .files().
+ """
+
+ class Path(abc.Traversable):
+ def iterdir(self):
+ return iter(())
+
+ def is_dir(self):
+ return False
+
+ is_file = exists = is_dir # type: ignore
+
+ def joinpath(self, other):
+ return DegenerateFiles.Path()
+
+ def name(self):
+ return ''
+
+ def open(self):
+ raise ValueError()
+
+ def __init__(self, spec):
+ self.spec = spec
+
+ @property
+ def _reader(self):
+ with suppress(AttributeError):
+ return self.spec.loader.get_resource_reader(self.spec.name)
+
+ def _native(self):
+ """
+ Return the native reader if it supports files().
+ """
+ reader = self._reader
+ return reader if hasattr(reader, 'files') else self
+
+ def __getattr__(self, attr):
+ return getattr(self._reader, attr)
+
+ def files(self):
+ return DegenerateFiles.Path()
+
+
+def wrap_spec(package):
+ """
+ Construct a package spec with traversable compatibility
+ on the spec/loader/reader.
+ """
+ return SpecLoaderAdapter(package.__spec__, TraversableResourcesLoader)
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 3396d5d..2dab45d 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -1259,6 +1259,10 @@ class _NamespaceLoader:
# Warning implemented in _load_module_shim().
return _bootstrap._load_module_shim(self, fullname)
+ def get_resource_reader(self, module):
+ from importlib.readers import NamespaceReader
+ return NamespaceReader(self._path)
+
# Finders #####################################################################
diff --git a/Lib/importlib/_common.py b/Lib/importlib/_common.py
index 71ce6af..0338304 100644
--- a/Lib/importlib/_common.py
+++ b/Lib/importlib/_common.py
@@ -9,6 +9,8 @@ import importlib
from typing import Union, Any, Optional
from .abc import ResourceReader
+from ._adapters import wrap_spec
+
Package = Union[types.ModuleType, str]
@@ -43,18 +45,15 @@ def get_resource_reader(package):
# zipimport.zipimporter does not support weak references, resulting in a
# TypeError. That seems terrible.
spec = package.__spec__
- reader = getattr(spec.loader, 'get_resource_reader', None)
+ reader = getattr(spec.loader, 'get_resource_reader', None) # type: ignore
if reader is None:
return None
- return reader(spec.name)
+ return reader(spec.name) # type: ignore
def resolve(cand):
# type: (Package) -> types.ModuleType
- return (
- cand if isinstance(cand, types.ModuleType)
- else importlib.import_module(cand)
- )
+ return cand if isinstance(cand, types.ModuleType) else importlib.import_module(cand)
def get_package(package):
@@ -64,7 +63,7 @@ def get_package(package):
Raise an exception if the resolved module is not a package.
"""
resolved = resolve(package)
- if resolved.__spec__.submodule_search_locations is None:
+ if wrap_spec(resolved).submodule_search_locations is None:
raise TypeError('{!r} is not a package'.format(package))
return resolved
@@ -74,7 +73,7 @@ def from_package(package):
Return a Traversable object for the given package.
"""
- spec = package.__spec__
+ spec = wrap_spec(package)
reader = spec.loader.get_resource_reader(spec.name)
return reader.files()
diff --git a/Lib/importlib/abc.py b/Lib/importlib/abc.py
index 55e7088..4be51e2 100644
--- a/Lib/importlib/abc.py
+++ b/Lib/importlib/abc.py
@@ -14,6 +14,7 @@ except ImportError:
from ._abc import Loader
import abc
import warnings
+from typing import BinaryIO, Iterable, Text
from typing import Protocol, runtime_checkable
@@ -297,49 +298,45 @@ _register(SourceLoader, machinery.SourceFileLoader)
class ResourceReader(metaclass=abc.ABCMeta):
-
- """Abstract base class to provide resource-reading support.
-
- Loaders that support resource reading are expected to implement
- the ``get_resource_reader(fullname)`` method and have it either return None
- or an object compatible with this ABC.
- """
+ """Abstract base class for loaders to provide resource reading support."""
@abc.abstractmethod
- def open_resource(self, resource):
+ def open_resource(self, resource: Text) -> BinaryIO:
"""Return an opened, file-like object for binary reading.
- The 'resource' argument is expected to represent only a file name
- and thus not contain any subdirectory components.
-
+ The 'resource' argument is expected to represent only a file name.
If the resource cannot be found, FileNotFoundError is raised.
"""
+ # This deliberately raises FileNotFoundError instead of
+ # NotImplementedError so that if this method is accidentally called,
+ # it'll still do the right thing.
raise FileNotFoundError
@abc.abstractmethod
- def resource_path(self, resource):
+ def resource_path(self, resource: Text) -> Text:
"""Return the file system path to the specified resource.
- The 'resource' argument is expected to represent only a file name
- and thus not contain any subdirectory components.
-
+ The 'resource' argument is expected to represent only a file name.
If the resource does not exist on the file system, raise
FileNotFoundError.
"""
+ # This deliberately raises FileNotFoundError instead of
+ # NotImplementedError so that if this method is accidentally called,
+ # it'll still do the right thing.
raise FileNotFoundError
@abc.abstractmethod
- def is_resource(self, name):
- """Return True if the named 'name' is consider a resource."""
+ def is_resource(self, path: Text) -> bool:
+ """Return True if the named 'path' is a resource.
+
+ Files are resources, directories are not.
+ """
raise FileNotFoundError
@abc.abstractmethod
- def contents(self):
- """Return an iterable of strings over the contents of the package."""
- return []
-
-
-_register(ResourceReader, machinery.SourceFileLoader)
+ def contents(self) -> Iterable[str]:
+ """Return an iterable of entries in `package`."""
+ raise FileNotFoundError
@runtime_checkable
@@ -355,26 +352,28 @@ class Traversable(Protocol):
Yield Traversable objects in self
"""
- @abc.abstractmethod
def read_bytes(self):
"""
Read contents of self as bytes
"""
+ with self.open('rb') as strm:
+ return strm.read()
- @abc.abstractmethod
def read_text(self, encoding=None):
"""
- Read contents of self as bytes
+ Read contents of self as text
"""
+ with self.open(encoding=encoding) as strm:
+ return strm.read()
@abc.abstractmethod
- def is_dir(self):
+ def is_dir(self) -> bool:
"""
Return True if self is a dir
"""
@abc.abstractmethod
- def is_file(self):
+ def is_file(self) -> bool:
"""
Return True if self is a file
"""
@@ -385,11 +384,11 @@ class Traversable(Protocol):
Return Traversable child in self
"""
- @abc.abstractmethod
def __truediv__(self, child):
"""
Return Traversable child in self
"""
+ return self.joinpath(child)
@abc.abstractmethod
def open(self, mode='r', *args, **kwargs):
@@ -402,14 +401,18 @@ class Traversable(Protocol):
"""
@abc.abstractproperty
- def name(self):
- # type: () -> str
+ def name(self) -> str:
"""
The base name of this object without any parent references.
"""
class TraversableResources(ResourceReader):
+ """
+ The required interface for providing traversable
+ resources.
+ """
+
@abc.abstractmethod
def files(self):
"""Return a Traversable object for the loaded package."""
diff --git a/Lib/importlib/readers.py b/Lib/importlib/readers.py
index 74a63e4..535c828 100644
--- a/Lib/importlib/readers.py
+++ b/Lib/importlib/readers.py
@@ -1,8 +1,13 @@
+import collections
import zipfile
import pathlib
from . import abc
+def remove_duplicates(items):
+ return iter(collections.OrderedDict.fromkeys(items))
+
+
class FileReader(abc.TraversableResources):
def __init__(self, loader):
self.path = pathlib.Path(loader.path).parent
@@ -39,3 +44,80 @@ class ZipReader(abc.TraversableResources):
def files(self):
return zipfile.Path(self.archive, self.prefix)
+
+
+class MultiplexedPath(abc.Traversable):
+ """
+ Given a series of Traversable objects, implement a merged
+ version of the interface across all objects. Useful for
+ namespace packages which may be multihomed at a single
+ name.
+ """
+
+ def __init__(self, *paths):
+ self._paths = list(map(pathlib.Path, remove_duplicates(paths)))
+ if not self._paths:
+ message = 'MultiplexedPath must contain at least one path'
+ raise FileNotFoundError(message)
+ if not all(path.is_dir() for path in self._paths):
+ raise NotADirectoryError('MultiplexedPath only supports directories')
+
+ def iterdir(self):
+ visited = []
+ for path in self._paths:
+ for file in path.iterdir():
+ if file.name in visited:
+ continue
+ visited.append(file.name)
+ yield file
+
+ def read_bytes(self):
+ raise FileNotFoundError(f'{self} is not a file')
+
+ def read_text(self, *args, **kwargs):
+ raise FileNotFoundError(f'{self} is not a file')
+
+ def is_dir(self):
+ return True
+
+ def is_file(self):
+ return False
+
+ def joinpath(self, child):
+ # first try to find child in current paths
+ for file in self.iterdir():
+ if file.name == child:
+ return file
+ # if it does not exist, construct it with the first path
+ return self._paths[0] / child
+
+ __truediv__ = joinpath
+
+ def open(self, *args, **kwargs):
+ raise FileNotFoundError('{} is not a file'.format(self))
+
+ def name(self):
+ return self._paths[0].name
+
+ def __repr__(self):
+ return 'MultiplexedPath({})'.format(
+ ', '.join("'{}'".format(path) for path in self._paths)
+ )
+
+
+class NamespaceReader(abc.TraversableResources):
+ def __init__(self, namespace_path):
+ if 'NamespacePath' not in str(namespace_path):
+ raise ValueError('Invalid path')
+ self.path = MultiplexedPath(*list(namespace_path))
+
+ def resource_path(self, resource):
+ """
+ Return the file system path to prevent
+ `resources.path()` from creating a temporary
+ copy.
+ """
+ return str(self.path.joinpath(resource))
+
+ def files(self):
+ return self.path
diff --git a/Lib/importlib/resources.py b/Lib/importlib/resources.py
index 4169171..db0e0c0 100644
--- a/Lib/importlib/resources.py
+++ b/Lib/importlib/resources.py
@@ -3,8 +3,10 @@ import io
from . import _common
from ._common import as_file, files
+from .abc import ResourceReader
from contextlib import suppress
from importlib.abc import ResourceLoader
+from importlib.machinery import ModuleSpec
from io import BytesIO, TextIOWrapper
from pathlib import Path
from types import ModuleType
@@ -18,6 +20,7 @@ from functools import singledispatch
__all__ = [
'Package',
'Resource',
+ 'ResourceReader',
'as_file',
'contents',
'files',
@@ -27,7 +30,7 @@ __all__ = [
'path',
'read_binary',
'read_text',
- ]
+]
Package = Union[str, ModuleType]
@@ -41,36 +44,45 @@ def open_binary(package: Package, resource: Resource) -> BinaryIO:
reader = _common.get_resource_reader(package)
if reader is not None:
return reader.open_resource(resource)
- absolute_package_path = os.path.abspath(
- package.__spec__.origin or 'non-existent file')
- package_path = os.path.dirname(absolute_package_path)
- full_path = os.path.join(package_path, resource)
- try:
- return open(full_path, mode='rb')
- except OSError:
- # Just assume the loader is a resource loader; all the relevant
- # importlib.machinery loaders are and an AttributeError for
- # get_data() will make it clear what is needed from the loader.
- loader = cast(ResourceLoader, package.__spec__.loader)
- data = None
- if hasattr(package.__spec__.loader, 'get_data'):
- with suppress(OSError):
- data = loader.get_data(full_path)
- if data is None:
- package_name = package.__spec__.name
- message = '{!r} resource not found in {!r}'.format(
- resource, package_name)
- raise FileNotFoundError(message)
- return BytesIO(data)
-
-
-def open_text(package: Package,
- resource: Resource,
- encoding: str = 'utf-8',
- errors: str = 'strict') -> TextIO:
+ spec = cast(ModuleSpec, package.__spec__)
+ # Using pathlib doesn't work well here due to the lack of 'strict'
+ # argument for pathlib.Path.resolve() prior to Python 3.6.
+ if spec.submodule_search_locations is not None:
+ paths = spec.submodule_search_locations
+ elif spec.origin is not None:
+ paths = [os.path.dirname(os.path.abspath(spec.origin))]
+
+ for package_path in paths:
+ full_path = os.path.join(package_path, resource)
+ try:
+ return open(full_path, mode='rb')
+ except OSError:
+ # Just assume the loader is a resource loader; all the relevant
+ # importlib.machinery loaders are and an AttributeError for
+ # get_data() will make it clear what is needed from the loader.
+ loader = cast(ResourceLoader, spec.loader)
+ data = None
+ if hasattr(spec.loader, 'get_data'):
+ with suppress(OSError):
+ data = loader.get_data(full_path)
+ if data is not None:
+ return BytesIO(data)
+
+ raise FileNotFoundError(
+ '{!r} resource not found in {!r}'.format(resource, spec.name)
+ )
+
+
+def open_text(
+ package: Package,
+ resource: Resource,
+ encoding: str = 'utf-8',
+ errors: str = 'strict',
+) -> TextIO:
"""Return a file-like object opened for text reading of the resource."""
return TextIOWrapper(
- open_binary(package, resource), encoding=encoding, errors=errors)
+ open_binary(package, resource), encoding=encoding, errors=errors
+ )
def read_binary(package: Package, resource: Resource) -> bytes:
@@ -79,10 +91,12 @@ def read_binary(package: Package, resource: Resource) -> bytes:
return fp.read()
-def read_text(package: Package,
- resource: Resource,
- encoding: str = 'utf-8',
- errors: str = 'strict') -> str:
+def read_text(
+ package: Package,
+ resource: Resource,
+ encoding: str = 'utf-8',
+ errors: str = 'strict',
+) -> str:
"""Return the decoded string of the resource.
The decoding-related arguments have the same semantics as those of
@@ -93,8 +107,9 @@ def read_text(package: Package,
def path(
- package: Package, resource: Resource,
- ) -> 'ContextManager[Path]':
+ package: Package,
+ resource: Resource,
+) -> 'ContextManager[Path]':
"""A context manager providing a file path object to the resource.
If the resource does not already exist on its own on the file system,
@@ -106,15 +121,17 @@ def path(
reader = _common.get_resource_reader(_common.get_package(package))
return (
_path_from_reader(reader, _common.normalize_path(resource))
- if reader else
- _common.as_file(
- _common.files(package).joinpath(_common.normalize_path(resource)))
+ if reader
+ else _common.as_file(
+ _common.files(package).joinpath(_common.normalize_path(resource))
)
+ )
def _path_from_reader(reader, resource):
- return _path_from_resource_path(reader, resource) or \
- _path_from_open_resource(reader, resource)
+ return _path_from_resource_path(reader, resource) or _path_from_open_resource(
+ reader, resource
+ )
def _path_from_resource_path(reader, resource):
@@ -154,15 +171,10 @@ def contents(package: Package) -> Iterable[str]:
reader = _common.get_resource_reader(package)
if reader is not None:
return _ensure_sequence(reader.contents())
- # Is the package a namespace package? By definition, namespace packages
- # cannot have resources.
- namespace = (
- package.__spec__.origin is None or
- package.__spec__.origin == 'namespace'
- )
- if namespace or not package.__spec__.has_location:
- return ()
- return list(item.name for item in _common.from_package(package).iterdir())
+ transversable = _common.from_package(package)
+ if transversable.is_dir():
+ return list(item.name for item in transversable.iterdir())
+ return []
@singledispatch
diff --git a/Lib/test/test_importlib/namespacedata01/binary.file b/Lib/test/test_importlib/namespacedata01/binary.file
new file mode 100644
index 0000000..eaf36c1
--- /dev/null
+++ b/Lib/test/test_importlib/namespacedata01/binary.file
Binary files differ
diff --git a/Lib/test/test_importlib/namespacedata01/utf-16.file b/Lib/test/test_importlib/namespacedata01/utf-16.file
new file mode 100644
index 0000000..2cb7722
--- /dev/null
+++ b/Lib/test/test_importlib/namespacedata01/utf-16.file
Binary files differ
diff --git a/Lib/test/test_importlib/namespacedata01/utf-8.file b/Lib/test/test_importlib/namespacedata01/utf-8.file
new file mode 100644
index 0000000..1c0132a
--- /dev/null
+++ b/Lib/test/test_importlib/namespacedata01/utf-8.file
@@ -0,0 +1 @@
+Hello, UTF-8 world!
diff --git a/Lib/test/test_importlib/test_abc.py b/Lib/test/test_importlib/test_abc.py
index d8b9fc8..d1c89c1 100644
--- a/Lib/test/test_importlib/test_abc.py
+++ b/Lib/test/test_importlib/test_abc.py
@@ -338,7 +338,9 @@ class ResourceReaderDefaultsTests(ABCTestHarness):
self.ins.is_resource('dummy_file')
def test_contents(self):
- self.assertEqual([], list(self.ins.contents()))
+ with self.assertRaises(FileNotFoundError):
+ self.ins.contents()
+
(Frozen_RRDefaultTests,
Source_RRDefaultsTests
diff --git a/Lib/test/test_importlib/test_files.py b/Lib/test/test_importlib/test_files.py
index fa7af82..1e7a1f3 100644
--- a/Lib/test/test_importlib/test_files.py
+++ b/Lib/test/test_importlib/test_files.py
@@ -21,7 +21,7 @@ class FilesTests:
@unittest.skipUnless(
hasattr(typing, 'runtime_checkable'),
"Only suitable when typing supports runtime_checkable",
- )
+ )
def test_traversable(self):
assert isinstance(resources.files(self.data), Traversable)
diff --git a/Lib/test/test_importlib/test_open.py b/Lib/test/test_importlib/test_open.py
index fd6e84b..b75675f 100644
--- a/Lib/test/test_importlib/test_open.py
+++ b/Lib/test/test_importlib/test_open.py
@@ -29,34 +29,32 @@ class OpenTests:
self.assertEqual(result, 'Hello, UTF-8 world!\n')
def test_open_text_given_encoding(self):
- with resources.open_text(
- self.data, 'utf-16.file', 'utf-16', 'strict') as fp:
+ with resources.open_text(self.data, 'utf-16.file', 'utf-16', 'strict') as fp:
result = fp.read()
self.assertEqual(result, 'Hello, UTF-16 world!\n')
def test_open_text_with_errors(self):
# Raises UnicodeError without the 'errors' argument.
- with resources.open_text(
- self.data, 'utf-16.file', 'utf-8', 'strict') as fp:
+ with resources.open_text(self.data, 'utf-16.file', 'utf-8', 'strict') as fp:
self.assertRaises(UnicodeError, fp.read)
- with resources.open_text(
- self.data, 'utf-16.file', 'utf-8', 'ignore') as fp:
+ with resources.open_text(self.data, 'utf-16.file', 'utf-8', 'ignore') as fp:
result = fp.read()
self.assertEqual(
result,
'H\x00e\x00l\x00l\x00o\x00,\x00 '
'\x00U\x00T\x00F\x00-\x001\x006\x00 '
- '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00')
+ '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00',
+ )
def test_open_binary_FileNotFoundError(self):
self.assertRaises(
- FileNotFoundError,
- resources.open_binary, self.data, 'does-not-exist')
+ FileNotFoundError, resources.open_binary, self.data, 'does-not-exist'
+ )
def test_open_text_FileNotFoundError(self):
self.assertRaises(
- FileNotFoundError,
- resources.open_text, self.data, 'does-not-exist')
+ FileNotFoundError, resources.open_text, self.data, 'does-not-exist'
+ )
class OpenDiskTests(OpenTests, unittest.TestCase):
@@ -64,6 +62,13 @@ class OpenDiskTests(OpenTests, unittest.TestCase):
self.data = data01
+class OpenDiskNamespaceTests(OpenTests, unittest.TestCase):
+ def setUp(self):
+ from . import namespacedata01
+
+ self.data = namespacedata01
+
+
class OpenZipTests(OpenTests, util.ZipSetup, unittest.TestCase):
pass
diff --git a/Lib/test/test_importlib/test_path.py b/Lib/test/test_importlib/test_path.py
index abf8086..2110770 100644
--- a/Lib/test/test_importlib/test_path.py
+++ b/Lib/test/test_importlib/test_path.py
@@ -1,3 +1,4 @@
+import io
import unittest
from importlib import resources
@@ -37,6 +38,17 @@ class PathDiskTests(PathTests, unittest.TestCase):
assert 'data' in str(path)
+class PathMemoryTests(PathTests, unittest.TestCase):
+ def setUp(self):
+ file = io.BytesIO(b'Hello, UTF-8 world!\n')
+ self.addCleanup(file.close)
+ self.data = util.create_package(
+ file=file, path=FileNotFoundError("package exists only in memory")
+ )
+ self.data.__spec__.origin = None
+ self.data.__spec__.has_location = False
+
+
class PathZipTests(PathTests, util.ZipSetup, unittest.TestCase):
def test_remove_in_context_manager(self):
# It is not an error if the file that was temporarily stashed on the
diff --git a/Lib/test/test_importlib/test_read.py b/Lib/test/test_importlib/test_read.py
index ff78d0b..f6ec13a 100644
--- a/Lib/test/test_importlib/test_read.py
+++ b/Lib/test/test_importlib/test_read.py
@@ -25,20 +25,19 @@ class ReadTests:
self.assertEqual(result, 'Hello, UTF-8 world!\n')
def test_read_text_given_encoding(self):
- result = resources.read_text(
- self.data, 'utf-16.file', encoding='utf-16')
+ result = resources.read_text(self.data, 'utf-16.file', encoding='utf-16')
self.assertEqual(result, 'Hello, UTF-16 world!\n')
def test_read_text_with_errors(self):
# Raises UnicodeError without the 'errors' argument.
- self.assertRaises(
- UnicodeError, resources.read_text, self.data, 'utf-16.file')
+ self.assertRaises(UnicodeError, resources.read_text, self.data, 'utf-16.file')
result = resources.read_text(self.data, 'utf-16.file', errors='ignore')
self.assertEqual(
result,
'H\x00e\x00l\x00l\x00o\x00,\x00 '
'\x00U\x00T\x00F\x00-\x001\x006\x00 '
- '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00')
+ '\x00w\x00o\x00r\x00l\x00d\x00!\x00\n\x00',
+ )
class ReadDiskTests(ReadTests, unittest.TestCase):
@@ -48,13 +47,11 @@ class ReadDiskTests(ReadTests, unittest.TestCase):
class ReadZipTests(ReadTests, util.ZipSetup, unittest.TestCase):
def test_read_submodule_resource(self):
submodule = import_module('ziptestdata.subdirectory')
- result = resources.read_binary(
- submodule, 'binary.file')
+ result = resources.read_binary(submodule, 'binary.file')
self.assertEqual(result, b'\0\1\2\3')
def test_read_submodule_resource_by_name(self):
- result = resources.read_binary(
- 'ziptestdata.subdirectory', 'binary.file')
+ result = resources.read_binary('ziptestdata.subdirectory', 'binary.file')
self.assertEqual(result, b'\0\1\2\3')
diff --git a/Lib/test/test_importlib/test_reader.py b/Lib/test/test_importlib/test_reader.py
new file mode 100644
index 0000000..905d4fc
--- /dev/null
+++ b/Lib/test/test_importlib/test_reader.py
@@ -0,0 +1,123 @@
+import os.path
+import sys
+import pathlib
+import unittest
+
+from importlib import import_module
+from importlib.readers import MultiplexedPath, NamespaceReader
+
+
+class MultiplexedPathTest(unittest.TestCase):
+ @classmethod
+ def setUpClass(cls):
+ path = pathlib.Path(__file__).parent / 'namespacedata01'
+ cls.folder = str(path)
+
+ def test_init_no_paths(self):
+ with self.assertRaises(FileNotFoundError):
+ MultiplexedPath()
+
+ def test_init_file(self):
+ with self.assertRaises(NotADirectoryError):
+ MultiplexedPath(os.path.join(self.folder, 'binary.file'))
+
+ def test_iterdir(self):
+ contents = {path.name for path in MultiplexedPath(self.folder).iterdir()}
+ try:
+ contents.remove('__pycache__')
+ except (KeyError, ValueError):
+ pass
+ self.assertEqual(contents, {'binary.file', 'utf-16.file', 'utf-8.file'})
+
+ def test_iterdir_duplicate(self):
+ data01 = os.path.abspath(os.path.join(__file__, '..', 'data01'))
+ contents = {
+ path.name for path in MultiplexedPath(self.folder, data01).iterdir()
+ }
+ for remove in ('__pycache__', '__init__.pyc'):
+ try:
+ contents.remove(remove)
+ except (KeyError, ValueError):
+ pass
+ self.assertEqual(
+ contents,
+ {'__init__.py', 'binary.file', 'subdirectory', 'utf-16.file', 'utf-8.file'},
+ )
+
+ def test_is_dir(self):
+ self.assertEqual(MultiplexedPath(self.folder).is_dir(), True)
+
+ def test_is_file(self):
+ self.assertEqual(MultiplexedPath(self.folder).is_file(), False)
+
+ def test_open_file(self):
+ path = MultiplexedPath(self.folder)
+ with self.assertRaises(FileNotFoundError):
+ path.read_bytes()
+ with self.assertRaises(FileNotFoundError):
+ path.read_text()
+ with self.assertRaises(FileNotFoundError):
+ path.open()
+
+ def test_join_path(self):
+ print('test_join_path')
+ prefix = os.path.abspath(os.path.join(__file__, '..'))
+ data01 = os.path.join(prefix, 'data01')
+ path = MultiplexedPath(self.folder, data01)
+ self.assertEqual(
+ str(path.joinpath('binary.file'))[len(prefix) + 1 :],
+ os.path.join('namespacedata01', 'binary.file'),
+ )
+ self.assertEqual(
+ str(path.joinpath('subdirectory'))[len(prefix) + 1 :],
+ os.path.join('data01', 'subdirectory'),
+ )
+ self.assertEqual(
+ str(path.joinpath('imaginary'))[len(prefix) + 1 :],
+ os.path.join('namespacedata01', 'imaginary'),
+ )
+
+ def test_repr(self):
+ self.assertEqual(
+ repr(MultiplexedPath(self.folder)),
+ "MultiplexedPath('{}')".format(self.folder),
+ )
+
+
+class NamespaceReaderTest(unittest.TestCase):
+ site_dir = str(pathlib.Path(__file__).parent)
+
+ @classmethod
+ def setUpClass(cls):
+ sys.path.append(cls.site_dir)
+
+ @classmethod
+ def tearDownClass(cls):
+ sys.path.remove(cls.site_dir)
+
+ def test_init_error(self):
+ with self.assertRaises(ValueError):
+ NamespaceReader(['path1', 'path2'])
+
+ def test_resource_path(self):
+ namespacedata01 = import_module('namespacedata01')
+ reader = NamespaceReader(namespacedata01.__spec__.submodule_search_locations)
+
+ root = os.path.abspath(os.path.join(__file__, '..', 'namespacedata01'))
+ self.assertEqual(
+ reader.resource_path('binary.file'), os.path.join(root, 'binary.file')
+ )
+ self.assertEqual(
+ reader.resource_path('imaginary'), os.path.join(root, 'imaginary')
+ )
+
+ def test_files(self):
+ namespacedata01 = import_module('namespacedata01')
+ reader = NamespaceReader(namespacedata01.__spec__.submodule_search_locations)
+ root = os.path.abspath(os.path.join(__file__, '..', 'namespacedata01'))
+ self.assertIsInstance(reader.files(), MultiplexedPath)
+ self.assertEqual(repr(reader.files()), "MultiplexedPath('{}')".format(root))
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/Lib/test/test_importlib/test_resource.py b/Lib/test/test_importlib/test_resource.py
index 1d1bdad..f8d861e 100644
--- a/Lib/test/test_importlib/test_resource.py
+++ b/Lib/test/test_importlib/test_resource.py
@@ -27,20 +27,21 @@ class ResourceTests:
def test_contents(self):
contents = set(resources.contents(self.data))
# There may be cruft in the directory listing of the data directory.
- # Under Python 3 we could have a __pycache__ directory, and under
- # Python 2 we could have .pyc files. These are both artifacts of the
- # test suite importing these modules and writing these caches. They
- # aren't germane to this test, so just filter them out.
+ # It could have a __pycache__ directory,
+ # an artifact of the
+ # test suite importing these modules, which
+ # are not germane to this test, so just filter them out.
contents.discard('__pycache__')
- contents.discard('__init__.pyc')
- contents.discard('__init__.pyo')
- self.assertEqual(contents, {
- '__init__.py',
- 'subdirectory',
- 'utf-8.file',
- 'binary.file',
- 'utf-16.file',
- })
+ self.assertEqual(
+ contents,
+ {
+ '__init__.py',
+ 'subdirectory',
+ 'utf-8.file',
+ 'binary.file',
+ 'utf-16.file',
+ },
+ )
class ResourceDiskTests(ResourceTests, unittest.TestCase):
@@ -55,27 +56,26 @@ class ResourceZipTests(ResourceTests, util.ZipSetup, unittest.TestCase):
class ResourceLoaderTests(unittest.TestCase):
def test_resource_contents(self):
package = util.create_package(
- file=data01, path=data01.__file__, contents=['A', 'B', 'C'])
- self.assertEqual(
- set(resources.contents(package)),
- {'A', 'B', 'C'})
+ file=data01, path=data01.__file__, contents=['A', 'B', 'C']
+ )
+ self.assertEqual(set(resources.contents(package)), {'A', 'B', 'C'})
def test_resource_is_resource(self):
package = util.create_package(
- file=data01, path=data01.__file__,
- contents=['A', 'B', 'C', 'D/E', 'D/F'])
+ file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F']
+ )
self.assertTrue(resources.is_resource(package, 'B'))
def test_resource_directory_is_not_resource(self):
package = util.create_package(
- file=data01, path=data01.__file__,
- contents=['A', 'B', 'C', 'D/E', 'D/F'])
+ file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F']
+ )
self.assertFalse(resources.is_resource(package, 'D'))
def test_resource_missing_is_not_resource(self):
package = util.create_package(
- file=data01, path=data01.__file__,
- contents=['A', 'B', 'C', 'D/E', 'D/F'])
+ file=data01, path=data01.__file__, contents=['A', 'B', 'C', 'D/E', 'D/F']
+ )
self.assertFalse(resources.is_resource(package, 'Z'))
@@ -86,90 +86,63 @@ class ResourceCornerCaseTests(unittest.TestCase):
# 2. Are not on the file system
# 3. Are not in a zip file
module = util.create_package(
- file=data01, path=data01.__file__, contents=['A', 'B', 'C'])
+ file=data01, path=data01.__file__, contents=['A', 'B', 'C']
+ )
# Give the module a dummy loader.
module.__loader__ = object()
# Give the module a dummy origin.
module.__file__ = '/path/which/shall/not/be/named'
- if sys.version_info >= (3,):
- module.__spec__.loader = module.__loader__
- module.__spec__.origin = module.__file__
+ module.__spec__.loader = module.__loader__
+ module.__spec__.origin = module.__file__
self.assertFalse(resources.is_resource(module, 'A'))
-class ResourceFromZipsTest(util.ZipSetupBase, unittest.TestCase):
- ZIP_MODULE = zipdata02 # type: ignore
-
- def test_unrelated_contents(self):
- # https://gitlab.com/python-devs/importlib_resources/issues/44
- #
- # Here we have a zip file with two unrelated subpackages. The bug
- # reports that getting the contents of a resource returns unrelated
- # files.
- self.assertEqual(
- set(resources.contents('ziptestdata.one')),
- {'__init__.py', 'resource1.txt'})
- self.assertEqual(
- set(resources.contents('ziptestdata.two')),
- {'__init__.py', 'resource2.txt'})
-
-
-class SubdirectoryResourceFromZipsTest(util.ZipSetupBase, unittest.TestCase):
- ZIP_MODULE = zipdata01 # type: ignore
+class ResourceFromZipsTest01(util.ZipSetupBase, unittest.TestCase):
+ ZIP_MODULE = zipdata01 # type: ignore
def test_is_submodule_resource(self):
submodule = import_module('ziptestdata.subdirectory')
- self.assertTrue(
- resources.is_resource(submodule, 'binary.file'))
+ self.assertTrue(resources.is_resource(submodule, 'binary.file'))
def test_read_submodule_resource_by_name(self):
self.assertTrue(
- resources.is_resource('ziptestdata.subdirectory', 'binary.file'))
+ resources.is_resource('ziptestdata.subdirectory', 'binary.file')
+ )
def test_submodule_contents(self):
submodule = import_module('ziptestdata.subdirectory')
self.assertEqual(
- set(resources.contents(submodule)),
- {'__init__.py', 'binary.file'})
+ set(resources.contents(submodule)), {'__init__.py', 'binary.file'}
+ )
def test_submodule_contents_by_name(self):
self.assertEqual(
set(resources.contents('ziptestdata.subdirectory')),
- {'__init__.py', 'binary.file'})
-
-
-class NamespaceTest(unittest.TestCase):
- def test_namespaces_cannot_have_resources(self):
- contents = resources.contents('test.test_importlib.data03.namespace')
- self.assertFalse(list(contents))
- # Even though there is a file in the namespace directory, it is not
- # considered a resource, since namespace packages can't have them.
- self.assertFalse(resources.is_resource(
- 'test.test_importlib.data03.namespace',
- 'resource1.txt'))
- # We should get an exception if we try to read it or open it.
- self.assertRaises(
- FileNotFoundError,
- resources.open_text,
- 'test.test_importlib.data03.namespace', 'resource1.txt')
- self.assertRaises(
- FileNotFoundError,
- resources.open_binary,
- 'test.test_importlib.data03.namespace', 'resource1.txt')
- self.assertRaises(
- FileNotFoundError,
- resources.read_text,
- 'test.test_importlib.data03.namespace', 'resource1.txt')
- self.assertRaises(
- FileNotFoundError,
- resources.read_binary,
- 'test.test_importlib.data03.namespace', 'resource1.txt')
+ {'__init__.py', 'binary.file'},
+ )
+
+
+class ResourceFromZipsTest02(util.ZipSetupBase, unittest.TestCase):
+ ZIP_MODULE = zipdata02 # type: ignore
+
+ def test_unrelated_contents(self):
+ """
+ Test thata zip with two unrelated subpackages return
+ distinct resources. Ref python/importlib_resources#44.
+ """
+ self.assertEqual(
+ set(resources.contents('ziptestdata.one')), {'__init__.py', 'resource1.txt'}
+ )
+ self.assertEqual(
+ set(resources.contents('ziptestdata.two')), {'__init__.py', 'resource2.txt'}
+ )
class DeletingZipsTest(unittest.TestCase):
"""Having accessed resources in a zip file should not keep an open
reference to the zip.
"""
+
ZIP_MODULE = zipdata01
def setUp(self):
@@ -241,5 +214,41 @@ class DeletingZipsTest(unittest.TestCase):
del c
+class ResourceFromNamespaceTest01(unittest.TestCase):
+ site_dir = str(pathlib.Path(__file__).parent)
+
+ @classmethod
+ def setUpClass(cls):
+ sys.path.append(cls.site_dir)
+
+ @classmethod
+ def tearDownClass(cls):
+ sys.path.remove(cls.site_dir)
+
+ def test_is_submodule_resource(self):
+ self.assertTrue(
+ resources.is_resource(import_module('namespacedata01'), 'binary.file')
+ )
+
+ def test_read_submodule_resource_by_name(self):
+ self.assertTrue(resources.is_resource('namespacedata01', 'binary.file'))
+
+ def test_submodule_contents(self):
+ contents = set(resources.contents(import_module('namespacedata01')))
+ try:
+ contents.remove('__pycache__')
+ except KeyError:
+ pass
+ self.assertEqual(contents, {'binary.file', 'utf-8.file', 'utf-16.file'})
+
+ def test_submodule_contents_by_name(self):
+ contents = set(resources.contents('namespacedata01'))
+ try:
+ contents.remove('__pycache__')
+ except KeyError:
+ pass
+ self.assertEqual(contents, {'binary.file', 'utf-8.file', 'utf-16.file'})
+
+
if __name__ == '__main__':
unittest.main()
diff --git a/Lib/test/test_importlib/update-zips.py b/Lib/test/test_importlib/update-zips.py
new file mode 100755
index 0000000..9ef0224
--- /dev/null
+++ b/Lib/test/test_importlib/update-zips.py
@@ -0,0 +1,53 @@
+"""
+Generate the zip test data files.
+
+Run to build the tests/zipdataNN/ziptestdata.zip files from
+files in tests/dataNN.
+
+Replaces the file with the working copy, but does commit anything
+to the source repo.
+"""
+
+import contextlib
+import os
+import pathlib
+import zipfile
+
+
+def main():
+ """
+ >>> from unittest import mock
+ >>> monkeypatch = getfixture('monkeypatch')
+ >>> monkeypatch.setattr(zipfile, 'ZipFile', mock.MagicMock())
+ >>> print(); main() # print workaround for bpo-32509
+ <BLANKLINE>
+ ...data01... -> ziptestdata/...
+ ...
+ ...data02... -> ziptestdata/...
+ ...
+ """
+ suffixes = '01', '02'
+ tuple(map(generate, suffixes))
+
+
+def generate(suffix):
+ root = pathlib.Path(__file__).parent.relative_to(os.getcwd())
+ zfpath = root / f'zipdata{suffix}/ziptestdata.zip'
+ with zipfile.ZipFile(zfpath, 'w') as zf:
+ for src, rel in walk(root / f'data{suffix}'):
+ dst = 'ziptestdata' / pathlib.PurePosixPath(rel.as_posix())
+ print(src, '->', dst)
+ zf.write(src, dst)
+
+
+def walk(datapath):
+ for dirpath, dirnames, filenames in os.walk(datapath):
+ with contextlib.suppress(KeyError):
+ dirnames.remove('__pycache__')
+ for filename in filenames:
+ res = pathlib.Path(dirpath) / filename
+ rel = res.relative_to(datapath)
+ yield res, rel
+
+
+__name__ == '__main__' and main()
diff --git a/Lib/test/test_importlib/zipdata01/ziptestdata.zip b/Lib/test/test_importlib/zipdata01/ziptestdata.zip
index 12f7872..9a3bb07 100644
--- a/Lib/test/test_importlib/zipdata01/ziptestdata.zip
+++ b/Lib/test/test_importlib/zipdata01/ziptestdata.zip
Binary files differ
diff --git a/Lib/test/test_importlib/zipdata02/ziptestdata.zip b/Lib/test/test_importlib/zipdata02/ziptestdata.zip
index 9ee0058..d63ff51 100644
--- a/Lib/test/test_importlib/zipdata02/ziptestdata.zip
+++ b/Lib/test/test_importlib/zipdata02/ziptestdata.zip
Binary files differ
diff --git a/Misc/NEWS.d/next/Library/2021-02-28-04-21-35.bpo-42129.V0KifQ.rst b/Misc/NEWS.d/next/Library/2021-02-28-04-21-35.bpo-42129.V0KifQ.rst
new file mode 100644
index 0000000..4b8f502
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-02-28-04-21-35.bpo-42129.V0KifQ.rst
@@ -0,0 +1,3 @@
+``importlib.resources`` now honors namespace packages, merging resources
+from each location in the namespace as introduced in
+``importlib_resources`` 3.2 and including incidental changes through 5.0.3.
diff --git a/Python/importlib_external.h b/Python/importlib_external.h
index 6b4cd39..108f59e 100644
--- a/Python/importlib_external.h
+++ b/Python/importlib_external.h
@@ -1529,7 +1529,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
67,0,0,0,115,20,0,0,0,100,1,100,2,108,0,109,
1,125,2,1,0,124,2,124,0,131,1,83,0,41,3,78,
114,0,0,0,0,41,1,218,10,70,105,108,101,82,101,97,
- 100,101,114,41,2,90,17,105,109,112,111,114,116,108,105,98,
+ 100,101,114,41,2,218,17,105,109,112,111,114,116,108,105,98,
46,114,101,97,100,101,114,115,114,18,1,0,0,41,3,114,
130,0,0,0,114,231,0,0,0,114,18,1,0,0,114,7,
0,0,0,114,7,0,0,0,114,8,0,0,0,218,19,103,
@@ -1540,7 +1540,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
114,41,13,114,137,0,0,0,114,136,0,0,0,114,138,0,
0,0,114,139,0,0,0,114,223,0,0,0,114,3,1,0,
0,114,9,1,0,0,114,147,0,0,0,114,235,0,0,0,
- 114,190,0,0,0,114,242,0,0,0,114,19,1,0,0,90,
+ 114,190,0,0,0,114,242,0,0,0,114,20,1,0,0,90,
13,95,95,99,108,97,115,115,99,101,108,108,95,95,114,7,
0,0,0,114,7,0,0,0,114,12,1,0,0,114,8,0,
0,0,114,254,0,0,0,218,3,0,0,115,26,0,0,0,
@@ -1580,7 +1580,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
0,115,6,0,0,0,8,2,16,1,255,128,122,32,83,111,
117,114,99,101,70,105,108,101,76,111,97,100,101,114,46,95,
99,97,99,104,101,95,98,121,116,101,99,111,100,101,114,75,
- 0,0,0,114,22,1,0,0,99,3,0,0,0,0,0,0,
+ 0,0,0,114,23,1,0,0,99,3,0,0,0,0,0,0,
0,1,0,0,0,9,0,0,0,11,0,0,0,67,0,0,
0,115,254,0,0,0,116,0,124,1,131,1,92,2,125,4,
125,5,103,0,125,6,124,4,114,62,116,1,124,4,131,1,
@@ -1608,7 +1608,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
5,109,107,100,105,114,218,15,70,105,108,101,69,120,105,115,
116,115,69,114,114,111,114,114,64,0,0,0,114,146,0,0,
0,114,160,0,0,0,114,84,0,0,0,41,9,114,130,0,
- 0,0,114,58,0,0,0,114,42,0,0,0,114,23,1,0,
+ 0,0,114,58,0,0,0,114,42,0,0,0,114,24,1,0,
0,218,6,112,97,114,101,110,116,114,108,0,0,0,114,53,
0,0,0,114,49,0,0,0,114,243,0,0,0,114,7,0,
0,0,114,7,0,0,0,114,8,0,0,0,114,240,0,0,
@@ -1621,9 +1621,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
41,7,114,137,0,0,0,114,136,0,0,0,114,138,0,0,
0,114,139,0,0,0,114,239,0,0,0,114,241,0,0,0,
114,240,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,20,1,0,0,12,4,
+ 7,0,0,0,114,8,0,0,0,114,21,1,0,0,12,4,
0,0,115,12,0,0,0,8,0,4,2,8,2,8,5,18,
- 5,255,128,114,20,1,0,0,99,0,0,0,0,0,0,0,
+ 5,255,128,114,21,1,0,0,99,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,2,0,0,0,64,0,0,
0,115,32,0,0,0,101,0,90,1,100,0,90,2,100,1,
90,3,100,2,100,3,132,0,90,4,100,4,100,5,132,0,
@@ -1660,9 +1660,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
117,114,99,101,78,41,6,114,137,0,0,0,114,136,0,0,
0,114,138,0,0,0,114,139,0,0,0,114,228,0,0,0,
114,244,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,26,1,0,0,57,4,
+ 7,0,0,0,114,8,0,0,0,114,27,1,0,0,57,4,
0,0,115,10,0,0,0,8,0,4,2,8,2,12,16,255,
- 128,114,26,1,0,0,99,0,0,0,0,0,0,0,0,0,
+ 128,114,27,1,0,0,99,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,
92,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,
100,2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,
@@ -1754,7 +1754,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
103,101,46,60,108,111,99,97,108,115,62,46,60,103,101,110,
101,120,112,114,62,78,41,4,114,61,0,0,0,114,58,0,
0,0,218,3,97,110,121,114,219,0,0,0,114,234,0,0,
- 0,114,7,0,0,0,114,30,1,0,0,114,8,0,0,0,
+ 0,114,7,0,0,0,114,31,1,0,0,114,8,0,0,0,
114,193,0,0,0,115,4,0,0,115,10,0,0,0,14,2,
12,1,2,1,8,255,255,128,122,30,69,120,116,101,110,115,
105,111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,
@@ -1847,8 +1847,8 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
109,101,44,32,112,97,114,101,110,116,45,112,97,116,104,45,
97,116,116,114,45,110,97,109,101,41,114,86,0,0,0,114,
10,0,0,0,41,2,114,16,0,0,0,114,58,0,0,0,
- 90,8,95,95,112,97,116,104,95,95,78,41,2,114,33,1,
- 0,0,114,55,0,0,0,41,4,114,130,0,0,0,114,25,
+ 90,8,95,95,112,97,116,104,95,95,78,41,2,114,34,1,
+ 0,0,114,55,0,0,0,41,4,114,130,0,0,0,114,26,
1,0,0,218,3,100,111,116,90,2,109,101,114,7,0,0,
0,114,7,0,0,0,114,8,0,0,0,218,23,95,102,105,
110,100,95,112,97,114,101,110,116,95,112,97,116,104,95,110,
@@ -1860,12 +1860,12 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
3,0,0,0,67,0,0,0,115,28,0,0,0,124,0,160,
0,161,0,92,2,125,1,125,2,116,1,116,2,106,3,124,
1,25,0,124,2,131,2,83,0,114,121,0,0,0,41,4,
- 114,40,1,0,0,114,142,0,0,0,114,16,0,0,0,218,
+ 114,41,1,0,0,114,142,0,0,0,114,16,0,0,0,218,
7,109,111,100,117,108,101,115,41,3,114,130,0,0,0,90,
18,112,97,114,101,110,116,95,109,111,100,117,108,101,95,110,
97,109,101,90,14,112,97,116,104,95,97,116,116,114,95,110,
97,109,101,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,35,1,0,0,158,4,0,0,115,6,0,0,0,
+ 0,0,114,36,1,0,0,158,4,0,0,115,6,0,0,0,
12,1,16,1,255,128,122,31,95,78,97,109,101,115,112,97,
99,101,80,97,116,104,46,95,103,101,116,95,112,97,114,101,
110,116,95,112,97,116,104,99,1,0,0,0,0,0,0,0,
@@ -1876,9 +1876,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
68,124,2,106,5,100,0,117,0,114,68,124,2,106,6,114,
68,124,2,106,6,124,0,95,7,124,1,124,0,95,2,124,
0,106,7,83,0,114,121,0,0,0,41,8,114,123,0,0,
- 0,114,35,1,0,0,114,36,1,0,0,114,37,1,0,0,
- 114,33,1,0,0,114,151,0,0,0,114,189,0,0,0,114,
- 34,1,0,0,41,3,114,130,0,0,0,90,11,112,97,114,
+ 0,114,36,1,0,0,114,37,1,0,0,114,38,1,0,0,
+ 114,34,1,0,0,114,151,0,0,0,114,189,0,0,0,114,
+ 35,1,0,0,41,3,114,130,0,0,0,90,11,112,97,114,
101,110,116,95,112,97,116,104,114,198,0,0,0,114,7,0,
0,0,114,7,0,0,0,114,8,0,0,0,218,12,95,114,
101,99,97,108,99,117,108,97,116,101,162,4,0,0,115,18,
@@ -1888,7 +1888,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
116,101,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,0,
116,0,124,0,160,1,161,0,131,1,83,0,114,121,0,0,
- 0,41,2,218,4,105,116,101,114,114,42,1,0,0,114,8,
+ 0,41,2,218,4,105,116,101,114,114,43,1,0,0,114,8,
1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
0,0,218,8,95,95,105,116,101,114,95,95,175,4,0,0,
243,4,0,0,0,12,1,255,128,122,23,95,78,97,109,101,
@@ -1896,764 +1896,776 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = {
95,95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,
0,0,0,2,0,0,0,67,0,0,0,115,12,0,0,0,
124,0,160,0,161,0,124,1,25,0,83,0,114,121,0,0,
- 0,169,1,114,42,1,0,0,41,2,114,130,0,0,0,218,
+ 0,169,1,114,43,1,0,0,41,2,114,130,0,0,0,218,
5,105,110,100,101,120,114,7,0,0,0,114,7,0,0,0,
114,8,0,0,0,218,11,95,95,103,101,116,105,116,101,109,
- 95,95,178,4,0,0,114,46,1,0,0,122,26,95,78,97,
+ 95,95,178,4,0,0,114,47,1,0,0,122,26,95,78,97,
109,101,115,112,97,99,101,80,97,116,104,46,95,95,103,101,
116,105,116,101,109,95,95,99,3,0,0,0,0,0,0,0,
0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
115,14,0,0,0,124,2,124,0,106,0,124,1,60,0,100,
- 0,83,0,114,121,0,0,0,41,1,114,34,1,0,0,41,
- 3,114,130,0,0,0,114,48,1,0,0,114,58,0,0,0,
+ 0,83,0,114,121,0,0,0,41,1,114,35,1,0,0,41,
+ 3,114,130,0,0,0,114,49,1,0,0,114,58,0,0,0,
114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
11,95,95,115,101,116,105,116,101,109,95,95,181,4,0,0,
115,4,0,0,0,14,1,255,128,122,26,95,78,97,109,101,
115,112,97,99,101,80,97,116,104,46,95,95,115,101,116,105,
116,101,109,95,95,99,1,0,0,0,0,0,0,0,0,0,
- 0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,43,
+ 0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,44,
1,0,0,114,121,0,0,0,41,2,114,4,0,0,0,114,
- 42,1,0,0,114,8,1,0,0,114,7,0,0,0,114,7,
+ 43,1,0,0,114,8,1,0,0,114,7,0,0,0,114,7,
0,0,0,114,8,0,0,0,218,7,95,95,108,101,110,95,
- 95,184,4,0,0,114,46,1,0,0,122,22,95,78,97,109,
+ 95,184,4,0,0,114,47,1,0,0,122,22,95,78,97,109,
101,115,112,97,99,101,80,97,116,104,46,95,95,108,101,110,
95,95,99,1,0,0,0,0,0,0,0,0,0,0,0,1,
0,0,0,3,0,0,0,67,0,0,0,243,12,0,0,0,
100,1,160,0,124,0,106,1,161,1,83,0,41,2,78,122,
20,95,78,97,109,101,115,112,97,99,101,80,97,116,104,40,
- 123,33,114,125,41,41,2,114,77,0,0,0,114,34,1,0,
+ 123,33,114,125,41,41,2,114,77,0,0,0,114,35,1,0,
0,114,8,1,0,0,114,7,0,0,0,114,7,0,0,0,
114,8,0,0,0,218,8,95,95,114,101,112,114,95,95,187,
- 4,0,0,114,46,1,0,0,122,23,95,78,97,109,101,115,
+ 4,0,0,114,47,1,0,0,122,23,95,78,97,109,101,115,
112,97,99,101,80,97,116,104,46,95,95,114,101,112,114,95,
95,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
0,0,3,0,0,0,67,0,0,0,115,12,0,0,0,124,
1,124,0,160,0,161,0,118,0,83,0,114,121,0,0,0,
- 114,47,1,0,0,169,2,114,130,0,0,0,218,4,105,116,
+ 114,48,1,0,0,169,2,114,130,0,0,0,218,4,105,116,
101,109,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
0,218,12,95,95,99,111,110,116,97,105,110,115,95,95,190,
- 4,0,0,114,46,1,0,0,122,27,95,78,97,109,101,115,
+ 4,0,0,114,47,1,0,0,122,27,95,78,97,109,101,115,
112,97,99,101,80,97,116,104,46,95,95,99,111,110,116,97,
105,110,115,95,95,99,2,0,0,0,0,0,0,0,0,0,
0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,16,
0,0,0,124,0,106,0,160,1,124,1,161,1,1,0,100,
- 0,83,0,114,121,0,0,0,41,2,114,34,1,0,0,114,
- 197,0,0,0,114,54,1,0,0,114,7,0,0,0,114,7,
+ 0,83,0,114,121,0,0,0,41,2,114,35,1,0,0,114,
+ 197,0,0,0,114,55,1,0,0,114,7,0,0,0,114,7,
0,0,0,114,8,0,0,0,114,197,0,0,0,193,4,0,
0,243,4,0,0,0,16,1,255,128,122,21,95,78,97,109,
101,115,112,97,99,101,80,97,116,104,46,97,112,112,101,110,
100,78,41,15,114,137,0,0,0,114,136,0,0,0,114,138,
- 0,0,0,114,139,0,0,0,114,223,0,0,0,114,40,1,
- 0,0,114,35,1,0,0,114,42,1,0,0,114,45,1,0,
- 0,114,49,1,0,0,114,50,1,0,0,114,51,1,0,0,
- 114,53,1,0,0,114,56,1,0,0,114,197,0,0,0,114,
+ 0,0,0,114,139,0,0,0,114,223,0,0,0,114,41,1,
+ 0,0,114,36,1,0,0,114,43,1,0,0,114,46,1,0,
+ 0,114,50,1,0,0,114,51,1,0,0,114,52,1,0,0,
+ 114,54,1,0,0,114,57,1,0,0,114,197,0,0,0,114,
7,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,32,1,0,0,135,4,0,0,115,28,0,0,
+ 0,0,0,114,33,1,0,0,135,4,0,0,115,28,0,0,
0,8,0,4,1,8,6,8,6,8,10,8,4,8,13,8,
- 3,8,3,8,3,8,3,8,3,12,3,255,128,114,32,1,
+ 3,8,3,8,3,8,3,8,3,12,3,255,128,114,33,1,
0,0,99,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,3,0,0,0,64,0,0,0,115,80,0,0,0,
+ 0,0,0,3,0,0,0,64,0,0,0,115,88,0,0,0,
101,0,90,1,100,0,90,2,100,1,100,2,132,0,90,3,
101,4,100,3,100,4,132,0,131,1,90,5,100,5,100,6,
132,0,90,6,100,7,100,8,132,0,90,7,100,9,100,10,
132,0,90,8,100,11,100,12,132,0,90,9,100,13,100,14,
- 132,0,90,10,100,15,100,16,132,0,90,11,100,17,83,0,
- 41,18,218,16,95,78,97,109,101,115,112,97,99,101,76,111,
- 97,100,101,114,99,4,0,0,0,0,0,0,0,0,0,0,
- 0,4,0,0,0,4,0,0,0,67,0,0,0,115,18,0,
- 0,0,116,0,124,1,124,2,124,3,131,3,124,0,95,1,
- 100,0,83,0,114,121,0,0,0,41,2,114,32,1,0,0,
- 114,34,1,0,0,114,38,1,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,223,0,0,0,199,4,
- 0,0,115,4,0,0,0,18,1,255,128,122,25,95,78,97,
- 109,101,115,112,97,99,101,76,111,97,100,101,114,46,95,95,
- 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,3,0,0,0,67,0,0,0,114,
- 52,1,0,0,41,3,122,115,82,101,116,117,114,110,32,114,
- 101,112,114,32,102,111,114,32,116,104,101,32,109,111,100,117,
- 108,101,46,10,10,32,32,32,32,32,32,32,32,84,104,101,
- 32,109,101,116,104,111,100,32,105,115,32,100,101,112,114,101,
- 99,97,116,101,100,46,32,32,84,104,101,32,105,109,112,111,
- 114,116,32,109,97,99,104,105,110,101,114,121,32,100,111,101,
- 115,32,116,104,101,32,106,111,98,32,105,116,115,101,108,102,
- 46,10,10,32,32,32,32,32,32,32,32,122,25,60,109,111,
- 100,117,108,101,32,123,33,114,125,32,40,110,97,109,101,115,
- 112,97,99,101,41,62,78,41,2,114,77,0,0,0,114,137,
- 0,0,0,41,1,114,231,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,11,109,111,100,117,108,
- 101,95,114,101,112,114,202,4,0,0,115,4,0,0,0,12,
- 7,255,128,122,28,95,78,97,109,101,115,112,97,99,101,76,
- 111,97,100,101,114,46,109,111,100,117,108,101,95,114,101,112,
- 114,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,1,0,0,0,67,0,0,0,114,24,0,0,0,41,
- 2,78,84,114,7,0,0,0,114,234,0,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,193,0,0,
- 0,211,4,0,0,243,4,0,0,0,4,1,255,128,122,27,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
- 46,105,115,95,112,97,99,107,97,103,101,99,2,0,0,0,
- 0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,
- 67,0,0,0,114,24,0,0,0,41,2,78,114,10,0,0,
- 0,114,7,0,0,0,114,234,0,0,0,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,244,0,0,0,214,
- 4,0,0,114,60,1,0,0,122,27,95,78,97,109,101,115,
- 112,97,99,101,76,111,97,100,101,114,46,103,101,116,95,115,
- 111,117,114,99,101,99,2,0,0,0,0,0,0,0,0,0,
- 0,0,2,0,0,0,6,0,0,0,67,0,0,0,115,16,
- 0,0,0,116,0,100,1,100,2,100,3,100,4,100,5,141,
- 4,83,0,41,6,78,114,10,0,0,0,122,8,60,115,116,
- 114,105,110,103,62,114,230,0,0,0,84,41,1,114,246,0,
- 0,0,41,1,114,247,0,0,0,114,234,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,228,0,
- 0,0,217,4,0,0,114,57,1,0,0,122,25,95,78,97,
- 109,101,115,112,97,99,101,76,111,97,100,101,114,46,103,101,
- 116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,
- 0,0,0,2,0,0,0,1,0,0,0,67,0,0,0,114,
- 24,0,0,0,114,224,0,0,0,114,7,0,0,0,114,225,
+ 132,0,90,10,100,15,100,16,132,0,90,11,100,17,100,18,
+ 132,0,90,12,100,19,83,0,41,20,218,16,95,78,97,109,
+ 101,115,112,97,99,101,76,111,97,100,101,114,99,4,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
+ 0,67,0,0,0,115,18,0,0,0,116,0,124,1,124,2,
+ 124,3,131,3,124,0,95,1,100,0,83,0,114,121,0,0,
+ 0,41,2,114,33,1,0,0,114,35,1,0,0,114,39,1,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,114,223,0,0,0,199,4,0,0,115,4,0,0,0,18,
+ 1,255,128,122,25,95,78,97,109,101,115,112,97,99,101,76,
+ 111,97,100,101,114,46,95,95,105,110,105,116,95,95,99,1,
+ 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,
+ 0,0,0,67,0,0,0,114,53,1,0,0,41,3,122,115,
+ 82,101,116,117,114,110,32,114,101,112,114,32,102,111,114,32,
+ 116,104,101,32,109,111,100,117,108,101,46,10,10,32,32,32,
+ 32,32,32,32,32,84,104,101,32,109,101,116,104,111,100,32,
+ 105,115,32,100,101,112,114,101,99,97,116,101,100,46,32,32,
+ 84,104,101,32,105,109,112,111,114,116,32,109,97,99,104,105,
+ 110,101,114,121,32,100,111,101,115,32,116,104,101,32,106,111,
+ 98,32,105,116,115,101,108,102,46,10,10,32,32,32,32,32,
+ 32,32,32,122,25,60,109,111,100,117,108,101,32,123,33,114,
+ 125,32,40,110,97,109,101,115,112,97,99,101,41,62,78,41,
+ 2,114,77,0,0,0,114,137,0,0,0,41,1,114,231,0,
+ 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
+ 0,218,11,109,111,100,117,108,101,95,114,101,112,114,202,4,
+ 0,0,115,4,0,0,0,12,7,255,128,122,28,95,78,97,
+ 109,101,115,112,97,99,101,76,111,97,100,101,114,46,109,111,
+ 100,117,108,101,95,114,101,112,114,99,2,0,0,0,0,0,
+ 0,0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,
+ 0,0,114,24,0,0,0,41,2,78,84,114,7,0,0,0,
+ 114,234,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,114,193,0,0,0,211,4,0,0,243,4,0,
+ 0,0,4,1,255,128,122,27,95,78,97,109,101,115,112,97,
+ 99,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107,
+ 97,103,101,99,2,0,0,0,0,0,0,0,0,0,0,0,
+ 2,0,0,0,1,0,0,0,67,0,0,0,114,24,0,0,
+ 0,41,2,78,114,10,0,0,0,114,7,0,0,0,114,234,
0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,226,0,0,0,220,4,0,0,114,227,0,0,0,
- 122,30,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
- 101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101,
- 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,
- 0,1,0,0,0,67,0,0,0,115,4,0,0,0,100,0,
- 83,0,114,121,0,0,0,114,7,0,0,0,114,27,1,0,
+ 0,0,114,244,0,0,0,214,4,0,0,114,61,1,0,0,
+ 122,27,95,78,97,109,101,115,112,97,99,101,76,111,97,100,
+ 101,114,46,103,101,116,95,115,111,117,114,99,101,99,2,0,
+ 0,0,0,0,0,0,0,0,0,0,2,0,0,0,6,0,
+ 0,0,67,0,0,0,115,16,0,0,0,116,0,100,1,100,
+ 2,100,3,100,4,100,5,141,4,83,0,41,6,78,114,10,
+ 0,0,0,122,8,60,115,116,114,105,110,103,62,114,230,0,
+ 0,0,84,41,1,114,246,0,0,0,41,1,114,247,0,0,
+ 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,228,0,0,0,217,4,0,0,114,58,
+ 1,0,0,122,25,95,78,97,109,101,115,112,97,99,101,76,
+ 111,97,100,101,114,46,103,101,116,95,99,111,100,101,99,2,
+ 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,
+ 0,0,0,67,0,0,0,114,24,0,0,0,114,224,0,0,
+ 0,114,7,0,0,0,114,225,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,226,0,0,0,220,
+ 4,0,0,114,227,0,0,0,122,30,95,78,97,109,101,115,
+ 112,97,99,101,76,111,97,100,101,114,46,99,114,101,97,116,
+ 101,95,109,111,100,117,108,101,99,2,0,0,0,0,0,0,
+ 0,0,0,0,0,2,0,0,0,1,0,0,0,67,0,0,
+ 0,115,4,0,0,0,100,0,83,0,114,121,0,0,0,114,
+ 7,0,0,0,114,28,1,0,0,114,7,0,0,0,114,7,
+ 0,0,0,114,8,0,0,0,114,232,0,0,0,223,4,0,
+ 0,114,61,1,0,0,122,28,95,78,97,109,101,115,112,97,
+ 99,101,76,111,97,100,101,114,46,101,120,101,99,95,109,111,
+ 100,117,108,101,99,2,0,0,0,0,0,0,0,0,0,0,
+ 0,2,0,0,0,4,0,0,0,67,0,0,0,115,26,0,
+ 0,0,116,0,160,1,100,1,124,0,106,2,161,2,1,0,
+ 116,0,160,3,124,0,124,1,161,2,83,0,41,3,122,98,
+ 76,111,97,100,32,97,32,110,97,109,101,115,112,97,99,101,
+ 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,
+ 32,32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,
+ 32,100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,
+ 101,32,101,120,101,99,95,109,111,100,117,108,101,40,41,32,
+ 105,110,115,116,101,97,100,46,10,10,32,32,32,32,32,32,
+ 32,32,122,38,110,97,109,101,115,112,97,99,101,32,109,111,
+ 100,117,108,101,32,108,111,97,100,101,100,32,119,105,116,104,
+ 32,112,97,116,104,32,123,33,114,125,78,41,4,114,146,0,
+ 0,0,114,160,0,0,0,114,35,1,0,0,114,233,0,0,
+ 0,114,234,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,235,0,0,0,226,4,0,0,115,10,
+ 0,0,0,6,7,4,1,4,255,12,3,255,128,122,28,95,
+ 78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,46,
+ 108,111,97,100,95,109,111,100,117,108,101,99,2,0,0,0,
+ 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,
+ 67,0,0,0,115,22,0,0,0,100,1,100,2,108,0,109,
+ 1,125,2,1,0,124,2,124,0,106,2,131,1,83,0,41,
+ 3,78,114,0,0,0,0,41,1,218,15,78,97,109,101,115,
+ 112,97,99,101,82,101,97,100,101,114,41,3,114,19,1,0,
+ 0,114,62,1,0,0,114,35,1,0,0,41,3,114,130,0,
+ 0,0,114,231,0,0,0,114,62,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,20,1,0,0,
+ 238,4,0,0,115,6,0,0,0,12,1,10,1,255,128,122,
+ 36,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,
+ 114,46,103,101,116,95,114,101,115,111,117,114,99,101,95,114,
+ 101,97,100,101,114,78,41,13,114,137,0,0,0,114,136,0,
+ 0,0,114,138,0,0,0,114,223,0,0,0,114,220,0,0,
+ 0,114,60,1,0,0,114,193,0,0,0,114,244,0,0,0,
+ 114,228,0,0,0,114,226,0,0,0,114,232,0,0,0,114,
+ 235,0,0,0,114,20,1,0,0,114,7,0,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,8,0,0,0,114,59,1,
+ 0,0,198,4,0,0,115,24,0,0,0,8,0,8,1,2,
+ 3,10,1,8,8,8,3,8,3,8,3,8,3,8,3,12,
+ 12,255,128,114,59,1,0,0,99,0,0,0,0,0,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,64,0,0,
+ 0,115,118,0,0,0,101,0,90,1,100,0,90,2,100,1,
+ 90,3,101,4,100,2,100,3,132,0,131,1,90,5,101,4,
+ 100,4,100,5,132,0,131,1,90,6,101,7,100,6,100,7,
+ 132,0,131,1,90,8,101,7,100,8,100,9,132,0,131,1,
+ 90,9,101,7,100,19,100,11,100,12,132,1,131,1,90,10,
+ 101,7,100,20,100,13,100,14,132,1,131,1,90,11,101,7,
+ 100,21,100,15,100,16,132,1,131,1,90,12,101,4,100,17,
+ 100,18,132,0,131,1,90,13,100,10,83,0,41,22,218,10,
+ 80,97,116,104,70,105,110,100,101,114,122,62,77,101,116,97,
+ 32,112,97,116,104,32,102,105,110,100,101,114,32,102,111,114,
+ 32,115,121,115,46,112,97,116,104,32,97,110,100,32,112,97,
+ 99,107,97,103,101,32,95,95,112,97,116,104,95,95,32,97,
+ 116,116,114,105,98,117,116,101,115,46,99,0,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,67,
+ 0,0,0,115,64,0,0,0,116,0,116,1,106,2,160,3,
+ 161,0,131,1,68,0,93,44,92,2,125,0,125,1,124,1,
+ 100,1,117,0,114,40,116,1,106,2,124,0,61,0,113,14,
+ 116,4,124,1,100,2,131,2,114,58,124,1,160,5,161,0,
+ 1,0,113,14,100,1,83,0,41,3,122,125,67,97,108,108,
+ 32,116,104,101,32,105,110,118,97,108,105,100,97,116,101,95,
+ 99,97,99,104,101,115,40,41,32,109,101,116,104,111,100,32,
+ 111,110,32,97,108,108,32,112,97,116,104,32,101,110,116,114,
+ 121,32,102,105,110,100,101,114,115,10,32,32,32,32,32,32,
+ 32,32,115,116,111,114,101,100,32,105,110,32,115,121,115,46,
+ 112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,97,
+ 99,104,101,115,32,40,119,104,101,114,101,32,105,109,112,108,
+ 101,109,101,110,116,101,100,41,46,78,218,17,105,110,118,97,
+ 108,105,100,97,116,101,95,99,97,99,104,101,115,41,6,218,
+ 4,108,105,115,116,114,16,0,0,0,218,19,112,97,116,104,
+ 95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,218,
+ 5,105,116,101,109,115,114,140,0,0,0,114,64,1,0,0,
+ 41,2,114,128,0,0,0,218,6,102,105,110,100,101,114,114,
+ 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,64,
+ 1,0,0,249,4,0,0,115,16,0,0,0,22,4,8,1,
+ 10,1,10,1,8,1,2,128,4,252,255,128,122,28,80,97,
+ 116,104,70,105,110,100,101,114,46,105,110,118,97,108,105,100,
+ 97,116,101,95,99,97,99,104,101,115,99,1,0,0,0,0,
+ 0,0,0,0,0,0,0,2,0,0,0,9,0,0,0,67,
+ 0,0,0,115,76,0,0,0,116,0,106,1,100,1,117,1,
+ 114,28,116,0,106,1,115,28,116,2,160,3,100,2,116,4,
+ 161,2,1,0,116,0,106,1,68,0,93,34,125,1,122,14,
+ 124,1,124,0,131,1,87,0,2,0,1,0,83,0,4,0,
+ 116,5,121,74,1,0,1,0,1,0,89,0,113,34,100,1,
+ 83,0,119,0,41,3,122,46,83,101,97,114,99,104,32,115,
+ 121,115,46,112,97,116,104,95,104,111,111,107,115,32,102,111,
+ 114,32,97,32,102,105,110,100,101,114,32,102,111,114,32,39,
+ 112,97,116,104,39,46,78,122,23,115,121,115,46,112,97,116,
+ 104,95,104,111,111,107,115,32,105,115,32,101,109,112,116,121,
+ 41,6,114,16,0,0,0,218,10,112,97,116,104,95,104,111,
+ 111,107,115,114,88,0,0,0,114,89,0,0,0,114,149,0,
+ 0,0,114,129,0,0,0,41,2,114,58,0,0,0,90,4,
+ 104,111,111,107,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,218,11,95,112,97,116,104,95,104,111,111,107,115,
+ 3,5,0,0,115,20,0,0,0,16,3,12,1,10,1,2,
+ 1,14,1,12,1,4,1,4,2,2,253,255,128,122,22,80,
+ 97,116,104,70,105,110,100,101,114,46,95,112,97,116,104,95,
+ 104,111,111,107,115,99,2,0,0,0,0,0,0,0,0,0,
+ 0,0,3,0,0,0,8,0,0,0,67,0,0,0,115,100,
+ 0,0,0,124,1,100,1,107,2,114,40,122,12,116,0,160,
+ 1,161,0,125,1,87,0,110,18,4,0,116,2,121,98,1,
+ 0,1,0,1,0,89,0,100,2,83,0,122,16,116,3,106,
+ 4,124,1,25,0,125,2,87,0,124,2,83,0,4,0,116,
+ 5,121,96,1,0,1,0,1,0,124,0,160,6,124,1,161,
+ 1,125,2,124,2,116,3,106,4,124,1,60,0,89,0,124,
+ 2,83,0,119,0,119,0,41,3,122,210,71,101,116,32,116,
+ 104,101,32,102,105,110,100,101,114,32,102,111,114,32,116,104,
+ 101,32,112,97,116,104,32,101,110,116,114,121,32,102,114,111,
+ 109,32,115,121,115,46,112,97,116,104,95,105,109,112,111,114,
+ 116,101,114,95,99,97,99,104,101,46,10,10,32,32,32,32,
+ 32,32,32,32,73,102,32,116,104,101,32,112,97,116,104,32,
+ 101,110,116,114,121,32,105,115,32,110,111,116,32,105,110,32,
+ 116,104,101,32,99,97,99,104,101,44,32,102,105,110,100,32,
+ 116,104,101,32,97,112,112,114,111,112,114,105,97,116,101,32,
+ 102,105,110,100,101,114,10,32,32,32,32,32,32,32,32,97,
+ 110,100,32,99,97,99,104,101,32,105,116,46,32,73,102,32,
+ 110,111,32,102,105,110,100,101,114,32,105,115,32,97,118,97,
+ 105,108,97,98,108,101,44,32,115,116,111,114,101,32,78,111,
+ 110,101,46,10,10,32,32,32,32,32,32,32,32,114,10,0,
+ 0,0,78,41,7,114,19,0,0,0,114,70,0,0,0,218,
+ 17,70,105,108,101,78,111,116,70,111,117,110,100,69,114,114,
+ 111,114,114,16,0,0,0,114,66,1,0,0,218,8,75,101,
+ 121,69,114,114,111,114,114,70,1,0,0,41,3,114,209,0,
+ 0,0,114,58,0,0,0,114,68,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,218,20,95,112,97,
+ 116,104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,
+ 101,16,5,0,0,115,30,0,0,0,8,8,2,1,12,1,
+ 12,1,6,3,2,1,12,1,4,4,12,253,10,1,12,1,
+ 4,1,2,253,2,250,255,128,122,31,80,97,116,104,70,105,
+ 110,100,101,114,46,95,112,97,116,104,95,105,109,112,111,114,
+ 116,101,114,95,99,97,99,104,101,99,3,0,0,0,0,0,
+ 0,0,0,0,0,0,6,0,0,0,4,0,0,0,67,0,
+ 0,0,115,82,0,0,0,116,0,124,2,100,1,131,2,114,
+ 26,124,2,160,1,124,1,161,1,92,2,125,3,125,4,110,
+ 14,124,2,160,2,124,1,161,1,125,3,103,0,125,4,124,
+ 3,100,0,117,1,114,60,116,3,160,4,124,1,124,3,161,
+ 2,83,0,116,3,160,5,124,1,100,0,161,2,125,5,124,
+ 4,124,5,95,6,124,5,83,0,41,2,78,114,148,0,0,
+ 0,41,7,114,140,0,0,0,114,148,0,0,0,114,217,0,
+ 0,0,114,146,0,0,0,114,212,0,0,0,114,194,0,0,
+ 0,114,189,0,0,0,41,6,114,209,0,0,0,114,150,0,
+ 0,0,114,68,1,0,0,114,151,0,0,0,114,152,0,0,
+ 0,114,198,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,218,16,95,108,101,103,97,99,121,95,103,
+ 101,116,95,115,112,101,99,38,5,0,0,115,20,0,0,0,
+ 10,4,16,1,10,2,4,1,8,1,12,1,12,1,6,1,
+ 4,1,255,128,122,27,80,97,116,104,70,105,110,100,101,114,
+ 46,95,108,101,103,97,99,121,95,103,101,116,95,115,112,101,
+ 99,78,99,4,0,0,0,0,0,0,0,0,0,0,0,9,
+ 0,0,0,5,0,0,0,67,0,0,0,115,166,0,0,0,
+ 103,0,125,4,124,2,68,0,93,134,125,5,116,0,124,5,
+ 116,1,116,2,102,2,131,2,115,28,113,8,124,0,160,3,
+ 124,5,161,1,125,6,124,6,100,1,117,1,114,142,116,4,
+ 124,6,100,2,131,2,114,70,124,6,160,5,124,1,124,3,
+ 161,2,125,7,110,12,124,0,160,6,124,1,124,6,161,2,
+ 125,7,124,7,100,1,117,0,114,92,113,8,124,7,106,7,
+ 100,1,117,1,114,110,124,7,2,0,1,0,83,0,124,7,
+ 106,8,125,8,124,8,100,1,117,0,114,132,116,9,100,3,
+ 131,1,130,1,124,4,160,10,124,8,161,1,1,0,113,8,
+ 116,11,160,12,124,1,100,1,161,2,125,7,124,4,124,7,
+ 95,8,124,7,83,0,41,4,122,63,70,105,110,100,32,116,
+ 104,101,32,108,111,97,100,101,114,32,111,114,32,110,97,109,
+ 101,115,112,97,99,101,95,112,97,116,104,32,102,111,114,32,
+ 116,104,105,115,32,109,111,100,117,108,101,47,112,97,99,107,
+ 97,103,101,32,110,97,109,101,46,78,114,214,0,0,0,122,
+ 19,115,112,101,99,32,109,105,115,115,105,110,103,32,108,111,
+ 97,100,101,114,41,13,114,172,0,0,0,114,97,0,0,0,
+ 218,5,98,121,116,101,115,114,73,1,0,0,114,140,0,0,
+ 0,114,214,0,0,0,114,74,1,0,0,114,151,0,0,0,
+ 114,189,0,0,0,114,129,0,0,0,114,178,0,0,0,114,
+ 146,0,0,0,114,194,0,0,0,41,9,114,209,0,0,0,
+ 114,150,0,0,0,114,58,0,0,0,114,213,0,0,0,218,
+ 14,110,97,109,101,115,112,97,99,101,95,112,97,116,104,90,
+ 5,101,110,116,114,121,114,68,1,0,0,114,198,0,0,0,
+ 114,152,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,218,9,95,103,101,116,95,115,112,101,99,53,
+ 5,0,0,115,44,0,0,0,4,5,8,1,14,1,2,1,
+ 10,1,8,1,10,1,14,1,12,2,8,1,2,1,10,1,
+ 8,1,6,1,8,1,8,1,10,5,2,128,12,2,6,1,
+ 4,1,255,128,122,20,80,97,116,104,70,105,110,100,101,114,
+ 46,95,103,101,116,95,115,112,101,99,99,4,0,0,0,0,
+ 0,0,0,0,0,0,0,6,0,0,0,5,0,0,0,67,
+ 0,0,0,115,94,0,0,0,124,2,100,1,117,0,114,14,
+ 116,0,106,1,125,2,124,0,160,2,124,1,124,2,124,3,
+ 161,3,125,4,124,4,100,1,117,0,114,40,100,1,83,0,
+ 124,4,106,3,100,1,117,0,114,90,124,4,106,4,125,5,
+ 124,5,114,86,100,1,124,4,95,5,116,6,124,1,124,5,
+ 124,0,106,2,131,3,124,4,95,4,124,4,83,0,100,1,
+ 83,0,124,4,83,0,41,2,122,141,84,114,121,32,116,111,
+ 32,102,105,110,100,32,97,32,115,112,101,99,32,102,111,114,
+ 32,39,102,117,108,108,110,97,109,101,39,32,111,110,32,115,
+ 121,115,46,112,97,116,104,32,111,114,32,39,112,97,116,104,
+ 39,46,10,10,32,32,32,32,32,32,32,32,84,104,101,32,
+ 115,101,97,114,99,104,32,105,115,32,98,97,115,101,100,32,
+ 111,110,32,115,121,115,46,112,97,116,104,95,104,111,111,107,
+ 115,32,97,110,100,32,115,121,115,46,112,97,116,104,95,105,
+ 109,112,111,114,116,101,114,95,99,97,99,104,101,46,10,32,
+ 32,32,32,32,32,32,32,78,41,7,114,16,0,0,0,114,
+ 58,0,0,0,114,77,1,0,0,114,151,0,0,0,114,189,
+ 0,0,0,114,192,0,0,0,114,33,1,0,0,41,6,114,
+ 209,0,0,0,114,150,0,0,0,114,58,0,0,0,114,213,
+ 0,0,0,114,198,0,0,0,114,76,1,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,214,0,0,
+ 0,85,5,0,0,115,28,0,0,0,8,6,6,1,14,1,
+ 8,1,4,1,10,1,6,1,4,1,6,3,16,1,4,1,
+ 4,2,4,2,255,128,122,20,80,97,116,104,70,105,110,100,
+ 101,114,46,102,105,110,100,95,115,112,101,99,99,3,0,0,
+ 0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,
+ 0,67,0,0,0,115,30,0,0,0,124,0,160,0,124,1,
+ 124,2,161,2,125,3,124,3,100,1,117,0,114,24,100,1,
+ 83,0,124,3,106,1,83,0,41,2,122,170,102,105,110,100,
+ 32,116,104,101,32,109,111,100,117,108,101,32,111,110,32,115,
+ 121,115,46,112,97,116,104,32,111,114,32,39,112,97,116,104,
+ 39,32,98,97,115,101,100,32,111,110,32,115,121,115,46,112,
+ 97,116,104,95,104,111,111,107,115,32,97,110,100,10,32,32,
+ 32,32,32,32,32,32,115,121,115,46,112,97,116,104,95,105,
+ 109,112,111,114,116,101,114,95,99,97,99,104,101,46,10,10,
+ 32,32,32,32,32,32,32,32,84,104,105,115,32,109,101,116,
+ 104,111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,
+ 100,46,32,32,85,115,101,32,102,105,110,100,95,115,112,101,
+ 99,40,41,32,105,110,115,116,101,97,100,46,10,10,32,32,
+ 32,32,32,32,32,32,78,114,215,0,0,0,114,216,0,0,
0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
- 114,232,0,0,0,223,4,0,0,114,60,1,0,0,122,28,
- 95,78,97,109,101,115,112,97,99,101,76,111,97,100,101,114,
- 46,101,120,101,99,95,109,111,100,117,108,101,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,
- 0,67,0,0,0,115,26,0,0,0,116,0,160,1,100,1,
- 124,0,106,2,161,2,1,0,116,0,160,3,124,0,124,1,
- 161,2,83,0,41,3,122,98,76,111,97,100,32,97,32,110,
- 97,109,101,115,112,97,99,101,32,109,111,100,117,108,101,46,
+ 114,217,0,0,0,109,5,0,0,115,10,0,0,0,12,8,
+ 8,1,4,1,6,1,255,128,122,22,80,97,116,104,70,105,
+ 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,
+ 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+ 0,4,0,0,0,79,0,0,0,115,28,0,0,0,100,1,
+ 100,2,108,0,109,1,125,2,1,0,124,2,106,2,124,0,
+ 105,0,124,1,164,1,142,1,83,0,41,4,97,32,1,0,
+ 0,10,32,32,32,32,32,32,32,32,70,105,110,100,32,100,
+ 105,115,116,114,105,98,117,116,105,111,110,115,46,10,10,32,
+ 32,32,32,32,32,32,32,82,101,116,117,114,110,32,97,110,
+ 32,105,116,101,114,97,98,108,101,32,111,102,32,97,108,108,
+ 32,68,105,115,116,114,105,98,117,116,105,111,110,32,105,110,
+ 115,116,97,110,99,101,115,32,99,97,112,97,98,108,101,32,
+ 111,102,10,32,32,32,32,32,32,32,32,108,111,97,100,105,
+ 110,103,32,116,104,101,32,109,101,116,97,100,97,116,97,32,
+ 102,111,114,32,112,97,99,107,97,103,101,115,32,109,97,116,
+ 99,104,105,110,103,32,96,96,99,111,110,116,101,120,116,46,
+ 110,97,109,101,96,96,10,32,32,32,32,32,32,32,32,40,
+ 111,114,32,97,108,108,32,110,97,109,101,115,32,105,102,32,
+ 96,96,78,111,110,101,96,96,32,105,110,100,105,99,97,116,
+ 101,100,41,32,97,108,111,110,103,32,116,104,101,32,112,97,
+ 116,104,115,32,105,110,32,116,104,101,32,108,105,115,116,10,
+ 32,32,32,32,32,32,32,32,111,102,32,100,105,114,101,99,
+ 116,111,114,105,101,115,32,96,96,99,111,110,116,101,120,116,
+ 46,112,97,116,104,96,96,46,10,32,32,32,32,32,32,32,
+ 32,114,0,0,0,0,41,1,218,18,77,101,116,97,100,97,
+ 116,97,80,97,116,104,70,105,110,100,101,114,78,41,3,90,
+ 18,105,109,112,111,114,116,108,105,98,46,109,101,116,97,100,
+ 97,116,97,114,78,1,0,0,218,18,102,105,110,100,95,100,
+ 105,115,116,114,105,98,117,116,105,111,110,115,41,3,114,131,
+ 0,0,0,114,132,0,0,0,114,78,1,0,0,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,114,79,1,0,
+ 0,122,5,0,0,115,6,0,0,0,12,10,16,1,255,128,
+ 122,29,80,97,116,104,70,105,110,100,101,114,46,102,105,110,
+ 100,95,100,105,115,116,114,105,98,117,116,105,111,110,115,41,
+ 1,78,41,2,78,78,41,1,78,41,14,114,137,0,0,0,
+ 114,136,0,0,0,114,138,0,0,0,114,139,0,0,0,114,
+ 220,0,0,0,114,64,1,0,0,114,70,1,0,0,114,221,
+ 0,0,0,114,73,1,0,0,114,74,1,0,0,114,77,1,
+ 0,0,114,214,0,0,0,114,217,0,0,0,114,79,1,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,
+ 114,8,0,0,0,114,63,1,0,0,245,4,0,0,115,38,
+ 0,0,0,8,0,4,2,2,2,10,1,2,9,10,1,2,
+ 12,10,1,2,21,10,1,2,14,12,1,2,31,12,1,2,
+ 23,12,1,2,12,14,1,255,128,114,63,1,0,0,99,0,
+ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
+ 0,0,0,64,0,0,0,115,90,0,0,0,101,0,90,1,
+ 100,0,90,2,100,1,90,3,100,2,100,3,132,0,90,4,
+ 100,4,100,5,132,0,90,5,101,6,90,7,100,6,100,7,
+ 132,0,90,8,100,8,100,9,132,0,90,9,100,19,100,11,
+ 100,12,132,1,90,10,100,13,100,14,132,0,90,11,101,12,
+ 100,15,100,16,132,0,131,1,90,13,100,17,100,18,132,0,
+ 90,14,100,10,83,0,41,20,218,10,70,105,108,101,70,105,
+ 110,100,101,114,122,172,70,105,108,101,45,98,97,115,101,100,
+ 32,102,105,110,100,101,114,46,10,10,32,32,32,32,73,110,
+ 116,101,114,97,99,116,105,111,110,115,32,119,105,116,104,32,
+ 116,104,101,32,102,105,108,101,32,115,121,115,116,101,109,32,
+ 97,114,101,32,99,97,99,104,101,100,32,102,111,114,32,112,
+ 101,114,102,111,114,109,97,110,99,101,44,32,98,101,105,110,
+ 103,10,32,32,32,32,114,101,102,114,101,115,104,101,100,32,
+ 119,104,101,110,32,116,104,101,32,100,105,114,101,99,116,111,
+ 114,121,32,116,104,101,32,102,105,110,100,101,114,32,105,115,
+ 32,104,97,110,100,108,105,110,103,32,104,97,115,32,98,101,
+ 101,110,32,109,111,100,105,102,105,101,100,46,10,10,32,32,
+ 32,32,99,2,0,0,0,0,0,0,0,0,0,0,0,5,
+ 0,0,0,6,0,0,0,7,0,0,0,115,84,0,0,0,
+ 103,0,125,3,124,2,68,0,93,32,92,2,137,0,125,4,
+ 124,3,160,0,135,0,102,1,100,1,100,2,132,8,124,4,
+ 68,0,131,1,161,1,1,0,113,8,124,3,124,0,95,1,
+ 124,1,112,54,100,3,124,0,95,2,100,4,124,0,95,3,
+ 116,4,131,0,124,0,95,5,116,4,131,0,124,0,95,6,
+ 100,5,83,0,41,6,122,154,73,110,105,116,105,97,108,105,
+ 122,101,32,119,105,116,104,32,116,104,101,32,112,97,116,104,
+ 32,116,111,32,115,101,97,114,99,104,32,111,110,32,97,110,
+ 100,32,97,32,118,97,114,105,97,98,108,101,32,110,117,109,
+ 98,101,114,32,111,102,10,32,32,32,32,32,32,32,32,50,
+ 45,116,117,112,108,101,115,32,99,111,110,116,97,105,110,105,
+ 110,103,32,116,104,101,32,108,111,97,100,101,114,32,97,110,
+ 100,32,116,104,101,32,102,105,108,101,32,115,117,102,102,105,
+ 120,101,115,32,116,104,101,32,108,111,97,100,101,114,10,32,
+ 32,32,32,32,32,32,32,114,101,99,111,103,110,105,122,101,
+ 115,46,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
+ 0,0,0,3,0,0,0,51,0,0,0,115,22,0,0,0,
+ 124,0,93,14,125,1,124,1,136,0,102,2,86,0,1,0,
+ 113,2,100,0,83,0,114,121,0,0,0,114,7,0,0,0,
+ 114,29,1,0,0,169,1,114,151,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,9,0,0,0,151,5,0,0,114,
+ 14,0,0,0,122,38,70,105,108,101,70,105,110,100,101,114,
+ 46,95,95,105,110,105,116,95,95,46,60,108,111,99,97,108,
+ 115,62,46,60,103,101,110,101,120,112,114,62,114,86,0,0,
+ 0,114,116,0,0,0,78,41,7,114,178,0,0,0,218,8,
+ 95,108,111,97,100,101,114,115,114,58,0,0,0,218,11,95,
+ 112,97,116,104,95,109,116,105,109,101,218,3,115,101,116,218,
+ 11,95,112,97,116,104,95,99,97,99,104,101,218,19,95,114,
+ 101,108,97,120,101,100,95,112,97,116,104,95,99,97,99,104,
+ 101,41,5,114,130,0,0,0,114,58,0,0,0,218,14,108,
+ 111,97,100,101,114,95,100,101,116,97,105,108,115,90,7,108,
+ 111,97,100,101,114,115,114,200,0,0,0,114,7,0,0,0,
+ 114,81,1,0,0,114,8,0,0,0,114,223,0,0,0,145,
+ 5,0,0,115,18,0,0,0,4,4,12,1,26,1,6,1,
+ 10,2,6,1,8,1,12,1,255,128,122,19,70,105,108,101,
+ 70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,99,
+ 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
+ 2,0,0,0,67,0,0,0,115,10,0,0,0,100,1,124,
+ 0,95,0,100,2,83,0,41,3,122,31,73,110,118,97,108,
+ 105,100,97,116,101,32,116,104,101,32,100,105,114,101,99,116,
+ 111,114,121,32,109,116,105,109,101,46,114,116,0,0,0,78,
+ 41,1,114,83,1,0,0,114,8,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,64,1,0,0,
+ 159,5,0,0,114,69,0,0,0,122,28,70,105,108,101,70,
+ 105,110,100,101,114,46,105,110,118,97,108,105,100,97,116,101,
+ 95,99,97,99,104,101,115,99,2,0,0,0,0,0,0,0,
+ 0,0,0,0,3,0,0,0,3,0,0,0,67,0,0,0,
+ 115,42,0,0,0,124,0,160,0,124,1,161,1,125,2,124,
+ 2,100,1,117,0,114,26,100,1,103,0,102,2,83,0,124,
+ 2,106,1,124,2,106,2,112,38,103,0,102,2,83,0,41,
+ 2,122,197,84,114,121,32,116,111,32,102,105,110,100,32,97,
+ 32,108,111,97,100,101,114,32,102,111,114,32,116,104,101,32,
+ 115,112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,
+ 44,32,111,114,32,116,104,101,32,110,97,109,101,115,112,97,
+ 99,101,10,32,32,32,32,32,32,32,32,112,97,99,107,97,
+ 103,101,32,112,111,114,116,105,111,110,115,46,32,82,101,116,
+ 117,114,110,115,32,40,108,111,97,100,101,114,44,32,108,105,
+ 115,116,45,111,102,45,112,111,114,116,105,111,110,115,41,46,
10,10,32,32,32,32,32,32,32,32,84,104,105,115,32,109,
101,116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,
- 116,101,100,46,32,32,85,115,101,32,101,120,101,99,95,109,
- 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,46,
- 10,10,32,32,32,32,32,32,32,32,122,38,110,97,109,101,
- 115,112,97,99,101,32,109,111,100,117,108,101,32,108,111,97,
- 100,101,100,32,119,105,116,104,32,112,97,116,104,32,123,33,
- 114,125,78,41,4,114,146,0,0,0,114,160,0,0,0,114,
- 34,1,0,0,114,233,0,0,0,114,234,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,235,0,
- 0,0,226,4,0,0,115,10,0,0,0,6,7,4,1,4,
- 255,12,3,255,128,122,28,95,78,97,109,101,115,112,97,99,
- 101,76,111,97,100,101,114,46,108,111,97,100,95,109,111,100,
- 117,108,101,78,41,12,114,137,0,0,0,114,136,0,0,0,
- 114,138,0,0,0,114,223,0,0,0,114,220,0,0,0,114,
- 59,1,0,0,114,193,0,0,0,114,244,0,0,0,114,228,
- 0,0,0,114,226,0,0,0,114,232,0,0,0,114,235,0,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,114,58,1,0,0,198,4,0,0,115,
- 22,0,0,0,8,0,8,1,2,3,10,1,8,8,8,3,
- 8,3,8,3,8,3,12,3,255,128,114,58,1,0,0,99,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 4,0,0,0,64,0,0,0,115,118,0,0,0,101,0,90,
- 1,100,0,90,2,100,1,90,3,101,4,100,2,100,3,132,
- 0,131,1,90,5,101,4,100,4,100,5,132,0,131,1,90,
- 6,101,7,100,6,100,7,132,0,131,1,90,8,101,7,100,
- 8,100,9,132,0,131,1,90,9,101,7,100,19,100,11,100,
- 12,132,1,131,1,90,10,101,7,100,20,100,13,100,14,132,
- 1,131,1,90,11,101,7,100,21,100,15,100,16,132,1,131,
- 1,90,12,101,4,100,17,100,18,132,0,131,1,90,13,100,
- 10,83,0,41,22,218,10,80,97,116,104,70,105,110,100,101,
- 114,122,62,77,101,116,97,32,112,97,116,104,32,102,105,110,
- 100,101,114,32,102,111,114,32,115,121,115,46,112,97,116,104,
- 32,97,110,100,32,112,97,99,107,97,103,101,32,95,95,112,
- 97,116,104,95,95,32,97,116,116,114,105,98,117,116,101,115,
- 46,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,116,
- 0,116,1,106,2,160,3,161,0,131,1,68,0,93,44,92,
- 2,125,0,125,1,124,1,100,1,117,0,114,40,116,1,106,
- 2,124,0,61,0,113,14,116,4,124,1,100,2,131,2,114,
- 58,124,1,160,5,161,0,1,0,113,14,100,1,83,0,41,
- 3,122,125,67,97,108,108,32,116,104,101,32,105,110,118,97,
- 108,105,100,97,116,101,95,99,97,99,104,101,115,40,41,32,
- 109,101,116,104,111,100,32,111,110,32,97,108,108,32,112,97,
- 116,104,32,101,110,116,114,121,32,102,105,110,100,101,114,115,
- 10,32,32,32,32,32,32,32,32,115,116,111,114,101,100,32,
- 105,110,32,115,121,115,46,112,97,116,104,95,105,109,112,111,
- 114,116,101,114,95,99,97,99,104,101,115,32,40,119,104,101,
- 114,101,32,105,109,112,108,101,109,101,110,116,101,100,41,46,
- 78,218,17,105,110,118,97,108,105,100,97,116,101,95,99,97,
- 99,104,101,115,41,6,218,4,108,105,115,116,114,16,0,0,
- 0,218,19,112,97,116,104,95,105,109,112,111,114,116,101,114,
- 95,99,97,99,104,101,218,5,105,116,101,109,115,114,140,0,
- 0,0,114,62,1,0,0,41,2,114,128,0,0,0,218,6,
- 102,105,110,100,101,114,114,7,0,0,0,114,7,0,0,0,
- 114,8,0,0,0,114,62,1,0,0,245,4,0,0,115,16,
- 0,0,0,22,4,8,1,10,1,10,1,8,1,2,128,4,
- 252,255,128,122,28,80,97,116,104,70,105,110,100,101,114,46,
- 105,110,118,97,108,105,100,97,116,101,95,99,97,99,104,101,
- 115,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,
- 0,0,9,0,0,0,67,0,0,0,115,76,0,0,0,116,
- 0,106,1,100,1,117,1,114,28,116,0,106,1,115,28,116,
- 2,160,3,100,2,116,4,161,2,1,0,116,0,106,1,68,
- 0,93,34,125,1,122,14,124,1,124,0,131,1,87,0,2,
- 0,1,0,83,0,4,0,116,5,121,74,1,0,1,0,1,
- 0,89,0,113,34,100,1,83,0,119,0,41,3,122,46,83,
- 101,97,114,99,104,32,115,121,115,46,112,97,116,104,95,104,
- 111,111,107,115,32,102,111,114,32,97,32,102,105,110,100,101,
- 114,32,102,111,114,32,39,112,97,116,104,39,46,78,122,23,
- 115,121,115,46,112,97,116,104,95,104,111,111,107,115,32,105,
- 115,32,101,109,112,116,121,41,6,114,16,0,0,0,218,10,
- 112,97,116,104,95,104,111,111,107,115,114,88,0,0,0,114,
- 89,0,0,0,114,149,0,0,0,114,129,0,0,0,41,2,
- 114,58,0,0,0,90,4,104,111,111,107,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,218,11,95,112,97,116,
- 104,95,104,111,111,107,115,255,4,0,0,115,20,0,0,0,
- 16,3,12,1,10,1,2,1,14,1,12,1,4,1,4,2,
- 2,253,255,128,122,22,80,97,116,104,70,105,110,100,101,114,
- 46,95,112,97,116,104,95,104,111,111,107,115,99,2,0,0,
- 0,0,0,0,0,0,0,0,0,3,0,0,0,8,0,0,
- 0,67,0,0,0,115,100,0,0,0,124,1,100,1,107,2,
- 114,40,122,12,116,0,160,1,161,0,125,1,87,0,110,18,
- 4,0,116,2,121,98,1,0,1,0,1,0,89,0,100,2,
- 83,0,122,16,116,3,106,4,124,1,25,0,125,2,87,0,
- 124,2,83,0,4,0,116,5,121,96,1,0,1,0,1,0,
- 124,0,160,6,124,1,161,1,125,2,124,2,116,3,106,4,
- 124,1,60,0,89,0,124,2,83,0,119,0,119,0,41,3,
- 122,210,71,101,116,32,116,104,101,32,102,105,110,100,101,114,
- 32,102,111,114,32,116,104,101,32,112,97,116,104,32,101,110,
- 116,114,121,32,102,114,111,109,32,115,121,115,46,112,97,116,
- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
- 46,10,10,32,32,32,32,32,32,32,32,73,102,32,116,104,
- 101,32,112,97,116,104,32,101,110,116,114,121,32,105,115,32,
- 110,111,116,32,105,110,32,116,104,101,32,99,97,99,104,101,
- 44,32,102,105,110,100,32,116,104,101,32,97,112,112,114,111,
- 112,114,105,97,116,101,32,102,105,110,100,101,114,10,32,32,
- 32,32,32,32,32,32,97,110,100,32,99,97,99,104,101,32,
- 105,116,46,32,73,102,32,110,111,32,102,105,110,100,101,114,
- 32,105,115,32,97,118,97,105,108,97,98,108,101,44,32,115,
- 116,111,114,101,32,78,111,110,101,46,10,10,32,32,32,32,
- 32,32,32,32,114,10,0,0,0,78,41,7,114,19,0,0,
- 0,114,70,0,0,0,218,17,70,105,108,101,78,111,116,70,
- 111,117,110,100,69,114,114,111,114,114,16,0,0,0,114,64,
- 1,0,0,218,8,75,101,121,69,114,114,111,114,114,68,1,
- 0,0,41,3,114,209,0,0,0,114,58,0,0,0,114,66,
- 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,218,20,95,112,97,116,104,95,105,109,112,111,114,116,
- 101,114,95,99,97,99,104,101,12,5,0,0,115,30,0,0,
- 0,8,8,2,1,12,1,12,1,6,3,2,1,12,1,4,
- 4,12,253,10,1,12,1,4,1,2,253,2,250,255,128,122,
- 31,80,97,116,104,70,105,110,100,101,114,46,95,112,97,116,
- 104,95,105,109,112,111,114,116,101,114,95,99,97,99,104,101,
- 99,3,0,0,0,0,0,0,0,0,0,0,0,6,0,0,
- 0,4,0,0,0,67,0,0,0,115,82,0,0,0,116,0,
- 124,2,100,1,131,2,114,26,124,2,160,1,124,1,161,1,
- 92,2,125,3,125,4,110,14,124,2,160,2,124,1,161,1,
- 125,3,103,0,125,4,124,3,100,0,117,1,114,60,116,3,
- 160,4,124,1,124,3,161,2,83,0,116,3,160,5,124,1,
- 100,0,161,2,125,5,124,4,124,5,95,6,124,5,83,0,
- 41,2,78,114,148,0,0,0,41,7,114,140,0,0,0,114,
- 148,0,0,0,114,217,0,0,0,114,146,0,0,0,114,212,
- 0,0,0,114,194,0,0,0,114,189,0,0,0,41,6,114,
- 209,0,0,0,114,150,0,0,0,114,66,1,0,0,114,151,
- 0,0,0,114,152,0,0,0,114,198,0,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,218,16,95,108,
- 101,103,97,99,121,95,103,101,116,95,115,112,101,99,34,5,
- 0,0,115,20,0,0,0,10,4,16,1,10,2,4,1,8,
- 1,12,1,12,1,6,1,4,1,255,128,122,27,80,97,116,
- 104,70,105,110,100,101,114,46,95,108,101,103,97,99,121,95,
- 103,101,116,95,115,112,101,99,78,99,4,0,0,0,0,0,
- 0,0,0,0,0,0,9,0,0,0,5,0,0,0,67,0,
- 0,0,115,166,0,0,0,103,0,125,4,124,2,68,0,93,
- 134,125,5,116,0,124,5,116,1,116,2,102,2,131,2,115,
- 28,113,8,124,0,160,3,124,5,161,1,125,6,124,6,100,
- 1,117,1,114,142,116,4,124,6,100,2,131,2,114,70,124,
- 6,160,5,124,1,124,3,161,2,125,7,110,12,124,0,160,
- 6,124,1,124,6,161,2,125,7,124,7,100,1,117,0,114,
- 92,113,8,124,7,106,7,100,1,117,1,114,110,124,7,2,
- 0,1,0,83,0,124,7,106,8,125,8,124,8,100,1,117,
- 0,114,132,116,9,100,3,131,1,130,1,124,4,160,10,124,
- 8,161,1,1,0,113,8,116,11,160,12,124,1,100,1,161,
- 2,125,7,124,4,124,7,95,8,124,7,83,0,41,4,122,
- 63,70,105,110,100,32,116,104,101,32,108,111,97,100,101,114,
- 32,111,114,32,110,97,109,101,115,112,97,99,101,95,112,97,
- 116,104,32,102,111,114,32,116,104,105,115,32,109,111,100,117,
- 108,101,47,112,97,99,107,97,103,101,32,110,97,109,101,46,
- 78,114,214,0,0,0,122,19,115,112,101,99,32,109,105,115,
- 115,105,110,103,32,108,111,97,100,101,114,41,13,114,172,0,
- 0,0,114,97,0,0,0,218,5,98,121,116,101,115,114,71,
- 1,0,0,114,140,0,0,0,114,214,0,0,0,114,72,1,
- 0,0,114,151,0,0,0,114,189,0,0,0,114,129,0,0,
- 0,114,178,0,0,0,114,146,0,0,0,114,194,0,0,0,
- 41,9,114,209,0,0,0,114,150,0,0,0,114,58,0,0,
- 0,114,213,0,0,0,218,14,110,97,109,101,115,112,97,99,
- 101,95,112,97,116,104,90,5,101,110,116,114,121,114,66,1,
- 0,0,114,198,0,0,0,114,152,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,218,9,95,103,101,
- 116,95,115,112,101,99,49,5,0,0,115,44,0,0,0,4,
- 5,8,1,14,1,2,1,10,1,8,1,10,1,14,1,12,
- 2,8,1,2,1,10,1,8,1,6,1,8,1,8,1,10,
- 5,2,128,12,2,6,1,4,1,255,128,122,20,80,97,116,
- 104,70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,
- 99,99,4,0,0,0,0,0,0,0,0,0,0,0,6,0,
- 0,0,5,0,0,0,67,0,0,0,115,94,0,0,0,124,
- 2,100,1,117,0,114,14,116,0,106,1,125,2,124,0,160,
- 2,124,1,124,2,124,3,161,3,125,4,124,4,100,1,117,
- 0,114,40,100,1,83,0,124,4,106,3,100,1,117,0,114,
- 90,124,4,106,4,125,5,124,5,114,86,100,1,124,4,95,
- 5,116,6,124,1,124,5,124,0,106,2,131,3,124,4,95,
- 4,124,4,83,0,100,1,83,0,124,4,83,0,41,2,122,
- 141,84,114,121,32,116,111,32,102,105,110,100,32,97,32,115,
- 112,101,99,32,102,111,114,32,39,102,117,108,108,110,97,109,
- 101,39,32,111,110,32,115,121,115,46,112,97,116,104,32,111,
- 114,32,39,112,97,116,104,39,46,10,10,32,32,32,32,32,
- 32,32,32,84,104,101,32,115,101,97,114,99,104,32,105,115,
- 32,98,97,115,101,100,32,111,110,32,115,121,115,46,112,97,
- 116,104,95,104,111,111,107,115,32,97,110,100,32,115,121,115,
- 46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,
- 97,99,104,101,46,10,32,32,32,32,32,32,32,32,78,41,
- 7,114,16,0,0,0,114,58,0,0,0,114,75,1,0,0,
- 114,151,0,0,0,114,189,0,0,0,114,192,0,0,0,114,
- 32,1,0,0,41,6,114,209,0,0,0,114,150,0,0,0,
- 114,58,0,0,0,114,213,0,0,0,114,198,0,0,0,114,
- 74,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,214,0,0,0,81,5,0,0,115,28,0,0,
- 0,8,6,6,1,14,1,8,1,4,1,10,1,6,1,4,
- 1,6,3,16,1,4,1,4,2,4,2,255,128,122,20,80,
- 97,116,104,70,105,110,100,101,114,46,102,105,110,100,95,115,
- 112,101,99,99,3,0,0,0,0,0,0,0,0,0,0,0,
- 4,0,0,0,4,0,0,0,67,0,0,0,115,30,0,0,
- 0,124,0,160,0,124,1,124,2,161,2,125,3,124,3,100,
- 1,117,0,114,24,100,1,83,0,124,3,106,1,83,0,41,
- 2,122,170,102,105,110,100,32,116,104,101,32,109,111,100,117,
- 108,101,32,111,110,32,115,121,115,46,112,97,116,104,32,111,
- 114,32,39,112,97,116,104,39,32,98,97,115,101,100,32,111,
- 110,32,115,121,115,46,112,97,116,104,95,104,111,111,107,115,
- 32,97,110,100,10,32,32,32,32,32,32,32,32,115,121,115,
- 46,112,97,116,104,95,105,109,112,111,114,116,101,114,95,99,
- 97,99,104,101,46,10,10,32,32,32,32,32,32,32,32,84,
- 104,105,115,32,109,101,116,104,111,100,32,105,115,32,100,101,
- 112,114,101,99,97,116,101,100,46,32,32,85,115,101,32,102,
- 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,
- 97,100,46,10,10,32,32,32,32,32,32,32,32,78,114,215,
- 0,0,0,114,216,0,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,114,217,0,0,0,105,5,0,0,
- 115,10,0,0,0,12,8,8,1,4,1,6,1,255,128,122,
- 22,80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,
- 95,109,111,100,117,108,101,99,0,0,0,0,0,0,0,0,
- 0,0,0,0,3,0,0,0,4,0,0,0,79,0,0,0,
- 115,28,0,0,0,100,1,100,2,108,0,109,1,125,2,1,
- 0,124,2,106,2,124,0,105,0,124,1,164,1,142,1,83,
- 0,41,4,97,32,1,0,0,10,32,32,32,32,32,32,32,
- 32,70,105,110,100,32,100,105,115,116,114,105,98,117,116,105,
- 111,110,115,46,10,10,32,32,32,32,32,32,32,32,82,101,
- 116,117,114,110,32,97,110,32,105,116,101,114,97,98,108,101,
- 32,111,102,32,97,108,108,32,68,105,115,116,114,105,98,117,
- 116,105,111,110,32,105,110,115,116,97,110,99,101,115,32,99,
- 97,112,97,98,108,101,32,111,102,10,32,32,32,32,32,32,
- 32,32,108,111,97,100,105,110,103,32,116,104,101,32,109,101,
- 116,97,100,97,116,97,32,102,111,114,32,112,97,99,107,97,
- 103,101,115,32,109,97,116,99,104,105,110,103,32,96,96,99,
- 111,110,116,101,120,116,46,110,97,109,101,96,96,10,32,32,
- 32,32,32,32,32,32,40,111,114,32,97,108,108,32,110,97,
- 109,101,115,32,105,102,32,96,96,78,111,110,101,96,96,32,
- 105,110,100,105,99,97,116,101,100,41,32,97,108,111,110,103,
- 32,116,104,101,32,112,97,116,104,115,32,105,110,32,116,104,
- 101,32,108,105,115,116,10,32,32,32,32,32,32,32,32,111,
- 102,32,100,105,114,101,99,116,111,114,105,101,115,32,96,96,
- 99,111,110,116,101,120,116,46,112,97,116,104,96,96,46,10,
- 32,32,32,32,32,32,32,32,114,0,0,0,0,41,1,218,
- 18,77,101,116,97,100,97,116,97,80,97,116,104,70,105,110,
- 100,101,114,78,41,3,90,18,105,109,112,111,114,116,108,105,
- 98,46,109,101,116,97,100,97,116,97,114,76,1,0,0,218,
- 18,102,105,110,100,95,100,105,115,116,114,105,98,117,116,105,
- 111,110,115,41,3,114,131,0,0,0,114,132,0,0,0,114,
- 76,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,114,77,1,0,0,118,5,0,0,115,6,0,0,
- 0,12,10,16,1,255,128,122,29,80,97,116,104,70,105,110,
- 100,101,114,46,102,105,110,100,95,100,105,115,116,114,105,98,
- 117,116,105,111,110,115,41,1,78,41,2,78,78,41,1,78,
- 41,14,114,137,0,0,0,114,136,0,0,0,114,138,0,0,
- 0,114,139,0,0,0,114,220,0,0,0,114,62,1,0,0,
- 114,68,1,0,0,114,221,0,0,0,114,71,1,0,0,114,
- 72,1,0,0,114,75,1,0,0,114,214,0,0,0,114,217,
- 0,0,0,114,77,1,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,7,0,0,0,114,8,0,0,0,114,61,1,0,
- 0,241,4,0,0,115,38,0,0,0,8,0,4,2,2,2,
- 10,1,2,9,10,1,2,12,10,1,2,21,10,1,2,14,
- 12,1,2,31,12,1,2,23,12,1,2,12,14,1,255,128,
- 114,61,1,0,0,99,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,3,0,0,0,64,0,0,0,115,90,
- 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100,
- 2,100,3,132,0,90,4,100,4,100,5,132,0,90,5,101,
- 6,90,7,100,6,100,7,132,0,90,8,100,8,100,9,132,
- 0,90,9,100,19,100,11,100,12,132,1,90,10,100,13,100,
- 14,132,0,90,11,101,12,100,15,100,16,132,0,131,1,90,
- 13,100,17,100,18,132,0,90,14,100,10,83,0,41,20,218,
- 10,70,105,108,101,70,105,110,100,101,114,122,172,70,105,108,
- 101,45,98,97,115,101,100,32,102,105,110,100,101,114,46,10,
- 10,32,32,32,32,73,110,116,101,114,97,99,116,105,111,110,
- 115,32,119,105,116,104,32,116,104,101,32,102,105,108,101,32,
- 115,121,115,116,101,109,32,97,114,101,32,99,97,99,104,101,
- 100,32,102,111,114,32,112,101,114,102,111,114,109,97,110,99,
- 101,44,32,98,101,105,110,103,10,32,32,32,32,114,101,102,
- 114,101,115,104,101,100,32,119,104,101,110,32,116,104,101,32,
- 100,105,114,101,99,116,111,114,121,32,116,104,101,32,102,105,
- 110,100,101,114,32,105,115,32,104,97,110,100,108,105,110,103,
- 32,104,97,115,32,98,101,101,110,32,109,111,100,105,102,105,
- 101,100,46,10,10,32,32,32,32,99,2,0,0,0,0,0,
- 0,0,0,0,0,0,5,0,0,0,6,0,0,0,7,0,
- 0,0,115,84,0,0,0,103,0,125,3,124,2,68,0,93,
- 32,92,2,137,0,125,4,124,3,160,0,135,0,102,1,100,
- 1,100,2,132,8,124,4,68,0,131,1,161,1,1,0,113,
- 8,124,3,124,0,95,1,124,1,112,54,100,3,124,0,95,
- 2,100,4,124,0,95,3,116,4,131,0,124,0,95,5,116,
- 4,131,0,124,0,95,6,100,5,83,0,41,6,122,154,73,
- 110,105,116,105,97,108,105,122,101,32,119,105,116,104,32,116,
- 104,101,32,112,97,116,104,32,116,111,32,115,101,97,114,99,
- 104,32,111,110,32,97,110,100,32,97,32,118,97,114,105,97,
- 98,108,101,32,110,117,109,98,101,114,32,111,102,10,32,32,
- 32,32,32,32,32,32,50,45,116,117,112,108,101,115,32,99,
- 111,110,116,97,105,110,105,110,103,32,116,104,101,32,108,111,
- 97,100,101,114,32,97,110,100,32,116,104,101,32,102,105,108,
- 101,32,115,117,102,102,105,120,101,115,32,116,104,101,32,108,
- 111,97,100,101,114,10,32,32,32,32,32,32,32,32,114,101,
- 99,111,103,110,105,122,101,115,46,99,1,0,0,0,0,0,
- 0,0,0,0,0,0,2,0,0,0,3,0,0,0,51,0,
- 0,0,115,22,0,0,0,124,0,93,14,125,1,124,1,136,
- 0,102,2,86,0,1,0,113,2,100,0,83,0,114,121,0,
- 0,0,114,7,0,0,0,114,28,1,0,0,169,1,114,151,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0,
- 0,0,147,5,0,0,114,14,0,0,0,122,38,70,105,108,
- 101,70,105,110,100,101,114,46,95,95,105,110,105,116,95,95,
- 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120,
- 112,114,62,114,86,0,0,0,114,116,0,0,0,78,41,7,
- 114,178,0,0,0,218,8,95,108,111,97,100,101,114,115,114,
- 58,0,0,0,218,11,95,112,97,116,104,95,109,116,105,109,
- 101,218,3,115,101,116,218,11,95,112,97,116,104,95,99,97,
- 99,104,101,218,19,95,114,101,108,97,120,101,100,95,112,97,
- 116,104,95,99,97,99,104,101,41,5,114,130,0,0,0,114,
- 58,0,0,0,218,14,108,111,97,100,101,114,95,100,101,116,
- 97,105,108,115,90,7,108,111,97,100,101,114,115,114,200,0,
- 0,0,114,7,0,0,0,114,79,1,0,0,114,8,0,0,
- 0,114,223,0,0,0,141,5,0,0,115,18,0,0,0,4,
- 4,12,1,26,1,6,1,10,2,6,1,8,1,12,1,255,
- 128,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,
- 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,2,0,0,0,67,0,0,0,115,
- 10,0,0,0,100,1,124,0,95,0,100,2,83,0,41,3,
- 122,31,73,110,118,97,108,105,100,97,116,101,32,116,104,101,
- 32,100,105,114,101,99,116,111,114,121,32,109,116,105,109,101,
- 46,114,116,0,0,0,78,41,1,114,81,1,0,0,114,8,
- 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,62,1,0,0,155,5,0,0,114,69,0,0,0,
- 122,28,70,105,108,101,70,105,110,100,101,114,46,105,110,118,
- 97,108,105,100,97,116,101,95,99,97,99,104,101,115,99,2,
- 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,
- 0,0,0,67,0,0,0,115,42,0,0,0,124,0,160,0,
- 124,1,161,1,125,2,124,2,100,1,117,0,114,26,100,1,
- 103,0,102,2,83,0,124,2,106,1,124,2,106,2,112,38,
- 103,0,102,2,83,0,41,2,122,197,84,114,121,32,116,111,
- 32,102,105,110,100,32,97,32,108,111,97,100,101,114,32,102,
- 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,
- 32,109,111,100,117,108,101,44,32,111,114,32,116,104,101,32,
- 110,97,109,101,115,112,97,99,101,10,32,32,32,32,32,32,
- 32,32,112,97,99,107,97,103,101,32,112,111,114,116,105,111,
- 110,115,46,32,82,101,116,117,114,110,115,32,40,108,111,97,
- 100,101,114,44,32,108,105,115,116,45,111,102,45,112,111,114,
- 116,105,111,110,115,41,46,10,10,32,32,32,32,32,32,32,
- 32,84,104,105,115,32,109,101,116,104,111,100,32,105,115,32,
- 100,101,112,114,101,99,97,116,101,100,46,32,32,85,115,101,
- 32,102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,
- 116,101,97,100,46,10,10,32,32,32,32,32,32,32,32,78,
- 41,3,114,214,0,0,0,114,151,0,0,0,114,189,0,0,
- 0,41,3,114,130,0,0,0,114,150,0,0,0,114,198,0,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,
- 0,114,148,0,0,0,161,5,0,0,115,10,0,0,0,10,
- 7,8,1,8,1,16,1,255,128,122,22,70,105,108,101,70,
- 105,110,100,101,114,46,102,105,110,100,95,108,111,97,100,101,
- 114,99,6,0,0,0,0,0,0,0,0,0,0,0,7,0,
- 0,0,6,0,0,0,67,0,0,0,115,26,0,0,0,124,
- 1,124,2,124,3,131,2,125,6,116,0,124,2,124,3,124,
- 6,124,4,100,1,141,4,83,0,41,2,78,114,188,0,0,
- 0,41,1,114,201,0,0,0,41,7,114,130,0,0,0,114,
- 199,0,0,0,114,150,0,0,0,114,58,0,0,0,90,4,
- 115,109,115,108,114,213,0,0,0,114,151,0,0,0,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,75,1,
- 0,0,173,5,0,0,115,10,0,0,0,10,1,8,1,2,
- 1,6,255,255,128,122,20,70,105,108,101,70,105,110,100,101,
- 114,46,95,103,101,116,95,115,112,101,99,78,99,3,0,0,
- 0,0,0,0,0,0,0,0,0,14,0,0,0,8,0,0,
- 0,67,0,0,0,115,100,1,0,0,100,1,125,3,124,1,
- 160,0,100,2,161,1,100,3,25,0,125,4,122,24,116,1,
- 124,0,106,2,112,34,116,3,160,4,161,0,131,1,106,5,
- 125,5,87,0,110,20,4,0,116,6,144,1,121,98,1,0,
- 1,0,1,0,100,4,125,5,89,0,124,5,124,0,106,7,
- 107,3,114,88,124,0,160,8,161,0,1,0,124,5,124,0,
- 95,7,116,9,131,0,114,110,124,0,106,10,125,6,124,4,
- 160,11,161,0,125,7,110,10,124,0,106,12,125,6,124,4,
- 125,7,124,7,124,6,118,0,114,214,116,13,124,0,106,2,
- 124,4,131,2,125,8,124,0,106,14,68,0,93,58,92,2,
- 125,9,125,10,100,5,124,9,23,0,125,11,116,13,124,8,
- 124,11,131,2,125,12,116,15,124,12,131,1,114,204,124,0,
- 160,16,124,10,124,1,124,12,124,8,103,1,124,2,161,5,
- 2,0,1,0,83,0,113,146,116,17,124,8,131,1,125,3,
- 124,0,106,14,68,0,93,86,92,2,125,9,125,10,116,13,
- 124,0,106,2,124,4,124,9,23,0,131,2,125,12,116,18,
- 106,19,100,6,124,12,100,3,100,7,141,3,1,0,124,7,
- 124,9,23,0,124,6,118,0,144,1,114,50,116,15,124,12,
- 131,1,144,1,114,50,124,0,160,16,124,10,124,1,124,12,
- 100,8,124,2,161,5,2,0,1,0,83,0,113,220,124,3,
- 144,1,114,94,116,18,160,19,100,9,124,8,161,2,1,0,
- 116,18,160,20,124,1,100,8,161,2,125,13,124,8,103,1,
- 124,13,95,21,124,13,83,0,100,8,83,0,119,0,41,10,
- 122,111,84,114,121,32,116,111,32,102,105,110,100,32,97,32,
- 115,112,101,99,32,102,111,114,32,116,104,101,32,115,112,101,
- 99,105,102,105,101,100,32,109,111,100,117,108,101,46,10,10,
- 32,32,32,32,32,32,32,32,82,101,116,117,114,110,115,32,
- 116,104,101,32,109,97,116,99,104,105,110,103,32,115,112,101,
- 99,44,32,111,114,32,78,111,110,101,32,105,102,32,110,111,
- 116,32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,
- 32,70,114,86,0,0,0,114,45,0,0,0,114,116,0,0,
- 0,114,223,0,0,0,122,9,116,114,121,105,110,103,32,123,
- 125,41,1,90,9,118,101,114,98,111,115,105,116,121,78,122,
- 25,112,111,115,115,105,98,108,101,32,110,97,109,101,115,112,
- 97,99,101,32,102,111,114,32,123,125,41,22,114,55,0,0,
- 0,114,63,0,0,0,114,58,0,0,0,114,19,0,0,0,
- 114,70,0,0,0,114,21,1,0,0,114,64,0,0,0,114,
- 81,1,0,0,218,11,95,102,105,108,108,95,99,97,99,104,
- 101,114,22,0,0,0,114,84,1,0,0,114,117,0,0,0,
- 114,83,1,0,0,114,54,0,0,0,114,80,1,0,0,114,
- 68,0,0,0,114,75,1,0,0,114,71,0,0,0,114,146,
- 0,0,0,114,160,0,0,0,114,194,0,0,0,114,189,0,
- 0,0,41,14,114,130,0,0,0,114,150,0,0,0,114,213,
- 0,0,0,90,12,105,115,95,110,97,109,101,115,112,97,99,
- 101,90,11,116,97,105,108,95,109,111,100,117,108,101,114,180,
- 0,0,0,90,5,99,97,99,104,101,90,12,99,97,99,104,
- 101,95,109,111,100,117,108,101,90,9,98,97,115,101,95,112,
- 97,116,104,114,29,1,0,0,114,199,0,0,0,90,13,105,
- 110,105,116,95,102,105,108,101,110,97,109,101,90,9,102,117,
- 108,108,95,112,97,116,104,114,198,0,0,0,114,7,0,0,
- 0,114,7,0,0,0,114,8,0,0,0,114,214,0,0,0,
- 178,5,0,0,115,80,0,0,0,4,5,14,1,2,1,24,
- 1,14,1,6,1,10,1,8,1,6,1,6,2,6,1,10,
- 1,6,2,4,1,8,2,12,1,14,1,8,1,10,1,8,
- 1,24,1,2,255,8,5,14,2,16,1,16,1,14,1,10,
- 1,10,1,4,1,8,255,2,128,6,2,12,1,12,1,8,
- 1,4,1,4,1,2,219,255,128,122,20,70,105,108,101,70,
- 105,110,100,101,114,46,102,105,110,100,95,115,112,101,99,99,
- 1,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,
- 10,0,0,0,67,0,0,0,115,190,0,0,0,124,0,106,
- 0,125,1,122,22,116,1,160,2,124,1,112,22,116,1,160,
- 3,161,0,161,1,125,2,87,0,110,24,4,0,116,4,116,
- 5,116,6,102,3,121,188,1,0,1,0,1,0,103,0,125,
- 2,89,0,116,7,106,8,160,9,100,1,161,1,115,78,116,
- 10,124,2,131,1,124,0,95,11,110,74,116,10,131,0,125,
- 3,124,2,68,0,93,56,125,4,124,4,160,12,100,2,161,
- 1,92,3,125,5,125,6,125,7,124,6,114,130,100,3,160,
- 13,124,5,124,7,160,14,161,0,161,2,125,8,110,4,124,
- 5,125,8,124,3,160,15,124,8,161,1,1,0,113,88,124,
- 3,124,0,95,11,116,7,106,8,160,9,116,16,161,1,114,
- 184,100,4,100,5,132,0,124,2,68,0,131,1,124,0,95,
- 17,100,6,83,0,100,6,83,0,119,0,41,7,122,68,70,
- 105,108,108,32,116,104,101,32,99,97,99,104,101,32,111,102,
- 32,112,111,116,101,110,116,105,97,108,32,109,111,100,117,108,
- 101,115,32,97,110,100,32,112,97,99,107,97,103,101,115,32,
- 102,111,114,32,116,104,105,115,32,100,105,114,101,99,116,111,
- 114,121,46,114,15,0,0,0,114,86,0,0,0,114,76,0,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,4,0,0,0,83,0,0,0,115,20,0,0,0,
- 104,0,124,0,93,12,125,1,124,1,160,0,161,0,146,2,
- 113,4,83,0,114,7,0,0,0,41,1,114,117,0,0,0,
- 41,2,114,5,0,0,0,90,2,102,110,114,7,0,0,0,
- 114,7,0,0,0,114,8,0,0,0,114,13,0,0,0,255,
- 5,0,0,115,4,0,0,0,20,0,255,128,122,41,70,105,
+ 116,101,100,46,32,32,85,115,101,32,102,105,110,100,95,115,
+ 112,101,99,40,41,32,105,110,115,116,101,97,100,46,10,10,
+ 32,32,32,32,32,32,32,32,78,41,3,114,214,0,0,0,
+ 114,151,0,0,0,114,189,0,0,0,41,3,114,130,0,0,
+ 0,114,150,0,0,0,114,198,0,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,8,0,0,0,114,148,0,0,0,165,
+ 5,0,0,115,10,0,0,0,10,7,8,1,8,1,16,1,
+ 255,128,122,22,70,105,108,101,70,105,110,100,101,114,46,102,
+ 105,110,100,95,108,111,97,100,101,114,99,6,0,0,0,0,
+ 0,0,0,0,0,0,0,7,0,0,0,6,0,0,0,67,
+ 0,0,0,115,26,0,0,0,124,1,124,2,124,3,131,2,
+ 125,6,116,0,124,2,124,3,124,6,124,4,100,1,141,4,
+ 83,0,41,2,78,114,188,0,0,0,41,1,114,201,0,0,
+ 0,41,7,114,130,0,0,0,114,199,0,0,0,114,150,0,
+ 0,0,114,58,0,0,0,90,4,115,109,115,108,114,213,0,
+ 0,0,114,151,0,0,0,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,77,1,0,0,177,5,0,0,115,
+ 10,0,0,0,10,1,8,1,2,1,6,255,255,128,122,20,
+ 70,105,108,101,70,105,110,100,101,114,46,95,103,101,116,95,
+ 115,112,101,99,78,99,3,0,0,0,0,0,0,0,0,0,
+ 0,0,14,0,0,0,8,0,0,0,67,0,0,0,115,100,
+ 1,0,0,100,1,125,3,124,1,160,0,100,2,161,1,100,
+ 3,25,0,125,4,122,24,116,1,124,0,106,2,112,34,116,
+ 3,160,4,161,0,131,1,106,5,125,5,87,0,110,20,4,
+ 0,116,6,144,1,121,98,1,0,1,0,1,0,100,4,125,
+ 5,89,0,124,5,124,0,106,7,107,3,114,88,124,0,160,
+ 8,161,0,1,0,124,5,124,0,95,7,116,9,131,0,114,
+ 110,124,0,106,10,125,6,124,4,160,11,161,0,125,7,110,
+ 10,124,0,106,12,125,6,124,4,125,7,124,7,124,6,118,
+ 0,114,214,116,13,124,0,106,2,124,4,131,2,125,8,124,
+ 0,106,14,68,0,93,58,92,2,125,9,125,10,100,5,124,
+ 9,23,0,125,11,116,13,124,8,124,11,131,2,125,12,116,
+ 15,124,12,131,1,114,204,124,0,160,16,124,10,124,1,124,
+ 12,124,8,103,1,124,2,161,5,2,0,1,0,83,0,113,
+ 146,116,17,124,8,131,1,125,3,124,0,106,14,68,0,93,
+ 86,92,2,125,9,125,10,116,13,124,0,106,2,124,4,124,
+ 9,23,0,131,2,125,12,116,18,106,19,100,6,124,12,100,
+ 3,100,7,141,3,1,0,124,7,124,9,23,0,124,6,118,
+ 0,144,1,114,50,116,15,124,12,131,1,144,1,114,50,124,
+ 0,160,16,124,10,124,1,124,12,100,8,124,2,161,5,2,
+ 0,1,0,83,0,113,220,124,3,144,1,114,94,116,18,160,
+ 19,100,9,124,8,161,2,1,0,116,18,160,20,124,1,100,
+ 8,161,2,125,13,124,8,103,1,124,13,95,21,124,13,83,
+ 0,100,8,83,0,119,0,41,10,122,111,84,114,121,32,116,
+ 111,32,102,105,110,100,32,97,32,115,112,101,99,32,102,111,
+ 114,32,116,104,101,32,115,112,101,99,105,102,105,101,100,32,
+ 109,111,100,117,108,101,46,10,10,32,32,32,32,32,32,32,
+ 32,82,101,116,117,114,110,115,32,116,104,101,32,109,97,116,
+ 99,104,105,110,103,32,115,112,101,99,44,32,111,114,32,78,
+ 111,110,101,32,105,102,32,110,111,116,32,102,111,117,110,100,
+ 46,10,32,32,32,32,32,32,32,32,70,114,86,0,0,0,
+ 114,45,0,0,0,114,116,0,0,0,114,223,0,0,0,122,
+ 9,116,114,121,105,110,103,32,123,125,41,1,90,9,118,101,
+ 114,98,111,115,105,116,121,78,122,25,112,111,115,115,105,98,
+ 108,101,32,110,97,109,101,115,112,97,99,101,32,102,111,114,
+ 32,123,125,41,22,114,55,0,0,0,114,63,0,0,0,114,
+ 58,0,0,0,114,19,0,0,0,114,70,0,0,0,114,22,
+ 1,0,0,114,64,0,0,0,114,83,1,0,0,218,11,95,
+ 102,105,108,108,95,99,97,99,104,101,114,22,0,0,0,114,
+ 86,1,0,0,114,117,0,0,0,114,85,1,0,0,114,54,
+ 0,0,0,114,82,1,0,0,114,68,0,0,0,114,77,1,
+ 0,0,114,71,0,0,0,114,146,0,0,0,114,160,0,0,
+ 0,114,194,0,0,0,114,189,0,0,0,41,14,114,130,0,
+ 0,0,114,150,0,0,0,114,213,0,0,0,90,12,105,115,
+ 95,110,97,109,101,115,112,97,99,101,90,11,116,97,105,108,
+ 95,109,111,100,117,108,101,114,180,0,0,0,90,5,99,97,
+ 99,104,101,90,12,99,97,99,104,101,95,109,111,100,117,108,
+ 101,90,9,98,97,115,101,95,112,97,116,104,114,30,1,0,
+ 0,114,199,0,0,0,90,13,105,110,105,116,95,102,105,108,
+ 101,110,97,109,101,90,9,102,117,108,108,95,112,97,116,104,
+ 114,198,0,0,0,114,7,0,0,0,114,7,0,0,0,114,
+ 8,0,0,0,114,214,0,0,0,182,5,0,0,115,80,0,
+ 0,0,4,5,14,1,2,1,24,1,14,1,6,1,10,1,
+ 8,1,6,1,6,2,6,1,10,1,6,2,4,1,8,2,
+ 12,1,14,1,8,1,10,1,8,1,24,1,2,255,8,5,
+ 14,2,16,1,16,1,14,1,10,1,10,1,4,1,8,255,
+ 2,128,6,2,12,1,12,1,8,1,4,1,4,1,2,219,
+ 255,128,122,20,70,105,108,101,70,105,110,100,101,114,46,102,
+ 105,110,100,95,115,112,101,99,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,9,0,0,0,10,0,0,0,67,0,0,
+ 0,115,190,0,0,0,124,0,106,0,125,1,122,22,116,1,
+ 160,2,124,1,112,22,116,1,160,3,161,0,161,1,125,2,
+ 87,0,110,24,4,0,116,4,116,5,116,6,102,3,121,188,
+ 1,0,1,0,1,0,103,0,125,2,89,0,116,7,106,8,
+ 160,9,100,1,161,1,115,78,116,10,124,2,131,1,124,0,
+ 95,11,110,74,116,10,131,0,125,3,124,2,68,0,93,56,
+ 125,4,124,4,160,12,100,2,161,1,92,3,125,5,125,6,
+ 125,7,124,6,114,130,100,3,160,13,124,5,124,7,160,14,
+ 161,0,161,2,125,8,110,4,124,5,125,8,124,3,160,15,
+ 124,8,161,1,1,0,113,88,124,3,124,0,95,11,116,7,
+ 106,8,160,9,116,16,161,1,114,184,100,4,100,5,132,0,
+ 124,2,68,0,131,1,124,0,95,17,100,6,83,0,100,6,
+ 83,0,119,0,41,7,122,68,70,105,108,108,32,116,104,101,
+ 32,99,97,99,104,101,32,111,102,32,112,111,116,101,110,116,
+ 105,97,108,32,109,111,100,117,108,101,115,32,97,110,100,32,
+ 112,97,99,107,97,103,101,115,32,102,111,114,32,116,104,105,
+ 115,32,100,105,114,101,99,116,111,114,121,46,114,15,0,0,
+ 0,114,86,0,0,0,114,76,0,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 83,0,0,0,115,20,0,0,0,104,0,124,0,93,12,125,
+ 1,124,1,160,0,161,0,146,2,113,4,83,0,114,7,0,
+ 0,0,41,1,114,117,0,0,0,41,2,114,5,0,0,0,
+ 90,2,102,110,114,7,0,0,0,114,7,0,0,0,114,8,
+ 0,0,0,114,13,0,0,0,3,6,0,0,115,4,0,0,
+ 0,20,0,255,128,122,41,70,105,108,101,70,105,110,100,101,
+ 114,46,95,102,105,108,108,95,99,97,99,104,101,46,60,108,
+ 111,99,97,108,115,62,46,60,115,101,116,99,111,109,112,62,
+ 78,41,18,114,58,0,0,0,114,19,0,0,0,90,7,108,
+ 105,115,116,100,105,114,114,70,0,0,0,114,71,1,0,0,
+ 218,15,80,101,114,109,105,115,115,105,111,110,69,114,114,111,
+ 114,218,18,78,111,116,65,68,105,114,101,99,116,111,114,121,
+ 69,114,114,111,114,114,16,0,0,0,114,26,0,0,0,114,
+ 27,0,0,0,114,84,1,0,0,114,85,1,0,0,114,112,
+ 0,0,0,114,77,0,0,0,114,117,0,0,0,218,3,97,
+ 100,100,114,28,0,0,0,114,86,1,0,0,41,9,114,130,
+ 0,0,0,114,58,0,0,0,90,8,99,111,110,116,101,110,
+ 116,115,90,21,108,111,119,101,114,95,115,117,102,102,105,120,
+ 95,99,111,110,116,101,110,116,115,114,56,1,0,0,114,128,
+ 0,0,0,114,40,1,0,0,114,30,1,0,0,90,8,110,
+ 101,119,95,110,97,109,101,114,7,0,0,0,114,7,0,0,
+ 0,114,8,0,0,0,114,88,1,0,0,230,5,0,0,115,
+ 40,0,0,0,6,2,2,1,22,1,18,1,6,3,12,3,
+ 12,1,6,7,8,1,16,1,4,1,18,1,4,2,12,1,
+ 6,1,12,1,20,1,4,255,2,233,255,128,122,22,70,105,
108,101,70,105,110,100,101,114,46,95,102,105,108,108,95,99,
- 97,99,104,101,46,60,108,111,99,97,108,115,62,46,60,115,
- 101,116,99,111,109,112,62,78,41,18,114,58,0,0,0,114,
- 19,0,0,0,90,7,108,105,115,116,100,105,114,114,70,0,
- 0,0,114,69,1,0,0,218,15,80,101,114,109,105,115,115,
- 105,111,110,69,114,114,111,114,218,18,78,111,116,65,68,105,
- 114,101,99,116,111,114,121,69,114,114,111,114,114,16,0,0,
- 0,114,26,0,0,0,114,27,0,0,0,114,82,1,0,0,
- 114,83,1,0,0,114,112,0,0,0,114,77,0,0,0,114,
- 117,0,0,0,218,3,97,100,100,114,28,0,0,0,114,84,
- 1,0,0,41,9,114,130,0,0,0,114,58,0,0,0,90,
- 8,99,111,110,116,101,110,116,115,90,21,108,111,119,101,114,
- 95,115,117,102,102,105,120,95,99,111,110,116,101,110,116,115,
- 114,55,1,0,0,114,128,0,0,0,114,39,1,0,0,114,
- 29,1,0,0,90,8,110,101,119,95,110,97,109,101,114,7,
- 0,0,0,114,7,0,0,0,114,8,0,0,0,114,86,1,
- 0,0,226,5,0,0,115,40,0,0,0,6,2,2,1,22,
- 1,18,1,6,3,12,3,12,1,6,7,8,1,16,1,4,
- 1,18,1,4,2,12,1,6,1,12,1,20,1,4,255,2,
- 233,255,128,122,22,70,105,108,101,70,105,110,100,101,114,46,
- 95,102,105,108,108,95,99,97,99,104,101,99,1,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
- 7,0,0,0,115,18,0,0,0,135,0,135,1,102,2,100,
- 1,100,2,132,8,125,2,124,2,83,0,41,4,97,20,1,
- 0,0,65,32,99,108,97,115,115,32,109,101,116,104,111,100,
- 32,119,104,105,99,104,32,114,101,116,117,114,110,115,32,97,
- 32,99,108,111,115,117,114,101,32,116,111,32,117,115,101,32,
- 111,110,32,115,121,115,46,112,97,116,104,95,104,111,111,107,
- 10,32,32,32,32,32,32,32,32,119,104,105,99,104,32,119,
- 105,108,108,32,114,101,116,117,114,110,32,97,110,32,105,110,
- 115,116,97,110,99,101,32,117,115,105,110,103,32,116,104,101,
- 32,115,112,101,99,105,102,105,101,100,32,108,111,97,100,101,
- 114,115,32,97,110,100,32,116,104,101,32,112,97,116,104,10,
- 32,32,32,32,32,32,32,32,99,97,108,108,101,100,32,111,
- 110,32,116,104,101,32,99,108,111,115,117,114,101,46,10,10,
- 32,32,32,32,32,32,32,32,73,102,32,116,104,101,32,112,
- 97,116,104,32,99,97,108,108,101,100,32,111,110,32,116,104,
- 101,32,99,108,111,115,117,114,101,32,105,115,32,110,111,116,
- 32,97,32,100,105,114,101,99,116,111,114,121,44,32,73,109,
- 112,111,114,116,69,114,114,111,114,32,105,115,10,32,32,32,
- 32,32,32,32,32,114,97,105,115,101,100,46,10,10,32,32,
- 32,32,32,32,32,32,99,1,0,0,0,0,0,0,0,0,
- 0,0,0,1,0,0,0,4,0,0,0,19,0,0,0,115,
- 36,0,0,0,116,0,124,0,131,1,115,20,116,1,100,1,
- 124,0,100,2,141,2,130,1,136,0,124,0,103,1,136,1,
- 162,1,82,0,142,0,83,0,41,4,122,45,80,97,116,104,
- 32,104,111,111,107,32,102,111,114,32,105,109,112,111,114,116,
- 108,105,98,46,109,97,99,104,105,110,101,114,121,46,70,105,
- 108,101,70,105,110,100,101,114,46,122,30,111,110,108,121,32,
- 100,105,114,101,99,116,111,114,105,101,115,32,97,114,101,32,
- 115,117,112,112,111,114,116,101,100,114,62,0,0,0,78,41,
- 2,114,71,0,0,0,114,129,0,0,0,114,62,0,0,0,
- 169,2,114,209,0,0,0,114,85,1,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,24,112,97,116,104,95,104,111,111,
- 107,95,102,111,114,95,70,105,108,101,70,105,110,100,101,114,
- 11,6,0,0,115,8,0,0,0,8,2,12,1,16,1,255,
- 128,122,54,70,105,108,101,70,105,110,100,101,114,46,112,97,
- 116,104,95,104,111,111,107,46,60,108,111,99,97,108,115,62,
- 46,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
- 105,108,101,70,105,110,100,101,114,78,114,7,0,0,0,41,
- 3,114,209,0,0,0,114,85,1,0,0,114,91,1,0,0,
- 114,7,0,0,0,114,90,1,0,0,114,8,0,0,0,218,
- 9,112,97,116,104,95,104,111,111,107,1,6,0,0,115,6,
- 0,0,0,14,10,4,6,255,128,122,20,70,105,108,101,70,
- 105,110,100,101,114,46,112,97,116,104,95,104,111,111,107,99,
+ 97,99,104,101,99,1,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,3,0,0,0,7,0,0,0,115,18,0,
+ 0,0,135,0,135,1,102,2,100,1,100,2,132,8,125,2,
+ 124,2,83,0,41,4,97,20,1,0,0,65,32,99,108,97,
+ 115,115,32,109,101,116,104,111,100,32,119,104,105,99,104,32,
+ 114,101,116,117,114,110,115,32,97,32,99,108,111,115,117,114,
+ 101,32,116,111,32,117,115,101,32,111,110,32,115,121,115,46,
+ 112,97,116,104,95,104,111,111,107,10,32,32,32,32,32,32,
+ 32,32,119,104,105,99,104,32,119,105,108,108,32,114,101,116,
+ 117,114,110,32,97,110,32,105,110,115,116,97,110,99,101,32,
+ 117,115,105,110,103,32,116,104,101,32,115,112,101,99,105,102,
+ 105,101,100,32,108,111,97,100,101,114,115,32,97,110,100,32,
+ 116,104,101,32,112,97,116,104,10,32,32,32,32,32,32,32,
+ 32,99,97,108,108,101,100,32,111,110,32,116,104,101,32,99,
+ 108,111,115,117,114,101,46,10,10,32,32,32,32,32,32,32,
+ 32,73,102,32,116,104,101,32,112,97,116,104,32,99,97,108,
+ 108,101,100,32,111,110,32,116,104,101,32,99,108,111,115,117,
+ 114,101,32,105,115,32,110,111,116,32,97,32,100,105,114,101,
+ 99,116,111,114,121,44,32,73,109,112,111,114,116,69,114,114,
+ 111,114,32,105,115,10,32,32,32,32,32,32,32,32,114,97,
+ 105,115,101,100,46,10,10,32,32,32,32,32,32,32,32,99,
1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
- 3,0,0,0,67,0,0,0,114,52,1,0,0,41,2,78,
- 122,16,70,105,108,101,70,105,110,100,101,114,40,123,33,114,
- 125,41,41,2,114,77,0,0,0,114,58,0,0,0,114,8,
- 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
- 0,0,114,53,1,0,0,19,6,0,0,114,46,1,0,0,
- 122,19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,
- 101,112,114,95,95,41,1,78,41,15,114,137,0,0,0,114,
- 136,0,0,0,114,138,0,0,0,114,139,0,0,0,114,223,
- 0,0,0,114,62,1,0,0,114,154,0,0,0,114,217,0,
- 0,0,114,148,0,0,0,114,75,1,0,0,114,214,0,0,
- 0,114,86,1,0,0,114,221,0,0,0,114,92,1,0,0,
- 114,53,1,0,0,114,7,0,0,0,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,114,78,1,0,0,132,5,
- 0,0,115,26,0,0,0,8,0,4,2,8,7,8,14,4,
- 4,8,2,8,12,10,5,8,48,2,31,10,1,12,17,255,
- 128,114,78,1,0,0,99,4,0,0,0,0,0,0,0,0,
- 0,0,0,6,0,0,0,8,0,0,0,67,0,0,0,115,
- 144,0,0,0,124,0,160,0,100,1,161,1,125,4,124,0,
- 160,0,100,2,161,1,125,5,124,4,115,66,124,5,114,36,
- 124,5,106,1,125,4,110,30,124,2,124,3,107,2,114,56,
- 116,2,124,1,124,2,131,2,125,4,110,10,116,3,124,1,
- 124,2,131,2,125,4,124,5,115,84,116,4,124,1,124,2,
- 124,4,100,3,141,3,125,5,122,38,124,5,124,0,100,2,
- 60,0,124,4,124,0,100,1,60,0,124,2,124,0,100,4,
- 60,0,124,3,124,0,100,5,60,0,87,0,100,0,83,0,
- 4,0,116,5,121,142,1,0,1,0,1,0,89,0,100,0,
- 83,0,119,0,41,6,78,218,10,95,95,108,111,97,100,101,
- 114,95,95,218,8,95,95,115,112,101,99,95,95,114,79,1,
- 0,0,90,8,95,95,102,105,108,101,95,95,90,10,95,95,
- 99,97,99,104,101,100,95,95,41,6,218,3,103,101,116,114,
- 151,0,0,0,114,26,1,0,0,114,20,1,0,0,114,201,
- 0,0,0,218,9,69,120,99,101,112,116,105,111,110,41,6,
- 90,2,110,115,114,128,0,0,0,90,8,112,97,116,104,110,
- 97,109,101,90,9,99,112,97,116,104,110,97,109,101,114,151,
- 0,0,0,114,198,0,0,0,114,7,0,0,0,114,7,0,
- 0,0,114,8,0,0,0,218,14,95,102,105,120,95,117,112,
- 95,109,111,100,117,108,101,25,6,0,0,115,38,0,0,0,
- 10,2,10,1,4,1,4,1,8,1,8,1,12,1,10,2,
- 4,1,14,1,2,1,8,1,8,1,8,1,14,1,12,1,
- 6,2,2,254,255,128,114,97,1,0,0,99,0,0,0,0,
- 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,
- 67,0,0,0,115,38,0,0,0,116,0,116,1,160,2,161,
- 0,102,2,125,0,116,3,116,4,102,2,125,1,116,5,116,
- 6,102,2,125,2,124,0,124,1,124,2,103,3,83,0,41,
- 2,122,95,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,41,46,10,32,32,
- 32,32,78,41,7,114,17,1,0,0,114,174,0,0,0,218,
- 18,101,120,116,101,110,115,105,111,110,95,115,117,102,102,105,
- 120,101,115,114,20,1,0,0,114,113,0,0,0,114,26,1,
- 0,0,114,101,0,0,0,41,3,90,10,101,120,116,101,110,
- 115,105,111,110,115,90,6,115,111,117,114,99,101,90,8,98,
- 121,116,101,99,111,100,101,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,114,195,0,0,0,48,6,0,0,115,
- 10,0,0,0,12,5,8,1,8,1,10,1,255,128,114,195,
- 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,
- 1,0,0,0,1,0,0,0,67,0,0,0,115,8,0,0,
- 0,124,0,97,0,100,0,83,0,114,121,0,0,0,41,1,
- 114,146,0,0,0,41,1,218,17,95,98,111,111,116,115,116,
- 114,97,112,95,109,111,100,117,108,101,114,7,0,0,0,114,
- 7,0,0,0,114,8,0,0,0,218,21,95,115,101,116,95,
- 98,111,111,116,115,116,114,97,112,95,109,111,100,117,108,101,
- 59,6,0,0,115,4,0,0,0,8,2,255,128,114,100,1,
- 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,
- 0,0,0,4,0,0,0,67,0,0,0,115,50,0,0,0,
- 116,0,124,0,131,1,1,0,116,1,131,0,125,1,116,2,
- 106,3,160,4,116,5,106,6,124,1,142,0,103,1,161,1,
- 1,0,116,2,106,7,160,8,116,9,161,1,1,0,100,1,
- 83,0,41,2,122,41,73,110,115,116,97,108,108,32,116,104,
- 101,32,112,97,116,104,45,98,97,115,101,100,32,105,109,112,
- 111,114,116,32,99,111,109,112,111,110,101,110,116,115,46,78,
- 41,10,114,100,1,0,0,114,195,0,0,0,114,16,0,0,
- 0,114,67,1,0,0,114,178,0,0,0,114,78,1,0,0,
- 114,92,1,0,0,218,9,109,101,116,97,95,112,97,116,104,
- 114,197,0,0,0,114,61,1,0,0,41,2,114,99,1,0,
- 0,90,17,115,117,112,112,111,114,116,101,100,95,108,111,97,
- 100,101,114,115,114,7,0,0,0,114,7,0,0,0,114,8,
- 0,0,0,218,8,95,105,110,115,116,97,108,108,64,6,0,
- 0,115,10,0,0,0,8,2,6,1,20,1,16,1,255,128,
- 114,102,1,0,0,41,1,114,75,0,0,0,41,1,78,41,
- 3,78,78,78,41,2,114,0,0,0,0,114,0,0,0,0,
- 41,1,84,41,1,78,41,1,78,41,83,114,139,0,0,0,
- 114,146,0,0,0,114,174,0,0,0,114,79,0,0,0,114,
- 16,0,0,0,114,88,0,0,0,114,171,0,0,0,114,26,
- 0,0,0,114,218,0,0,0,90,2,110,116,114,19,0,0,
- 0,114,203,0,0,0,90,5,112,111,115,105,120,114,48,0,
- 0,0,218,3,97,108,108,114,51,0,0,0,114,52,0,0,
- 0,114,73,0,0,0,114,29,0,0,0,90,37,95,67,65,
- 83,69,95,73,78,83,69,78,83,73,84,73,86,69,95,80,
- 76,65,84,70,79,82,77,83,95,66,89,84,69,83,95,75,
- 69,89,114,28,0,0,0,114,30,0,0,0,114,22,0,0,
- 0,114,37,0,0,0,114,43,0,0,0,114,46,0,0,0,
- 114,54,0,0,0,114,61,0,0,0,114,63,0,0,0,114,
- 67,0,0,0,114,68,0,0,0,114,71,0,0,0,114,74,
- 0,0,0,114,84,0,0,0,218,4,116,121,112,101,218,8,
- 95,95,99,111,100,101,95,95,114,173,0,0,0,114,35,0,
- 0,0,114,159,0,0,0,114,34,0,0,0,114,40,0,0,
- 0,114,251,0,0,0,114,104,0,0,0,114,100,0,0,0,
- 114,113,0,0,0,114,197,0,0,0,114,98,1,0,0,114,
- 219,0,0,0,114,101,0,0,0,90,23,68,69,66,85,71,
- 95,66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,
- 69,83,90,27,79,80,84,73,77,73,90,69,68,95,66,89,
- 84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,114,
- 109,0,0,0,114,114,0,0,0,114,120,0,0,0,114,124,
- 0,0,0,114,126,0,0,0,114,147,0,0,0,114,154,0,
- 0,0,114,163,0,0,0,114,167,0,0,0,114,169,0,0,
- 0,114,176,0,0,0,114,181,0,0,0,114,182,0,0,0,
- 114,187,0,0,0,218,6,111,98,106,101,99,116,114,196,0,
- 0,0,114,201,0,0,0,114,202,0,0,0,114,222,0,0,
- 0,114,236,0,0,0,114,254,0,0,0,114,20,1,0,0,
- 114,26,1,0,0,114,17,1,0,0,114,32,1,0,0,114,
- 58,1,0,0,114,61,1,0,0,114,78,1,0,0,114,97,
- 1,0,0,114,195,0,0,0,114,100,1,0,0,114,102,1,
- 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0,
- 0,114,8,0,0,0,218,8,60,109,111,100,117,108,101,62,
- 1,0,0,0,115,172,0,0,0,4,0,4,22,8,3,8,
- 1,8,1,8,1,8,1,10,3,4,1,8,1,10,1,8,
- 2,4,3,10,1,6,2,22,2,8,1,10,1,14,1,4,
- 4,4,1,2,1,2,1,4,255,8,4,6,16,8,3,8,
- 5,8,5,8,6,8,6,8,12,8,10,8,9,8,5,8,
- 7,10,9,10,22,0,127,16,25,12,1,4,2,4,1,6,
- 2,6,1,10,1,8,2,6,2,8,2,16,2,8,71,8,
- 40,8,19,8,12,8,12,8,31,8,17,8,33,8,28,10,
- 24,10,13,10,10,8,11,6,14,4,3,2,1,12,255,14,
- 68,14,64,16,30,0,127,14,17,18,50,18,45,18,25,14,
- 53,14,63,14,43,0,127,14,20,0,127,10,22,8,23,8,
- 11,12,5,255,128,
+ 4,0,0,0,19,0,0,0,115,36,0,0,0,116,0,124,
+ 0,131,1,115,20,116,1,100,1,124,0,100,2,141,2,130,
+ 1,136,0,124,0,103,1,136,1,162,1,82,0,142,0,83,
+ 0,41,4,122,45,80,97,116,104,32,104,111,111,107,32,102,
+ 111,114,32,105,109,112,111,114,116,108,105,98,46,109,97,99,
+ 104,105,110,101,114,121,46,70,105,108,101,70,105,110,100,101,
+ 114,46,122,30,111,110,108,121,32,100,105,114,101,99,116,111,
+ 114,105,101,115,32,97,114,101,32,115,117,112,112,111,114,116,
+ 101,100,114,62,0,0,0,78,41,2,114,71,0,0,0,114,
+ 129,0,0,0,114,62,0,0,0,169,2,114,209,0,0,0,
+ 114,87,1,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 24,112,97,116,104,95,104,111,111,107,95,102,111,114,95,70,
+ 105,108,101,70,105,110,100,101,114,15,6,0,0,115,8,0,
+ 0,0,8,2,12,1,16,1,255,128,122,54,70,105,108,101,
+ 70,105,110,100,101,114,46,112,97,116,104,95,104,111,111,107,
+ 46,60,108,111,99,97,108,115,62,46,112,97,116,104,95,104,
+ 111,111,107,95,102,111,114,95,70,105,108,101,70,105,110,100,
+ 101,114,78,114,7,0,0,0,41,3,114,209,0,0,0,114,
+ 87,1,0,0,114,93,1,0,0,114,7,0,0,0,114,92,
+ 1,0,0,114,8,0,0,0,218,9,112,97,116,104,95,104,
+ 111,111,107,5,6,0,0,115,6,0,0,0,14,10,4,6,
+ 255,128,122,20,70,105,108,101,70,105,110,100,101,114,46,112,
+ 97,116,104,95,104,111,111,107,99,1,0,0,0,0,0,0,
+ 0,0,0,0,0,1,0,0,0,3,0,0,0,67,0,0,
+ 0,114,53,1,0,0,41,2,78,122,16,70,105,108,101,70,
+ 105,110,100,101,114,40,123,33,114,125,41,41,2,114,77,0,
+ 0,0,114,58,0,0,0,114,8,1,0,0,114,7,0,0,
+ 0,114,7,0,0,0,114,8,0,0,0,114,54,1,0,0,
+ 23,6,0,0,114,47,1,0,0,122,19,70,105,108,101,70,
+ 105,110,100,101,114,46,95,95,114,101,112,114,95,95,41,1,
+ 78,41,15,114,137,0,0,0,114,136,0,0,0,114,138,0,
+ 0,0,114,139,0,0,0,114,223,0,0,0,114,64,1,0,
+ 0,114,154,0,0,0,114,217,0,0,0,114,148,0,0,0,
+ 114,77,1,0,0,114,214,0,0,0,114,88,1,0,0,114,
+ 221,0,0,0,114,94,1,0,0,114,54,1,0,0,114,7,
+ 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,114,80,1,0,0,136,5,0,0,115,26,0,0,0,
+ 8,0,4,2,8,7,8,14,4,4,8,2,8,12,10,5,
+ 8,48,2,31,10,1,12,17,255,128,114,80,1,0,0,99,
+ 4,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,
+ 8,0,0,0,67,0,0,0,115,144,0,0,0,124,0,160,
+ 0,100,1,161,1,125,4,124,0,160,0,100,2,161,1,125,
+ 5,124,4,115,66,124,5,114,36,124,5,106,1,125,4,110,
+ 30,124,2,124,3,107,2,114,56,116,2,124,1,124,2,131,
+ 2,125,4,110,10,116,3,124,1,124,2,131,2,125,4,124,
+ 5,115,84,116,4,124,1,124,2,124,4,100,3,141,3,125,
+ 5,122,38,124,5,124,0,100,2,60,0,124,4,124,0,100,
+ 1,60,0,124,2,124,0,100,4,60,0,124,3,124,0,100,
+ 5,60,0,87,0,100,0,83,0,4,0,116,5,121,142,1,
+ 0,1,0,1,0,89,0,100,0,83,0,119,0,41,6,78,
+ 218,10,95,95,108,111,97,100,101,114,95,95,218,8,95,95,
+ 115,112,101,99,95,95,114,81,1,0,0,90,8,95,95,102,
+ 105,108,101,95,95,90,10,95,95,99,97,99,104,101,100,95,
+ 95,41,6,218,3,103,101,116,114,151,0,0,0,114,27,1,
+ 0,0,114,21,1,0,0,114,201,0,0,0,218,9,69,120,
+ 99,101,112,116,105,111,110,41,6,90,2,110,115,114,128,0,
+ 0,0,90,8,112,97,116,104,110,97,109,101,90,9,99,112,
+ 97,116,104,110,97,109,101,114,151,0,0,0,114,198,0,0,
+ 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,
+ 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101,
+ 29,6,0,0,115,38,0,0,0,10,2,10,1,4,1,4,
+ 1,8,1,8,1,12,1,10,2,4,1,14,1,2,1,8,
+ 1,8,1,8,1,14,1,12,1,6,2,2,254,255,128,114,
+ 99,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,
+ 0,3,0,0,0,3,0,0,0,67,0,0,0,115,38,0,
+ 0,0,116,0,116,1,160,2,161,0,102,2,125,0,116,3,
+ 116,4,102,2,125,1,116,5,116,6,102,2,125,2,124,0,
+ 124,1,124,2,103,3,83,0,41,2,122,95,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,41,46,10,32,32,32,32,78,41,7,114,17,
+ 1,0,0,114,174,0,0,0,218,18,101,120,116,101,110,115,
+ 105,111,110,95,115,117,102,102,105,120,101,115,114,21,1,0,
+ 0,114,113,0,0,0,114,27,1,0,0,114,101,0,0,0,
+ 41,3,90,10,101,120,116,101,110,115,105,111,110,115,90,6,
+ 115,111,117,114,99,101,90,8,98,121,116,101,99,111,100,101,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,
+ 195,0,0,0,52,6,0,0,115,10,0,0,0,12,5,8,
+ 1,8,1,10,1,255,128,114,195,0,0,0,99,1,0,0,
+ 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,
+ 0,67,0,0,0,115,8,0,0,0,124,0,97,0,100,0,
+ 83,0,114,121,0,0,0,41,1,114,146,0,0,0,41,1,
+ 218,17,95,98,111,111,116,115,116,114,97,112,95,109,111,100,
+ 117,108,101,114,7,0,0,0,114,7,0,0,0,114,8,0,
+ 0,0,218,21,95,115,101,116,95,98,111,111,116,115,116,114,
+ 97,112,95,109,111,100,117,108,101,63,6,0,0,115,4,0,
+ 0,0,8,2,255,128,114,102,1,0,0,99,1,0,0,0,
+ 0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,
+ 67,0,0,0,115,50,0,0,0,116,0,124,0,131,1,1,
+ 0,116,1,131,0,125,1,116,2,106,3,160,4,116,5,106,
+ 6,124,1,142,0,103,1,161,1,1,0,116,2,106,7,160,
+ 8,116,9,161,1,1,0,100,1,83,0,41,2,122,41,73,
+ 110,115,116,97,108,108,32,116,104,101,32,112,97,116,104,45,
+ 98,97,115,101,100,32,105,109,112,111,114,116,32,99,111,109,
+ 112,111,110,101,110,116,115,46,78,41,10,114,102,1,0,0,
+ 114,195,0,0,0,114,16,0,0,0,114,69,1,0,0,114,
+ 178,0,0,0,114,80,1,0,0,114,94,1,0,0,218,9,
+ 109,101,116,97,95,112,97,116,104,114,197,0,0,0,114,63,
+ 1,0,0,41,2,114,101,1,0,0,90,17,115,117,112,112,
+ 111,114,116,101,100,95,108,111,97,100,101,114,115,114,7,0,
+ 0,0,114,7,0,0,0,114,8,0,0,0,218,8,95,105,
+ 110,115,116,97,108,108,68,6,0,0,115,10,0,0,0,8,
+ 2,6,1,20,1,16,1,255,128,114,104,1,0,0,41,1,
+ 114,75,0,0,0,41,1,78,41,3,78,78,78,41,2,114,
+ 0,0,0,0,114,0,0,0,0,41,1,84,41,1,78,41,
+ 1,78,41,83,114,139,0,0,0,114,146,0,0,0,114,174,
+ 0,0,0,114,79,0,0,0,114,16,0,0,0,114,88,0,
+ 0,0,114,171,0,0,0,114,26,0,0,0,114,218,0,0,
+ 0,90,2,110,116,114,19,0,0,0,114,203,0,0,0,90,
+ 5,112,111,115,105,120,114,48,0,0,0,218,3,97,108,108,
+ 114,51,0,0,0,114,52,0,0,0,114,73,0,0,0,114,
+ 29,0,0,0,90,37,95,67,65,83,69,95,73,78,83,69,
+ 78,83,73,84,73,86,69,95,80,76,65,84,70,79,82,77,
+ 83,95,66,89,84,69,83,95,75,69,89,114,28,0,0,0,
+ 114,30,0,0,0,114,22,0,0,0,114,37,0,0,0,114,
+ 43,0,0,0,114,46,0,0,0,114,54,0,0,0,114,61,
+ 0,0,0,114,63,0,0,0,114,67,0,0,0,114,68,0,
+ 0,0,114,71,0,0,0,114,74,0,0,0,114,84,0,0,
+ 0,218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,
+ 95,114,173,0,0,0,114,35,0,0,0,114,159,0,0,0,
+ 114,34,0,0,0,114,40,0,0,0,114,251,0,0,0,114,
+ 104,0,0,0,114,100,0,0,0,114,113,0,0,0,114,197,
+ 0,0,0,114,100,1,0,0,114,219,0,0,0,114,101,0,
+ 0,0,90,23,68,69,66,85,71,95,66,89,84,69,67,79,
+ 68,69,95,83,85,70,70,73,88,69,83,90,27,79,80,84,
+ 73,77,73,90,69,68,95,66,89,84,69,67,79,68,69,95,
+ 83,85,70,70,73,88,69,83,114,109,0,0,0,114,114,0,
+ 0,0,114,120,0,0,0,114,124,0,0,0,114,126,0,0,
+ 0,114,147,0,0,0,114,154,0,0,0,114,163,0,0,0,
+ 114,167,0,0,0,114,169,0,0,0,114,176,0,0,0,114,
+ 181,0,0,0,114,182,0,0,0,114,187,0,0,0,218,6,
+ 111,98,106,101,99,116,114,196,0,0,0,114,201,0,0,0,
+ 114,202,0,0,0,114,222,0,0,0,114,236,0,0,0,114,
+ 254,0,0,0,114,21,1,0,0,114,27,1,0,0,114,17,
+ 1,0,0,114,33,1,0,0,114,59,1,0,0,114,63,1,
+ 0,0,114,80,1,0,0,114,99,1,0,0,114,195,0,0,
+ 0,114,102,1,0,0,114,104,1,0,0,114,7,0,0,0,
+ 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,
+ 8,60,109,111,100,117,108,101,62,1,0,0,0,115,172,0,
+ 0,0,4,0,4,22,8,3,8,1,8,1,8,1,8,1,
+ 10,3,4,1,8,1,10,1,8,2,4,3,10,1,6,2,
+ 22,2,8,1,10,1,14,1,4,4,4,1,2,1,2,1,
+ 4,255,8,4,6,16,8,3,8,5,8,5,8,6,8,6,
+ 8,12,8,10,8,9,8,5,8,7,10,9,10,22,0,127,
+ 16,25,12,1,4,2,4,1,6,2,6,1,10,1,8,2,
+ 6,2,8,2,16,2,8,71,8,40,8,19,8,12,8,12,
+ 8,31,8,17,8,33,8,28,10,24,10,13,10,10,8,11,
+ 6,14,4,3,2,1,12,255,14,68,14,64,16,30,0,127,
+ 14,17,18,50,18,45,18,25,14,53,14,63,14,47,0,127,
+ 14,20,0,127,10,22,8,23,8,11,12,5,255,128,
};