From webhook-mailer at python.org Sun Aug 1 17:36:15 2021 From: webhook-mailer at python.org (ned-deily) Date: Sun, 01 Aug 2021 21:36:15 -0000 Subject: [Python-checkins] Remove beta release note from macOS installer displays (GH-27531) Message-ID: https://github.com/python/cpython/commit/b192fb3f6a99c33f664e27395ffc0cef4dbc8d29 commit: b192fb3f6a99c33f664e27395ffc0cef4dbc8d29 branch: 3.10 author: Ned Deily committer: ned-deily date: 2021-08-01T17:35:53-04:00 summary: Remove beta release note from macOS installer displays (GH-27531) files: M Mac/BuildScript/resources/ReadMe.rtf M Mac/BuildScript/resources/Welcome.rtf diff --git a/Mac/BuildScript/resources/ReadMe.rtf b/Mac/BuildScript/resources/ReadMe.rtf index a6bfeb9f164ea..7934dd1a4bea5 100644 --- a/Mac/BuildScript/resources/ReadMe.rtf +++ b/Mac/BuildScript/resources/ReadMe.rtf @@ -8,12 +8,6 @@ \f0\fs24 \cf0 This package will install Python $FULL_VERSION for macOS $MACOSX_DEPLOYMENT_TARGET for the following architecture(s): $ARCHITECTURES.\ \ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\partightenfactor0 - -\f1\b \cf0 NOTE: -\f0\b0 This is a beta test preview of Python 3.10.0, the next feature release of Python 3. It is not intended for production use.\ -\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 -\cf0 \ \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0 \f1\b \cf0 \ul \ulc0 Certificate verification and OpenSSL\ diff --git a/Mac/BuildScript/resources/Welcome.rtf b/Mac/BuildScript/resources/Welcome.rtf index c65119b7fa2e2..57ffdb53d6f24 100644 --- a/Mac/BuildScript/resources/Welcome.rtf +++ b/Mac/BuildScript/resources/Welcome.rtf @@ -3,7 +3,7 @@ } {\colortbl;\red255\green255\blue255;} {\*\expandedcolortbl;;} -\paperw11905\paperh16837\margl1440\margr1440\vieww12200\viewh10880\viewkind0 +\paperw11900\paperh16840\margl1440\margr1440\vieww12200\viewh10880\viewkind0 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\partightenfactor0 \f0\fs24 \cf0 This package will install @@ -23,8 +23,4 @@ At the end of this install, click on \f2 Install Certificates \f0 to install a set of current SSL root certificates.\ -\ - -\f1\b NOTE: -\f0\b0 This is a beta test preview of Python 3.10.0, the next feature release of Python 3. It is not intended for production use.\ } \ No newline at end of file From webhook-mailer at python.org Mon Aug 2 02:18:18 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Mon, 02 Aug 2021 06:18:18 -0000 Subject: [Python-checkins] bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515) Message-ID: https://github.com/python/cpython/commit/f92b9133ef67e77605cbd315b6b6c81036ce110e commit: f92b9133ef67e77605cbd315b6b6c81036ce110e branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-08-02T09:17:46+03:00 summary: bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515) For example Callable[P, T][[int], str, float] will now raise an error. Use also term "arguments" instead of "parameters" in error message for too few/many arguments. files: A Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index fbdf634c5c3be..6cd83a1586a13 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -626,8 +626,6 @@ def test_consistency(self): self.assertEqual(c1.__args__, c2.__args__) self.assertEqual(hash(c1.__args__), hash(c2.__args__)) - test_errors = skip("known bug #44793")(BaseCallableTests.test_errors) - class CollectionsCallableTests(BaseCallableTests, BaseTestCase): Callable = collections.abc.Callable @@ -4588,6 +4586,10 @@ class X(Generic[T, P]): G1 = X[int, P_2] self.assertEqual(G1.__args__, (int, P_2)) self.assertEqual(G1.__parameters__, (P_2,)) + with self.assertRaisesRegex(TypeError, "few arguments for"): + X[int] + with self.assertRaisesRegex(TypeError, "many arguments for"): + X[int, P_2, str] G2 = X[int, Concatenate[int, P_2]] self.assertEqual(G2.__args__, (int, Concatenate[int, P_2])) diff --git a/Lib/typing.py b/Lib/typing.py index 702bb647269d0..16ad5ce7c2d04 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -228,7 +228,7 @@ def _check_generic(cls, parameters, elen): raise TypeError(f"{cls} is not a generic class") alen = len(parameters) if alen != elen: - raise TypeError(f"Too {'many' if alen > elen else 'few'} parameters for {cls};" + raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments for {cls};" f" actual {alen}, expected {elen}") def _prepare_paramspec_params(cls, params): @@ -239,6 +239,7 @@ def _prepare_paramspec_params(cls, params): if len(cls.__parameters__) == 1 and len(params) > 1: return (params,) else: + _check_generic(cls, params, len(cls.__parameters__)) _params = [] # Convert lists to tuples to help other libraries cache the results. for p, tvar in zip(params, cls.__parameters__): @@ -1022,10 +1023,11 @@ def __getitem__(self, params): if not isinstance(params, tuple): params = (params,) params = tuple(_type_convert(p) for p in params) - if self._paramspec_tvars: - if any(isinstance(t, ParamSpec) for t in self.__parameters__): - params = _prepare_paramspec_params(self, params) - _check_generic(self, params, len(self.__parameters__)) + if (self._paramspec_tvars + and any(isinstance(t, ParamSpec) for t in self.__parameters__)): + params = _prepare_paramspec_params(self, params) + else: + _check_generic(self, params, len(self.__parameters__)) subst = dict(zip(self.__parameters__, params)) new_args = [] @@ -1292,7 +1294,8 @@ def __class_getitem__(cls, params): # Subscripting a regular Generic subclass. if any(isinstance(t, ParamSpec) for t in cls.__parameters__): params = _prepare_paramspec_params(cls, params) - _check_generic(cls, params, len(cls.__parameters__)) + else: + _check_generic(cls, params, len(cls.__parameters__)) return _GenericAlias(cls, params, _typevar_types=(TypeVar, ParamSpec), _paramspec_tvars=True) diff --git a/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst b/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst new file mode 100644 index 0000000000000..1d94d67615a47 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst @@ -0,0 +1,2 @@ +Fix checking the number of arguments when subscribe a generic type with +``ParamSpec`` parameter. From webhook-mailer at python.org Mon Aug 2 03:08:34 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 07:08:34 -0000 Subject: [Python-checkins] bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515) Message-ID: https://github.com/python/cpython/commit/c8db292012dd84aab81eb3ed9146709696a3d290 commit: c8db292012dd84aab81eb3ed9146709696a3d290 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T00:08:24-07:00 summary: bpo-44793: Fix checking the number of arguments when subscribe a generic type with ParamSpec parameter. (GH-27515) For example Callable[P, T][[int], str, float] will now raise an error. Use also term "arguments" instead of "parameters" in error message for too few/many arguments. (cherry picked from commit f92b9133ef67e77605cbd315b6b6c81036ce110e) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 029a1586a02a1..3d9a347dcb707 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -620,8 +620,6 @@ def test_consistency(self): self.assertEqual(c1.__args__, c2.__args__) self.assertEqual(hash(c1.__args__), hash(c2.__args__)) - test_errors = skip("known bug #44793")(BaseCallableTests.test_errors) - class CollectionsCallableTests(BaseCallableTests, BaseTestCase): Callable = collections.abc.Callable @@ -4548,6 +4546,10 @@ class X(Generic[T, P]): G1 = X[int, P_2] self.assertEqual(G1.__args__, (int, P_2)) self.assertEqual(G1.__parameters__, (P_2,)) + with self.assertRaisesRegex(TypeError, "few arguments for"): + X[int] + with self.assertRaisesRegex(TypeError, "many arguments for"): + X[int, P_2, str] G2 = X[int, Concatenate[int, P_2]] self.assertEqual(G2.__args__, (int, Concatenate[int, P_2])) diff --git a/Lib/typing.py b/Lib/typing.py index bcb22b2d178c3..e492bd2ee916b 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -220,7 +220,7 @@ def _check_generic(cls, parameters, elen): raise TypeError(f"{cls} is not a generic class") alen = len(parameters) if alen != elen: - raise TypeError(f"Too {'many' if alen > elen else 'few'} parameters for {cls};" + raise TypeError(f"Too {'many' if alen > elen else 'few'} arguments for {cls};" f" actual {alen}, expected {elen}") def _prepare_paramspec_params(cls, params): @@ -231,6 +231,7 @@ def _prepare_paramspec_params(cls, params): if len(cls.__parameters__) == 1 and len(params) > 1: return (params,) else: + _check_generic(cls, params, len(cls.__parameters__)) _params = [] # Convert lists to tuples to help other libraries cache the results. for p, tvar in zip(params, cls.__parameters__): @@ -1020,10 +1021,11 @@ def __getitem__(self, params): if not isinstance(params, tuple): params = (params,) params = tuple(_type_convert(p) for p in params) - if self._paramspec_tvars: - if any(isinstance(t, ParamSpec) for t in self.__parameters__): - params = _prepare_paramspec_params(self, params) - _check_generic(self, params, len(self.__parameters__)) + if (self._paramspec_tvars + and any(isinstance(t, ParamSpec) for t in self.__parameters__)): + params = _prepare_paramspec_params(self, params) + else: + _check_generic(self, params, len(self.__parameters__)) subst = dict(zip(self.__parameters__, params)) new_args = [] @@ -1290,7 +1292,8 @@ def __class_getitem__(cls, params): # Subscripting a regular Generic subclass. if any(isinstance(t, ParamSpec) for t in cls.__parameters__): params = _prepare_paramspec_params(cls, params) - _check_generic(cls, params, len(cls.__parameters__)) + else: + _check_generic(cls, params, len(cls.__parameters__)) return _GenericAlias(cls, params, _typevar_types=(TypeVar, ParamSpec), _paramspec_tvars=True) diff --git a/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst b/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst new file mode 100644 index 0000000000000..1d94d67615a47 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst @@ -0,0 +1,2 @@ +Fix checking the number of arguments when subscribe a generic type with +``ParamSpec`` parameter. From webhook-mailer at python.org Mon Aug 2 05:34:59 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:34:59 -0000 Subject: [Python-checkins] bpo-44781: make distutils test suppress deprecation warning from import distutils (GH-27485) Message-ID: https://github.com/python/cpython/commit/a9134fa2ffb7e4684c980325dd5444afca596586 commit: a9134fa2ffb7e4684c980325dd5444afca596586 branch: main author: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> committer: ambv date: 2021-08-02T11:34:55+02:00 summary: bpo-44781: make distutils test suppress deprecation warning from import distutils (GH-27485) files: M Lib/distutils/tests/test_bdist.py diff --git a/Lib/distutils/tests/test_bdist.py b/Lib/distutils/tests/test_bdist.py index 09ad076799b420..55fa3930dd92f2 100644 --- a/Lib/distutils/tests/test_bdist.py +++ b/Lib/distutils/tests/test_bdist.py @@ -3,8 +3,11 @@ import unittest from test.support import run_unittest -from distutils.command.bdist import bdist -from distutils.tests import support +import warnings +with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + from distutils.command.bdist import bdist + from distutils.tests import support class BuildTestCase(support.TempdirManager, From webhook-mailer at python.org Mon Aug 2 05:40:00 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:40:00 -0000 Subject: [Python-checkins] doc: "Mac OS " -> "macOS" (GH-27534) Message-ID: https://github.com/python/cpython/commit/1342248f3a2b321b7b00867f47c92ba6549f9497 commit: 1342248f3a2b321b7b00867f47c92ba6549f9497 branch: main author: partev committer: ambv date: 2021-08-02T11:39:56+02:00 summary: doc: "Mac OS " -> "macOS" (GH-27534) files: M Doc/library/platform.rst diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index be86e568c180b..bb9fc45df233b 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -42,7 +42,7 @@ Cross Platform .. note:: - On Mac OS X (and perhaps other platforms), executable files may be + On macOS (and perhaps other platforms), executable files may be universal files containing multiple architectures. To get at the "64-bitness" of the current interpreter, it is more From webhook-mailer at python.org Mon Aug 2 05:40:45 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:40:45 -0000 Subject: [Python-checkins] doc: "Mac OS X" -> "macOS" (GH-27535) Message-ID: https://github.com/python/cpython/commit/414dcb13aaa4fd42f264fdee47782dede5c83d6c commit: 414dcb13aaa4fd42f264fdee47782dede5c83d6c branch: main author: partev committer: ambv date: 2021-08-02T11:40:40+02:00 summary: doc: "Mac OS X" -> "macOS" (GH-27535) files: M Doc/library/othergui.rst diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst index 48c1f2754111a..db11933b325f3 100644 --- a/Doc/library/othergui.rst +++ b/Doc/library/othergui.rst @@ -3,7 +3,7 @@ Other Graphical User Interface Packages ======================================= -Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are +Major cross-platform (Windows, macOS, Unix-like) GUI toolkits are available for Python: .. seealso:: @@ -26,7 +26,7 @@ available for Python: `PyQt `_ PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an extensive C++ GUI application development framework that is - available for Unix, Windows and Mac OS X. :program:`sip` is a tool + available for Unix, Windows and macOS. :program:`sip` is a tool for generating bindings for C++ libraries as Python classes, and is specifically designed for Python. @@ -40,7 +40,7 @@ available for Python: wxPython is a cross-platform GUI toolkit for Python that is built around the popular `wxWidgets `_ (formerly wxWindows) C++ toolkit. It provides a native look and feel for applications on - Windows, Mac OS X, and Unix systems by using each platform's native + Windows, macOS, and Unix systems by using each platform's native widgets where ever possible, (GTK+ on Unix-like systems). In addition to an extensive set of widgets, wxPython provides classes for online documentation and context sensitive help, printing, HTML viewing, From webhook-mailer at python.org Mon Aug 2 05:43:49 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:43:49 -0000 Subject: [Python-checkins] bpo-44667: Treat correctly lines ending with comments and no newlines in the Python tokenizer (GH-27499) (GH-27500) Message-ID: https://github.com/python/cpython/commit/33a4010198aad31346e46dafdda17e02f8349017 commit: 33a4010198aad31346e46dafdda17e02f8349017 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T11:43:45+02:00 summary: bpo-44667: Treat correctly lines ending with comments and no newlines in the Python tokenizer (GH-27499) (GH-27500) (cherry picked from commit b6bde9fc42aecad5be0457198d17cfe7b481ad79) Co-authored-by: Pablo Galindo Salgado files: A Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst M Lib/test/test_tokenize.py M Lib/tokenize.py diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py index 681f2c72f9c37..4bce1ca9c76f7 100644 --- a/Lib/test/test_tokenize.py +++ b/Lib/test/test_tokenize.py @@ -1458,6 +1458,16 @@ def test_pathological_trailing_whitespace(self): # See http://bugs.python.org/issue16152 self.assertExactTypeEqual('@ ', token.AT) + def test_comment_at_the_end_of_the_source_without_newline(self): + # See http://bugs.python.org/issue44667 + source = 'b = 1\n\n#test' + expected_tokens = [token.NAME, token.EQUAL, token.NUMBER, token.NEWLINE, token.NL, token.COMMENT] + + tokens = list(tokenize(BytesIO(source.encode('utf-8')).readline)) + self.assertEqual(tok_name[tokens[0].exact_type], tok_name[ENCODING]) + for i in range(6): + self.assertEqual(tok_name[tokens[i + 1].exact_type], tok_name[expected_tokens[i]]) + self.assertEqual(tok_name[tokens[-1].exact_type], tok_name[token.ENDMARKER]) class UntokenizeTest(TestCase): diff --git a/Lib/tokenize.py b/Lib/tokenize.py index 42c1f10373de9..7d7736fe98598 100644 --- a/Lib/tokenize.py +++ b/Lib/tokenize.py @@ -604,7 +604,7 @@ def _tokenize(readline, encoding): pos += 1 # Add an implicit NEWLINE if the input doesn't end in one - if last_line and last_line[-1] not in '\r\n': + if last_line and last_line[-1] not in '\r\n' and not last_line.strip().startswith("#"): yield TokenInfo(NEWLINE, '', (lnum - 1, len(last_line)), (lnum - 1, len(last_line) + 1), '') for indent in indents[1:]: # pop remaining indent levels yield TokenInfo(DEDENT, '', (lnum, 0), (lnum, 0), '') diff --git a/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst b/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst new file mode 100644 index 0000000000000..5b7e20e0afdf5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst @@ -0,0 +1,4 @@ +The :func:`tokenize.tokenize` doesn't incorrectly generate a ``NEWLINE`` +token if the source doesn't end with a new line character but the last line +is a comment, as the function is already generating a ``NL`` token. Patch by +Pablo Galindo From webhook-mailer at python.org Mon Aug 2 05:44:06 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:44:06 -0000 Subject: [Python-checkins] bpo-44667: Treat correctly lines ending with comments and no newlines in the Python tokenizer (GH-27499) (GH-27501) Message-ID: https://github.com/python/cpython/commit/2d11797c81be3ae776e418a5ba507098356d357c commit: 2d11797c81be3ae776e418a5ba507098356d357c branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T11:44:01+02:00 summary: bpo-44667: Treat correctly lines ending with comments and no newlines in the Python tokenizer (GH-27499) (GH-27501) (cherry picked from commit b6bde9fc42aecad5be0457198d17cfe7b481ad79) Co-authored-by: Pablo Galindo Salgado files: A Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst M Lib/test/test_tokenize.py M Lib/tokenize.py diff --git a/Lib/test/test_tokenize.py b/Lib/test/test_tokenize.py index 6de7aa87bb2f9..e05a07fab9fe7 100644 --- a/Lib/test/test_tokenize.py +++ b/Lib/test/test_tokenize.py @@ -1457,6 +1457,16 @@ def test_pathological_trailing_whitespace(self): # See http://bugs.python.org/issue16152 self.assertExactTypeEqual('@ ', token.AT) + def test_comment_at_the_end_of_the_source_without_newline(self): + # See http://bugs.python.org/issue44667 + source = 'b = 1\n\n#test' + expected_tokens = [token.NAME, token.EQUAL, token.NUMBER, token.NEWLINE, token.NL, token.COMMENT] + + tokens = list(tokenize(BytesIO(source.encode('utf-8')).readline)) + self.assertEqual(tok_name[tokens[0].exact_type], tok_name[ENCODING]) + for i in range(6): + self.assertEqual(tok_name[tokens[i + 1].exact_type], tok_name[expected_tokens[i]]) + self.assertEqual(tok_name[tokens[-1].exact_type], tok_name[token.ENDMARKER]) class UntokenizeTest(TestCase): diff --git a/Lib/tokenize.py b/Lib/tokenize.py index 1aee21b5e18fa..a782f6250dd24 100644 --- a/Lib/tokenize.py +++ b/Lib/tokenize.py @@ -602,7 +602,7 @@ def _tokenize(readline, encoding): pos += 1 # Add an implicit NEWLINE if the input doesn't end in one - if last_line and last_line[-1] not in '\r\n': + if last_line and last_line[-1] not in '\r\n' and not last_line.strip().startswith("#"): yield TokenInfo(NEWLINE, '', (lnum - 1, len(last_line)), (lnum - 1, len(last_line) + 1), '') for indent in indents[1:]: # pop remaining indent levels yield TokenInfo(DEDENT, '', (lnum, 0), (lnum, 0), '') diff --git a/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst b/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst new file mode 100644 index 0000000000000..5b7e20e0afdf5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst @@ -0,0 +1,4 @@ +The :func:`tokenize.tokenize` doesn't incorrectly generate a ``NEWLINE`` +token if the source doesn't end with a new line character but the last line +is a comment, as the function is already generating a ``NL`` token. Patch by +Pablo Galindo From webhook-mailer at python.org Mon Aug 2 05:54:56 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 09:54:56 -0000 Subject: [Python-checkins] bpo-44781: make distutils test suppress deprecation warning from import distutils (GH-27485) (GH-27540) Message-ID: https://github.com/python/cpython/commit/1bc83eb5c8040855de425c68fc9c5d3c5b48d38e commit: 1bc83eb5c8040855de425c68fc9c5d3c5b48d38e branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T11:54:52+02:00 summary: bpo-44781: make distutils test suppress deprecation warning from import distutils (GH-27485) (GH-27540) (cherry picked from commit a9134fa2ffb7e4684c980325dd5444afca596586) Co-authored-by: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> files: M Lib/distutils/tests/test_bdist.py diff --git a/Lib/distutils/tests/test_bdist.py b/Lib/distutils/tests/test_bdist.py index 09ad076799b420..55fa3930dd92f2 100644 --- a/Lib/distutils/tests/test_bdist.py +++ b/Lib/distutils/tests/test_bdist.py @@ -3,8 +3,11 @@ import unittest from test.support import run_unittest -from distutils.command.bdist import bdist -from distutils.tests import support +import warnings +with warnings.catch_warnings(): + warnings.simplefilter('ignore', DeprecationWarning) + from distutils.command.bdist import bdist + from distutils.tests import support class BuildTestCase(support.TempdirManager, From webhook-mailer at python.org Mon Aug 2 07:54:35 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 11:54:35 -0000 Subject: [Python-checkins] bpo-44808: Fix test_inspect in refleak mode (GH-27544) Message-ID: https://github.com/python/cpython/commit/626d397cc1612ea5eef153dd910834c2ee00ddbd commit: 626d397cc1612ea5eef153dd910834c2ee00ddbd branch: main author: Pablo Galindo Salgado committer: ambv date: 2021-08-02T13:54:20+02:00 summary: bpo-44808: Fix test_inspect in refleak mode (GH-27544) files: M Lib/test/test_inspect.py diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index a46dc9ba594dc..b0c42a2dcf6ce 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -587,11 +587,12 @@ def test_getsource_on_code_object(self): class TestGetsourceInteractive(unittest.TestCase): def tearDown(self): - mod.ParrotDroppings.__module__ = mod + mod.ParrotDroppings.__module__ = self.mod sys.modules['__main__'] = self.main def test_getclasses_interactive(self): self.main = sys.modules['__main__'] + self.mod = mod.ParrotDroppings.__module__ class MockModule: __file__ = None sys.modules['__main__'] = MockModule From webhook-mailer at python.org Mon Aug 2 09:13:41 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 13:13:41 -0000 Subject: [Python-checkins] doc: "Mac OS X" -> "macOS" (GH-27535) (GH-27547) Message-ID: https://github.com/python/cpython/commit/4f2405a749fff64bd486318ce327acfacfe1c3f7 commit: 4f2405a749fff64bd486318ce327acfacfe1c3f7 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T15:13:34+02:00 summary: doc: "Mac OS X" -> "macOS" (GH-27535) (GH-27547) (cherry picked from commit 414dcb13aaa4fd42f264fdee47782dede5c83d6c) Co-authored-by: partev files: M Doc/library/othergui.rst diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst index 48c1f2754111a..db11933b325f3 100644 --- a/Doc/library/othergui.rst +++ b/Doc/library/othergui.rst @@ -3,7 +3,7 @@ Other Graphical User Interface Packages ======================================= -Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are +Major cross-platform (Windows, macOS, Unix-like) GUI toolkits are available for Python: .. seealso:: @@ -26,7 +26,7 @@ available for Python: `PyQt `_ PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an extensive C++ GUI application development framework that is - available for Unix, Windows and Mac OS X. :program:`sip` is a tool + available for Unix, Windows and macOS. :program:`sip` is a tool for generating bindings for C++ libraries as Python classes, and is specifically designed for Python. @@ -40,7 +40,7 @@ available for Python: wxPython is a cross-platform GUI toolkit for Python that is built around the popular `wxWidgets `_ (formerly wxWindows) C++ toolkit. It provides a native look and feel for applications on - Windows, Mac OS X, and Unix systems by using each platform's native + Windows, macOS, and Unix systems by using each platform's native widgets where ever possible, (GTK+ on Unix-like systems). In addition to an extensive set of widgets, wxPython provides classes for online documentation and context sensitive help, printing, HTML viewing, From webhook-mailer at python.org Mon Aug 2 09:13:53 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 13:13:53 -0000 Subject: [Python-checkins] doc: "Mac OS X" -> "macOS" (GH-27535) Message-ID: https://github.com/python/cpython/commit/5888107f330fe0153075924b48b780372e08fe10 commit: 5888107f330fe0153075924b48b780372e08fe10 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T06:13:48-07:00 summary: doc: "Mac OS X" -> "macOS" (GH-27535) (cherry picked from commit 414dcb13aaa4fd42f264fdee47782dede5c83d6c) Co-authored-by: partev files: M Doc/library/othergui.rst diff --git a/Doc/library/othergui.rst b/Doc/library/othergui.rst index 48c1f2754111a..db11933b325f3 100644 --- a/Doc/library/othergui.rst +++ b/Doc/library/othergui.rst @@ -3,7 +3,7 @@ Other Graphical User Interface Packages ======================================= -Major cross-platform (Windows, Mac OS X, Unix-like) GUI toolkits are +Major cross-platform (Windows, macOS, Unix-like) GUI toolkits are available for Python: .. seealso:: @@ -26,7 +26,7 @@ available for Python: `PyQt `_ PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit. Qt is an extensive C++ GUI application development framework that is - available for Unix, Windows and Mac OS X. :program:`sip` is a tool + available for Unix, Windows and macOS. :program:`sip` is a tool for generating bindings for C++ libraries as Python classes, and is specifically designed for Python. @@ -40,7 +40,7 @@ available for Python: wxPython is a cross-platform GUI toolkit for Python that is built around the popular `wxWidgets `_ (formerly wxWindows) C++ toolkit. It provides a native look and feel for applications on - Windows, Mac OS X, and Unix systems by using each platform's native + Windows, macOS, and Unix systems by using each platform's native widgets where ever possible, (GTK+ on Unix-like systems). In addition to an extensive set of widgets, wxPython provides classes for online documentation and context sensitive help, printing, HTML viewing, From webhook-mailer at python.org Mon Aug 2 09:13:57 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 13:13:57 -0000 Subject: [Python-checkins] doc: "Mac OS " -> "macOS" (GH-27534) (GH-27549) Message-ID: https://github.com/python/cpython/commit/2ee09597f2418f5c038ad4f536ca87a324133d5c commit: 2ee09597f2418f5c038ad4f536ca87a324133d5c branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T15:13:52+02:00 summary: doc: "Mac OS " -> "macOS" (GH-27534) (GH-27549) (cherry picked from commit 1342248f3a2b321b7b00867f47c92ba6549f9497) Co-authored-by: partev files: M Doc/library/platform.rst diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index b293adf48e6e3..49186ce371631 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -42,7 +42,7 @@ Cross Platform .. note:: - On Mac OS X (and perhaps other platforms), executable files may be + On macOS (and perhaps other platforms), executable files may be universal files containing multiple architectures. To get at the "64-bitness" of the current interpreter, it is more From webhook-mailer at python.org Mon Aug 2 09:41:39 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 13:41:39 -0000 Subject: [Python-checkins] bpo-44808: Fix test_inspect in refleak mode (GH-27544) Message-ID: https://github.com/python/cpython/commit/a1eaa74d9dcd973ec278cefc22aac7f514faee4b commit: a1eaa74d9dcd973ec278cefc22aac7f514faee4b branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T06:41:08-07:00 summary: bpo-44808: Fix test_inspect in refleak mode (GH-27544) (cherry picked from commit 626d397cc1612ea5eef153dd910834c2ee00ddbd) Co-authored-by: Pablo Galindo Salgado files: M Lib/test/test_inspect.py diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index b664c14020f35..157f315999c42 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -587,11 +587,12 @@ def test_getsource_on_code_object(self): class TestGetsourceInteractive(unittest.TestCase): def tearDown(self): - mod.ParrotDroppings.__module__ = mod + mod.ParrotDroppings.__module__ = self.mod sys.modules['__main__'] = self.main def test_getclasses_interactive(self): self.main = sys.modules['__main__'] + self.mod = mod.ParrotDroppings.__module__ class MockModule: __file__ = None sys.modules['__main__'] = MockModule From webhook-mailer at python.org Mon Aug 2 09:54:41 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 02 Aug 2021 13:54:41 -0000 Subject: [Python-checkins] bpo-44206: Make sure that dict-keys's version is set to zero when value is popped (GH-27542) Message-ID: https://github.com/python/cpython/commit/e06ae75e16dbf46b6626b6a41b62391ea1fdb319 commit: e06ae75e16dbf46b6626b6a41b62391ea1fdb319 branch: main author: Mark Shannon committer: pablogsal date: 2021-08-02T14:54:23+01:00 summary: bpo-44206: Make sure that dict-keys's version is set to zero when value is popped (GH-27542) files: M Lib/test/test_module.py M Objects/dictobject.c diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py index 6608dbc8a5a70..619348e0e40c0 100644 --- a/Lib/test/test_module.py +++ b/Lib/test/test_module.py @@ -332,6 +332,18 @@ def test_annotations_are_created_correctly(self): self.assertFalse("__annotations__" in ann_module4.__dict__) + def test_repeated_attribute_pops(self): + # Repeated accesses to module attribute will be specialized + # Check that popping the attribute doesn't break it + m = ModuleType("test") + d = m.__dict__ + count = 0 + for _ in range(100): + m.attr = 1 + count += m.attr # Might be specialized + d.pop("attr") + self.assertEqual(count, 100) + # frozen and namespace module reprs are tested in importlib. diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 7f1d38dd5f43f..5fb9d01561236 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -1798,6 +1798,7 @@ _PyDict_Pop_KnownHash(PyObject *dict, PyObject *key, Py_hash_t hash, PyObject *d assert(old_value != NULL); mp->ma_used--; mp->ma_version_tag = DICT_NEXT_VERSION(); + mp->ma_keys->dk_version = 0; dictkeys_set_index(mp->ma_keys, hashpos, DKIX_DUMMY); ep = &DK_ENTRIES(mp->ma_keys)[ix]; mp->ma_keys->dk_version = 0; From webhook-mailer at python.org Mon Aug 2 12:04:27 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:04:27 -0000 Subject: [Python-checkins] build(deps): bump actions/stale from 3 to 4 (#27526) Message-ID: https://github.com/python/cpython/commit/db3774d063bea27b80529efe781ae942986f0d17 commit: db3774d063bea27b80529efe781ae942986f0d17 branch: main author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> committer: ambv date: 2021-08-02T18:04:18+02:00 summary: build(deps): bump actions/stale from 3 to 4 (#27526) Bumps [actions/stale](https://github.com/actions/stale) from 3 to 4. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v3...v4) Signed-off-by: dependabot[bot] files: M .github/workflows/stale.yml diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 26806fad814f1..e3b8b9f942d18 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale at v3 + - uses: actions/stale at v4 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-pr-message: 'This PR is stale because it has been open for 30 days with no activity.' From webhook-mailer at python.org Mon Aug 2 12:11:21 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:11:21 -0000 Subject: [Python-checkins] bpo-44785: Silence deprecation warnings in test_pickle (#27538) Message-ID: https://github.com/python/cpython/commit/36d952d228582b0ffc7a86c520d4ddbe8943d803 commit: 36d952d228582b0ffc7a86c520d4ddbe8943d803 branch: main author: Serhiy Storchaka committer: ambv date: 2021-08-02T18:11:12+02:00 summary: bpo-44785: Silence deprecation warnings in test_pickle (#27538) files: M Lib/test/test_pickle.py diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 23c7bd261e85c..f8b43a1eb666f 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -6,6 +6,7 @@ import collections import struct import sys +import warnings import weakref import unittest @@ -367,7 +368,10 @@ def getmodule(module): return sys.modules[module] except KeyError: try: - __import__(module) + with warnings.catch_warnings(): + action = 'always' if support.verbose else 'ignore' + warnings.simplefilter(action, DeprecationWarning) + __import__(module) except AttributeError as exc: if support.verbose: print("Can't import module %r: %s" % (module, exc)) From webhook-mailer at python.org Mon Aug 2 12:23:34 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:23:34 -0000 Subject: [Python-checkins] bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) Message-ID: https://github.com/python/cpython/commit/043cd60abed09edddc7185bcf7d039771acc734d commit: 043cd60abed09edddc7185bcf7d039771acc734d branch: main author: Serhiy Storchaka committer: ambv date: 2021-08-02T18:23:22+02:00 summary: bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) Non-protocol subclasses of protocol ignore now the __init__ method inherited from protocol base classes. files: A Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 6cd83a1586a13..1a172a06705de 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -881,6 +881,9 @@ class P(Protocol): pass class C(P): pass self.assertIsInstance(C(), C) + with self.assertRaises(TypeError): + C(42) + T = TypeVar('T') class PG(Protocol[T]): pass @@ -895,6 +898,8 @@ class PG(Protocol[T]): pass class CG(PG[T]): pass self.assertIsInstance(CG[int](), CG) + with self.assertRaises(TypeError): + CG[int](42) def test_cannot_instantiate_abstract(self): @runtime_checkable @@ -1322,6 +1327,37 @@ def __init__(self): self.assertEqual(C[int]().test, 'OK') + class B: + def __init__(self): + self.test = 'OK' + + class D1(B, P[T]): + pass + + self.assertEqual(D1[int]().test, 'OK') + + class D2(P[T], B): + pass + + self.assertEqual(D2[int]().test, 'OK') + + def test_new_called(self): + T = TypeVar('T') + + class P(Protocol[T]): pass + + class C(P[T]): + def __new__(cls, *args): + self = super().__new__(cls, *args) + self.test = 'OK' + return self + + self.assertEqual(C[int]().test, 'OK') + with self.assertRaises(TypeError): + C[int](42) + with self.assertRaises(TypeError): + C[int](a=42) + def test_protocols_bad_subscripts(self): T = TypeVar('T') S = TypeVar('S') diff --git a/Lib/typing.py b/Lib/typing.py index 16ad5ce7c2d04..7a12d31f2b35e 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1381,8 +1381,7 @@ def _is_callable_members_only(cls): def _no_init(self, *args, **kwargs): - if type(self)._is_protocol: - raise TypeError('Protocols cannot be instantiated') + raise TypeError('Protocols cannot be instantiated') def _caller(depth=1, default='__main__'): try: @@ -1522,6 +1521,15 @@ def _proto_hook(other): # We have nothing more to do for non-protocols... if not cls._is_protocol: + if cls.__init__ == _no_init: + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init) + if init != _no_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ return # ... otherwise check consistency of bases, and prohibit instantiation. diff --git a/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst new file mode 100644 index 0000000000000..6d818c3fc5798 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst @@ -0,0 +1,2 @@ +Non-protocol subclasses of :class:`typing.Protocol` ignore now the +``__init__`` method inherited from protocol base classes. From webhook-mailer at python.org Mon Aug 2 12:27:07 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:27:07 -0000 Subject: [Python-checkins] Document PyMember_GetOne and PyMember_SetOne (GH-27555) Message-ID: https://github.com/python/cpython/commit/d382bde220b4c07cce2b924ffeb7525ea1a969f4 commit: d382bde220b4c07cce2b924ffeb7525ea1a969f4 branch: main author: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> committer: ambv date: 2021-08-02T18:26:57+02:00 summary: Document PyMember_GetOne and PyMember_SetOne (GH-27555) files: M Doc/c-api/structures.rst diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst index 20d5485d5544c..05c54ccc8dab5 100644 --- a/Doc/c-api/structures.rst +++ b/Doc/c-api/structures.rst @@ -469,6 +469,21 @@ Accessing attributes of extension types {NULL} /* Sentinel */ }; + +.. c:function:: PyObject* PyMember_GetOne(const char *obj_addr, struct PyMemberDef *m) + + Get an attribute belonging to the object at address *obj_addr*. The + attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` + on error. + + +.. c:function:: int PyMember_SetOne(char *obj_addr, struct PyMemberDef *m, PyObject *o) + + Set an attribute belonging to the object at address *obj_addr* to object *o*. + The attribute to set is described by ``PyMemberDef`` *m*. Returns ``0`` + if successful and a negative value on failure. + + .. c:type:: PyGetSetDef Structure to define property-like access for a type. See also description of From webhook-mailer at python.org Mon Aug 2 12:30:15 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 16:30:15 -0000 Subject: [Python-checkins] doc: "Mac OS " -> "macOS" (GH-27534) Message-ID: https://github.com/python/cpython/commit/7c89bddd2f7d2fa8ff82782caccdc9706f804313 commit: 7c89bddd2f7d2fa8ff82782caccdc9706f804313 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T09:30:05-07:00 summary: doc: "Mac OS " -> "macOS" (GH-27534) (cherry picked from commit 1342248f3a2b321b7b00867f47c92ba6549f9497) Co-authored-by: partev files: M Doc/library/platform.rst diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst index be86e568c180b..bb9fc45df233b 100644 --- a/Doc/library/platform.rst +++ b/Doc/library/platform.rst @@ -42,7 +42,7 @@ Cross Platform .. note:: - On Mac OS X (and perhaps other platforms), executable files may be + On macOS (and perhaps other platforms), executable files may be universal files containing multiple architectures. To get at the "64-bitness" of the current interpreter, it is more From webhook-mailer at python.org Mon Aug 2 12:39:33 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:39:33 -0000 Subject: [Python-checkins] bpo-44785: Silence deprecation warnings in test_pickle (GH-27538) (#27557) Message-ID: https://github.com/python/cpython/commit/4817c1439519081d7bd9b396bb18b0f4124613be commit: 4817c1439519081d7bd9b396bb18b0f4124613be branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T18:39:25+02:00 summary: bpo-44785: Silence deprecation warnings in test_pickle (GH-27538) (#27557) (cherry picked from commit 36d952d228582b0ffc7a86c520d4ddbe8943d803) Co-authored-by: Serhiy Storchaka files: M Lib/test/test_pickle.py diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 2307b133dbd0d..70672dc19cf4a 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -6,6 +6,7 @@ import collections import struct import sys +import warnings import weakref import unittest @@ -366,7 +367,10 @@ def getmodule(module): return sys.modules[module] except KeyError: try: - __import__(module) + with warnings.catch_warnings(): + action = 'always' if support.verbose else 'ignore' + warnings.simplefilter(action, DeprecationWarning) + __import__(module) except AttributeError as exc: if support.verbose: print("Can't import module %r: %s" % (module, exc)) From webhook-mailer at python.org Mon Aug 2 12:52:33 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:52:33 -0000 Subject: [Python-checkins] bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) (GH-27559) Message-ID: https://github.com/python/cpython/commit/0f6a7739df0055b5c6abe2180f1be97ea4da87b7 commit: 0f6a7739df0055b5c6abe2180f1be97ea4da87b7 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T18:52:16+02:00 summary: bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) (GH-27559) Non-protocol subclasses of protocol ignore now the __init__ method inherited from protocol base classes. (cherry picked from commit 043cd60abed09edddc7185bcf7d039771acc734d) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 6abd07ec3f540..e05ac4539fb50 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -745,6 +745,9 @@ class P(Protocol): pass class C(P): pass self.assertIsInstance(C(), C) + with self.assertRaises(TypeError): + C(42) + T = TypeVar('T') class PG(Protocol[T]): pass @@ -759,6 +762,8 @@ class PG(Protocol[T]): pass class CG(PG[T]): pass self.assertIsInstance(CG[int](), CG) + with self.assertRaises(TypeError): + CG[int](42) def test_cannot_instantiate_abstract(self): @runtime_checkable @@ -1194,6 +1199,37 @@ def __init__(self): self.assertEqual(C[int]().test, 'OK') + class B: + def __init__(self): + self.test = 'OK' + + class D1(B, P[T]): + pass + + self.assertEqual(D1[int]().test, 'OK') + + class D2(P[T], B): + pass + + self.assertEqual(D2[int]().test, 'OK') + + def test_new_called(self): + T = TypeVar('T') + + class P(Protocol[T]): pass + + class C(P[T]): + def __new__(cls, *args): + self = super().__new__(cls, *args) + self.test = 'OK' + return self + + self.assertEqual(C[int]().test, 'OK') + with self.assertRaises(TypeError): + C[int](42) + with self.assertRaises(TypeError): + C[int](a=42) + def test_protocols_bad_subscripts(self): T = TypeVar('T') S = TypeVar('S') diff --git a/Lib/typing.py b/Lib/typing.py index 5f75a2728055a..894b2d905114c 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1080,8 +1080,7 @@ def _is_callable_members_only(cls): def _no_init(self, *args, **kwargs): - if type(self)._is_protocol: - raise TypeError('Protocols cannot be instantiated') + raise TypeError('Protocols cannot be instantiated') def _allow_reckless_class_cheks(): @@ -1210,6 +1209,15 @@ def _proto_hook(other): # We have nothing more to do for non-protocols... if not cls._is_protocol: + if cls.__init__ == _no_init: + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init) + if init != _no_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ return # ... otherwise check consistency of bases, and prohibit instantiation. diff --git a/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst new file mode 100644 index 0000000000000..6d818c3fc5798 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst @@ -0,0 +1,2 @@ +Non-protocol subclasses of :class:`typing.Protocol` ignore now the +``__init__`` method inherited from protocol base classes. From webhook-mailer at python.org Mon Aug 2 12:54:05 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 16:54:05 -0000 Subject: [Python-checkins] Document PyMember_GetOne and PyMember_SetOne (GH-27555) (GH-27561) Message-ID: https://github.com/python/cpython/commit/77a96da55616950f5e391c78baaf4b2b8ee3811c commit: 77a96da55616950f5e391c78baaf4b2b8ee3811c branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T18:53:55+02:00 summary: Document PyMember_GetOne and PyMember_SetOne (GH-27555) (GH-27561) (cherry picked from commit d382bde220b4c07cce2b924ffeb7525ea1a969f4) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> files: M Doc/c-api/structures.rst diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst index 0a0e03ff77ce6..1e30d408ab6d1 100644 --- a/Doc/c-api/structures.rst +++ b/Doc/c-api/structures.rst @@ -436,6 +436,21 @@ Accessing attributes of extension types {NULL} /* Sentinel */ }; + +.. c:function:: PyObject* PyMember_GetOne(const char *obj_addr, struct PyMemberDef *m) + + Get an attribute belonging to the object at address *obj_addr*. The + attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` + on error. + + +.. c:function:: int PyMember_SetOne(char *obj_addr, struct PyMemberDef *m, PyObject *o) + + Set an attribute belonging to the object at address *obj_addr* to object *o*. + The attribute to set is described by ``PyMemberDef`` *m*. Returns ``0`` + if successful and a negative value on failure. + + .. c:type:: PyGetSetDef Structure to define property-like access for a type. See also description of From webhook-mailer at python.org Mon Aug 2 13:02:03 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 17:02:03 -0000 Subject: [Python-checkins] bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) Message-ID: https://github.com/python/cpython/commit/aa0894b3792901adb91e5f6d049154b7bcb980ec commit: aa0894b3792901adb91e5f6d049154b7bcb980ec branch: main author: Jake Stockwin committer: ambv date: 2021-08-02T19:01:53+02:00 summary: bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) files: A Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst M Doc/library/os.path.rst diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index e2f43424df15e1..a66b3c5a3a9902 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -470,12 +470,16 @@ the :mod:`glob` module.) On Windows, splits a pathname into drive/UNC sharepoint and relative path. If the path contains a drive letter, drive will contain everything - up to and including the colon. - e.g. ``splitdrive("c:/dir")`` returns ``("c:", "/dir")`` + up to and including the colon:: + + >>> splitdrive("c:/dir") + ("c:", "/dir") If the path contains a UNC path, drive will contain the host name - and share, up to but not including the fourth separator. - e.g. ``splitdrive("//host/computer/dir")`` returns ``("//host/computer", "/dir")`` + and share, up to but not including the fourth separator:: + + >>> splitdrive("//host/computer/dir") + ("//host/computer", "/dir") .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -484,9 +488,24 @@ the :mod:`glob` module.) .. function:: splitext(path) Split the pathname *path* into a pair ``(root, ext)`` such that ``root + ext == - path``, and *ext* is empty or begins with a period and contains at most one - period. Leading periods on the basename are ignored; ``splitext('.cshrc')`` - returns ``('.cshrc', '')``. + path``, and the extension, *ext*, is empty or begins with a period and contains at + most one period. + + If the path contains no extension, *ext* will be ``''``:: + + >>> splitext('bar') + ('bar', '') + + If the path contains an extension, then *ext* will be set to this extension, + including the leading period. Note that previous periods will be ignored:: + + >>> splitext('foo.bar.exe') + ('foo.bar', '.exe') + + Leading periods on the basename are ignored:: + + >>> splitext('.cshrc') + ('.cshrc', '') .. versionchanged:: 3.6 Accepts a :term:`path-like object`. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst new file mode 100644 index 00000000000000..02c5fe82611fbf --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst @@ -0,0 +1 @@ +Add typical examples to os.path.splitext docs \ No newline at end of file From webhook-mailer at python.org Mon Aug 2 13:08:58 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 17:08:58 -0000 Subject: [Python-checkins] Document PyMember_GetOne and PyMember_SetOne (GH-27555) Message-ID: https://github.com/python/cpython/commit/9de590151d49f2988d3a5c4d30b9daf86616f6f3 commit: 9de590151d49f2988d3a5c4d30b9daf86616f6f3 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T10:08:49-07:00 summary: Document PyMember_GetOne and PyMember_SetOne (GH-27555) (cherry picked from commit d382bde220b4c07cce2b924ffeb7525ea1a969f4) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> files: M Doc/c-api/structures.rst diff --git a/Doc/c-api/structures.rst b/Doc/c-api/structures.rst index 20d5485d5544c..05c54ccc8dab5 100644 --- a/Doc/c-api/structures.rst +++ b/Doc/c-api/structures.rst @@ -469,6 +469,21 @@ Accessing attributes of extension types {NULL} /* Sentinel */ }; + +.. c:function:: PyObject* PyMember_GetOne(const char *obj_addr, struct PyMemberDef *m) + + Get an attribute belonging to the object at address *obj_addr*. The + attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` + on error. + + +.. c:function:: int PyMember_SetOne(char *obj_addr, struct PyMemberDef *m, PyObject *o) + + Set an attribute belonging to the object at address *obj_addr* to object *o*. + The attribute to set is described by ``PyMemberDef`` *m*. Returns ``0`` + if successful and a negative value on failure. + + .. c:type:: PyGetSetDef Structure to define property-like access for a type. See also description of From webhook-mailer at python.org Mon Aug 2 13:09:08 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 17:09:08 -0000 Subject: [Python-checkins] bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) Message-ID: https://github.com/python/cpython/commit/2cc19a5463c804b2f39b94de896d55dcb57a364c commit: 2cc19a5463c804b2f39b94de896d55dcb57a364c branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T10:08:59-07:00 summary: bpo-44806: Fix __init__ in subclasses of protocols (GH-27545) Non-protocol subclasses of protocol ignore now the __init__ method inherited from protocol base classes. (cherry picked from commit 043cd60abed09edddc7185bcf7d039771acc734d) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 3d9a347dcb707..6e557c4783338 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -875,6 +875,9 @@ class P(Protocol): pass class C(P): pass self.assertIsInstance(C(), C) + with self.assertRaises(TypeError): + C(42) + T = TypeVar('T') class PG(Protocol[T]): pass @@ -889,6 +892,8 @@ class PG(Protocol[T]): pass class CG(PG[T]): pass self.assertIsInstance(CG[int](), CG) + with self.assertRaises(TypeError): + CG[int](42) def test_cannot_instantiate_abstract(self): @runtime_checkable @@ -1316,6 +1321,37 @@ def __init__(self): self.assertEqual(C[int]().test, 'OK') + class B: + def __init__(self): + self.test = 'OK' + + class D1(B, P[T]): + pass + + self.assertEqual(D1[int]().test, 'OK') + + class D2(P[T], B): + pass + + self.assertEqual(D2[int]().test, 'OK') + + def test_new_called(self): + T = TypeVar('T') + + class P(Protocol[T]): pass + + class C(P[T]): + def __new__(cls, *args): + self = super().__new__(cls, *args) + self.test = 'OK' + return self + + self.assertEqual(C[int]().test, 'OK') + with self.assertRaises(TypeError): + C[int](42) + with self.assertRaises(TypeError): + C[int](a=42) + def test_protocols_bad_subscripts(self): T = TypeVar('T') S = TypeVar('S') diff --git a/Lib/typing.py b/Lib/typing.py index e492bd2ee916b..6f884e1fe9860 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1379,8 +1379,7 @@ def _is_callable_members_only(cls): def _no_init(self, *args, **kwargs): - if type(self)._is_protocol: - raise TypeError('Protocols cannot be instantiated') + raise TypeError('Protocols cannot be instantiated') def _caller(depth=1, default='__main__'): try: @@ -1523,6 +1522,15 @@ def _proto_hook(other): # We have nothing more to do for non-protocols... if not cls._is_protocol: + if cls.__init__ == _no_init: + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init) + if init != _no_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ return # ... otherwise check consistency of bases, and prohibit instantiation. diff --git a/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst new file mode 100644 index 0000000000000..6d818c3fc5798 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst @@ -0,0 +1,2 @@ +Non-protocol subclasses of :class:`typing.Protocol` ignore now the +``__init__`` method inherited from protocol base classes. From webhook-mailer at python.org Mon Aug 2 13:09:09 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 17:09:09 -0000 Subject: [Python-checkins] bpo-44785: Silence deprecation warnings in test_pickle (GH-27538) Message-ID: https://github.com/python/cpython/commit/aa7266854abc63524b4be40a3a83977b8ad166c6 commit: aa7266854abc63524b4be40a3a83977b8ad166c6 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T10:09:05-07:00 summary: bpo-44785: Silence deprecation warnings in test_pickle (GH-27538) (cherry picked from commit 36d952d228582b0ffc7a86c520d4ddbe8943d803) Co-authored-by: Serhiy Storchaka files: M Lib/test/test_pickle.py diff --git a/Lib/test/test_pickle.py b/Lib/test/test_pickle.py index 23c7bd261e85c..f8b43a1eb666f 100644 --- a/Lib/test/test_pickle.py +++ b/Lib/test/test_pickle.py @@ -6,6 +6,7 @@ import collections import struct import sys +import warnings import weakref import unittest @@ -367,7 +368,10 @@ def getmodule(module): return sys.modules[module] except KeyError: try: - __import__(module) + with warnings.catch_warnings(): + action = 'always' if support.verbose else 'ignore' + warnings.simplefilter(action, DeprecationWarning) + __import__(module) except AttributeError as exc: if support.verbose: print("Can't import module %r: %s" % (module, exc)) From webhook-mailer at python.org Mon Aug 2 13:11:45 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 02 Aug 2021 17:11:45 -0000 Subject: [Python-checkins] bpo-44792: Improve syntax errors for if expressions (GH-27506) Message-ID: https://github.com/python/cpython/commit/28b6dc9dd5d1ce6f8aff7e06d4ef9afdc2bc8332 commit: 28b6dc9dd5d1ce6f8aff7e06d4ef9afdc2bc8332 branch: main author: Miguel Brito <5544985+miguendes at users.noreply.github.com> committer: pablogsal date: 2021-08-02T18:11:37+01:00 summary: bpo-44792: Improve syntax errors for if expressions (GH-27506) files: A Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst M Grammar/python.gram M Lib/test/test_syntax.py M Misc/ACKS M Parser/parser.c diff --git a/Grammar/python.gram b/Grammar/python.gram index 8a21056d2a82b..91d8a694d1e8b 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1083,6 +1083,7 @@ invalid_expression: # Soft keywords need to also be ignored because they can be parsed as NAME NAME | !(NAME STRING | SOFT_KEYWORD) a=disjunction b=expression_without_invalid { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } + | a=disjunction 'if' b=disjunction !'else' { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } invalid_named_expression: | a=expression ':=' expression { diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 6e1531e8b25fc..d5a52ba628a81 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -140,6 +140,18 @@ Traceback (most recent call last): SyntaxError: cannot assign to conditional expression +>>> a = 42 if True +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + +>>> a = (42 if True) +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + +>>> a = [1, 42 if True, 4] +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + >>> True = True = 3 Traceback (most recent call last): SyntaxError: cannot assign to True diff --git a/Misc/ACKS b/Misc/ACKS index ac10be97ae3d9..97a360c8ecfc3 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -227,6 +227,7 @@ Tom Bridgman Anthony Briggs Keith Briggs Tobias Brink +Miguel Brito Dillon Brock Richard Brodie Michael Broghton diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst new file mode 100644 index 0000000000000..2e9000d09ee44 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst @@ -0,0 +1 @@ +Improve syntax errors for if expressions. Patch by Miguel Brito diff --git a/Parser/parser.c b/Parser/parser.c index 7a106a437bc31..5db7c3a4a2f1c 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -18207,6 +18207,7 @@ invalid_legacy_expression_rule(Parser *p) // invalid_expression: // | invalid_legacy_expression // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid +// | disjunction 'if' disjunction !'else' static void * invalid_expression_rule(Parser *p) { @@ -18265,6 +18266,38 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } + { // disjunction 'if' disjunction !'else' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + Token * _keyword; + expr_ty a; + expr_ty b; + if ( + (a = disjunction_rule(p)) // disjunction + && + (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + && + (b = disjunction_rule(p)) // disjunction + && + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 518) // token='else' + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + D(p->level--); + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !'else'")); + } _res = NULL; done: D(p->level--); From webhook-mailer at python.org Mon Aug 2 14:08:36 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 18:08:36 -0000 Subject: [Python-checkins] bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) (GH-27564) Message-ID: https://github.com/python/cpython/commit/e0d599fa48032eb7b8d837f8412bbca72b6ad820 commit: e0d599fa48032eb7b8d837f8412bbca72b6ad820 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T20:08:10+02:00 summary: bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) (GH-27564) (cherry picked from commit aa0894b3792901adb91e5f6d049154b7bcb980ec) Co-authored-by: Jake Stockwin files: A Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst M Doc/library/os.path.rst diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 3be513e9099c78..729649200209b3 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -458,12 +458,16 @@ the :mod:`glob` module.) On Windows, splits a pathname into drive/UNC sharepoint and relative path. If the path contains a drive letter, drive will contain everything - up to and including the colon. - e.g. ``splitdrive("c:/dir")`` returns ``("c:", "/dir")`` + up to and including the colon:: + + >>> splitdrive("c:/dir") + ("c:", "/dir") If the path contains a UNC path, drive will contain the host name - and share, up to but not including the fourth separator. - e.g. ``splitdrive("//host/computer/dir")`` returns ``("//host/computer", "/dir")`` + and share, up to but not including the fourth separator:: + + >>> splitdrive("//host/computer/dir") + ("//host/computer", "/dir") .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -472,9 +476,24 @@ the :mod:`glob` module.) .. function:: splitext(path) Split the pathname *path* into a pair ``(root, ext)`` such that ``root + ext == - path``, and *ext* is empty or begins with a period and contains at most one - period. Leading periods on the basename are ignored; ``splitext('.cshrc')`` - returns ``('.cshrc', '')``. + path``, and the extension, *ext*, is empty or begins with a period and contains at + most one period. + + If the path contains no extension, *ext* will be ``''``:: + + >>> splitext('bar') + ('bar', '') + + If the path contains an extension, then *ext* will be set to this extension, + including the leading period. Note that previous periods will be ignored:: + + >>> splitext('foo.bar.exe') + ('foo.bar', '.exe') + + Leading periods on the basename are ignored:: + + >>> splitext('.cshrc') + ('.cshrc', '') .. versionchanged:: 3.6 Accepts a :term:`path-like object`. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst new file mode 100644 index 00000000000000..02c5fe82611fbf --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst @@ -0,0 +1 @@ +Add typical examples to os.path.splitext docs \ No newline at end of file From webhook-mailer at python.org Mon Aug 2 14:10:54 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 02 Aug 2021 18:10:54 -0000 Subject: [Python-checkins] bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) (GH-27563) Message-ID: https://github.com/python/cpython/commit/14cb669357bc30bdc235d1c32ee1b99be05ac9d8 commit: 14cb669357bc30bdc235d1c32ee1b99be05ac9d8 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-02T20:10:47+02:00 summary: bpo-35183: Add typical examples to os.path.splitext docs (GH-27286) (GH-27563) (cherry picked from commit aa0894b3792901adb91e5f6d049154b7bcb980ec) Co-authored-by: Jake Stockwin files: A Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst M Doc/library/os.path.rst diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index e2f43424df15e1..a66b3c5a3a9902 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -470,12 +470,16 @@ the :mod:`glob` module.) On Windows, splits a pathname into drive/UNC sharepoint and relative path. If the path contains a drive letter, drive will contain everything - up to and including the colon. - e.g. ``splitdrive("c:/dir")`` returns ``("c:", "/dir")`` + up to and including the colon:: + + >>> splitdrive("c:/dir") + ("c:", "/dir") If the path contains a UNC path, drive will contain the host name - and share, up to but not including the fourth separator. - e.g. ``splitdrive("//host/computer/dir")`` returns ``("//host/computer", "/dir")`` + and share, up to but not including the fourth separator:: + + >>> splitdrive("//host/computer/dir") + ("//host/computer", "/dir") .. versionchanged:: 3.6 Accepts a :term:`path-like object`. @@ -484,9 +488,24 @@ the :mod:`glob` module.) .. function:: splitext(path) Split the pathname *path* into a pair ``(root, ext)`` such that ``root + ext == - path``, and *ext* is empty or begins with a period and contains at most one - period. Leading periods on the basename are ignored; ``splitext('.cshrc')`` - returns ``('.cshrc', '')``. + path``, and the extension, *ext*, is empty or begins with a period and contains at + most one period. + + If the path contains no extension, *ext* will be ``''``:: + + >>> splitext('bar') + ('bar', '') + + If the path contains an extension, then *ext* will be set to this extension, + including the leading period. Note that previous periods will be ignored:: + + >>> splitext('foo.bar.exe') + ('foo.bar', '.exe') + + Leading periods on the basename are ignored:: + + >>> splitext('.cshrc') + ('.cshrc', '') .. versionchanged:: 3.6 Accepts a :term:`path-like object`. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst new file mode 100644 index 00000000000000..02c5fe82611fbf --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst @@ -0,0 +1 @@ +Add typical examples to os.path.splitext docs \ No newline at end of file From webhook-mailer at python.org Mon Aug 2 14:15:54 2021 From: webhook-mailer at python.org (rhettinger) Date: Mon, 02 Aug 2021 18:15:54 -0000 Subject: [Python-checkins] bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) Message-ID: https://github.com/python/cpython/commit/54f185b6d321a6354aef2b2886c766677f487ecb commit: 54f185b6d321a6354aef2b2886c766677f487ecb branch: main author: Raymond Hettinger committer: rhettinger date: 2021-08-02T13:15:45-05:00 summary: bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) files: M Doc/library/collections.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 2a0bc049f88dd..b1779a5b2382e 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -1171,27 +1171,43 @@ original insertion position is changed and moved to the end:: self.move_to_end(key) An :class:`OrderedDict` would also be useful for implementing -variants of :func:`functools.lru_cache`:: +variants of :func:`functools.lru_cache`: - class LRU(OrderedDict): - 'Limit size, evicting the least recently looked-up key when full' +.. testcode:: - def __init__(self, maxsize=128, /, *args, **kwds): - self.maxsize = maxsize - super().__init__(*args, **kwds) + class LRU: - def __getitem__(self, key): - value = super().__getitem__(key) - self.move_to_end(key) + def __init__(self, func, maxsize=128): + self.func = func + self.maxsize = maxsize + self.cache = OrderedDict() + + def __call__(self, *args): + if args in self.cache: + value = self.cache[args] + self.cache.move_to_end(args) + return value + value = self.func(*args) + if len(self.cache) >= self.maxsize: + self.cache.popitem(False) + self.cache[args] = value return value - def __setitem__(self, key, value): - if key in self: - self.move_to_end(key) - super().__setitem__(key, value) - if len(self) > self.maxsize: - oldest = next(iter(self)) - del self[oldest] +.. doctest:: + :hide: + + >>> def square(x): + ... return x ** 2 + ... + >>> s = LRU(square, maxsize=5) + >>> actual = [(s(x), s(x)) for x in range(20)] + >>> expected = [(x**2, x**2) for x in range(20)] + >>> actual == expected + True + >>> actual = list(s.cache.items()) + >>> expected = [((x,), x**2) for x in range(15, 20)] + >>> actual == expected + True :class:`UserDict` objects From webhook-mailer at python.org Mon Aug 2 14:37:46 2021 From: webhook-mailer at python.org (rhettinger) Date: Mon, 02 Aug 2021 18:37:46 -0000 Subject: [Python-checkins] bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) (GH-27567) Message-ID: https://github.com/python/cpython/commit/c50a672eebb16cf778d9a3b22b72d506c3f54ced commit: c50a672eebb16cf778d9a3b22b72d506c3f54ced branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: rhettinger date: 2021-08-02T13:37:42-05:00 summary: bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) (GH-27567) files: M Doc/library/collections.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 000015becb11b..e00b75fa9be19 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -1149,27 +1149,43 @@ original insertion position is changed and moved to the end:: self.move_to_end(key) An :class:`OrderedDict` would also be useful for implementing -variants of :func:`functools.lru_cache`:: +variants of :func:`functools.lru_cache`: - class LRU(OrderedDict): - 'Limit size, evicting the least recently looked-up key when full' +.. testcode:: - def __init__(self, maxsize=128, /, *args, **kwds): - self.maxsize = maxsize - super().__init__(*args, **kwds) + class LRU: - def __getitem__(self, key): - value = super().__getitem__(key) - self.move_to_end(key) + def __init__(self, func, maxsize=128): + self.func = func + self.maxsize = maxsize + self.cache = OrderedDict() + + def __call__(self, *args): + if args in self.cache: + value = self.cache[args] + self.cache.move_to_end(args) + return value + value = self.func(*args) + if len(self.cache) >= self.maxsize: + self.cache.popitem(False) + self.cache[args] = value return value - def __setitem__(self, key, value): - if key in self: - self.move_to_end(key) - super().__setitem__(key, value) - if len(self) > self.maxsize: - oldest = next(iter(self)) - del self[oldest] +.. doctest:: + :hide: + + >>> def square(x): + ... return x ** 2 + ... + >>> s = LRU(square, maxsize=5) + >>> actual = [(s(x), s(x)) for x in range(20)] + >>> expected = [(x**2, x**2) for x in range(20)] + >>> actual == expected + True + >>> actual = list(s.cache.items()) + >>> expected = [((x,), x**2) for x in range(15, 20)] + >>> actual == expected + True :class:`UserDict` objects From webhook-mailer at python.org Mon Aug 2 14:38:19 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 02 Aug 2021 18:38:19 -0000 Subject: [Python-checkins] bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) Message-ID: https://github.com/python/cpython/commit/c6e7c9860d5ac968c7a1073fdbfbd44e0e87f582 commit: c6e7c9860d5ac968c7a1073fdbfbd44e0e87f582 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-02T11:38:14-07:00 summary: bpo-44782: Improve OrderedDict recipe for LRU cache variants (GH-27536) (cherry picked from commit 54f185b6d321a6354aef2b2886c766677f487ecb) Co-authored-by: Raymond Hettinger files: M Doc/library/collections.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index 2a0bc049f88dd..b1779a5b2382e 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -1171,27 +1171,43 @@ original insertion position is changed and moved to the end:: self.move_to_end(key) An :class:`OrderedDict` would also be useful for implementing -variants of :func:`functools.lru_cache`:: +variants of :func:`functools.lru_cache`: - class LRU(OrderedDict): - 'Limit size, evicting the least recently looked-up key when full' +.. testcode:: - def __init__(self, maxsize=128, /, *args, **kwds): - self.maxsize = maxsize - super().__init__(*args, **kwds) + class LRU: - def __getitem__(self, key): - value = super().__getitem__(key) - self.move_to_end(key) + def __init__(self, func, maxsize=128): + self.func = func + self.maxsize = maxsize + self.cache = OrderedDict() + + def __call__(self, *args): + if args in self.cache: + value = self.cache[args] + self.cache.move_to_end(args) + return value + value = self.func(*args) + if len(self.cache) >= self.maxsize: + self.cache.popitem(False) + self.cache[args] = value return value - def __setitem__(self, key, value): - if key in self: - self.move_to_end(key) - super().__setitem__(key, value) - if len(self) > self.maxsize: - oldest = next(iter(self)) - del self[oldest] +.. doctest:: + :hide: + + >>> def square(x): + ... return x ** 2 + ... + >>> s = LRU(square, maxsize=5) + >>> actual = [(s(x), s(x)) for x in range(20)] + >>> expected = [(x**2, x**2) for x in range(20)] + >>> actual == expected + True + >>> actual = list(s.cache.items()) + >>> expected = [((x,), x**2) for x in range(15, 20)] + >>> actual == expected + True :class:`UserDict` objects From webhook-mailer at python.org Mon Aug 2 15:05:43 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 02 Aug 2021 19:05:43 -0000 Subject: [Python-checkins] bpo-44792: Improve syntax errors for if expressions (GH-27506) (GH-27565) Message-ID: https://github.com/python/cpython/commit/567176249ea95c074eb80199aaf19f3a55aa3954 commit: 567176249ea95c074eb80199aaf19f3a55aa3954 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: pablogsal date: 2021-08-02T20:05:33+01:00 summary: bpo-44792: Improve syntax errors for if expressions (GH-27506) (GH-27565) (cherry picked from commit 28b6dc9dd5d1ce6f8aff7e06d4ef9afdc2bc8332) Co-authored-by: Miguel Brito <5544985+miguendes at users.noreply.github.com> files: A Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst M Grammar/python.gram M Lib/test/test_syntax.py M Misc/ACKS M Parser/parser.c diff --git a/Grammar/python.gram b/Grammar/python.gram index 057bcb641a666..3e7475a3fa6f4 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -859,6 +859,7 @@ invalid_expression: # Soft keywords need to also be ignored because they can be parsed as NAME NAME | !(NAME STRING | SOFT_KEYWORD) a=disjunction b=expression_without_invalid { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } + | a=disjunction 'if' b=disjunction !'else' { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } invalid_named_expression: | a=expression ':=' expression { diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 6e1531e8b25fc..d5a52ba628a81 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -140,6 +140,18 @@ Traceback (most recent call last): SyntaxError: cannot assign to conditional expression +>>> a = 42 if True +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + +>>> a = (42 if True) +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + +>>> a = [1, 42 if True, 4] +Traceback (most recent call last): +SyntaxError: expected 'else' after 'if' expression + >>> True = True = 3 Traceback (most recent call last): SyntaxError: cannot assign to True diff --git a/Misc/ACKS b/Misc/ACKS index 385d7caf1775b..3f0506ecf758e 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -227,6 +227,7 @@ Tom Bridgman Anthony Briggs Keith Briggs Tobias Brink +Miguel Brito Dillon Brock Richard Brodie Michael Broghton diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst new file mode 100644 index 0000000000000..2e9000d09ee44 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst @@ -0,0 +1 @@ +Improve syntax errors for if expressions. Patch by Miguel Brito diff --git a/Parser/parser.c b/Parser/parser.c index c4a4eb651b3e7..b37e3d6855ce9 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -18229,6 +18229,7 @@ invalid_legacy_expression_rule(Parser *p) // invalid_expression: // | invalid_legacy_expression // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid +// | disjunction 'if' disjunction !'else' static void * invalid_expression_rule(Parser *p) { @@ -18287,6 +18288,38 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } + { // disjunction 'if' disjunction !'else' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + Token * _keyword; + expr_ty a; + expr_ty b; + if ( + (a = disjunction_rule(p)) // disjunction + && + (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + && + (b = disjunction_rule(p)) // disjunction + && + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 516) // token='else' + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + D(p->level--); + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !'else'")); + } _res = NULL; done: D(p->level--); From webhook-mailer at python.org Mon Aug 2 17:38:32 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 02 Aug 2021 21:38:32 -0000 Subject: [Python-checkins] Python 3.10.0rc1 Message-ID: https://github.com/python/cpython/commit/cc115e5bf66abe909964be5880c96194d9424df9 commit: cc115e5bf66abe909964be5880c96194d9424df9 branch: 3.10 author: Pablo Galindo committer: pablogsal date: 2021-08-02T20:53:59+01:00 summary: Python 3.10.0rc1 files: A Misc/NEWS.d/3.10.0rc1.rst D Misc/NEWS.d/next/C API/2021-07-20-16-21-06.bpo-42747.rRxjUY.rst D Misc/NEWS.d/next/C API/2021-07-29-16-04-28.bpo-41103.hiKKcF.rst D Misc/NEWS.d/next/Core and Builtins/2021-06-21-11-19-54.bpo-44472.Vvm1yn.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-01-11-59-34.bpo-44490.xY80VR.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-06-22-22-15.bpo-44490.BJxPbZ.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-13-17-47-32.bpo-42073.9wopiC.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-13-20-22-12.bpo-44606.S3Bv2w.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-13-23-19-41.bpo-44589.59OH8T.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-14-13-54-07.bpo-44635.7ZMAdB.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-36-12.bpo-44636.ZWebi8.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-59-13.bpo-44646.Yb6s05.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-16-20-25-37.bpo-44655.I3wRjL.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-16-21-35-14.bpo-44655.95I7M6.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-17-13-41-58.bpo-44662.q22kWR.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-17-21-04-04.bpo-44633.5-zKeI.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-19-19-53-46.bpo-44676.WgIMvh.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-19-20-49-06.bpo-44653.WcqGyI.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-21-15-26-56.bpo-44698.DA4_0o.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-26-15-27-03.bpo-44732.IxObt3.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-27-11-14-22.bpo-34013.SjLFe-.rst D Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst D Misc/NEWS.d/next/Documentation/2021-06-18-06-44-45.bpo-44453.3PIkj2.rst D Misc/NEWS.d/next/Documentation/2021-07-02-14-02-29.bpo-44544._5_aCz.rst D Misc/NEWS.d/next/Documentation/2021-07-12-11-39-20.bpo-44613.DIXNzc.rst D Misc/NEWS.d/next/Documentation/2021-07-18-22-43-14.bpo-44561.T7HpWm.rst D Misc/NEWS.d/next/Documentation/2021-07-20-21-03-18.bpo-30511.eMFkRi.rst D Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst D Misc/NEWS.d/next/Documentation/2021-07-25-23-04-15.bpo-44693.JuCbNq.rst D Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst D Misc/NEWS.d/next/Library/2017-09-20-14-43-03.bpo-29298._78CSN.rst D Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst D Misc/NEWS.d/next/Library/2019-11-12-18-59-33.bpo-38741.W7IYkq.rst D Misc/NEWS.d/next/Library/2021-06-12-21-25-35.bpo-27827.TMWh1i.rst D Misc/NEWS.d/next/Library/2021-06-24-19-16-20.bpo-42892.qvRNhI.rst D Misc/NEWS.d/next/Library/2021-06-29-07-27-08.bpo-43625.ZlAxhp.rst D Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst D Misc/NEWS.d/next/Library/2021-07-04-11-33-34.bpo-41249.sHdwBE.rst D Misc/NEWS.d/next/Library/2021-07-05-18-13-25.bpo-44566.o51Bd1.rst D Misc/NEWS.d/next/Library/2021-07-09-07-14-37.bpo-41928.Q1jMrr.rst D Misc/NEWS.d/next/Library/2021-07-12-10-43-31.bpo-44559.YunVKY.rst D Misc/NEWS.d/next/Library/2021-07-13-09-01-33.bpo-44608.R3IcM1.rst D Misc/NEWS.d/next/Library/2021-07-15-16-51-32.bpo-44648.2o49TB.rst D Misc/NEWS.d/next/Library/2021-07-16-13-40-31.bpo-40897.aveAre.rst D Misc/NEWS.d/next/Library/2021-07-19-14-04-42.bpo-44524.Nbf2JC.rst D Misc/NEWS.d/next/Library/2021-07-19-22-43-15.bpo-44353.HF81_Q.rst D Misc/NEWS.d/next/Library/2021-07-20-21-51-35.bpo-42854.ThuDMI.rst D Misc/NEWS.d/next/Library/2021-07-21-10-43-22.bpo-44666.CEThkv.rst D Misc/NEWS.d/next/Library/2021-07-21-23-16-30.bpo-44704.iqHLxQ.rst D Misc/NEWS.d/next/Library/2021-07-24-02-17-59.bpo-44720.shU5Qm.rst D Misc/NEWS.d/next/Library/2021-07-27-22-11-29.bpo-44752._bvbrZ.rst D Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst D Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst D Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst D Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst D Misc/NEWS.d/next/Security/2021-07-25-20-04-54.bpo-44600.0WMldg.rst D Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst D Misc/NEWS.d/next/Tests/2021-07-16-14-02-33.bpo-44647.5LzqIy.rst D Misc/NEWS.d/next/Tests/2021-07-22-16-38-39.bpo-44708.SYNaac.rst D Misc/NEWS.d/next/Tests/2021-07-24-20-09-15.bpo-44734.KKsNOV.rst D Misc/NEWS.d/next/Tools-Demos/2021-07-28-00-51-55.bpo-44756.pvAajB.rst D Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst D Misc/NEWS.d/next/Windows/2021-07-13-15-32-49.bpo-44572.gXvhDc.rst D Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst D Misc/NEWS.d/next/macOS/2021-07-12-15-42-02.bpo-41972.yUjE8j.rst M Include/patchlevel.h M Lib/pydoc_data/topics.py M Lib/test/test_importlib/test_util.py M README.rst M configure diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 93f78fced6295e..cc7750b8f07324 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -19,11 +19,11 @@ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 10 #define PY_MICRO_VERSION 0 -#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_BETA -#define PY_RELEASE_SERIAL 4 +#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_GAMMA +#define PY_RELEASE_SERIAL 1 /* Version as a string */ -#define PY_VERSION "3.10.0b4+" +#define PY_VERSION "3.10.0rc1" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index 0d2ccc5c278ecb..35668514f60d8d 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Sat Jul 10 01:50:39 2021 +# Autogenerated by Sphinx on Mon Aug 2 20:07:41 2021 topics = {'assert': 'The "assert" statement\n' '**********************\n' '\n' @@ -1313,6 +1313,10 @@ 'In the latter case, sequence repetition is performed; a negative\n' 'repetition factor yields an empty sequence.\n' '\n' + 'This operation can be customized using the special "__mul__()" ' + 'and\n' + '"__rmul__()" methods.\n' + '\n' 'The "@" (at) operator is intended to be used for matrix\n' 'multiplication. No builtin Python types implement this operator.\n' '\n' @@ -1328,6 +1332,10 @@ 'result. Division by zero raises the "ZeroDivisionError" ' 'exception.\n' '\n' + 'This operation can be customized using the special "__div__()" ' + 'and\n' + '"__floordiv__()" methods.\n' + '\n' 'The "%" (modulo) operator yields the remainder from the division ' 'of\n' 'the first argument by the second. The numeric arguments are ' @@ -1359,6 +1367,10 @@ 'string formatting is described in the Python Library Reference,\n' 'section printf-style String Formatting.\n' '\n' + 'The *modulo* operation can be customized using the special ' + '"__mod__()"\n' + 'method.\n' + '\n' 'The floor division operator, the modulo operator, and the ' '"divmod()"\n' 'function are not defined for complex numbers. Instead, convert to ' @@ -1373,9 +1385,16 @@ 'and then added together. In the latter case, the sequences are\n' 'concatenated.\n' '\n' + 'This operation can be customized using the special "__add__()" ' + 'and\n' + '"__radd__()" methods.\n' + '\n' 'The "-" (subtraction) operator yields the difference of its ' 'arguments.\n' - 'The numeric arguments are first converted to a common type.\n', + 'The numeric arguments are first converted to a common type.\n' + '\n' + 'This operation can be customized using the special "__sub__()" ' + 'method.\n', 'bitwise': 'Binary bitwise operations\n' '*************************\n' '\n' @@ -1388,14 +1407,18 @@ '\n' 'The "&" operator yields the bitwise AND of its arguments, which ' 'must\n' - 'be integers.\n' + 'be integers or one of them must be a custom object overriding\n' + '"__and__()" or "__rand__()" special methods.\n' '\n' 'The "^" operator yields the bitwise XOR (exclusive OR) of its\n' - 'arguments, which must be integers.\n' + 'arguments, which must be integers or one of them must be a ' + 'custom\n' + 'object overriding "__xor__()" or "__rxor__()" special methods.\n' '\n' 'The "|" operator yields the bitwise (inclusive) OR of its ' 'arguments,\n' - 'which must be integers.\n', + 'which must be integers or one of them must be a custom object\n' + 'overriding "__or__()" or "__ror__()" special methods.\n', 'bltin-code-objects': 'Code Objects\n' '************\n' '\n' @@ -1841,7 +1864,11 @@ ' comp_operator ::= "<" | ">" | "==" | ">=" | "<=" | "!="\n' ' | "is" ["not"] | ["not"] "in"\n' '\n' - 'Comparisons yield boolean values: "True" or "False".\n' + 'Comparisons yield boolean values: "True" or "False". Custom ' + '*rich\n' + 'comparison methods* may return non-boolean values. In this ' + 'case Python\n' + 'will call "bool()" on such value in boolean contexts.\n' '\n' 'Comparisons can be chained arbitrarily, e.g., "x < y <= z" ' 'is\n' @@ -3270,11 +3297,11 @@ 'double star pattern must be the last subpattern in the mapping\n' 'pattern.\n' '\n' - 'Duplicate key values in mapping patterns are disallowed. (If all ' - 'key\n' - 'patterns are literal patterns this is considered a syntax ' - 'error;\n' - 'otherwise this is a runtime error and will raise "ValueError".)\n' + 'Duplicate keys in mapping patterns are disallowed. Duplicate ' + 'literal\n' + 'keys will raise a "SyntaxError". Two keys that otherwise have ' + 'the same\n' + 'value will raise a "ValueError" at runtime.\n' '\n' 'The following is the logical flow for matching a mapping ' 'pattern\n' @@ -3292,7 +3319,10 @@ '\n' '3. If duplicate keys are detected in the mapping pattern, the ' 'pattern\n' - ' is considered invalid and "ValueError" is raised.\n' + ' is considered invalid. A "SyntaxError" is raised for ' + 'duplicate\n' + ' literal values; or a "ValueError" for named keys of the same ' + 'value.\n' '\n' 'Note:\n' '\n' @@ -8373,7 +8403,10 @@ '"ZeroDivisionError".\n' 'Raising a negative number to a fractional power results in a ' '"complex"\n' - 'number. (In earlier versions it raised a "ValueError".)\n', + 'number. (In earlier versions it raised a "ValueError".)\n' + '\n' + 'This operation can be customized using the special "__pow__()" ' + 'method.\n', 'raise': 'The "raise" statement\n' '*********************\n' '\n' @@ -8773,6 +8806,10 @@ 'the\n' 'second argument.\n' '\n' + 'This operation can be customized using the special ' + '"__lshift__()" and\n' + '"__rshift__()" methods.\n' + '\n' 'A right shift by *n* bits is defined as floor division by ' '"pow(2,n)".\n' 'A left shift by *n* bits is defined as multiplication with ' @@ -14423,7 +14460,7 @@ '| | "s[i:i] = ' '[x]") | |\n' '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.pop([i])" | retrieves the item at *i* ' + '| "s.pop()" or "s.pop(i)" | retrieves the item at *i* ' 'and | (2) |\n' '| | also removes it from ' '*s* | |\n' @@ -14886,7 +14923,7 @@ '| | "s[i:i] = ' '[x]") | |\n' '+--------------------------------+----------------------------------+-----------------------+\n' - '| "s.pop([i])" | retrieves the item at ' + '| "s.pop()" or "s.pop(i)" | retrieves the item at ' '*i* and | (2) |\n' '| | also removes it from ' '*s* | |\n' @@ -14951,15 +14988,21 @@ ' u_expr ::= power | "-" u_expr | "+" u_expr | "~" u_expr\n' '\n' 'The unary "-" (minus) operator yields the negation of its numeric\n' - 'argument.\n' + 'argument; the operation can be overridden with the "__neg__()" ' + 'special\n' + 'method.\n' '\n' 'The unary "+" (plus) operator yields its numeric argument ' - 'unchanged.\n' + 'unchanged;\n' + 'the operation can be overridden with the "__pos__()" special ' + 'method.\n' '\n' 'The unary "~" (invert) operator yields the bitwise inversion of ' 'its\n' 'integer argument. The bitwise inversion of "x" is defined as\n' - '"-(x+1)". It only applies to integral numbers.\n' + '"-(x+1)". It only applies to integral numbers or to custom ' + 'objects\n' + 'that override the "__invert__()" special method.\n' '\n' 'In all three cases, if the argument does not have the proper type, ' 'a\n' diff --git a/Lib/test/test_importlib/test_util.py b/Lib/test/test_importlib/test_util.py index 104452267c0673..f9ff26fc7e3a00 100644 --- a/Lib/test/test_importlib/test_util.py +++ b/Lib/test/test_importlib/test_util.py @@ -859,7 +859,7 @@ def test_magic_number(self): # stakeholders such as OS package maintainers must be notified # in advance. Such exceptional releases will then require an # adjustment to this test case. - EXPECTED_MAGIC_NUMBER = 3413 + EXPECTED_MAGIC_NUMBER = 3439 actual = int.from_bytes(importlib.util.MAGIC_NUMBER[:2], 'little') msg = ( diff --git a/Misc/NEWS.d/3.10.0rc1.rst b/Misc/NEWS.d/3.10.0rc1.rst new file mode 100644 index 00000000000000..67f31b81622ace --- /dev/null +++ b/Misc/NEWS.d/3.10.0rc1.rst @@ -0,0 +1,645 @@ +.. bpo: 44600 +.. date: 2021-07-25-20-04-54 +.. nonce: 0WMldg +.. release date: 2021-08-02 +.. section: Security + +Fix incorrect line numbers while tracing some failed patterns in :ref:`match +` statements. Patch by Charles Burkland. + +.. + +.. bpo: 44792 +.. date: 2021-07-31-12-12-57 +.. nonce: mOReTW +.. section: Core and Builtins + +Improve syntax errors for if expressions. Patch by Miguel Brito + +.. + +.. bpo: 34013 +.. date: 2021-07-27-11-14-22 +.. nonce: SjLFe- +.. section: Core and Builtins + +Generalize the invalid legacy statement custom error message (like the one +generated when "print" is called without parentheses) to include more +generic expressions. Patch by Pablo Galindo + +.. + +.. bpo: 44732 +.. date: 2021-07-26-15-27-03 +.. nonce: IxObt3 +.. section: Core and Builtins + +Rename ``types.Union`` to ``types.UnionType``. + +.. + +.. bpo: 44698 +.. date: 2021-07-21-15-26-56 +.. nonce: DA4_0o +.. section: Core and Builtins + +Fix undefined behaviour in complex object exponentiation. + +.. + +.. bpo: 44653 +.. date: 2021-07-19-20-49-06 +.. nonce: WcqGyI +.. section: Core and Builtins + +Support :mod:`typing` types in parameter substitution in the union type. + +.. + +.. bpo: 44676 +.. date: 2021-07-19-19-53-46 +.. nonce: WgIMvh +.. section: Core and Builtins + +Add ability to serialise ``types.Union`` objects. Patch provided by Yurii +Karabas. + +.. + +.. bpo: 44633 +.. date: 2021-07-17-21-04-04 +.. nonce: 5-zKeI +.. section: Core and Builtins + +Parameter substitution of the union type with wrong types now raises +``TypeError`` instead of returning ``NotImplemented``. + +.. + +.. bpo: 44662 +.. date: 2021-07-17-13-41-58 +.. nonce: q22kWR +.. section: Core and Builtins + +Add ``__module__`` to ``types.Union``. This also fixes ``types.Union`` +issues with ``typing.Annotated``. Patch provided by Yurii Karabas. + +.. + +.. bpo: 44655 +.. date: 2021-07-16-21-35-14 +.. nonce: 95I7M6 +.. section: Core and Builtins + +Include the name of the type in unset __slots__ attribute errors. Patch by +Pablo Galindo + +.. + +.. bpo: 44655 +.. date: 2021-07-16-20-25-37 +.. nonce: I3wRjL +.. section: Core and Builtins + +Don't include a missing attribute with the same name as the failing one when +offering suggestions for missing attributes. Patch by Pablo Galindo + +.. + +.. bpo: 44646 +.. date: 2021-07-16-09-59-13 +.. nonce: Yb6s05 +.. section: Core and Builtins + +Fix the hash of the union type: it no longer depends on the order of +arguments. + +.. + +.. bpo: 44636 +.. date: 2021-07-16-09-36-12 +.. nonce: ZWebi8 +.. section: Core and Builtins + +Collapse union of equal types. E.g. the result of ``int | int`` is now +``int``. Fix comparison of the union type with non-hashable objects. E.g. +``int | str == {}`` no longer raises a TypeError. + +.. + +.. bpo: 44635 +.. date: 2021-07-14-13-54-07 +.. nonce: 7ZMAdB +.. section: Core and Builtins + +Convert ``None`` to ``type(None)`` in the union type constructor. + +.. + +.. bpo: 44589 +.. date: 2021-07-13-23-19-41 +.. nonce: 59OH8T +.. section: Core and Builtins + +Mapping patterns in ``match`` statements with two or more equal literal keys +will now raise a :exc:`SyntaxError` at compile-time. + +.. + +.. bpo: 44606 +.. date: 2021-07-13-20-22-12 +.. nonce: S3Bv2w +.. section: Core and Builtins + +Fix ``__instancecheck__`` and ``__subclasscheck__`` for the union type. + +.. + +.. bpo: 42073 +.. date: 2021-07-13-17-47-32 +.. nonce: 9wopiC +.. section: Core and Builtins + +The ``@classmethod`` decorator can now wrap other classmethod-like +descriptors. + +.. + +.. bpo: 44490 +.. date: 2021-07-06-22-22-15 +.. nonce: BJxPbZ +.. section: Core and Builtins + +:mod:`typing` now searches for type parameters in ``types.Union`` objects. +``get_type_hints`` will also properly resolve annotations with nested +``types.Union`` objects. Patch provided by Yurii Karabas. + +.. + +.. bpo: 44490 +.. date: 2021-07-01-11-59-34 +.. nonce: xY80VR +.. section: Core and Builtins + +Add ``__parameters__`` attribute and ``__getitem__`` operator to +``types.Union``. Patch provided by Yurii Karabas. + +.. + +.. bpo: 44472 +.. date: 2021-06-21-11-19-54 +.. nonce: Vvm1yn +.. section: Core and Builtins + +Fix ltrace functionality when exceptions are raised. Patch by Pablo Galindo + +.. + +.. bpo: 44806 +.. date: 2021-08-02-14-37-32 +.. nonce: wOW_Qn +.. section: Library + +Non-protocol subclasses of :class:`typing.Protocol` ignore now the +``__init__`` method inherited from protocol base classes. + +.. + +.. bpo: 44793 +.. date: 2021-07-31-20-28-20 +.. nonce: woaQSg +.. section: Library + +Fix checking the number of arguments when subscribe a generic type with +``ParamSpec`` parameter. + +.. + +.. bpo: 44784 +.. date: 2021-07-31-08-45-31 +.. nonce: fIMIDS +.. section: Library + +In importlib.metadata tests, override warnings behavior under expected +DeprecationWarnings (importlib_metadata 4.6.3). + +.. + +.. bpo: 44667 +.. date: 2021-07-30-23-27-30 +.. nonce: tu0Xrv +.. section: Library + +The :func:`tokenize.tokenize` doesn't incorrectly generate a ``NEWLINE`` +token if the source doesn't end with a new line character but the last line +is a comment, as the function is already generating a ``NL`` token. Patch by +Pablo Galindo + +.. + +.. bpo: 44752 +.. date: 2021-07-27-22-11-29 +.. nonce: _bvbrZ +.. section: Library + +:mod:`rcompleter` does not call :func:`getattr` on :class:`property` objects +to avoid the side-effect of evaluating the corresponding method. + +.. + +.. bpo: 44720 +.. date: 2021-07-24-02-17-59 +.. nonce: shU5Qm +.. section: Library + +``weakref.proxy`` objects referencing non-iterators now raise ``TypeError`` +rather than dereferencing the null ``tp_iternext`` slot and crashing. + +.. + +.. bpo: 44704 +.. date: 2021-07-21-23-16-30 +.. nonce: iqHLxQ +.. section: Library + +The implementation of ``collections.abc.Set._hash()`` now matches that of +``frozenset.__hash__()``. + +.. + +.. bpo: 44666 +.. date: 2021-07-21-10-43-22 +.. nonce: CEThkv +.. section: Library + +Fixed issue in :func:`compileall.compile_file` when ``sys.stdout`` is +redirected. Patch by Stefan H?lzl. + +.. + +.. bpo: 42854 +.. date: 2021-07-20-21-51-35 +.. nonce: ThuDMI +.. section: Library + +Fixed a bug in the :mod:`_ssl` module that was throwing :exc:`OverflowError` +when using :meth:`_ssl._SSLSocket.write` and :meth:`_ssl._SSLSocket.read` +for a big value of the ``len`` parameter. Patch by Pablo Galindo + +.. + +.. bpo: 44353 +.. date: 2021-07-19-22-43-15 +.. nonce: HF81_Q +.. section: Library + +Refactor ``typing.NewType`` from function into callable class. Patch +provided by Yurii Karabas. + +.. + +.. bpo: 44524 +.. date: 2021-07-19-14-04-42 +.. nonce: Nbf2JC +.. section: Library + +Add missing ``__name__`` and ``__qualname__`` attributes to ``typing`` +module classes. Patch provided by Yurii Karabas. + +.. + +.. bpo: 40897 +.. date: 2021-07-16-13-40-31 +.. nonce: aveAre +.. section: Library + +Give priority to using the current class constructor in +:func:`inspect.signature`. Patch by Weipeng Hong. + +.. + +.. bpo: 44648 +.. date: 2021-07-15-16-51-32 +.. nonce: 2o49TB +.. section: Library + +Fixed wrong error being thrown by :func:`inspect.getsource` when examining a +class in the interactive session. Instead of :exc:`TypeError`, it should be +:exc:`OSError` with appropriate error message. + +.. + +.. bpo: 44608 +.. date: 2021-07-13-09-01-33 +.. nonce: R3IcM1 +.. section: Library + +Fix memory leak in :func:`_tkinter._flatten` if it is called with a sequence +or set, but not list or tuple. + +.. + +.. bpo: 44559 +.. date: 2021-07-12-10-43-31 +.. nonce: YunVKY +.. section: Library + +[Enum] module reverted to 3.9; 3.10 changes pushed until 3.11 + +.. + +.. bpo: 41928 +.. date: 2021-07-09-07-14-37 +.. nonce: Q1jMrr +.. section: Library + +Update :func:`shutil.copyfile` to raise :exc:`FileNotFoundError` instead of +confusing :exc:`IsADirectoryError` when a path ending with a +:const:`os.path.sep` does not exist; :func:`shutil.copy` and +:func:`shutil.copy2` are also affected. + +.. + +.. bpo: 44566 +.. date: 2021-07-05-18-13-25 +.. nonce: o51Bd1 +.. section: Library + +handle StopIteration subclass raised from @contextlib.contextmanager +generator + +.. + +.. bpo: 41249 +.. date: 2021-07-04-11-33-34 +.. nonce: sHdwBE +.. section: Library + +Fixes ``TypedDict`` to work with ``typing.get_type_hints()`` and postponed +evaluation of annotations across modules. + +.. + +.. bpo: 44461 +.. date: 2021-06-29-21-17-17 +.. nonce: acqRnV +.. section: Library + +Fix bug with :mod:`pdb`'s handling of import error due to a package which +does not have a ``__main__`` module + +.. + +.. bpo: 43625 +.. date: 2021-06-29-07-27-08 +.. nonce: ZlAxhp +.. section: Library + +Fix a bug in the detection of CSV file headers by +:meth:`csv.Sniffer.has_header` and improve documentation of same. + +.. + +.. bpo: 42892 +.. date: 2021-06-24-19-16-20 +.. nonce: qvRNhI +.. section: Library + +Fixed an exception thrown while parsing a malformed multipart email by +:class:`email.message.EmailMessage`. + +.. + +.. bpo: 27827 +.. date: 2021-06-12-21-25-35 +.. nonce: TMWh1i +.. section: Library + +:meth:`pathlib.PureWindowsPath.is_reserved` now identifies a greater range +of reserved filenames, including those with trailing spaces or colons. + +.. + +.. bpo: 38741 +.. date: 2019-11-12-18-59-33 +.. nonce: W7IYkq +.. section: Library + +:mod:`configparser`: using ']' inside a section header will no longer cut +the section name short at the ']' + +.. + +.. bpo: 27513 +.. date: 2019-06-03-23-53-25 +.. nonce: qITN7d +.. section: Library + +:func:`email.utils.getaddresses` now accepts :class:`email.header.Header` +objects along with string values. Patch by Zackery Spytz. + +.. + +.. bpo: 29298 +.. date: 2017-09-20-14-43-03 +.. nonce: _78CSN +.. section: Library + +Fix ``TypeError`` when required subparsers without ``dest`` do not receive +arguments. Patch by Anthony Sottile. + +.. + +.. bpo: 44740 +.. date: 2021-07-26-23-48-31 +.. nonce: zMFGMV +.. section: Documentation + +Replaced occurences of uppercase "Web" and "Internet" with lowercase +versions per the 2016 revised Associated Press Style Book. + +.. + +.. bpo: 44693 +.. date: 2021-07-25-23-04-15 +.. nonce: JuCbNq +.. section: Documentation + +Update the definition of __future__ in the glossary by replacing the +confusing word "pseudo-module" with a more accurate description. + +.. + +.. bpo: 35183 +.. date: 2021-07-22-08-28-03 +.. nonce: p9BWTB +.. section: Documentation + +Add typical examples to os.path.splitext docs + +.. + +.. bpo: 30511 +.. date: 2021-07-20-21-03-18 +.. nonce: eMFkRi +.. section: Documentation + +Clarify that :func:`shutil.make_archive` is not thread-safe due to reliance +on changing the current working directory. + +.. + +.. bpo: 44561 +.. date: 2021-07-18-22-43-14 +.. nonce: T7HpWm +.. section: Documentation + +Update of three expired hyperlinks in Doc/distributing/index.rst: "Project +structure", "Building and packaging the project", and "Uploading the project +to the Python Packaging Index". + +.. + +.. bpo: 44613 +.. date: 2021-07-12-11-39-20 +.. nonce: DIXNzc +.. section: Documentation + +importlib.metadata is no longer provisional. + +.. + +.. bpo: 44544 +.. date: 2021-07-02-14-02-29 +.. nonce: _5_aCz +.. section: Documentation + +List all kwargs for :func:`textwrap.wrap`, :func:`textwrap.fill`, and +:func:`textwrap.shorten`. Now, there are nav links to attributes of +:class:`TextWrap`, which makes navigation much easier while minimizing +duplication in the documentation. + +.. + +.. bpo: 44453 +.. date: 2021-06-18-06-44-45 +.. nonce: 3PIkj2 +.. section: Documentation + +Fix documentation for the return type of :func:`sysconfig.get_path`. + +.. + +.. bpo: 44734 +.. date: 2021-07-24-20-09-15 +.. nonce: KKsNOV +.. section: Tests + +Fixed floating point precision issue in turtle tests. + +.. + +.. bpo: 44708 +.. date: 2021-07-22-16-38-39 +.. nonce: SYNaac +.. section: Tests + +Regression tests, when run with -w, are now re-running only the affected +test methods instead of re-running the entire test file. + +.. + +.. bpo: 44647 +.. date: 2021-07-16-14-02-33 +.. nonce: 5LzqIy +.. section: Tests + +Added a permanent Unicode-valued environment variable to regression tests to +ensure they handle this use case in the future. If your test environment +breaks because of that, report a bug to us, and temporarily set +PYTHONREGRTEST_UNICODE_GUARD=0 in your test environment. + +.. + +.. bpo: 44515 +.. date: 2021-06-26-18-37-36 +.. nonce: e9fO6f +.. section: Tests + +Adjust recently added contextlib tests to avoid assuming the use of a +refcounted GC + +.. + +.. bpo: 44572 +.. date: 2021-07-13-15-32-49 +.. nonce: gXvhDc +.. section: Windows + +Avoid consuming standard input in the :mod:`platform` module + +.. + +.. bpo: 40263 +.. date: 2020-04-13-15-20-28 +.. nonce: 1KKEbu +.. section: Windows + +This is a follow-on bug from https://bugs.python.org/issue26903. Once that +is applied we run into an off-by-one assertion problem. The assert was not +correct. + +.. + +.. bpo: 41972 +.. date: 2021-07-12-15-42-02 +.. nonce: yUjE8j +.. section: macOS + +The framework build's user header path in sysconfig is changed to add a +'pythonX.Y' component to match distutils's behavior. + +.. + +.. bpo: 34932 +.. date: 2021-03-29-21-11-23 +.. nonce: f3Hdyd +.. section: macOS + +Add socket.TCP_KEEPALIVE support for macOS. Patch by Shane Harvey. + +.. + +.. bpo: 44756 +.. date: 2021-07-28-00-51-55 +.. nonce: pvAajB +.. section: Tools/Demos + +In the Makefile for documentation (:file:`Doc/Makefile`), the ``build`` rule +is dependent on the ``venv`` rule. Therefore, ``html``, ``latex``, and other +build-dependent rules are also now dependent on ``venv``. The ``venv`` rule +only performs an action if ``$(VENVDIR)`` does not exist. +:file:`Doc/README.rst` was updated; most users now only need to type ``make +html``. + +.. + +.. bpo: 41103 +.. date: 2021-07-29-16-04-28 +.. nonce: hiKKcF +.. section: C API + +Reverts removal of the old buffer protocol because they are part of stable +ABI. + +.. + +.. bpo: 42747 +.. date: 2021-07-20-16-21-06 +.. nonce: rRxjUY +.. section: C API + +The ``Py_TPFLAGS_HAVE_VERSION_TAG`` type flag now does nothing. The +``Py_TPFLAGS_HAVE_AM_SEND`` flag (which was added in 3.10) is removed. Both +were unnecessary because it is not possible to have type objects with the +relevant fields missing. diff --git a/Misc/NEWS.d/next/C API/2021-07-20-16-21-06.bpo-42747.rRxjUY.rst b/Misc/NEWS.d/next/C API/2021-07-20-16-21-06.bpo-42747.rRxjUY.rst deleted file mode 100644 index c7ac5a776e2ed9..00000000000000 --- a/Misc/NEWS.d/next/C API/2021-07-20-16-21-06.bpo-42747.rRxjUY.rst +++ /dev/null @@ -1,4 +0,0 @@ -The ``Py_TPFLAGS_HAVE_VERSION_TAG`` type flag now does nothing. The -``Py_TPFLAGS_HAVE_AM_SEND`` flag (which was added in 3.10) is removed. Both -were unnecessary because it is not possible to have type objects with the -relevant fields missing. diff --git a/Misc/NEWS.d/next/C API/2021-07-29-16-04-28.bpo-41103.hiKKcF.rst b/Misc/NEWS.d/next/C API/2021-07-29-16-04-28.bpo-41103.hiKKcF.rst deleted file mode 100644 index af06654ba20409..00000000000000 --- a/Misc/NEWS.d/next/C API/2021-07-29-16-04-28.bpo-41103.hiKKcF.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reverts removal of the old buffer protocol because they are part of stable -ABI. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-06-21-11-19-54.bpo-44472.Vvm1yn.rst b/Misc/NEWS.d/next/Core and Builtins/2021-06-21-11-19-54.bpo-44472.Vvm1yn.rst deleted file mode 100644 index 34fa2a9e8615fa..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-06-21-11-19-54.bpo-44472.Vvm1yn.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ltrace functionality when exceptions are raised. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-01-11-59-34.bpo-44490.xY80VR.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-01-11-59-34.bpo-44490.xY80VR.rst deleted file mode 100644 index 4912bca837bb10..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-01-11-59-34.bpo-44490.xY80VR.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add ``__parameters__`` attribute and ``__getitem__`` -operator to ``types.Union``. Patch provided by Yurii Karabas. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-06-22-22-15.bpo-44490.BJxPbZ.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-06-22-22-15.bpo-44490.BJxPbZ.rst deleted file mode 100644 index d49181cd82c818..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-06-22-22-15.bpo-44490.BJxPbZ.rst +++ /dev/null @@ -1,3 +0,0 @@ -:mod:`typing` now searches for type parameters in ``types.Union`` objects. -``get_type_hints`` will also properly resolve annotations with nested -``types.Union`` objects. Patch provided by Yurii Karabas. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-17-47-32.bpo-42073.9wopiC.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-13-17-47-32.bpo-42073.9wopiC.rst deleted file mode 100644 index 988fe67b99dc96..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-17-47-32.bpo-42073.9wopiC.rst +++ /dev/null @@ -1,2 +0,0 @@ -The ``@classmethod`` decorator can now wrap other classmethod-like -descriptors. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-20-22-12.bpo-44606.S3Bv2w.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-13-20-22-12.bpo-44606.S3Bv2w.rst deleted file mode 100644 index 3c7ef3b21fe092..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-20-22-12.bpo-44606.S3Bv2w.rst +++ /dev/null @@ -1 +0,0 @@ -Fix ``__instancecheck__`` and ``__subclasscheck__`` for the union type. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-23-19-41.bpo-44589.59OH8T.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-13-23-19-41.bpo-44589.59OH8T.rst deleted file mode 100644 index 23b2472b00e40f..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-13-23-19-41.bpo-44589.59OH8T.rst +++ /dev/null @@ -1,2 +0,0 @@ -Mapping patterns in ``match`` statements with two or more equal literal -keys will now raise a :exc:`SyntaxError` at compile-time. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-14-13-54-07.bpo-44635.7ZMAdB.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-14-13-54-07.bpo-44635.7ZMAdB.rst deleted file mode 100644 index ea00554aeeda66..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-14-13-54-07.bpo-44635.7ZMAdB.rst +++ /dev/null @@ -1 +0,0 @@ -Convert ``None`` to ``type(None)`` in the union type constructor. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-36-12.bpo-44636.ZWebi8.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-36-12.bpo-44636.ZWebi8.rst deleted file mode 100644 index 1a053ae69e97e0..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-36-12.bpo-44636.ZWebi8.rst +++ /dev/null @@ -1 +0,0 @@ -Collapse union of equal types. E.g. the result of ``int | int`` is now ``int``. Fix comparison of the union type with non-hashable objects. E.g. ``int | str == {}`` no longer raises a TypeError. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-59-13.bpo-44646.Yb6s05.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-59-13.bpo-44646.Yb6s05.rst deleted file mode 100644 index 0e28eac54fe987..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-09-59-13.bpo-44646.Yb6s05.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the hash of the union type: it no longer depends on the order of -arguments. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-20-25-37.bpo-44655.I3wRjL.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-16-20-25-37.bpo-44655.I3wRjL.rst deleted file mode 100644 index 4ea4a6d0859799..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-20-25-37.bpo-44655.I3wRjL.rst +++ /dev/null @@ -1,2 +0,0 @@ -Don't include a missing attribute with the same name as the failing one when -offering suggestions for missing attributes. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-21-35-14.bpo-44655.95I7M6.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-16-21-35-14.bpo-44655.95I7M6.rst deleted file mode 100644 index 17733b3619a8f3..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-16-21-35-14.bpo-44655.95I7M6.rst +++ /dev/null @@ -1,2 +0,0 @@ -Include the name of the type in unset __slots__ attribute errors. Patch by -Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-17-13-41-58.bpo-44662.q22kWR.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-17-13-41-58.bpo-44662.q22kWR.rst deleted file mode 100644 index c165774a4cacfb..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-17-13-41-58.bpo-44662.q22kWR.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add ``__module__`` to ``types.Union``. This also fixes -``types.Union`` issues with ``typing.Annotated``. Patch provided by -Yurii Karabas. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-17-21-04-04.bpo-44633.5-zKeI.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-17-21-04-04.bpo-44633.5-zKeI.rst deleted file mode 100644 index 507a68b65d4c37..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-17-21-04-04.bpo-44633.5-zKeI.rst +++ /dev/null @@ -1,2 +0,0 @@ -Parameter substitution of the union type with wrong types now raises -``TypeError`` instead of returning ``NotImplemented``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-19-19-53-46.bpo-44676.WgIMvh.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-19-19-53-46.bpo-44676.WgIMvh.rst deleted file mode 100644 index 4a1815e041dcc2..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-19-19-53-46.bpo-44676.WgIMvh.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add ability to serialise ``types.Union`` objects. Patch provided by Yurii -Karabas. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-19-20-49-06.bpo-44653.WcqGyI.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-19-20-49-06.bpo-44653.WcqGyI.rst deleted file mode 100644 index 8254d9bbad4a6e..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-19-20-49-06.bpo-44653.WcqGyI.rst +++ /dev/null @@ -1 +0,0 @@ -Support :mod:`typing` types in parameter substitution in the union type. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-21-15-26-56.bpo-44698.DA4_0o.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-21-15-26-56.bpo-44698.DA4_0o.rst deleted file mode 100644 index ed389630c8ba11..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-21-15-26-56.bpo-44698.DA4_0o.rst +++ /dev/null @@ -1 +0,0 @@ -Fix undefined behaviour in complex object exponentiation. \ No newline at end of file diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-26-15-27-03.bpo-44732.IxObt3.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-26-15-27-03.bpo-44732.IxObt3.rst deleted file mode 100644 index 5094688a294314..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-26-15-27-03.bpo-44732.IxObt3.rst +++ /dev/null @@ -1 +0,0 @@ -Rename ``types.Union`` to ``types.UnionType``. diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-27-11-14-22.bpo-34013.SjLFe-.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-27-11-14-22.bpo-34013.SjLFe-.rst deleted file mode 100644 index c0d3dd99f98272..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-27-11-14-22.bpo-34013.SjLFe-.rst +++ /dev/null @@ -1,3 +0,0 @@ -Generalize the invalid legacy statement custom error message (like the one -generated when "print" is called without parentheses) to include more -generic expressions. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst deleted file mode 100644 index 2e9000d09ee44c..00000000000000 --- a/Misc/NEWS.d/next/Core and Builtins/2021-07-31-12-12-57.bpo-44792.mOReTW.rst +++ /dev/null @@ -1 +0,0 @@ -Improve syntax errors for if expressions. Patch by Miguel Brito diff --git a/Misc/NEWS.d/next/Documentation/2021-06-18-06-44-45.bpo-44453.3PIkj2.rst b/Misc/NEWS.d/next/Documentation/2021-06-18-06-44-45.bpo-44453.3PIkj2.rst deleted file mode 100644 index fd72cf525c32fb..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-06-18-06-44-45.bpo-44453.3PIkj2.rst +++ /dev/null @@ -1 +0,0 @@ -Fix documentation for the return type of :func:`sysconfig.get_path`. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-02-14-02-29.bpo-44544._5_aCz.rst b/Misc/NEWS.d/next/Documentation/2021-07-02-14-02-29.bpo-44544._5_aCz.rst deleted file mode 100644 index 4bb69977e0c1a4..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-02-14-02-29.bpo-44544._5_aCz.rst +++ /dev/null @@ -1,4 +0,0 @@ -List all kwargs for :func:`textwrap.wrap`, :func:`textwrap.fill`, and -:func:`textwrap.shorten`. Now, there are nav links to attributes of -:class:`TextWrap`, which makes navigation much easier while minimizing -duplication in the documentation. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-12-11-39-20.bpo-44613.DIXNzc.rst b/Misc/NEWS.d/next/Documentation/2021-07-12-11-39-20.bpo-44613.DIXNzc.rst deleted file mode 100644 index baf591073620c8..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-12-11-39-20.bpo-44613.DIXNzc.rst +++ /dev/null @@ -1 +0,0 @@ -importlib.metadata is no longer provisional. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-18-22-43-14.bpo-44561.T7HpWm.rst b/Misc/NEWS.d/next/Documentation/2021-07-18-22-43-14.bpo-44561.T7HpWm.rst deleted file mode 100644 index 53238533edabbf..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-18-22-43-14.bpo-44561.T7HpWm.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update of three expired hyperlinks in Doc/distributing/index.rst: -"Project structure", "Building and packaging the project", and "Uploading the -project to the Python Packaging Index". diff --git a/Misc/NEWS.d/next/Documentation/2021-07-20-21-03-18.bpo-30511.eMFkRi.rst b/Misc/NEWS.d/next/Documentation/2021-07-20-21-03-18.bpo-30511.eMFkRi.rst deleted file mode 100644 index a358fb9cc2860b..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-20-21-03-18.bpo-30511.eMFkRi.rst +++ /dev/null @@ -1,2 +0,0 @@ -Clarify that :func:`shutil.make_archive` is not thread-safe due to -reliance on changing the current working directory. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst b/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst deleted file mode 100644 index 02c5fe82611fbf..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-22-08-28-03.bpo-35183.p9BWTB.rst +++ /dev/null @@ -1 +0,0 @@ -Add typical examples to os.path.splitext docs \ No newline at end of file diff --git a/Misc/NEWS.d/next/Documentation/2021-07-25-23-04-15.bpo-44693.JuCbNq.rst b/Misc/NEWS.d/next/Documentation/2021-07-25-23-04-15.bpo-44693.JuCbNq.rst deleted file mode 100644 index 614abb412df8ea..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-25-23-04-15.bpo-44693.JuCbNq.rst +++ /dev/null @@ -1,2 +0,0 @@ -Update the definition of __future__ in the glossary by replacing the confusing -word "pseudo-module" with a more accurate description. diff --git a/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst b/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst deleted file mode 100644 index c01273f5ddc269..00000000000000 --- a/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst +++ /dev/null @@ -1,2 +0,0 @@ -Replaced occurences of uppercase "Web" and "Internet" with lowercase -versions per the 2016 revised Associated Press Style Book. diff --git a/Misc/NEWS.d/next/Library/2017-09-20-14-43-03.bpo-29298._78CSN.rst b/Misc/NEWS.d/next/Library/2017-09-20-14-43-03.bpo-29298._78CSN.rst deleted file mode 100644 index e84c6de02cd27e..00000000000000 --- a/Misc/NEWS.d/next/Library/2017-09-20-14-43-03.bpo-29298._78CSN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix ``TypeError`` when required subparsers without ``dest`` do not receive -arguments. Patch by Anthony Sottile. diff --git a/Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst b/Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst deleted file mode 100644 index 90d49bb2a993f1..00000000000000 --- a/Misc/NEWS.d/next/Library/2019-06-03-23-53-25.bpo-27513.qITN7d.rst +++ /dev/null @@ -1,3 +0,0 @@ -:func:`email.utils.getaddresses` now accepts -:class:`email.header.Header` objects along with string values. -Patch by Zackery Spytz. diff --git a/Misc/NEWS.d/next/Library/2019-11-12-18-59-33.bpo-38741.W7IYkq.rst b/Misc/NEWS.d/next/Library/2019-11-12-18-59-33.bpo-38741.W7IYkq.rst deleted file mode 100644 index 39d84ccea55b8c..00000000000000 --- a/Misc/NEWS.d/next/Library/2019-11-12-18-59-33.bpo-38741.W7IYkq.rst +++ /dev/null @@ -1 +0,0 @@ -:mod:`configparser`: using ']' inside a section header will no longer cut the section name short at the ']' \ No newline at end of file diff --git a/Misc/NEWS.d/next/Library/2021-06-12-21-25-35.bpo-27827.TMWh1i.rst b/Misc/NEWS.d/next/Library/2021-06-12-21-25-35.bpo-27827.TMWh1i.rst deleted file mode 100644 index 1b8cc04533ed85..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-06-12-21-25-35.bpo-27827.TMWh1i.rst +++ /dev/null @@ -1,2 +0,0 @@ -:meth:`pathlib.PureWindowsPath.is_reserved` now identifies a greater range of -reserved filenames, including those with trailing spaces or colons. diff --git a/Misc/NEWS.d/next/Library/2021-06-24-19-16-20.bpo-42892.qvRNhI.rst b/Misc/NEWS.d/next/Library/2021-06-24-19-16-20.bpo-42892.qvRNhI.rst deleted file mode 100644 index 3c70b0534ecabf..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-06-24-19-16-20.bpo-42892.qvRNhI.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed an exception thrown while parsing a malformed multipart email by :class:`email.message.EmailMessage`. diff --git a/Misc/NEWS.d/next/Library/2021-06-29-07-27-08.bpo-43625.ZlAxhp.rst b/Misc/NEWS.d/next/Library/2021-06-29-07-27-08.bpo-43625.ZlAxhp.rst deleted file mode 100644 index a21975b948ef9e..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-06-29-07-27-08.bpo-43625.ZlAxhp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a bug in the detection of CSV file headers by -:meth:`csv.Sniffer.has_header` and improve documentation of same. diff --git a/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst b/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst deleted file mode 100644 index 02e25e928b9cff..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-06-29-21-17-17.bpo-44461.acqRnV.rst +++ /dev/null @@ -1 +0,0 @@ -Fix bug with :mod:`pdb`'s handling of import error due to a package which does not have a ``__main__`` module \ No newline at end of file diff --git a/Misc/NEWS.d/next/Library/2021-07-04-11-33-34.bpo-41249.sHdwBE.rst b/Misc/NEWS.d/next/Library/2021-07-04-11-33-34.bpo-41249.sHdwBE.rst deleted file mode 100644 index 06dae4a6e93565..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-04-11-33-34.bpo-41249.sHdwBE.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixes ``TypedDict`` to work with ``typing.get_type_hints()`` and postponed evaluation of -annotations across modules. diff --git a/Misc/NEWS.d/next/Library/2021-07-05-18-13-25.bpo-44566.o51Bd1.rst b/Misc/NEWS.d/next/Library/2021-07-05-18-13-25.bpo-44566.o51Bd1.rst deleted file mode 100644 index 3b00a1b715feef..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-05-18-13-25.bpo-44566.o51Bd1.rst +++ /dev/null @@ -1 +0,0 @@ -handle StopIteration subclass raised from @contextlib.contextmanager generator \ No newline at end of file diff --git a/Misc/NEWS.d/next/Library/2021-07-09-07-14-37.bpo-41928.Q1jMrr.rst b/Misc/NEWS.d/next/Library/2021-07-09-07-14-37.bpo-41928.Q1jMrr.rst deleted file mode 100644 index e6bd758980b003..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-09-07-14-37.bpo-41928.Q1jMrr.rst +++ /dev/null @@ -1,4 +0,0 @@ -Update :func:`shutil.copyfile` to raise :exc:`FileNotFoundError` instead of -confusing :exc:`IsADirectoryError` when a path ending with a -:const:`os.path.sep` does not exist; :func:`shutil.copy` and -:func:`shutil.copy2` are also affected. diff --git a/Misc/NEWS.d/next/Library/2021-07-12-10-43-31.bpo-44559.YunVKY.rst b/Misc/NEWS.d/next/Library/2021-07-12-10-43-31.bpo-44559.YunVKY.rst deleted file mode 100644 index 0259a929eec3ba..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-12-10-43-31.bpo-44559.YunVKY.rst +++ /dev/null @@ -1 +0,0 @@ -[Enum] module reverted to 3.9; 3.10 changes pushed until 3.11 diff --git a/Misc/NEWS.d/next/Library/2021-07-13-09-01-33.bpo-44608.R3IcM1.rst b/Misc/NEWS.d/next/Library/2021-07-13-09-01-33.bpo-44608.R3IcM1.rst deleted file mode 100644 index e0cf948f3cba68..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-13-09-01-33.bpo-44608.R3IcM1.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix memory leak in :func:`_tkinter._flatten` if it is called with a sequence -or set, but not list or tuple. diff --git a/Misc/NEWS.d/next/Library/2021-07-15-16-51-32.bpo-44648.2o49TB.rst b/Misc/NEWS.d/next/Library/2021-07-15-16-51-32.bpo-44648.2o49TB.rst deleted file mode 100644 index f7171c3c84c5ea..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-15-16-51-32.bpo-44648.2o49TB.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed wrong error being thrown by :func:`inspect.getsource` when examining a -class in the interactive session. Instead of :exc:`TypeError`, it should be -:exc:`OSError` with appropriate error message. diff --git a/Misc/NEWS.d/next/Library/2021-07-16-13-40-31.bpo-40897.aveAre.rst b/Misc/NEWS.d/next/Library/2021-07-16-13-40-31.bpo-40897.aveAre.rst deleted file mode 100644 index 04f1465f0ac67f..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-16-13-40-31.bpo-40897.aveAre.rst +++ /dev/null @@ -1,2 +0,0 @@ -Give priority to using the current class constructor in -:func:`inspect.signature`. Patch by Weipeng Hong. diff --git a/Misc/NEWS.d/next/Library/2021-07-19-14-04-42.bpo-44524.Nbf2JC.rst b/Misc/NEWS.d/next/Library/2021-07-19-14-04-42.bpo-44524.Nbf2JC.rst deleted file mode 100644 index 0acdc7dff029f0..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-19-14-04-42.bpo-44524.Nbf2JC.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add missing ``__name__`` and ``__qualname__`` attributes to ``typing`` module -classes. Patch provided by Yurii Karabas. diff --git a/Misc/NEWS.d/next/Library/2021-07-19-22-43-15.bpo-44353.HF81_Q.rst b/Misc/NEWS.d/next/Library/2021-07-19-22-43-15.bpo-44353.HF81_Q.rst deleted file mode 100644 index 8a1e0f77b31772..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-19-22-43-15.bpo-44353.HF81_Q.rst +++ /dev/null @@ -1,2 +0,0 @@ -Refactor ``typing.NewType`` from function into callable class. Patch -provided by Yurii Karabas. diff --git a/Misc/NEWS.d/next/Library/2021-07-20-21-51-35.bpo-42854.ThuDMI.rst b/Misc/NEWS.d/next/Library/2021-07-20-21-51-35.bpo-42854.ThuDMI.rst deleted file mode 100644 index 33cbb63a5e14b8..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-20-21-51-35.bpo-42854.ThuDMI.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a bug in the :mod:`_ssl` module that was throwing :exc:`OverflowError` -when using :meth:`_ssl._SSLSocket.write` and :meth:`_ssl._SSLSocket.read` -for a big value of the ``len`` parameter. Patch by Pablo Galindo diff --git a/Misc/NEWS.d/next/Library/2021-07-21-10-43-22.bpo-44666.CEThkv.rst b/Misc/NEWS.d/next/Library/2021-07-21-10-43-22.bpo-44666.CEThkv.rst deleted file mode 100644 index ab2ef22d0c4558..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-21-10-43-22.bpo-44666.CEThkv.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed issue in :func:`compileall.compile_file` when ``sys.stdout`` is redirected. -Patch by Stefan H?lzl. diff --git a/Misc/NEWS.d/next/Library/2021-07-21-23-16-30.bpo-44704.iqHLxQ.rst b/Misc/NEWS.d/next/Library/2021-07-21-23-16-30.bpo-44704.iqHLxQ.rst deleted file mode 100644 index 586661876dedba..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-21-23-16-30.bpo-44704.iqHLxQ.rst +++ /dev/null @@ -1 +0,0 @@ -The implementation of ``collections.abc.Set._hash()`` now matches that of ``frozenset.__hash__()``. \ No newline at end of file diff --git a/Misc/NEWS.d/next/Library/2021-07-24-02-17-59.bpo-44720.shU5Qm.rst b/Misc/NEWS.d/next/Library/2021-07-24-02-17-59.bpo-44720.shU5Qm.rst deleted file mode 100644 index 83694f3988ae9a..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-24-02-17-59.bpo-44720.shU5Qm.rst +++ /dev/null @@ -1 +0,0 @@ -``weakref.proxy`` objects referencing non-iterators now raise ``TypeError`` rather than dereferencing the null ``tp_iternext`` slot and crashing. \ No newline at end of file diff --git a/Misc/NEWS.d/next/Library/2021-07-27-22-11-29.bpo-44752._bvbrZ.rst b/Misc/NEWS.d/next/Library/2021-07-27-22-11-29.bpo-44752._bvbrZ.rst deleted file mode 100644 index 0d8a2cd6a5e0db..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-27-22-11-29.bpo-44752._bvbrZ.rst +++ /dev/null @@ -1,2 +0,0 @@ -:mod:`rcompleter` does not call :func:`getattr` on :class:`property` objects -to avoid the side-effect of evaluating the corresponding method. diff --git a/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst b/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst deleted file mode 100644 index 5b7e20e0afdf5e..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-30-23-27-30.bpo-44667.tu0Xrv.rst +++ /dev/null @@ -1,4 +0,0 @@ -The :func:`tokenize.tokenize` doesn't incorrectly generate a ``NEWLINE`` -token if the source doesn't end with a new line character but the last line -is a comment, as the function is already generating a ``NL`` token. Patch by -Pablo Galindo diff --git a/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst b/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst deleted file mode 100644 index 6ad10ef3f59805..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-31-08-45-31.bpo-44784.fIMIDS.rst +++ /dev/null @@ -1,2 +0,0 @@ -In importlib.metadata tests, override warnings behavior under expected -DeprecationWarnings (importlib_metadata 4.6.3). diff --git a/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst b/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst deleted file mode 100644 index 1d94d67615a479..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-07-31-20-28-20.bpo-44793.woaQSg.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix checking the number of arguments when subscribe a generic type with -``ParamSpec`` parameter. diff --git a/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst b/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst deleted file mode 100644 index 6d818c3fc57982..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-08-02-14-37-32.bpo-44806.wOW_Qn.rst +++ /dev/null @@ -1,2 +0,0 @@ -Non-protocol subclasses of :class:`typing.Protocol` ignore now the -``__init__`` method inherited from protocol base classes. diff --git a/Misc/NEWS.d/next/Security/2021-07-25-20-04-54.bpo-44600.0WMldg.rst b/Misc/NEWS.d/next/Security/2021-07-25-20-04-54.bpo-44600.0WMldg.rst deleted file mode 100644 index ea4e04f6da911c..00000000000000 --- a/Misc/NEWS.d/next/Security/2021-07-25-20-04-54.bpo-44600.0WMldg.rst +++ /dev/null @@ -1 +0,0 @@ -Fix incorrect line numbers while tracing some failed patterns in :ref:`match ` statements. Patch by Charles Burkland. \ No newline at end of file diff --git a/Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst b/Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst deleted file mode 100644 index d2867b6e89f872..00000000000000 --- a/Misc/NEWS.d/next/Tests/2021-06-26-18-37-36.bpo-44515.e9fO6f.rst +++ /dev/null @@ -1,2 +0,0 @@ -Adjust recently added contextlib tests to avoid assuming the use of a -refcounted GC diff --git a/Misc/NEWS.d/next/Tests/2021-07-16-14-02-33.bpo-44647.5LzqIy.rst b/Misc/NEWS.d/next/Tests/2021-07-16-14-02-33.bpo-44647.5LzqIy.rst deleted file mode 100644 index e4b2be2b409997..00000000000000 --- a/Misc/NEWS.d/next/Tests/2021-07-16-14-02-33.bpo-44647.5LzqIy.rst +++ /dev/null @@ -1,4 +0,0 @@ -Added a permanent Unicode-valued environment variable to regression tests to -ensure they handle this use case in the future. If your test environment -breaks because of that, report a bug to us, and temporarily set -PYTHONREGRTEST_UNICODE_GUARD=0 in your test environment. diff --git a/Misc/NEWS.d/next/Tests/2021-07-22-16-38-39.bpo-44708.SYNaac.rst b/Misc/NEWS.d/next/Tests/2021-07-22-16-38-39.bpo-44708.SYNaac.rst deleted file mode 100644 index 8b26c4de64b983..00000000000000 --- a/Misc/NEWS.d/next/Tests/2021-07-22-16-38-39.bpo-44708.SYNaac.rst +++ /dev/null @@ -1,2 +0,0 @@ -Regression tests, when run with -w, are now re-running only the affected -test methods instead of re-running the entire test file. diff --git a/Misc/NEWS.d/next/Tests/2021-07-24-20-09-15.bpo-44734.KKsNOV.rst b/Misc/NEWS.d/next/Tests/2021-07-24-20-09-15.bpo-44734.KKsNOV.rst deleted file mode 100644 index 94e9ce08f4bf6b..00000000000000 --- a/Misc/NEWS.d/next/Tests/2021-07-24-20-09-15.bpo-44734.KKsNOV.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed floating point precision issue in turtle tests. diff --git a/Misc/NEWS.d/next/Tools-Demos/2021-07-28-00-51-55.bpo-44756.pvAajB.rst b/Misc/NEWS.d/next/Tools-Demos/2021-07-28-00-51-55.bpo-44756.pvAajB.rst deleted file mode 100644 index 4734f1f5c41691..00000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2021-07-28-00-51-55.bpo-44756.pvAajB.rst +++ /dev/null @@ -1,6 +0,0 @@ -In the Makefile for documentation (:file:`Doc/Makefile`), the ``build`` rule -is dependent on the ``venv`` rule. Therefore, ``html``, ``latex``, and other -build-dependent rules are also now dependent on ``venv``. The ``venv`` rule -only performs an action if ``$(VENVDIR)`` does not exist. -:file:`Doc/README.rst` was updated; most users now only need to type ``make -html``. diff --git a/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst b/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst deleted file mode 100644 index 0c31606d4928c8..00000000000000 --- a/Misc/NEWS.d/next/Windows/2020-04-13-15-20-28.bpo-40263.1KKEbu.rst +++ /dev/null @@ -1,3 +0,0 @@ -This is a follow-on bug from https://bugs.python.org/issue26903. Once that -is applied we run into an off-by-one assertion problem. The assert was not -correct. diff --git a/Misc/NEWS.d/next/Windows/2021-07-13-15-32-49.bpo-44572.gXvhDc.rst b/Misc/NEWS.d/next/Windows/2021-07-13-15-32-49.bpo-44572.gXvhDc.rst deleted file mode 100644 index 6e074c59b8445b..00000000000000 --- a/Misc/NEWS.d/next/Windows/2021-07-13-15-32-49.bpo-44572.gXvhDc.rst +++ /dev/null @@ -1 +0,0 @@ -Avoid consuming standard input in the :mod:`platform` module \ No newline at end of file diff --git a/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst b/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst deleted file mode 100644 index d3a52c9fc37b5f..00000000000000 --- a/Misc/NEWS.d/next/macOS/2021-03-29-21-11-23.bpo-34932.f3Hdyd.rst +++ /dev/null @@ -1 +0,0 @@ -Add socket.TCP_KEEPALIVE support for macOS. Patch by Shane Harvey. diff --git a/Misc/NEWS.d/next/macOS/2021-07-12-15-42-02.bpo-41972.yUjE8j.rst b/Misc/NEWS.d/next/macOS/2021-07-12-15-42-02.bpo-41972.yUjE8j.rst deleted file mode 100644 index 6c70c07669f9c1..00000000000000 --- a/Misc/NEWS.d/next/macOS/2021-07-12-15-42-02.bpo-41972.yUjE8j.rst +++ /dev/null @@ -1,2 +0,0 @@ -The framework build's user header path in sysconfig is changed to add a -'pythonX.Y' component to match distutils's behavior. diff --git a/README.rst b/README.rst index 63eaefc358faa9..473fd9405c51f2 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -This is Python version 3.10.0 beta 4 -==================================== +This is Python version 3.10.0 rc1 +================================= .. image:: https://travis-ci.com/python/cpython.svg?branch=master :alt: CPython build status on Travis CI diff --git a/configure b/configure index 1baa145e3ed4d6..6bf76b51b46e7b 100755 --- a/configure +++ b/configure @@ -1,11 +1,12 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for python 3.10. +# Generated by GNU Autoconf 2.71 for python 3.10. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. # # # This configure script is free software; the Free Software Foundation @@ -16,14 +17,16 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -33,46 +36,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -81,13 +84,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -96,8 +92,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -109,30 +109,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. @@ -154,20 +134,22 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else +else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -187,42 +169,53 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } -if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : -else +else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" - if (eval "$as_required") 2>/dev/null; then : + if (eval "$as_required") 2>/dev/null +then : as_have_required=yes -else +else $as_nop as_have_required=no fi - if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : -else +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. - as_shell=$as_dir/$as_base + as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : CONFIG_SHELL=$as_shell as_have_required=yes - if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : break 2 fi fi @@ -230,14 +223,21 @@ fi esac as_found=false done -$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && - { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : - CONFIG_SHELL=$SHELL as_have_required=yes -fi; } IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi - if test "x$CONFIG_SHELL" != x; then : + if test "x$CONFIG_SHELL" != x +then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also @@ -255,18 +255,19 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - if test x$as_have_required = xno; then : - $as_echo "$0: This script requires a shell more modern than all" - $as_echo "$0: the shells that I found on your system." - if test x${ZSH_VERSION+set} = xset ; then - $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" - $as_echo "$0: be upgraded to zsh 4.3.4 or later." + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else - $as_echo "$0: Please tell bug-autoconf at gnu.org and + printf "%s\n" "$0: Please tell bug-autoconf at gnu.org and $0: https://bugs.python.org/ about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script @@ -294,6 +295,7 @@ as_fn_unset () } as_unset=as_fn_unset + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -311,6 +313,14 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -325,7 +335,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -334,7 +344,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -373,12 +383,13 @@ as_fn_executable_p () # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -390,18 +401,27 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -413,9 +433,9 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -442,7 +462,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -486,7 +506,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall @@ -500,6 +520,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits exit } + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -513,6 +537,13 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -588,40 +619,36 @@ PACKAGE_URL='' ac_unique_file="Include/object.h" # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include +#include +#ifdef HAVE_STDIO_H +# include #endif -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif #endif #ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif # include #endif -#ifdef HAVE_STRINGS_H -# include -#endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif #ifdef HAVE_UNISTD_H # include #endif" +ac_header_c_list= ac_subst_vars='LTLIBOBJS TEST_MODULES LIBRARY_DEPS @@ -673,6 +700,7 @@ LDSHARED SHLIB_SUFFIX LIBTOOL_CRUFT OTHER_LIBTOOL_OPT +EGREP UNIVERSAL_ARCH_FLAGS LDFLAGS_NODIST CFLAGS_NODIST @@ -716,7 +744,6 @@ DLLLIBRARY LDLIBRARY LIBRARY BUILDEXEEXT -EGREP NO_AS_NEEDED MULTIARCH_CPPFLAGS PLATFORM_TRIPLET @@ -942,8 +969,6 @@ do *) ac_optarg=yes ;; esac - # Accept the important Cygnus configure options, so we can diagnose typos. - case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; @@ -984,9 +1009,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1010,9 +1035,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: $ac_useropt" + as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1223,9 +1248,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1239,9 +1264,9 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: $ac_useropt" + as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1285,9 +1310,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1303,7 +1328,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1367,7 +1392,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | +printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1657,9 +1682,9 @@ if test "$ac_init_help" = "recursive"; then case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -1687,7 +1712,8 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1695,7 +1721,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1705,9 +1731,9 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF python configure 3.10 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.71 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1724,14 +1750,14 @@ fi ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext + rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1739,14 +1765,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err - } && test -s conftest.$ac_objext; then : + } && test -s conftest.$ac_objext +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1768,7 +1795,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1776,14 +1803,15 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1799,14 +1827,14 @@ fi ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1814,17 +1842,18 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext - }; then : + } +then : ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1839,101 +1868,43 @@ fi } # ac_fn_c_try_link -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## --------------------------------------- ## -## Report this to https://bugs.python.org/ ## -## --------------------------------------- ##" - ) | sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_mongrel +} # ac_fn_c_check_header_compile # ac_fn_c_try_run LINENO # ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack @@ -1943,25 +1914,26 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status @@ -1972,37 +1944,6 @@ fi } # ac_fn_c_try_run -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache @@ -2010,17 +1951,18 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof ($2)) return 0; @@ -2028,12 +1970,13 @@ if (sizeof ($2)) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { if (sizeof (($2))) return 0; @@ -2041,18 +1984,19 @@ if (sizeof (($2))) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop eval "$3=yes" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type @@ -2071,7 +2015,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; @@ -2081,14 +2025,15 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -2098,9 +2043,10 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=$ac_mid; break -else +else $as_nop as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= @@ -2108,14 +2054,14 @@ else fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; @@ -2125,14 +2071,15 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; @@ -2142,9 +2089,10 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_lo=$ac_mid; break -else +else $as_nop as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= @@ -2152,14 +2100,14 @@ else fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else +else $as_nop ac_lo= ac_hi= fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val @@ -2167,7 +2115,7 @@ while test "x$ac_lo" != "x$ac_hi"; do /* end confdefs.h. */ $4 int -main () +main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -2177,12 +2125,13 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_hi=$ac_mid -else +else $as_nop as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; @@ -2192,12 +2141,12 @@ esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } +static long int longval (void) { return $2; } +static unsigned long int ulongval (void) { return $2; } #include #include int -main () +main (void) { FILE *f = fopen ("conftest.val", "w"); @@ -2225,9 +2174,10 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. @@ -2258,16 +2209,9 @@ else #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif + which can conflict with char $2 (); below. */ +#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -2285,47 +2229,51 @@ choke me #endif int -main () +main (void) { return $2 (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func -# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES -# --------------------------------------------- +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. -ac_fn_c_check_decl () +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 -$as_echo_n "checking whether $as_decl_name is declared... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main () +main (void) { #ifndef $as_decl_name #ifdef __cplusplus @@ -2339,19 +2287,22 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$3=yes" -else +else $as_nop eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + fi eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_decl +} # ac_fn_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- @@ -2360,16 +2311,17 @@ $as_echo "$ac_res" >&6; } ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 -$as_echo_n "checking for $2.$3... " >&6; } -if eval \${$4+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main () +main (void) { static $2 ac_aggr; if (ac_aggr.$3) @@ -2378,14 +2330,15 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$4=yes" -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main () +main (void) { static $2 ac_aggr; if (sizeof ac_aggr.$3) @@ -2394,29 +2347,50 @@ return 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : eval "$4=yes" -else +else $as_nop eval "$4=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$4 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by python $as_me 3.10, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was - $ $0 $@ + $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log @@ -2449,8 +2423,12 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS @@ -2485,7 +2463,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2520,11 +2498,13 @@ done # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo - $as_echo "## ---------------- ## + printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2535,8 +2515,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2560,7 +2540,7 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; ) echo - $as_echo "## ----------------- ## + printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2568,14 +2548,14 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - $as_echo "## ------------------- ## + printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2583,15 +2563,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - $as_echo "$ac_var='\''$ac_val'\''" + printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - $as_echo "## ----------- ## + printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2599,8 +2579,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; echo fi test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2614,63 +2594,48 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -$as_echo "/* confdefs.h */" > confdefs.h +printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define PACKAGE_URL "$PACKAGE_URL" -_ACEOF +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE if test -n "$CONFIG_SITE"; then - # We do not want a PATH search for config.site. - case $CONFIG_SITE in #(( - -*) ac_site_file1=./$CONFIG_SITE;; - */*) ac_site_file1=$CONFIG_SITE;; - *) ac_site_file1=./$CONFIG_SITE;; - esac + ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" + +for ac_site_file in $ac_site_files do - test "x$ac_site_file" = xNONE && continue - if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi @@ -2680,94 +2645,513 @@ if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) as_fn_append ac_configure_args " '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 -fi -## -------------------- ## -## Main body of script. ## -## -------------------- ## +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif -if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then - # If we're building out-of-tree, we need to make sure the following - # resources get picked up before their $srcdir counterparts. +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H" +as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H" +as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" + +# Auxiliary files required by this configure script. +ac_aux_files="install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +if test "$srcdir" != . -a "$srcdir" != "$(pwd)"; then + # If we're building out-of-tree, we need to make sure the following + # resources get picked up before their $srcdir counterparts. # Objects/ -> typeslots.inc # Include/ -> Python.h # Python/ -> importlib.h @@ -2788,11 +3172,12 @@ if test -e $srcdir/.git then # Extract the first word of "git", so it can be a program name with args. set dummy git; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_HAS_GIT+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_HAS_GIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$HAS_GIT"; then ac_cv_prog_HAS_GIT="$HAS_GIT" # Let the user override the test. else @@ -2800,11 +3185,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_HAS_GIT="found" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2816,11 +3205,11 @@ fi fi HAS_GIT=$ac_cv_prog_HAS_GIT if test -n "$HAS_GIT"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAS_GIT" >&5 -$as_echo "$HAS_GIT" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HAS_GIT" >&5 +printf "%s\n" "$HAS_GIT" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2842,55 +3231,30 @@ fi ac_config_headers="$ac_config_headers pyconfig.h" -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 -fi -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if ${ac_cv_build+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_build_alias=$build_alias test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -2909,21 +3273,22 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if ${ac_cv_host+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -2952,11 +3317,12 @@ for ac_prog in python$PACKAGE_VERSION python3 python do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PYTHON_FOR_REGEN+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PYTHON_FOR_REGEN+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$PYTHON_FOR_REGEN"; then ac_cv_prog_PYTHON_FOR_REGEN="$PYTHON_FOR_REGEN" # Let the user override the test. else @@ -2964,11 +3330,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PYTHON_FOR_REGEN="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -2979,11 +3349,11 @@ fi fi PYTHON_FOR_REGEN=$ac_cv_prog_PYTHON_FOR_REGEN if test -n "$PYTHON_FOR_REGEN"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_FOR_REGEN" >&5 -$as_echo "$PYTHON_FOR_REGEN" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_FOR_REGEN" >&5 +printf "%s\n" "$PYTHON_FOR_REGEN" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -2994,8 +3364,8 @@ test -n "$PYTHON_FOR_REGEN" || PYTHON_FOR_REGEN="python3" if test "$cross_compiling" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5 -$as_echo_n "checking for python interpreter for cross build... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for python interpreter for cross build" >&5 +printf %s "checking for python interpreter for cross build... " >&6; } if test -z "$PYTHON_FOR_BUILD"; then for interp in python$PACKAGE_VERSION python3 python; do which $interp >/dev/null 2>&1 || continue @@ -3007,8 +3377,8 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; } if test x$interp = x; then as_fn_error $? "python$PACKAGE_VERSION interpreter not found" "$LINENO" 5 fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 -$as_echo "$interp" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 +printf "%s\n" "$interp" >&6; } PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp fi elif test "$cross_compiling" = maybe; then @@ -3042,28 +3412,28 @@ SOVERSION=1.0 # The later defininition of _XOPEN_SOURCE disables certain features # on Linux, so we need _GNU_SOURCE to re-enable them (makedev, tm_zone). -$as_echo "#define _GNU_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables # certain features on NetBSD, so we need _NETBSD_SOURCE to re-enable # them. -$as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables # certain features on FreeBSD, so we need __BSD_VISIBLE to re-enable # them. -$as_echo "#define __BSD_VISIBLE 1" >>confdefs.h +printf "%s\n" "#define __BSD_VISIBLE 1" >>confdefs.h # The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables # certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable # them. -$as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h @@ -3073,10 +3443,11 @@ define_xopen_source=yes CONFIG_ARGS="$ac_configure_args" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-universalsdk" >&5 -$as_echo_n "checking for --enable-universalsdk... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-universalsdk" >&5 +printf %s "checking for --enable-universalsdk... " >&6; } # Check whether --enable-universalsdk was given. -if test "${enable_universalsdk+set}" = set; then : +if test ${enable_universalsdk+y} +then : enableval=$enable_universalsdk; case $enableval in yes) @@ -3108,7 +3479,7 @@ if test "${enable_universalsdk+set}" = set; then : esac -else +else $as_nop UNIVERSALSDK= enable_universalsdk= @@ -3117,11 +3488,11 @@ fi if test -n "${UNIVERSALSDK}" then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSALSDK}" >&5 -$as_echo "${UNIVERSALSDK}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSALSDK}" >&5 +printf "%s\n" "${UNIVERSALSDK}" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3144,11 +3515,12 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-universal-archs" >&5 -$as_echo_n "checking for --with-universal-archs... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-universal-archs" >&5 +printf %s "checking for --with-universal-archs... " >&6; } # Check whether --with-universal-archs was given. -if test "${with_universal_archs+set}" = set; then : +if test ${with_universal_archs+y} +then : withval=$with_universal_archs; UNIVERSAL_ARCHS="$withval" @@ -3156,22 +3528,23 @@ fi if test -n "${UNIVERSALSDK}" then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5 -$as_echo "${UNIVERSAL_ARCHS}" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5 +printf "%s\n" "${UNIVERSAL_ARCHS}" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Check whether --with-framework-name was given. -if test "${with_framework_name+set}" = set; then : +if test ${with_framework_name+y} +then : withval=$with_framework_name; PYTHONFRAMEWORK=${withval} PYTHONFRAMEWORKDIR=${withval}.framework PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr 'A-Z' 'a-z'` -else +else $as_nop PYTHONFRAMEWORK=Python PYTHONFRAMEWORKDIR=Python.framework @@ -3180,7 +3553,8 @@ else fi # Check whether --enable-framework was given. -if test "${enable_framework+set}" = set; then : +if test ${enable_framework+y} +then : enableval=$enable_framework; case $enableval in yes) @@ -3269,7 +3643,7 @@ if test "${enable_framework+set}" = set; then : esac -else +else $as_nop PYTHONFRAMEWORK= PYTHONFRAMEWORKDIR=no-framework @@ -3304,9 +3678,7 @@ fi -cat >>confdefs.h <<_ACEOF -#define _PYTHONFRAMEWORK "${PYTHONFRAMEWORK}" -_ACEOF +printf "%s\n" "#define _PYTHONFRAMEWORK \"${PYTHONFRAMEWORK}\"" >>confdefs.h ##AC_ARG_WITH(dyld, @@ -3315,8 +3687,8 @@ _ACEOF ## # Set name for machine-dependent library files -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5 -$as_echo_n "checking MACHDEP... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5 +printf %s "checking MACHDEP... " >&6; } if test -z "$MACHDEP" then # avoid using uname for cross builds @@ -3366,8 +3738,8 @@ then '') MACHDEP="unknown";; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5 -$as_echo "\"$MACHDEP\"" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5 +printf "%s\n" "\"$MACHDEP\"" >&6; } if test "$cross_compiling" = yes; then @@ -3416,7 +3788,7 @@ case $ac_sys_system/$ac_sys_release in # also defined. This can be overridden by defining _BSD_SOURCE # As this has a different meaning on Linux, only define it on OpenBSD -$as_echo "#define _BSD_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h ;; OpenBSD/*) @@ -3424,7 +3796,7 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h # also defined. This can be overridden by defining _BSD_SOURCE # As this has a different meaning on Linux, only define it on OpenBSD -$as_echo "#define _BSD_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of @@ -3482,7 +3854,7 @@ if test $define_xopen_source = yes then # X/Open 7, incorporating POSIX.1-2008 -$as_echo "#define _XOPEN_SOURCE 700" >>confdefs.h +printf "%s\n" "#define _XOPEN_SOURCE 700" >>confdefs.h # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires @@ -3490,11 +3862,11 @@ $as_echo "#define _XOPEN_SOURCE 700" >>confdefs.h # several APIs are not declared. Since this is also needed in some # cases for HP-UX, we define it globally. -$as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h +printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h -$as_echo "#define _POSIX_C_SOURCE 200809L" >>confdefs.h +printf "%s\n" "#define _POSIX_C_SOURCE 200809L" >>confdefs.h fi @@ -3509,7 +3881,7 @@ esac if test $define_stdc_a1 = yes then -$as_echo "#define _INCLUDE__STDC_A1_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _INCLUDE__STDC_A1_SOURCE 1" >>confdefs.h fi @@ -3573,8 +3945,8 @@ then then if test -n "`"$found_gcc" --version | grep llvm-gcc`" then - { $as_echo "$as_me:${as_lineno-$LINENO}: Detected llvm-gcc, falling back to clang" >&5 -$as_echo "$as_me: Detected llvm-gcc, falling back to clang" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Detected llvm-gcc, falling back to clang" >&5 +printf "%s\n" "$as_me: Detected llvm-gcc, falling back to clang" >&6;} CC="$found_clang" CXX="$found_clang++" fi @@ -3582,8 +3954,8 @@ $as_echo "$as_me: Detected llvm-gcc, falling back to clang" >&6;} elif test -z "$found_gcc" -a -n "$found_clang" then - { $as_echo "$as_me:${as_lineno-$LINENO}: No GCC found, use CLANG" >&5 -$as_echo "$as_me: No GCC found, use CLANG" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No GCC found, use CLANG" >&5 +printf "%s\n" "$as_me: No GCC found, use CLANG" >&6;} CC="$found_clang" CXX="$found_clang++" @@ -3592,8 +3964,8 @@ $as_echo "$as_me: No GCC found, use CLANG" >&6;} found_clang=`/usr/bin/xcrun -find clang 2>/dev/null` if test -n "${found_clang}" then - { $as_echo "$as_me:${as_lineno-$LINENO}: Using clang from Xcode.app" >&5 -$as_echo "$as_me: Using clang from Xcode.app" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using clang from Xcode.app" >&5 +printf "%s\n" "$as_me: Using clang from Xcode.app" >&6;} CC="${found_clang}" CXX="`/usr/bin/xcrun -find clang++`" @@ -3602,6 +3974,15 @@ $as_echo "$as_me: Using clang from Xcode.app" >&6;} fi fi fi + + + + + + + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -3610,11 +3991,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3622,11 +4004,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3637,11 +4023,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3650,11 +4036,12 @@ if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3662,11 +4049,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3677,11 +4068,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -3689,8 +4080,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -3703,11 +4094,12 @@ if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3715,11 +4107,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3730,11 +4126,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3743,11 +4139,12 @@ fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3756,15 +4153,19 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3780,18 +4181,18 @@ if test $ac_prog_rejected = yes; then # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3802,11 +4203,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -3814,11 +4216,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3829,11 +4235,11 @@ fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3846,11 +4252,12 @@ if test -z "$CC"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -3858,11 +4265,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3873,11 +4284,11 @@ fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -3889,34 +4300,138 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + fi -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 -for ac_option in --version -v -V -qversion; do +for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -3926,7 +4441,7 @@ $as_echo "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -3934,7 +4449,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -3946,9 +4461,9 @@ ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -3969,11 +4484,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, @@ -3990,7 +4506,7 @@ do # certainly right. break;; *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -4006,44 +4522,46 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else +else $as_nop ac_file='' fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with @@ -4057,15 +4575,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -4074,7 +4592,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -4086,8 +4604,8 @@ _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -4095,10 +4613,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -4106,39 +4624,40 @@ $as_echo "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -4152,11 +4671,12 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 +printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in @@ -4165,31 +4685,32 @@ $as_echo "$ac_try_echo"; } >&5 break;; esac done -else - $as_echo "$as_me: failed program was:" >&5 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __GNUC__ choke me @@ -4199,29 +4720,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_compiler_gnu=yes -else +else $as_nop ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+set} +ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -4230,57 +4755,60 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes -else +else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -else +else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -4295,94 +4823,144 @@ else CFLAGS= fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program _ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : + if ac_fn_c_try_compile "$LINENO" +then : ac_cv_prog_cc_c89=$ac_arg fi -rm -f core conftest.err conftest.$ac_objext +rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC - fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi fi ac_ext=c @@ -4396,40 +4974,36 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -4441,10 +5015,11 @@ rm -f conftest.err conftest.i conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -4454,7 +5029,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +if $ac_preproc_ok +then : break fi @@ -4466,29 +5042,24 @@ fi else ac_cv_prog_CPP=$CPP fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif +#include Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : -else +else $as_nop # Broken: fails on valid input. continue fi @@ -4500,10 +5071,11 @@ rm -f conftest.err conftest.i conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : +if ac_fn_c_try_cpp "$LINENO" +then : # Broken: success on invalid input. continue -else +else $as_nop # Passes both tests. ac_preproc_ok=: break @@ -4513,11 +5085,12 @@ rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : +if $ac_preproc_ok +then : -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi @@ -4528,11 +5101,12 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST @@ -4540,10 +5114,15 @@ else for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP @@ -4552,13 +5131,13 @@ case `"$ac_path_GREP" --version 2>&1` in ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - $as_echo_n 0123456789 >"conftest.in" + printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -4586,16 +5165,17 @@ else fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if ${ac_cv_path_SED+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" @@ -4609,10 +5189,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED @@ -4621,13 +5206,13 @@ case `"$ac_path_SED" --version 2>&1` in ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 - $as_echo_n 0123456789 >"conftest.in" + printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" + printf "%s\n" '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val @@ -4655,19 +5240,20 @@ else fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=" >&5 -$as_echo_n "checking for --with-cxx-main=... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=" >&5 +printf %s "checking for --with-cxx-main=... " >&6; } # Check whether --with-cxx_main was given. -if test "${with_cxx_main+set}" = set; then : +if test ${with_cxx_main+y} +then : withval=$with_cxx_main; case $withval in @@ -4682,15 +5268,15 @@ if test "${with_cxx_main+set}" = set; then : CXX=$withval fi;; esac -else +else $as_nop with_cxx_main=no MAINCC='$(CC)' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 -$as_echo "$with_cxx_main" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 +printf "%s\n" "$with_cxx_main" >&6; } preset_cxx="$CXX" if test -z "$CXX" @@ -4699,11 +5285,12 @@ then gcc) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}g++", so it can be a program name with args. set dummy ${ac_tool_prefix}g++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -4713,11 +5300,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4729,11 +5320,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4742,11 +5333,12 @@ if test -z "$ac_cv_path_CXX"; then ac_pt_CXX=$CXX # Extract the first word of "g++", so it can be a program name with args. set dummy g++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -4756,11 +5348,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4772,11 +5368,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -$as_echo "$ac_pt_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +printf "%s\n" "$ac_pt_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -4784,8 +5380,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -4797,11 +5393,12 @@ fi cc) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}c++", so it can be a program name with args. set dummy ${ac_tool_prefix}c++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -4811,11 +5408,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4827,11 +5428,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4840,11 +5441,12 @@ if test -z "$ac_cv_path_CXX"; then ac_pt_CXX=$CXX # Extract the first word of "c++", so it can be a program name with args. set dummy c++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -4854,11 +5456,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4870,11 +5476,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -$as_echo "$ac_pt_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +printf "%s\n" "$ac_pt_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -4882,8 +5488,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -4895,11 +5501,12 @@ fi clang|*/clang) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang++", so it can be a program name with args. set dummy ${ac_tool_prefix}clang++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -4909,11 +5516,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4925,11 +5536,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -4938,11 +5549,12 @@ if test -z "$ac_cv_path_CXX"; then ac_pt_CXX=$CXX # Extract the first word of "clang++", so it can be a program name with args. set dummy clang++; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -4952,11 +5564,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4968,11 +5584,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -$as_echo "$ac_pt_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +printf "%s\n" "$ac_pt_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -4980,8 +5596,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -4993,11 +5609,12 @@ fi icc|*/icc) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}icpc", so it can be a program name with args. set dummy ${ac_tool_prefix}icpc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -5007,11 +5624,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5023,11 +5644,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5036,11 +5657,12 @@ if test -z "$ac_cv_path_CXX"; then ac_pt_CXX=$CXX # Extract the first word of "icpc", so it can be a program name with args. set dummy icpc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -5050,11 +5672,15 @@ else for as_dir in notfound do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_CXX="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_CXX="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5066,11 +5692,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -$as_echo "$ac_pt_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +printf "%s\n" "$ac_pt_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -5078,8 +5704,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -5101,11 +5727,12 @@ then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else @@ -5113,11 +5740,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5128,11 +5759,11 @@ fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -$as_echo "$CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5145,11 +5776,12 @@ if test -z "$CXX"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CXX+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else @@ -5157,11 +5789,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5172,11 +5808,11 @@ fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -5188,8 +5824,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -5203,12 +5839,12 @@ fi fi if test "$preset_cxx" != "$CXX" then - { $as_echo "$as_me:${as_lineno-$LINENO}: + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: By default, distutils will build C++ extension modules with \"$CXX\". If this is not intended, then set CXX on the configure command line. " >&5 -$as_echo "$as_me: +printf "%s\n" "$as_me: By default, distutils will build C++ extension modules with \"$CXX\". If this is not intended, then set CXX on the configure command line. @@ -5219,8 +5855,8 @@ fi MULTIARCH=$($CC --print-multiarch 2>/dev/null) -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 -$as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 +printf %s "checking for the platform triplet based on compiler characteristics... " >&6; } cat >> conftest.c <conftest.out 2>/dev/null; then PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PLATFORM_TRIPLET" >&5 -$as_echo "$PLATFORM_TRIPLET" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PLATFORM_TRIPLET" >&5 +printf "%s\n" "$PLATFORM_TRIPLET" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } fi rm -f conftest.c conftest.out @@ -5390,8 +6026,8 @@ if test x$MULTIARCH != x; then fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 -$as_echo_n "checking for -Wl,--no-as-needed... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 +printf %s "checking for -Wl,--no-as-needed... " >&6; } save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--no-as-needed" @@ -5399,290 +6035,203 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : NO_AS_NEEDED="-Wl,--no-as-needed" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop NO_AS_NEEDED="" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" # checks for UNIX variants that set C preprocessor variables - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +ac_header= ac_cache= +for ac_item in $ac_header_c_list do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - as_fn_arith $ac_count + 1 && ac_count=$as_val - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done - done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item fi -else - ac_cv_path_EGREP=$EGREP -fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h - fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if test ${ac_cv_safe_to_define___extensions__+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#include -#include +# define __EXTENSIONS__ 1 + $ac_includes_default int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_safe_to_define___extensions__=yes +else $as_nop + ac_cv_safe_to_define___extensions__=no fi -rm -f conftest* - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 +printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } +if test ${ac_cv_should_define__xopen_source+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_should_define__xopen_source=no + if test $ac_cv_header_wchar_h = yes +then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : -else - ac_cv_header_stdc=no -fi -rm -f conftest* + #include + mbstate_t x; +int +main (void) +{ -fi + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) + #define _XOPEN_SOURCE 500 + #include + mbstate_t x; int -main () +main (void) { - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; + + ; return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_should_define__xopen_source=yes fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi - +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 +printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } -$as_echo "#define STDC_HEADERS 1" >>confdefs.h + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h -fi + printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF + printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h -fi + printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h -done + printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h + printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h + printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" -if test "x$ac_cv_header_minix_config_h" = xyes; then : - MINIX=yes -else - MINIX= -fi + printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h - if test "$MINIX" = yes; then + printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h -$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h -$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h -$as_echo "#define _MINIX 1" >>confdefs.h + printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h - fi + if test $ac_cv_header_minix_config_h = yes +then : + MINIX=yes + printf "%s\n" "#define _MINIX 1" >>confdefs.h + printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 -$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } -if ${ac_cv_safe_to_define___extensions__+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h -# define __EXTENSIONS__ 1 - $ac_includes_default -int -main () -{ +else $as_nop + MINIX= +fi + if test $ac_cv_safe_to_define___extensions__ = yes +then : + printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_safe_to_define___extensions__=yes -else - ac_cv_safe_to_define___extensions__=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_should_define__xopen_source = yes +then : + printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 -$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } - test $ac_cv_safe_to_define___extensions__ = yes && - $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h - $as_echo "#define _ALL_SOURCE 1" >>confdefs.h - $as_echo "#define _GNU_SOURCE 1" >>confdefs.h - - $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h - - $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h - - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Android API level" >&5 -$as_echo_n "checking for the Android API level... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Android API level" >&5 +printf %s "checking for the Android API level... " >&6; } cat >> conftest.c <conftest.out 2>/dev/null; then ANDROID_API_LEVEL=`sed -n -e '/__ANDROID_API__/d' -e 's/^android_api = //p' conftest.out` _arm_arch=`sed -n -e '/__ARM_ARCH/d' -e 's/^arm_arch = //p' conftest.out` - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5 -$as_echo "$ANDROID_API_LEVEL" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5 +printf "%s\n" "$ANDROID_API_LEVEL" >&6; } if test -z "$ANDROID_API_LEVEL"; then echo 'Fatal: you must define __ANDROID_API__' exit 1 fi -cat >>confdefs.h <<_ACEOF -#define ANDROID_API_LEVEL $ANDROID_API_LEVEL -_ACEOF +printf "%s\n" "#define ANDROID_API_LEVEL $ANDROID_API_LEVEL" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Android arm ABI" >&5 -$as_echo_n "checking for the Android arm ABI... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_arm_arch" >&5 -$as_echo "$_arm_arch" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Android arm ABI" >&5 +printf %s "checking for the Android arm ABI... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $_arm_arch" >&5 +printf "%s\n" "$_arm_arch" >&6; } if test "$_arm_arch" = 7; then BASECFLAGS="${BASECFLAGS} -mfloat-abi=softfp -mfpu=vfpv3-d16" LDFLAGS="${LDFLAGS} -march=armv7-a -Wl,--fix-cortex-a8" fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not Android" >&5 -$as_echo "not Android" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not Android" >&5 +printf "%s\n" "not Android" >&6; } fi rm -f conftest.c conftest.out @@ -5730,11 +6277,12 @@ atheos*|Linux*/1*) esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-suffix" >&5 -$as_echo_n "checking for --with-suffix... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-suffix" >&5 +printf %s "checking for --with-suffix... " >&6; } # Check whether --with-suffix was given. -if test "${with_suffix+set}" = set; then : +if test ${with_suffix+y} +then : withval=$with_suffix; case $withval in no) EXEEXT=;; @@ -5743,26 +6291,26 @@ if test "${with_suffix+set}" = set; then : esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXEEXT" >&5 -$as_echo "$EXEEXT" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXEEXT" >&5 +printf "%s\n" "$EXEEXT" >&6; } # Test whether we're running on a non-case-sensitive system, in which # case we give a warning if no ext is given -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for case-insensitive build directory" >&5 -$as_echo_n "checking for case-insensitive build directory... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for case-insensitive build directory" >&5 +printf %s "checking for case-insensitive build directory... " >&6; } if test ! -d CaseSensitiveTestDir; then mkdir CaseSensitiveTestDir fi if test -d casesensitivetestdir then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } BUILDEXEEXT=.exe else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } BUILDEXEEXT=$EXEEXT fi rmdir CaseSensitiveTestDir @@ -5775,14 +6323,14 @@ hp*|HP*) esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5 -$as_echo_n "checking LIBRARY... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5 +printf %s "checking LIBRARY... " >&6; } if test -z "$LIBRARY" then LIBRARY='libpython$(VERSION)$(ABIFLAGS).a' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 -$as_echo "$LIBRARY" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 +printf "%s\n" "$LIBRARY" >&6; } # LDLIBRARY is the name of the library to link against (as opposed to the # name of the library into which to insert object files). BLDLIBRARY is also @@ -5821,8 +6369,8 @@ LDVERSION="$VERSION" # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable: # python might then depend on the C++ runtime -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LINKCC" >&5 -$as_echo_n "checking LINKCC... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LINKCC" >&5 +printf %s "checking LINKCC... " >&6; } if test -z "$LINKCC" then LINKCC='$(PURIFY) $(MAINCC)' @@ -5833,8 +6381,8 @@ then LINKCC=qcc;; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINKCC" >&5 -$as_echo "$LINKCC" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINKCC" >&5 +printf "%s\n" "$LINKCC" >&6; } # EXPORTSYMS holds the list of exported symbols for AIX. # EXPORTSFROM holds the module name exporting symbols on AIX. @@ -5842,16 +6390,16 @@ EXPORTSYMS= EXPORTSFROM= -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking EXPORTSYMS" >&5 -$as_echo_n "checking EXPORTSYMS... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking EXPORTSYMS" >&5 +printf %s "checking EXPORTSYMS... " >&6; } case $ac_sys_system in AIX*) EXPORTSYMS="Modules/python.exp" EXPORTSFROM=. # the main executable ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPORTSYMS" >&5 -$as_echo "$EXPORTSYMS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXPORTSYMS" >&5 +printf "%s\n" "$EXPORTSYMS" >&6; } # GNULD is set to "yes" if the GNU linker is used. If this goes wrong # make sure we default having it set to "no": this is used by @@ -5859,8 +6407,8 @@ $as_echo "$EXPORTSYMS" >&6; } # to linker command lines, and failing to detect GNU ld simply results # in the same bahaviour as before. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } ac_prog=ld if test "$GCC" = yes; then ac_prog=`$CC -print-prog-name=ld` @@ -5871,13 +6419,14 @@ case `"$ac_prog" -V 2>&1 < /dev/null` in *) GNULD=no;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5 -$as_echo "$GNULD" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5 +printf "%s\n" "$GNULD" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5 -$as_echo_n "checking for --enable-shared... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5 +printf %s "checking for --enable-shared... " >&6; } # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : +if test ${enable_shared+y} +then : enableval=$enable_shared; fi @@ -5891,13 +6440,14 @@ then enable_shared="no";; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$enable_shared" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-profiling" >&5 -$as_echo_n "checking for --enable-profiling... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-profiling" >&5 +printf %s "checking for --enable-profiling... " >&6; } # Check whether --enable-profiling was given. -if test "${enable_profiling+set}" = set; then : +if test ${enable_profiling+y} +then : enableval=$enable_profiling; fi @@ -5908,27 +6458,28 @@ if test "x$enable_profiling" = xyes; then /* end confdefs.h. */ int main() { return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : -else +else $as_nop enable_profiling=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CC="$ac_save_cc" else enable_profiling=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_profiling" >&5 -$as_echo "$enable_profiling" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_profiling" >&5 +printf "%s\n" "$enable_profiling" >&6; } if test "x$enable_profiling" = xyes; then BASECFLAGS="-pg $BASECFLAGS" LDFLAGS="-pg $LDFLAGS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDLIBRARY" >&5 -$as_echo_n "checking LDLIBRARY... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDLIBRARY" >&5 +printf %s "checking LDLIBRARY... " >&6; } # MacOSX framework builds need more magic. LDLIBRARY is the dynamic # library that we build, but we do not want to link against it (we @@ -5949,7 +6500,7 @@ fi if test $enable_shared = "yes"; then PY_ENABLE_SHARED=1 -$as_echo "#define Py_ENABLE_SHARED 1" >>confdefs.h +printf "%s\n" "#define Py_ENABLE_SHARED 1" >>confdefs.h case $ac_sys_system in CYGWIN*) @@ -6013,8 +6564,8 @@ if test "$cross_compiling" = yes; then RUNSHARED= fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 -$as_echo "$LDLIBRARY" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 +printf "%s\n" "$LDLIBRARY" >&6; } if test -n "$ac_tool_prefix"; then @@ -6022,11 +6573,12 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else @@ -6034,11 +6586,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6049,11 +6605,11 @@ fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6066,11 +6622,12 @@ if test -z "$AR"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else @@ -6078,11 +6635,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6093,11 +6654,11 @@ fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6109,8 +6670,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -6130,11 +6691,12 @@ if test -n "$ac_tool_prefix"; then do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_READELF+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_READELF+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$READELF"; then ac_cv_prog_READELF="$READELF" # Let the user override the test. else @@ -6142,11 +6704,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_READELF="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6157,11 +6723,11 @@ fi fi READELF=$ac_cv_prog_READELF if test -n "$READELF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 -$as_echo "$READELF" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 +printf "%s\n" "$READELF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6174,11 +6740,12 @@ if test -z "$READELF"; then do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_READELF+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_READELF+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_READELF"; then ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test. else @@ -6186,11 +6753,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_READELF="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6201,11 +6772,11 @@ fi fi ac_ct_READELF=$ac_cv_prog_ac_ct_READELF if test -n "$ac_ct_READELF"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5 -$as_echo "$ac_ct_READELF" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5 +printf "%s\n" "$ac_ct_READELF" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6217,8 +6788,8 @@ done else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac READELF=$ac_ct_READELF @@ -6243,7 +6814,8 @@ hp*|HP*) INSTALL="${srcdir}/install-sh -c" fi esac -# Find a good install program. We prefer a C program (faster), + + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install @@ -6257,20 +6829,25 @@ esac # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if ${ac_cv_path_install+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in #(( - ./ | .// | /[cC]/* | \ + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -6280,13 +6857,13 @@ case $as_dir/ in #(( # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else @@ -6294,12 +6871,12 @@ case $as_dir/ in #(( echo one > conftest.one echo two > conftest.two mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi @@ -6315,7 +6892,7 @@ IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi - if test "${ac_cv_path_install+set}" = set; then + if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -6325,8 +6902,8 @@ fi INSTALL=$ac_install_sh fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -6336,25 +6913,31 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then - if ${ac_cv_path_mkdir+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done @@ -6365,7 +6948,7 @@ IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version - if test "${ac_cv_path_mkdir+set}" = set; then + if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a @@ -6375,8 +6958,8 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } # Not every filesystem supports hard links @@ -6393,60 +6976,63 @@ fi ABIFLAGS="" # Check for --with-pydebug -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pydebug" >&5 -$as_echo_n "checking for --with-pydebug... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-pydebug" >&5 +printf %s "checking for --with-pydebug... " >&6; } # Check whether --with-pydebug was given. -if test "${with_pydebug+set}" = set; then : +if test ${with_pydebug+y} +then : withval=$with_pydebug; if test "$withval" != no then -$as_echo "#define Py_DEBUG 1" >>confdefs.h +printf "%s\n" "#define Py_DEBUG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; }; Py_DEBUG='true' ABIFLAGS="${ABIFLAGS}d" -else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; Py_DEBUG='false' +else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; Py_DEBUG='false' fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Check for --with-trace-refs # --with-trace-refs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-trace-refs" >&5 -$as_echo_n "checking for --with-trace-refs... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-trace-refs" >&5 +printf %s "checking for --with-trace-refs... " >&6; } # Check whether --with-trace-refs was given. -if test "${with_trace_refs+set}" = set; then : +if test ${with_trace_refs+y} +then : withval=$with_trace_refs; -else +else $as_nop with_trace_refs=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_trace_refs" >&5 -$as_echo "$with_trace_refs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_trace_refs" >&5 +printf "%s\n" "$with_trace_refs" >&6; } if test "$with_trace_refs" = "yes" then -$as_echo "#define Py_TRACE_REFS 1" >>confdefs.h +printf "%s\n" "#define Py_TRACE_REFS 1" >>confdefs.h fi # Check for --with-assertions. # This allows enabling assertions without Py_DEBUG. assertions='false' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-assertions" >&5 -$as_echo_n "checking for --with-assertions... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-assertions" >&5 +printf %s "checking for --with-assertions... " >&6; } # Check whether --with-assertions was given. -if test "${with_assertions+set}" = set; then : +if test ${with_assertions+y} +then : withval=$with_assertions; if test "$withval" != no then @@ -6455,39 +7041,40 @@ fi fi if test "$assertions" = 'true'; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } elif test "$Py_DEBUG" = 'true'; then assertions='true' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: implied by --with-pydebug" >&5 -$as_echo "implied by --with-pydebug" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: implied by --with-pydebug" >&5 +printf "%s\n" "implied by --with-pydebug" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Enable optimization flags Py_OPT='false' -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-optimizations" >&5 -$as_echo_n "checking for --enable-optimizations... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-optimizations" >&5 +printf %s "checking for --enable-optimizations... " >&6; } # Check whether --enable-optimizations was given. -if test "${enable_optimizations+set}" = set; then : +if test ${enable_optimizations+y} +then : enableval=$enable_optimizations; if test "$enableval" != no then Py_OPT='true' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; }; else Py_OPT='false' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "$Py_OPT" = 'true' ; then @@ -6500,11 +7087,12 @@ if test "$Py_OPT" = 'true' ; then DEF_MAKE_RULE="build_all" case $CC in *gcc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-semantic-interposition" >&5 -$as_echo_n "checking whether C compiler accepts -fno-semantic-interposition... " >&6; } -if ${ax_cv_check_cflags___fno_semantic_interposition+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-semantic-interposition" >&5 +printf %s "checking whether C compiler accepts -fno-semantic-interposition... " >&6; } +if test ${ax_cv_check_cflags___fno_semantic_interposition+y} +then : + printf %s "(cached) " >&6 +else $as_nop ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fno-semantic-interposition" @@ -6512,29 +7100,31 @@ else /* end confdefs.h. */ int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ax_cv_check_cflags___fno_semantic_interposition=yes -else +else $as_nop ax_cv_check_cflags___fno_semantic_interposition=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_semantic_interposition" >&5 -$as_echo "$ax_cv_check_cflags___fno_semantic_interposition" >&6; } -if test "x$ax_cv_check_cflags___fno_semantic_interposition" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_semantic_interposition" >&5 +printf "%s\n" "$ax_cv_check_cflags___fno_semantic_interposition" >&6; } +if test "x$ax_cv_check_cflags___fno_semantic_interposition" = xyes +then : CFLAGS_NODIST="$CFLAGS_NODIST -fno-semantic-interposition" LDFLAGS_NODIST="$LDFLAGS_NODIST -fno-semantic-interposition" -else +else $as_nop : fi @@ -6549,14 +7139,14 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking PROFILE_TASK" >&5 -$as_echo_n "checking PROFILE_TASK... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking PROFILE_TASK" >&5 +printf %s "checking PROFILE_TASK... " >&6; } if test -z "$PROFILE_TASK" then PROFILE_TASK='-m test --pgo --timeout=$(TESTTIMEOUT)' fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROFILE_TASK" >&5 -$as_echo "$PROFILE_TASK" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROFILE_TASK" >&5 +printf "%s\n" "$PROFILE_TASK" >&6; } # Make llvm-relatec checks work on systems where llvm tools are not installed with their # normal names in the default $PATH (ie: Ubuntu). They exist under the @@ -6579,25 +7169,26 @@ then fi # Enable LTO flags -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-lto" >&5 -$as_echo_n "checking for --with-lto... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-lto" >&5 +printf %s "checking for --with-lto... " >&6; } # Check whether --with-lto was given. -if test "${with_lto+set}" = set; then : +if test ${with_lto+y} +then : withval=$with_lto; if test "$withval" != no then Py_LTO='true' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; }; else Py_LTO='false' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "$Py_LTO" = 'true' ; then @@ -6607,11 +7198,12 @@ if test "$Py_LTO" = 'true' ; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}llvm-ar", so it can be a program name with args. set dummy ${ac_tool_prefix}llvm-ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LLVM_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_LLVM_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $LLVM_AR in [\\/]* | ?:[\\/]*) ac_cv_path_LLVM_AR="$LLVM_AR" # Let the user override the test with a path. @@ -6621,11 +7213,15 @@ else for as_dir in ${llvm_path} do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LLVM_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_LLVM_AR="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6637,11 +7233,11 @@ esac fi LLVM_AR=$ac_cv_path_LLVM_AR if test -n "$LLVM_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_AR" >&5 -$as_echo "$LLVM_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LLVM_AR" >&5 +printf "%s\n" "$LLVM_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6650,11 +7246,12 @@ if test -z "$ac_cv_path_LLVM_AR"; then ac_pt_LLVM_AR=$LLVM_AR # Extract the first word of "llvm-ar", so it can be a program name with args. set dummy llvm-ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_LLVM_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_LLVM_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_LLVM_AR in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_LLVM_AR="$ac_pt_LLVM_AR" # Let the user override the test with a path. @@ -6664,11 +7261,15 @@ else for as_dir in ${llvm_path} do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_LLVM_AR="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_LLVM_AR="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6680,11 +7281,11 @@ esac fi ac_pt_LLVM_AR=$ac_cv_path_ac_pt_LLVM_AR if test -n "$ac_pt_LLVM_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_AR" >&5 -$as_echo "$ac_pt_LLVM_AR" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_AR" >&5 +printf "%s\n" "$ac_pt_LLVM_AR" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_LLVM_AR" = x; then @@ -6692,8 +7293,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LLVM_AR=$ac_pt_LLVM_AR @@ -6717,8 +7318,8 @@ fi then LLVM_AR='/usr/bin/xcrun ar' LLVM_AR_FOUND=found - { $as_echo "$as_me:${as_lineno-$LINENO}: llvm-ar found via xcrun: ${LLVM_AR}" >&5 -$as_echo "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: llvm-ar found via xcrun: ${LLVM_AR}" >&5 +printf "%s\n" "$as_me: llvm-ar found via xcrun: ${LLVM_AR}" >&6;} fi fi if test $LLVM_AR_FOUND = not-found @@ -6774,11 +7375,12 @@ fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}llvm-profdata", so it can be a program name with args. set dummy ${ac_tool_prefix}llvm-profdata; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_LLVM_PROFDATA+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_LLVM_PROFDATA+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $LLVM_PROFDATA in [\\/]* | ?:[\\/]*) ac_cv_path_LLVM_PROFDATA="$LLVM_PROFDATA" # Let the user override the test with a path. @@ -6788,11 +7390,15 @@ else for as_dir in ${llvm_path} do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_LLVM_PROFDATA="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_LLVM_PROFDATA="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6804,11 +7410,11 @@ esac fi LLVM_PROFDATA=$ac_cv_path_LLVM_PROFDATA if test -n "$LLVM_PROFDATA"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROFDATA" >&5 -$as_echo "$LLVM_PROFDATA" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROFDATA" >&5 +printf "%s\n" "$LLVM_PROFDATA" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -6817,11 +7423,12 @@ if test -z "$ac_cv_path_LLVM_PROFDATA"; then ac_pt_LLVM_PROFDATA=$LLVM_PROFDATA # Extract the first word of "llvm-profdata", so it can be a program name with args. set dummy llvm-profdata; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_ac_pt_LLVM_PROFDATA+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_LLVM_PROFDATA+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $ac_pt_LLVM_PROFDATA in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_LLVM_PROFDATA="$ac_pt_LLVM_PROFDATA" # Let the user override the test with a path. @@ -6831,11 +7438,15 @@ else for as_dir in ${llvm_path} do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_LLVM_PROFDATA="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_LLVM_PROFDATA="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6847,11 +7458,11 @@ esac fi ac_pt_LLVM_PROFDATA=$ac_cv_path_ac_pt_LLVM_PROFDATA if test -n "$ac_pt_LLVM_PROFDATA"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_PROFDATA" >&5 -$as_echo "$ac_pt_LLVM_PROFDATA" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_PROFDATA" >&5 +printf "%s\n" "$ac_pt_LLVM_PROFDATA" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_pt_LLVM_PROFDATA" = x; then @@ -6859,8 +7470,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LLVM_PROFDATA=$ac_pt_LLVM_PROFDATA @@ -6885,8 +7496,8 @@ then # https://apple.stackexchange.com/questions/197053/ LLVM_PROFDATA='/usr/bin/xcrun llvm-profdata' LLVM_PROF_FOUND=found - { $as_echo "$as_me:${as_lineno-$LINENO}: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&5 -$as_echo "$as_me: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&5 +printf "%s\n" "$as_me: llvm-profdata found via xcrun: ${LLVM_PROFDATA}" >&6;} fi fi LLVM_PROF_ERR=no @@ -7030,19 +7641,20 @@ case $GCC in yes) CFLAGS_NODIST="$CFLAGS_NODIST -std=c99" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra" >&5 -$as_echo_n "checking for -Wextra... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wextra" >&5 +printf %s "checking for -Wextra... " >&6; } ac_save_cc="$CC" CC="$CC -Wextra -Werror" - if ${ac_cv_extra_warnings+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_extra_warnings+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7050,21 +7662,22 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_extra_warnings=yes -else +else $as_nop ac_cv_extra_warnings=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_extra_warnings" >&5 -$as_echo "$ac_cv_extra_warnings" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_extra_warnings" >&5 +printf "%s\n" "$ac_cv_extra_warnings" >&6; } if test $ac_cv_extra_warnings = yes then @@ -7075,20 +7688,21 @@ $as_echo "$ac_cv_extra_warnings" >&6; } # GCC produce warnings for legal Python code. Enable # -fno-strict-aliasing on versions of GCC that support but produce # warnings. See Issue3326 - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts and needs -fno-strict-aliasing" >&5 -$as_echo_n "checking whether $CC accepts and needs -fno-strict-aliasing... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts and needs -fno-strict-aliasing" >&5 +printf %s "checking whether $CC accepts and needs -fno-strict-aliasing... " >&6; } ac_save_cc="$CC" CC="$CC -fno-strict-aliasing" save_CFLAGS="$CFLAGS" - if ${ac_cv_no_strict_aliasing+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_no_strict_aliasing+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7096,7 +7710,8 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : CC="$ac_save_cc -fstrict-aliasing" CFLAGS="$CFLAGS -Werror -Wstrict-aliasing" @@ -7105,7 +7720,7 @@ if ac_fn_c_try_compile "$LINENO"; then : void f(int **x) {} int -main () +main (void) { double *x; f((int **) &x); ; @@ -7113,29 +7728,30 @@ double *x; f((int **) &x); } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_no_strict_aliasing=no -else +else $as_nop ac_cv_no_strict_aliasing=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -else +else $as_nop ac_cv_no_strict_aliasing=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_no_strict_aliasing" >&5 -$as_echo "$ac_cv_no_strict_aliasing" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_no_strict_aliasing" >&5 +printf "%s\n" "$ac_cv_no_strict_aliasing" >&6; } if test $ac_cv_no_strict_aliasing = yes then BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" @@ -7148,20 +7764,21 @@ $as_echo "$ac_cv_no_strict_aliasing" >&6; } ac_cv_disable_unused_result_warning=no ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused result warning" >&5 -$as_echo_n "checking if we can turn off $CC unused result warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused result warning" >&5 +printf %s "checking if we can turn off $CC unused result warning... " >&6; } ac_save_cc="$CC" CC="$CC -Wunused-result -Werror" save_CFLAGS="$CFLAGS" - if ${ac_cv_disable_unused_result_warning+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_disable_unused_result_warning+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7169,22 +7786,23 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_disable_unused_result_warning=yes -else +else $as_nop ac_cv_disable_unused_result_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_result_warning" >&5 -$as_echo "$ac_cv_disable_unused_result_warning" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_result_warning" >&5 +printf "%s\n" "$ac_cv_disable_unused_result_warning" >&6; } ;; esac @@ -7194,19 +7812,20 @@ $as_echo "$ac_cv_disable_unused_result_warning" >&6; } CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused parameter warning" >&5 -$as_echo_n "checking if we can turn off $CC unused parameter warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused parameter warning" >&5 +printf %s "checking if we can turn off $CC unused parameter warning... " >&6; } ac_save_cc="$CC" CC="$CC -Wunused-parameter -Werror" - if ${ac_cv_disable_unused_parameter_warning+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_disable_unused_parameter_warning+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7214,40 +7833,42 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_disable_unused_parameter_warning=yes -else +else $as_nop ac_cv_disable_unused_parameter_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_parameter_warning" >&5 -$as_echo "$ac_cv_disable_unused_parameter_warning" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_parameter_warning" >&5 +printf "%s\n" "$ac_cv_disable_unused_parameter_warning" >&6; } if test $ac_cv_disable_unused_parameter_warning = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-parameter" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC missing field initializers warning" >&5 -$as_echo_n "checking if we can turn off $CC missing field initializers warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC missing field initializers warning" >&5 +printf %s "checking if we can turn off $CC missing field initializers warning... " >&6; } ac_save_cc="$CC" CC="$CC -Wmissing-field-initializers -Werror" - if ${ac_cv_disable_missing_field_initializers+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_disable_missing_field_initializers+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7255,41 +7876,43 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_disable_missing_field_initializers=yes -else +else $as_nop ac_cv_disable_missing_field_initializers=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_missing_field_initializers" >&5 -$as_echo "$ac_cv_disable_missing_field_initializers" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_missing_field_initializers" >&5 +printf "%s\n" "$ac_cv_disable_missing_field_initializers" >&6; } if test $ac_cv_disable_missing_field_initializers = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Wno-missing-field-initializers" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC mixed sign comparison warning" >&5 -$as_echo_n "checking if we can turn on $CC mixed sign comparison warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC mixed sign comparison warning" >&5 +printf %s "checking if we can turn on $CC mixed sign comparison warning... " >&6; } ac_save_cc="$CC" CC="$CC -Wsign-compare" save_CFLAGS="$CFLAGS" - if ${ac_cv_enable_sign_compare_warning+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_enable_sign_compare_warning+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7297,42 +7920,44 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_enable_sign_compare_warning=yes -else +else $as_nop ac_cv_enable_sign_compare_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_sign_compare_warning" >&5 -$as_echo "$ac_cv_enable_sign_compare_warning" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_sign_compare_warning" >&5 +printf "%s\n" "$ac_cv_enable_sign_compare_warning" >&6; } if test $ac_cv_enable_sign_compare_warning = yes then BASECFLAGS="$BASECFLAGS -Wsign-compare" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC unreachable code warning" >&5 -$as_echo_n "checking if we can turn on $CC unreachable code warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC unreachable code warning" >&5 +printf %s "checking if we can turn on $CC unreachable code warning... " >&6; } ac_save_cc="$CC" CC="$CC -Wunreachable-code" save_CFLAGS="$CFLAGS" - if ${ac_cv_enable_unreachable_code_warning+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_enable_unreachable_code_warning+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7340,16 +7965,17 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_enable_unreachable_code_warning=yes -else +else $as_nop ac_cv_enable_unreachable_code_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$save_CFLAGS" @@ -7370,22 +7996,23 @@ fi else ac_cv_enable_unreachable_code_warning=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_unreachable_code_warning" >&5 -$as_echo "$ac_cv_enable_unreachable_code_warning" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_unreachable_code_warning" >&5 +printf "%s\n" "$ac_cv_enable_unreachable_code_warning" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC strict-prototypes warning" >&5 -$as_echo_n "checking if we can turn on $CC strict-prototypes warning... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC strict-prototypes warning" >&5 +printf %s "checking if we can turn on $CC strict-prototypes warning... " >&6; } ac_save_cc="$CC" CC="$CC -Werror -Wstrict-prototypes" - if ${ac_cv_enable_enable_strict_prototypes_warning+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_enable_enable_strict_prototypes_warning+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7393,40 +8020,42 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_enable_strict_prototypes_warning=yes -else +else $as_nop ac_cv_enable_strict_prototypes_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_strict_prototypes_warning" >&5 -$as_echo "$ac_cv_enable_strict_prototypes_warning" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_strict_prototypes_warning" >&5 +printf "%s\n" "$ac_cv_enable_strict_prototypes_warning" >&6; } if test $ac_cv_enable_strict_prototypes_warning = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can make implicit function declaration an error in $CC" >&5 -$as_echo_n "checking if we can make implicit function declaration an error in $CC... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can make implicit function declaration an error in $CC" >&5 +printf %s "checking if we can make implicit function declaration an error in $CC... " >&6; } ac_save_cc="$CC" CC="$CC -Werror=implicit-function-declaration" - if ${ac_cv_enable_implicit_function_declaration_error+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_enable_implicit_function_declaration_error+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7434,40 +8063,42 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_enable_implicit_function_declaration_error=yes -else +else $as_nop ac_cv_enable_implicit_function_declaration_error=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_implicit_function_declaration_error" >&5 -$as_echo "$ac_cv_enable_implicit_function_declaration_error" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_implicit_function_declaration_error" >&5 +printf "%s\n" "$ac_cv_enable_implicit_function_declaration_error" >&6; } if test $ac_cv_enable_implicit_function_declaration_error = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration" fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can use visibility in $CC" >&5 -$as_echo_n "checking if we can use visibility in $CC... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can use visibility in $CC" >&5 +printf %s "checking if we can use visibility in $CC... " >&6; } ac_save_cc="$CC" CC="$CC -fvisibility=hidden" - if ${ac_cv_enable_visibility+:} false; then : - $as_echo_n "(cached) " >&6 -else + if test ${ac_cv_enable_visibility+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { ; @@ -7475,21 +8106,22 @@ main () } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_enable_visibility=yes -else +else $as_nop ac_cv_enable_visibility=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$ac_save_cc" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_visibility" >&5 -$as_echo "$ac_cv_enable_visibility" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_visibility" >&5 +printf "%s\n" "$ac_cv_enable_visibility" >&6; } if test $ac_cv_enable_visibility = yes then @@ -7515,8 +8147,8 @@ $as_echo "$ac_cv_enable_visibility" >&6; } # used to be here, but non-Apple gcc doesn't accept them. if test "${CC}" = gcc then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5 -$as_echo_n "checking which compiler should be used... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5 +printf %s "checking which compiler should be used... " >&6; } case "${UNIVERSALSDK}" in */MacOSX10.4u.sdk) # Build using 10.4 SDK, force usage of gcc when the @@ -7526,8 +8158,8 @@ $as_echo_n "checking which compiler should be used... " >&6; } CPP=cpp-4.0 ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } fi LIPO_INTEL64_FLAGS="" @@ -7604,8 +8236,8 @@ $as_echo "$CC" >&6; } # below to pick either 10.3, 10.4, or 10.5 as the target. # 4. If we are running on OS X 10.2 or earlier, good luck! - { $as_echo "$as_me:${as_lineno-$LINENO}: checking which MACOSX_DEPLOYMENT_TARGET to use" >&5 -$as_echo_n "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which MACOSX_DEPLOYMENT_TARGET to use" >&5 +printf %s "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; } cur_target_major=`sw_vers -productVersion | \ sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` cur_target_minor=`sw_vers -productVersion | \ @@ -7642,32 +8274,33 @@ $as_echo_n "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; } MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET" export MACOSX_DEPLOYMENT_TARGET EXPORT_MACOSX_DEPLOYMENT_TARGET='' - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACOSX_DEPLOYMENT_TARGET" >&5 -$as_echo "$MACOSX_DEPLOYMENT_TARGET" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MACOSX_DEPLOYMENT_TARGET" >&5 +printf "%s\n" "$MACOSX_DEPLOYMENT_TARGET" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if specified universal architectures work" >&5 -$as_echo_n "checking if specified universal architectures work... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if specified universal architectures work" >&5 +printf %s "checking if specified universal architectures work... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { printf("%d", 42); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +if ac_fn_c_try_link "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } as_fn_error $? "check config.log and use the '--with-universal-archs' option" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext # end of Darwin* tests @@ -7713,14 +8346,16 @@ fi # complain if unaccepted options are passed (e.g. gcc on Mac OS X). # So we have to see first whether pthreads are available without # options before we can check whether -Kpthread improves anything. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads are available without options" >&5 -$as_echo_n "checking whether pthreads are available without options... " >&6; } -if ${ac_cv_pthread_is_default+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads are available without options" >&5 +printf %s "checking whether pthreads are available without options... " >&6; } +if test ${ac_cv_pthread_is_default+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_pthread_is_default=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7738,13 +8373,14 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_pthread_is_default=yes ac_cv_kthread=no ac_cv_pthread=no -else +else $as_nop ac_cv_pthread_is_default=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -7754,8 +8390,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_is_default" >&5 -$as_echo "$ac_cv_pthread_is_default" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_is_default" >&5 +printf "%s\n" "$ac_cv_pthread_is_default" >&6; } if test $ac_cv_pthread_is_default = yes @@ -7767,16 +8403,18 @@ else # Some compilers won't report that they do not support -Kpthread, # so we need to run a program to see whether it really made the # function available. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Kpthread" >&5 -$as_echo_n "checking whether $CC accepts -Kpthread... " >&6; } -if ${ac_cv_kpthread+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Kpthread" >&5 +printf %s "checking whether $CC accepts -Kpthread... " >&6; } +if test ${ac_cv_kpthread+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cc="$CC" CC="$CC -Kpthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : ac_cv_kpthread=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7794,9 +8432,10 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_kpthread=yes -else +else $as_nop ac_cv_kpthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -7806,8 +8445,8 @@ fi CC="$ac_save_cc" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kpthread" >&5 -$as_echo "$ac_cv_kpthread" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kpthread" >&5 +printf "%s\n" "$ac_cv_kpthread" >&6; } fi if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no @@ -7817,16 +8456,18 @@ then # Some compilers won't report that they do not support -Kthread, # so we need to run a program to see whether it really made the # function available. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Kthread" >&5 -$as_echo_n "checking whether $CC accepts -Kthread... " >&6; } -if ${ac_cv_kthread+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -Kthread" >&5 +printf %s "checking whether $CC accepts -Kthread... " >&6; } +if test ${ac_cv_kthread+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cc="$CC" CC="$CC -Kthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : ac_cv_kthread=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7844,9 +8485,10 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_kthread=yes -else +else $as_nop ac_cv_kthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -7856,8 +8498,8 @@ fi CC="$ac_save_cc" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kthread" >&5 -$as_echo "$ac_cv_kthread" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kthread" >&5 +printf "%s\n" "$ac_cv_kthread" >&6; } fi if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no @@ -7867,16 +8509,18 @@ then # Some compilers won't report that they do not support -pthread, # so we need to run a program to see whether it really made the # function available. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -pthread" >&5 -$as_echo_n "checking whether $CC accepts -pthread... " >&6; } -if ${ac_cv_pthread+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -pthread" >&5 +printf %s "checking whether $CC accepts -pthread... " >&6; } +if test ${ac_cv_pthread+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_save_cc="$CC" CC="$CC -pthread" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : ac_cv_pthread=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7894,9 +8538,10 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_pthread=yes -else +else $as_nop ac_cv_pthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -7906,8 +8551,8 @@ fi CC="$ac_save_cc" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread" >&5 -$as_echo "$ac_cv_pthread" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread" >&5 +printf "%s\n" "$ac_cv_pthread" >&6; } fi # If we have set a CC compiler flag for thread support then @@ -7915,8 +8560,8 @@ fi ac_cv_cxx_thread=no if test ! -z "$CXX" then -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX also accepts flags for thread support" >&5 -$as_echo_n "checking whether $CXX also accepts flags for thread support... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX also accepts flags for thread support" >&5 +printf %s "checking whether $CXX also accepts flags for thread support... " >&6; } ac_save_cxx="$CXX" if test "$ac_cv_kpthread" = "yes" @@ -7946,358 +8591,702 @@ then fi rm -fr conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_thread" >&5 -$as_echo "$ac_cv_cxx_thread" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_thread" >&5 +printf "%s\n" "$ac_cv_cxx_thread" >&6; } fi CXX="$ac_save_cxx" # checks for header files -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 +# Autoupdate added the next two lines to ensure that your configure +# script's behavior did not change. They are probably safe to remove. + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include + ac_cv_path_EGREP=$EGREP +fi -int -main () -{ + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + +ac_fn_c_check_header_compile "$LINENO" "asm/types.h" "ac_cv_header_asm_types_h" "$ac_includes_default" +if test "x$ac_cv_header_asm_types_h" = xyes +then : + printf "%s\n" "#define HAVE_ASM_TYPES_H 1" >>confdefs.h - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_fn_c_check_header_compile "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default" +if test "x$ac_cv_header_crypt_h" = xyes +then : + printf "%s\n" "#define HAVE_CRYPT_H 1" >>confdefs.h -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +fi +ac_fn_c_check_header_compile "$LINENO" "conio.h" "ac_cv_header_conio_h" "$ac_includes_default" +if test "x$ac_cv_header_conio_h" = xyes +then : + printf "%s\n" "#define HAVE_CONIO_H 1" >>confdefs.h -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : +fi +ac_fn_c_check_header_compile "$LINENO" "direct.h" "ac_cv_header_direct_h" "$ac_includes_default" +if test "x$ac_cv_header_direct_h" = xyes +then : + printf "%s\n" "#define HAVE_DIRECT_H 1" >>confdefs.h -else - ac_cv_header_stdc=no fi -rm -f conftest* +ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default" +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default" +if test "x$ac_cv_header_errno_h" = xyes +then : + printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include +fi +ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" +if test "x$ac_cv_header_fcntl_h" = xyes +then : + printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : +fi +ac_fn_c_check_header_compile "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default" +if test "x$ac_cv_header_grp_h" = xyes +then : + printf "%s\n" "#define HAVE_GRP_H 1" >>confdefs.h -else - ac_cv_header_stdc=no fi -rm -f conftest* +ac_fn_c_check_header_compile "$LINENO" "ieeefp.h" "ac_cv_header_ieeefp_h" "$ac_includes_default" +if test "x$ac_cv_header_ieeefp_h" = xyes +then : + printf "%s\n" "#define HAVE_IEEEFP_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "$ac_includes_default" +if test "x$ac_cv_header_io_h" = xyes +then : + printf "%s\n" "#define HAVE_IO_H 1" >>confdefs.h -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif +fi +ac_fn_c_check_header_compile "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" +if test "x$ac_cv_header_langinfo_h" = xyes +then : + printf "%s\n" "#define HAVE_LANGINFO_H 1" >>confdefs.h -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : +fi +ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default" +if test "x$ac_cv_header_libintl_h" = xyes +then : + printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h -else - ac_cv_header_stdc=no fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_fn_c_check_header_compile "$LINENO" "process.h" "ac_cv_header_process_h" "$ac_includes_default" +if test "x$ac_cv_header_process_h" = xyes +then : + printf "%s\n" "#define HAVE_PROCESS_H 1" >>confdefs.h + fi +ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default" +if test "x$ac_cv_header_sched_h" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then +ac_fn_c_check_header_compile "$LINENO" "shadow.h" "ac_cv_header_shadow_h" "$ac_includes_default" +if test "x$ac_cv_header_shadow_h" = xyes +then : + printf "%s\n" "#define HAVE_SHADOW_H 1" >>confdefs.h -$as_echo "#define STDC_HEADERS 1" >>confdefs.h +fi +ac_fn_c_check_header_compile "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default" +if test "x$ac_cv_header_signal_h" = xyes +then : + printf "%s\n" "#define HAVE_SIGNAL_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$ac_includes_default" +if test "x$ac_cv_header_stropts_h" = xyes +then : + printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h -for ac_header in asm/types.h crypt.h conio.h direct.h dlfcn.h errno.h \ -fcntl.h grp.h \ -ieeefp.h io.h langinfo.h libintl.h process.h pthread.h \ -sched.h shadow.h signal.h stropts.h termios.h \ -utime.h \ -poll.h sys/devpoll.h sys/epoll.h sys/poll.h \ -sys/audioio.h sys/xattr.h sys/bsdtty.h sys/event.h sys/file.h sys/ioctl.h \ -sys/kern_control.h sys/loadavg.h sys/lock.h sys/mkdev.h sys/modem.h \ -sys/param.h sys/random.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \ -sys/stat.h sys/syscall.h sys/sys_domain.h sys/termio.h sys/time.h \ -sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \ -libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \ -linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \ -sys/endian.h sys/sysmacros.h linux/memfd.h linux/wait.h sys/memfd.h \ -sys/mman.h sys/eventfd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default" +if test "x$ac_cv_header_termios_h" = xyes +then : + printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "$ac_includes_default" +if test "x$ac_cv_header_utime_h" = xyes +then : + printf "%s\n" "#define HAVE_UTIME_H 1" >>confdefs.h -done +fi +ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default" +if test "x$ac_cv_header_poll_h" = xyes +then : + printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 -$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } -if eval \${$as_ac_Header+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include <$ac_hdr> +fi +ac_fn_c_check_header_compile "$LINENO" "sys/devpoll.h" "ac_cv_header_sys_devpoll_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_devpoll_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_DEVPOLL_H 1" >>confdefs.h -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$as_ac_Header=yes" -else - eval "$as_ac_Header=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_fn_c_check_header_compile "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_epoll_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_EPOLL_H 1" >>confdefs.h + fi -eval ac_res=\$$as_ac_Header - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_poll_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h -ac_header_dirent=$ac_hdr; break fi +ac_fn_c_check_header_compile "$LINENO" "sys/audioio.h" "ac_cv_header_sys_audioio_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_audioio_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_AUDIOIO_H 1" >>confdefs.h -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi +ac_fn_c_check_header_compile "$LINENO" "sys/xattr.h" "ac_cv_header_sys_xattr_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_xattr_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_XATTR_H 1" >>confdefs.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char opendir (); -int -main () -{ -return opendir (); - ; - return 0; -} -_ACEOF -for ac_lib in '' dir; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO"; then : - ac_cv_search_opendir=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : - break +ac_fn_c_check_header_compile "$LINENO" "sys/bsdtty.h" "ac_cv_header_sys_bsdtty_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_bsdtty_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_BSDTTY_H 1" >>confdefs.h + fi -done -if ${ac_cv_search_opendir+:} false; then : +ac_fn_c_check_header_compile "$LINENO" "sys/event.h" "ac_cv_header_sys_event_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_event_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_EVENT_H 1" >>confdefs.h -else - ac_cv_search_opendir=no fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +ac_fn_c_check_header_compile "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_file_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_FILE_H 1" >>confdefs.h + fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } -ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" +ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_ioctl_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "sys/kern_control.h" "ac_cv_header_sys_kern_control_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_kern_control_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_KERN_CONTROL_H 1" >>confdefs.h -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 -$as_echo_n "checking for library containing opendir... " >&6; } -if ${ac_cv_search_opendir+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_func_search_save_LIBS=$LIBS -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +fi +ac_fn_c_check_header_compile "$LINENO" "sys/loadavg.h" "ac_cv_header_sys_loadavg_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_loadavg_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_LOADAVG_H 1" >>confdefs.h -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif +fi +ac_fn_c_check_header_compile "$LINENO" "sys/lock.h" "ac_cv_header_sys_lock_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_lock_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_LOCK_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mkdev_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_MKDEV_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/modem.h" "ac_cv_header_sys_modem_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_modem_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_MODEM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/random.h" "ac_cv_header_sys_random_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_random_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_RANDOM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_select_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/sendfile.h" "ac_cv_header_sys_sendfile_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sendfile_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SENDFILE_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/statvfs.h" "ac_cv_header_sys_statvfs_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_statvfs_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_STATVFS_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_stat_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/syscall.h" "ac_cv_header_sys_syscall_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_syscall_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SYSCALL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/sys_domain.h" "ac_cv_header_sys_sys_domain_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sys_domain_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SYS_DOMAIN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/termio.h" "ac_cv_header_sys_termio_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_termio_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TERMIO_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/times.h" "ac_cv_header_sys_times_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_times_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIMES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_uio_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_un_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_utsname_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_UTSNAME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_wait_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "pty.h" "ac_cv_header_pty_h" "$ac_includes_default" +if test "x$ac_cv_header_pty_h" = xyes +then : + printf "%s\n" "#define HAVE_PTY_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "libutil.h" "ac_cv_header_libutil_h" "$ac_includes_default" +if test "x$ac_cv_header_libutil_h" = xyes +then : + printf "%s\n" "#define HAVE_LIBUTIL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_resource_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netpacket/packet.h" "ac_cv_header_netpacket_packet_h" "$ac_includes_default" +if test "x$ac_cv_header_netpacket_packet_h" = xyes +then : + printf "%s\n" "#define HAVE_NETPACKET_PACKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sysexits.h" "ac_cv_header_sysexits_h" "$ac_includes_default" +if test "x$ac_cv_header_sysexits_h" = xyes +then : + printf "%s\n" "#define HAVE_SYSEXITS_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "bluetooth.h" "ac_cv_header_bluetooth_h" "$ac_includes_default" +if test "x$ac_cv_header_bluetooth_h" = xyes +then : + printf "%s\n" "#define HAVE_BLUETOOTH_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/tipc.h" "ac_cv_header_linux_tipc_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_tipc_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_TIPC_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/random.h" "ac_cv_header_linux_random_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_random_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_RANDOM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "spawn.h" "ac_cv_header_spawn_h" "$ac_includes_default" +if test "x$ac_cv_header_spawn_h" = xyes +then : + printf "%s\n" "#define HAVE_SPAWN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "util.h" "ac_cv_header_util_h" "$ac_includes_default" +if test "x$ac_cv_header_util_h" = xyes +then : + printf "%s\n" "#define HAVE_UTIL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "$ac_includes_default" +if test "x$ac_cv_header_alloca_h" = xyes +then : + printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "endian.h" "ac_cv_header_endian_h" "$ac_includes_default" +if test "x$ac_cv_header_endian_h" = xyes +then : + printf "%s\n" "#define HAVE_ENDIAN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/endian.h" "ac_cv_header_sys_endian_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_endian_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_ENDIAN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sysmacros_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SYSMACROS_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/memfd.h" "ac_cv_header_linux_memfd_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_memfd_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_MEMFD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/wait.h" "ac_cv_header_linux_wait_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_wait_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_WAIT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/memfd.h" "ac_cv_header_sys_memfd_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_memfd_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_MEMFD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mman_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/eventfd.h" "ac_cv_header_sys_eventfd_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_eventfd_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_EVENTFD_H 1" >>confdefs.h + +fi + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do + as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 +printf %s "checking for $ac_hdr that defines DIR... " >&6; } +if eval test \${$as_ac_Header+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include <$ac_hdr> + +int +main (void) +{ +if ((DIR *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_ac_Header=yes" +else $as_nop + eval "$as_ac_Header=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$as_ac_Header + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Header"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1 +_ACEOF + +ac_header_dirent=$ac_hdr; break +fi + +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +printf %s "checking for library containing opendir... " >&6; } +if test ${ac_cv_search_opendir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ char opendir (); int -main () +main (void) { return opendir (); ; return 0; } _ACEOF -for ac_lib in '' x; do +for ac_lib in '' dir +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_opendir=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_opendir+:} false; then : + if test ${ac_cv_search_opendir+y} +then : break fi done -if ${ac_cv_search_opendir+:} false; then : +if test ${ac_cv_search_opendir+y} +then : -else +else $as_nop ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 -$as_echo "$ac_cv_search_opendir" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +printf "%s\n" "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5 -$as_echo_n "checking whether sys/types.h defines makedev... " >&6; } -if ${ac_cv_header_sys_types_h_makedev+:} false; then : - $as_echo_n "(cached) " >&6 else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 +printf %s "checking for library containing opendir... " >&6; } +if test ${ac_cv_search_opendir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char opendir (); int -main () +main (void) { -return makedev(0, 0); +return opendir (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_header_sys_types_h_makedev=yes -else - ac_cv_header_sys_types_h_makedev=no +for ac_lib in '' x +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_opendir=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_opendir+y} +then : + break fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_types_h_makedev" >&5 -$as_echo "$ac_cv_header_sys_types_h_makedev" >&6; } - -if test $ac_cv_header_sys_types_h_makedev = no; then -ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_mkdev_h" = xyes; then : +done +if test ${ac_cv_search_opendir+y} +then : -$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h +else $as_nop + ac_cv_search_opendir=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 +printf "%s\n" "$ac_cv_search_opendir" >&6; } +ac_res=$ac_cv_search_opendir +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi +fi - if test $ac_cv_header_sys_mkdev_h = no; then - ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then : +ac_fn_c_check_header_compile "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mkdev_h" = xyes +then : -$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h +printf "%s\n" "#define MAJOR_IN_MKDEV 1" >>confdefs.h fi +if test $ac_cv_header_sys_mkdev_h = no; then + ac_fn_c_check_header_compile "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_sysmacros_h" = xyes +then : + +printf "%s\n" "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h + +fi - fi fi @@ -8305,24 +9294,17 @@ fi # http://permalink.gmane.org/gmane.linux.bluez.kernel/22294 SAVE_CFLAGS=$CFLAGS CFLAGS="-std=c99 $CFLAGS" -for ac_header in bluetooth/bluetooth.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "bluetooth/bluetooth.h" "ac_cv_header_bluetooth_bluetooth_h" "$ac_includes_default" -if test "x$ac_cv_header_bluetooth_bluetooth_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_BLUETOOTH_BLUETOOTH_H 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "bluetooth/bluetooth.h" "ac_cv_header_bluetooth_bluetooth_h" "$ac_includes_default" +if test "x$ac_cv_header_bluetooth_bluetooth_h" = xyes +then : + printf "%s\n" "#define HAVE_BLUETOOTH_BLUETOOTH_H 1" >>confdefs.h fi -done - CFLAGS=$SAVE_CFLAGS # On Darwin (OS X) net/if.h requires sys/socket.h to be imported first. -for ac_header in net/if.h -do : - ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include +ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include #ifdef STDC_HEADERS # include # include @@ -8336,20 +9318,15 @@ do : #endif " -if test "x$ac_cv_header_net_if_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_NET_IF_H 1 -_ACEOF +if test "x$ac_cv_header_net_if_h" = xyes +then : + printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h fi -done - # On Linux, netlink.h requires asm/types.h -for ac_header in linux/netlink.h -do : - ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_netlink_h" " +ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_netlink_h" " #ifdef HAVE_ASM_TYPES_H #include #endif @@ -8358,20 +9335,15 @@ do : #endif " -if test "x$ac_cv_header_linux_netlink_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_NETLINK_H 1 -_ACEOF +if test "x$ac_cv_header_linux_netlink_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_NETLINK_H 1" >>confdefs.h fi -done - # On Linux, qrtr.h requires asm/types.h -for ac_header in linux/qrtr.h -do : - ac_fn_c_check_header_compile "$LINENO" "linux/qrtr.h" "ac_cv_header_linux_qrtr_h" " +ac_fn_c_check_header_compile "$LINENO" "linux/qrtr.h" "ac_cv_header_linux_qrtr_h" " #ifdef HAVE_ASM_TYPES_H #include #endif @@ -8380,80 +9352,101 @@ do : #endif " -if test "x$ac_cv_header_linux_qrtr_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_QRTR_H 1 -_ACEOF +if test "x$ac_cv_header_linux_qrtr_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_QRTR_H 1" >>confdefs.h fi -done - -for ac_header in linux/vm_sockets.h -do : - ac_fn_c_check_header_compile "$LINENO" "linux/vm_sockets.h" "ac_cv_header_linux_vm_sockets_h" " +ac_fn_c_check_header_compile "$LINENO" "linux/vm_sockets.h" "ac_cv_header_linux_vm_sockets_h" " #ifdef HAVE_SYS_SOCKET_H #include #endif " -if test "x$ac_cv_header_linux_vm_sockets_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LINUX_VM_SOCKETS_H 1 -_ACEOF +if test "x$ac_cv_header_linux_vm_sockets_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_VM_SOCKETS_H 1" >>confdefs.h fi -done - # On Linux, can.h, can/bcm.h, can/j1939.h, can/raw.h require sys/socket.h -for ac_header in linux/can.h linux/can/bcm.h linux/can/j1939.h linux/can/raw.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " +ac_fn_c_check_header_compile "$LINENO" "linux/can.h" "ac_cv_header_linux_can_h" " #ifdef HAVE_SYS_SOCKET_H #include #endif " -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +if test "x$ac_cv_header_linux_can_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_CAN_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "linux/can/bcm.h" "ac_cv_header_linux_can_bcm_h" " +#ifdef HAVE_SYS_SOCKET_H +#include +#endif -done +" +if test "x$ac_cv_header_linux_can_bcm_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_CAN_BCM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/can/j1939.h" "ac_cv_header_linux_can_j1939_h" " +#ifdef HAVE_SYS_SOCKET_H +#include +#endif + +" +if test "x$ac_cv_header_linux_can_j1939_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_CAN_J1939_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "linux/can/raw.h" "ac_cv_header_linux_can_raw_h" " +#ifdef HAVE_SYS_SOCKET_H +#include +#endif + +" +if test "x$ac_cv_header_linux_can_raw_h" = xyes +then : + printf "%s\n" "#define HAVE_LINUX_CAN_RAW_H 1" >>confdefs.h + +fi # checks for typedefs was_it_defined=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_t in time.h" >&5 -$as_echo_n "checking for clock_t in time.h... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_t in time.h" >&5 +printf %s "checking for clock_t in time.h... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "clock_t" >/dev/null 2>&1; then : + $EGREP "clock_t" >/dev/null 2>&1 +then : was_it_defined=yes -else +else $as_nop -$as_echo "#define clock_t long" >>confdefs.h +printf "%s\n" "#define clock_t long" >>confdefs.h fi -rm -f conftest* +rm -rf conftest* -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $was_it_defined" >&5 -$as_echo "$was_it_defined" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $was_it_defined" >&5 +printf "%s\n" "$was_it_defined" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for makedev" >&5 -$as_echo_n "checking for makedev... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for makedev" >&5 +printf %s "checking for makedev... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8466,7 +9459,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { makedev(0, 0) @@ -8475,24 +9468,25 @@ main () } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_has_makedev=yes -else +else $as_nop ac_cv_has_makedev=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_makedev" >&5 -$as_echo "$ac_cv_has_makedev" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_makedev" >&5 +printf "%s\n" "$ac_cv_has_makedev" >&6; } if test "$ac_cv_has_makedev" = "yes"; then -$as_echo "#define HAVE_MAKEDEV 1" >>confdefs.h +printf "%s\n" "#define HAVE_MAKEDEV 1" >>confdefs.h fi # byte swapping -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for le64toh" >&5 -$as_echo_n "checking for le64toh... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for le64toh" >&5 +printf %s "checking for le64toh... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8503,7 +9497,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { le64toh(1) @@ -8512,18 +9506,19 @@ main () } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_has_le64toh=yes -else +else $as_nop ac_cv_has_le64toh=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_le64toh" >&5 -$as_echo "$ac_cv_has_le64toh" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_le64toh" >&5 +printf "%s\n" "$ac_cv_has_le64toh" >&6; } if test "$ac_cv_has_le64toh" = "yes"; then -$as_echo "#define HAVE_HTOLE64 1" >>confdefs.h +printf "%s\n" "#define HAVE_HTOLE64 1" >>confdefs.h fi @@ -8539,15 +9534,15 @@ if test "$use_lfs" = "yes"; then case $ac_sys_system/$ac_sys_release in AIX*) -$as_echo "#define _LARGE_FILES 1" >>confdefs.h +printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h ;; esac -$as_echo "#define _LARGEFILE_SOURCE 1" >>confdefs.h +printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h -$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h +printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h fi @@ -8560,96 +9555,121 @@ EOF # Type availability checks ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes; then : +if test "x$ac_cv_type_mode_t" = xyes +then : -else +else $as_nop -cat >>confdefs.h <<_ACEOF -#define mode_t int -_ACEOF +printf "%s\n" "#define mode_t int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" -if test "x$ac_cv_type_off_t" = xyes; then : +if test "x$ac_cv_type_off_t" = xyes +then : -else +else $as_nop -cat >>confdefs.h <<_ACEOF -#define off_t long int -_ACEOF +printf "%s\n" "#define off_t long int" >>confdefs.h fi -ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" -if test "x$ac_cv_type_pid_t" = xyes; then : -else + ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default +" +if test "x$ac_cv_type_pid_t" = xyes +then : + +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #if defined _WIN64 && !defined __CYGWIN__ + LLP64 + #endif + +int +main (void) +{ + + ; + return 0; +} -cat >>confdefs.h <<_ACEOF -#define pid_t int _ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_pid_type='int' +else $as_nop + ac_pid_type='__int64' +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h + fi -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE void -_ACEOF + +printf "%s\n" "#define RETSIGTYPE void" >>confdefs.h ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" -if test "x$ac_cv_type_size_t" = xyes; then : +if test "x$ac_cv_type_size_t" = xyes +then : -else +else $as_nop -cat >>confdefs.h <<_ACEOF -#define size_t unsigned int -_ACEOF +printf "%s\n" "#define size_t unsigned int" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -$as_echo_n "checking for uid_t in sys/types.h... " >&6; } -if ${ac_cv_type_uid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +printf %s "checking for uid_t in sys/types.h... " >&6; } +if test ${ac_cv_type_uid_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1; then : + $EGREP "uid_t" >/dev/null 2>&1 +then : ac_cv_type_uid_t=yes -else +else $as_nop ac_cv_type_uid_t=no fi -rm -f conftest* +rm -rf conftest* fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -$as_echo "$ac_cv_type_uid_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +printf "%s\n" "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then -$as_echo "#define uid_t int" >>confdefs.h +printf "%s\n" "#define uid_t int" >>confdefs.h -$as_echo "#define gid_t int" >>confdefs.h +printf "%s\n" "#define gid_t int" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" -if test "x$ac_cv_type_ssize_t" = xyes; then : +if test "x$ac_cv_type_ssize_t" = xyes +then : -$as_echo "#define HAVE_SSIZE_T 1" >>confdefs.h +printf "%s\n" "#define HAVE_SSIZE_T 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "__uint128_t" "ac_cv_type___uint128_t" "$ac_includes_default" -if test "x$ac_cv_type___uint128_t" = xyes; then : +if test "x$ac_cv_type___uint128_t" = xyes +then : -$as_echo "#define HAVE_GCC_UINT128_T 1" >>confdefs.h +printf "%s\n" "#define HAVE_GCC_UINT128_T 1" >>confdefs.h fi @@ -8660,17 +9680,19 @@ fi # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +printf %s "checking size of int... " >&6; } +if test ${ac_cv_sizeof_int+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else @@ -8679,31 +9701,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +printf "%s\n" "$ac_cv_sizeof_int" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF +printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +printf %s "checking size of long... " >&6; } +if test ${ac_cv_sizeof_long+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else @@ -8712,33 +9734,30 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +printf "%s\n" "$ac_cv_sizeof_long" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF +printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler, # see AC_CHECK_SIZEOF for more information. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of long" >&5 -$as_echo_n "checking alignment of long... " >&6; } -if ${ac_cv_alignof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking alignment of long" >&5 +printf %s "checking alignment of long... " >&6; } +if test ${ac_cv_alignof_long+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_long" "$ac_includes_default -#ifndef offsetof -# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) -#endif -typedef struct { char x; long y; } ac__type_alignof_;"; then : +typedef struct { char x; long y; } ac__type_alignof_;" +then : -else +else $as_nop if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute alignment of long See \`config.log' for more details" "$LINENO" 5; } else @@ -8747,31 +9766,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5 -$as_echo "$ac_cv_alignof_long" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5 +printf "%s\n" "$ac_cv_alignof_long" >&6; } -cat >>confdefs.h <<_ACEOF -#define ALIGNOF_LONG $ac_cv_alignof_long -_ACEOF +printf "%s\n" "#define ALIGNOF_LONG $ac_cv_alignof_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +printf %s "checking size of long long... " >&6; } +if test ${ac_cv_sizeof_long_long+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) See \`config.log' for more details" "$LINENO" 5; } else @@ -8780,31 +9799,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +printf "%s\n" "$ac_cv_sizeof_long_long" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF +printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +printf %s "checking size of void *... " >&6; } +if test ${ac_cv_sizeof_void_p+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See \`config.log' for more details" "$LINENO" 5; } else @@ -8813,31 +9832,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +printf "%s\n" "$ac_cv_sizeof_void_p" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF +printf "%s\n" "#define SIZEOF_VOID_P $ac_cv_sizeof_void_p" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +printf %s "checking size of short... " >&6; } +if test ${ac_cv_sizeof_short+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else @@ -8846,31 +9865,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +printf "%s\n" "$ac_cv_sizeof_short" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF +printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 -$as_echo_n "checking size of float... " >&6; } -if ${ac_cv_sizeof_float+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 +printf %s "checking size of float... " >&6; } +if test ${ac_cv_sizeof_float+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_float" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (float) See \`config.log' for more details" "$LINENO" 5; } else @@ -8879,31 +9898,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 -$as_echo "$ac_cv_sizeof_float" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 +printf "%s\n" "$ac_cv_sizeof_float" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_FLOAT $ac_cv_sizeof_float -_ACEOF +printf "%s\n" "#define SIZEOF_FLOAT $ac_cv_sizeof_float" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 -$as_echo_n "checking size of double... " >&6; } -if ${ac_cv_sizeof_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 +printf %s "checking size of double... " >&6; } +if test ${ac_cv_sizeof_double+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (double) See \`config.log' for more details" "$LINENO" 5; } else @@ -8912,31 +9931,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -$as_echo "$ac_cv_sizeof_double" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 +printf "%s\n" "$ac_cv_sizeof_double" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_DOUBLE $ac_cv_sizeof_double -_ACEOF +printf "%s\n" "#define SIZEOF_DOUBLE $ac_cv_sizeof_double" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of fpos_t" >&5 -$as_echo_n "checking size of fpos_t... " >&6; } -if ${ac_cv_sizeof_fpos_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (fpos_t))" "ac_cv_sizeof_fpos_t" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of fpos_t" >&5 +printf %s "checking size of fpos_t... " >&6; } +if test ${ac_cv_sizeof_fpos_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (fpos_t))" "ac_cv_sizeof_fpos_t" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_fpos_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (fpos_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -8945,31 +9964,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_fpos_t" >&5 -$as_echo "$ac_cv_sizeof_fpos_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_fpos_t" >&5 +printf "%s\n" "$ac_cv_sizeof_fpos_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_FPOS_T $ac_cv_sizeof_fpos_t -_ACEOF +printf "%s\n" "#define SIZEOF_FPOS_T $ac_cv_sizeof_fpos_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 -$as_echo_n "checking size of size_t... " >&6; } -if ${ac_cv_sizeof_size_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 +printf %s "checking size of size_t... " >&6; } +if test ${ac_cv_sizeof_size_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_size_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -8978,33 +9997,30 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -$as_echo "$ac_cv_sizeof_size_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 +printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t -_ACEOF +printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler, # see AC_CHECK_SIZEOF for more information. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking alignment of size_t" >&5 -$as_echo_n "checking alignment of size_t... " >&6; } -if ${ac_cv_alignof_size_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking alignment of size_t" >&5 +printf %s "checking alignment of size_t... " >&6; } +if test ${ac_cv_alignof_size_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_size_t" "$ac_includes_default -#ifndef offsetof -# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) -#endif -typedef struct { char x; size_t y; } ac__type_alignof_;"; then : +typedef struct { char x; size_t y; } ac__type_alignof_;" +then : -else +else $as_nop if test "$ac_cv_type_size_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute alignment of size_t See \`config.log' for more details" "$LINENO" 5; } else @@ -9013,31 +10029,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_size_t" >&5 -$as_echo "$ac_cv_alignof_size_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_size_t" >&5 +printf "%s\n" "$ac_cv_alignof_size_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define ALIGNOF_SIZE_T $ac_cv_alignof_size_t -_ACEOF +printf "%s\n" "#define ALIGNOF_SIZE_T $ac_cv_alignof_size_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of pid_t" >&5 -$as_echo_n "checking size of pid_t... " >&6; } -if ${ac_cv_sizeof_pid_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pid_t))" "ac_cv_sizeof_pid_t" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pid_t" >&5 +printf %s "checking size of pid_t... " >&6; } +if test ${ac_cv_sizeof_pid_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pid_t))" "ac_cv_sizeof_pid_t" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_pid_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (pid_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9046,31 +10062,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pid_t" >&5 -$as_echo "$ac_cv_sizeof_pid_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pid_t" >&5 +printf "%s\n" "$ac_cv_sizeof_pid_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_PID_T $ac_cv_sizeof_pid_t -_ACEOF +printf "%s\n" "#define SIZEOF_PID_T $ac_cv_sizeof_pid_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of uintptr_t" >&5 -$as_echo_n "checking size of uintptr_t... " >&6; } -if ${ac_cv_sizeof_uintptr_t+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uintptr_t))" "ac_cv_sizeof_uintptr_t" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of uintptr_t" >&5 +printf %s "checking size of uintptr_t... " >&6; } +if test ${ac_cv_sizeof_uintptr_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (uintptr_t))" "ac_cv_sizeof_uintptr_t" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_uintptr_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (uintptr_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9079,23 +10095,22 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uintptr_t" >&5 -$as_echo "$ac_cv_sizeof_uintptr_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uintptr_t" >&5 +printf "%s\n" "$ac_cv_sizeof_uintptr_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_UINTPTR_T $ac_cv_sizeof_uintptr_t -_ACEOF +printf "%s\n" "#define SIZEOF_UINTPTR_T $ac_cv_sizeof_uintptr_t" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5 -$as_echo_n "checking for long double... " >&6; } -if ${ac_cv_type_long_double+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long double" >&5 +printf %s "checking for long double... " >&6; } +if test ${ac_cv_type_long_double+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test "$GCC" = yes; then ac_cv_type_long_double=yes else @@ -9105,7 +10120,7 @@ else not support it. */ long double foo = 0.0L; int -main () +main (void) { static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ sizeof (double) <= sizeof (long double))]; @@ -9116,19 +10131,20 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_type_long_double=yes -else +else $as_nop ac_cv_type_long_double=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 -$as_echo "$ac_cv_type_long_double" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 +printf "%s\n" "$ac_cv_type_long_double" >&6; } if test $ac_cv_type_long_double = yes; then -$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h +printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h fi @@ -9136,17 +10152,19 @@ $as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 -$as_echo_n "checking size of long double... " >&6; } -if ${ac_cv_sizeof_long_double+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5 +printf %s "checking size of long double... " >&6; } +if test ${ac_cv_sizeof_long_double+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type_long_double" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long double) See \`config.log' for more details" "$LINENO" 5; } else @@ -9155,14 +10173,12 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 -$as_echo "$ac_cv_sizeof_long_double" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 +printf "%s\n" "$ac_cv_sizeof_long_double" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double -_ACEOF +printf "%s\n" "#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double" >>confdefs.h @@ -9170,17 +10186,19 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of _Bool" >&5 -$as_echo_n "checking size of _Bool... " >&6; } -if ${ac_cv_sizeof__Bool+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (_Bool))" "ac_cv_sizeof__Bool" "$ac_includes_default"; then : - -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of _Bool" >&5 +printf %s "checking size of _Bool... " >&6; } +if test ${ac_cv_sizeof__Bool+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (_Bool))" "ac_cv_sizeof__Bool" "$ac_includes_default" +then : + +else $as_nop if test "$ac_cv_type__Bool" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (_Bool) See \`config.log' for more details" "$LINENO" 5; } else @@ -9189,14 +10207,12 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof__Bool" >&5 -$as_echo "$ac_cv_sizeof__Bool" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof__Bool" >&5 +printf "%s\n" "$ac_cv_sizeof__Bool" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF__BOOL $ac_cv_sizeof__Bool -_ACEOF +printf "%s\n" "#define SIZEOF__BOOL $ac_cv_sizeof__Bool" >>confdefs.h @@ -9204,22 +10220,24 @@ _ACEOF # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 -$as_echo_n "checking size of off_t... " >&6; } -if ${ac_cv_sizeof_off_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5 +printf %s "checking size of off_t... " >&6; } +if test ${ac_cv_sizeof_off_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (off_t))" "ac_cv_sizeof_off_t" " #ifdef HAVE_SYS_TYPES_H #include #endif -"; then : +" +then : -else +else $as_nop if test "$ac_cv_type_off_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (off_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9228,40 +10246,39 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -$as_echo "$ac_cv_sizeof_off_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 +printf "%s\n" "$ac_cv_sizeof_off_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_OFF_T $ac_cv_sizeof_off_t -_ACEOF +printf "%s\n" "#define SIZEOF_OFF_T $ac_cv_sizeof_off_t" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable large file support" >&5 -$as_echo_n "checking whether to enable large file support... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable large file support" >&5 +printf %s "checking whether to enable large file support... " >&6; } if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \ "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then -$as_echo "#define HAVE_LARGEFILE_SUPPORT 1" >>confdefs.h +printf "%s\n" "#define HAVE_LARGEFILE_SUPPORT 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 -$as_echo_n "checking size of time_t... " >&6; } -if ${ac_cv_sizeof_time_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 +printf %s "checking size of time_t... " >&6; } +if test ${ac_cv_sizeof_time_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" " #ifdef HAVE_SYS_TYPES_H #include @@ -9270,12 +10287,13 @@ else #include #endif -"; then : +" +then : -else +else $as_nop if test "$ac_cv_type_time_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (time_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9284,14 +10302,12 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 -$as_echo "$ac_cv_sizeof_time_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 +printf "%s\n" "$ac_cv_sizeof_time_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_TIME_T $ac_cv_sizeof_time_t -_ACEOF +printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h @@ -9305,15 +10321,15 @@ elif test "$ac_cv_pthread" = "yes" then CC="$CC -pthread" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_t" >&5 -$as_echo_n "checking for pthread_t... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_t" >&5 +printf %s "checking for pthread_t... " >&6; } have_pthread_t=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { pthread_t x; x = *(pthread_t*)0; ; @@ -9321,33 +10337,36 @@ pthread_t x; x = *(pthread_t*)0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : have_pthread_t=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_pthread_t" >&5 -$as_echo "$have_pthread_t" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_pthread_t" >&5 +printf "%s\n" "$have_pthread_t" >&6; } if test "$have_pthread_t" = yes ; then # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5 -$as_echo_n "checking size of pthread_t... " >&6; } -if ${ac_cv_sizeof_pthread_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5 +printf %s "checking size of pthread_t... " >&6; } +if test ${ac_cv_sizeof_pthread_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" " #ifdef HAVE_PTHREAD_H #include #endif -"; then : +" +then : -else +else $as_nop if test "$ac_cv_type_pthread_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (pthread_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9356,14 +10375,12 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5 -$as_echo "$ac_cv_sizeof_pthread_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5 +printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t -_ACEOF +printf "%s\n" "#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t" >>confdefs.h fi @@ -9374,18 +10391,20 @@ fi # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of pthread_key_t" >&5 -$as_echo_n "checking size of pthread_key_t... " >&6; } -if ${ac_cv_sizeof_pthread_key_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_key_t" >&5 +printf %s "checking size of pthread_key_t... " >&6; } +if test ${ac_cv_sizeof_pthread_key_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_key_t))" "ac_cv_sizeof_pthread_key_t" "#include -"; then : +" +then : -else +else $as_nop if test "$ac_cv_type_pthread_key_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (pthread_key_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9394,47 +10413,46 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_key_t" >&5 -$as_echo "$ac_cv_sizeof_pthread_key_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_key_t" >&5 +printf "%s\n" "$ac_cv_sizeof_pthread_key_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_PTHREAD_KEY_T $ac_cv_sizeof_pthread_key_t -_ACEOF +printf "%s\n" "#define SIZEOF_PTHREAD_KEY_T $ac_cv_sizeof_pthread_key_t" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthread_key_t is compatible with int" >&5 -$as_echo_n "checking whether pthread_key_t is compatible with int... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthread_key_t is compatible with int" >&5 +printf %s "checking whether pthread_key_t is compatible with int... " >&6; } if test "$ac_cv_sizeof_pthread_key_t" -eq "$ac_cv_sizeof_int" ; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { pthread_key_t k; k * 1; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_pthread_key_t_is_arithmetic_type=yes -else +else $as_nop ac_pthread_key_t_is_arithmetic_type=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pthread_key_t_is_arithmetic_type" >&5 -$as_echo "$ac_pthread_key_t_is_arithmetic_type" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pthread_key_t_is_arithmetic_type" >&5 +printf "%s\n" "$ac_pthread_key_t_is_arithmetic_type" >&6; } if test "$ac_pthread_key_t_is_arithmetic_type" = yes ; then -$as_echo "#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1" >>confdefs.h +printf "%s\n" "#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1" >>confdefs.h fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi CC="$ac_save_cc" @@ -9468,9 +10486,10 @@ case $ac_sys_system/$ac_sys_release in else LIBTOOL_CRUFT="" fi - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes +then : ac_osx_32bit=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9485,9 +10504,10 @@ else } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_osx_32bit=yes -else +else $as_nop ac_osx_32bit=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -9529,40 +10549,40 @@ fi LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-framework" >&5 -$as_echo_n "checking for --enable-framework... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-framework" >&5 +printf %s "checking for --enable-framework... " >&6; } if test "$enable_framework" then BASECFLAGS="$BASECFLAGS -fno-common -dynamic" # -F. is needed to allow linking to the framework while # in the build location. -$as_echo "#define WITH_NEXT_FRAMEWORK 1" >>confdefs.h +printf "%s\n" "#define WITH_NEXT_FRAMEWORK 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } if test $enable_shared = "yes" then as_fn_error $? "Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead" "$LINENO" 5 fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 -$as_echo_n "checking for dyld... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 +printf %s "checking for dyld... " >&6; } case $ac_sys_system/$ac_sys_release in Darwin/*) -$as_echo "#define WITH_DYLD 1" >>confdefs.h +printf "%s\n" "#define WITH_DYLD 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: always on for Darwin" >&5 -$as_echo "always on for Darwin" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: always on for Darwin" >&5 +printf "%s\n" "always on for Darwin" >&6; } ;; *) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ;; esac @@ -9576,8 +10596,8 @@ esac # SHLIB_SUFFIX is the extension of shared libraries `(including the dot!) # -- usually .so, .sl on HP-UX, .dll on Cygwin -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the extension of shared libraries" >&5 -$as_echo_n "checking the extension of shared libraries... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the extension of shared libraries" >&5 +printf %s "checking the extension of shared libraries... " >&6; } if test -z "$SHLIB_SUFFIX"; then case $ac_sys_system in hp*|HP*) @@ -9590,15 +10610,15 @@ if test -z "$SHLIB_SUFFIX"; then *) SHLIB_SUFFIX=.so;; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIB_SUFFIX" >&5 -$as_echo "$SHLIB_SUFFIX" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHLIB_SUFFIX" >&5 +printf "%s\n" "$SHLIB_SUFFIX" >&6; } # LDSHARED is the ld *command* used to create shared library # -- "cc -G" on SunOS 5.x. # (Shared libraries in this instance are shared modules to be loaded into # Python, as opposed to building Python itself as a shared library.) -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDSHARED" >&5 -$as_echo_n "checking LDSHARED... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDSHARED" >&5 +printf %s "checking LDSHARED... " >&6; } if test -z "$LDSHARED" then case $ac_sys_system/$ac_sys_release in @@ -9716,14 +10736,14 @@ then *) LDSHARED="ld";; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDSHARED" >&5 -$as_echo "$LDSHARED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDSHARED" >&5 +printf "%s\n" "$LDSHARED" >&6; } LDCXXSHARED=${LDCXXSHARED-$LDSHARED} BLDSHARED=${BLDSHARED-$LDSHARED} # CCSHARED are the C *flags* used to create objects to go into a shared # library (module) -- this is only needed for a few systems -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CCSHARED" >&5 -$as_echo_n "checking CCSHARED... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CCSHARED" >&5 +printf %s "checking CCSHARED... " >&6; } if test -z "$CCSHARED" then case $ac_sys_system/$ac_sys_release in @@ -9754,12 +10774,12 @@ then CCSHARED="-fpic -D__SO_PICABILINUX__ -ftls-model=global-dynamic" esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCSHARED" >&5 -$as_echo "$CCSHARED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CCSHARED" >&5 +printf "%s\n" "$CCSHARED" >&6; } # LINKFORSHARED are the flags passed to the $(CC) command that links # the python executable -- this is only needed for a few systems -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LINKFORSHARED" >&5 -$as_echo_n "checking LINKFORSHARED... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LINKFORSHARED" >&5 +printf %s "checking LINKFORSHARED... " >&6; } if test -z "$LINKFORSHARED" then case $ac_sys_system/$ac_sys_release in @@ -9816,13 +10836,13 @@ then LINKFORSHARED='-Wl,-export-dynamic';; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINKFORSHARED" >&5 -$as_echo "$LINKFORSHARED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINKFORSHARED" >&5 +printf "%s\n" "$LINKFORSHARED" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGSFORSHARED" >&5 -$as_echo_n "checking CFLAGSFORSHARED... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CFLAGSFORSHARED" >&5 +printf %s "checking CFLAGSFORSHARED... " >&6; } if test ! "$LIBRARY" = "$LDLIBRARY" then case $ac_sys_system in @@ -9834,8 +10854,8 @@ then CFLAGSFORSHARED='$(CCSHARED)' esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CFLAGSFORSHARED" >&5 -$as_echo "$CFLAGSFORSHARED" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CFLAGSFORSHARED" >&5 +printf "%s\n" "$CFLAGSFORSHARED" >&6; } # SHLIBS are libraries (except -lc and -lm) to link to the python shared # library (with --enable-shared). @@ -9846,22 +10866,23 @@ $as_echo "$CFLAGSFORSHARED" >&6; } # don't need to link LIBS explicitly. The default should be only changed # on systems where this approach causes problems. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SHLIBS" >&5 -$as_echo_n "checking SHLIBS... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SHLIBS" >&5 +printf %s "checking SHLIBS... " >&6; } case "$ac_sys_system" in *) SHLIBS='$(LIBS)';; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 -$as_echo "$SHLIBS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 +printf "%s\n" "$SHLIBS" >&6; } # checks for libraries -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sendfile in -lsendfile" >&5 -$as_echo_n "checking for sendfile in -lsendfile... " >&6; } -if ${ac_cv_lib_sendfile_sendfile+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sendfile in -lsendfile" >&5 +printf %s "checking for sendfile in -lsendfile... " >&6; } +if test ${ac_cv_lib_sendfile_sendfile+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsendfile $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9870,43 +10891,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char sendfile (); int -main () +main (void) { return sendfile (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_sendfile_sendfile=yes -else +else $as_nop ac_cv_lib_sendfile_sendfile=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sendfile_sendfile" >&5 -$as_echo "$ac_cv_lib_sendfile_sendfile" >&6; } -if test "x$ac_cv_lib_sendfile_sendfile" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSENDFILE 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sendfile_sendfile" >&5 +printf "%s\n" "$ac_cv_lib_sendfile_sendfile" >&6; } +if test "x$ac_cv_lib_sendfile_sendfile" = xyes +then : + printf "%s\n" "#define HAVE_LIBSENDFILE 1" >>confdefs.h LIBS="-lsendfile $LIBS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9915,43 +10934,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char dlopen (); int -main () +main (void) { return dlopen (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dl_dlopen=yes -else +else $as_nop ac_cv_lib_dl_dlopen=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDL 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + printf "%s\n" "#define HAVE_LIBDL 1" >>confdefs.h LIBS="-ldl $LIBS" fi # Dynamic linking for SunOS/Solaris and SYSV -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if ${ac_cv_lib_dld_shl_load+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -9960,33 +10977,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char shl_load (); int -main () +main (void) { return shl_load (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_dld_shl_load=yes -else +else $as_nop ac_cv_lib_dld_shl_load=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$ac_cv_lib_dld_shl_load" >&6; } -if test "x$ac_cv_lib_dld_shl_load" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDLD 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + printf "%s\n" "#define HAVE_LIBDLD 1" >>confdefs.h LIBS="-ldld $LIBS" @@ -9994,27 +11008,27 @@ fi # Dynamic linking for HP-UX # checks for uuid.h location -for ac_header in uuid/uuid.h uuid.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_uuid_h" = xyes +then : + printf "%s\n" "#define HAVE_UUID_UUID_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_h" = xyes +then : + printf "%s\n" "#define HAVE_UUID_H 1" >>confdefs.h -done +fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 -$as_echo_n "checking for uuid_generate_time_safe... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 +printf %s "checking for uuid_generate_time_safe... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef uuid_generate_time_safe @@ -10025,28 +11039,29 @@ void *x = uuid_generate_time_safe return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h +printf "%s\n" "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # AIX provides support for RFC4122 (uuid) in libc.a starting with AIX 6.1 (anno 2007) # FreeBSD and OpenBSD provides support as well -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5 -$as_echo_n "checking for uuid_create... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5 +printf %s "checking for uuid_create... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef uuid_create @@ -10057,28 +11072,29 @@ void *x = uuid_create return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_UUID_CREATE 1" >>confdefs.h +printf "%s\n" "#define HAVE_UUID_CREATE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Little-endian FreeBSD, OpenBSD and NetBSD needs encoding into an octet # stream in big-endian byte-order -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_enc_be" >&5 -$as_echo_n "checking for uuid_enc_be... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_enc_be" >&5 +printf %s "checking for uuid_enc_be... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef uuid_enc_be @@ -10089,27 +11105,29 @@ void *x = uuid_enc_be return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_UUID_ENC_BE 1" >>confdefs.h +printf "%s\n" "#define HAVE_UUID_ENC_BE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # 'Real Time' functions on Solaris # posix4 on Solaris 2.6 # pthread (first!) on Linux -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sem_init" >&5 -$as_echo_n "checking for library containing sem_init... " >&6; } -if ${ac_cv_search_sem_init+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sem_init" >&5 +printf %s "checking for library containing sem_init... " >&6; } +if test ${ac_cv_search_sem_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10117,57 +11135,60 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char sem_init (); int -main () +main (void) { return sem_init (); ; return 0; } _ACEOF -for ac_lib in '' pthread rt posix4; do +for ac_lib in '' pthread rt posix4 +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_sem_init=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_sem_init+:} false; then : + if test ${ac_cv_search_sem_init+y} +then : break fi done -if ${ac_cv_search_sem_init+:} false; then : +if test ${ac_cv_search_sem_init+y} +then : -else +else $as_nop ac_cv_search_sem_init=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_init" >&5 -$as_echo "$ac_cv_search_sem_init" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_init" >&5 +printf "%s\n" "$ac_cv_search_sem_init" >&6; } ac_res=$ac_cv_search_sem_init -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi # check if we need libintl for locale functions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for textdomain in -lintl" >&5 -$as_echo_n "checking for textdomain in -lintl... " >&6; } -if ${ac_cv_lib_intl_textdomain+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for textdomain in -lintl" >&5 +printf %s "checking for textdomain in -lintl... " >&6; } +if test ${ac_cv_lib_intl_textdomain+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10176,32 +11197,31 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char textdomain (); int -main () +main (void) { return textdomain (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_intl_textdomain=yes -else +else $as_nop ac_cv_lib_intl_textdomain=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_textdomain" >&5 -$as_echo "$ac_cv_lib_intl_textdomain" >&6; } -if test "x$ac_cv_lib_intl_textdomain" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_textdomain" >&5 +printf "%s\n" "$ac_cv_lib_intl_textdomain" >&6; } +if test "x$ac_cv_lib_intl_textdomain" = xyes +then : -$as_echo "#define WITH_LIBINTL 1" >>confdefs.h +printf "%s\n" "#define WITH_LIBINTL 1" >>confdefs.h LIBS="-lintl $LIBS" fi @@ -10209,14 +11229,14 @@ fi # checks for system dependent C++ extensions support case "$ac_sys_system" in - AIX*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for genuine AIX C++ extensions support" >&5 -$as_echo_n "checking for genuine AIX C++ extensions support... " >&6; } + AIX*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for genuine AIX C++ extensions support" >&5 +printf %s "checking for genuine AIX C++ extensions support... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { loadAndInit("", 0, "") ; @@ -10224,48 +11244,49 @@ loadAndInit("", 0, "") } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : -$as_echo "#define AIX_GENUINE_CPLUSPLUS 1" >>confdefs.h +printf "%s\n" "#define AIX_GENUINE_CPLUSPLUS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext # BUILD_GNU_TYPE + AIX_BUILDDATE are used to construct the platform_tag # of the AIX system used to build/package Python executable. This tag serves # as a baseline for bdist module packages - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the system builddate" >&5 -$as_echo_n "checking for the system builddate... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the system builddate" >&5 +printf %s "checking for the system builddate... " >&6; } AIX_BUILDDATE=$(lslpp -Lcq bos.mp64 | awk -F: '{ print $NF }') -cat >>confdefs.h <<_ACEOF -#define AIX_BUILDDATE $AIX_BUILDDATE -_ACEOF +printf "%s\n" "#define AIX_BUILDDATE $AIX_BUILDDATE" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AIX_BUILDDATE" >&5 -$as_echo "$AIX_BUILDDATE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AIX_BUILDDATE" >&5 +printf "%s\n" "$AIX_BUILDDATE" >&6; } ;; *) ;; esac # check for systems that require aligned memory access -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking aligned memory access is required" >&5 -$as_echo_n "checking aligned memory access is required... " >&6; } -if ${ac_cv_aligned_required+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking aligned memory access is required" >&5 +printf %s "checking aligned memory access is required... " >&6; } +if test ${ac_cv_aligned_required+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_aligned_required=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10282,9 +11303,10 @@ int main() return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_aligned_required=no -else +else $as_nop ac_cv_aligned_required=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -10294,32 +11316,33 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_aligned_required" >&5 -$as_echo "$ac_cv_aligned_required" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_aligned_required" >&5 +printf "%s\n" "$ac_cv_aligned_required" >&6; } if test "$ac_cv_aligned_required" = yes ; then -$as_echo "#define HAVE_ALIGNED_REQUIRED 1" >>confdefs.h +printf "%s\n" "#define HAVE_ALIGNED_REQUIRED 1" >>confdefs.h fi # str, bytes and memoryview hash algorithm -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-hash-algorithm" >&5 -$as_echo_n "checking for --with-hash-algorithm... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-hash-algorithm" >&5 +printf %s "checking for --with-hash-algorithm... " >&6; } # Check whether --with-hash_algorithm was given. -if test "${with_hash_algorithm+set}" = set; then : +if test ${with_hash_algorithm+y} +then : withval=$with_hash_algorithm; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } case "$withval" in siphash24) - $as_echo "#define Py_HASH_ALGORITHM 1" >>confdefs.h + printf "%s\n" "#define Py_HASH_ALGORITHM 1" >>confdefs.h ;; fnv) - $as_echo "#define Py_HASH_ALGORITHM 2" >>confdefs.h + printf "%s\n" "#define Py_HASH_ALGORITHM 2" >>confdefs.h ;; *) @@ -10327,9 +11350,9 @@ case "$withval" in ;; esac -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5 -$as_echo "default" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default" >&5 +printf "%s\n" "default" >&6; } fi @@ -10348,11 +11371,12 @@ validate_tzpath() { } TZPATH="/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-tzpath" >&5 -$as_echo_n "checking for --with-tzpath... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-tzpath" >&5 +printf %s "checking for --with-tzpath... " >&6; } # Check whether --with-tzpath was given. -if test "${with_tzpath+set}" = set; then : +if test ${with_tzpath+y} +then : withval=$with_tzpath; case "$withval" in yes) @@ -10361,80 +11385,84 @@ case "$withval" in *) validate_tzpath "$withval" TZPATH="$withval" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$withval\"" >&5 -$as_echo "\"$withval\"" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$withval\"" >&5 +printf "%s\n" "\"$withval\"" >&6; } ;; esac -else +else $as_nop validate_tzpath "$TZPATH" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$TZPATH\"" >&5 -$as_echo "\"$TZPATH\"" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$TZPATH\"" >&5 +printf "%s\n" "\"$TZPATH\"" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 -$as_echo_n "checking for --with-address-sanitizer... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 +printf %s "checking for --with-address-sanitizer... " >&6; } # Check whether --with-address_sanitizer was given. -if test "${with_address_sanitizer+set}" = set; then : +if test ${with_address_sanitizer+y} +then : withval=$with_address_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } BASECFLAGS="-fsanitize=address -fno-omit-frame-pointer $BASECFLAGS" LDFLAGS="-fsanitize=address $LDFLAGS" # ASan works by controlling memory allocation, our own malloc interferes. with_pymalloc="no" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 -$as_echo_n "checking for --with-memory-sanitizer... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 +printf %s "checking for --with-memory-sanitizer... " >&6; } # Check whether --with-memory_sanitizer was given. -if test "${with_memory_sanitizer+set}" = set; then : +if test ${with_memory_sanitizer+y} +then : withval=$with_memory_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } BASECFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer $BASECFLAGS" LDFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 $LDFLAGS" # MSan works by controlling memory allocation, our own malloc interferes. with_pymalloc="no" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5 -$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5 +printf %s "checking for --with-undefined-behavior-sanitizer... " >&6; } # Check whether --with-undefined_behavior_sanitizer was given. -if test "${with_undefined_behavior_sanitizer+set}" = set; then : +if test ${with_undefined_behavior_sanitizer+y} +then : withval=$with_undefined_behavior_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } BASECFLAGS="-fsanitize=undefined $BASECFLAGS" LDFLAGS="-fsanitize=undefined $LDFLAGS" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 -$as_echo_n "checking for t_open in -lnsl... " >&6; } -if ${ac_cv_lib_nsl_t_open+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for t_open in -lnsl" >&5 +printf %s "checking for t_open in -lnsl... " >&6; } +if test ${ac_cv_lib_nsl_t_open+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10443,38 +11471,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char t_open (); int -main () +main (void) { return t_open (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_nsl_t_open=yes -else +else $as_nop ac_cv_lib_nsl_t_open=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_t_open" >&5 -$as_echo "$ac_cv_lib_nsl_t_open" >&6; } -if test "x$ac_cv_lib_nsl_t_open" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_t_open" >&5 +printf "%s\n" "$ac_cv_lib_nsl_t_open" >&6; } +if test "x$ac_cv_lib_nsl_t_open" = xyes +then : LIBS="-lnsl $LIBS" fi # SVR4 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if ${ac_cv_lib_socket_socket+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 +printf %s "checking for socket in -lsocket... " >&6; } +if test ${ac_cv_lib_socket_socket+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10483,73 +11511,75 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char socket (); int -main () +main (void) { return socket (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_socket_socket=yes -else +else $as_nop ac_cv_lib_socket_socket=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test "x$ac_cv_lib_socket_socket" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 +printf "%s\n" "$ac_cv_lib_socket_socket" >&6; } +if test "x$ac_cv_lib_socket_socket" = xyes +then : LIBS="-lsocket $LIBS" fi # SVR4 sockets -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libs" >&5 -$as_echo_n "checking for --with-libs... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libs" >&5 +printf %s "checking for --with-libs... " >&6; } # Check whether --with-libs was given. -if test "${with_libs+set}" = set; then : +if test ${with_libs+y} +then : withval=$with_libs; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } LIBS="$withval $LIBS" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi PKG_PROG_PKG_CONFIG # Check for use of the system expat library -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5 -$as_echo_n "checking for --with-system-expat... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5 +printf %s "checking for --with-system-expat... " >&6; } # Check whether --with-system_expat was given. -if test "${with_system_expat+set}" = set; then : +if test ${with_system_expat+y} +then : withval=$with_system_expat; -else +else $as_nop with_system_expat="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_expat" >&5 -$as_echo "$with_system_expat" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_expat" >&5 +printf "%s\n" "$with_system_expat" >&6; } # Check for use of the system libffi library -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 -$as_echo_n "checking for --with-system-ffi... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 +printf %s "checking for --with-system-ffi... " >&6; } # Check whether --with-system_ffi was given. -if test "${with_system_ffi+set}" = set; then : +if test ${with_system_ffi+y} +then : withval=$with_system_ffi; fi @@ -10566,15 +11596,15 @@ then as_fn_error $? "--with-system-ffi accepts no arguments" "$LINENO" 5 ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5 -$as_echo "$with_system_ffi" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5 +printf "%s\n" "$with_system_ffi" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } if test "$with_system_ffi" != "" then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with(out)-system-ffi is ignored on this platform" >&5 -$as_echo "$as_me: WARNING: --with(out)-system-ffi is ignored on this platform" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --with(out)-system-ffi is ignored on this platform" >&5 +printf "%s\n" "$as_me: WARNING: --with(out)-system-ffi is ignored on this platform" >&2;} fi with_system_ffi="yes" fi @@ -10587,28 +11617,30 @@ fi # Check for use of the system libmpdec library -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5 -$as_echo_n "checking for --with-system-libmpdec... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5 +printf %s "checking for --with-system-libmpdec... " >&6; } # Check whether --with-system_libmpdec was given. -if test "${with_system_libmpdec+set}" = set; then : +if test ${with_system_libmpdec+y} +then : withval=$with_system_libmpdec; -else +else $as_nop with_system_libmpdec="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 -$as_echo "$with_system_libmpdec" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 +printf "%s\n" "$with_system_libmpdec" >&6; } # Check whether _decimal should use a coroutine-local or thread-local context -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 -$as_echo_n "checking for --with-decimal-contextvar... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 +printf %s "checking for --with-decimal-contextvar... " >&6; } # Check whether --with-decimal_contextvar was given. -if test "${with_decimal_contextvar+set}" = set; then : +if test ${with_decimal_contextvar+y} +then : withval=$with_decimal_contextvar; -else +else $as_nop with_decimal_contextvar="yes" fi @@ -10616,54 +11648,57 @@ fi if test "$with_decimal_contextvar" != "no" then -$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h +printf "%s\n" "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 -$as_echo "$with_decimal_contextvar" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 +printf "%s\n" "$with_decimal_contextvar" >&6; } # Check for support for loadable sqlite extensions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 -$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 +printf %s "checking for --enable-loadable-sqlite-extensions... " >&6; } # Check whether --enable-loadable-sqlite-extensions was given. -if test "${enable_loadable_sqlite_extensions+set}" = set; then : +if test ${enable_loadable_sqlite_extensions+y} +then : enableval=$enable_loadable_sqlite_extensions; -else +else $as_nop enable_loadable_sqlite_extensions="no" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_loadable_sqlite_extensions" >&5 -$as_echo "$enable_loadable_sqlite_extensions" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_loadable_sqlite_extensions" >&5 +printf "%s\n" "$enable_loadable_sqlite_extensions" >&6; } # Check for --with-tcltk-includes=path and --with-tcltk-libs=path -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-includes" >&5 -$as_echo_n "checking for --with-tcltk-includes... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-includes" >&5 +printf %s "checking for --with-tcltk-includes... " >&6; } # Check whether --with-tcltk-includes was given. -if test "${with_tcltk_includes+set}" = set; then : +if test ${with_tcltk_includes+y} +then : withval=$with_tcltk_includes; -else +else $as_nop with_tcltk_includes="default" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_includes" >&5 -$as_echo "$with_tcltk_includes" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-libs" >&5 -$as_echo_n "checking for --with-tcltk-libs... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_includes" >&5 +printf "%s\n" "$with_tcltk_includes" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-libs" >&5 +printf %s "checking for --with-tcltk-libs... " >&6; } # Check whether --with-tcltk-libs was given. -if test "${with_tcltk_libs+set}" = set; then : +if test ${with_tcltk_libs+y} +then : withval=$with_tcltk_libs; -else +else $as_nop with_tcltk_libs="default" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_libs" >&5 -$as_echo "$with_tcltk_libs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_libs" >&5 +printf "%s\n" "$with_tcltk_libs" >&6; } if test "x$with_tcltk_includes" = xdefault || test "x$with_tcltk_libs" = xdefault then if test "x$with_tcltk_includes" != "x$with_tcltk_libs" @@ -10683,11 +11718,12 @@ else fi # Check for --with-dbmliborder -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 -$as_echo_n "checking for --with-dbmliborder... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 +printf %s "checking for --with-dbmliborder... " >&6; } # Check whether --with-dbmliborder was given. -if test "${with_dbmliborder+set}" = set; then : +if test ${with_dbmliborder+y} +then : withval=$with_dbmliborder; if test x$with_dbmliborder = xyes then @@ -10702,8 +11738,8 @@ else fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 -$as_echo "$with_dbmliborder" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 +printf "%s\n" "$with_dbmliborder" >&6; } # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -10712,7 +11748,7 @@ $as_echo "$with_dbmliborder" >&6; } if test "$ac_cv_pthread_is_default" = yes then # Defining _REENTRANT on system with POSIX threads should not hurt. - $as_echo "#define _REENTRANT 1" >>confdefs.h + printf "%s\n" "#define _REENTRANT 1" >>confdefs.h posix_threads=yes if test "$ac_sys_system" = "SunOS"; then @@ -10747,8 +11783,8 @@ else # According to the POSIX spec, a pthreads implementation must # define _POSIX_THREADS in unistd.h. Some apparently don't # (e.g. gnu pth with pthread emulation) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 -$as_echo_n "checking for _POSIX_THREADS in unistd.h... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _POSIX_THREADS in unistd.h" >&5 +printf %s "checking for _POSIX_THREADS in unistd.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10759,25 +11795,26 @@ yes _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : unistd_defines_pthreads=yes -else +else $as_nop unistd_defines_pthreads=no fi -rm -f conftest* +rm -rf conftest* - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 -$as_echo "$unistd_defines_pthreads" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 +printf "%s\n" "$unistd_defines_pthreads" >&6; } - $as_echo "#define _REENTRANT 1" >>confdefs.h + printf "%s\n" "#define _REENTRANT 1" >>confdefs.h # Just looking for pthread_create in libpthread is not enough: # on HP/UX, pthread.h renames pthread_create to a different symbol name. # So we really have to include pthread.h, and then link. _libs=$LIBS LIBS="$LIBS -lpthread" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -$as_echo_n "checking for pthread_create in -lpthread... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 +printf %s "checking for pthread_create in -lpthread... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10786,7 +11823,7 @@ $as_echo_n "checking for pthread_create in -lpthread... " >&6; } void * start_routine (void *arg) { exit (0); } int -main () +main (void) { pthread_create (NULL, NULL, start_routine, NULL) @@ -10794,27 +11831,30 @@ pthread_create (NULL, NULL, start_routine, NULL) return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } posix_threads=yes -else +else $as_nop LIBS=$_libs ac_fn_c_check_func "$LINENO" "pthread_detach" "ac_cv_func_pthread_detach" -if test "x$ac_cv_func_pthread_detach" = xyes; then : +if test "x$ac_cv_func_pthread_detach" = xyes +then : posix_threads=yes -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 -$as_echo_n "checking for pthread_create in -lpthreads... " >&6; } -if ${ac_cv_lib_pthreads_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthreads" >&5 +printf %s "checking for pthread_create in -lpthreads... " >&6; } +if test ${ac_cv_lib_pthreads_pthread_create+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10823,41 +11863,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char pthread_create (); int -main () +main (void) { return pthread_create (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_pthreads_pthread_create=yes -else +else $as_nop ac_cv_lib_pthreads_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 -$as_echo "$ac_cv_lib_pthreads_pthread_create" >&6; } -if test "x$ac_cv_lib_pthreads_pthread_create" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthreads_pthread_create" >&5 +printf "%s\n" "$ac_cv_lib_pthreads_pthread_create" >&6; } +if test "x$ac_cv_lib_pthreads_pthread_create" = xyes +then : posix_threads=yes LIBS="$LIBS -lpthreads" -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 -$as_echo_n "checking for pthread_create in -lc_r... " >&6; } -if ${ac_cv_lib_c_r_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 +printf %s "checking for pthread_create in -lc_r... " >&6; } +if test ${ac_cv_lib_c_r_pthread_create+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10866,41 +11906,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char pthread_create (); int -main () +main (void) { return pthread_create (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_c_r_pthread_create=yes -else +else $as_nop ac_cv_lib_c_r_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 -$as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } -if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 +printf "%s\n" "$ac_cv_lib_c_r_pthread_create" >&6; } +if test "x$ac_cv_lib_c_r_pthread_create" = xyes +then : posix_threads=yes LIBS="$LIBS -lc_r" -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 -$as_echo_n "checking for __pthread_create_system in -lpthread... " >&6; } -if ${ac_cv_lib_pthread___pthread_create_system+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __pthread_create_system in -lpthread" >&5 +printf %s "checking for __pthread_create_system in -lpthread... " >&6; } +if test ${ac_cv_lib_pthread___pthread_create_system+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10909,41 +11949,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char __pthread_create_system (); int -main () +main (void) { return __pthread_create_system (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_pthread___pthread_create_system=yes -else +else $as_nop ac_cv_lib_pthread___pthread_create_system=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 -$as_echo "$ac_cv_lib_pthread___pthread_create_system" >&6; } -if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread___pthread_create_system" >&5 +printf "%s\n" "$ac_cv_lib_pthread___pthread_create_system" >&6; } +if test "x$ac_cv_lib_pthread___pthread_create_system" = xyes +then : posix_threads=yes LIBS="$LIBS -lpthread" -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 -$as_echo_n "checking for pthread_create in -lcma... " >&6; } -if ${ac_cv_lib_cma_pthread_create+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lcma" >&5 +printf %s "checking for pthread_create in -lcma... " >&6; } +if test ${ac_cv_lib_cma_pthread_create+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lcma $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10952,35 +11992,34 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char pthread_create (); int -main () +main (void) { return pthread_create (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_cma_pthread_create=yes -else +else $as_nop ac_cv_lib_cma_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 -$as_echo "$ac_cv_lib_cma_pthread_create" >&6; } -if test "x$ac_cv_lib_cma_pthread_create" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cma_pthread_create" >&5 +printf "%s\n" "$ac_cv_lib_cma_pthread_create" >&6; } +if test "x$ac_cv_lib_cma_pthread_create" = xyes +then : posix_threads=yes LIBS="$LIBS -lcma" -else +else $as_nop as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 @@ -10996,14 +12035,15 @@ fi fi fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 -$as_echo_n "checking for usconfig in -lmpc... " >&6; } -if ${ac_cv_lib_mpc_usconfig+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usconfig in -lmpc" >&5 +printf %s "checking for usconfig in -lmpc... " >&6; } +if test ${ac_cv_lib_mpc_usconfig+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lmpc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11012,30 +12052,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char usconfig (); int -main () +main (void) { return usconfig (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_mpc_usconfig=yes -else +else $as_nop ac_cv_lib_mpc_usconfig=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 -$as_echo "$ac_cv_lib_mpc_usconfig" >&6; } -if test "x$ac_cv_lib_mpc_usconfig" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpc_usconfig" >&5 +printf "%s\n" "$ac_cv_lib_mpc_usconfig" >&6; } +if test "x$ac_cv_lib_mpc_usconfig" = xyes +then : LIBS="$LIBS -lmpc" @@ -11047,34 +12086,36 @@ fi if test "$posix_threads" = "yes"; then if test "$unistd_defines_pthreads" = "no"; then -$as_echo "#define _POSIX_THREADS 1" >>confdefs.h +printf "%s\n" "#define _POSIX_THREADS 1" >>confdefs.h fi # Bug 662787: Using semaphores causes unexplicable hangs on Solaris 8. case $ac_sys_system/$ac_sys_release in SunOS/5.6) -$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h +printf "%s\n" "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h ;; SunOS/5.8) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h ;; AIX/*) -$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h ;; esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 -$as_echo_n "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } - if ${ac_cv_pthread_system_supported+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if PTHREAD_SCOPE_SYSTEM is supported" >&5 +printf %s "checking if PTHREAD_SCOPE_SYSTEM is supported... " >&6; } + if test ${ac_cv_pthread_system_supported+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_pthread_system_supported=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11092,9 +12133,10 @@ else return (0); } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_pthread_system_supported=yes -else +else $as_nop ac_cv_pthread_system_supported=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -11104,64 +12146,61 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 -$as_echo "$ac_cv_pthread_system_supported" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 +printf "%s\n" "$ac_cv_pthread_system_supported" >&6; } if test "$ac_cv_pthread_system_supported" = "yes"; then -$as_echo "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h +printf "%s\n" "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h fi - for ac_func in pthread_sigmask + + for ac_func in pthread_sigmask do : ac_fn_c_check_func "$LINENO" "pthread_sigmask" "ac_cv_func_pthread_sigmask" -if test "x$ac_cv_func_pthread_sigmask" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_SIGMASK 1 -_ACEOF +if test "x$ac_cv_func_pthread_sigmask" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h case $ac_sys_system in CYGWIN*) -$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h ;; esac fi -done - for ac_func in pthread_getcpuclockid -do : - ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" -if test "x$ac_cv_func_pthread_getcpuclockid" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_PTHREAD_GETCPUCLOCKID 1 -_ACEOF +done + ac_fn_c_check_func "$LINENO" "pthread_getcpuclockid" "ac_cv_func_pthread_getcpuclockid" +if test "x$ac_cv_func_pthread_getcpuclockid" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_GETCPUCLOCKID 1" >>confdefs.h fi -done fi # Check for enable-ipv6 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 -$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 +printf %s "checking if --enable-ipv6 is specified... " >&6; } # Check whether --enable-ipv6 was given. -if test "${enable_ipv6+set}" = set; then : +if test ${enable_ipv6+y} +then : enableval=$enable_ipv6; case "$enableval" in no) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ipv6=no ;; - *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + printf "%s\n" "#define ENABLE_IPV6 1" >>confdefs.h ipv6=yes ;; esac -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11169,38 +12208,39 @@ else #include #include int -main () +main (void) { int domain = AF_INET6; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ipv6=yes -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ipv6=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 -$as_echo_n "checking if RFC2553 API is available... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 +printf %s "checking if RFC2553 API is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main () +main (void) { struct sockaddr_in6 x; x.sin6_scope_id; @@ -11209,24 +12249,25 @@ struct sockaddr_in6 x; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ipv6=yes -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } ipv6=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test "$ipv6" = "yes"; then - $as_echo "#define ENABLE_IPV6 1" >>confdefs.h + printf "%s\n" "#define ENABLE_IPV6 1" >>confdefs.h fi @@ -11238,8 +12279,8 @@ ipv6lib=none ipv6trylibc=no if test "$ipv6" = "yes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 -$as_echo_n "checking ipv6 stack type... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 +printf %s "checking ipv6 stack type... " >&6; } for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; do case $i in @@ -11253,10 +12294,11 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i fi -rm -f conftest* +rm -rf conftest* ;; kame) @@ -11269,13 +12311,14 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i; ipv6lib=inet6 ipv6libdir=/usr/local/v6/lib ipv6trylibc=yes fi -rm -f conftest* +rm -rf conftest* ;; linux-glibc) @@ -11288,11 +12331,12 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i; ipv6trylibc=yes fi -rm -f conftest* +rm -rf conftest* ;; linux-inet6) @@ -11321,12 +12365,13 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i; ipv6lib=inet6; ipv6libdir=/usr/local/v6/lib fi -rm -f conftest* +rm -rf conftest* ;; v6d) @@ -11339,13 +12384,14 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i; ipv6lib=v6; ipv6libdir=/usr/local/v6/lib; BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" fi -rm -f conftest* +rm -rf conftest* ;; zeta) @@ -11358,12 +12404,13 @@ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "yes" >/dev/null 2>&1; then : + $EGREP "yes" >/dev/null 2>&1 +then : ipv6type=$i; ipv6lib=inet6; ipv6libdir=/usr/local/v6/lib fi -rm -f conftest* +rm -rf conftest* ;; esac @@ -11371,8 +12418,8 @@ rm -f conftest* break fi done - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 -$as_echo "$ipv6type" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 +printf "%s\n" "$ipv6type" >&6; } fi if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then @@ -11391,72 +12438,75 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5 -$as_echo_n "checking for CAN_RAW_FD_FRAMES... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5 +printf %s "checking for CAN_RAW_FD_FRAMES... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* CAN_RAW_FD_FRAMES available check */ #include int -main () +main (void) { int can_raw_fd_frames = CAN_RAW_FD_FRAMES; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h +printf "%s\n" "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 -$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 +printf %s "checking for CAN_RAW_JOIN_FILTERS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { int can_raw_join_filters = CAN_RAW_JOIN_FILTERS; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h +printf "%s\n" "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Check for --with-doc-strings -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 -$as_echo_n "checking for --with-doc-strings... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 +printf %s "checking for --with-doc-strings... " >&6; } # Check whether --with-doc-strings was given. -if test "${with_doc_strings+set}" = set; then : +if test ${with_doc_strings+y} +then : withval=$with_doc_strings; fi @@ -11467,18 +12517,19 @@ fi if test "$with_doc_strings" != "no" then -$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h +printf "%s\n" "#define WITH_DOC_STRINGS 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 -$as_echo "$with_doc_strings" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 +printf "%s\n" "$with_doc_strings" >&6; } # Check for Python-specific malloc support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 -$as_echo_n "checking for --with-pymalloc... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 +printf %s "checking for --with-pymalloc... " >&6; } # Check whether --with-pymalloc was given. -if test "${with_pymalloc+set}" = set; then : +if test ${with_pymalloc+y} +then : withval=$with_pymalloc; fi @@ -11490,18 +12541,19 @@ fi if test "$with_pymalloc" != "no" then -$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h +printf "%s\n" "#define WITH_PYMALLOC 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 -$as_echo "$with_pymalloc" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 +printf "%s\n" "$with_pymalloc" >&6; } # Check for --with-c-locale-coercion -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 -$as_echo_n "checking for --with-c-locale-coercion... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 +printf %s "checking for --with-c-locale-coercion... " >&6; } # Check whether --with-c-locale-coercion was given. -if test "${with_c_locale_coercion+set}" = set; then : +if test ${with_c_locale_coercion+y} +then : withval=$with_c_locale_coercion; fi @@ -11513,53 +12565,55 @@ fi if test "$with_c_locale_coercion" != "no" then -$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h +printf "%s\n" "#define PY_COERCE_C_LOCALE 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 -$as_echo "$with_c_locale_coercion" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 +printf "%s\n" "$with_c_locale_coercion" >&6; } # Check for Valgrind support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 -$as_echo_n "checking for --with-valgrind... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 +printf %s "checking for --with-valgrind... " >&6; } # Check whether --with-valgrind was given. -if test "${with_valgrind+set}" = set; then : +if test ${with_valgrind+y} +then : withval=$with_valgrind; -else +else $as_nop with_valgrind=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 -$as_echo "$with_valgrind" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 +printf "%s\n" "$with_valgrind" >&6; } if test "$with_valgrind" != no; then - ac_fn_c_check_header_mongrel "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" -if test "x$ac_cv_header_valgrind_valgrind_h" = xyes; then : + ac_fn_c_check_header_compile "$LINENO" "valgrind/valgrind.h" "ac_cv_header_valgrind_valgrind_h" "$ac_includes_default" +if test "x$ac_cv_header_valgrind_valgrind_h" = xyes +then : -$as_echo "#define WITH_VALGRIND 1" >>confdefs.h +printf "%s\n" "#define WITH_VALGRIND 1" >>confdefs.h -else +else $as_nop as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 fi - OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" fi # Check for DTrace support -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 -$as_echo_n "checking for --with-dtrace... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 +printf %s "checking for --with-dtrace... " >&6; } # Check whether --with-dtrace was given. -if test "${with_dtrace+set}" = set; then : +if test ${with_dtrace+y} +then : withval=$with_dtrace; -else +else $as_nop with_dtrace=no fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 -$as_echo "$with_dtrace" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 +printf "%s\n" "$with_dtrace" >&6; } @@ -11573,11 +12627,12 @@ if test "$with_dtrace" = "yes" then # Extract the first word of "dtrace", so it can be a program name with args. set dummy dtrace; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_path_DTRACE+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_DTRACE+y} +then : + printf %s "(cached) " >&6 +else $as_nop case $DTRACE in [\\/]* | ?:[\\/]*) ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. @@ -11587,11 +12642,15 @@ else for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_DTRACE="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -11604,11 +12663,11 @@ esac fi DTRACE=$ac_cv_path_DTRACE if test -n "$DTRACE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 -$as_echo "$DTRACE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 +printf "%s\n" "$DTRACE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -11616,7 +12675,7 @@ fi as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 fi -$as_echo "#define WITH_DTRACE 1" >>confdefs.h +printf "%s\n" "#define WITH_DTRACE 1" >>confdefs.h DTRACE_HEADERS="Include/pydtrace_probes.h" @@ -11624,19 +12683,20 @@ $as_echo "#define WITH_DTRACE 1" >>confdefs.h # linked into the binary. Correspondingly, dtrace(1) is missing the ELF # generation flag '-G'. We check for presence of this flag, rather than # hardcoding support by OS, in the interest of robustness. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 -$as_echo_n "checking whether DTrace probes require linking... " >&6; } -if ${ac_cv_dtrace_link+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether DTrace probes require linking" >&5 +printf %s "checking whether DTrace probes require linking... " >&6; } +if test ${ac_cv_dtrace_link+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_dtrace_link=no echo 'BEGIN{}' > conftest.d "$DTRACE" $DFLAGS -G -s conftest.d -o conftest.o > /dev/null 2>&1 && \ ac_cv_dtrace_link=yes fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 -$as_echo "$ac_cv_dtrace_link" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 +printf "%s\n" "$ac_cv_dtrace_link" >&6; } if test "$ac_cv_dtrace_link" = "yes"; then DTRACE_OBJS="Python/pydtrace.o" fi @@ -11648,23 +12708,19 @@ DLINCLDIR=. # the dlopen() function means we might want to use dynload_shlib.o. some # platforms have dlopen(), but don't want to use it. -for ac_func in dlopen -do : - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" -if test "x$ac_cv_func_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_DLOPEN 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes +then : + printf "%s\n" "#define HAVE_DLOPEN 1" >>confdefs.h fi -done # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic # loading of modules. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 -$as_echo_n "checking DYNLOADFILE... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 +printf %s "checking DYNLOADFILE... " >&6; } if test -z "$DYNLOADFILE" then case $ac_sys_system/$ac_sys_release in @@ -11679,20 +12735,20 @@ then ;; esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 -$as_echo "$DYNLOADFILE" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 +printf "%s\n" "$DYNLOADFILE" >&6; } if test "$DYNLOADFILE" != "dynload_stub.o" then -$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h +printf "%s\n" "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h fi # MACHDEP_OBJS can be set to platform-specific object files needed by Python -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 -$as_echo_n "checking MACHDEP_OBJS... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 +printf %s "checking MACHDEP_OBJS... " >&6; } if test -z "$MACHDEP_OBJS" then MACHDEP_OBJS=$extra_machdep_objs @@ -11700,282 +12756,1315 @@ else MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" fi if test -z "$MACHDEP_OBJS"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 -$as_echo "$MACHDEP_OBJS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 +printf "%s\n" "$MACHDEP_OBJS" >&6; } fi # checks for library functions -for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ - clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ - explicit_memset faccessat fchmod fchmodat fchown fchownat \ - fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ - futimens futimes gai_strerror getentropy \ - getgrgid_r getgrnam_r \ - getgrouplist getgroups getlogin getloadavg getpeername getpgid getpid \ - getpriority getresuid getresgid getpwent getpwnam_r getpwuid_r getspnam getspent getsid getwd \ - if_nameindex \ - initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ - memrchr mbrtowc mkdirat mkfifo \ - madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ - posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ - pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ - readlink readlinkat readv realpath renameat \ - sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \ - setgid sethostname \ - setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \ - sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \ - sched_rr_get_interval \ - sigaction sigaltstack sigfillset siginterrupt sigpending sigrelse \ - sigtimedwait sigwait sigwaitinfo snprintf splice strftime strlcpy strsignal symlinkat sync \ - sysconf tcgetpgrp tcsetpgrp tempnam timegm times tmpfile tmpnam tmpnam_r \ - truncate uname unlinkat utimensat utimes vfork waitid waitpid wait3 wait4 \ - wcscoll wcsftime wcsxfrm wmemcmp writev _getpty rtpSpawn -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "alarm" "ac_cv_func_alarm" +if test "x$ac_cv_func_alarm" = xyes +then : + printf "%s\n" "#define HAVE_ALARM 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "accept4" "ac_cv_func_accept4" +if test "x$ac_cv_func_accept4" = xyes +then : + printf "%s\n" "#define HAVE_ACCEPT4 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "setitimer" "ac_cv_func_setitimer" +if test "x$ac_cv_func_setitimer" = xyes +then : + printf "%s\n" "#define HAVE_SETITIMER 1" >>confdefs.h -# Force lchmod off for Linux. Linux disallows changing the mode of symbolic -# links. Some libc implementations have a stub lchmod implementation that always -# returns an error. -if test "$MACHDEP" != linux; then - for ac_func in lchmod -do : - ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" -if test "x$ac_cv_func_lchmod" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LCHMOD 1 -_ACEOF +fi +ac_fn_c_check_func "$LINENO" "getitimer" "ac_cv_func_getitimer" +if test "x$ac_cv_func_getitimer" = xyes +then : + printf "%s\n" "#define HAVE_GETITIMER 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "bind_textdomain_codeset" "ac_cv_func_bind_textdomain_codeset" +if test "x$ac_cv_func_bind_textdomain_codeset" = xyes +then : + printf "%s\n" "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h fi +ac_fn_c_check_func "$LINENO" "chown" "ac_cv_func_chown" +if test "x$ac_cv_func_chown" = xyes +then : + printf "%s\n" "#define HAVE_CHOWN 1" >>confdefs.h -ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include - #include -" -if test "x$ac_cv_have_decl_dirfd" = xyes; then : +fi +ac_fn_c_check_func "$LINENO" "clock" "ac_cv_func_clock" +if test "x$ac_cv_func_clock" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK 1" >>confdefs.h -$as_echo "#define HAVE_DIRFD 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "confstr" "ac_cv_func_confstr" +if test "x$ac_cv_func_confstr" = xyes +then : + printf "%s\n" "#define HAVE_CONFSTR 1" >>confdefs.h fi +ac_fn_c_check_func "$LINENO" "close_range" "ac_cv_func_close_range" +if test "x$ac_cv_func_close_range" = xyes +then : + printf "%s\n" "#define HAVE_CLOSE_RANGE 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "copy_file_range" "ac_cv_func_copy_file_range" +if test "x$ac_cv_func_copy_file_range" = xyes +then : + printf "%s\n" "#define HAVE_COPY_FILE_RANGE 1" >>confdefs.h -# For some functions, having a definition is not sufficient, since -# we want to take their address. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 -$as_echo_n "checking for chroot... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *x=chroot - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +fi +ac_fn_c_check_func "$LINENO" "ctermid" "ac_cv_func_ctermid" +if test "x$ac_cv_func_ctermid" = xyes +then : + printf "%s\n" "#define HAVE_CTERMID 1" >>confdefs.h -$as_echo "#define HAVE_CHROOT 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +if test "x$ac_cv_func_dup3" = xyes +then : + printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi +ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +if test "x$ac_cv_func_execv" = xyes +then : + printf "%s\n" "#define HAVE_EXECV 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for link" >&5 -$as_echo_n "checking for link... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *x=link - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero" +if test "x$ac_cv_func_explicit_bzero" = xyes +then : + printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h -$as_echo "#define HAVE_LINK 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "explicit_memset" "ac_cv_func_explicit_memset" +if test "x$ac_cv_func_explicit_memset" = xyes +then : + printf "%s\n" "#define HAVE_EXPLICIT_MEMSET 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi +ac_fn_c_check_func "$LINENO" "faccessat" "ac_cv_func_faccessat" +if test "x$ac_cv_func_faccessat" = xyes +then : + printf "%s\n" "#define HAVE_FACCESSAT 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 -$as_echo_n "checking for symlink... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *x=symlink - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +ac_fn_c_check_func "$LINENO" "fchmod" "ac_cv_func_fchmod" +if test "x$ac_cv_func_fchmod" = xyes +then : + printf "%s\n" "#define HAVE_FCHMOD 1" >>confdefs.h -$as_echo "#define HAVE_SYMLINK 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "fchmodat" "ac_cv_func_fchmodat" +if test "x$ac_cv_func_fchmodat" = xyes +then : + printf "%s\n" "#define HAVE_FCHMODAT 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +fi +ac_fn_c_check_func "$LINENO" "fchown" "ac_cv_func_fchown" +if test "x$ac_cv_func_fchown" = xyes +then : + printf "%s\n" "#define HAVE_FCHOWN 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 -$as_echo_n "checking for fchdir... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -void *x=fchdir - ; +ac_fn_c_check_func "$LINENO" "fchownat" "ac_cv_func_fchownat" +if test "x$ac_cv_func_fchownat" = xyes +then : + printf "%s\n" "#define HAVE_FCHOWNAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fdwalk" "ac_cv_func_fdwalk" +if test "x$ac_cv_func_fdwalk" = xyes +then : + printf "%s\n" "#define HAVE_FDWALK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fexecve" "ac_cv_func_fexecve" +if test "x$ac_cv_func_fexecve" = xyes +then : + printf "%s\n" "#define HAVE_FEXECVE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fdopendir" "ac_cv_func_fdopendir" +if test "x$ac_cv_func_fdopendir" = xyes +then : + printf "%s\n" "#define HAVE_FDOPENDIR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fork" "ac_cv_func_fork" +if test "x$ac_cv_func_fork" = xyes +then : + printf "%s\n" "#define HAVE_FORK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fpathconf" "ac_cv_func_fpathconf" +if test "x$ac_cv_func_fpathconf" = xyes +then : + printf "%s\n" "#define HAVE_FPATHCONF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fstatat" "ac_cv_func_fstatat" +if test "x$ac_cv_func_fstatat" = xyes +then : + printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "ftime" "ac_cv_func_ftime" +if test "x$ac_cv_func_ftime" = xyes +then : + printf "%s\n" "#define HAVE_FTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "ftruncate" "ac_cv_func_ftruncate" +if test "x$ac_cv_func_ftruncate" = xyes +then : + printf "%s\n" "#define HAVE_FTRUNCATE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "futimesat" "ac_cv_func_futimesat" +if test "x$ac_cv_func_futimesat" = xyes +then : + printf "%s\n" "#define HAVE_FUTIMESAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "futimens" "ac_cv_func_futimens" +if test "x$ac_cv_func_futimens" = xyes +then : + printf "%s\n" "#define HAVE_FUTIMENS 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "futimes" "ac_cv_func_futimes" +if test "x$ac_cv_func_futimes" = xyes +then : + printf "%s\n" "#define HAVE_FUTIMES 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "gai_strerror" "ac_cv_func_gai_strerror" +if test "x$ac_cv_func_gai_strerror" = xyes +then : + printf "%s\n" "#define HAVE_GAI_STRERROR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" +if test "x$ac_cv_func_getentropy" = xyes +then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getgrgid_r" "ac_cv_func_getgrgid_r" +if test "x$ac_cv_func_getgrgid_r" = xyes +then : + printf "%s\n" "#define HAVE_GETGRGID_R 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getgrnam_r" "ac_cv_func_getgrnam_r" +if test "x$ac_cv_func_getgrnam_r" = xyes +then : + printf "%s\n" "#define HAVE_GETGRNAM_R 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getgrouplist" "ac_cv_func_getgrouplist" +if test "x$ac_cv_func_getgrouplist" = xyes +then : + printf "%s\n" "#define HAVE_GETGROUPLIST 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getgroups" "ac_cv_func_getgroups" +if test "x$ac_cv_func_getgroups" = xyes +then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getlogin" "ac_cv_func_getlogin" +if test "x$ac_cv_func_getlogin" = xyes +then : + printf "%s\n" "#define HAVE_GETLOGIN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg" +if test "x$ac_cv_func_getloadavg" = xyes +then : + printf "%s\n" "#define HAVE_GETLOADAVG 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpeername" "ac_cv_func_getpeername" +if test "x$ac_cv_func_getpeername" = xyes +then : + printf "%s\n" "#define HAVE_GETPEERNAME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpgid" "ac_cv_func_getpgid" +if test "x$ac_cv_func_getpgid" = xyes +then : + printf "%s\n" "#define HAVE_GETPGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpid" "ac_cv_func_getpid" +if test "x$ac_cv_func_getpid" = xyes +then : + printf "%s\n" "#define HAVE_GETPID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpriority" "ac_cv_func_getpriority" +if test "x$ac_cv_func_getpriority" = xyes +then : + printf "%s\n" "#define HAVE_GETPRIORITY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getresuid" "ac_cv_func_getresuid" +if test "x$ac_cv_func_getresuid" = xyes +then : + printf "%s\n" "#define HAVE_GETRESUID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getresgid" "ac_cv_func_getresgid" +if test "x$ac_cv_func_getresgid" = xyes +then : + printf "%s\n" "#define HAVE_GETRESGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpwent" "ac_cv_func_getpwent" +if test "x$ac_cv_func_getpwent" = xyes +then : + printf "%s\n" "#define HAVE_GETPWENT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpwnam_r" "ac_cv_func_getpwnam_r" +if test "x$ac_cv_func_getpwnam_r" = xyes +then : + printf "%s\n" "#define HAVE_GETPWNAM_R 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getpwuid_r" "ac_cv_func_getpwuid_r" +if test "x$ac_cv_func_getpwuid_r" = xyes +then : + printf "%s\n" "#define HAVE_GETPWUID_R 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getspnam" "ac_cv_func_getspnam" +if test "x$ac_cv_func_getspnam" = xyes +then : + printf "%s\n" "#define HAVE_GETSPNAM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getspent" "ac_cv_func_getspent" +if test "x$ac_cv_func_getspent" = xyes +then : + printf "%s\n" "#define HAVE_GETSPENT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getsid" "ac_cv_func_getsid" +if test "x$ac_cv_func_getsid" = xyes +then : + printf "%s\n" "#define HAVE_GETSID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd" +if test "x$ac_cv_func_getwd" = xyes +then : + printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "if_nameindex" "ac_cv_func_if_nameindex" +if test "x$ac_cv_func_if_nameindex" = xyes +then : + printf "%s\n" "#define HAVE_IF_NAMEINDEX 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups" +if test "x$ac_cv_func_initgroups" = xyes +then : + printf "%s\n" "#define HAVE_INITGROUPS 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "kill" "ac_cv_func_kill" +if test "x$ac_cv_func_kill" = xyes +then : + printf "%s\n" "#define HAVE_KILL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "killpg" "ac_cv_func_killpg" +if test "x$ac_cv_func_killpg" = xyes +then : + printf "%s\n" "#define HAVE_KILLPG 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown" +if test "x$ac_cv_func_lchown" = xyes +then : + printf "%s\n" "#define HAVE_LCHOWN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lockf" "ac_cv_func_lockf" +if test "x$ac_cv_func_lockf" = xyes +then : + printf "%s\n" "#define HAVE_LOCKF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "linkat" "ac_cv_func_linkat" +if test "x$ac_cv_func_linkat" = xyes +then : + printf "%s\n" "#define HAVE_LINKAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat" +if test "x$ac_cv_func_lstat" = xyes +then : + printf "%s\n" "#define HAVE_LSTAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lutimes" "ac_cv_func_lutimes" +if test "x$ac_cv_func_lutimes" = xyes +then : + printf "%s\n" "#define HAVE_LUTIMES 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap" +if test "x$ac_cv_func_mmap" = xyes +then : + printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr" +if test "x$ac_cv_func_memrchr" = xyes +then : + printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mbrtowc" "ac_cv_func_mbrtowc" +if test "x$ac_cv_func_mbrtowc" = xyes +then : + printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mkdirat" "ac_cv_func_mkdirat" +if test "x$ac_cv_func_mkdirat" = xyes +then : + printf "%s\n" "#define HAVE_MKDIRAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo" +if test "x$ac_cv_func_mkfifo" = xyes +then : + printf "%s\n" "#define HAVE_MKFIFO 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "madvise" "ac_cv_func_madvise" +if test "x$ac_cv_func_madvise" = xyes +then : + printf "%s\n" "#define HAVE_MADVISE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mkfifoat" "ac_cv_func_mkfifoat" +if test "x$ac_cv_func_mkfifoat" = xyes +then : + printf "%s\n" "#define HAVE_MKFIFOAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mknod" "ac_cv_func_mknod" +if test "x$ac_cv_func_mknod" = xyes +then : + printf "%s\n" "#define HAVE_MKNOD 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mknodat" "ac_cv_func_mknodat" +if test "x$ac_cv_func_mknodat" = xyes +then : + printf "%s\n" "#define HAVE_MKNODAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mktime" "ac_cv_func_mktime" +if test "x$ac_cv_func_mktime" = xyes +then : + printf "%s\n" "#define HAVE_MKTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "mremap" "ac_cv_func_mremap" +if test "x$ac_cv_func_mremap" = xyes +then : + printf "%s\n" "#define HAVE_MREMAP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "nice" "ac_cv_func_nice" +if test "x$ac_cv_func_nice" = xyes +then : + printf "%s\n" "#define HAVE_NICE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "openat" "ac_cv_func_openat" +if test "x$ac_cv_func_openat" = xyes +then : + printf "%s\n" "#define HAVE_OPENAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pathconf" "ac_cv_func_pathconf" +if test "x$ac_cv_func_pathconf" = xyes +then : + printf "%s\n" "#define HAVE_PATHCONF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pause" "ac_cv_func_pause" +if test "x$ac_cv_func_pause" = xyes +then : + printf "%s\n" "#define HAVE_PAUSE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +if test "x$ac_cv_func_pipe2" = xyes +then : + printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" +if test "x$ac_cv_func_plock" = xyes +then : + printf "%s\n" "#define HAVE_PLOCK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" +if test "x$ac_cv_func_poll" = xyes +then : + printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "posix_fallocate" "ac_cv_func_posix_fallocate" +if test "x$ac_cv_func_posix_fallocate" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_FALLOCATE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise" +if test "x$ac_cv_func_posix_fadvise" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_FADVISE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" +if test "x$ac_cv_func_posix_spawn" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_SPAWN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "posix_spawnp" "ac_cv_func_posix_spawnp" +if test "x$ac_cv_func_posix_spawnp" = xyes +then : + printf "%s\n" "#define HAVE_POSIX_SPAWNP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pread" "ac_cv_func_pread" +if test "x$ac_cv_func_pread" = xyes +then : + printf "%s\n" "#define HAVE_PREAD 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "preadv" "ac_cv_func_preadv" +if test "x$ac_cv_func_preadv" = xyes +then : + printf "%s\n" "#define HAVE_PREADV 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "preadv2" "ac_cv_func_preadv2" +if test "x$ac_cv_func_preadv2" = xyes +then : + printf "%s\n" "#define HAVE_PREADV2 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pthread_condattr_setclock" "ac_cv_func_pthread_condattr_setclock" +if test "x$ac_cv_func_pthread_condattr_setclock" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pthread_init" "ac_cv_func_pthread_init" +if test "x$ac_cv_func_pthread_init" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_INIT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pthread_kill" "ac_cv_func_pthread_kill" +if test "x$ac_cv_func_pthread_kill" = xyes +then : + printf "%s\n" "#define HAVE_PTHREAD_KILL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pwrite" "ac_cv_func_pwrite" +if test "x$ac_cv_func_pwrite" = xyes +then : + printf "%s\n" "#define HAVE_PWRITE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pwritev" "ac_cv_func_pwritev" +if test "x$ac_cv_func_pwritev" = xyes +then : + printf "%s\n" "#define HAVE_PWRITEV 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "pwritev2" "ac_cv_func_pwritev2" +if test "x$ac_cv_func_pwritev2" = xyes +then : + printf "%s\n" "#define HAVE_PWRITEV2 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "readlink" "ac_cv_func_readlink" +if test "x$ac_cv_func_readlink" = xyes +then : + printf "%s\n" "#define HAVE_READLINK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "readlinkat" "ac_cv_func_readlinkat" +if test "x$ac_cv_func_readlinkat" = xyes +then : + printf "%s\n" "#define HAVE_READLINKAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "readv" "ac_cv_func_readv" +if test "x$ac_cv_func_readv" = xyes +then : + printf "%s\n" "#define HAVE_READV 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "realpath" "ac_cv_func_realpath" +if test "x$ac_cv_func_realpath" = xyes +then : + printf "%s\n" "#define HAVE_REALPATH 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "renameat" "ac_cv_func_renameat" +if test "x$ac_cv_func_renameat" = xyes +then : + printf "%s\n" "#define HAVE_RENAMEAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sem_open" "ac_cv_func_sem_open" +if test "x$ac_cv_func_sem_open" = xyes +then : + printf "%s\n" "#define HAVE_SEM_OPEN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sem_timedwait" "ac_cv_func_sem_timedwait" +if test "x$ac_cv_func_sem_timedwait" = xyes +then : + printf "%s\n" "#define HAVE_SEM_TIMEDWAIT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sem_getvalue" "ac_cv_func_sem_getvalue" +if test "x$ac_cv_func_sem_getvalue" = xyes +then : + printf "%s\n" "#define HAVE_SEM_GETVALUE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sem_unlink" "ac_cv_func_sem_unlink" +if test "x$ac_cv_func_sem_unlink" = xyes +then : + printf "%s\n" "#define HAVE_SEM_UNLINK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sendfile" "ac_cv_func_sendfile" +if test "x$ac_cv_func_sendfile" = xyes +then : + printf "%s\n" "#define HAVE_SENDFILE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setegid" "ac_cv_func_setegid" +if test "x$ac_cv_func_setegid" = xyes +then : + printf "%s\n" "#define HAVE_SETEGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "seteuid" "ac_cv_func_seteuid" +if test "x$ac_cv_func_seteuid" = xyes +then : + printf "%s\n" "#define HAVE_SETEUID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setgid" "ac_cv_func_setgid" +if test "x$ac_cv_func_setgid" = xyes +then : + printf "%s\n" "#define HAVE_SETGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sethostname" "ac_cv_func_sethostname" +if test "x$ac_cv_func_sethostname" = xyes +then : + printf "%s\n" "#define HAVE_SETHOSTNAME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" +if test "x$ac_cv_func_setlocale" = xyes +then : + printf "%s\n" "#define HAVE_SETLOCALE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setregid" "ac_cv_func_setregid" +if test "x$ac_cv_func_setregid" = xyes +then : + printf "%s\n" "#define HAVE_SETREGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid" +if test "x$ac_cv_func_setreuid" = xyes +then : + printf "%s\n" "#define HAVE_SETREUID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid" +if test "x$ac_cv_func_setresuid" = xyes +then : + printf "%s\n" "#define HAVE_SETRESUID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setresgid" "ac_cv_func_setresgid" +if test "x$ac_cv_func_setresgid" = xyes +then : + printf "%s\n" "#define HAVE_SETRESGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid" +if test "x$ac_cv_func_setsid" = xyes +then : + printf "%s\n" "#define HAVE_SETSID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid" +if test "x$ac_cv_func_setpgid" = xyes +then : + printf "%s\n" "#define HAVE_SETPGID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" +if test "x$ac_cv_func_setpgrp" = xyes +then : + printf "%s\n" "#define HAVE_SETPGRP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setpriority" "ac_cv_func_setpriority" +if test "x$ac_cv_func_setpriority" = xyes +then : + printf "%s\n" "#define HAVE_SETPRIORITY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setuid" "ac_cv_func_setuid" +if test "x$ac_cv_func_setuid" = xyes +then : + printf "%s\n" "#define HAVE_SETUID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "setvbuf" "ac_cv_func_setvbuf" +if test "x$ac_cv_func_setvbuf" = xyes +then : + printf "%s\n" "#define HAVE_SETVBUF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sched_get_priority_max" "ac_cv_func_sched_get_priority_max" +if test "x$ac_cv_func_sched_get_priority_max" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_GET_PRIORITY_MAX 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sched_setaffinity" "ac_cv_func_sched_setaffinity" +if test "x$ac_cv_func_sched_setaffinity" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_SETAFFINITY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sched_setscheduler" "ac_cv_func_sched_setscheduler" +if test "x$ac_cv_func_sched_setscheduler" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_SETSCHEDULER 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sched_setparam" "ac_cv_func_sched_setparam" +if test "x$ac_cv_func_sched_setparam" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_SETPARAM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sched_rr_get_interval" "ac_cv_func_sched_rr_get_interval" +if test "x$ac_cv_func_sched_rr_get_interval" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_RR_GET_INTERVAL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction" +if test "x$ac_cv_func_sigaction" = xyes +then : + printf "%s\n" "#define HAVE_SIGACTION 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigaltstack" "ac_cv_func_sigaltstack" +if test "x$ac_cv_func_sigaltstack" = xyes +then : + printf "%s\n" "#define HAVE_SIGALTSTACK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigfillset" "ac_cv_func_sigfillset" +if test "x$ac_cv_func_sigfillset" = xyes +then : + printf "%s\n" "#define HAVE_SIGFILLSET 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "siginterrupt" "ac_cv_func_siginterrupt" +if test "x$ac_cv_func_siginterrupt" = xyes +then : + printf "%s\n" "#define HAVE_SIGINTERRUPT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigpending" "ac_cv_func_sigpending" +if test "x$ac_cv_func_sigpending" = xyes +then : + printf "%s\n" "#define HAVE_SIGPENDING 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigrelse" "ac_cv_func_sigrelse" +if test "x$ac_cv_func_sigrelse" = xyes +then : + printf "%s\n" "#define HAVE_SIGRELSE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigtimedwait" "ac_cv_func_sigtimedwait" +if test "x$ac_cv_func_sigtimedwait" = xyes +then : + printf "%s\n" "#define HAVE_SIGTIMEDWAIT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait" +if test "x$ac_cv_func_sigwait" = xyes +then : + printf "%s\n" "#define HAVE_SIGWAIT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sigwaitinfo" "ac_cv_func_sigwaitinfo" +if test "x$ac_cv_func_sigwaitinfo" = xyes +then : + printf "%s\n" "#define HAVE_SIGWAITINFO 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" +if test "x$ac_cv_func_snprintf" = xyes +then : + printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "splice" "ac_cv_func_splice" +if test "x$ac_cv_func_splice" = xyes +then : + printf "%s\n" "#define HAVE_SPLICE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime" +if test "x$ac_cv_func_strftime" = xyes +then : + printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy" +if test "x$ac_cv_func_strlcpy" = xyes +then : + printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal" +if test "x$ac_cv_func_strsignal" = xyes +then : + printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "symlinkat" "ac_cv_func_symlinkat" +if test "x$ac_cv_func_symlinkat" = xyes +then : + printf "%s\n" "#define HAVE_SYMLINKAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sync" "ac_cv_func_sync" +if test "x$ac_cv_func_sync" = xyes +then : + printf "%s\n" "#define HAVE_SYNC 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf" +if test "x$ac_cv_func_sysconf" = xyes +then : + printf "%s\n" "#define HAVE_SYSCONF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tcgetpgrp" "ac_cv_func_tcgetpgrp" +if test "x$ac_cv_func_tcgetpgrp" = xyes +then : + printf "%s\n" "#define HAVE_TCGETPGRP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tcsetpgrp" "ac_cv_func_tcsetpgrp" +if test "x$ac_cv_func_tcsetpgrp" = xyes +then : + printf "%s\n" "#define HAVE_TCSETPGRP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tempnam" "ac_cv_func_tempnam" +if test "x$ac_cv_func_tempnam" = xyes +then : + printf "%s\n" "#define HAVE_TEMPNAM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm" +if test "x$ac_cv_func_timegm" = xyes +then : + printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "times" "ac_cv_func_times" +if test "x$ac_cv_func_times" = xyes +then : + printf "%s\n" "#define HAVE_TIMES 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tmpfile" "ac_cv_func_tmpfile" +if test "x$ac_cv_func_tmpfile" = xyes +then : + printf "%s\n" "#define HAVE_TMPFILE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tmpnam" "ac_cv_func_tmpnam" +if test "x$ac_cv_func_tmpnam" = xyes +then : + printf "%s\n" "#define HAVE_TMPNAM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "tmpnam_r" "ac_cv_func_tmpnam_r" +if test "x$ac_cv_func_tmpnam_r" = xyes +then : + printf "%s\n" "#define HAVE_TMPNAM_R 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "truncate" "ac_cv_func_truncate" +if test "x$ac_cv_func_truncate" = xyes +then : + printf "%s\n" "#define HAVE_TRUNCATE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname" +if test "x$ac_cv_func_uname" = xyes +then : + printf "%s\n" "#define HAVE_UNAME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "unlinkat" "ac_cv_func_unlinkat" +if test "x$ac_cv_func_unlinkat" = xyes +then : + printf "%s\n" "#define HAVE_UNLINKAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "utimensat" "ac_cv_func_utimensat" +if test "x$ac_cv_func_utimensat" = xyes +then : + printf "%s\n" "#define HAVE_UTIMENSAT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes" +if test "x$ac_cv_func_utimes" = xyes +then : + printf "%s\n" "#define HAVE_UTIMES 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "vfork" "ac_cv_func_vfork" +if test "x$ac_cv_func_vfork" = xyes +then : + printf "%s\n" "#define HAVE_VFORK 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "waitid" "ac_cv_func_waitid" +if test "x$ac_cv_func_waitid" = xyes +then : + printf "%s\n" "#define HAVE_WAITID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid" +if test "x$ac_cv_func_waitpid" = xyes +then : + printf "%s\n" "#define HAVE_WAITPID 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3" +if test "x$ac_cv_func_wait3" = xyes +then : + printf "%s\n" "#define HAVE_WAIT3 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wait4" "ac_cv_func_wait4" +if test "x$ac_cv_func_wait4" = xyes +then : + printf "%s\n" "#define HAVE_WAIT4 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcscoll" "ac_cv_func_wcscoll" +if test "x$ac_cv_func_wcscoll" = xyes +then : + printf "%s\n" "#define HAVE_WCSCOLL 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcsftime" "ac_cv_func_wcsftime" +if test "x$ac_cv_func_wcsftime" = xyes +then : + printf "%s\n" "#define HAVE_WCSFTIME 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wcsxfrm" "ac_cv_func_wcsxfrm" +if test "x$ac_cv_func_wcsxfrm" = xyes +then : + printf "%s\n" "#define HAVE_WCSXFRM 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "wmemcmp" "ac_cv_func_wmemcmp" +if test "x$ac_cv_func_wmemcmp" = xyes +then : + printf "%s\n" "#define HAVE_WMEMCMP 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "writev" "ac_cv_func_writev" +if test "x$ac_cv_func_writev" = xyes +then : + printf "%s\n" "#define HAVE_WRITEV 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "_getpty" "ac_cv_func__getpty" +if test "x$ac_cv_func__getpty" = xyes +then : + printf "%s\n" "#define HAVE__GETPTY 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "rtpSpawn" "ac_cv_func_rtpSpawn" +if test "x$ac_cv_func_rtpSpawn" = xyes +then : + printf "%s\n" "#define HAVE_RTPSPAWN 1" >>confdefs.h + +fi + + +# Force lchmod off for Linux. Linux disallows changing the mode of symbolic +# links. Some libc implementations have a stub lchmod implementation that always +# returns an error. +if test "$MACHDEP" != linux; then + ac_fn_c_check_func "$LINENO" "lchmod" "ac_cv_func_lchmod" +if test "x$ac_cv_func_lchmod" = xyes +then : + printf "%s\n" "#define HAVE_LCHMOD 1" >>confdefs.h + +fi + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_FCHDIR 1" >>confdefs.h +else $as_nop + # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else $as_nop + ac_cv_c_undeclared_builtin_options=$ac_arg +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See \`config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +ac_fn_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_dirfd" = xyes +then : + +printf "%s\n" "#define HAVE_DIRFD 1" >>confdefs.h + +fi + +# For some functions, having a definition is not sufficient, since +# we want to take their address. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for chroot" >&5 +printf %s "checking for chroot... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +void *x=chroot + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define HAVE_CHROOT 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for link" >&5 +printf %s "checking for link... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +void *x=link + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define HAVE_LINK 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for symlink" >&5 +printf %s "checking for symlink... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +void *x=symlink + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define HAVE_SYMLINK 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 -$as_echo_n "checking for fsync... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fchdir" >&5 +printf %s "checking for fchdir... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) +{ +void *x=fchdir + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +printf "%s\n" "#define HAVE_FCHDIR 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fsync" >&5 +printf %s "checking for fsync... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) { void *x=fsync ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_FSYNC 1" >>confdefs.h +printf "%s\n" "#define HAVE_FSYNC 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 -$as_echo_n "checking for fdatasync... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fdatasync" >&5 +printf %s "checking for fdatasync... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=fdatasync ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h +printf "%s\n" "#define HAVE_FDATASYNC 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll" >&5 -$as_echo_n "checking for epoll... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for epoll" >&5 +printf %s "checking for epoll... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=epoll_create ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_EPOLL 1" >>confdefs.h +printf "%s\n" "#define HAVE_EPOLL 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 -$as_echo_n "checking for epoll_create1... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for epoll_create1" >&5 +printf %s "checking for epoll_create1... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=epoll_create1 ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h +printf "%s\n" "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 -$as_echo_n "checking for kqueue... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5 +printf %s "checking for kqueue... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11983,27 +14072,28 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { int x=kqueue() ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_KQUEUE 1" >>confdefs.h +printf "%s\n" "#define HAVE_KQUEUE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 -$as_echo_n "checking for prlimit... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for prlimit" >&5 +printf %s "checking for prlimit... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12011,53 +14101,55 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { void *x=prlimit ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_PRLIMIT 1" >>confdefs.h +printf "%s\n" "#define HAVE_PRLIMIT 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 -$as_echo_n "checking for _dyld_shared_cache_contains_path... " >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _dyld_shared_cache_contains_path" >&5 +printf %s "checking for _dyld_shared_cache_contains_path... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=_dyld_shared_cache_contains_path ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h +printf "%s\n" "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 -$as_echo_n "checking for memfd_create... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 +printf %s "checking for memfd_create... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12069,28 +14161,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { void *x=memfd_create ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_MEMFD_CREATE 1" >>confdefs.h +printf "%s\n" "#define HAVE_MEMFD_CREATE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 -$as_echo_n "checking for eventfd... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 +printf %s "checking for eventfd... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12099,25 +14192,26 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { int x = eventfd(0, EFD_CLOEXEC) ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_EVENTFD 1" >>confdefs.h +printf "%s\n" "#define HAVE_EVENTFD 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # On some systems (eg. FreeBSD 5), we would find a definition of the # functions ctermid_r, setgroups in the library, but no prototype @@ -12125,44 +14219,46 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # address to avoid compiler warnings and potential miscompilations # because of the missing prototypes. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 -$as_echo_n "checking for ctermid_r... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 +printf %s "checking for ctermid_r... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void* p = ctermid_r ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CTERMID_R 1" >>confdefs.h +printf "%s\n" "#define HAVE_CTERMID_R 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 -$as_echo_n "checking for flock declaration... " >&6; } -if ${ac_cv_flock_decl+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flock declaration" >&5 +printf %s "checking for flock declaration... " >&6; } +if test ${ac_cv_flock_decl+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void* p = flock @@ -12170,32 +14266,34 @@ void* p = flock return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_flock_decl=yes -else +else $as_nop ac_cv_flock_decl=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 -$as_echo "$ac_cv_flock_decl" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 +printf "%s\n" "$ac_cv_flock_decl" >&6; } if test "x${ac_cv_flock_decl}" = xyes; then - for ac_func in flock -do : - ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" -if test "x$ac_cv_func_flock" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FLOCK 1 -_ACEOF -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 -$as_echo_n "checking for flock in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_flock+:} false; then : - $as_echo_n "(cached) " >&6 -else + for ac_func in flock +do : + ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock" +if test "x$ac_cv_func_flock" = xyes +then : + printf "%s\n" "#define HAVE_FLOCK 1" >>confdefs.h + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for flock in -lbsd" >&5 +printf %s "checking for flock in -lbsd... " >&6; } +if test ${ac_cv_lib_bsd_flock+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12204,109 +14302,111 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char flock (); int -main () +main (void) { return flock (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_bsd_flock=yes -else +else $as_nop ac_cv_lib_bsd_flock=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 -$as_echo "$ac_cv_lib_bsd_flock" >&6; } -if test "x$ac_cv_lib_bsd_flock" = xyes; then : - $as_echo "#define HAVE_FLOCK 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_flock" >&5 +printf "%s\n" "$ac_cv_lib_bsd_flock" >&6; } +if test "x$ac_cv_lib_bsd_flock" = xyes +then : + printf "%s\n" "#define HAVE_FLOCK 1" >>confdefs.h -$as_echo "#define FLOCK_NEEDS_LIBBSD 1" >>confdefs.h +printf "%s\n" "#define FLOCK_NEEDS_LIBBSD 1" >>confdefs.h fi fi -done +done fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 -$as_echo_n "checking for getpagesize... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +printf %s "checking for getpagesize... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void* p = getpagesize ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_GETPAGESIZE 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 -$as_echo_n "checking for broken unsetenv... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 +printf %s "checking for broken unsetenv... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { int res = unsetenv("DUMMY") ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -else +if ac_fn_c_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +else $as_nop -$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext for ac_prog in true do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_TRUE+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_TRUE+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$TRUE"; then ac_cv_prog_TRUE="$TRUE" # Let the user override the test. else @@ -12314,11 +14414,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_TRUE="$ac_prog" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -12329,11 +14433,11 @@ fi fi TRUE=$ac_cv_prog_TRUE if test -n "$TRUE"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 -$as_echo "$TRUE" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 +printf "%s\n" "$TRUE" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -12342,11 +14446,12 @@ done test -n "$TRUE" || TRUE="/bin/true" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 -$as_echo_n "checking for inet_aton in -lc... " >&6; } -if ${ac_cv_lib_c_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lc" >&5 +printf %s "checking for inet_aton in -lc... " >&6; } +if test ${ac_cv_lib_c_inet_aton+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12355,37 +14460,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char inet_aton (); int -main () +main (void) { return inet_aton (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_c_inet_aton=yes -else +else $as_nop ac_cv_lib_c_inet_aton=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 -$as_echo "$ac_cv_lib_c_inet_aton" >&6; } -if test "x$ac_cv_lib_c_inet_aton" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_inet_aton" >&5 +printf "%s\n" "$ac_cv_lib_c_inet_aton" >&6; } +if test "x$ac_cv_lib_c_inet_aton" = xyes +then : $ac_cv_prog_TRUE -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 -$as_echo_n "checking for inet_aton in -lresolv... " >&6; } -if ${ac_cv_lib_resolv_inet_aton+:} false; then : - $as_echo_n "(cached) " >&6 -else +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_aton in -lresolv" >&5 +printf %s "checking for inet_aton in -lresolv... " >&6; } +if test ${ac_cv_lib_resolv_inet_aton+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12394,33 +14499,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char inet_aton (); int -main () +main (void) { return inet_aton (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_resolv_inet_aton=yes -else +else $as_nop ac_cv_lib_resolv_inet_aton=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 -$as_echo "$ac_cv_lib_resolv_inet_aton" >&6; } -if test "x$ac_cv_lib_resolv_inet_aton" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_inet_aton" >&5 +printf "%s\n" "$ac_cv_lib_resolv_inet_aton" >&6; } +if test "x$ac_cv_lib_resolv_inet_aton" = xyes +then : + printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h LIBS="-lresolv $LIBS" @@ -12432,14 +14534,16 @@ fi # On Tru64, chflags seems to be present, but calling it will # exit Python -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 -$as_echo_n "checking for chflags... " >&6; } -if ${ac_cv_have_chflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for chflags" >&5 +printf %s "checking for chflags... " >&6; } +if test ${ac_cv_have_chflags+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_have_chflags=cross -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12453,9 +14557,10 @@ int main(int argc, char*argv[]) } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_have_chflags=yes -else +else $as_nop ac_cv_have_chflags=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -12464,31 +14569,34 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 -$as_echo "$ac_cv_have_chflags" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 +printf "%s\n" "$ac_cv_have_chflags" >&6; } if test "$ac_cv_have_chflags" = cross ; then ac_fn_c_check_func "$LINENO" "chflags" "ac_cv_func_chflags" -if test "x$ac_cv_func_chflags" = xyes; then : +if test "x$ac_cv_func_chflags" = xyes +then : ac_cv_have_chflags="yes" -else +else $as_nop ac_cv_have_chflags="no" fi fi if test "$ac_cv_have_chflags" = yes ; then -$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h +printf "%s\n" "#define HAVE_CHFLAGS 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 -$as_echo_n "checking for lchflags... " >&6; } -if ${ac_cv_have_lchflags+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lchflags" >&5 +printf %s "checking for lchflags... " >&6; } +if test ${ac_cv_have_lchflags+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_have_lchflags=cross -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12502,9 +14610,10 @@ int main(int argc, char*argv[]) } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_have_lchflags=yes -else +else $as_nop ac_cv_have_lchflags=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -12513,20 +14622,21 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 -$as_echo "$ac_cv_have_lchflags" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 +printf "%s\n" "$ac_cv_have_lchflags" >&6; } if test "$ac_cv_have_lchflags" = cross ; then ac_fn_c_check_func "$LINENO" "lchflags" "ac_cv_func_lchflags" -if test "x$ac_cv_func_lchflags" = xyes; then : +if test "x$ac_cv_func_lchflags" = xyes +then : ac_cv_have_lchflags="yes" -else +else $as_nop ac_cv_have_lchflags="no" fi fi if test "$ac_cv_have_lchflags" = yes ; then -$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h +printf "%s\n" "#define HAVE_LCHFLAGS 1" >>confdefs.h fi @@ -12539,11 +14649,12 @@ Darwin/*) ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 -$as_echo_n "checking for inflateCopy in -lz... " >&6; } -if ${ac_cv_lib_z_inflateCopy+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inflateCopy in -lz" >&5 +printf %s "checking for inflateCopy in -lz... " >&6; } +if test ${ac_cv_lib_z_inflateCopy+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12552,32 +14663,31 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char inflateCopy (); int -main () +main (void) { return inflateCopy (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_z_inflateCopy=yes -else +else $as_nop ac_cv_lib_z_inflateCopy=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 -$as_echo "$ac_cv_lib_z_inflateCopy" >&6; } -if test "x$ac_cv_lib_z_inflateCopy" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflateCopy" >&5 +printf "%s\n" "$ac_cv_lib_z_inflateCopy" >&6; } +if test "x$ac_cv_lib_z_inflateCopy" = xyes +then : -$as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h +printf "%s\n" "#define HAVE_ZLIB_COPY 1" >>confdefs.h fi @@ -12589,37 +14699,38 @@ Darwin/*) ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 -$as_echo_n "checking for hstrerror... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 +printf %s "checking for hstrerror... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void* p = hstrerror; hstrerror(0) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : -$as_echo "#define HAVE_HSTRERROR 1" >>confdefs.h +printf "%s\n" "#define HAVE_HSTRERROR 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -$as_echo_n "checking for inet_aton... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 +printf %s "checking for inet_aton... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12629,29 +14740,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { void* p = inet_aton;inet_aton(0,0) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : -$as_echo "#define HAVE_INET_ATON 1" >>confdefs.h +printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 -$as_echo_n "checking for inet_pton... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 +printf %s "checking for inet_pton... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12661,29 +14773,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { void* p = inet_pton ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_INET_PTON 1" >>confdefs.h +printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # On some systems, setgroups is in unistd.h, on others, in grp.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 -$as_echo_n "checking for setgroups... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 +printf %s "checking for setgroups... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12693,42 +14806,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { void* p = setgroups ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_SETGROUPS 1" >>confdefs.h +printf "%s\n" "#define HAVE_SETGROUPS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # check for openpty and forkpty -for ac_func in openpty + + for ac_func in openpty do : ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty" -if test "x$ac_cv_func_openpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_OPENPTY 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 -$as_echo_n "checking for openpty in -lutil... " >&6; } -if ${ac_cv_lib_util_openpty+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func_openpty" = xyes +then : + printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 +printf %s "checking for openpty in -lutil... " >&6; } +if test ${ac_cv_lib_util_openpty+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12737,38 +14852,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char openpty (); int -main () +main (void) { return openpty (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_util_openpty=yes -else +else $as_nop ac_cv_lib_util_openpty=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 -$as_echo "$ac_cv_lib_util_openpty" >&6; } -if test "x$ac_cv_lib_util_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 +printf "%s\n" "$ac_cv_lib_util_openpty" >&6; } +if test "x$ac_cv_lib_util_openpty" = xyes +then : + printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 -$as_echo_n "checking for openpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_openpty+:} false; then : - $as_echo_n "(cached) " >&6 -else +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openpty in -lbsd" >&5 +printf %s "checking for openpty in -lbsd... " >&6; } +if test ${ac_cv_lib_bsd_openpty+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12777,31 +14892,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char openpty (); int -main () +main (void) { return openpty (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_bsd_openpty=yes -else +else $as_nop ac_cv_lib_bsd_openpty=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 -$as_echo "$ac_cv_lib_bsd_openpty" >&6; } -if test "x$ac_cv_lib_bsd_openpty" = xyes; then : - $as_echo "#define HAVE_OPENPTY 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_openpty" >&5 +printf "%s\n" "$ac_cv_lib_bsd_openpty" >&6; } +if test "x$ac_cv_lib_bsd_openpty" = xyes +then : + printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h LIBS="$LIBS -lbsd" fi @@ -12810,22 +14924,23 @@ fi fi + done -for ac_func in forkpty + for ac_func in forkpty do : ac_fn_c_check_func "$LINENO" "forkpty" "ac_cv_func_forkpty" -if test "x$ac_cv_func_forkpty" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_FORKPTY 1 -_ACEOF - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 -$as_echo_n "checking for forkpty in -lutil... " >&6; } -if ${ac_cv_lib_util_forkpty+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func_forkpty" = xyes +then : + printf "%s\n" "#define HAVE_FORKPTY 1" >>confdefs.h + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lutil" >&5 +printf %s "checking for forkpty in -lutil... " >&6; } +if test ${ac_cv_lib_util_forkpty+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12834,38 +14949,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char forkpty (); int -main () +main (void) { return forkpty (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_util_forkpty=yes -else +else $as_nop ac_cv_lib_util_forkpty=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 -$as_echo "$ac_cv_lib_util_forkpty" >&6; } -if test "x$ac_cv_lib_util_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_forkpty" >&5 +printf "%s\n" "$ac_cv_lib_util_forkpty" >&6; } +if test "x$ac_cv_lib_util_forkpty" = xyes +then : + printf "%s\n" "#define HAVE_FORKPTY 1" >>confdefs.h LIBS="$LIBS -lutil" -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 -$as_echo_n "checking for forkpty in -lbsd... " >&6; } -if ${ac_cv_lib_bsd_forkpty+:} false; then : - $as_echo_n "(cached) " >&6 -else +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for forkpty in -lbsd" >&5 +printf %s "checking for forkpty in -lbsd... " >&6; } +if test ${ac_cv_lib_bsd_forkpty+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12874,31 +14989,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char forkpty (); int -main () +main (void) { return forkpty (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_bsd_forkpty=yes -else +else $as_nop ac_cv_lib_bsd_forkpty=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 -$as_echo "$ac_cv_lib_bsd_forkpty" >&6; } -if test "x$ac_cv_lib_bsd_forkpty" = xyes; then : - $as_echo "#define HAVE_FORKPTY 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_forkpty" >&5 +printf "%s\n" "$ac_cv_lib_bsd_forkpty" >&6; } +if test "x$ac_cv_lib_bsd_forkpty" = xyes +then : + printf "%s\n" "#define HAVE_FORKPTY 1" >>confdefs.h LIBS="$LIBS -lbsd" fi @@ -12907,28 +15021,54 @@ fi fi -done +done # check for long file support functions -for ac_func in fseek64 fseeko fstatvfs ftell64 ftello statvfs -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "fseek64" "ac_cv_func_fseek64" +if test "x$ac_cv_func_fseek64" = xyes +then : + printf "%s\n" "#define HAVE_FSEEK64 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fseeko" "ac_cv_func_fseeko" +if test "x$ac_cv_func_fseeko" = xyes +then : + printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "fstatvfs" "ac_cv_func_fstatvfs" +if test "x$ac_cv_func_fstatvfs" = xyes +then : + printf "%s\n" "#define HAVE_FSTATVFS 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "ftell64" "ac_cv_func_ftell64" +if test "x$ac_cv_func_ftell64" = xyes +then : + printf "%s\n" "#define HAVE_FTELL64 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "ftello" "ac_cv_func_ftello" +if test "x$ac_cv_func_ftello" = xyes +then : + printf "%s\n" "#define HAVE_FTELLO 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs" +if test "x$ac_cv_func_statvfs" = xyes +then : + printf "%s\n" "#define HAVE_STATVFS 1" >>confdefs.h fi -done ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" -if test "x$ac_cv_func_dup2" = xyes; then : - $as_echo "#define HAVE_DUP2 1" >>confdefs.h +if test "x$ac_cv_func_dup2" = xyes +then : + printf "%s\n" "#define HAVE_DUP2 1" >>confdefs.h -else +else $as_nop case " $LIBOBJS " in *" dup2.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS dup2.$ac_objext" @@ -12938,70 +15078,72 @@ esac fi -for ac_func in getpgrp + for ac_func in getpgrp do : ac_fn_c_check_func "$LINENO" "getpgrp" "ac_cv_func_getpgrp" -if test "x$ac_cv_func_getpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPGRP 1 -_ACEOF +if test "x$ac_cv_func_getpgrp" = xyes +then : + printf "%s\n" "#define HAVE_GETPGRP 1" >>confdefs.h cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { getpgrp(0); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h +printf "%s\n" "#define GETPGRP_HAVE_ARG 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi + done -for ac_func in setpgrp + for ac_func in setpgrp do : ac_fn_c_check_func "$LINENO" "setpgrp" "ac_cv_func_setpgrp" -if test "x$ac_cv_func_setpgrp" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SETPGRP 1 -_ACEOF +if test "x$ac_cv_func_setpgrp" = xyes +then : + printf "%s\n" "#define HAVE_SETPGRP 1" >>confdefs.h cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { setpgrp(0,0); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h +printf "%s\n" "#define SETPGRP_HAVE_ARG 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -done +done # We search for both crypt and crypt_r as one or the other may be defined # This gets us our -lcrypt in LIBS when required on the target platform. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 -$as_echo_n "checking for library containing crypt... " >&6; } -if ${ac_cv_search_crypt+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 +printf %s "checking for library containing crypt... " >&6; } +if test ${ac_cv_search_crypt+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13009,55 +15151,58 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char crypt (); int -main () +main (void) { return crypt (); ; return 0; } _ACEOF -for ac_lib in '' crypt; do +for ac_lib in '' crypt +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_crypt=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_crypt+:} false; then : + if test ${ac_cv_search_crypt+y} +then : break fi done -if ${ac_cv_search_crypt+:} false; then : +if test ${ac_cv_search_crypt+y} +then : -else +else $as_nop ac_cv_search_crypt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 -$as_echo "$ac_cv_search_crypt" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 +printf "%s\n" "$ac_cv_search_crypt" >&6; } ac_res=$ac_cv_search_crypt -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 -$as_echo_n "checking for library containing crypt_r... " >&6; } -if ${ac_cv_search_crypt_r+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5 +printf %s "checking for library containing crypt_r... " >&6; } +if test ${ac_cv_search_crypt_r+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13065,53 +15210,56 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char crypt_r (); int -main () +main (void) { return crypt_r (); ; return 0; } _ACEOF -for ac_lib in '' crypt; do +for ac_lib in '' crypt +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_crypt_r=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_crypt_r+:} false; then : + if test ${ac_cv_search_crypt_r+y} +then : break fi done -if ${ac_cv_search_crypt_r+:} false; then : +if test ${ac_cv_search_crypt_r+y} +then : -else +else $as_nop ac_cv_search_crypt_r=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 -$as_echo "$ac_cv_search_crypt_r" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +printf "%s\n" "$ac_cv_search_crypt_r" >&6; } ac_res=$ac_cv_search_crypt_r -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ac_fn_c_check_func "$LINENO" "crypt_r" "ac_cv_func_crypt_r" -if test "x$ac_cv_func_crypt_r" = xyes; then : +if test "x$ac_cv_func_crypt_r" = xyes +then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13119,7 +15267,7 @@ if test "x$ac_cv_func_crypt_r" = xyes; then : #include int -main () +main (void) { struct crypt_data d; @@ -13129,31 +15277,33 @@ char *r = crypt_r("", "", &d); return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h +printf "%s\n" "#define HAVE_CRYPT_R 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -for ac_func in clock_gettime + + for ac_func in clock_gettime do : ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" -if test "x$ac_cv_func_clock_gettime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETTIME 1 -_ACEOF - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 -$as_echo_n "checking for clock_gettime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_gettime+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func_clock_gettime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +printf %s "checking for clock_gettime in -lrt... " >&6; } +if test ${ac_cv_lib_rt_clock_gettime+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13162,60 +15312,60 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char clock_gettime (); int -main () +main (void) { return clock_gettime (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_rt_clock_gettime=yes -else +else $as_nop ac_cv_lib_rt_clock_gettime=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 -$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } -if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +printf "%s\n" "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes +then : LIBS="$LIBS -lrt" - $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h -$as_echo "#define TIMEMODULE_LIB rt" >>confdefs.h +printf "%s\n" "#define TIMEMODULE_LIB rt" >>confdefs.h fi fi + done -for ac_func in clock_getres + for ac_func in clock_getres do : ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres" -if test "x$ac_cv_func_clock_getres" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_GETRES 1 -_ACEOF - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 -$as_echo_n "checking for clock_getres in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_getres+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func_clock_getres" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_getres in -lrt" >&5 +printf %s "checking for clock_getres in -lrt... " >&6; } +if test ${ac_cv_lib_rt_clock_getres+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13224,56 +15374,56 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char clock_getres (); int -main () +main (void) { return clock_getres (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_rt_clock_getres=yes -else +else $as_nop ac_cv_lib_rt_clock_getres=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 -$as_echo "$ac_cv_lib_rt_clock_getres" >&6; } -if test "x$ac_cv_lib_rt_clock_getres" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_getres" >&5 +printf "%s\n" "$ac_cv_lib_rt_clock_getres" >&6; } +if test "x$ac_cv_lib_rt_clock_getres" = xyes +then : - $as_echo "#define HAVE_CLOCK_GETRES 1" >>confdefs.h + printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h fi fi + done -for ac_func in clock_settime + for ac_func in clock_settime do : ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime" -if test "x$ac_cv_func_clock_settime" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_CLOCK_SETTIME 1 -_ACEOF - -else - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 -$as_echo_n "checking for clock_settime in -lrt... " >&6; } -if ${ac_cv_lib_rt_clock_settime+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func_clock_settime" = xyes +then : + printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_settime in -lrt" >&5 +printf %s "checking for clock_settime in -lrt... " >&6; } +if test ${ac_cv_lib_rt_clock_settime+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -13282,43 +15432,42 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char clock_settime (); int -main () +main (void) { return clock_settime (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_rt_clock_settime=yes -else +else $as_nop ac_cv_lib_rt_clock_settime=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 -$as_echo "$ac_cv_lib_rt_clock_settime" >&6; } -if test "x$ac_cv_lib_rt_clock_settime" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_settime" >&5 +printf "%s\n" "$ac_cv_lib_rt_clock_settime" >&6; } +if test "x$ac_cv_lib_rt_clock_settime" = xyes +then : - $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h + printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h fi fi -done +done -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major" >&5 -$as_echo_n "checking for major... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for major" >&5 +printf %s "checking for major... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13331,7 +15480,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main () +main (void) { makedev(major(0),minor(0)); @@ -13340,27 +15489,28 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : -$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h +printf "%s\n" "#define HAVE_DEVICE_MACROS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext # On OSF/1 V5.1, getaddrinfo is available, but a define # for [no]getaddrinfo in netdb.h. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 -$as_echo_n "checking for getaddrinfo... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 +printf %s "checking for getaddrinfo... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13370,37 +15520,40 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { getaddrinfo(NULL, NULL, NULL, NULL); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_getaddrinfo=yes -else +else $as_nop have_getaddrinfo=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getaddrinfo" >&5 -$as_echo "$have_getaddrinfo" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getaddrinfo" >&5 +printf "%s\n" "$have_getaddrinfo" >&6; } if test $have_getaddrinfo = yes then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 -$as_echo_n "checking getaddrinfo bug... " >&6; } - if ${ac_cv_buggy_getaddrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking getaddrinfo bug" >&5 +printf %s "checking getaddrinfo bug... " >&6; } + if test ${ac_cv_buggy_getaddrinfo+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : if test "${enable_ipv6+set}" = set; then ac_cv_buggy_getaddrinfo="no -- configured with --(en|dis)able-ipv6" else ac_cv_buggy_getaddrinfo=yes fi -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13494,9 +15647,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_buggy_getaddrinfo=no -else +else $as_nop ac_cv_buggy_getaddrinfo=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -13507,8 +15661,8 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 -$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 +printf "%s\n" "$ac_cv_buggy_getaddrinfo" >&6; } if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes then @@ -13520,70 +15674,42 @@ then fi else -$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h fi -for ac_func in getnameinfo -do : - ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" -if test "x$ac_cv_func_getnameinfo" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETNAMEINFO 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "getnameinfo" "ac_cv_func_getnameinfo" +if test "x$ac_cv_func_getnameinfo" = xyes +then : + printf "%s\n" "#define HAVE_GETNAMEINFO 1" >>confdefs.h fi -done # checks for structures -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } -if ${ac_cv_header_time+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_time=yes -else - ac_cv_header_time=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 -$as_echo "$ac_cv_header_time" >&6; } -if test $ac_cv_header_time = yes; then -$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h +# Obsolete code to be removed. +if test $ac_cv_header_sys_time_h = yes; then + +printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi +# End of obsolete code. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 -$as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } -if ${ac_cv_struct_tm+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 +printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; } +if test ${ac_cv_struct_tm+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main () +main (void) { struct tm tm; int *p = &tm.tm_sec; @@ -13592,18 +15718,19 @@ struct tm tm; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_struct_tm=time.h -else +else $as_nop ac_cv_struct_tm=sys/time.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -$as_echo "$ac_cv_struct_tm" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +printf "%s\n" "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then -$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h +printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h fi @@ -13611,37 +15738,35 @@ ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_ #include <$ac_cv_struct_tm> " -if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then : +if test "x$ac_cv_member_struct_tm_tm_zone" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h fi if test "$ac_cv_member_struct_tm_tm_zone" = yes; then -$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h +printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h else - ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include -" -if test "x$ac_cv_have_decl_tzname" = xyes; then : + ac_fn_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_tzname" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi +printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_TZNAME $ac_have_decl -_ACEOF - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 -$as_echo_n "checking for tzname... " >&6; } -if ${ac_cv_var_tzname+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5 +printf %s "checking for tzname... " >&6; } +if test ${ac_cv_var_tzname+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -13650,86 +15775,81 @@ extern char *tzname[]; #endif int -main () +main (void) { return tzname[0][0]; ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_var_tzname=yes -else +else $as_nop ac_cv_var_tzname=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -$as_echo "$ac_cv_var_tzname" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 +printf "%s\n" "$ac_cv_var_tzname" >&6; } if test $ac_cv_var_tzname = yes; then -$as_echo "#define HAVE_TZNAME 1" >>confdefs.h +printf "%s\n" "#define HAVE_TZNAME 1" >>confdefs.h fi fi ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_rdev" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_RDEV 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_RDEV 1" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_blksize" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLKSIZE 1" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "struct stat" "st_flags" "ac_cv_member_struct_stat_st_flags" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_flags" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_flags" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_FLAGS 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_FLAGS 1" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "struct stat" "st_gen" "ac_cv_member_struct_stat_st_gen" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_gen" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_gen" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_GEN 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_GEN 1" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtime" "ac_cv_member_struct_stat_st_birthtime" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_birthtime" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1" >>confdefs.h fi ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default" -if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then : +if test "x$ac_cv_member_struct_stat_st_blocks" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLOCKS 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLOCKS 1" >>confdefs.h fi @@ -13739,11 +15859,10 @@ ac_fn_c_check_member "$LINENO" "struct passwd" "pw_gecos" "ac_cv_member_struct_p #include " -if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes; then : +if test "x$ac_cv_member_struct_passwd_pw_gecos" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_GECOS 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_PASSWD_PW_GECOS 1" >>confdefs.h fi @@ -13752,11 +15871,10 @@ ac_fn_c_check_member "$LINENO" "struct passwd" "pw_passwd" "ac_cv_member_struct_ #include " -if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes; then : +if test "x$ac_cv_member_struct_passwd_pw_passwd" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 -_ACEOF +printf "%s\n" "#define HAVE_STRUCT_PASSWD_PW_PASSWD 1" >>confdefs.h fi @@ -13764,53 +15882,54 @@ fi # Issue #21085: In Cygwin, siginfo_t does not have si_band field. ac_fn_c_check_member "$LINENO" "siginfo_t" "si_band" "ac_cv_member_siginfo_t_si_band" "#include " -if test "x$ac_cv_member_siginfo_t_si_band" = xyes; then : +if test "x$ac_cv_member_siginfo_t_si_band" = xyes +then : -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T_SI_BAND 1 -_ACEOF +printf "%s\n" "#define HAVE_SIGINFO_T_SI_BAND 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 -$as_echo_n "checking for time.h that defines altzone... " >&6; } -if ${ac_cv_header_time_altzone+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for time.h that defines altzone" >&5 +printf %s "checking for time.h that defines altzone... " >&6; } +if test ${ac_cv_header_time_altzone+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { return altzone; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_header_time_altzone=yes -else +else $as_nop ac_cv_header_time_altzone=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 -$as_echo "$ac_cv_header_time_altzone" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 +printf "%s\n" "$ac_cv_header_time_altzone" >&6; } if test $ac_cv_header_time_altzone = yes; then -$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h +printf "%s\n" "#define HAVE_ALTZONE 1" >>confdefs.h fi was_it_defined=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/select.h and sys/time.h may both be included" >&5 -$as_echo_n "checking whether sys/select.h and sys/time.h may both be included... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sys/select.h and sys/time.h may both be included" >&5 +printf %s "checking whether sys/select.h and sys/time.h may both be included... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13819,96 +15938,102 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { ; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h +printf "%s\n" "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h was_it_defined=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $was_it_defined" >&5 -$as_echo "$was_it_defined" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $was_it_defined" >&5 +printf "%s\n" "$was_it_defined" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 -$as_echo_n "checking for addrinfo... " >&6; } -if ${ac_cv_struct_addrinfo+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for addrinfo" >&5 +printf %s "checking for addrinfo... " >&6; } +if test ${ac_cv_struct_addrinfo+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct addrinfo a ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_struct_addrinfo=yes -else +else $as_nop ac_cv_struct_addrinfo=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 -$as_echo "$ac_cv_struct_addrinfo" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 +printf "%s\n" "$ac_cv_struct_addrinfo" >&6; } if test $ac_cv_struct_addrinfo = yes; then -$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h +printf "%s\n" "#define HAVE_ADDRINFO 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 -$as_echo_n "checking for sockaddr_storage... " >&6; } -if ${ac_cv_struct_sockaddr_storage+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage" >&5 +printf %s "checking for sockaddr_storage... " >&6; } +if test ${ac_cv_struct_sockaddr_storage+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include int -main () +main (void) { struct sockaddr_storage s ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_struct_sockaddr_storage=yes -else +else $as_nop ac_cv_struct_sockaddr_storage=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 -$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 +printf "%s\n" "$ac_cv_struct_sockaddr_storage" >&6; } if test $ac_cv_struct_sockaddr_storage = yes; then -$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h +printf "%s\n" "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 -$as_echo_n "checking for sockaddr_alg... " >&6; } -if ${ac_cv_struct_sockaddr_alg+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_alg" >&5 +printf %s "checking for sockaddr_alg... " >&6; } +if test ${ac_cv_struct_sockaddr_alg+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -13916,41 +16041,43 @@ else # include # include int -main () +main (void) { struct sockaddr_alg s ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_struct_sockaddr_alg=yes -else +else $as_nop ac_cv_struct_sockaddr_alg=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 -$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 +printf "%s\n" "$ac_cv_struct_sockaddr_alg" >&6; } if test $ac_cv_struct_sockaddr_alg = yes; then -$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h +printf "%s\n" "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h fi # checks for compiler characteristics -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 -$as_echo_n "checking whether char is unsigned... " >&6; } -if ${ac_cv_c_char_unsigned+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5 +printf %s "checking whether char is unsigned... " >&6; } +if test ${ac_cv_c_char_unsigned+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { static int test_array [1 - 2 * !(((char) -1) < 0)]; test_array [0] = 0; @@ -13960,30 +16087,32 @@ return test_array [0]; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_char_unsigned=no -else +else $as_nop ac_cv_c_char_unsigned=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 -$as_echo "$ac_cv_c_char_unsigned" >&6; } -if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then - $as_echo "#define __CHAR_UNSIGNED__ 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5 +printf "%s\n" "$ac_cv_c_char_unsigned" >&6; } +if test $ac_cv_c_char_unsigned = yes; then + printf "%s\n" "#define __CHAR_UNSIGNED__ 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if ${ac_cv_c_const+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { #ifndef __cplusplus @@ -13996,7 +16125,7 @@ main () /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. + /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ @@ -14024,7 +16153,7 @@ main () iptr p = 0; ++p; } - { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; @@ -14040,75 +16169,78 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_const=yes -else +else $as_nop ac_cv_c_const=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then -$as_echo "#define const /**/" >>confdefs.h +printf "%s\n" "#define const /**/" >>confdefs.h fi works=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 -$as_echo_n "checking for working signed char... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 +printf %s "checking for working signed char... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { signed char c; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : works=yes -else +else $as_nop -$as_echo "#define signed /**/" >>confdefs.h +printf "%s\n" "#define signed /**/" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $works" >&5 -$as_echo "$works" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $works" >&5 +printf "%s\n" "$works" >&6; } have_prototypes=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 -$as_echo_n "checking for prototypes... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 +printf %s "checking for prototypes... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(int x) { return 0; } int -main () +main (void) { return foo(10); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h +printf "%s\n" "#define HAVE_PROTOTYPES 1" >>confdefs.h have_prototypes=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_prototypes" >&5 -$as_echo "$have_prototypes" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_prototypes" >&5 +printf "%s\n" "$have_prototypes" >&6; } works=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for variable length prototypes and stdarg.h" >&5 -$as_echo_n "checking for variable length prototypes and stdarg.h... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable length prototypes and stdarg.h" >&5 +printf %s "checking for variable length prototypes and stdarg.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14123,28 +16255,29 @@ int foo(int x, ...) { } int -main () +main (void) { return foo(10, "", 3.14); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_STDARG_PROTOTYPES 1" >>confdefs.h +printf "%s\n" "#define HAVE_STDARG_PROTOTYPES 1" >>confdefs.h works=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $works" >&5 -$as_echo "$works" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $works" >&5 +printf "%s\n" "$works" >&6; } # check for socketpair -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 -$as_echo_n "checking for socketpair... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 +printf %s "checking for socketpair... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14152,35 +16285,36 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main () +main (void) { void *x=socketpair ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_SOCKETPAIR 1" >>confdefs.h +printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # check if sockaddr has sa_len member -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 -$as_echo_n "checking if sockaddr has sa_len member... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sockaddr has sa_len member" >&5 +printf %s "checking if sockaddr has sa_len member... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main () +main (void) { struct sockaddr x; x.sa_len = 0; @@ -14188,29 +16322,31 @@ x.sa_len = 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +if ac_fn_c_try_compile "$LINENO" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h +printf "%s\n" "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments :-( ac_fn_c_check_func "$LINENO" "gethostbyname_r" "ac_cv_func_gethostbyname_r" -if test "x$ac_cv_func_gethostbyname_r" = xyes; then : +if test "x$ac_cv_func_gethostbyname_r" = xyes +then : - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 -$as_echo_n "checking gethostbyname_r with 6 args... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 +printf %s "checking gethostbyname_r with 6 args... " >&6; } OLD_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $MY_CPPFLAGS $MY_THREAD_CPPFLAGS $MY_CFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14219,7 +16355,7 @@ $as_echo_n "checking gethostbyname_r with 6 args... " >&6; } # include int -main () +main (void) { char *name; @@ -14234,29 +16370,30 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 -$as_echo_n "checking gethostbyname_r with 5 args... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 5 args" >&5 +printf %s "checking gethostbyname_r with 5 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include int -main () +main (void) { char *name; @@ -14271,29 +16408,30 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 -$as_echo_n "checking gethostbyname_r with 3 args... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 3 args" >&5 +printf %s "checking gethostbyname_r with 3 args... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include int -main () +main (void) { char *name; @@ -14306,43 +16444,40 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : - $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$OLD_CFLAGS -else +else $as_nop - for ac_func in gethostbyname -do : ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" -if test "x$ac_cv_func_gethostbyname" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETHOSTBYNAME 1 -_ACEOF +if test "x$ac_cv_func_gethostbyname" = xyes +then : + printf "%s\n" "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h fi -done fi @@ -14358,14 +16493,16 @@ fi # Linux requires this for correct f.p. operations ac_fn_c_check_func "$LINENO" "__fpu_control" "ac_cv_func___fpu_control" -if test "x$ac_cv_func___fpu_control" = xyes; then : - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 -$as_echo_n "checking for __fpu_control in -lieee... " >&6; } -if ${ac_cv_lib_ieee___fpu_control+:} false; then : - $as_echo_n "(cached) " >&6 -else +if test "x$ac_cv_func___fpu_control" = xyes +then : + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __fpu_control in -lieee" >&5 +printf %s "checking for __fpu_control in -lieee... " >&6; } +if test ${ac_cv_lib_ieee___fpu_control+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-lieee $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14374,33 +16511,30 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char __fpu_control (); int -main () +main (void) { return __fpu_control (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_lib_ieee___fpu_control=yes -else +else $as_nop ac_cv_lib_ieee___fpu_control=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 -$as_echo "$ac_cv_lib_ieee___fpu_control" >&6; } -if test "x$ac_cv_lib_ieee___fpu_control" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBIEEE 1 -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ieee___fpu_control" >&5 +printf "%s\n" "$ac_cv_lib_ieee___fpu_control" >&6; } +if test "x$ac_cv_lib_ieee___fpu_control" = xyes +then : + printf "%s\n" "#define HAVE_LIBIEEE 1" >>confdefs.h LIBS="-lieee $LIBS" @@ -14416,49 +16550,51 @@ case $ac_sys_system in Darwin) ;; *) LIBM=-lm esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 -$as_echo_n "checking for --with-libm=STRING... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 +printf %s "checking for --with-libm=STRING... " >&6; } # Check whether --with-libm was given. -if test "${with_libm+set}" = set; then : +if test ${with_libm+y} +then : withval=$with_libm; if test "$withval" = no then LIBM= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 -$as_echo "force LIBM empty" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 +printf "%s\n" "force LIBM empty" >&6; } elif test "$withval" != yes then LIBM=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 -$as_echo "set LIBM=\"$withval\"" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 +printf "%s\n" "set LIBM=\"$withval\"" >&6; } else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 -$as_echo "default LIBM=\"$LIBM\"" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 +printf "%s\n" "default LIBM=\"$LIBM\"" >&6; } fi # check for --with-libc=... -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 -$as_echo_n "checking for --with-libc=STRING... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 +printf %s "checking for --with-libc=STRING... " >&6; } # Check whether --with-libc was given. -if test "${with_libc+set}" = set; then : +if test ${with_libc+y} +then : withval=$with_libc; if test "$withval" = no then LIBC= - { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 -$as_echo "force LIBC empty" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 +printf "%s\n" "force LIBC empty" >&6; } elif test "$withval" != yes then LIBC=$withval - { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 -$as_echo "set LIBC=\"$withval\"" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 +printf "%s\n" "set LIBC=\"$withval\"" >&6; } else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 -$as_echo "default LIBC=\"$LIBC\"" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 +printf "%s\n" "default LIBC=\"$LIBC\"" >&6; } fi @@ -14466,13 +16602,13 @@ fi # * Check for gcc x64 inline assembler * # ************************************** -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 -$as_echo_n "checking for x64 gcc inline assembler... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 +printf %s "checking for x64 gcc inline assembler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { __asm__ __volatile__ ("movq %rcx, %rax"); @@ -14481,19 +16617,20 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_gcc_asm_for_x64=yes -else +else $as_nop have_gcc_asm_for_x64=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x64" >&5 -$as_echo "$have_gcc_asm_for_x64" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x64" >&5 +printf "%s\n" "$have_gcc_asm_for_x64" >&6; } if test "$have_gcc_asm_for_x64" = yes then -$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h +printf "%s\n" "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h fi @@ -14501,11 +16638,12 @@ fi # * Check for various properties of floating point * # ************************************************** -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 -$as_echo_n "checking whether float word ordering is bigendian... " >&6; } -if ${ax_cv_c_float_words_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether float word ordering is bigendian" >&5 +printf %s "checking whether float word ordering is bigendian... " >&6; } +if test ${ax_cv_c_float_words_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop ax_cv_c_float_words_bigendian=unknown @@ -14517,7 +16655,8 @@ double d = 909042349670368103374704789055050114762116927356156320147971208440534 _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : if grep noonsees conftest.$ac_objext >/dev/null ; then @@ -14533,15 +16672,15 @@ fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 -$as_echo "$ax_cv_c_float_words_bigendian" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 +printf "%s\n" "$ax_cv_c_float_words_bigendian" >&6; } case $ax_cv_c_float_words_bigendian in yes) -$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h +printf "%s\n" "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h ;; no) ;; @@ -14558,12 +16697,12 @@ esac if test "$ax_cv_c_float_words_bigendian" = "yes" then -$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h +printf "%s\n" "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h elif test "$ax_cv_c_float_words_bigendian" = "no" then -$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h +printf "%s\n" "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h else # Some ARM platforms use a mixed-endian representation for doubles. @@ -14573,7 +16712,7 @@ else # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big # or little, then it must be this? -$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h +printf "%s\n" "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h fi @@ -14587,13 +16726,13 @@ fi # This inline assembler syntax may also work for suncc and icc, # so we try it on all platforms. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set x87 control word" >&5 +printf %s "checking whether we can use gcc inline assembler to get and set x87 control word... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { unsigned short cw; @@ -14604,29 +16743,30 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_gcc_asm_for_x87=yes -else +else $as_nop have_gcc_asm_for_x87=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x87" >&5 -$as_echo "$have_gcc_asm_for_x87" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x87" >&5 +printf "%s\n" "$have_gcc_asm_for_x87" >&6; } if test "$have_gcc_asm_for_x87" = yes then -$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h +printf "%s\n" "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 -$as_echo_n "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we can use gcc inline assembler to get and set mc68881 fpcr" >&5 +printf %s "checking whether we can use gcc inline assembler to get and set mc68881 fpcr... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { unsigned int fpcr; @@ -14637,19 +16777,20 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_gcc_asm_for_mc68881=yes -else +else $as_nop have_gcc_asm_for_mc68881=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_mc68881" >&5 -$as_echo "$have_gcc_asm_for_mc68881" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_mc68881" >&5 +printf "%s\n" "$have_gcc_asm_for_mc68881" >&6; } if test "$have_gcc_asm_for_mc68881" = yes then -$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h +printf "%s\n" "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h fi @@ -14658,14 +16799,15 @@ fi # IEEE 754 platforms. On IEEE 754, test should return 1 if rounding # mode is round-to-nearest and double rounding issues are present, and # 0 otherwise. See http://bugs.python.org/issue2937 for more info. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 -$as_echo_n "checking for x87-style double rounding... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 +printf %s "checking for x87-style double rounding... " >&6; } # $BASECFLAGS may affect the result ac_save_cc="$CC" CC="$CC $BASECFLAGS" -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : ac_cv_x87_double_rounding=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14689,9 +16831,10 @@ int main() { } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_x87_double_rounding=no -else +else $as_nop ac_cv_x87_double_rounding=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -14699,12 +16842,12 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CC="$ac_save_cc" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 -$as_echo "$ac_cv_x87_double_rounding" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 +printf "%s\n" "$ac_cv_x87_double_rounding" >&6; } if test "$ac_cv_x87_double_rounding" = yes then -$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h +printf "%s\n" "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h fi @@ -14715,63 +16858,125 @@ fi LIBS_SAVE=$LIBS LIBS="$LIBS $LIBM" -for ac_func in acosh asinh atanh copysign erf erfc expm1 finite gamma -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "acosh" "ac_cv_func_acosh" +if test "x$ac_cv_func_acosh" = xyes +then : + printf "%s\n" "#define HAVE_ACOSH 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "asinh" "ac_cv_func_asinh" +if test "x$ac_cv_func_asinh" = xyes +then : + printf "%s\n" "#define HAVE_ASINH 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "atanh" "ac_cv_func_atanh" +if test "x$ac_cv_func_atanh" = xyes +then : + printf "%s\n" "#define HAVE_ATANH 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "copysign" "ac_cv_func_copysign" +if test "x$ac_cv_func_copysign" = xyes +then : + printf "%s\n" "#define HAVE_COPYSIGN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "erf" "ac_cv_func_erf" +if test "x$ac_cv_func_erf" = xyes +then : + printf "%s\n" "#define HAVE_ERF 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "erfc" "ac_cv_func_erfc" +if test "x$ac_cv_func_erfc" = xyes +then : + printf "%s\n" "#define HAVE_ERFC 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "expm1" "ac_cv_func_expm1" +if test "x$ac_cv_func_expm1" = xyes +then : + printf "%s\n" "#define HAVE_EXPM1 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite" +if test "x$ac_cv_func_finite" = xyes +then : + printf "%s\n" "#define HAVE_FINITE 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "gamma" "ac_cv_func_gamma" +if test "x$ac_cv_func_gamma" = xyes +then : + printf "%s\n" "#define HAVE_GAMMA 1" >>confdefs.h + +fi + +ac_fn_c_check_func "$LINENO" "hypot" "ac_cv_func_hypot" +if test "x$ac_cv_func_hypot" = xyes +then : + printf "%s\n" "#define HAVE_HYPOT 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "lgamma" "ac_cv_func_lgamma" +if test "x$ac_cv_func_lgamma" = xyes +then : + printf "%s\n" "#define HAVE_LGAMMA 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "log1p" "ac_cv_func_log1p" +if test "x$ac_cv_func_log1p" = xyes +then : + printf "%s\n" "#define HAVE_LOG1P 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "log2" "ac_cv_func_log2" +if test "x$ac_cv_func_log2" = xyes +then : + printf "%s\n" "#define HAVE_LOG2 1" >>confdefs.h -for ac_func in hypot lgamma log1p log2 round tgamma -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +fi +ac_fn_c_check_func "$LINENO" "round" "ac_cv_func_round" +if test "x$ac_cv_func_round" = xyes +then : + printf "%s\n" "#define HAVE_ROUND 1" >>confdefs.h fi -done +ac_fn_c_check_func "$LINENO" "tgamma" "ac_cv_func_tgamma" +if test "x$ac_cv_func_tgamma" = xyes +then : + printf "%s\n" "#define HAVE_TGAMMA 1" >>confdefs.h -ac_fn_c_check_decl "$LINENO" "isinf" "ac_cv_have_decl_isinf" "#include -" -if test "x$ac_cv_have_decl_isinf" = xyes; then : +fi + +ac_fn_check_decl "$LINENO" "isinf" "ac_cv_have_decl_isinf" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_isinf" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ISINF $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "isnan" "ac_cv_have_decl_isnan" "#include -" -if test "x$ac_cv_have_decl_isnan" = xyes; then : +printf "%s\n" "#define HAVE_DECL_ISINF $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "isnan" "ac_cv_have_decl_isnan" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_isnan" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ISNAN $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include -" -if test "x$ac_cv_have_decl_isfinite" = xyes; then : +printf "%s\n" "#define HAVE_DECL_ISNAN $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "isfinite" "ac_cv_have_decl_isfinite" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_isfinite" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_ISFINITE $ac_have_decl -_ACEOF +printf "%s\n" "#define HAVE_DECL_ISFINITE $ac_have_decl" >>confdefs.h # For multiprocessing module, check that sem_open @@ -14779,14 +16984,16 @@ _ACEOF # the kernel module that provides POSIX semaphores # isn't loaded by default, so an attempt to call # sem_open results in a 'Signal 12' error. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 -$as_echo_n "checking whether POSIX semaphores are enabled... " >&6; } -if ${ac_cv_posix_semaphores_enabled+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether POSIX semaphores are enabled" >&5 +printf %s "checking whether POSIX semaphores are enabled... " >&6; } +if test ${ac_cv_posix_semaphores_enabled+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_posix_semaphores_enabled=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14808,9 +17015,10 @@ int main(void) { } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_posix_semaphores_enabled=yes -else +else $as_nop ac_cv_posix_semaphores_enabled=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -14820,24 +17028,26 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 -$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 +printf "%s\n" "$ac_cv_posix_semaphores_enabled" >&6; } if test $ac_cv_posix_semaphores_enabled = no then -$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h +printf "%s\n" "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h fi # Multiprocessing check for broken sem_getvalue -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 -$as_echo_n "checking for broken sem_getvalue... " >&6; } -if ${ac_cv_broken_sem_getvalue+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken sem_getvalue" >&5 +printf %s "checking for broken sem_getvalue... " >&6; } +if test ${ac_cv_broken_sem_getvalue+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_broken_sem_getvalue=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14863,9 +17073,10 @@ int main(void){ } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_broken_sem_getvalue=no -else +else $as_nop ac_cv_broken_sem_getvalue=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -14875,110 +17086,95 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 -$as_echo "$ac_cv_broken_sem_getvalue" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 +printf "%s\n" "$ac_cv_broken_sem_getvalue" >&6; } if test $ac_cv_broken_sem_getvalue = yes then -$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h fi -ac_fn_c_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include -" -if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes; then : +ac_fn_check_decl "$LINENO" "RTLD_LAZY" "ac_cv_have_decl_RTLD_LAZY" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_LAZY" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LAZY $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include -" -if test "x$ac_cv_have_decl_RTLD_NOW" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_LAZY $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_NOW" "ac_cv_have_decl_RTLD_NOW" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_NOW" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOW $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include -" -if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_NOW $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_GLOBAL" "ac_cv_have_decl_RTLD_GLOBAL" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_GLOBAL" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include -" -if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_GLOBAL $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_LOCAL" "ac_cv_have_decl_RTLD_LOCAL" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_LOCAL" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_LOCAL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include -" -if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_LOCAL $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_NODELETE" "ac_cv_have_decl_RTLD_NODELETE" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_NODELETE" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NODELETE $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include -" -if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_NODELETE $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_NOLOAD" "ac_cv_have_decl_RTLD_NOLOAD" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_NOLOAD" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include -" -if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_NOLOAD $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_DEEPBIND" "ac_cv_have_decl_RTLD_DEEPBIND" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_DEEPBIND" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include -" -if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes; then : +printf "%s\n" "#define HAVE_DECL_RTLD_DEEPBIND $ac_have_decl" >>confdefs.h +ac_fn_check_decl "$LINENO" "RTLD_MEMBER" "ac_cv_have_decl_RTLD_MEMBER" "#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_RTLD_MEMBER" = xyes +then : ac_have_decl=1 -else +else $as_nop ac_have_decl=0 fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_RTLD_MEMBER $ac_have_decl -_ACEOF +printf "%s\n" "#define HAVE_DECL_RTLD_MEMBER $ac_have_decl" >>confdefs.h # determine what size digit to use for Python's longs -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 -$as_echo_n "checking digit size for Python's longs... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking digit size for Python's longs" >&5 +printf %s "checking digit size for Python's longs... " >&6; } # Check whether --enable-big-digits was given. -if test "${enable_big_digits+set}" = set; then : +if test ${enable_big_digits+y} +then : enableval=$enable_big_digits; case $enable_big_digits in yes) enable_big_digits=30 ;; @@ -14989,36 +17185,34 @@ no) *) as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 -$as_echo "$enable_big_digits" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 +printf "%s\n" "$enable_big_digits" >&6; } -cat >>confdefs.h <<_ACEOF -#define PYLONG_BITS_IN_DIGIT $enable_big_digits -_ACEOF +printf "%s\n" "#define PYLONG_BITS_IN_DIGIT $enable_big_digits" >>confdefs.h -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -$as_echo "no value specified" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +printf "%s\n" "no value specified" >&6; } fi # check for wchar.h -ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" -if test "x$ac_cv_header_wchar_h" = xyes; then : +ac_fn_c_check_header_compile "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default" +if test "x$ac_cv_header_wchar_h" = xyes +then : -$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h +printf "%s\n" "#define HAVE_WCHAR_H 1" >>confdefs.h wchar_h="yes" -else +else $as_nop wchar_h="no" fi - # determine wchar_t size if test "$wchar_h" = yes then @@ -15026,18 +17220,20 @@ then # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 -$as_echo_n "checking size of wchar_t... " >&6; } -if ${ac_cv_sizeof_wchar_t+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of wchar_t" >&5 +printf %s "checking size of wchar_t... " >&6; } +if test ${ac_cv_sizeof_wchar_t+y} +then : + printf %s "(cached) " >&6 +else $as_nop if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include -"; then : +" +then : -else +else $as_nop if test "$ac_cv_type_wchar_t" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (wchar_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -15046,20 +17242,18 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 -$as_echo "$ac_cv_sizeof_wchar_t" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 +printf "%s\n" "$ac_cv_sizeof_wchar_t" >&6; } -cat >>confdefs.h <<_ACEOF -#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t -_ACEOF +printf "%s\n" "#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCS-4 tcl" >&5 -$as_echo_n "checking for UCS-4 tcl... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for UCS-4 tcl" >&5 +printf %s "checking for UCS-4 tcl... " >&6; } have_ucs4_tcl=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15069,38 +17263,41 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext # error "NOT UCS4_TCL" #endif int -main () +main (void) { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_UCS4_TCL 1" >>confdefs.h +printf "%s\n" "#define HAVE_UCS4_TCL 1" >>confdefs.h have_ucs4_tcl=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ucs4_tcl" >&5 -$as_echo "$have_ucs4_tcl" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_ucs4_tcl" >&5 +printf "%s\n" "$have_ucs4_tcl" >&6; } # check whether wchar_t is signed or not if test "$wchar_h" = yes then # check whether wchar_t is signed or not - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 -$as_echo_n "checking whether wchar_t is signed... " >&6; } - if ${ac_cv_wchar_t_signed+:} false; then : - $as_echo_n "(cached) " >&6 -else - - if test "$cross_compiling" = yes; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is signed" >&5 +printf %s "checking whether wchar_t is signed... " >&6; } + if test ${ac_cv_wchar_t_signed+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$cross_compiling" = yes +then : ac_cv_wchar_t_signed=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15112,9 +17309,10 @@ else } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_wchar_t_signed=yes -else +else $as_nop ac_cv_wchar_t_signed=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -15123,24 +17321,24 @@ fi fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 -$as_echo "$ac_cv_wchar_t_signed" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 +printf "%s\n" "$ac_cv_wchar_t_signed" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 -$as_echo_n "checking whether wchar_t is usable... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 +printf %s "checking whether wchar_t is usable... " >&6; } # wchar_t is only usable if it maps to an unsigned type if test "$ac_cv_sizeof_wchar_t" -ge 2 \ -a "$ac_cv_wchar_t_signed" = "no" then -$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h +printf "%s\n" "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi case $ac_sys_system/$ac_sys_release in @@ -15152,7 +17350,7 @@ SunOS/*) # non-Unicode locales is not Unicode and hence cannot be used directly. # https://docs.oracle.com/cd/E37838_01/html/E61053/gmwke.html -$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h +printf "%s\n" "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h fi fi @@ -15160,11 +17358,12 @@ $as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h esac # check for endianness - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15175,7 +17374,8 @@ else typedef int dummy; _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. @@ -15199,7 +17399,7 @@ if ac_fn_c_try_compile "$LINENO"; then : fi done fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15208,7 +17408,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext #include int -main () +main (void) { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ @@ -15220,7 +17420,8 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15228,7 +17429,7 @@ if ac_fn_c_try_compile "$LINENO"; then : #include int -main () +main (void) { #if BYTE_ORDER != BIG_ENDIAN not big endian @@ -15238,14 +17439,15 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). @@ -15254,7 +17456,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext #include int -main () +main (void) { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros @@ -15264,14 +17466,15 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef _BIG_ENDIAN not big endian @@ -15281,31 +17484,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_c_bigendian=yes -else +else $as_nop ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes +then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -short int ascii_mm[] = +unsigned short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = + unsigned short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } - short int ebcdic_ii[] = + unsigned short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = + unsigned short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; @@ -15313,14 +17518,15 @@ short int ascii_mm[] = extern int foo; int -main () +main (void) { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi @@ -15333,13 +17539,13 @@ if ac_fn_c_try_compile "$LINENO"; then : fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main () +main (void) { /* Are we little or big endian? From Harbison&Steele. */ @@ -15355,9 +17561,10 @@ main () return 0; } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_c_bigendian=no -else +else $as_nop ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -15366,17 +17573,17 @@ fi fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) - $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h + printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) @@ -15401,15 +17608,15 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h # In Python 3.2 and older, --with-wide-unicode added a 'u' flag. # In Python 3.7 and older, --with-pymalloc added a 'm' flag. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 -$as_echo_n "checking ABIFLAGS... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 -$as_echo "$ABIFLAGS" >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 -$as_echo_n "checking SOABI... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ABIFLAGS" >&5 +printf %s "checking ABIFLAGS... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ABIFLAGS" >&5 +printf "%s\n" "$ABIFLAGS" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5 +printf %s "checking SOABI... " >&6; } SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 -$as_echo "$SOABI" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 +printf "%s\n" "$SOABI" >&6; } # Release and debug (Py_DEBUG) ABI are compatible, but not Py_TRACE_REFS ABI if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then @@ -15417,20 +17624,18 @@ if test "$Py_DEBUG" = 'true' -a "$with_trace_refs" != "yes"; then ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} -cat >>confdefs.h <<_ACEOF -#define ALT_SOABI "${ALT_SOABI}" -_ACEOF +printf "%s\n" "#define ALT_SOABI \"${ALT_SOABI}\"" >>confdefs.h fi EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 -$as_echo_n "checking LDVERSION... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 +printf %s "checking LDVERSION... " >&6; } LDVERSION='$(VERSION)$(ABIFLAGS)' -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 -$as_echo "$LDVERSION" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 +printf "%s\n" "$LDVERSION" >&6; } # On Android and Cygwin the shared libraries must be linked with libpython. @@ -15449,11 +17654,12 @@ BINLIBDEST='$(LIBDIR)/python$(VERSION)' # /usr/$LIDIRNAME/python$VERSION PLATLIBDIR="lib" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 -$as_echo_n "checking for --with-platlibdir... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 +printf %s "checking for --with-platlibdir... " >&6; } # Check whether --with-platlibdir was given. -if test "${with_platlibdir+set}" = set; then : +if test ${with_platlibdir+y} +then : withval=$with_platlibdir; # ignore 3 options: # --with-platlibdir @@ -15461,17 +17667,17 @@ if test "${with_platlibdir+set}" = set; then : # --without-platlibdir if test -n "$withval" -a "$withval" != yes -a "$withval" != no then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } PLATLIBDIR="$withval" BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -15487,37 +17693,40 @@ fi # Check for --with-wheel-pkg-dir=PATH WHEEL_PKG_DIR="" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 -$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 +printf %s "checking for --with-wheel-pkg-dir... " >&6; } # Check whether --with-wheel-pkg-dir was given. -if test "${with_wheel_pkg_dir+set}" = set; then : +if test ${with_wheel_pkg_dir+y} +then : withval=$with_wheel_pkg_dir; if test -n "$withval"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } WHEEL_PKG_DIR="$withval" else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # Check whether right shifting a negative integer extends the sign bit # or fills with zeros (like the Cray J90, according to Tim Peters). -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 -$as_echo_n "checking whether right shift extends the sign bit... " >&6; } -if ${ac_cv_rshift_extends_sign+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether right shift extends the sign bit" >&5 +printf %s "checking whether right shift extends the sign bit... " >&6; } +if test ${ac_cv_rshift_extends_sign+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +if test "$cross_compiling" = yes +then : ac_cv_rshift_extends_sign=yes -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15527,9 +17736,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_rshift_extends_sign=yes -else +else $as_nop ac_cv_rshift_extends_sign=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -15538,27 +17748,28 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 -$as_echo "$ac_cv_rshift_extends_sign" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 +printf "%s\n" "$ac_cv_rshift_extends_sign" >&6; } if test "$ac_cv_rshift_extends_sign" = no then -$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h +printf "%s\n" "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h fi # check for getc_unlocked and related locking functions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 -$as_echo_n "checking for getc_unlocked() and friends... " >&6; } -if ${ac_cv_have_getc_unlocked+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getc_unlocked() and friends" >&5 +printf %s "checking for getc_unlocked() and friends... " >&6; } +if test ${ac_cv_have_getc_unlocked+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { FILE *f = fopen("/dev/null", "r"); @@ -15570,29 +17781,31 @@ main () return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : ac_cv_have_getc_unlocked=yes -else +else $as_nop ac_cv_have_getc_unlocked=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 -$as_echo "$ac_cv_have_getc_unlocked" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 +printf "%s\n" "$ac_cv_have_getc_unlocked" >&6; } if test "$ac_cv_have_getc_unlocked" = yes then -$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h fi # Check whether --with-readline was given. -if test "${with_readline+set}" = set; then : +if test ${with_readline+y} +then : withval=$with_readline; -else +else $as_nop with_readline=yes fi @@ -15607,7 +17820,7 @@ if test "$with_readline" != no; then editline|edit) LIBREADLINE=edit -$as_echo "#define WITH_EDITLINE 1" >>confdefs.h +printf "%s\n" "#define WITH_EDITLINE 1" >>confdefs.h ;; yes|readline) @@ -15621,8 +17834,8 @@ $as_echo "#define WITH_EDITLINE 1" >>confdefs.h # On some systems we need to link readline to a termcap compatible # library. NOTE: Keep the precedence of listed libraries synchronised # with setup.py. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 -$as_echo_n "checking how to link readline libs... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 +printf %s "checking how to link readline libs... " >&6; } for py_libtermcap in "" tinfo ncursesw ncurses curses termcap; do if test -z "$py_libtermcap"; then READLINE_LIBS="-l$LIBREADLINE" @@ -15636,22 +17849,20 @@ $as_echo_n "checking how to link readline libs... " >&6; } /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char readline (); int -main () +main (void) { return readline (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : py_cv_lib_readline=yes fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $py_cv_lib_readline = yes; then break @@ -15661,20 +17872,20 @@ rm -f core conftest.err conftest.$ac_objext \ # Uncomment this line if you want to use READLINE_LIBS in Makefile or scripts #AC_SUBST([READLINE_LIBS]) if test $py_cv_lib_readline = no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 -$as_echo "none" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 -$as_echo "$READLINE_LIBS" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 +printf "%s\n" "$READLINE_LIBS" >&6; } -$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h +printf "%s\n" "#define HAVE_LIBREADLINE 1" >>confdefs.h fi fi if test "$py_cv_lib_readline" = yes; then # check for readline 2.2 - ac_fn_c_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " + ac_fn_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " #include /* Must be first for Gnu Readline */ #ifdef WITH_EDITLINE # include @@ -15682,14 +17893,14 @@ if test "$py_cv_lib_readline" = yes; then # include #endif -" -if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes +then : -$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h fi - - ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " + ac_fn_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " #include /* Must be first for Gnu Readline */ #ifdef WITH_EDITLINE # include @@ -15697,21 +17908,22 @@ fi # include #endif -" -if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes +then : -$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h fi - # check for readline 4.0 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_pre_input_hook" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIBREADLINE""_rl_pre_input_hook" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_pre_input_hook in -l$LIBREADLINE" >&5 +printf %s "checking for rl_pre_input_hook in -l$LIBREADLINE... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15720,44 +17932,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char rl_pre_input_hook (); int -main () +main (void) { return rl_pre_input_hook (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : -$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h fi # also in 4.0 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_display_matches_hook" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIBREADLINE""_rl_completion_display_matches_hook" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_display_matches_hook in -l$LIBREADLINE" >&5 +printf %s "checking for rl_completion_display_matches_hook in -l$LIBREADLINE... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15766,44 +17978,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char rl_completion_display_matches_hook (); int -main () +main (void) { return rl_completion_display_matches_hook (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : -$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h fi # also in 4.0, but not in editline - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_resize_terminal" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIBREADLINE""_rl_resize_terminal" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_resize_terminal in -l$LIBREADLINE" >&5 +printf %s "checking for rl_resize_terminal in -l$LIBREADLINE... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15812,44 +18024,44 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char rl_resize_terminal (); int -main () +main (void) { return rl_resize_terminal (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : -$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h fi # check for readline 4.2 - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_rl_completion_matches" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 -$as_echo_n "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIBREADLINE""_rl_completion_matches" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -l$LIBREADLINE" >&5 +printf %s "checking for rl_completion_matches in -l$LIBREADLINE... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15858,39 +18070,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char rl_completion_matches (); int -main () +main (void) { return rl_completion_matches (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : -$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h fi # also in readline 4.2 - ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " + ac_fn_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " #include /* Must be first for Gnu Readline */ #ifdef WITH_EDITLINE # include @@ -15898,20 +18109,21 @@ fi # include #endif -" -if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_rl_catch_signals" = xyes +then : -$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h fi - - as_ac_Lib=`$as_echo "ac_cv_lib_$LIBREADLINE''_append_history" | $as_tr_sh` -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 -$as_echo_n "checking for append_history in -l$LIBREADLINE... " >&6; } -if eval \${$as_ac_Lib+:} false; then : - $as_echo_n "(cached) " >&6 -else + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIBREADLINE""_append_history" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for append_history in -l$LIBREADLINE" >&5 +printf %s "checking for append_history in -l$LIBREADLINE... " >&6; } +if eval test \${$as_ac_Lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15920,33 +18132,32 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char append_history (); int -main () +main (void) { return append_history (); ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : eval "$as_ac_Lib=yes" -else +else $as_nop eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_Lib"\" = x"yes" +then : -$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h +printf "%s\n" "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h fi @@ -15955,15 +18166,17 @@ fi # End of readline checks: restore LIBS LIBS=$LIBS_no_readline -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 -$as_echo_n "checking for broken nice()... " >&6; } -if ${ac_cv_broken_nice+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken nice()" >&5 +printf %s "checking for broken nice()... " >&6; } +if test ${ac_cv_broken_nice+y} +then : + printf %s "(cached) " >&6 +else $as_nop -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : ac_cv_broken_nice=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15978,9 +18191,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_broken_nice=yes -else +else $as_nop ac_cv_broken_nice=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -15989,23 +18203,25 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 -$as_echo "$ac_cv_broken_nice" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 +printf "%s\n" "$ac_cv_broken_nice" >&6; } if test "$ac_cv_broken_nice" = yes then -$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_NICE 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 -$as_echo_n "checking for broken poll()... " >&6; } -if ${ac_cv_broken_poll+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken poll()" >&5 +printf %s "checking for broken poll()... " >&6; } +if test ${ac_cv_broken_poll+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_broken_poll=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16029,9 +18245,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_broken_poll=yes -else +else $as_nop ac_cv_broken_poll=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16040,25 +18257,27 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 -$as_echo "$ac_cv_broken_poll" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 +printf "%s\n" "$ac_cv_broken_poll" >&6; } if test "$ac_cv_broken_poll" = yes then -$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_POLL 1" >>confdefs.h fi # check tzset(3) exists and works like we expect it to -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 -$as_echo_n "checking for working tzset()... " >&6; } -if ${ac_cv_working_tzset+:} false; then : - $as_echo_n "(cached) " >&6 -else - -if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working tzset()" >&5 +printf %s "checking for working tzset()... " >&6; } +if test ${ac_cv_working_tzset+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +if test "$cross_compiling" = yes +then : ac_cv_working_tzset=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16126,9 +18345,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_working_tzset=yes -else +else $as_nop ac_cv_working_tzset=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16137,26 +18357,27 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 -$as_echo "$ac_cv_working_tzset" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 +printf "%s\n" "$ac_cv_working_tzset" >&6; } if test "$ac_cv_working_tzset" = yes then -$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h +printf "%s\n" "#define HAVE_WORKING_TZSET 1" >>confdefs.h fi # Look for subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 -$as_echo_n "checking for tv_nsec in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tv_nsec in struct stat" >&5 +printf %s "checking for tv_nsec in struct stat... " >&6; } +if test ${ac_cv_stat_tv_nsec+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat st; @@ -16166,34 +18387,36 @@ st.st_mtim.tv_nsec = 1; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_stat_tv_nsec=yes -else +else $as_nop ac_cv_stat_tv_nsec=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 -$as_echo "$ac_cv_stat_tv_nsec" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 +printf "%s\n" "$ac_cv_stat_tv_nsec" >&6; } if test "$ac_cv_stat_tv_nsec" = yes then -$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h +printf "%s\n" "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h fi # Look for BSD style subsecond timestamps in struct stat -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 -$as_echo_n "checking for tv_nsec2 in struct stat... " >&6; } -if ${ac_cv_stat_tv_nsec2+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tv_nsec2 in struct stat" >&5 +printf %s "checking for tv_nsec2 in struct stat... " >&6; } +if test ${ac_cv_stat_tv_nsec2+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { struct stat st; @@ -16203,20 +18426,21 @@ st.st_mtimespec.tv_nsec = 1; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_stat_tv_nsec2=yes -else +else $as_nop ac_cv_stat_tv_nsec2=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 -$as_echo "$ac_cv_stat_tv_nsec2" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 +printf "%s\n" "$ac_cv_stat_tv_nsec2" >&6; } if test "$ac_cv_stat_tv_nsec2" = yes then -$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h +printf "%s\n" "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h fi @@ -16226,50 +18450,46 @@ if test "$cross_compiling" = no; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi -for ac_header in curses.h ncurses.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default" +if test "x$ac_cv_header_curses_h" = xyes +then : + printf "%s\n" "#define HAVE_CURSES_H 1" >>confdefs.h fi +ac_fn_c_check_header_compile "$LINENO" "ncurses.h" "ac_cv_header_ncurses_h" "$ac_includes_default" +if test "x$ac_cv_header_ncurses_h" = xyes +then : + printf "%s\n" "#define HAVE_NCURSES_H 1" >>confdefs.h -done +fi # On Solaris, term.h requires curses.h -for ac_header in term.h -do : - ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" " +ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" " #ifdef HAVE_CURSES_H #include #endif " -if test "x$ac_cv_header_term_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_TERM_H 1 -_ACEOF +if test "x$ac_cv_header_term_h" = xyes +then : + printf "%s\n" "#define HAVE_TERM_H 1" >>confdefs.h fi -done - # On HP/UX 11.0, mvwdelch is a block with a return statement -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mvwdelch is an expression" >&5 -$as_echo_n "checking whether mvwdelch is an expression... " >&6; } -if ${ac_cv_mvwdelch_is_expression+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mvwdelch is an expression" >&5 +printf %s "checking whether mvwdelch is an expression... " >&6; } +if test ${ac_cv_mvwdelch_is_expression+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { int rtn; @@ -16279,21 +18499,22 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_mvwdelch_is_expression=yes -else +else $as_nop ac_cv_mvwdelch_is_expression=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mvwdelch_is_expression" >&5 -$as_echo "$ac_cv_mvwdelch_is_expression" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mvwdelch_is_expression" >&5 +printf "%s\n" "$ac_cv_mvwdelch_is_expression" >&6; } if test "$ac_cv_mvwdelch_is_expression" = yes then -$as_echo "#define MVWDELCH_IS_EXPRESSION 1" >>confdefs.h +printf "%s\n" "#define MVWDELCH_IS_EXPRESSION 1" >>confdefs.h fi @@ -16301,11 +18522,12 @@ fi # structs since version 5.7. If the macro is defined as zero before including # [n]curses.h, ncurses will expose fields of the structs regardless of the # configuration. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether WINDOW has _flags" >&5 -$as_echo_n "checking whether WINDOW has _flags... " >&6; } -if ${ac_cv_window_has_flags+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether WINDOW has _flags" >&5 +printf %s "checking whether WINDOW has _flags... " >&6; } +if test ${ac_cv_window_has_flags+y} +then : + printf %s "(cached) " >&6 +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16313,7 +18535,7 @@ else #include int -main () +main (void) { WINDOW *w; @@ -16323,32 +18545,33 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : ac_cv_window_has_flags=yes -else +else $as_nop ac_cv_window_has_flags=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_window_has_flags" >&5 -$as_echo "$ac_cv_window_has_flags" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_window_has_flags" >&5 +printf "%s\n" "$ac_cv_window_has_flags" >&6; } if test "$ac_cv_window_has_flags" = yes then -$as_echo "#define WINDOW_HAS_FLAGS 1" >>confdefs.h +printf "%s\n" "#define WINDOW_HAS_FLAGS 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_pad" >&5 -$as_echo_n "checking for is_pad... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for is_pad" >&5 +printf %s "checking for is_pad... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef is_pad @@ -16359,104 +18582,108 @@ void *x=is_pad return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_IS_PAD 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_IS_PAD 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_term_resized" >&5 -$as_echo_n "checking for is_term_resized... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for is_term_resized" >&5 +printf %s "checking for is_term_resized... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=is_term_resized ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_IS_TERM_RESIZED 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_IS_TERM_RESIZED 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for resize_term" >&5 -$as_echo_n "checking for resize_term... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for resize_term" >&5 +printf %s "checking for resize_term... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=resize_term ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_RESIZE_TERM 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_RESIZE_TERM 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for resizeterm" >&5 -$as_echo_n "checking for resizeterm... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for resizeterm" >&5 +printf %s "checking for resizeterm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { void *x=resizeterm ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_RESIZETERM 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_RESIZETERM 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for immedok" >&5 -$as_echo_n "checking for immedok... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for immedok" >&5 +printf %s "checking for immedok... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef immedok @@ -16467,26 +18694,27 @@ void *x=immedok return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_IMMEDOK 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_IMMEDOK 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for syncok" >&5 -$as_echo_n "checking for syncok... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for syncok" >&5 +printf %s "checking for syncok... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef syncok @@ -16497,26 +18725,27 @@ void *x=syncok return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_SYNCOK 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_SYNCOK 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchgat" >&5 -$as_echo_n "checking for wchgat... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wchgat" >&5 +printf %s "checking for wchgat... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef wchgat @@ -16527,26 +18756,27 @@ void *x=wchgat return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_WCHGAT 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_WCHGAT 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for filter" >&5 -$as_echo_n "checking for filter... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for filter" >&5 +printf %s "checking for filter... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef filter @@ -16557,26 +18787,27 @@ void *x=filter return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_FILTER 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_FILTER 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for has_key" >&5 -$as_echo_n "checking for has_key... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for has_key" >&5 +printf %s "checking for has_key... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef has_key @@ -16587,26 +18818,27 @@ void *x=has_key return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_HAS_KEY 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_HAS_KEY 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeahead" >&5 -$as_echo_n "checking for typeahead... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for typeahead" >&5 +printf %s "checking for typeahead... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef typeahead @@ -16617,26 +18849,27 @@ void *x=typeahead return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_TYPEAHEAD 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_TYPEAHEAD 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for use_env" >&5 -$as_echo_n "checking for use_env... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for use_env" >&5 +printf %s "checking for use_env... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main () +main (void) { #ifndef use_env @@ -16647,46 +18880,48 @@ void *x=use_env return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : -$as_echo "#define HAVE_CURSES_USE_ENV 1" >>confdefs.h +printf "%s\n" "#define HAVE_CURSES_USE_ENV 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # last curses configure check CPPFLAGS=$ac_save_cppflags -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for device files" >&5 -$as_echo "$as_me: checking for device files" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for device files" >&5 +printf "%s\n" "$as_me: checking for device files" >&6;} if test "x$cross_compiling" = xyes; then if test "${ac_cv_file__dev_ptmx+set}" != set; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/ptmx" >&5 -$as_echo_n "checking for /dev/ptmx... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not set" >&5 -$as_echo "not set" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for /dev/ptmx" >&5 +printf %s "checking for /dev/ptmx... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not set" >&5 +printf "%s\n" "not set" >&6; } as_fn_error $? "set ac_cv_file__dev_ptmx to yes/no in your CONFIG_SITE file when cross compiling" "$LINENO" 5 fi if test "${ac_cv_file__dev_ptc+set}" != set; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/ptc" >&5 -$as_echo_n "checking for /dev/ptc... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not set" >&5 -$as_echo "not set" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for /dev/ptc" >&5 +printf %s "checking for /dev/ptc... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not set" >&5 +printf "%s\n" "not set" >&6; } as_fn_error $? "set ac_cv_file__dev_ptc to yes/no in your CONFIG_SITE file when cross compiling" "$LINENO" 5 fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/ptmx" >&5 -$as_echo_n "checking for /dev/ptmx... " >&6; } -if ${ac_cv_file__dev_ptmx+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for /dev/ptmx" >&5 +printf %s "checking for /dev/ptmx... " >&6; } +if test ${ac_cv_file__dev_ptmx+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/dev/ptmx"; then @@ -16695,22 +18930,24 @@ else ac_cv_file__dev_ptmx=no fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_ptmx" >&5 -$as_echo "$ac_cv_file__dev_ptmx" >&6; } -if test "x$ac_cv_file__dev_ptmx" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_ptmx" >&5 +printf "%s\n" "$ac_cv_file__dev_ptmx" >&6; } +if test "x$ac_cv_file__dev_ptmx" = xyes +then : fi if test "x$ac_cv_file__dev_ptmx" = xyes; then -$as_echo "#define HAVE_DEV_PTMX 1" >>confdefs.h +printf "%s\n" "#define HAVE_DEV_PTMX 1" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /dev/ptc" >&5 -$as_echo_n "checking for /dev/ptc... " >&6; } -if ${ac_cv_file__dev_ptc+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for /dev/ptc" >&5 +printf %s "checking for /dev/ptc... " >&6; } +if test ${ac_cv_file__dev_ptc+y} +then : + printf %s "(cached) " >&6 +else $as_nop test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/dev/ptc"; then @@ -16719,15 +18956,16 @@ else ac_cv_file__dev_ptc=no fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_ptc" >&5 -$as_echo "$ac_cv_file__dev_ptc" >&6; } -if test "x$ac_cv_file__dev_ptc" = xyes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_file__dev_ptc" >&5 +printf "%s\n" "$ac_cv_file__dev_ptc" >&6; } +if test "x$ac_cv_file__dev_ptc" = xyes +then : fi if test "x$ac_cv_file__dev_ptc" = xyes; then -$as_echo "#define HAVE_DEV_PTC 1" >>confdefs.h +printf "%s\n" "#define HAVE_DEV_PTC 1" >>confdefs.h fi @@ -16736,15 +18974,17 @@ then LIBS="$LIBS -framework CoreFoundation" fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for %zd printf() format support" >&5 -$as_echo_n "checking for %zd printf() format support... " >&6; } -if ${ac_cv_have_size_t_format+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for %zd printf() format support" >&5 +printf %s "checking for %zd printf() format support... " >&6; } +if test ${ac_cv_have_size_t_format+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_have_size_t_format="cross -- assuming yes" -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16784,9 +19024,10 @@ int main() } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_have_size_t_format=yes -else +else $as_nop ac_cv_have_size_t_format=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16794,11 +19035,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_size_t_format" >&5 -$as_echo "$ac_cv_have_size_t_format" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_size_t_format" >&5 +printf "%s\n" "$ac_cv_have_size_t_format" >&6; } if test "$ac_cv_have_size_t_format" != no ; then -$as_echo "#define PY_FORMAT_SIZE_T \"z\"" >>confdefs.h +printf "%s\n" "#define PY_FORMAT_SIZE_T \"z\"" >>confdefs.h fi @@ -16811,23 +19052,26 @@ ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" " #endif " -if test "x$ac_cv_type_socklen_t" = xyes; then : +if test "x$ac_cv_type_socklen_t" = xyes +then : -else +else $as_nop -$as_echo "#define socklen_t int" >>confdefs.h +printf "%s\n" "#define socklen_t int" >>confdefs.h fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken mbstowcs" >&5 -$as_echo_n "checking for broken mbstowcs... " >&6; } -if ${ac_cv_broken_mbstowcs+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken mbstowcs" >&5 +printf %s "checking for broken mbstowcs... " >&6; } +if test ${ac_cv_broken_mbstowcs+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : ac_cv_broken_mbstowcs=no -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16841,9 +19085,10 @@ int main() { } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_broken_mbstowcs=no -else +else $as_nop ac_cv_broken_mbstowcs=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16852,57 +19097,60 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_mbstowcs" >&5 -$as_echo "$ac_cv_broken_mbstowcs" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_mbstowcs" >&5 +printf "%s\n" "$ac_cv_broken_mbstowcs" >&6; } if test "$ac_cv_broken_mbstowcs" = yes then -$as_echo "#define HAVE_BROKEN_MBSTOWCS 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_MBSTOWCS 1" >>confdefs.h fi # Check for --with-computed-gotos -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-computed-gotos" >&5 -$as_echo_n "checking for --with-computed-gotos... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-computed-gotos" >&5 +printf %s "checking for --with-computed-gotos... " >&6; } # Check whether --with-computed-gotos was given. -if test "${with_computed_gotos+set}" = set; then : +if test ${with_computed_gotos+y} +then : withval=$with_computed_gotos; if test "$withval" = yes then -$as_echo "#define USE_COMPUTED_GOTOS 1" >>confdefs.h +printf "%s\n" "#define USE_COMPUTED_GOTOS 1" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi if test "$withval" = no then -$as_echo "#define USE_COMPUTED_GOTOS 0" >>confdefs.h +printf "%s\n" "#define USE_COMPUTED_GOTOS 0" >>confdefs.h - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -$as_echo "no value specified" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +printf "%s\n" "no value specified" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports computed gotos" >&5 -$as_echo_n "checking whether $CC supports computed gotos... " >&6; } -if ${ac_cv_computed_gotos+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test "$cross_compiling" = yes; then : +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports computed gotos" >&5 +printf %s "checking whether $CC supports computed gotos... " >&6; } +if test ${ac_cv_computed_gotos+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "$cross_compiling" = yes +then : if test "${with_computed_gotos+set}" = set; then ac_cv_computed_gotos="$with_computed_gotos -- configured --with(out)-computed-gotos" else ac_cv_computed_gotos=no fi -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16918,9 +19166,10 @@ LABEL2: } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : ac_cv_computed_gotos=yes -else +else $as_nop ac_cv_computed_gotos=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16929,18 +19178,18 @@ fi fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5 -$as_echo "$ac_cv_computed_gotos" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5 +printf "%s\n" "$ac_cv_computed_gotos" >&6; } case "$ac_cv_computed_gotos" in yes*) -$as_echo "#define HAVE_COMPUTED_GOTOS 1" >>confdefs.h +printf "%s\n" "#define HAVE_COMPUTED_GOTOS 1" >>confdefs.h esac case $ac_sys_system in AIX*) -$as_echo "#define HAVE_BROKEN_PIPE_BUF 1" >>confdefs.h +printf "%s\n" "#define HAVE_BROKEN_PIPE_BUF 1" >>confdefs.h ;; esac @@ -16954,26 +19203,26 @@ done SRCDIRS="Parser Objects Python Modules Modules/_io Programs" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for build directories" >&5 -$as_echo_n "checking for build directories... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build directories" >&5 +printf %s "checking for build directories... " >&6; } for dir in $SRCDIRS; do if test ! -d $dir; then mkdir $dir fi done -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 -$as_echo "done" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } # Availability of -O2: -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -O2" >&5 -$as_echo_n "checking for -O2... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -O2" >&5 +printf %s "checking for -O2... " >&6; } saved_cflags="$CFLAGS" CFLAGS="-O2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main () +main (void) { @@ -16981,28 +19230,30 @@ main () return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO"; then : +if ac_fn_c_try_compile "$LINENO" +then : have_O2=yes -else +else $as_nop have_O2=no fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_O2" >&5 -$as_echo "$have_O2" >&6; } +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_O2" >&5 +printf "%s\n" "$have_O2" >&6; } CFLAGS="$saved_cflags" # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: # http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glibc _FORTIFY_SOURCE/memmove bug" >&5 -$as_echo_n "checking for glibc _FORTIFY_SOURCE/memmove bug... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glibc _FORTIFY_SOURCE/memmove bug" >&5 +printf %s "checking for glibc _FORTIFY_SOURCE/memmove bug... " >&6; } saved_cflags="$CFLAGS" CFLAGS="-O2 -D_FORTIFY_SOURCE=2" if test "$have_O2" = no; then CFLAGS="" fi -if test "$cross_compiling" = yes; then : +if test "$cross_compiling" = yes +then : have_glibc_memmove_bug=undefined -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17022,9 +19273,10 @@ int main() { } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : have_glibc_memmove_bug=no -else +else $as_nop have_glibc_memmove_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17032,11 +19284,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CFLAGS="$saved_cflags" -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_glibc_memmove_bug" >&5 -$as_echo "$have_glibc_memmove_bug" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_glibc_memmove_bug" >&5 +printf "%s\n" "$have_glibc_memmove_bug" >&6; } if test "$have_glibc_memmove_bug" = yes; then -$as_echo "#define HAVE_GLIBC_MEMMOVE_BUG 1" >>confdefs.h +printf "%s\n" "#define HAVE_GLIBC_MEMMOVE_BUG 1" >>confdefs.h fi @@ -17046,13 +19298,14 @@ if test "$have_gcc_asm_for_x87" = yes; then # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html case $CC in *gcc*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc ipa-pure-const bug" >&5 -$as_echo_n "checking for gcc ipa-pure-const bug... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gcc ipa-pure-const bug" >&5 +printf %s "checking for gcc ipa-pure-const bug... " >&6; } saved_cflags="$CFLAGS" CFLAGS="-O2" - if test "$cross_compiling" = yes; then : + if test "$cross_compiling" = yes +then : have_ipa_pure_const_bug=undefined -else +else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17073,9 +19326,10 @@ else } _ACEOF -if ac_fn_c_try_run "$LINENO"; then : +if ac_fn_c_try_run "$LINENO" +then : have_ipa_pure_const_bug=no -else +else $as_nop have_ipa_pure_const_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17083,11 +19337,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CFLAGS="$saved_cflags" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipa_pure_const_bug" >&5 -$as_echo "$have_ipa_pure_const_bug" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_ipa_pure_const_bug" >&5 +printf "%s\n" "$have_ipa_pure_const_bug" >&6; } if test "$have_ipa_pure_const_bug" = yes; then -$as_echo "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h +printf "%s\n" "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h fi ;; @@ -17095,8 +19349,8 @@ $as_echo "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h fi # Check for stdatomic.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdatomic.h" >&5 -$as_echo_n "checking for stdatomic.h... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdatomic.h" >&5 +printf %s "checking for stdatomic.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17113,26 +19367,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_stdatomic_h=yes -else +else $as_nop have_stdatomic_h=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_stdatomic_h" >&5 -$as_echo "$have_stdatomic_h" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_stdatomic_h" >&5 +printf "%s\n" "$have_stdatomic_h" >&6; } if test "$have_stdatomic_h" = yes; then -$as_echo "#define HAVE_STD_ATOMIC 1" >>confdefs.h +printf "%s\n" "#define HAVE_STD_ATOMIC 1" >>confdefs.h fi # Check for GCC >= 4.7 and clang __atomic builtin functions -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for builtin __atomic_load_n and __atomic_store_n functions" >&5 -$as_echo_n "checking for builtin __atomic_load_n and __atomic_store_n functions... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for builtin __atomic_load_n and __atomic_store_n functions" >&5 +printf %s "checking for builtin __atomic_load_n and __atomic_store_n functions... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17146,31 +19401,33 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_builtin_atomic=yes -else +else $as_nop have_builtin_atomic=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_builtin_atomic" >&5 -$as_echo "$have_builtin_atomic" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_builtin_atomic" >&5 +printf "%s\n" "$have_builtin_atomic" >&6; } if test "$have_builtin_atomic" = yes; then -$as_echo "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h +printf "%s\n" "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h fi # ensurepip option -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ensurepip" >&5 -$as_echo_n "checking for ensurepip... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ensurepip" >&5 +printf %s "checking for ensurepip... " >&6; } # Check whether --with-ensurepip was given. -if test "${with_ensurepip+set}" = set; then : +if test ${with_ensurepip+y} +then : withval=$with_ensurepip; -else +else $as_nop with_ensurepip=upgrade fi @@ -17184,13 +19441,13 @@ case $with_ensurepip in #( *) : as_fn_error $? "--with-ensurepip=upgrade|install|no" "$LINENO" 5 ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENSUREPIP" >&5 -$as_echo "$ENSUREPIP" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ENSUREPIP" >&5 +printf "%s\n" "$ENSUREPIP" >&6; } # check if the dirent structure of a d_type field and DT_UNKNOWN is defined -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the dirent structure of a d_type field" >&5 -$as_echo_n "checking if the dirent structure of a d_type field... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the dirent structure of a d_type field" >&5 +printf %s "checking if the dirent structure of a d_type field... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17204,25 +19461,26 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_dirent_d_type=yes -else +else $as_nop have_dirent_d_type=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_dirent_d_type" >&5 -$as_echo "$have_dirent_d_type" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_dirent_d_type" >&5 +printf "%s\n" "$have_dirent_d_type" >&6; } if test "$have_dirent_d_type" = yes; then -$as_echo "#define HAVE_DIRENT_D_TYPE 1" >>confdefs.h +printf "%s\n" "#define HAVE_DIRENT_D_TYPE 1" >>confdefs.h fi # check if the Linux getrandom() syscall is available -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Linux getrandom() syscall" >&5 -$as_echo_n "checking for the Linux getrandom() syscall... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Linux getrandom() syscall" >&5 +printf %s "checking for the Linux getrandom() syscall... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17242,26 +19500,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_getrandom_syscall=yes -else +else $as_nop have_getrandom_syscall=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getrandom_syscall" >&5 -$as_echo "$have_getrandom_syscall" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getrandom_syscall" >&5 +printf "%s\n" "$have_getrandom_syscall" >&6; } if test "$have_getrandom_syscall" = yes; then -$as_echo "#define HAVE_GETRANDOM_SYSCALL 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETRANDOM_SYSCALL 1" >>confdefs.h fi # check if the getrandom() function is available # the test was written for the Solaris function of -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the getrandom() function" >&5 -$as_echo_n "checking for the getrandom() function... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the getrandom() function" >&5 +printf %s "checking for the getrandom() function... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17279,19 +19538,20 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : have_getrandom=yes -else +else $as_nop have_getrandom=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getrandom" >&5 -$as_echo "$have_getrandom" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getrandom" >&5 +printf "%s\n" "$have_getrandom" >&6; } if test "$have_getrandom" = yes; then -$as_echo "#define HAVE_GETRANDOM 1" >>confdefs.h +printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h fi @@ -17299,11 +19559,12 @@ fi # shm_* may only be available if linking against librt save_LIBS="$LIBS" save_includes_default="$ac_includes_default" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 -$as_echo_n "checking for library containing shm_open... " >&6; } -if ${ac_cv_search_shm_open+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 +printf %s "checking for library containing shm_open... " >&6; } +if test ${ac_cv_search_shm_open+y} +then : + printf %s "(cached) " >&6 +else $as_nop ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17311,67 +19572,64 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif char shm_open (); int -main () +main (void) { return shm_open (); ; return 0; } _ACEOF -for ac_lib in '' rt; do +for ac_lib in '' rt +do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi - if ac_fn_c_try_link "$LINENO"; then : + if ac_fn_c_try_link "$LINENO" +then : ac_cv_search_shm_open=$ac_res fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext - if ${ac_cv_search_shm_open+:} false; then : + if test ${ac_cv_search_shm_open+y} +then : break fi done -if ${ac_cv_search_shm_open+:} false; then : +if test ${ac_cv_search_shm_open+y} +then : -else +else $as_nop ac_cv_search_shm_open=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 -$as_echo "$ac_cv_search_shm_open" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +printf "%s\n" "$ac_cv_search_shm_open" >&6; } ac_res=$ac_cv_search_shm_open -if test "$ac_res" != no; then : +if test "$ac_res" != no +then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi if test "$ac_cv_search_shm_open" = "-lrt"; then -$as_echo "#define SHM_NEEDS_LIBRT 1" >>confdefs.h +printf "%s\n" "#define SHM_NEEDS_LIBRT 1" >>confdefs.h fi -for ac_header in sys/mman.h -do : - ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" -if test "x$ac_cv_header_sys_mman_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SYS_MMAN_H 1 -_ACEOF +ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_mman_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h fi -done - # temporarily override ac_includes_default for AC_CHECK_FUNCS below ac_includes_default="\ ${ac_includes_default} @@ -17381,17 +19639,18 @@ ${ac_includes_default} # endif #endif " -for ac_func in shm_open shm_unlink -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF +ac_fn_c_check_func "$LINENO" "shm_open" "ac_cv_func_shm_open" +if test "x$ac_cv_func_shm_open" = xyes +then : + printf "%s\n" "#define HAVE_SHM_OPEN 1" >>confdefs.h + +fi +ac_fn_c_check_func "$LINENO" "shm_unlink" "ac_cv_func_shm_unlink" +if test "x$ac_cv_func_shm_unlink" = xyes +then : + printf "%s\n" "#define HAVE_SHM_UNLINK 1" >>confdefs.h fi -done # we don't want to link with librt always, restore LIBS LIBS="$save_LIBS" @@ -17402,7 +19661,8 @@ ac_includes_default="$save_includes_default" found=false # Check whether --with-openssl was given. -if test "${with_openssl+set}" = set; then : +if test ${with_openssl+y} +then : withval=$with_openssl; case "$withval" in "" | y | ye | yes | n | no) @@ -17412,18 +19672,19 @@ if test "${with_openssl+set}" = set; then : ;; esac -else +else $as_nop # if pkg-config is installed and openssl has installed a .pc file, # then use that information and don't search ssldirs if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else @@ -17431,11 +19692,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PKG_CONFIG="${ac_tool_prefix}pkg-config" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -17446,11 +19711,11 @@ fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +printf "%s\n" "$PKG_CONFIG" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -17459,11 +19724,12 @@ if test -z "$ac_cv_prog_PKG_CONFIG"; then ac_ct_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_PKG_CONFIG+:} false; then : - $as_echo_n "(cached) " >&6 -else +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop if test -n "$ac_ct_PKG_CONFIG"; then ac_cv_prog_ac_ct_PKG_CONFIG="$ac_ct_PKG_CONFIG" # Let the user override the test. else @@ -17471,11 +19737,15 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_PKG_CONFIG="pkg-config" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -17486,11 +19756,11 @@ fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5 -$as_echo "$ac_ct_PKG_CONFIG" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5 +printf "%s\n" "$ac_ct_PKG_CONFIG" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi if test "x$ac_ct_PKG_CONFIG" = x; then @@ -17498,8 +19768,8 @@ fi else case $cross_compiling:$ac_tool_warned in yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_ct_PKG_CONFIG @@ -17533,19 +19803,19 @@ fi if ! $found; then OPENSSL_INCLUDES= for ssldir in $ssldirs; do - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openssl/ssl.h in $ssldir" >&5 -$as_echo_n "checking for openssl/ssl.h in $ssldir... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl/ssl.h in $ssldir" >&5 +printf %s "checking for openssl/ssl.h in $ssldir... " >&6; } if test -f "$ssldir/include/openssl/ssl.h"; then OPENSSL_INCLUDES="-I$ssldir/include" OPENSSL_LDFLAGS="-L$ssldir/lib" OPENSSL_LIBS="-lssl -lcrypto" found=true - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } break else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi done @@ -17556,8 +19826,8 @@ $as_echo "no" >&6; } # try the preprocessor and linker with our new flags, # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiling and linking against OpenSSL works" >&5 -$as_echo_n "checking whether compiling and linking against OpenSSL works... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiling and linking against OpenSSL works" >&5 +printf %s "checking whether compiling and linking against OpenSSL works... " >&6; } echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \ "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&5 @@ -17571,27 +19841,28 @@ $as_echo_n "checking whether compiling and linking against OpenSSL works... " >& /* end confdefs.h. */ #include int -main () +main (void) { SSL_new(NULL) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO"; then : +if ac_fn_c_try_link "$LINENO" +then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } have_openssl=yes -else +else $as_nop - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } have_openssl=no fi -rm -f core conftest.err conftest.$ac_objext \ +rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" @@ -17603,13 +19874,14 @@ rm -f core conftest.err conftest.$ac_objext \ # rpath to libssl and libcrypto -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-openssl-rpath" >&5 -$as_echo_n "checking for --with-openssl-rpath... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-openssl-rpath" >&5 +printf %s "checking for --with-openssl-rpath... " >&6; } # Check whether --with-openssl-rpath was given. -if test "${with_openssl_rpath+set}" = set; then : +if test ${with_openssl_rpath+y} +then : withval=$with_openssl_rpath; -else +else $as_nop with_openssl_rpath=no fi @@ -17620,54 +19892,54 @@ case $with_openssl_rpath in #( no) : OPENSSL_RPATH= ;; #( *) : - if test -d "$with_openssl_rpath"; then : + if test -d "$with_openssl_rpath" +then : OPENSSL_RPATH="$with_openssl_rpath" -else +else $as_nop as_fn_error $? "--with-openssl-rpath \"$with_openssl_rpath\" is not a directory" "$LINENO" 5 fi ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 -$as_echo "$OPENSSL_RPATH" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 +printf "%s\n" "$OPENSSL_RPATH" >&6; } # ssl module default cipher suite string -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-ssl-default-suites" >&5 -$as_echo_n "checking for --with-ssl-default-suites... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-ssl-default-suites" >&5 +printf %s "checking for --with-ssl-default-suites... " >&6; } # Check whether --with-ssl-default-suites was given. -if test "${with_ssl_default_suites+set}" = set; then : +if test ${with_ssl_default_suites+y} +then : withval=$with_ssl_default_suites; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } case "$withval" in python) - $as_echo "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h + printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h ;; openssl) - $as_echo "#define PY_SSL_DEFAULT_CIPHERS 2" >>confdefs.h + printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 2" >>confdefs.h ;; *) - $as_echo "#define PY_SSL_DEFAULT_CIPHERS 0" >>confdefs.h + printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 0" >>confdefs.h - cat >>confdefs.h <<_ACEOF -#define PY_SSL_DEFAULT_CIPHER_STRING "$withval" -_ACEOF + printf "%s\n" "#define PY_SSL_DEFAULT_CIPHER_STRING \"$withval\"" >>confdefs.h ;; esac -else +else $as_nop -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: python" >&5 -$as_echo "python" >&6; } -$as_echo "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: python" >&5 +printf "%s\n" "python" >&6; } +printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h fi @@ -17676,13 +19948,14 @@ fi # builtin hash modules default_hashlib_hashes="md5,sha1,sha256,sha512,sha3,blake2" -$as_echo "#define PY_BUILTIN_HASHLIB_HASHES /**/" >>confdefs.h +printf "%s\n" "#define PY_BUILTIN_HASHLIB_HASHES /**/" >>confdefs.h -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-builtin-hashlib-hashes" >&5 -$as_echo_n "checking for --with-builtin-hashlib-hashes... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-builtin-hashlib-hashes" >&5 +printf %s "checking for --with-builtin-hashlib-hashes... " >&6; } # Check whether --with-builtin-hashlib-hashes was given. -if test "${with_builtin_hashlib_hashes+set}" = set; then : +if test ${with_builtin_hashlib_hashes+y} +then : withval=$with_builtin_hashlib_hashes; case "$withval" in yes) @@ -17692,20 +19965,16 @@ case "$withval" in withval="" ;; esac -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$withval" >&6; } -cat >>confdefs.h <<_ACEOF -#define PY_BUILTIN_HASHLIB_HASHES "$withval" -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +printf "%s\n" "$withval" >&6; } +printf "%s\n" "#define PY_BUILTIN_HASHLIB_HASHES \"$withval\"" >>confdefs.h -else +else $as_nop -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $default_hashlib_hashes" >&5 -$as_echo "$default_hashlib_hashes" >&6; }; -cat >>confdefs.h <<_ACEOF -#define PY_BUILTIN_HASHLIB_HASHES "$default_hashlib_hashes" -_ACEOF +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $default_hashlib_hashes" >&5 +printf "%s\n" "$default_hashlib_hashes" >&6; }; +printf "%s\n" "#define PY_BUILTIN_HASHLIB_HASHES \"$default_hashlib_hashes\"" >>confdefs.h fi @@ -17713,48 +19982,50 @@ fi # --with-experimental-isolated-subinterpreters -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 -$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 +printf %s "checking for --with-experimental-isolated-subinterpreters... " >&6; } # Check whether --with-experimental-isolated-subinterpreters was given. -if test "${with_experimental_isolated_subinterpreters+set}" = set; then : +if test ${with_experimental_isolated_subinterpreters+y} +then : withval=$with_experimental_isolated_subinterpreters; if test "$withval" != no then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; - $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; }; + printf "%s\n" "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi # --with-static-libpython STATIC_LIBPYTHON=1 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 -$as_echo_n "checking for --with-static-libpython... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 +printf %s "checking for --with-static-libpython... " >&6; } # Check whether --with-static-libpython was given. -if test "${with_static_libpython+set}" = set; then : +if test ${with_static_libpython+y} +then : withval=$with_static_libpython; if test "$withval" = no then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; }; STATIC_LIBPYTHON=0 else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; }; + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; }; fi -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } fi LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' @@ -17771,21 +20042,22 @@ fi # Check whether to disable test modules. Once set, setup.py will not build # test extension modules and "make install" will not install test suites. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 -$as_echo_n "checking for --disable-test-modules... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 +printf %s "checking for --disable-test-modules... " >&6; } # Check whether --enable-test-modules was given. -if test "${enable_test_modules+set}" = set; then : +if test ${enable_test_modules+y} +then : enableval=$enable_test_modules; fi if test "$enable_test_modules" = no; then TEST_MODULES=no - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } else TEST_MODULES=yes - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } fi @@ -17822,8 +20094,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -17853,15 +20125,15 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -17875,8 +20147,8 @@ $as_echo "$as_me: updating cache $cache_file" >&6;} fi fi else - { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache @@ -17893,7 +20165,7 @@ U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" @@ -17910,8 +20182,8 @@ LTLIBOBJS=$ac_ltlibobjs ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -17934,14 +20206,16 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else +else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -17951,46 +20225,46 @@ esac fi + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -# Prefer a ksh shell builtin over an external printf program on Solaris, -# but without wasting forks for bash or zsh. -if test -z "$BASH_VERSION$ZSH_VERSION" \ - && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='print -r --' - as_echo_n='print -rn --' -elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in #( - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then +if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || @@ -17999,13 +20273,6 @@ if test "${PATH_SEPARATOR+set}" != set; then fi -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( @@ -18014,8 +20281,12 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS @@ -18027,30 +20298,10 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi -# Unset variables that we do not need and which cause bugs (e.g. in -# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" -# suppresses any "Segmentation fault" message there. '((' could -# trigger a bug in pdksh 5.2.14. -for as_var in BASH_ENV ENV MAIL MAILPATH -do eval test x\${$as_var+set} = xset \ - && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] @@ -18063,13 +20314,14 @@ as_fn_error () as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - $as_echo "$as_me: error: $2" >&2 + printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error + # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -18096,18 +20348,20 @@ as_fn_unset () { eval $1=; unset $1;} } as_unset=as_fn_unset + # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. -if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : eval 'as_fn_append () { eval $1+=\$2 }' -else +else $as_nop as_fn_append () { eval $1=\$$1\$2 @@ -18119,12 +20373,13 @@ fi # as_fn_append # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. -if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : eval 'as_fn_arith () { as_val=$(( $* )) }' -else +else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -18155,7 +20410,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | +printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -18177,6 +20432,10 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) @@ -18190,6 +20449,12 @@ case `echo -n x` in #((((( ECHO_N='-n';; esac +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -18231,7 +20496,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -18240,7 +20505,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | +printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -18303,7 +20568,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # values after options handling. ac_log=" This file was extended by python $as_me 3.10, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -18361,14 +20626,16 @@ $config_headers Report bugs to ." _ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ python config.status 3.10 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -18407,15 +20674,15 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; + printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - $as_echo "$ac_cs_config"; exit ;; + printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -18423,7 +20690,7 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; @@ -18432,7 +20699,7 @@ do as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; + printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -18460,7 +20727,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -18474,7 +20741,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - $as_echo "$ac_log" + printf "%s\n" "$ac_log" } >&5 _ACEOF @@ -18508,8 +20775,8 @@ done # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree @@ -18845,7 +21112,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -18853,17 +21120,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | + ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -18880,7 +21147,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | +printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -18904,9 +21171,9 @@ $as_echo X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; @@ -18968,8 +21235,8 @@ ac_sed_dataroot=' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -19013,9 +21280,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -19031,20 +21298,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else - $as_echo "/* $configure_input */" \ + printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -19090,8 +21357,8 @@ if test "$no_create" != yes; then $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi @@ -19115,3 +21382,4 @@ if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then echo "" >&6 echo "" >&6 fi + From webhook-mailer at python.org Mon Aug 2 22:17:34 2021 From: webhook-mailer at python.org (benjaminp) Date: Tue, 03 Aug 2021 02:17:34 -0000 Subject: [Python-checkins] closes bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (#17658) Message-ID: https://github.com/python/cpython/commit/83ca46b7784b7357d82ec47b33295e09ed7380cb commit: 83ca46b7784b7357d82ec47b33295e09ed7380cb branch: main author: Noah <33094578+coolreader18 at users.noreply.github.com> committer: benjaminp date: 2021-08-02T19:17:18-07:00 summary: closes bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (#17658) Co-authored-by: Benjamin Peterson files: A Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst M Lib/test/test_generators.py M Misc/ACKS M Python/errors.c diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index ebf8bb7e32098..53d579e723c47 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -270,6 +270,32 @@ def gen(): self.assertEqual(next(g), "done") self.assertEqual(sys.exc_info(), (None, None, None)) + def test_except_throw_bad_exception(self): + class E(Exception): + def __new__(cls, *args, **kwargs): + return cls + + def boring_generator(): + yield + + gen = boring_generator() + + err_msg = 'should have returned an instance of BaseException' + + with self.assertRaisesRegex(TypeError, err_msg): + gen.throw(E) + + self.assertRaises(StopIteration, next, gen) + + def generator(): + with self.assertRaisesRegex(TypeError, err_msg): + yield + + gen = generator() + next(gen) + with self.assertRaises(StopIteration): + gen.throw(E) + def test_stopiteration_error(self): # See also PEP 479. diff --git a/Misc/ACKS b/Misc/ACKS index 97a360c8ecfc3..f845c1c5a4898 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1300,6 +1300,7 @@ Peter Otten Michael Otteneder Richard Oudkerk Russel Owen +Noah Oxer Joonas Paalasmaa Yaroslav Pankovych Martin Packman diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst new file mode 100644 index 0000000000000..c3b4e810d658b --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst @@ -0,0 +1 @@ +Fix crash when using passing a non-exception to a generator's ``throw()`` method. Patch by Noah Oxer diff --git a/Python/errors.c b/Python/errors.c index 1f84215a136a4..eeb84e83835e9 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -85,17 +85,29 @@ _PyErr_GetTopmostException(PyThreadState *tstate) } static PyObject* -_PyErr_CreateException(PyObject *exception, PyObject *value) +_PyErr_CreateException(PyObject *exception_type, PyObject *value) { + PyObject *exc; + if (value == NULL || value == Py_None) { - return _PyObject_CallNoArg(exception); + exc = _PyObject_CallNoArg(exception_type); } else if (PyTuple_Check(value)) { - return PyObject_Call(exception, value, NULL); + exc = PyObject_Call(exception_type, value, NULL); } else { - return PyObject_CallOneArg(exception, value); + exc = PyObject_CallOneArg(exception_type, value); + } + + if (exc != NULL && !PyExceptionInstance_Check(exc)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %s", + exception_type, Py_TYPE(exc)->tp_name); + Py_CLEAR(exc); } + + return exc; } void From webhook-mailer at python.org Tue Aug 3 06:11:06 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 10:11:06 -0000 Subject: [Python-checkins] bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (GH-17658) (GH-27572) Message-ID: https://github.com/python/cpython/commit/8ce7f2f4ef04e19209f1dfd2a0cf50ddcd0e999f commit: 8ce7f2f4ef04e19209f1dfd2a0cf50ddcd0e999f branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-03T12:10:38+02:00 summary: bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (GH-17658) (GH-27572) Co-authored-by: Benjamin Peterson (cherry picked from commit 83ca46b7784b7357d82ec47b33295e09ed7380cb) Co-authored-by: Noah <33094578+coolreader18 at users.noreply.github.com> files: A Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst M Lib/test/test_generators.py M Misc/ACKS M Python/errors.c diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index ebf8bb7e320982..53d579e723c470 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -270,6 +270,32 @@ def gen(): self.assertEqual(next(g), "done") self.assertEqual(sys.exc_info(), (None, None, None)) + def test_except_throw_bad_exception(self): + class E(Exception): + def __new__(cls, *args, **kwargs): + return cls + + def boring_generator(): + yield + + gen = boring_generator() + + err_msg = 'should have returned an instance of BaseException' + + with self.assertRaisesRegex(TypeError, err_msg): + gen.throw(E) + + self.assertRaises(StopIteration, next, gen) + + def generator(): + with self.assertRaisesRegex(TypeError, err_msg): + yield + + gen = generator() + next(gen) + with self.assertRaises(StopIteration): + gen.throw(E) + def test_stopiteration_error(self): # See also PEP 479. diff --git a/Misc/ACKS b/Misc/ACKS index 3f0506ecf758e5..3e750c08bfd001 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1300,6 +1300,7 @@ Peter Otten Michael Otteneder Richard Oudkerk Russel Owen +Noah Oxer Joonas Paalasmaa Yaroslav Pankovych Martin Packman diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst new file mode 100644 index 00000000000000..c3b4e810d658b2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst @@ -0,0 +1 @@ +Fix crash when using passing a non-exception to a generator's ``throw()`` method. Patch by Noah Oxer diff --git a/Python/errors.c b/Python/errors.c index f743d3089e20ba..d4b9db1aba34ee 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -85,17 +85,29 @@ _PyErr_GetTopmostException(PyThreadState *tstate) } static PyObject* -_PyErr_CreateException(PyObject *exception, PyObject *value) +_PyErr_CreateException(PyObject *exception_type, PyObject *value) { + PyObject *exc; + if (value == NULL || value == Py_None) { - return _PyObject_CallNoArg(exception); + exc = _PyObject_CallNoArg(exception_type); } else if (PyTuple_Check(value)) { - return PyObject_Call(exception, value, NULL); + exc = PyObject_Call(exception_type, value, NULL); } else { - return PyObject_CallOneArg(exception, value); + exc = PyObject_CallOneArg(exception_type, value); + } + + if (exc != NULL && !PyExceptionInstance_Check(exc)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %s", + exception_type, Py_TYPE(exc)->tp_name); + Py_CLEAR(exc); } + + return exc; } void From webhook-mailer at python.org Tue Aug 3 06:11:06 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 10:11:06 -0000 Subject: [Python-checkins] bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (GH-17658) (GH-27573) Message-ID: https://github.com/python/cpython/commit/0b551db04a99a97abb1e44a071c688c3ca704b67 commit: 0b551db04a99a97abb1e44a071c688c3ca704b67 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-03T12:10:54+02:00 summary: bpo-39091: Fix segfault when Exception constructor returns non-exception for gen.throw. (GH-17658) (GH-27573) Co-authored-by: Benjamin Peterson (cherry picked from commit 83ca46b7784b7357d82ec47b33295e09ed7380cb) Co-authored-by: Noah <33094578+coolreader18 at users.noreply.github.com> files: A Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst M Lib/test/test_generators.py M Misc/ACKS M Python/errors.c diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index 3bf152280868e8..17fb87acc8f677 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -270,6 +270,32 @@ def gen(): self.assertEqual(next(g), "done") self.assertEqual(sys.exc_info(), (None, None, None)) + def test_except_throw_bad_exception(self): + class E(Exception): + def __new__(cls, *args, **kwargs): + return cls + + def boring_generator(): + yield + + gen = boring_generator() + + err_msg = 'should have returned an instance of BaseException' + + with self.assertRaisesRegex(TypeError, err_msg): + gen.throw(E) + + self.assertRaises(StopIteration, next, gen) + + def generator(): + with self.assertRaisesRegex(TypeError, err_msg): + yield + + gen = generator() + next(gen) + with self.assertRaises(StopIteration): + gen.throw(E) + def test_stopiteration_error(self): # See also PEP 479. diff --git a/Misc/ACKS b/Misc/ACKS index fc5602d39b65af..59ae1462b86a24 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -1279,6 +1279,7 @@ Peter Otten Michael Otteneder Richard Oudkerk Russel Owen +Noah Oxer Joonas Paalasmaa Martin Packman Shriphani Palakodety diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst new file mode 100644 index 00000000000000..c3b4e810d658b2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-21-14-18-32.bpo-39091.dOexgQ.rst @@ -0,0 +1 @@ +Fix crash when using passing a non-exception to a generator's ``throw()`` method. Patch by Noah Oxer diff --git a/Python/errors.c b/Python/errors.c index 87af39d527a512..2c020cd2660c53 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -85,17 +85,29 @@ _PyErr_GetTopmostException(PyThreadState *tstate) } static PyObject* -_PyErr_CreateException(PyObject *exception, PyObject *value) +_PyErr_CreateException(PyObject *exception_type, PyObject *value) { + PyObject *exc; + if (value == NULL || value == Py_None) { - return _PyObject_CallNoArg(exception); + exc = _PyObject_CallNoArg(exception_type); } else if (PyTuple_Check(value)) { - return PyObject_Call(exception, value, NULL); + exc = PyObject_Call(exception_type, value, NULL); } else { - return PyObject_CallOneArg(exception, value); + exc = PyObject_CallOneArg(exception_type, value); + } + + if (exc != NULL && !PyExceptionInstance_Check(exc)) { + PyErr_Format(PyExc_TypeError, + "calling %R should have returned an instance of " + "BaseException, not %s", + exception_type, Py_TYPE(exc)->tp_name); + Py_CLEAR(exc); } + + return exc; } void From webhook-mailer at python.org Tue Aug 3 07:01:31 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 11:01:31 -0000 Subject: [Python-checkins] bpo-27275: Change popitem() and pop() methods of collections.OrderedDict (GH-27530) Message-ID: https://github.com/python/cpython/commit/8c9f847997196aa76500d1ae104cbe7fe2a467ed commit: 8c9f847997196aa76500d1ae104cbe7fe2a467ed branch: main author: Serhiy Storchaka committer: ambv date: 2021-08-03T13:00:55+02:00 summary: bpo-27275: Change popitem() and pop() methods of collections.OrderedDict (GH-27530) * Unify the C and Python implementations of OrderedDict.popitem(). The C implementation no longer calls ``__getitem__`` and ``__delitem__`` methods of the OrderedDict subclasses. * Change popitem() and pop() methods of collections.OrderedDict For consistency with dict both implementations (pure Python and C) of these methods in OrderedDict no longer call __getitem__ and __delitem__ methods of the OrderedDict subclasses. Previously only the Python implementation of popitem() did not call them. files: A Misc/NEWS.d/next/Library/2021-08-01-19-49-09.bpo-27275.QsvE0k.rst M Lib/collections/__init__.py M Lib/test/test_ordered_dict.py M Objects/odictobject.c diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py index bae0805d6686c5..d989d85d6d8293 100644 --- a/Lib/collections/__init__.py +++ b/Lib/collections/__init__.py @@ -236,11 +236,19 @@ def pop(self, key, default=__marker): is raised. ''' - if key in self: - result = self[key] - del self[key] + marker = self.__marker + result = dict.pop(self, key, marker) + if result is not marker: + # The same as in __delitem__(). + link = self.__map.pop(key) + link_prev = link.prev + link_next = link.next + link_prev.next = link_next + link_next.prev = link_prev + link.prev = None + link.next = None return result - if default is self.__marker: + if default is marker: raise KeyError(key) return default diff --git a/Lib/test/test_ordered_dict.py b/Lib/test/test_ordered_dict.py index d48edb5881a14d..d51296a2d12441 100644 --- a/Lib/test/test_ordered_dict.py +++ b/Lib/test/test_ordered_dict.py @@ -896,5 +896,88 @@ def test_popitem(self): self.assertRaises(KeyError, d.popitem) +class SimpleLRUCache: + + def __init__(self, size): + super().__init__() + self.size = size + self.counts = dict.fromkeys(('get', 'set', 'del'), 0) + + def __getitem__(self, item): + self.counts['get'] += 1 + value = super().__getitem__(item) + self.move_to_end(item) + return value + + def __setitem__(self, key, value): + self.counts['set'] += 1 + while key not in self and len(self) >= self.size: + self.popitem(last=False) + super().__setitem__(key, value) + self.move_to_end(key) + + def __delitem__(self, key): + self.counts['del'] += 1 + super().__delitem__(key) + + +class SimpleLRUCacheTests: + + def test_add_after_full(self): + c = self.type2test(2) + c['t1'] = 1 + c['t2'] = 2 + c['t3'] = 3 + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + self.assertEqual(list(c), ['t2', 't3']) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + + def test_popitem(self): + c = self.type2test(3) + for i in range(1, 4): + c[i] = i + self.assertEqual(c.popitem(last=False), (1, 1)) + self.assertEqual(c.popitem(last=True), (3, 3)) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + + def test_pop(self): + c = self.type2test(3) + for i in range(1, 4): + c[i] = i + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + self.assertEqual(c.pop(2), 2) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + self.assertEqual(c.pop(4, 0), 0) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + self.assertRaises(KeyError, c.pop, 4) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + + def test_change_order_on_get(self): + c = self.type2test(3) + for i in range(1, 4): + c[i] = i + self.assertEqual(list(c), list(range(1, 4))) + self.assertEqual(c.counts, {'get': 0, 'set': 3, 'del': 0}) + self.assertEqual(c[2], 2) + self.assertEqual(c.counts, {'get': 1, 'set': 3, 'del': 0}) + self.assertEqual(list(c), [1, 3, 2]) + + +class PySimpleLRUCacheTests(SimpleLRUCacheTests, unittest.TestCase): + + class type2test(SimpleLRUCache, py_coll.OrderedDict): + pass + + + at unittest.skipUnless(c_coll, 'requires the C version of the collections module') +class CSimpleLRUCacheTests(SimpleLRUCacheTests, unittest.TestCase): + + @classmethod + def setUpClass(cls): + class type2test(SimpleLRUCache, c_coll.OrderedDict): + pass + cls.type2test = type2test + + if __name__ == "__main__": unittest.main() diff --git a/Misc/NEWS.d/next/Library/2021-08-01-19-49-09.bpo-27275.QsvE0k.rst b/Misc/NEWS.d/next/Library/2021-08-01-19-49-09.bpo-27275.QsvE0k.rst new file mode 100644 index 00000000000000..1f5afaf4d108e4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-01-19-49-09.bpo-27275.QsvE0k.rst @@ -0,0 +1,3 @@ +:meth:`collections.OrderedDict.popitem` and :meth:`collections.OrderedDict.pop` +no longer call ``__getitem__`` and ``__delitem__`` methods of the OrderedDict +subclasses. diff --git a/Objects/odictobject.c b/Objects/odictobject.c index fb1ac0ce48dcfc..e5361da6dcdedb 100644 --- a/Objects/odictobject.c +++ b/Objects/odictobject.c @@ -1047,81 +1047,26 @@ OrderedDict_setdefault_impl(PyODictObject *self, PyObject *key, /* pop() */ -/* forward */ -static PyObject * _odict_popkey(PyObject *, PyObject *, PyObject *); - -/* Skips __missing__() calls. */ -/*[clinic input] -OrderedDict.pop - - key: object - default: object = NULL - -od.pop(key[,default]) -> v, remove specified key and return the corresponding value. - -If the key is not found, return the default if given; otherwise, -raise a KeyError. -[clinic start generated code]*/ - -static PyObject * -OrderedDict_pop_impl(PyODictObject *self, PyObject *key, - PyObject *default_value) -/*[clinic end generated code: output=7a6447d104e7494b input=7efe36601007dff7]*/ -{ - return _odict_popkey((PyObject *)self, key, default_value); -} - static PyObject * _odict_popkey_hash(PyObject *od, PyObject *key, PyObject *failobj, Py_hash_t hash) { - _ODictNode *node; PyObject *value = NULL; - /* Pop the node first to avoid a possible dict resize (due to - eval loop reentrancy) and complications due to hash collision - resolution. */ - node = _odict_find_node_hash((PyODictObject *)od, key, hash); - if (node == NULL) { - if (PyErr_Occurred()) - return NULL; - } - else { + _ODictNode *node = _odict_find_node_hash((PyODictObject *)od, key, hash); + if (node != NULL) { + /* Pop the node first to avoid a possible dict resize (due to + eval loop reentrancy) and complications due to hash collision + resolution. */ int res = _odict_clear_node((PyODictObject *)od, node, key, hash); if (res < 0) { return NULL; } + /* Now delete the value from the dict. */ + value = _PyDict_Pop_KnownHash(od, key, hash, failobj); } - - /* Now delete the value from the dict. */ - if (PyODict_CheckExact(od)) { - if (node != NULL) { - value = _PyDict_GetItem_KnownHash(od, key, hash); /* borrowed */ - if (value != NULL) { - Py_INCREF(value); - if (_PyDict_DelItem_KnownHash(od, key, hash) < 0) { - Py_DECREF(value); - return NULL; - } - } - } - } - else { - int exists = PySequence_Contains(od, key); - if (exists < 0) - return NULL; - if (exists) { - value = PyObject_GetItem(od, key); - if (value != NULL) { - if (PyObject_DelItem(od, key) == -1) { - Py_CLEAR(value); - } - } - } - } - - /* Apply the fallback value, if necessary. */ - if (value == NULL && !PyErr_Occurred()) { + else if (value == NULL && !PyErr_Occurred()) { + /* Apply the fallback value, if necessary. */ if (failobj) { value = failobj; Py_INCREF(failobj); @@ -1134,14 +1079,28 @@ _odict_popkey_hash(PyObject *od, PyObject *key, PyObject *failobj, return value; } +/* Skips __missing__() calls. */ +/*[clinic input] +OrderedDict.pop + + key: object + default: object = NULL + +od.pop(key[,default]) -> v, remove specified key and return the corresponding value. + +If the key is not found, return the default if given; otherwise, +raise a KeyError. +[clinic start generated code]*/ + static PyObject * -_odict_popkey(PyObject *od, PyObject *key, PyObject *failobj) +OrderedDict_pop_impl(PyODictObject *self, PyObject *key, + PyObject *default_value) +/*[clinic end generated code: output=7a6447d104e7494b input=7efe36601007dff7]*/ { Py_hash_t hash = PyObject_Hash(key); if (hash == -1) return NULL; - - return _odict_popkey_hash(od, key, failobj, hash); + return _odict_popkey_hash((PyObject *)self, key, default_value, hash); } From webhook-mailer at python.org Tue Aug 3 07:28:23 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 11:28:23 -0000 Subject: [Python-checkins] bpo-41737: expand doc for NotADirectoryError (GH-27471) Message-ID: https://github.com/python/cpython/commit/f7c23a99cd4f8179b6ba2cffaeb78b852c0f6488 commit: f7c23a99cd4f8179b6ba2cffaeb78b852c0f6488 branch: main author: andrei kulakov committer: ambv date: 2021-08-03T13:28:09+02:00 summary: bpo-41737: expand doc for NotADirectoryError (GH-27471) files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 0a5037a4b2106..669979f7c5d5d 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -690,8 +690,10 @@ depending on the system error code. .. exception:: NotADirectoryError - Raised when a directory operation (such as :func:`os.listdir`) is requested - on something which is not a directory. + Raised when a directory operation (such as :func:`os.listdir`) is requested on + something which is not a directory. On most POSIX platforms, it may also be + raised if an operation attempts to open or traverse a non-directory file as if + it were a directory. Corresponds to :c:data:`errno` ``ENOTDIR``. .. exception:: PermissionError From webhook-mailer at python.org Tue Aug 3 08:03:45 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 12:03:45 -0000 Subject: [Python-checkins] bpo-41737: expand doc for NotADirectoryError (GH-27471) (GH-27577) Message-ID: https://github.com/python/cpython/commit/b5f026112768eb0a06622263bdea86d7d85981c5 commit: b5f026112768eb0a06622263bdea86d7d85981c5 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-03T14:03:40+02:00 summary: bpo-41737: expand doc for NotADirectoryError (GH-27471) (GH-27577) (cherry picked from commit f7c23a99cd4f8179b6ba2cffaeb78b852c0f6488) Co-authored-by: andrei kulakov files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 6bed5c70f0ad0..85cd193f903b0 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -659,8 +659,10 @@ depending on the system error code. .. exception:: NotADirectoryError - Raised when a directory operation (such as :func:`os.listdir`) is requested - on something which is not a directory. + Raised when a directory operation (such as :func:`os.listdir`) is requested on + something which is not a directory. On most POSIX platforms, it may also be + raised if an operation attempts to open or traverse a non-directory file as if + it were a directory. Corresponds to :c:data:`errno` ``ENOTDIR``. .. exception:: PermissionError From webhook-mailer at python.org Tue Aug 3 08:05:09 2021 From: webhook-mailer at python.org (miss-islington) Date: Tue, 03 Aug 2021 12:05:09 -0000 Subject: [Python-checkins] bpo-41737: expand doc for NotADirectoryError (GH-27471) Message-ID: https://github.com/python/cpython/commit/84494db41902774ea6ac72e5b308b429850bbf71 commit: 84494db41902774ea6ac72e5b308b429850bbf71 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-03T05:05:04-07:00 summary: bpo-41737: expand doc for NotADirectoryError (GH-27471) (cherry picked from commit f7c23a99cd4f8179b6ba2cffaeb78b852c0f6488) Co-authored-by: andrei kulakov files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index d5d81dfd9e638..0e606360efae1 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -690,8 +690,10 @@ depending on the system error code. .. exception:: NotADirectoryError - Raised when a directory operation (such as :func:`os.listdir`) is requested - on something which is not a directory. + Raised when a directory operation (such as :func:`os.listdir`) is requested on + something which is not a directory. On most POSIX platforms, it may also be + raised if an operation attempts to open or traverse a non-directory file as if + it were a directory. Corresponds to :c:data:`errno` ``ENOTDIR``. .. exception:: PermissionError From webhook-mailer at python.org Tue Aug 3 08:47:54 2021 From: webhook-mailer at python.org (ambv) Date: Tue, 03 Aug 2021 12:47:54 -0000 Subject: [Python-checkins] bpo-44808: fixes test for interactive inspect getsource of a class (GH-27571) Message-ID: https://github.com/python/cpython/commit/58325971de0faf330c9c38269dae8315a0746e59 commit: 58325971de0faf330c9c38269dae8315a0746e59 branch: main author: andrei kulakov committer: ambv date: 2021-08-03T14:47:30+02:00 summary: bpo-44808: fixes test for interactive inspect getsource of a class (GH-27571) Co-authored-by: ?ukasz Langa files: M Lib/test/test_inspect.py diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index b0c42a2dcf6ce..e87311ac0230f 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -586,19 +586,15 @@ def test_getsource_on_code_object(self): self.assertSourceEqual(mod.eggs.__code__, 12, 18) class TestGetsourceInteractive(unittest.TestCase): - def tearDown(self): - mod.ParrotDroppings.__module__ = self.mod - sys.modules['__main__'] = self.main - def test_getclasses_interactive(self): - self.main = sys.modules['__main__'] - self.mod = mod.ParrotDroppings.__module__ - class MockModule: - __file__ = None - sys.modules['__main__'] = MockModule - mod.ParrotDroppings.__module__ = '__main__' - with self.assertRaisesRegex(OSError, 'source code not available') as e: - inspect.getsource(mod.ParrotDroppings) + # bpo-44648: simulate a REPL session; + # there is no `__file__` in the __main__ module + code = "import sys, inspect; \ + assert not hasattr(sys.modules['__main__'], '__file__'); \ + A = type('A', (), {}); \ + inspect.getsource(A)" + _, _, stderr = assert_python_failure("-c", code, __isolated=True) + self.assertIn(b'OSError: source code not available', stderr) class TestGettingSourceOfToplevelFrames(GetSourceBase): fodderModule = mod From webhook-mailer at python.org Tue Aug 3 09:08:07 2021 From: webhook-mailer at python.org (miss-islington) Date: Tue, 03 Aug 2021 13:08:07 -0000 Subject: [Python-checkins] bpo-44808: fixes test for interactive inspect getsource of a class (GH-27571) Message-ID: https://github.com/python/cpython/commit/bc2841c7a9fe2b05ef77ebdf77701188dc83b2ce commit: bc2841c7a9fe2b05ef77ebdf77701188dc83b2ce branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-03T06:07:59-07:00 summary: bpo-44808: fixes test for interactive inspect getsource of a class (GH-27571) Co-authored-by: ?ukasz Langa (cherry picked from commit 58325971de0faf330c9c38269dae8315a0746e59) Co-authored-by: andrei kulakov files: M Lib/test/test_inspect.py diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py index 157f315999c42..a9778282d90a4 100644 --- a/Lib/test/test_inspect.py +++ b/Lib/test/test_inspect.py @@ -586,19 +586,15 @@ def test_getsource_on_code_object(self): self.assertSourceEqual(mod.eggs.__code__, 12, 18) class TestGetsourceInteractive(unittest.TestCase): - def tearDown(self): - mod.ParrotDroppings.__module__ = self.mod - sys.modules['__main__'] = self.main - def test_getclasses_interactive(self): - self.main = sys.modules['__main__'] - self.mod = mod.ParrotDroppings.__module__ - class MockModule: - __file__ = None - sys.modules['__main__'] = MockModule - mod.ParrotDroppings.__module__ = '__main__' - with self.assertRaisesRegex(OSError, 'source code not available') as e: - inspect.getsource(mod.ParrotDroppings) + # bpo-44648: simulate a REPL session; + # there is no `__file__` in the __main__ module + code = "import sys, inspect; \ + assert not hasattr(sys.modules['__main__'], '__file__'); \ + A = type('A', (), {}); \ + inspect.getsource(A)" + _, _, stderr = assert_python_failure("-c", code, __isolated=True) + self.assertIn(b'OSError: source code not available', stderr) class TestGettingSourceOfToplevelFrames(GetSourceBase): fodderModule = mod From webhook-mailer at python.org Tue Aug 3 11:52:54 2021 From: webhook-mailer at python.org (zooba) Date: Tue, 03 Aug 2021 15:52:54 -0000 Subject: [Python-checkins] Ensure LICENSE.txt file is generated even in PGO builds (GH-27580) Message-ID: https://github.com/python/cpython/commit/6871fd0e8e5257f3ffebd1a1b2ca50e5f494e7f6 commit: 6871fd0e8e5257f3ffebd1a1b2ca50e5f494e7f6 branch: main author: Steve Dower committer: zooba date: 2021-08-03T16:52:45+01:00 summary: Ensure LICENSE.txt file is generated even in PGO builds (GH-27580) files: M PCbuild/regen.targets diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets index 27fdd6e29b8bc..9492cff2d8c3e 100644 --- a/PCbuild/regen.targets +++ b/PCbuild/regen.targets @@ -101,7 +101,8 @@ + Condition="($(Platform) == 'Win32' or $(Platform) == 'x64') and + $(Configuration) != 'PGInstrument' and $(Configuration) != 'PGUpdate'"> @@ -121,7 +122,5 @@ - + From webhook-mailer at python.org Tue Aug 3 12:38:14 2021 From: webhook-mailer at python.org (pablogsal) Date: Tue, 03 Aug 2021 16:38:14 -0000 Subject: [Python-checkins] Ensure LICENSE.txt file is generated even in PGO builds (GH-27580) (GH-27582) Message-ID: https://github.com/python/cpython/commit/4b46db68d0cb4a84f4f13501218a3ec2438fca1e commit: 4b46db68d0cb4a84f4f13501218a3ec2438fca1e branch: 3.10 author: Steve Dower committer: pablogsal date: 2021-08-03T17:38:04+01:00 summary: Ensure LICENSE.txt file is generated even in PGO builds (GH-27580) (GH-27582) files: M PCbuild/regen.targets diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets index ff56d1148e845..08ace5707c6a8 100644 --- a/PCbuild/regen.targets +++ b/PCbuild/regen.targets @@ -110,7 +110,5 @@ - + From webhook-mailer at python.org Tue Aug 3 13:21:30 2021 From: webhook-mailer at python.org (ammaraskar) Date: Tue, 03 Aug 2021 17:21:30 -0000 Subject: [Python-checkins] bpo-41886: Fix documented type of PyType_Type (GH-22454) Message-ID: https://github.com/python/cpython/commit/ac811f9b5a68ce8756911ef2c8be83b46696018f commit: ac811f9b5a68ce8756911ef2c8be83b46696018f branch: main author: da-woods committer: ammaraskar date: 2021-08-03T13:21:25-04:00 summary: bpo-41886: Fix documented type of PyType_Type (GH-22454) files: M Doc/c-api/type.rst diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index 46cb3768fcee4..630c7db437cb4 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -13,7 +13,7 @@ Type Objects The C structure of the objects used to describe built-in types. -.. c:var:: PyObject* PyType_Type +.. c:var:: PyTypeObject PyType_Type This is the type object for type objects; it is the same object as :class:`type` in the Python layer. From webhook-mailer at python.org Tue Aug 3 13:48:17 2021 From: webhook-mailer at python.org (miss-islington) Date: Tue, 03 Aug 2021 17:48:17 -0000 Subject: [Python-checkins] bpo-41886: Fix documented type of PyType_Type (GH-22454) Message-ID: https://github.com/python/cpython/commit/f26fec4f74ae7da972595703bc39d3d30b8cfdf9 commit: f26fec4f74ae7da972595703bc39d3d30b8cfdf9 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-03T10:48:08-07:00 summary: bpo-41886: Fix documented type of PyType_Type (GH-22454) (cherry picked from commit ac811f9b5a68ce8756911ef2c8be83b46696018f) Co-authored-by: da-woods files: M Doc/c-api/type.rst diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index d7f4bd67def13..69894cae2069e 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -13,7 +13,7 @@ Type Objects The C structure of the objects used to describe built-in types. -.. c:var:: PyObject* PyType_Type +.. c:var:: PyTypeObject PyType_Type This is the type object for type objects; it is the same object as :class:`type` in the Python layer. From webhook-mailer at python.org Tue Aug 3 13:50:34 2021 From: webhook-mailer at python.org (miss-islington) Date: Tue, 03 Aug 2021 17:50:34 -0000 Subject: [Python-checkins] bpo-41886: Fix documented type of PyType_Type (GH-22454) Message-ID: https://github.com/python/cpython/commit/952aa31c89f70d3c53596449bd2ed9a4817a2364 commit: 952aa31c89f70d3c53596449bd2ed9a4817a2364 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-03T10:50:24-07:00 summary: bpo-41886: Fix documented type of PyType_Type (GH-22454) (cherry picked from commit ac811f9b5a68ce8756911ef2c8be83b46696018f) Co-authored-by: da-woods files: M Doc/c-api/type.rst diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index 7a677593d073d..4d0c65cc31f76 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -13,7 +13,7 @@ Type Objects The C structure of the objects used to describe built-in types. -.. c:var:: PyObject* PyType_Type +.. c:var:: PyTypeObject PyType_Type This is the type object for type objects; it is the same object as :class:`type` in the Python layer. From webhook-mailer at python.org Wed Aug 4 06:39:57 2021 From: webhook-mailer at python.org (markshannon) Date: Wed, 04 Aug 2021 10:39:57 -0000 Subject: [Python-checkins] Add option to write specialization stats to files and script to summarize. (GH-27575) Message-ID: https://github.com/python/cpython/commit/c83919bd635f4433f1c6ae8504996a9fe3c215e5 commit: c83919bd635f4433f1c6ae8504996a9fe3c215e5 branch: main author: Mark Shannon committer: markshannon date: 2021-08-04T11:39:52+01:00 summary: Add option to write specialization stats to files and script to summarize. (GH-27575) * Add option to write stats to random file in a directory. * Add script to summarize stats. files: A Tools/scripts/summarize_specialization_stats.py M Include/internal/pycore_code.h M Python/ceval.c M Python/specialize.c diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 2a50a0700feaa1..312939ee1d26e6 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -302,6 +302,7 @@ int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT #define SPECIALIZATION_STATS 0 #define SPECIALIZATION_STATS_DETAILED 0 +#define SPECIALIZATION_STATS_TO_FILE 0 #if SPECIALIZATION_STATS diff --git a/Python/ceval.c b/Python/ceval.c index 4f7edb84fc3696..e3658b81388321 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -4408,6 +4408,7 @@ opname ## _miss: \ cache_backoff(cache); \ } \ oparg = cache->original_oparg; \ + STAT_DEC(opname, unquickened); \ JUMP_TO_INSTRUCTION(opname); \ } @@ -4423,6 +4424,7 @@ opname ## _miss: \ next_instr[-1] = _Py_MAKECODEUNIT(opname ## _ADAPTIVE, oparg); \ STAT_INC(opname, deopt); \ } \ + STAT_DEC(opname, unquickened); \ JUMP_TO_INSTRUCTION(opname); \ } diff --git a/Python/specialize.c b/Python/specialize.c index 680ffb428e4441..1ca49d244a87b0 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -117,10 +117,10 @@ _Py_GetSpecializationStats(void) { #endif -#define PRINT_STAT(name, field) fprintf(stderr, " %s." #field " : %" PRIu64 "\n", name, stats->field); +#define PRINT_STAT(name, field) fprintf(out, " %s." #field " : %" PRIu64 "\n", name, stats->field); static void -print_stats(SpecializationStats *stats, const char *name) +print_stats(FILE *out, SpecializationStats *stats, const char *name) { PRINT_STAT(name, specialization_success); PRINT_STAT(name, specialization_failure); @@ -133,18 +133,18 @@ print_stats(SpecializationStats *stats, const char *name) if (stats->miss_types == NULL) { return; } - fprintf(stderr, " %s.fails:\n", name); + fprintf(out, " %s.fails:\n", name); PyObject *key, *count; Py_ssize_t pos = 0; while (PyDict_Next(stats->miss_types, &pos, &key, &count)) { PyObject *type = PyTuple_GetItem(key, 0); PyObject *name = PyTuple_GetItem(key, 1); PyObject *kind = PyTuple_GetItem(key, 2); - fprintf(stderr, " %s.", ((PyTypeObject *)type)->tp_name); - PyObject_Print(name, stderr, Py_PRINT_RAW); - fprintf(stderr, " ("); - PyObject_Print(kind, stderr, Py_PRINT_RAW); - fprintf(stderr, "): %ld\n", PyLong_AsLong(count)); + fprintf(out, " %s.", ((PyTypeObject *)type)->tp_name); + PyObject_Print(name, out, Py_PRINT_RAW); + fprintf(out, " ("); + PyObject_Print(kind, out, Py_PRINT_RAW); + fprintf(out, "): %ld\n", PyLong_AsLong(count)); } #endif } @@ -153,10 +153,29 @@ print_stats(SpecializationStats *stats, const char *name) void _Py_PrintSpecializationStats(void) { - printf("Specialization stats:\n"); - print_stats(&_specialization_stats[LOAD_ATTR], "load_attr"); - print_stats(&_specialization_stats[LOAD_GLOBAL], "load_global"); - print_stats(&_specialization_stats[BINARY_SUBSCR], "binary_subscr"); + FILE *out = stderr; +#if SPECIALIZATION_STATS_TO_FILE + /* Write to a file instead of stderr. */ +# ifdef MS_WINDOWS + const char *dirname = "c:\\temp\\py_stats\\"; +# else + const char *dirname = "/tmp/py_stats/"; +# endif + char buf[48]; + sprintf(buf, "%s%u_%u.txt", dirname, (unsigned)clock(), (unsigned)rand()); + FILE *fout = fopen(buf, "w"); + if (fout) { + out = fout; + } +#else + fprintf(out, "Specialization stats:\n"); +#endif + print_stats(out, &_specialization_stats[LOAD_ATTR], "load_attr"); + print_stats(out, &_specialization_stats[LOAD_GLOBAL], "load_global"); + print_stats(out, &_specialization_stats[BINARY_SUBSCR], "binary_subscr"); + if (out != stderr) { + fclose(out); + } } #if SPECIALIZATION_STATS_DETAILED diff --git a/Tools/scripts/summarize_specialization_stats.py b/Tools/scripts/summarize_specialization_stats.py new file mode 100644 index 00000000000000..1a13ae8cb6ce5a --- /dev/null +++ b/Tools/scripts/summarize_specialization_stats.py @@ -0,0 +1,41 @@ +"""Print a summary of specialization stats for all files in the +default stats folders. +""" + +import collections +import os.path + +if os.name == "nt": + DEFAULT_DIR = "c:\\temp\\py_stats\\" +else: + DEFAULT_DIR = "/tmp/py_stats/" + + +TOTAL = "deferred", "hit", "miss", "unquickened" + +def print_stats(name, family_stats): + total = sum(family_stats[kind] for kind in TOTAL) + if total == 0: + return + print(name+":") + for key in sorted(family_stats): + if not key.startswith("specialization"): + print(f"{key:>12}:{family_stats[key]:>12} {100*family_stats[key]/total:0.1f}%") + for key in ("specialization_success", "specialization_failure"): + print(f" {key}:{family_stats[key]:>12}") + +def main(): + stats = collections.defaultdict(collections.Counter) + for filename in os.listdir(DEFAULT_DIR): + for line in open(os.path.join(DEFAULT_DIR, filename)): + key, value = line.split(":") + key = key.strip() + family, stat = key.split(".") + value = int(value.strip()) + stats[family][stat] += value + + for name in sorted(stats): + print_stats(name, stats[name]) + +if __name__ == "__main__": + main() From webhook-mailer at python.org Wed Aug 4 11:41:23 2021 From: webhook-mailer at python.org (markshannon) Date: Wed, 04 Aug 2021 15:41:23 -0000 Subject: [Python-checkins] bpo-44821: Eagerly assign __dict__ for new objects. (GH-27589) Message-ID: https://github.com/python/cpython/commit/cee67fa66129b5d1db5c8aa3884338f82f0da3de commit: cee67fa66129b5d1db5c8aa3884338f82f0da3de branch: main author: Mark Shannon committer: markshannon date: 2021-08-04T16:41:14+01:00 summary: bpo-44821: Eagerly assign __dict__ for new objects. (GH-27589) files: A Misc/NEWS.d/next/Core and Builtins/2021-08-04-11-37-38.bpo-44821.67YHGI.rst M Include/internal/pycore_object.h M Lib/test/test_capi.py M Lib/test/test_gdb.py M Objects/dictobject.c M Objects/typeobject.c diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 4091f5178eed1..744b41ae5d90d 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -180,6 +180,8 @@ extern int _Py_CheckSlotResult( extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); +extern int _PyObject_InitializeDict(PyObject *obj); + #ifdef __cplusplus } #endif diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 169e7acbf92b4..9165f45db64f3 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -323,9 +323,13 @@ class C(): pass break """ rc, out, err = assert_python_ok('-c', code) - self.assertIn(b'MemoryError 1', out) - self.assertIn(b'MemoryError 2 20', out) - self.assertIn(b'MemoryError 3 30', out) + lines = out.splitlines() + for i, line in enumerate(lines, 1): + self.assertIn(b'MemoryError', out) + *_, count = line.split(b' ') + count = int(count) + self.assertLessEqual(count, i*5) + self.assertGreaterEqual(count, i*5-1) def test_mapping_keys_values_items(self): class Mapping1(dict): diff --git a/Lib/test/test_gdb.py b/Lib/test/test_gdb.py index 7bdef25c76384..98b36d6cd049c 100644 --- a/Lib/test/test_gdb.py +++ b/Lib/test/test_gdb.py @@ -566,7 +566,7 @@ def test_builtins_help(self): # http://bugs.python.org/issue8032#msg100537 ) gdb_repr, gdb_output = self.get_gdb_repr('id(__builtins__.help)', import_site=True) - m = re.match(r'<_Helper at remote 0x-?[0-9a-f]+>', gdb_repr) + m = re.match(r'<_Helper\(\) at remote 0x-?[0-9a-f]+>', gdb_repr) self.assertTrue(m, msg='Unexpected rendering %r' % gdb_repr) diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-04-11-37-38.bpo-44821.67YHGI.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-04-11-37-38.bpo-44821.67YHGI.rst new file mode 100644 index 0000000000000..1e254a62773bb --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-04-11-37-38.bpo-44821.67YHGI.rst @@ -0,0 +1,2 @@ +Create instance dictionaries (__dict__) eagerly, to improve regularity of +object layout and assist specialization. diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 5fb9d01561236..5ad630feaf1e8 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -4866,19 +4866,44 @@ _PyDict_NewKeysForClass(void) #define CACHED_KEYS(tp) (((PyHeapTypeObject*)tp)->ht_cached_keys) +int +_PyObject_InitializeDict(PyObject *obj) +{ + PyObject **dictptr = _PyObject_GetDictPtr(obj); + if (dictptr == NULL) { + return 0; + } + assert(*dictptr == NULL); + PyTypeObject *tp = Py_TYPE(obj); + PyObject *dict; + if (_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE) && CACHED_KEYS(tp)) { + dictkeys_incref(CACHED_KEYS(tp)); + dict = new_dict_with_shared_keys(CACHED_KEYS(tp)); + } + else { + dict = PyDict_New(); + } + if (dict == NULL) { + return -1; + } + *dictptr = dict; + return 0; +} + + PyObject * PyObject_GenericGetDict(PyObject *obj, void *context) { - PyObject *dict, **dictptr = _PyObject_GetDictPtr(obj); + PyObject **dictptr = _PyObject_GetDictPtr(obj); if (dictptr == NULL) { PyErr_SetString(PyExc_AttributeError, "This object has no __dict__"); return NULL; } - dict = *dictptr; + PyObject *dict = *dictptr; if (dict == NULL) { PyTypeObject *tp = Py_TYPE(obj); - if ((tp->tp_flags & Py_TPFLAGS_HEAPTYPE) && CACHED_KEYS(tp)) { + if (_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE) && CACHED_KEYS(tp)) { dictkeys_incref(CACHED_KEYS(tp)); *dictptr = dict = new_dict_with_shared_keys(CACHED_KEYS(tp)); } diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 2240f780bb9ce..7ae50c453ed2f 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -4505,7 +4505,15 @@ object_new(PyTypeObject *type, PyObject *args, PyObject *kwds) Py_DECREF(joined); return NULL; } - return type->tp_alloc(type, 0); + PyObject *obj = type->tp_alloc(type, 0); + if (obj == NULL) { + return NULL; + } + if (_PyObject_InitializeDict(obj)) { + Py_DECREF(obj); + return NULL; + } + return obj; } static void From webhook-mailer at python.org Wed Aug 4 12:09:32 2021 From: webhook-mailer at python.org (vstinner) Date: Wed, 04 Aug 2021 16:09:32 -0000 Subject: [Python-checkins] bpo-41117: Cleanup subtract_refs() (GH-27593) Message-ID: https://github.com/python/cpython/commit/c34fa2bb06ea44045af8493dfa414addb2b7ce66 commit: c34fa2bb06ea44045af8493dfa414addb2b7ce66 branch: main author: Victor Stinner committer: vstinner date: 2021-08-04T18:09:14+02:00 summary: bpo-41117: Cleanup subtract_refs() (GH-27593) subtract_refs() reuses the 'op' variable rather than calling the FROM_GC() macro twice. Issue reported by William Pickard. files: M Modules/gcmodule.c diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index e5e5aa3287b0d..2592c397cf2f7 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -479,9 +479,9 @@ subtract_refs(PyGC_Head *containers) for (; gc != containers; gc = GC_NEXT(gc)) { PyObject *op = FROM_GC(gc); traverse = Py_TYPE(op)->tp_traverse; - (void) traverse(FROM_GC(gc), - (visitproc)visit_decref, - op); + (void) traverse(op, + (visitproc)visit_decref, + op); } } From webhook-mailer at python.org Wed Aug 4 13:46:49 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 17:46:49 -0000 Subject: [Python-checkins] Fix hyperlink conflict in turtle docs (GH-27592) Message-ID: https://github.com/python/cpython/commit/3d2b4c6f18d7e644e5850d2af74ac5dc530eb24c commit: 3d2b4c6f18d7e644e5850d2af74ac5dc530eb24c branch: main author: Harry committer: ambv date: 2021-08-04T19:46:30+02:00 summary: Fix hyperlink conflict in turtle docs (GH-27592) files: M Doc/library/turtle.rst diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 9e8e85da2bbb9..17bf8829a9fed 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -193,8 +193,8 @@ Methods of TurtleScreen/Screen Window control | :func:`bgcolor` | :func:`bgpic` - | :func:`clear` | :func:`clearscreen` - | :func:`reset` | :func:`resetscreen` + | :func:`clearscreen` + | :func:`resetscreen` | :func:`screensize` | :func:`setworldcoordinates` @@ -1069,7 +1069,6 @@ More drawing control ~~~~~~~~~~~~~~~~~~~~ .. function:: reset() - :noindex: Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values. @@ -1091,7 +1090,6 @@ More drawing control .. function:: clear() - :noindex: Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected. @@ -1627,11 +1625,7 @@ Window control .. function:: clear() - clearscreen() - - Delete all drawings and all turtles from the TurtleScreen. Reset the now - empty TurtleScreen to its initial state: white background, no background - image, no event bindings and tracing on. + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1639,10 +1633,15 @@ Window control derived from the Turtle method ``clear``. -.. function:: reset() - resetscreen() +.. function:: clearscreen() - Reset all Turtles on the Screen to their initial state. + Delete all drawings and all turtles from the TurtleScreen. Reset the now + empty TurtleScreen to its initial state: white background, no background + image, no event bindings and tracing on. + + +.. function:: reset() + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1650,6 +1649,11 @@ Window control derived from the Turtle method ``reset``. +.. function:: resetscreen() + + Reset all Turtles on the Screen to their initial state. + + .. function:: screensize(canvwidth=None, canvheight=None, bg=None) :param canvwidth: positive integer, new width of canvas in pixels From webhook-mailer at python.org Wed Aug 4 14:01:40 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 18:01:40 -0000 Subject: [Python-checkins] Note that tp_clear and m_clear are not always called (GH-27581) Message-ID: https://github.com/python/cpython/commit/10faada709561663d6b1f623d308ff45e3808cca commit: 10faada709561663d6b1f623d308ff45e3808cca branch: main author: Petr Viktorin committer: ambv date: 2021-08-04T20:01:31+02:00 summary: Note that tp_clear and m_clear are not always called (GH-27581) files: M Doc/c-api/module.rst M Doc/c-api/typeobj.rst diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index a2541afb685c3..94c8d9f981713 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -221,6 +221,12 @@ or request "multi-phase initialization" by returning the definition struct itsel than 0 and the module state (as returned by :c:func:`PyModule_GetState`) is ``NULL``. + Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* + called before a module is deallocated. For example, when reference + counting is enough to determine that an object is no longer used, + the cyclic garbage collector is not involved and + :c:member:`~PyModuleDef.m_free` is called directly. + .. versionchanged:: 3.9 No longer called before the module state is allocated. diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index b18e3852be3ad..b17fb22b69495 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -1381,6 +1381,12 @@ and :c:type:`PyType_Type` effectively act as defaults.) so that *self* knows the contained object can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations in a safe order. + Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called + before an instance is deallocated. For example, when reference counting + is enough to determine that an object is no longer used, the cyclic garbage + collector is not involved and :c:member:`~PyTypeObject.tp_dealloc` is + called directly. + Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break reference cycles, it's not necessary to clear contained objects like Python strings or Python integers, which can't participate in reference cycles. On the other hand, it may From webhook-mailer at python.org Wed Aug 4 14:07:09 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 18:07:09 -0000 Subject: [Python-checkins] bpo-44801: Check arguments in substitution of ParamSpec in Callable (GH-27585) Message-ID: https://github.com/python/cpython/commit/3875a6954741065b136650db67ac533bc70a3eac commit: 3875a6954741065b136650db67ac533bc70a3eac branch: main author: Serhiy Storchaka committer: ambv date: 2021-08-04T20:07:01+02:00 summary: bpo-44801: Check arguments in substitution of ParamSpec in Callable (GH-27585) files: A Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst M Lib/_collections_abc.py M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/_collections_abc.py b/Lib/_collections_abc.py index 33db9b259817c..87a9cd2d46de9 100644 --- a/Lib/_collections_abc.py +++ b/Lib/_collections_abc.py @@ -426,22 +426,16 @@ class _CallableGenericAlias(GenericAlias): __slots__ = () def __new__(cls, origin, args): - return cls.__create_ga(origin, args) - - @classmethod - def __create_ga(cls, origin, args): - if not isinstance(args, tuple) or len(args) != 2: + if not (isinstance(args, tuple) and len(args) == 2): raise TypeError( "Callable must be used as Callable[[arg, ...], result].") t_args, t_result = args - if isinstance(t_args, (list, tuple)): - ga_args = tuple(t_args) + (t_result,) - # This relaxes what t_args can be on purpose to allow things like - # PEP 612 ParamSpec. Responsibility for whether a user is using - # Callable[...] properly is deferred to static type checkers. - else: - ga_args = args - return super().__new__(cls, origin, ga_args) + if isinstance(t_args, list): + args = (*t_args, t_result) + elif not _is_param_expr(t_args): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {t_args}") + return super().__new__(cls, origin, args) @property def __parameters__(self): @@ -456,7 +450,7 @@ def __parameters__(self): return tuple(dict.fromkeys(params)) def __repr__(self): - if _has_special_args(self.__args__): + if len(self.__args__) == 2 and _is_param_expr(self.__args__[0]): return super().__repr__() return (f'collections.abc.Callable' f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], ' @@ -464,7 +458,7 @@ def __repr__(self): def __reduce__(self): args = self.__args__ - if not _has_special_args(args): + if not (len(args) == 2 and _is_param_expr(args[0])): args = list(args[:-1]), args[-1] return _CallableGenericAlias, (Callable, args) @@ -479,10 +473,11 @@ def __getitem__(self, item): param_len = len(self.__parameters__) if param_len == 0: raise TypeError(f'{self} is not a generic class') - if (param_len == 1 - and isinstance(item, (tuple, list)) - and len(item) > 1) or not isinstance(item, tuple): + if not isinstance(item, tuple): item = (item,) + if (param_len == 1 and _is_param_expr(self.__parameters__[0]) + and item and not _is_param_expr(item[0])): + item = (list(item),) item_len = len(item) if item_len != param_len: raise TypeError(f'Too {"many" if item_len > param_len else "few"}' @@ -492,7 +487,13 @@ def __getitem__(self, item): new_args = [] for arg in self.__args__: if _is_typevarlike(arg): - arg = subst[arg] + if _is_param_expr(arg): + arg = subst[arg] + if not _is_param_expr(arg): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {arg}") + else: + arg = subst[arg] # Looks like a GenericAlias elif hasattr(arg, '__parameters__') and isinstance(arg.__parameters__, tuple): subparams = arg.__parameters__ @@ -502,32 +503,31 @@ def __getitem__(self, item): new_args.append(arg) # args[0] occurs due to things like Z[[int, str, bool]] from PEP 612 - if not isinstance(new_args[0], (tuple, list)): + if not isinstance(new_args[0], list): t_result = new_args[-1] t_args = new_args[:-1] new_args = (t_args, t_result) return _CallableGenericAlias(Callable, tuple(new_args)) + def _is_typevarlike(arg): obj = type(arg) # looks like a TypeVar/ParamSpec return (obj.__module__ == 'typing' and obj.__name__ in {'ParamSpec', 'TypeVar'}) -def _has_special_args(args): - """Checks if args[0] matches either ``...``, ``ParamSpec`` or +def _is_param_expr(obj): + """Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or ``_ConcatenateGenericAlias`` from typing.py """ - if len(args) != 2: - return False - obj = args[0] if obj is Ellipsis: return True + if isinstance(obj, list): + return True obj = type(obj) names = ('ParamSpec', '_ConcatenateGenericAlias') return obj.__module__ == 'typing' and any(obj.__name__ == name for name in names) - def _type_repr(obj): """Return the repr() of an object, special-casing types (internal helper). diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 1a172a06705de..439d963af5bd4 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -581,17 +581,33 @@ def test_paramspec(self): Callable = self.Callable fullname = f"{Callable.__module__}.Callable" P = ParamSpec('P') + P2 = ParamSpec('P2') C1 = Callable[P, T] # substitution - self.assertEqual(C1[int, str], Callable[[int], str]) + self.assertEqual(C1[[int], str], Callable[[int], str]) self.assertEqual(C1[[int, str], str], Callable[[int, str], str]) + self.assertEqual(C1[[], str], Callable[[], str]) + self.assertEqual(C1[..., str], Callable[..., str]) + self.assertEqual(C1[P2, str], Callable[P2, str]) + self.assertEqual(C1[Concatenate[int, P2], str], + Callable[Concatenate[int, P2], str]) self.assertEqual(repr(C1), f"{fullname}[~P, ~T]") - self.assertEqual(repr(C1[int, str]), f"{fullname}[[int], str]") + self.assertEqual(repr(C1[[int, str], str]), f"{fullname}[[int, str], str]") + with self.assertRaises(TypeError): + C1[int, str] C2 = Callable[P, int] + self.assertEqual(C2[[int]], Callable[[int], int]) + self.assertEqual(C2[[int, str]], Callable[[int, str], int]) + self.assertEqual(C2[[]], Callable[[], int]) + self.assertEqual(C2[...], Callable[..., int]) + self.assertEqual(C2[P2], Callable[P2, int]) + self.assertEqual(C2[Concatenate[int, P2]], + Callable[Concatenate[int, P2], int]) # special case in PEP 612 where # X[int, str, float] == X[[int, str, float]] - self.assertEqual(C2[int, str, float], C2[[int, str, float]]) + self.assertEqual(C2[int], Callable[[int], int]) + self.assertEqual(C2[int, str], Callable[[int, str], int]) self.assertEqual(repr(C2), f"{fullname}[~P, int]") self.assertEqual(repr(C2[int, str]), f"{fullname}[[int, str], int]") @@ -4656,6 +4672,29 @@ class Z(Generic[P]): self.assertEqual(G5.__parameters__, G6.__parameters__) self.assertEqual(G5, G6) + G7 = Z[int] + self.assertEqual(G7.__args__, ((int,),)) + self.assertEqual(G7.__parameters__, ()) + + with self.assertRaisesRegex(TypeError, "many arguments for"): + Z[[int, str], bool] + with self.assertRaisesRegex(TypeError, "many arguments for"): + Z[P_2, bool] + + def test_multiple_paramspecs_in_user_generics(self): + P = ParamSpec("P") + P2 = ParamSpec("P2") + + class X(Generic[P, P2]): + f: Callable[P, int] + g: Callable[P2, str] + + G1 = X[[int, str], [bytes]] + G2 = X[[int], [str, bytes]] + self.assertNotEqual(G1, G2) + self.assertEqual(G1.__args__, ((int, str), (bytes,))) + self.assertEqual(G2.__args__, ((int,), (str, bytes))) + def test_no_paramspec_in__parameters__(self): # ParamSpec should not be found in __parameters__ # of generics. Usages outside Callable, Concatenate diff --git a/Lib/typing.py b/Lib/typing.py index 7a12d31f2b35e..9c595ae541aa1 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -182,6 +182,11 @@ def _type_check(arg, msg, is_argument=True, module=None): return arg +def _is_param_expr(arg): + return arg is ... or isinstance(arg, + (tuple, list, ParamSpec, _ConcatenateGenericAlias)) + + def _type_repr(obj): """Return the repr() of an object, special-casing types (internal helper). @@ -236,7 +241,9 @@ def _prepare_paramspec_params(cls, params): variables (internal helper). """ # Special case where Z[[int, str, bool]] == Z[int, str, bool] in PEP 612. - if len(cls.__parameters__) == 1 and len(params) > 1: + if (len(cls.__parameters__) == 1 + and params and not _is_param_expr(params[0])): + assert isinstance(cls.__parameters__[0], ParamSpec) return (params,) else: _check_generic(cls, params, len(cls.__parameters__)) @@ -1033,7 +1040,13 @@ def __getitem__(self, params): new_args = [] for arg in self.__args__: if isinstance(arg, self._typevar_types): - arg = subst[arg] + if isinstance(arg, ParamSpec): + arg = subst[arg] + if not _is_param_expr(arg): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {arg}") + else: + arg = subst[arg] elif isinstance(arg, (_GenericAlias, GenericAlias, types.UnionType)): subparams = arg.__parameters__ if subparams: @@ -1131,8 +1144,7 @@ class _CallableGenericAlias(_GenericAlias, _root=True): def __repr__(self): assert self._name == 'Callable' args = self.__args__ - if len(args) == 2 and (args[0] is Ellipsis - or isinstance(args[0], (ParamSpec, _ConcatenateGenericAlias))): + if len(args) == 2 and _is_param_expr(args[0]): return super().__repr__() return (f'typing.Callable' f'[[{", ".join([_type_repr(a) for a in args[:-1]])}], ' @@ -1140,8 +1152,7 @@ def __repr__(self): def __reduce__(self): args = self.__args__ - if not (len(args) == 2 and (args[0] is Ellipsis - or isinstance(args[0], (ParamSpec, _ConcatenateGenericAlias)))): + if not (len(args) == 2 and _is_param_expr(args[0])): args = list(args[:-1]), args[-1] return operator.getitem, (Callable, args) @@ -1864,8 +1875,7 @@ def get_args(tp): if isinstance(tp, (_GenericAlias, GenericAlias)): res = tp.__args__ if (tp.__origin__ is collections.abc.Callable - and not (res[0] is Ellipsis - or isinstance(res[0], (ParamSpec, _ConcatenateGenericAlias)))): + and not (len(res) == 2 and _is_param_expr(res[0]))): res = (list(res[:-1]), res[-1]) return res if isinstance(tp, types.UnionType): diff --git a/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst b/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst new file mode 100644 index 0000000000000..05e372a5fabb0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst @@ -0,0 +1,3 @@ +Ensure that the :class:`~typing.ParamSpec` variable in Callable +can only be substituted with a parameters expression (a list of types, +an ellipsis, ParamSpec or Concatenate). From webhook-mailer at python.org Wed Aug 4 14:14:22 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 18:14:22 -0000 Subject: [Python-checkins] Fix hyperlink conflict in turtle docs (GH-27592) Message-ID: https://github.com/python/cpython/commit/40a863185ee53b7c9044d970dfa0207a971764c2 commit: 40a863185ee53b7c9044d970dfa0207a971764c2 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T11:14:12-07:00 summary: Fix hyperlink conflict in turtle docs (GH-27592) (cherry picked from commit 3d2b4c6f18d7e644e5850d2af74ac5dc530eb24c) Co-authored-by: Harry files: M Doc/library/turtle.rst diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 6a9d61916ad1a..228cf1e01e74a 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -193,8 +193,8 @@ Methods of TurtleScreen/Screen Window control | :func:`bgcolor` | :func:`bgpic` - | :func:`clear` | :func:`clearscreen` - | :func:`reset` | :func:`resetscreen` + | :func:`clearscreen` + | :func:`resetscreen` | :func:`screensize` | :func:`setworldcoordinates` @@ -1069,7 +1069,6 @@ More drawing control ~~~~~~~~~~~~~~~~~~~~ .. function:: reset() - :noindex: Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values. @@ -1091,7 +1090,6 @@ More drawing control .. function:: clear() - :noindex: Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected. @@ -1627,11 +1625,7 @@ Window control .. function:: clear() - clearscreen() - - Delete all drawings and all turtles from the TurtleScreen. Reset the now - empty TurtleScreen to its initial state: white background, no background - image, no event bindings and tracing on. + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1639,10 +1633,15 @@ Window control derived from the Turtle method ``clear``. -.. function:: reset() - resetscreen() +.. function:: clearscreen() - Reset all Turtles on the Screen to their initial state. + Delete all drawings and all turtles from the TurtleScreen. Reset the now + empty TurtleScreen to its initial state: white background, no background + image, no event bindings and tracing on. + + +.. function:: reset() + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1650,6 +1649,11 @@ Window control derived from the Turtle method ``reset``. +.. function:: resetscreen() + + Reset all Turtles on the Screen to their initial state. + + .. function:: screensize(canvwidth=None, canvheight=None, bg=None) :param canvwidth: positive integer, new width of canvas in pixels From webhook-mailer at python.org Wed Aug 4 14:15:25 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 18:15:25 -0000 Subject: [Python-checkins] Fix hyperlink conflict in turtle docs (GH-27592) (GH-27595) Message-ID: https://github.com/python/cpython/commit/bf9425be5d4c77e2b47c45ff94f6b53dc72f7529 commit: bf9425be5d4c77e2b47c45ff94f6b53dc72f7529 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T20:15:19+02:00 summary: Fix hyperlink conflict in turtle docs (GH-27592) (GH-27595) (cherry picked from commit 3d2b4c6f18d7e644e5850d2af74ac5dc530eb24c) Co-authored-by: Harry files: M Doc/library/turtle.rst diff --git a/Doc/library/turtle.rst b/Doc/library/turtle.rst index 6a9d61916ad1a..228cf1e01e74a 100644 --- a/Doc/library/turtle.rst +++ b/Doc/library/turtle.rst @@ -193,8 +193,8 @@ Methods of TurtleScreen/Screen Window control | :func:`bgcolor` | :func:`bgpic` - | :func:`clear` | :func:`clearscreen` - | :func:`reset` | :func:`resetscreen` + | :func:`clearscreen` + | :func:`resetscreen` | :func:`screensize` | :func:`setworldcoordinates` @@ -1069,7 +1069,6 @@ More drawing control ~~~~~~~~~~~~~~~~~~~~ .. function:: reset() - :noindex: Delete the turtle's drawings from the screen, re-center the turtle and set variables to the default values. @@ -1091,7 +1090,6 @@ More drawing control .. function:: clear() - :noindex: Delete the turtle's drawings from the screen. Do not move turtle. State and position of the turtle as well as drawings of other turtles are not affected. @@ -1627,11 +1625,7 @@ Window control .. function:: clear() - clearscreen() - - Delete all drawings and all turtles from the TurtleScreen. Reset the now - empty TurtleScreen to its initial state: white background, no background - image, no event bindings and tracing on. + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1639,10 +1633,15 @@ Window control derived from the Turtle method ``clear``. -.. function:: reset() - resetscreen() +.. function:: clearscreen() - Reset all Turtles on the Screen to their initial state. + Delete all drawings and all turtles from the TurtleScreen. Reset the now + empty TurtleScreen to its initial state: white background, no background + image, no event bindings and tracing on. + + +.. function:: reset() + :noindex: .. note:: This TurtleScreen method is available as a global function only under the @@ -1650,6 +1649,11 @@ Window control derived from the Turtle method ``reset``. +.. function:: resetscreen() + + Reset all Turtles on the Screen to their initial state. + + .. function:: screensize(canvwidth=None, canvheight=None, bg=None) :param canvwidth: positive integer, new width of canvas in pixels From webhook-mailer at python.org Wed Aug 4 14:23:51 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 18:23:51 -0000 Subject: [Python-checkins] Note that tp_clear and m_clear are not always called (GH-27581) Message-ID: https://github.com/python/cpython/commit/f4b3217874743762c3e157979c0cd315853f18a9 commit: f4b3217874743762c3e157979c0cd315853f18a9 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T11:23:41-07:00 summary: Note that tp_clear and m_clear are not always called (GH-27581) (cherry picked from commit 10faada709561663d6b1f623d308ff45e3808cca) Co-authored-by: Petr Viktorin files: M Doc/c-api/module.rst M Doc/c-api/typeobj.rst diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index a2541afb685c3..94c8d9f981713 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -221,6 +221,12 @@ or request "multi-phase initialization" by returning the definition struct itsel than 0 and the module state (as returned by :c:func:`PyModule_GetState`) is ``NULL``. + Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* + called before a module is deallocated. For example, when reference + counting is enough to determine that an object is no longer used, + the cyclic garbage collector is not involved and + :c:member:`~PyModuleDef.m_free` is called directly. + .. versionchanged:: 3.9 No longer called before the module state is allocated. diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index 5fda9b086c006..7ef081a13a6e1 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -1380,6 +1380,12 @@ and :c:type:`PyType_Type` effectively act as defaults.) so that *self* knows the contained object can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations in a safe order. + Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called + before an instance is deallocated. For example, when reference counting + is enough to determine that an object is no longer used, the cyclic garbage + collector is not involved and :c:member:`~PyTypeObject.tp_dealloc` is + called directly. + Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break reference cycles, it's not necessary to clear contained objects like Python strings or Python integers, which can't participate in reference cycles. On the other hand, it may From webhook-mailer at python.org Wed Aug 4 14:24:12 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 18:24:12 -0000 Subject: [Python-checkins] Note that tp_clear and m_clear are not always called (GH-27581) (GH-27597) Message-ID: https://github.com/python/cpython/commit/467c873e495ca9246f2cd52024672f3aece7d7d9 commit: 467c873e495ca9246f2cd52024672f3aece7d7d9 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T20:24:03+02:00 summary: Note that tp_clear and m_clear are not always called (GH-27581) (GH-27597) (cherry picked from commit 10faada709561663d6b1f623d308ff45e3808cca) Co-authored-by: Petr Viktorin files: M Doc/c-api/module.rst M Doc/c-api/typeobj.rst diff --git a/Doc/c-api/module.rst b/Doc/c-api/module.rst index 90766dca78bfa..f0569ed4fca35 100644 --- a/Doc/c-api/module.rst +++ b/Doc/c-api/module.rst @@ -221,6 +221,12 @@ or request "multi-phase initialization" by returning the definition struct itsel than 0 and the module state (as returned by :c:func:`PyModule_GetState`) is ``NULL``. + Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* + called before a module is deallocated. For example, when reference + counting is enough to determine that an object is no longer used, + the cyclic garbage collector is not involved and + :c:member:`~PyModuleDef.m_free` is called directly. + .. versionchanged:: 3.9 No longer called before the module state is allocated. diff --git a/Doc/c-api/typeobj.rst b/Doc/c-api/typeobj.rst index ddcb8ae3d0950..5a1f5f994dddd 100644 --- a/Doc/c-api/typeobj.rst +++ b/Doc/c-api/typeobj.rst @@ -1294,6 +1294,12 @@ and :c:type:`PyType_Type` effectively act as defaults.) so that *self* knows the contained object can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations in a safe order. + Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called + before an instance is deallocated. For example, when reference counting + is enough to determine that an object is no longer used, the cyclic garbage + collector is not involved and :c:member:`~PyTypeObject.tp_dealloc` is + called directly. + Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break reference cycles, it's not necessary to clear contained objects like Python strings or Python integers, which can't participate in reference cycles. On the other hand, it may From webhook-mailer at python.org Wed Aug 4 14:54:06 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 18:54:06 -0000 Subject: [Python-checkins] Fix 404 link to the pyporting mailing list (GH-27320) Message-ID: https://github.com/python/cpython/commit/977d99d1cca6ddd87fe6f218bca46e7ef105bd72 commit: 977d99d1cca6ddd87fe6f218bca46e7ef105bd72 branch: main author: Rohit Nishad <47008599+rohitnishad613 at users.noreply.github.com> committer: ambv date: 2021-08-04T20:53:58+02:00 summary: Fix 404 link to the pyporting mailing list (GH-27320) Co-authored-by: Mariatta Wijaya Co-authored-by: ?ukasz Langa files: M Doc/howto/pyporting.rst diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst index 1543823c104c28..abcc34287e3d29 100644 --- a/Doc/howto/pyporting.rst +++ b/Doc/howto/pyporting.rst @@ -20,8 +20,8 @@ Porting Python 2 Code to Python 3 came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett Cannon's `Why Python 3 exists`_. - For help with porting, you can email the python-porting_ mailing list with - questions. + + For help with porting, you can view the archived python-porting_ mailing list. The Short Explanation ===================== @@ -446,7 +446,7 @@ to make sure everything functions as expected in both versions of Python. .. _pytype: https://github.com/google/pytype .. _python-future: http://python-future.org/ -.. _python-porting: https://mail.python.org/mailman/listinfo/python-porting +.. _python-porting: https://mail.python.org/pipermail/python-porting/ .. _six: https://pypi.org/project/six .. _tox: https://pypi.org/project/tox .. _trove classifier: https://pypi.org/classifiers From webhook-mailer at python.org Wed Aug 4 15:01:42 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:01:42 -0000 Subject: [Python-checkins] bpo-44564 Move formatted assertion under deprecation warning context (GH-27090) Message-ID: https://github.com/python/cpython/commit/f99c015638b46e46ae3ee3f27b96a514007cdaef commit: f99c015638b46e46ae3ee3f27b96a514007cdaef branch: main author: Brandon Schabell committer: ambv date: 2021-08-04T21:01:30+02:00 summary: bpo-44564 Move formatted assertion under deprecation warning context (GH-27090) files: M Lib/test/test_enum.py diff --git a/Lib/test/test_enum.py b/Lib/test/test_enum.py index 0267ff5684c0d..116f61e5cf092 100644 --- a/Lib/test/test_enum.py +++ b/Lib/test/test_enum.py @@ -2321,7 +2321,7 @@ class OkayEnum(CustomStrEnum): self.assertEqual(str(OkayEnum.one), 'one') with self.assertWarns(DeprecationWarning): self.assertEqual('{}'.format(OkayEnum.one), '1') - self.assertEqual(OkayEnum.one, '{}'.format(OkayEnum.one)) + self.assertEqual(OkayEnum.one, '{}'.format(OkayEnum.one)) self.assertEqual(repr(OkayEnum.one), 'OkayEnum.one') # class DumbMixin: From webhook-mailer at python.org Wed Aug 4 15:15:48 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 19:15:48 -0000 Subject: [Python-checkins] Fix 404 link to the pyporting mailing list (GH-27320) Message-ID: https://github.com/python/cpython/commit/770be3a9e128d96657172314c46351425a3ee0f7 commit: 770be3a9e128d96657172314c46351425a3ee0f7 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T12:15:40-07:00 summary: Fix 404 link to the pyporting mailing list (GH-27320) Co-authored-by: Mariatta Wijaya Co-authored-by: ?ukasz Langa (cherry picked from commit 977d99d1cca6ddd87fe6f218bca46e7ef105bd72) Co-authored-by: Rohit Nishad <47008599+rohitnishad613 at users.noreply.github.com> files: M Doc/howto/pyporting.rst diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst index 1543823c104c28..abcc34287e3d29 100644 --- a/Doc/howto/pyporting.rst +++ b/Doc/howto/pyporting.rst @@ -20,8 +20,8 @@ Porting Python 2 Code to Python 3 came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett Cannon's `Why Python 3 exists`_. - For help with porting, you can email the python-porting_ mailing list with - questions. + + For help with porting, you can view the archived python-porting_ mailing list. The Short Explanation ===================== @@ -446,7 +446,7 @@ to make sure everything functions as expected in both versions of Python. .. _pytype: https://github.com/google/pytype .. _python-future: http://python-future.org/ -.. _python-porting: https://mail.python.org/mailman/listinfo/python-porting +.. _python-porting: https://mail.python.org/pipermail/python-porting/ .. _six: https://pypi.org/project/six .. _tox: https://pypi.org/project/tox .. _trove classifier: https://pypi.org/classifiers From webhook-mailer at python.org Wed Aug 4 15:24:01 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:24:01 -0000 Subject: [Python-checkins] Fix 404 link to the pyporting mailing list (GH-27320) (GH-27601) Message-ID: https://github.com/python/cpython/commit/ed0d91bafa0de848aa2fcbabbe1b9ef9752748cc commit: ed0d91bafa0de848aa2fcbabbe1b9ef9752748cc branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T21:23:48+02:00 summary: Fix 404 link to the pyporting mailing list (GH-27320) (GH-27601) Co-authored-by: Mariatta Wijaya Co-authored-by: ?ukasz Langa (cherry picked from commit 977d99d1cca6ddd87fe6f218bca46e7ef105bd72) Co-authored-by: Rohit Nishad <47008599+rohitnishad613 at users.noreply.github.com> files: M Doc/howto/pyporting.rst diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst index 1543823c104c28..abcc34287e3d29 100644 --- a/Doc/howto/pyporting.rst +++ b/Doc/howto/pyporting.rst @@ -20,8 +20,8 @@ Porting Python 2 Code to Python 3 came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett Cannon's `Why Python 3 exists`_. - For help with porting, you can email the python-porting_ mailing list with - questions. + + For help with porting, you can view the archived python-porting_ mailing list. The Short Explanation ===================== @@ -446,7 +446,7 @@ to make sure everything functions as expected in both versions of Python. .. _pytype: https://github.com/google/pytype .. _python-future: http://python-future.org/ -.. _python-porting: https://mail.python.org/mailman/listinfo/python-porting +.. _python-porting: https://mail.python.org/pipermail/python-porting/ .. _six: https://pypi.org/project/six .. _tox: https://pypi.org/project/tox .. _trove classifier: https://pypi.org/classifiers From webhook-mailer at python.org Wed Aug 4 15:29:18 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:29:18 -0000 Subject: [Python-checkins] Fix typo in 'xml.dom.minidom' documentation (GH-27602) Message-ID: https://github.com/python/cpython/commit/cc77193127381be16467ad10f421d3ba147ed972 commit: cc77193127381be16467ad10f421d3ba147ed972 branch: main author: Cristi?n Maureira-Fredes committer: ambv date: 2021-08-04T21:29:01+02:00 summary: Fix typo in 'xml.dom.minidom' documentation (GH-27602) files: M Doc/library/xml.dom.minidom.rst diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index bf72c46561b7c..d3a5f872204a3 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -145,7 +145,7 @@ module documentation. This section lists the differences between the API and For the :class:`Document` node, an additional keyword argument *encoding* can be used to specify the encoding field of the XML header. - Silimarly, explicitly stating the *standalone* argument causes the + Similarly, explicitly stating the *standalone* argument causes the standalone document declarations to be added to the prologue of the XML document. If the value is set to `True`, `standalone="yes"` is added, From webhook-mailer at python.org Wed Aug 4 15:35:03 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:35:03 -0000 Subject: [Python-checkins] [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) Message-ID: https://github.com/python/cpython/commit/7c5dab4340032eb15d3797d8b601ef11649bbab3 commit: 7c5dab4340032eb15d3797d8b601ef11649bbab3 branch: main author: andrei kulakov committer: ambv date: 2021-08-04T21:34:34+02:00 summary: [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst M Doc/library/zipfile.rst diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 19a67ab694cb96..a0bbdbf595aa8c 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -78,7 +78,6 @@ The module defines the following items: of the last modification to the file; the fields are described in section :ref:`zipinfo-objects`. - .. function:: is_zipfile(filename) Returns ``True`` if *filename* is a valid ZIP file based on its magic number, @@ -406,6 +405,11 @@ ZipFile Objects If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a null byte, the name of the file in the archive will be truncated at the null byte. + .. note:: + + A leading slash in the filename may lead to the archive being impossible to + open in some zip programs on Windows systems. + .. versionchanged:: 3.6 Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed ZipFile will raise a :exc:`ValueError`. Previously, diff --git a/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst new file mode 100644 index 00000000000000..3e38522839e8be --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst @@ -0,0 +1,2 @@ +Added a warning to :mod:`zipfile` docs: filename arg with a leading slash may cause archive to +be un-openable on Windows systems. From webhook-mailer at python.org Wed Aug 4 15:39:55 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:39:55 -0000 Subject: [Python-checkins] bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) Message-ID: https://github.com/python/cpython/commit/a8dc4893d2b28827e82447326ea47759c161a722 commit: a8dc4893d2b28827e82447326ea47759c161a722 branch: main author: andrei kulakov committer: ambv date: 2021-08-04T21:39:45+02:00 summary: bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) Co-authored-by: ?ukasz Langa Co-authored-by: Alexander Vandenbulcke files: A Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst M Doc/library/filecmp.rst M Lib/filecmp.py diff --git a/Doc/library/filecmp.rst b/Doc/library/filecmp.rst index c60603b30a6d7..83e9e14ddcacd 100644 --- a/Doc/library/filecmp.rst +++ b/Doc/library/filecmp.rst @@ -22,8 +22,11 @@ The :mod:`filecmp` module defines the following functions: Compare the files named *f1* and *f2*, returning ``True`` if they seem equal, ``False`` otherwise. - If *shallow* is true, files with identical :func:`os.stat` signatures are - taken to be equal. Otherwise, the contents of the files are compared. + If *shallow* is true and the :func:`os.stat` signatures (file type, size, and + modification time) of both files are identical, the files are taken to be + equal. + + Otherwise, the files are treated as different if their sizes or contents differ. Note that no external programs are called from this function, giving it portability and efficiency. diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 7c47eb022cc8c..70a4b23c98220 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -36,8 +36,9 @@ def cmp(f1, f2, shallow=True): f2 -- Second file name - shallow -- Just check stat signature (do not read the files). - defaults to True. + shallow -- treat files as identical if their stat signatures (type, size, + mtime) are identical. Otherwise, files are considered different + if their sizes or contents differ. [default: True] Return value: diff --git a/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst new file mode 100644 index 0000000000000..c93b84d095526 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst @@ -0,0 +1,2 @@ +Updated the docstring and docs of :func:`filecmp.cmp` to be more accurate +and less confusing especially in respect to *shallow* arg. From webhook-mailer at python.org Wed Aug 4 15:50:26 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 19:50:26 -0000 Subject: [Python-checkins] Fix typo in 'xml.dom.minidom' documentation (GH-27602) Message-ID: https://github.com/python/cpython/commit/cdcae41377ba4b3bd352218f909e58035f16d8e1 commit: cdcae41377ba4b3bd352218f909e58035f16d8e1 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T12:50:18-07:00 summary: Fix typo in 'xml.dom.minidom' documentation (GH-27602) (cherry picked from commit cc77193127381be16467ad10f421d3ba147ed972) Co-authored-by: Cristi?n Maureira-Fredes files: M Doc/library/xml.dom.minidom.rst diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index bf72c46561b7c..d3a5f872204a3 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -145,7 +145,7 @@ module documentation. This section lists the differences between the API and For the :class:`Document` node, an additional keyword argument *encoding* can be used to specify the encoding field of the XML header. - Silimarly, explicitly stating the *standalone* argument causes the + Similarly, explicitly stating the *standalone* argument causes the standalone document declarations to be added to the prologue of the XML document. If the value is set to `True`, `standalone="yes"` is added, From webhook-mailer at python.org Wed Aug 4 15:53:37 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 19:53:37 -0000 Subject: [Python-checkins] Fix typo in 'xml.dom.minidom' documentation (GH-27602) (GH-27604) Message-ID: https://github.com/python/cpython/commit/60ec3b818e993eb4c57884a7a96f96a6c1eea92f commit: 60ec3b818e993eb4c57884a7a96f96a6c1eea92f branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T21:53:29+02:00 summary: Fix typo in 'xml.dom.minidom' documentation (GH-27602) (GH-27604) (cherry picked from commit cc77193127381be16467ad10f421d3ba147ed972) Co-authored-by: Cristi?n Maureira-Fredes files: M Doc/library/xml.dom.minidom.rst diff --git a/Doc/library/xml.dom.minidom.rst b/Doc/library/xml.dom.minidom.rst index bf72c46561b7c..d3a5f872204a3 100644 --- a/Doc/library/xml.dom.minidom.rst +++ b/Doc/library/xml.dom.minidom.rst @@ -145,7 +145,7 @@ module documentation. This section lists the differences between the API and For the :class:`Document` node, an additional keyword argument *encoding* can be used to specify the encoding field of the XML header. - Silimarly, explicitly stating the *standalone* argument causes the + Similarly, explicitly stating the *standalone* argument causes the standalone document declarations to be added to the prologue of the XML document. If the value is set to `True`, `standalone="yes"` is added, From webhook-mailer at python.org Wed Aug 4 15:59:12 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 19:59:12 -0000 Subject: [Python-checkins] [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) Message-ID: https://github.com/python/cpython/commit/98f6a72ff621c2033e8f2c38df410e9bfa2b772a commit: 98f6a72ff621c2033e8f2c38df410e9bfa2b772a branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T12:59:04-07:00 summary: [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) Co-authored-by: ?ukasz Langa (cherry picked from commit 7c5dab4340032eb15d3797d8b601ef11649bbab3) Co-authored-by: andrei kulakov files: A Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst M Doc/library/zipfile.rst diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 3db55e646c47cc..4888838db2c4b2 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -78,7 +78,6 @@ The module defines the following items: of the last modification to the file; the fields are described in section :ref:`zipinfo-objects`. - .. function:: is_zipfile(filename) Returns ``True`` if *filename* is a valid ZIP file based on its magic number, @@ -406,6 +405,11 @@ ZipFile Objects If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a null byte, the name of the file in the archive will be truncated at the null byte. + .. note:: + + A leading slash in the filename may lead to the archive being impossible to + open in some zip programs on Windows systems. + .. versionchanged:: 3.6 Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed ZipFile will raise a :exc:`ValueError`. Previously, diff --git a/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst new file mode 100644 index 00000000000000..3e38522839e8be --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst @@ -0,0 +1,2 @@ +Added a warning to :mod:`zipfile` docs: filename arg with a leading slash may cause archive to +be un-openable on Windows systems. From webhook-mailer at python.org Wed Aug 4 16:00:58 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 20:00:58 -0000 Subject: [Python-checkins] [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) (GH-27606) Message-ID: https://github.com/python/cpython/commit/1a2c0ecfa2ef8542baee951f12b60afd165be9cf commit: 1a2c0ecfa2ef8542baee951f12b60afd165be9cf branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T22:00:52+02:00 summary: [doc] bpo-43066: zipfile - add note on leading slash in the filename arg (GH-26899) (GH-27606) Co-authored-by: ?ukasz Langa (cherry picked from commit 7c5dab4340032eb15d3797d8b601ef11649bbab3) Co-authored-by: andrei kulakov files: A Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst M Doc/library/zipfile.rst diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 7126d8bd703f6..d55a308be7651 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -78,7 +78,6 @@ The module defines the following items: of the last modification to the file; the fields are described in section :ref:`zipinfo-objects`. - .. function:: is_zipfile(filename) Returns ``True`` if *filename* is a valid ZIP file based on its magic number, @@ -406,6 +405,11 @@ ZipFile Objects If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a null byte, the name of the file in the archive will be truncated at the null byte. + .. note:: + + A leading slash in the filename may lead to the archive being impossible to + open in some zip programs on Windows systems. + .. versionchanged:: 3.6 Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed ZipFile will raise a :exc:`ValueError`. Previously, diff --git a/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst new file mode 100644 index 0000000000000..3e38522839e8b --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-24-14-37-16.bpo-43066.Ti7ahX.rst @@ -0,0 +1,2 @@ +Added a warning to :mod:`zipfile` docs: filename arg with a leading slash may cause archive to +be un-openable on Windows systems. From webhook-mailer at python.org Wed Aug 4 16:03:41 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 20:03:41 -0000 Subject: [Python-checkins] bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) Message-ID: https://github.com/python/cpython/commit/c2593b4d06712cefcdeae93b32f88faa4772bc3a commit: c2593b4d06712cefcdeae93b32f88faa4772bc3a branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T13:03:33-07:00 summary: bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) Co-authored-by: ?ukasz Langa Co-authored-by: Alexander Vandenbulcke (cherry picked from commit a8dc4893d2b28827e82447326ea47759c161a722) Co-authored-by: andrei kulakov files: A Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst M Doc/library/filecmp.rst M Lib/filecmp.py diff --git a/Doc/library/filecmp.rst b/Doc/library/filecmp.rst index c60603b30a6d7..83e9e14ddcacd 100644 --- a/Doc/library/filecmp.rst +++ b/Doc/library/filecmp.rst @@ -22,8 +22,11 @@ The :mod:`filecmp` module defines the following functions: Compare the files named *f1* and *f2*, returning ``True`` if they seem equal, ``False`` otherwise. - If *shallow* is true, files with identical :func:`os.stat` signatures are - taken to be equal. Otherwise, the contents of the files are compared. + If *shallow* is true and the :func:`os.stat` signatures (file type, size, and + modification time) of both files are identical, the files are taken to be + equal. + + Otherwise, the files are treated as different if their sizes or contents differ. Note that no external programs are called from this function, giving it portability and efficiency. diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 7c47eb022cc8c..70a4b23c98220 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -36,8 +36,9 @@ def cmp(f1, f2, shallow=True): f2 -- Second file name - shallow -- Just check stat signature (do not read the files). - defaults to True. + shallow -- treat files as identical if their stat signatures (type, size, + mtime) are identical. Otherwise, files are considered different + if their sizes or contents differ. [default: True] Return value: diff --git a/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst new file mode 100644 index 0000000000000..c93b84d095526 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst @@ -0,0 +1,2 @@ +Updated the docstring and docs of :func:`filecmp.cmp` to be more accurate +and less confusing especially in respect to *shallow* arg. From webhook-mailer at python.org Wed Aug 4 16:09:59 2021 From: webhook-mailer at python.org (ambv) Date: Wed, 04 Aug 2021 20:09:59 -0000 Subject: [Python-checkins] bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) (GH-27608) Message-ID: https://github.com/python/cpython/commit/7dad0337518a0d599caf8f803a5bf45db67cbe9b commit: 7dad0337518a0d599caf8f803a5bf45db67cbe9b branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-04T22:09:45+02:00 summary: bpo-42958: Improve description of shallow= in filecmp.cmp docs (GH-27166) (GH-27608) Co-authored-by: ?ukasz Langa Co-authored-by: Alexander Vandenbulcke (cherry picked from commit a8dc4893d2b28827e82447326ea47759c161a722) Co-authored-by: andrei kulakov files: A Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst M Doc/library/filecmp.rst M Lib/filecmp.py diff --git a/Doc/library/filecmp.rst b/Doc/library/filecmp.rst index 31b9b4afab934..1d04c3ef9fd27 100644 --- a/Doc/library/filecmp.rst +++ b/Doc/library/filecmp.rst @@ -22,8 +22,11 @@ The :mod:`filecmp` module defines the following functions: Compare the files named *f1* and *f2*, returning ``True`` if they seem equal, ``False`` otherwise. - If *shallow* is true, files with identical :func:`os.stat` signatures are - taken to be equal. Otherwise, the contents of the files are compared. + If *shallow* is true and the :func:`os.stat` signatures (file type, size, and + modification time) of both files are identical, the files are taken to be + equal. + + Otherwise, the files are treated as different if their sizes or contents differ. Note that no external programs are called from this function, giving it portability and efficiency. diff --git a/Lib/filecmp.py b/Lib/filecmp.py index 7a4da6beb5050..1893f909de83c 100644 --- a/Lib/filecmp.py +++ b/Lib/filecmp.py @@ -36,8 +36,9 @@ def cmp(f1, f2, shallow=True): f2 -- Second file name - shallow -- Just check stat signature (do not read the files). - defaults to True. + shallow -- treat files as identical if their stat signatures (type, size, + mtime) are identical. Otherwise, files are considered different + if their sizes or contents differ. [default: True] Return value: diff --git a/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst new file mode 100644 index 0000000000000..c93b84d095526 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-07-15-11-19-03.bpo-42958.gC5IHM.rst @@ -0,0 +1,2 @@ +Updated the docstring and docs of :func:`filecmp.cmp` to be more accurate +and less confusing especially in respect to *shallow* arg. From webhook-mailer at python.org Wed Aug 4 16:36:35 2021 From: webhook-mailer at python.org (miss-islington) Date: Wed, 04 Aug 2021 20:36:35 -0000 Subject: [Python-checkins] bpo-44801: Check arguments in substitution of ParamSpec in Callable (GH-27585) Message-ID: https://github.com/python/cpython/commit/536e35ae6a2555a01f4b51a68ad71dbf7923536d commit: 536e35ae6a2555a01f4b51a68ad71dbf7923536d branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-04T13:36:01-07:00 summary: bpo-44801: Check arguments in substitution of ParamSpec in Callable (GH-27585) (cherry picked from commit 3875a6954741065b136650db67ac533bc70a3eac) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst M Lib/_collections_abc.py M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/_collections_abc.py b/Lib/_collections_abc.py index 33db9b259817c1..87a9cd2d46de99 100644 --- a/Lib/_collections_abc.py +++ b/Lib/_collections_abc.py @@ -426,22 +426,16 @@ class _CallableGenericAlias(GenericAlias): __slots__ = () def __new__(cls, origin, args): - return cls.__create_ga(origin, args) - - @classmethod - def __create_ga(cls, origin, args): - if not isinstance(args, tuple) or len(args) != 2: + if not (isinstance(args, tuple) and len(args) == 2): raise TypeError( "Callable must be used as Callable[[arg, ...], result].") t_args, t_result = args - if isinstance(t_args, (list, tuple)): - ga_args = tuple(t_args) + (t_result,) - # This relaxes what t_args can be on purpose to allow things like - # PEP 612 ParamSpec. Responsibility for whether a user is using - # Callable[...] properly is deferred to static type checkers. - else: - ga_args = args - return super().__new__(cls, origin, ga_args) + if isinstance(t_args, list): + args = (*t_args, t_result) + elif not _is_param_expr(t_args): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {t_args}") + return super().__new__(cls, origin, args) @property def __parameters__(self): @@ -456,7 +450,7 @@ def __parameters__(self): return tuple(dict.fromkeys(params)) def __repr__(self): - if _has_special_args(self.__args__): + if len(self.__args__) == 2 and _is_param_expr(self.__args__[0]): return super().__repr__() return (f'collections.abc.Callable' f'[[{", ".join([_type_repr(a) for a in self.__args__[:-1]])}], ' @@ -464,7 +458,7 @@ def __repr__(self): def __reduce__(self): args = self.__args__ - if not _has_special_args(args): + if not (len(args) == 2 and _is_param_expr(args[0])): args = list(args[:-1]), args[-1] return _CallableGenericAlias, (Callable, args) @@ -479,10 +473,11 @@ def __getitem__(self, item): param_len = len(self.__parameters__) if param_len == 0: raise TypeError(f'{self} is not a generic class') - if (param_len == 1 - and isinstance(item, (tuple, list)) - and len(item) > 1) or not isinstance(item, tuple): + if not isinstance(item, tuple): item = (item,) + if (param_len == 1 and _is_param_expr(self.__parameters__[0]) + and item and not _is_param_expr(item[0])): + item = (list(item),) item_len = len(item) if item_len != param_len: raise TypeError(f'Too {"many" if item_len > param_len else "few"}' @@ -492,7 +487,13 @@ def __getitem__(self, item): new_args = [] for arg in self.__args__: if _is_typevarlike(arg): - arg = subst[arg] + if _is_param_expr(arg): + arg = subst[arg] + if not _is_param_expr(arg): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {arg}") + else: + arg = subst[arg] # Looks like a GenericAlias elif hasattr(arg, '__parameters__') and isinstance(arg.__parameters__, tuple): subparams = arg.__parameters__ @@ -502,32 +503,31 @@ def __getitem__(self, item): new_args.append(arg) # args[0] occurs due to things like Z[[int, str, bool]] from PEP 612 - if not isinstance(new_args[0], (tuple, list)): + if not isinstance(new_args[0], list): t_result = new_args[-1] t_args = new_args[:-1] new_args = (t_args, t_result) return _CallableGenericAlias(Callable, tuple(new_args)) + def _is_typevarlike(arg): obj = type(arg) # looks like a TypeVar/ParamSpec return (obj.__module__ == 'typing' and obj.__name__ in {'ParamSpec', 'TypeVar'}) -def _has_special_args(args): - """Checks if args[0] matches either ``...``, ``ParamSpec`` or +def _is_param_expr(obj): + """Checks if obj matches either a list of types, ``...``, ``ParamSpec`` or ``_ConcatenateGenericAlias`` from typing.py """ - if len(args) != 2: - return False - obj = args[0] if obj is Ellipsis: return True + if isinstance(obj, list): + return True obj = type(obj) names = ('ParamSpec', '_ConcatenateGenericAlias') return obj.__module__ == 'typing' and any(obj.__name__ == name for name in names) - def _type_repr(obj): """Return the repr() of an object, special-casing types (internal helper). diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 6e557c47833383..6e5609d723bee3 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -575,17 +575,33 @@ def test_paramspec(self): Callable = self.Callable fullname = f"{Callable.__module__}.Callable" P = ParamSpec('P') + P2 = ParamSpec('P2') C1 = Callable[P, T] # substitution - self.assertEqual(C1[int, str], Callable[[int], str]) + self.assertEqual(C1[[int], str], Callable[[int], str]) self.assertEqual(C1[[int, str], str], Callable[[int, str], str]) + self.assertEqual(C1[[], str], Callable[[], str]) + self.assertEqual(C1[..., str], Callable[..., str]) + self.assertEqual(C1[P2, str], Callable[P2, str]) + self.assertEqual(C1[Concatenate[int, P2], str], + Callable[Concatenate[int, P2], str]) self.assertEqual(repr(C1), f"{fullname}[~P, ~T]") - self.assertEqual(repr(C1[int, str]), f"{fullname}[[int], str]") + self.assertEqual(repr(C1[[int, str], str]), f"{fullname}[[int, str], str]") + with self.assertRaises(TypeError): + C1[int, str] C2 = Callable[P, int] + self.assertEqual(C2[[int]], Callable[[int], int]) + self.assertEqual(C2[[int, str]], Callable[[int, str], int]) + self.assertEqual(C2[[]], Callable[[], int]) + self.assertEqual(C2[...], Callable[..., int]) + self.assertEqual(C2[P2], Callable[P2, int]) + self.assertEqual(C2[Concatenate[int, P2]], + Callable[Concatenate[int, P2], int]) # special case in PEP 612 where # X[int, str, float] == X[[int, str, float]] - self.assertEqual(C2[int, str, float], C2[[int, str, float]]) + self.assertEqual(C2[int], Callable[[int], int]) + self.assertEqual(C2[int, str], Callable[[int, str], int]) self.assertEqual(repr(C2), f"{fullname}[~P, int]") self.assertEqual(repr(C2[int, str]), f"{fullname}[[int, str], int]") @@ -4616,6 +4632,29 @@ class Z(Generic[P]): self.assertEqual(G5.__parameters__, G6.__parameters__) self.assertEqual(G5, G6) + G7 = Z[int] + self.assertEqual(G7.__args__, ((int,),)) + self.assertEqual(G7.__parameters__, ()) + + with self.assertRaisesRegex(TypeError, "many arguments for"): + Z[[int, str], bool] + with self.assertRaisesRegex(TypeError, "many arguments for"): + Z[P_2, bool] + + def test_multiple_paramspecs_in_user_generics(self): + P = ParamSpec("P") + P2 = ParamSpec("P2") + + class X(Generic[P, P2]): + f: Callable[P, int] + g: Callable[P2, str] + + G1 = X[[int, str], [bytes]] + G2 = X[[int], [str, bytes]] + self.assertNotEqual(G1, G2) + self.assertEqual(G1.__args__, ((int, str), (bytes,))) + self.assertEqual(G2.__args__, ((int,), (str, bytes))) + def test_no_paramspec_in__parameters__(self): # ParamSpec should not be found in __parameters__ # of generics. Usages outside Callable, Concatenate diff --git a/Lib/typing.py b/Lib/typing.py index 6f884e1fe98602..3cbc8a42c2010a 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -174,6 +174,11 @@ def _type_check(arg, msg, is_argument=True, module=None): return arg +def _is_param_expr(arg): + return arg is ... or isinstance(arg, + (tuple, list, ParamSpec, _ConcatenateGenericAlias)) + + def _type_repr(obj): """Return the repr() of an object, special-casing types (internal helper). @@ -228,7 +233,9 @@ def _prepare_paramspec_params(cls, params): variables (internal helper). """ # Special case where Z[[int, str, bool]] == Z[int, str, bool] in PEP 612. - if len(cls.__parameters__) == 1 and len(params) > 1: + if (len(cls.__parameters__) == 1 + and params and not _is_param_expr(params[0])): + assert isinstance(cls.__parameters__[0], ParamSpec) return (params,) else: _check_generic(cls, params, len(cls.__parameters__)) @@ -1031,7 +1038,13 @@ def __getitem__(self, params): new_args = [] for arg in self.__args__: if isinstance(arg, self._typevar_types): - arg = subst[arg] + if isinstance(arg, ParamSpec): + arg = subst[arg] + if not _is_param_expr(arg): + raise TypeError(f"Expected a list of types, an ellipsis, " + f"ParamSpec, or Concatenate. Got {arg}") + else: + arg = subst[arg] elif isinstance(arg, (_GenericAlias, GenericAlias, types.UnionType)): subparams = arg.__parameters__ if subparams: @@ -1129,8 +1142,7 @@ class _CallableGenericAlias(_GenericAlias, _root=True): def __repr__(self): assert self._name == 'Callable' args = self.__args__ - if len(args) == 2 and (args[0] is Ellipsis - or isinstance(args[0], (ParamSpec, _ConcatenateGenericAlias))): + if len(args) == 2 and _is_param_expr(args[0]): return super().__repr__() return (f'typing.Callable' f'[[{", ".join([_type_repr(a) for a in args[:-1]])}], ' @@ -1138,8 +1150,7 @@ def __repr__(self): def __reduce__(self): args = self.__args__ - if not (len(args) == 2 and (args[0] is Ellipsis - or isinstance(args[0], (ParamSpec, _ConcatenateGenericAlias)))): + if not (len(args) == 2 and _is_param_expr(args[0])): args = list(args[:-1]), args[-1] return operator.getitem, (Callable, args) @@ -1865,8 +1876,7 @@ def get_args(tp): if isinstance(tp, (_GenericAlias, GenericAlias)): res = tp.__args__ if (tp.__origin__ is collections.abc.Callable - and not (res[0] is Ellipsis - or isinstance(res[0], (ParamSpec, _ConcatenateGenericAlias)))): + and not (len(res) == 2 and _is_param_expr(res[0]))): res = (list(res[:-1]), res[-1]) return res if isinstance(tp, types.UnionType): diff --git a/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst b/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst new file mode 100644 index 00000000000000..05e372a5fabb03 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-03-20-37-45.bpo-44801.i49Aug.rst @@ -0,0 +1,3 @@ +Ensure that the :class:`~typing.ParamSpec` variable in Callable +can only be substituted with a parameters expression (a list of types, +an ellipsis, ParamSpec or Concatenate). From webhook-mailer at python.org Wed Aug 4 16:43:15 2021 From: webhook-mailer at python.org (brettcannon) Date: Wed, 04 Aug 2021 20:43:15 -0000 Subject: [Python-checkins] bpo-41706: Fix special method invocation docs to mention using type() (GH-22084) Message-ID: https://github.com/python/cpython/commit/80f33f266b4ad5925a3e58ea3a54ae139a6b6f0e commit: 80f33f266b4ad5925a3e58ea3a54ae139a6b6f0e branch: main author: William Chargin committer: brettcannon date: 2021-08-04T13:43:06-07:00 summary: bpo-41706: Fix special method invocation docs to mention using type() (GH-22084) files: A Misc/NEWS.d/next/Documentation/2020-09-03-13-37-19.bpo-41706._zXWOR.rst M Doc/reference/datamodel.rst diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index bb0b7e059f132..2c76e5656b0e6 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -2439,7 +2439,7 @@ left undefined. (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). For instance, to evaluate the expression ``x + y``, where *x* is an instance of a class that - has an :meth:`__add__` method, ``x.__add__(y)`` is called. The + has an :meth:`__add__` method, ``type(x).__add__(x, y)`` is called. The :meth:`__divmod__` method should be the equivalent to using :meth:`__floordiv__` and :meth:`__mod__`; it should not be related to :meth:`__truediv__`. Note that :meth:`__pow__` should be defined to accept @@ -2475,8 +2475,9 @@ left undefined. (swapped) operands. These functions are only called if the left operand does not support the corresponding operation [#]_ and the operands are of different types. [#]_ For instance, to evaluate the expression ``x - y``, where *y* is - an instance of a class that has an :meth:`__rsub__` method, ``y.__rsub__(x)`` - is called if ``x.__sub__(y)`` returns *NotImplemented*. + an instance of a class that has an :meth:`__rsub__` method, + ``type(y).__rsub__(y, x)`` is called if ``type(x).__sub__(x, y)`` returns + *NotImplemented*. .. index:: builtin: pow diff --git a/Misc/NEWS.d/next/Documentation/2020-09-03-13-37-19.bpo-41706._zXWOR.rst b/Misc/NEWS.d/next/Documentation/2020-09-03-13-37-19.bpo-41706._zXWOR.rst new file mode 100644 index 0000000000000..6406494ec03c7 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2020-09-03-13-37-19.bpo-41706._zXWOR.rst @@ -0,0 +1,2 @@ +Fix docs about how methods like ``__add__`` are invoked when evaluating +operator expressions. From webhook-mailer at python.org Thu Aug 5 01:04:11 2021 From: webhook-mailer at python.org (methane) Date: Thu, 05 Aug 2021 05:04:11 -0000 Subject: [Python-checkins] platform: Import subprocess in function. (GH-27610) Message-ID: https://github.com/python/cpython/commit/3e4cb7f40f28f1c49e0e4c3e841549c53065af3c commit: 3e4cb7f40f28f1c49e0e4c3e841549c53065af3c branch: main author: Inada Naoki committer: methane date: 2021-08-05T14:04:01+09:00 summary: platform: Import subprocess in function. (GH-27610) files: M Lib/platform.py diff --git a/Lib/platform.py b/Lib/platform.py index 39c8ad587a8b7..0f17964da4100 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -116,7 +116,6 @@ import os import re import sys -import subprocess import functools import itertools @@ -748,6 +747,7 @@ def from_subprocess(): """ Fall back to `uname -p` """ + import subprocess try: return subprocess.check_output( ['uname', '-p'], From webhook-mailer at python.org Thu Aug 5 03:22:31 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Thu, 05 Aug 2021 07:22:31 -0000 Subject: [Python-checkins] bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588) Message-ID: https://github.com/python/cpython/commit/8f010dc920e1f6dc6a357e7cc1460a7a567c05c6 commit: 8f010dc920e1f6dc6a357e7cc1460a7a567c05c6 branch: main author: Erlend Egeberg Aasland committer: serhiy-storchaka date: 2021-08-05T10:22:08+03:00 summary: bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588) files: A Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/connection.c diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index 1ed090e3d9256..b3da3c425b803 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -53,6 +53,8 @@ def wrapper(self, *args, **kwargs): def func_returntext(): return "foo" +def func_returntextwithnull(): + return "1\x002" def func_returnunicode(): return "bar" def func_returnint(): @@ -163,11 +165,21 @@ def step(self, val): def finalize(self): return self.val +class AggrText: + def __init__(self): + self.txt = "" + def step(self, txt): + self.txt = self.txt + txt + def finalize(self): + return self.txt + + class FunctionTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") self.con.create_function("returntext", 0, func_returntext) + self.con.create_function("returntextwithnull", 0, func_returntextwithnull) self.con.create_function("returnunicode", 0, func_returnunicode) self.con.create_function("returnint", 0, func_returnint) self.con.create_function("returnfloat", 0, func_returnfloat) @@ -211,6 +223,12 @@ def test_func_return_text(self): self.assertEqual(type(val), str) self.assertEqual(val, "foo") + def test_func_return_text_with_null_char(self): + cur = self.con.cursor() + res = cur.execute("select returntextwithnull()").fetchone()[0] + self.assertEqual(type(res), str) + self.assertEqual(res, "1\x002") + def test_func_return_unicode(self): cur = self.con.cursor() cur.execute("select returnunicode()") @@ -390,6 +408,7 @@ def setUp(self): self.con.create_aggregate("checkType", 2, AggrCheckType) self.con.create_aggregate("checkTypes", -1, AggrCheckTypes) self.con.create_aggregate("mysum", 1, AggrSum) + self.con.create_aggregate("aggtxt", 1, AggrText) def tearDown(self): #self.cur.close() @@ -486,6 +505,15 @@ def test_aggr_no_match(self): val = cur.fetchone()[0] self.assertIsNone(val) + def test_aggr_text(self): + cur = self.con.cursor() + for txt in ["foo", "1\x002"]: + with self.subTest(txt=txt): + cur.execute("select aggtxt(?) from test", (txt,)) + val = cur.fetchone()[0] + self.assertEqual(val, txt) + + class AuthorizerTests(unittest.TestCase): @staticmethod def authorizer_cb(action, arg1, arg2, dbname, source): diff --git a/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst new file mode 100644 index 0000000000000..d078142886d2e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst @@ -0,0 +1,3 @@ +:mod:`sqlite3` user-defined functions and aggregators returning +:class:`strings ` with embedded NUL characters are no longer +truncated. Patch by Erlend E. Aasland. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index f75cf83380711..aae6c66d63fab 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -519,10 +519,17 @@ _pysqlite_set_result(sqlite3_context* context, PyObject* py_val) } else if (PyFloat_Check(py_val)) { sqlite3_result_double(context, PyFloat_AsDouble(py_val)); } else if (PyUnicode_Check(py_val)) { - const char *str = PyUnicode_AsUTF8(py_val); - if (str == NULL) + Py_ssize_t sz; + const char *str = PyUnicode_AsUTF8AndSize(py_val, &sz); + if (str == NULL) { return -1; - sqlite3_result_text(context, str, -1, SQLITE_TRANSIENT); + } + if (sz > INT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "string is longer than INT_MAX bytes"); + return -1; + } + sqlite3_result_text(context, str, (int)sz, SQLITE_TRANSIENT); } else if (PyObject_CheckBuffer(py_val)) { Py_buffer view; if (PyObject_GetBuffer(py_val, &view, PyBUF_SIMPLE) != 0) { From webhook-mailer at python.org Thu Aug 5 09:58:26 2021 From: webhook-mailer at python.org (vsajip) Date: Thu, 05 Aug 2021 13:58:26 -0000 Subject: [Python-checkins] bpo-44291: Fix reconnection in logging.handlers.SysLogHandler (GH-26490) Message-ID: https://github.com/python/cpython/commit/3d315c311676888201f4a3576e4ee3698684a3a2 commit: 3d315c311676888201f4a3576e4ee3698684a3a2 branch: main author: Kirill Pinchuk <192182+cybergrind at users.noreply.github.com> committer: vsajip date: 2021-08-05T14:58:16+01:00 summary: bpo-44291: Fix reconnection in logging.handlers.SysLogHandler (GH-26490) files: M Lib/logging/handlers.py M Lib/test/test_logging.py diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index e2579db58046d..f1a2e3b69986e 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -835,6 +835,36 @@ def __init__(self, address=('localhost', SYSLOG_UDP_PORT), self.address = address self.facility = facility self.socktype = socktype + self.socket = None + self.createSocket() + + def _connect_unixsocket(self, address): + use_socktype = self.socktype + if use_socktype is None: + use_socktype = socket.SOCK_DGRAM + self.socket = socket.socket(socket.AF_UNIX, use_socktype) + try: + self.socket.connect(address) + # it worked, so set self.socktype to the used type + self.socktype = use_socktype + except OSError: + self.socket.close() + if self.socktype is not None: + # user didn't specify falling back, so fail + raise + use_socktype = socket.SOCK_STREAM + self.socket = socket.socket(socket.AF_UNIX, use_socktype) + try: + self.socket.connect(address) + # it worked, so set self.socktype to the used type + self.socktype = use_socktype + except OSError: + self.socket.close() + raise + + def createSocket(self): + address = self.address + socktype = self.socktype if isinstance(address, str): self.unixsocket = True @@ -871,30 +901,6 @@ def __init__(self, address=('localhost', SYSLOG_UDP_PORT), self.socket = sock self.socktype = socktype - def _connect_unixsocket(self, address): - use_socktype = self.socktype - if use_socktype is None: - use_socktype = socket.SOCK_DGRAM - self.socket = socket.socket(socket.AF_UNIX, use_socktype) - try: - self.socket.connect(address) - # it worked, so set self.socktype to the used type - self.socktype = use_socktype - except OSError: - self.socket.close() - if self.socktype is not None: - # user didn't specify falling back, so fail - raise - use_socktype = socket.SOCK_STREAM - self.socket = socket.socket(socket.AF_UNIX, use_socktype) - try: - self.socket.connect(address) - # it worked, so set self.socktype to the used type - self.socktype = use_socktype - except OSError: - self.socket.close() - raise - def encodePriority(self, facility, priority): """ Encode the facility and priority. You can pass in strings or @@ -914,7 +920,10 @@ def close(self): """ self.acquire() try: - self.socket.close() + sock = self.socket + if sock: + self.socket = None + sock.close() logging.Handler.close(self) finally: self.release() @@ -954,6 +963,10 @@ def emit(self, record): # Message is a string. Convert to bytes as required by RFC 5424 msg = msg.encode('utf-8') msg = prio + msg + + if not self.socket: + self.createSocket() + if self.unixsocket: try: self.socket.send(msg) diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index b3393d304b122..9998f1a02e4c9 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -1942,6 +1942,14 @@ def test_output(self): self.handled.wait() self.assertEqual(self.log_output, b'<11>h\xc3\xa4m-sp\xc3\xa4m') + def test_udp_reconnection(self): + logger = logging.getLogger("slh") + self.sl_hdlr.close() + self.handled.clear() + logger.error("sp\xe4m") + self.handled.wait(0.1) + self.assertEqual(self.log_output, b'<11>sp\xc3\xa4m\x00') + @unittest.skipUnless(hasattr(socket, "AF_UNIX"), "Unix sockets required") class UnixSysLogHandlerTest(SysLogHandlerTest): From webhook-mailer at python.org Thu Aug 5 13:29:07 2021 From: webhook-mailer at python.org (pablogsal) Date: Thu, 05 Aug 2021 17:29:07 -0000 Subject: [Python-checkins] bpo-44838: Refine the custom syntax errors for invalid 'if' expressions (GH-27615) Message-ID: https://github.com/python/cpython/commit/f5cbea6b1b5fc39cca377c6cc93f222916015fc4 commit: f5cbea6b1b5fc39cca377c6cc93f222916015fc4 branch: main author: Pablo Galindo Salgado committer: pablogsal date: 2021-08-05T18:28:57+01:00 summary: bpo-44838: Refine the custom syntax errors for invalid 'if' expressions (GH-27615) files: A Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst M Grammar/python.gram M Lib/test/test_syntax.py M Parser/parser.c diff --git a/Grammar/python.gram b/Grammar/python.gram index 91d8a694d1e8b..b107e474630c6 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1083,7 +1083,7 @@ invalid_expression: # Soft keywords need to also be ignored because they can be parsed as NAME NAME | !(NAME STRING | SOFT_KEYWORD) a=disjunction b=expression_without_invalid { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } - | a=disjunction 'if' b=disjunction !'else' { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } + | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } invalid_named_expression: | a=expression ':=' expression { diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index d5a52ba628a81..c77aafeb36361 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -152,6 +152,14 @@ Traceback (most recent call last): SyntaxError: expected 'else' after 'if' expression +>>> if True: +... print("Hello" +... +... if 2: +... print(123)) +Traceback (most recent call last): +SyntaxError: invalid syntax + >>> True = True = 3 Traceback (most recent call last): SyntaxError: cannot assign to True diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst new file mode 100644 index 0000000000000..a542a5d70933a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst @@ -0,0 +1,2 @@ +Fixed a bug that was causing the parser to raise an incorrect custom +:exc:`SyntaxError` for invalid 'if' expressions. Patch by Pablo Galindo. diff --git a/Parser/parser.c b/Parser/parser.c index 5db7c3a4a2f1c..543827a7e0aa5 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -438,38 +438,38 @@ static char *soft_keywords[] = { #define _tmp_144_type 1364 #define _tmp_145_type 1365 #define _tmp_146_type 1366 -#define _loop0_147_type 1367 +#define _tmp_147_type 1367 #define _loop0_148_type 1368 #define _loop0_149_type 1369 -#define _tmp_150_type 1370 +#define _loop0_150_type 1370 #define _tmp_151_type 1371 #define _tmp_152_type 1372 #define _tmp_153_type 1373 -#define _loop0_154_type 1374 -#define _loop1_155_type 1375 -#define _loop0_156_type 1376 -#define _loop1_157_type 1377 -#define _tmp_158_type 1378 +#define _tmp_154_type 1374 +#define _loop0_155_type 1375 +#define _loop1_156_type 1376 +#define _loop0_157_type 1377 +#define _loop1_158_type 1378 #define _tmp_159_type 1379 #define _tmp_160_type 1380 -#define _loop0_162_type 1381 -#define _gather_161_type 1382 -#define _loop0_164_type 1383 -#define _gather_163_type 1384 -#define _loop0_166_type 1385 -#define _gather_165_type 1386 -#define _loop0_168_type 1387 -#define _gather_167_type 1388 -#define _tmp_169_type 1389 +#define _tmp_161_type 1381 +#define _loop0_163_type 1382 +#define _gather_162_type 1383 +#define _loop0_165_type 1384 +#define _gather_164_type 1385 +#define _loop0_167_type 1386 +#define _gather_166_type 1387 +#define _loop0_169_type 1388 +#define _gather_168_type 1389 #define _tmp_170_type 1390 #define _tmp_171_type 1391 #define _tmp_172_type 1392 #define _tmp_173_type 1393 #define _tmp_174_type 1394 #define _tmp_175_type 1395 -#define _loop0_177_type 1396 -#define _gather_176_type 1397 -#define _tmp_178_type 1398 +#define _tmp_176_type 1396 +#define _loop0_178_type 1397 +#define _gather_177_type 1398 #define _tmp_179_type 1399 #define _tmp_180_type 1400 #define _tmp_181_type 1401 @@ -496,6 +496,7 @@ static char *soft_keywords[] = { #define _tmp_202_type 1422 #define _tmp_203_type 1423 #define _tmp_204_type 1424 +#define _tmp_205_type 1425 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -864,38 +865,38 @@ static void *_tmp_143_rule(Parser *p); static void *_tmp_144_rule(Parser *p); static void *_tmp_145_rule(Parser *p); static void *_tmp_146_rule(Parser *p); -static asdl_seq *_loop0_147_rule(Parser *p); +static void *_tmp_147_rule(Parser *p); static asdl_seq *_loop0_148_rule(Parser *p); static asdl_seq *_loop0_149_rule(Parser *p); -static void *_tmp_150_rule(Parser *p); +static asdl_seq *_loop0_150_rule(Parser *p); static void *_tmp_151_rule(Parser *p); static void *_tmp_152_rule(Parser *p); static void *_tmp_153_rule(Parser *p); -static asdl_seq *_loop0_154_rule(Parser *p); -static asdl_seq *_loop1_155_rule(Parser *p); -static asdl_seq *_loop0_156_rule(Parser *p); -static asdl_seq *_loop1_157_rule(Parser *p); -static void *_tmp_158_rule(Parser *p); +static void *_tmp_154_rule(Parser *p); +static asdl_seq *_loop0_155_rule(Parser *p); +static asdl_seq *_loop1_156_rule(Parser *p); +static asdl_seq *_loop0_157_rule(Parser *p); +static asdl_seq *_loop1_158_rule(Parser *p); static void *_tmp_159_rule(Parser *p); static void *_tmp_160_rule(Parser *p); -static asdl_seq *_loop0_162_rule(Parser *p); -static asdl_seq *_gather_161_rule(Parser *p); -static asdl_seq *_loop0_164_rule(Parser *p); -static asdl_seq *_gather_163_rule(Parser *p); -static asdl_seq *_loop0_166_rule(Parser *p); -static asdl_seq *_gather_165_rule(Parser *p); -static asdl_seq *_loop0_168_rule(Parser *p); -static asdl_seq *_gather_167_rule(Parser *p); -static void *_tmp_169_rule(Parser *p); +static void *_tmp_161_rule(Parser *p); +static asdl_seq *_loop0_163_rule(Parser *p); +static asdl_seq *_gather_162_rule(Parser *p); +static asdl_seq *_loop0_165_rule(Parser *p); +static asdl_seq *_gather_164_rule(Parser *p); +static asdl_seq *_loop0_167_rule(Parser *p); +static asdl_seq *_gather_166_rule(Parser *p); +static asdl_seq *_loop0_169_rule(Parser *p); +static asdl_seq *_gather_168_rule(Parser *p); static void *_tmp_170_rule(Parser *p); static void *_tmp_171_rule(Parser *p); static void *_tmp_172_rule(Parser *p); static void *_tmp_173_rule(Parser *p); static void *_tmp_174_rule(Parser *p); static void *_tmp_175_rule(Parser *p); -static asdl_seq *_loop0_177_rule(Parser *p); -static asdl_seq *_gather_176_rule(Parser *p); -static void *_tmp_178_rule(Parser *p); +static void *_tmp_176_rule(Parser *p); +static asdl_seq *_loop0_178_rule(Parser *p); +static asdl_seq *_gather_177_rule(Parser *p); static void *_tmp_179_rule(Parser *p); static void *_tmp_180_rule(Parser *p); static void *_tmp_181_rule(Parser *p); @@ -922,6 +923,7 @@ static void *_tmp_201_rule(Parser *p); static void *_tmp_202_rule(Parser *p); static void *_tmp_203_rule(Parser *p); static void *_tmp_204_rule(Parser *p); +static void *_tmp_205_rule(Parser *p); // file: statements? $ @@ -18207,7 +18209,7 @@ invalid_legacy_expression_rule(Parser *p) // invalid_expression: // | invalid_legacy_expression // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid -// | disjunction 'if' disjunction !'else' +// | disjunction 'if' disjunction !('else' | ':') static void * invalid_expression_rule(Parser *p) { @@ -18266,12 +18268,12 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } - { // disjunction 'if' disjunction !'else' + { // disjunction 'if' disjunction !('else' | ':') if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); Token * _keyword; expr_ty a; expr_ty b; @@ -18282,10 +18284,10 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 518) // token='else' + _PyPegen_lookahead(0, _tmp_144_rule, p) ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -18296,7 +18298,7 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !'else'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } _res = NULL; done: @@ -18364,7 +18366,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_144_rule, p) + _PyPegen_lookahead(0, _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -18390,7 +18392,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, _tmp_145_rule, p) + _PyPegen_lookahead(0, _tmp_146_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -18398,7 +18400,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_146_rule, p) + _PyPegen_lookahead(0, _tmp_147_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -18475,7 +18477,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_147_var; + asdl_seq * _loop0_148_var; expr_ty a; expr_ty expression_var; if ( @@ -18483,7 +18485,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions* + (_loop0_148_var = _loop0_148_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -18540,10 +18542,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_148_var; + asdl_seq * _loop0_149_var; expr_ty a; if ( - (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))* + (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -18570,10 +18572,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_149_var; + asdl_seq * _loop0_150_var; expr_ty a; if ( - (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))* + (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -18599,7 +18601,7 @@ invalid_assignment_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); - void *_tmp_150_var; + void *_tmp_151_var; expr_ty a; AugOperator* augassign_var; if ( @@ -18607,7 +18609,7 @@ invalid_assignment_rule(Parser *p) && (augassign_var = augassign_rule(p)) // augassign && - (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions + (_tmp_151_var = _tmp_151_rule(p)) // yield_expr | star_expressions ) { D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); @@ -18821,11 +18823,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_151_var; + void *_tmp_152_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{' + (_tmp_152_var = _tmp_152_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -18852,12 +18854,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_152_var; + void *_tmp_153_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{' + (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -18887,12 +18889,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_153_var; + void *_tmp_154_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{' + (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -18990,11 +18992,11 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default")); - asdl_seq * _loop0_154_var; + asdl_seq * _loop0_155_var; arg_ty a; void *invalid_parameters_helper_var; if ( - (_loop0_154_var = _loop0_154_rule(p)) // param_no_default* + (_loop0_155_var = _loop0_155_rule(p)) // param_no_default* && (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper && @@ -19061,13 +19063,13 @@ invalid_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - asdl_seq * _loop1_155_var; + asdl_seq * _loop1_156_var; if ( - (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+ + (_loop1_156_var = _loop1_156_rule(p)) // param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - _res = _loop1_155_var; + _res = _loop1_156_var; goto done; } p->mark = _mark; @@ -19098,11 +19100,11 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default")); - asdl_seq * _loop0_156_var; + asdl_seq * _loop0_157_var; arg_ty a; void *invalid_lambda_parameters_helper_var; if ( - (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default* + (_loop0_157_var = _loop0_157_rule(p)) // lambda_param_no_default* && (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper && @@ -19171,13 +19173,13 @@ invalid_lambda_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - asdl_seq * _loop1_157_var; + asdl_seq * _loop1_158_var; if ( - (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+ + (_loop1_158_var = _loop1_158_rule(p)) // lambda_param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - _res = _loop1_157_var; + _res = _loop1_158_var; goto done; } p->mark = _mark; @@ -19207,12 +19209,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_158_var; + void *_tmp_159_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**') + (_tmp_159_var = _tmp_159_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -19282,11 +19284,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_159_var; + void *_tmp_160_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**') + (_tmp_160_var = _tmp_160_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -19388,7 +19390,7 @@ invalid_with_item_rule(Parser *p) && (a = expression_rule(p)) // expression && - _PyPegen_lookahead(1, _tmp_160_rule, p) + _PyPegen_lookahead(1, _tmp_161_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')")); @@ -19601,7 +19603,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); - asdl_seq * _gather_161_var; + asdl_seq * _gather_162_var; Token * _keyword; Token * _literal; void *_opt_var; @@ -19611,13 +19613,13 @@ invalid_with_stmt_rule(Parser *p) && (_keyword = _PyPegen_expect_token(p, 521)) // token='with' && - (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_162_var = _gather_162_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' ) { D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_162_var, _literal); goto done; } p->mark = _mark; @@ -19630,7 +19632,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); - asdl_seq * _gather_163_var; + asdl_seq * _gather_164_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -19646,7 +19648,7 @@ invalid_with_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_164_var = _gather_164_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','? && @@ -19656,7 +19658,7 @@ invalid_with_stmt_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_163_var, _opt_var_1, _literal_1, _literal_2); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_164_var, _opt_var_1, _literal_1, _literal_2); goto done; } p->mark = _mark; @@ -19688,7 +19690,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_165_var; + asdl_seq * _gather_166_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -19699,7 +19701,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (a = _PyPegen_expect_token(p, 521)) // token='with' && - (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_166_var = _gather_166_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -19727,7 +19729,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_167_var; + asdl_seq * _gather_168_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -19744,7 +19746,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_168_var = _gather_168_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','? && @@ -19835,7 +19837,7 @@ invalid_try_stmt_rule(Parser *p) && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, _tmp_169_rule, p) + _PyPegen_lookahead(0, _tmp_170_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -19893,7 +19895,7 @@ invalid_except_stmt_rule(Parser *p) && (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -19927,7 +19929,7 @@ invalid_except_stmt_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -20057,7 +20059,7 @@ invalid_except_stmt_indent_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_173_rule(p), 1) // ['as' NAME] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20441,7 +20443,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_173_rule(p), 1) // [positional_patterns ','] + (_opt_var = _tmp_174_rule(p), 1) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -20875,7 +20877,7 @@ invalid_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (_opt_var_2 = _tmp_174_rule(p), 1) // ['->' expression] + (_opt_var_2 = _tmp_175_rule(p), 1) // ['->' expression] && (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20931,7 +20933,7 @@ invalid_class_def_raw_rule(Parser *p) && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_175_rule(p), 1) // ['(' arguments? ')'] + (_opt_var = _tmp_176_rule(p), 1) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20979,11 +20981,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_176_var; + asdl_seq * _gather_177_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_176_var = _gather_176_rule(p)) // ','.double_starred_kvpair+ + (_gather_177_var = _gather_177_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -20991,7 +20993,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_176_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_177_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -21044,7 +21046,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_178_rule, p) + _PyPegen_lookahead(1, _tmp_179_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -21961,12 +21963,12 @@ _loop1_14_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_179_var; + void *_tmp_180_var; while ( - (_tmp_179_var = _tmp_179_rule(p)) // star_targets '=' + (_tmp_180_var = _tmp_180_rule(p)) // star_targets '=' ) { - _res = _tmp_179_var; + _res = _tmp_180_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -22513,12 +22515,12 @@ _loop0_24_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_180_var; + void *_tmp_181_var; while ( - (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...' + (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...' ) { - _res = _tmp_180_var; + _res = _tmp_181_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -22579,12 +22581,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_181_var; + void *_tmp_182_var; while ( - (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...' + (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...' ) { - _res = _tmp_181_var; + _res = _tmp_182_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -22966,12 +22968,12 @@ _loop1_32_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_182_var; + void *_tmp_183_var; while ( - (_tmp_182_var = _tmp_182_rule(p)) // '@' named_expression NEWLINE + (_tmp_183_var = _tmp_183_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_182_var; + _res = _tmp_183_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25730,12 +25732,12 @@ _loop1_77_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_77[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_183_var; + void *_tmp_184_var; while ( - (_tmp_183_var = _tmp_183_rule(p)) // ',' expression + (_tmp_184_var = _tmp_184_rule(p)) // ',' expression ) { - _res = _tmp_183_var; + _res = _tmp_184_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25801,12 +25803,12 @@ _loop1_78_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_184_var; + void *_tmp_185_var; while ( - (_tmp_184_var = _tmp_184_rule(p)) // ',' star_expression + (_tmp_185_var = _tmp_185_rule(p)) // ',' star_expression ) { - _res = _tmp_184_var; + _res = _tmp_185_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -25986,12 +25988,12 @@ _loop1_81_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_185_var; + void *_tmp_186_var; while ( - (_tmp_185_var = _tmp_185_rule(p)) // 'or' conjunction + (_tmp_186_var = _tmp_186_rule(p)) // 'or' conjunction ) { - _res = _tmp_185_var; + _res = _tmp_186_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26057,12 +26059,12 @@ _loop1_82_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_82[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_186_var; + void *_tmp_187_var; while ( - (_tmp_186_var = _tmp_186_rule(p)) // 'and' inversion + (_tmp_187_var = _tmp_187_rule(p)) // 'and' inversion ) { - _res = _tmp_186_var; + _res = _tmp_187_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27937,12 +27939,12 @@ _loop0_111_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_187_var; + void *_tmp_188_var; while ( - (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction + (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction ) { - _res = _tmp_187_var; + _res = _tmp_188_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28003,12 +28005,12 @@ _loop0_112_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_188_var; + void *_tmp_189_var; while ( - (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction + (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction ) { - _res = _tmp_188_var; + _res = _tmp_189_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28131,7 +28133,7 @@ _loop0_115_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' + (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' ) { _res = elem; @@ -28195,7 +28197,7 @@ _gather_114_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' + (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' && (seq = _loop0_115_rule(p)) // _loop0_115 ) @@ -28741,12 +28743,12 @@ _loop0_125_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_190_var; + void *_tmp_191_var; while ( - (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target + (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target ) { - _res = _tmp_190_var; + _res = _tmp_191_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28921,12 +28923,12 @@ _loop1_128_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_191_var; + void *_tmp_192_var; while ( - (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target + (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target ) { - _res = _tmp_191_var; + _res = _tmp_192_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29767,9 +29769,64 @@ _tmp_143_rule(Parser *p) return _res; } -// _tmp_144: '=' | ':=' +// _tmp_144: 'else' | ':' static void * _tmp_144_rule(Parser *p) +{ + D(p->level++); + if (p->error_indicator) { + D(p->level--); + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // 'else' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); + Token * _keyword; + if ( + (_keyword = _PyPegen_expect_token(p, 518)) // token='else' + ) + { + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); + _res = _keyword; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); + } + { // ':' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + _res = NULL; + done: + D(p->level--); + return _res; +} + +// _tmp_145: '=' | ':=' +static void * +_tmp_145_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -29783,18 +29840,18 @@ _tmp_144_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -29802,18 +29859,18 @@ _tmp_144_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -29822,9 +29879,9 @@ _tmp_144_rule(Parser *p) return _res; } -// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_146: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_145_rule(Parser *p) +_tmp_146_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -29838,18 +29895,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -29857,18 +29914,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -29876,18 +29933,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -29895,18 +29952,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 526)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -29914,18 +29971,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 525)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -29933,18 +29990,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 527)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -29953,9 +30010,9 @@ _tmp_145_rule(Parser *p) return _res; } -// _tmp_146: '=' | ':=' +// _tmp_147: '=' | ':=' static void * -_tmp_146_rule(Parser *p) +_tmp_147_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -29969,18 +30026,18 @@ _tmp_146_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -29988,18 +30045,18 @@ _tmp_146_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -30008,9 +30065,9 @@ _tmp_146_rule(Parser *p) return _res; } -// _loop0_147: star_named_expressions +// _loop0_148: star_named_expressions static asdl_seq * -_loop0_147_rule(Parser *p) +_loop0_148_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30034,7 +30091,7 @@ _loop0_147_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -30056,7 +30113,7 @@ _loop0_147_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30069,14 +30126,14 @@ _loop0_147_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq); D(p->level--); return _seq; } -// _loop0_148: (star_targets '=') +// _loop0_149: (star_targets '=') static asdl_seq * -_loop0_148_rule(Parser *p) +_loop0_149_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30100,13 +30157,13 @@ _loop0_148_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_192_var; + D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_193_var; while ( - (_tmp_192_var = _tmp_192_rule(p)) // star_targets '=' + (_tmp_193_var = _tmp_193_rule(p)) // star_targets '=' ) { - _res = _tmp_192_var; + _res = _tmp_193_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30122,7 +30179,7 @@ _loop0_148_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30135,14 +30192,14 @@ _loop0_148_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq); D(p->level--); return _seq; } -// _loop0_149: (star_targets '=') +// _loop0_150: (star_targets '=') static asdl_seq * -_loop0_149_rule(Parser *p) +_loop0_150_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30166,13 +30223,13 @@ _loop0_149_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_193_var; + D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_194_var; while ( - (_tmp_193_var = _tmp_193_rule(p)) // star_targets '=' + (_tmp_194_var = _tmp_194_rule(p)) // star_targets '=' ) { - _res = _tmp_193_var; + _res = _tmp_194_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30188,7 +30245,7 @@ _loop0_149_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30201,14 +30258,14 @@ _loop0_149_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq); D(p->level--); return _seq; } -// _tmp_150: yield_expr | star_expressions +// _tmp_151: yield_expr | star_expressions static void * -_tmp_150_rule(Parser *p) +_tmp_151_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30222,18 +30279,18 @@ _tmp_150_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -30241,18 +30298,18 @@ _tmp_150_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -30261,9 +30318,9 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: '[' | '(' | '{' +// _tmp_152: '[' | '(' | '{' static void * -_tmp_151_rule(Parser *p) +_tmp_152_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30277,18 +30334,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -30296,18 +30353,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -30315,18 +30372,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30335,9 +30392,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: '[' | '{' +// _tmp_153: '[' | '{' static void * -_tmp_152_rule(Parser *p) +_tmp_153_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30351,18 +30408,18 @@ _tmp_152_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -30370,18 +30427,18 @@ _tmp_152_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30390,9 +30447,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: '[' | '{' +// _tmp_154: '[' | '{' static void * -_tmp_153_rule(Parser *p) +_tmp_154_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30406,18 +30463,18 @@ _tmp_153_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -30425,18 +30482,18 @@ _tmp_153_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30445,9 +30502,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _loop0_154: param_no_default +// _loop0_155: param_no_default static asdl_seq * -_loop0_154_rule(Parser *p) +_loop0_155_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30471,7 +30528,7 @@ _loop0_154_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -30493,7 +30550,7 @@ _loop0_154_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30506,14 +30563,14 @@ _loop0_154_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq); D(p->level--); return _seq; } -// _loop1_155: param_with_default +// _loop1_156: param_with_default static asdl_seq * -_loop1_155_rule(Parser *p) +_loop1_156_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30537,7 +30594,7 @@ _loop1_155_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -30559,7 +30616,7 @@ _loop1_155_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -30577,14 +30634,14 @@ _loop1_155_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq); D(p->level--); return _seq; } -// _loop0_156: lambda_param_no_default +// _loop0_157: lambda_param_no_default static asdl_seq * -_loop0_156_rule(Parser *p) +_loop0_157_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30608,7 +30665,7 @@ _loop0_156_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -30630,7 +30687,7 @@ _loop0_156_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30643,14 +30700,14 @@ _loop0_156_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq); D(p->level--); return _seq; } -// _loop1_157: lambda_param_with_default +// _loop1_158: lambda_param_with_default static asdl_seq * -_loop1_157_rule(Parser *p) +_loop1_158_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30674,7 +30731,7 @@ _loop1_157_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + D(fprintf(stderr, "%*c> _loop1_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); NameDefaultPair* lambda_param_with_default_var; while ( (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default @@ -30696,7 +30753,7 @@ _loop1_157_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -30714,14 +30771,14 @@ _loop1_157_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq); D(p->level--); return _seq; } -// _tmp_158: ')' | ',' (')' | '**') +// _tmp_159: ')' | ',' (')' | '**') static void * -_tmp_158_rule(Parser *p) +_tmp_159_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30735,18 +30792,18 @@ _tmp_158_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -30754,21 +30811,21 @@ _tmp_158_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_194_var; + void *_tmp_195_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_194_var = _tmp_194_rule(p)) // ')' | '**' + (_tmp_195_var = _tmp_195_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -30777,9 +30834,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: ':' | ',' (':' | '**') +// _tmp_160: ':' | ',' (':' | '**') static void * -_tmp_159_rule(Parser *p) +_tmp_160_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30793,18 +30850,18 @@ _tmp_159_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -30812,21 +30869,21 @@ _tmp_159_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_195_var; + void *_tmp_196_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_195_var = _tmp_195_rule(p)) // ':' | '**' + (_tmp_196_var = _tmp_196_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -30835,9 +30892,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: ',' | ')' | ':' +// _tmp_161: ',' | ')' | ':' static void * -_tmp_160_rule(Parser *p) +_tmp_161_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30851,18 +30908,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -30870,18 +30927,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ':' @@ -30889,18 +30946,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -30909,9 +30966,9 @@ _tmp_160_rule(Parser *p) return _res; } -// _loop0_162: ',' (expression ['as' star_target]) +// _loop0_163: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_162_rule(Parser *p) +_loop0_163_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30935,13 +30992,13 @@ _loop0_162_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_196_rule(p)) // expression ['as' star_target] + (elem = _tmp_197_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -30966,7 +31023,7 @@ _loop0_162_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30979,14 +31036,14 @@ _loop0_162_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq); D(p->level--); return _seq; } -// _gather_161: (expression ['as' star_target]) _loop0_162 +// _gather_162: (expression ['as' star_target]) _loop0_163 static asdl_seq * -_gather_161_rule(Parser *p) +_gather_162_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30995,27 +31052,27 @@ _gather_161_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_162 + { // (expression ['as' star_target]) _loop0_163 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_196_rule(p)) // expression ['as' star_target] + (elem = _tmp_197_rule(p)) // expression ['as' star_target] && - (seq = _loop0_162_rule(p)) // _loop0_162 + (seq = _loop0_163_rule(p)) // _loop0_163 ) { - D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); } _res = NULL; done: @@ -31023,9 +31080,9 @@ _gather_161_rule(Parser *p) return _res; } -// _loop0_164: ',' (expressions ['as' star_target]) +// _loop0_165: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_164_rule(Parser *p) +_loop0_165_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31049,13 +31106,13 @@ _loop0_164_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_197_rule(p)) // expressions ['as' star_target] + (elem = _tmp_198_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -31080,7 +31137,7 @@ _loop0_164_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31093,14 +31150,14 @@ _loop0_164_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq); D(p->level--); return _seq; } -// _gather_163: (expressions ['as' star_target]) _loop0_164 +// _gather_164: (expressions ['as' star_target]) _loop0_165 static asdl_seq * -_gather_163_rule(Parser *p) +_gather_164_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31109,27 +31166,27 @@ _gather_163_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_164 + { // (expressions ['as' star_target]) _loop0_165 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_197_rule(p)) // expressions ['as' star_target] + (elem = _tmp_198_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_164_rule(p)) // _loop0_164 + (seq = _loop0_165_rule(p)) // _loop0_165 ) { - D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); } _res = NULL; done: @@ -31137,9 +31194,9 @@ _gather_163_rule(Parser *p) return _res; } -// _loop0_166: ',' (expression ['as' star_target]) +// _loop0_167: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_166_rule(Parser *p) +_loop0_167_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31163,13 +31220,13 @@ _loop0_166_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_198_rule(p)) // expression ['as' star_target] + (elem = _tmp_199_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -31194,7 +31251,7 @@ _loop0_166_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31207,14 +31264,14 @@ _loop0_166_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq); D(p->level--); return _seq; } -// _gather_165: (expression ['as' star_target]) _loop0_166 +// _gather_166: (expression ['as' star_target]) _loop0_167 static asdl_seq * -_gather_165_rule(Parser *p) +_gather_166_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31223,27 +31280,27 @@ _gather_165_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_166 + { // (expression ['as' star_target]) _loop0_167 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_198_rule(p)) // expression ['as' star_target] + (elem = _tmp_199_rule(p)) // expression ['as' star_target] && - (seq = _loop0_166_rule(p)) // _loop0_166 + (seq = _loop0_167_rule(p)) // _loop0_167 ) { - D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); } _res = NULL; done: @@ -31251,9 +31308,9 @@ _gather_165_rule(Parser *p) return _res; } -// _loop0_168: ',' (expressions ['as' star_target]) +// _loop0_169: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_168_rule(Parser *p) +_loop0_169_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31277,13 +31334,13 @@ _loop0_168_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_199_rule(p)) // expressions ['as' star_target] + (elem = _tmp_200_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -31308,7 +31365,7 @@ _loop0_168_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31321,14 +31378,14 @@ _loop0_168_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq); D(p->level--); return _seq; } -// _gather_167: (expressions ['as' star_target]) _loop0_168 +// _gather_168: (expressions ['as' star_target]) _loop0_169 static asdl_seq * -_gather_167_rule(Parser *p) +_gather_168_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31337,27 +31394,27 @@ _gather_167_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_168 + { // (expressions ['as' star_target]) _loop0_169 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_199_rule(p)) // expressions ['as' star_target] + (elem = _tmp_200_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_168_rule(p)) // _loop0_168 + (seq = _loop0_169_rule(p)) // _loop0_169 ) { - D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); } _res = NULL; done: @@ -31365,9 +31422,9 @@ _gather_167_rule(Parser *p) return _res; } -// _tmp_169: 'except' | 'finally' +// _tmp_170: 'except' | 'finally' static void * -_tmp_169_rule(Parser *p) +_tmp_170_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31381,18 +31438,18 @@ _tmp_169_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 523)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -31400,18 +31457,18 @@ _tmp_169_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 524)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -31420,9 +31477,9 @@ _tmp_169_rule(Parser *p) return _res; } -// _tmp_170: 'as' NAME +// _tmp_171: 'as' NAME static void * -_tmp_170_rule(Parser *p) +_tmp_171_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31436,7 +31493,7 @@ _tmp_170_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31445,12 +31502,12 @@ _tmp_170_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31459,9 +31516,9 @@ _tmp_170_rule(Parser *p) return _res; } -// _tmp_171: 'as' NAME +// _tmp_172: 'as' NAME static void * -_tmp_171_rule(Parser *p) +_tmp_172_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31475,7 +31532,7 @@ _tmp_171_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31484,12 +31541,12 @@ _tmp_171_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31498,9 +31555,9 @@ _tmp_171_rule(Parser *p) return _res; } -// _tmp_172: 'as' NAME +// _tmp_173: 'as' NAME static void * -_tmp_172_rule(Parser *p) +_tmp_173_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31514,7 +31571,7 @@ _tmp_172_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31523,12 +31580,12 @@ _tmp_172_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31537,9 +31594,9 @@ _tmp_172_rule(Parser *p) return _res; } -// _tmp_173: positional_patterns ',' +// _tmp_174: positional_patterns ',' static void * -_tmp_173_rule(Parser *p) +_tmp_174_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31553,7 +31610,7 @@ _tmp_173_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -31562,12 +31619,12 @@ _tmp_173_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -31576,9 +31633,9 @@ _tmp_173_rule(Parser *p) return _res; } -// _tmp_174: '->' expression +// _tmp_175: '->' expression static void * -_tmp_174_rule(Parser *p) +_tmp_175_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31592,7 +31649,7 @@ _tmp_174_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty expression_var; if ( @@ -31601,12 +31658,12 @@ _tmp_174_rule(Parser *p) (expression_var = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = _PyPegen_dummy_name(p, _literal, expression_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -31615,9 +31672,9 @@ _tmp_174_rule(Parser *p) return _res; } -// _tmp_175: '(' arguments? ')' +// _tmp_176: '(' arguments? ')' static void * -_tmp_175_rule(Parser *p) +_tmp_176_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31631,7 +31688,7 @@ _tmp_175_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -31644,12 +31701,12 @@ _tmp_175_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -31658,9 +31715,9 @@ _tmp_175_rule(Parser *p) return _res; } -// _loop0_177: ',' double_starred_kvpair +// _loop0_178: ',' double_starred_kvpair static asdl_seq * -_loop0_177_rule(Parser *p) +_loop0_178_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31684,7 +31741,7 @@ _loop0_177_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -31715,7 +31772,7 @@ _loop0_177_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31728,14 +31785,14 @@ _loop0_177_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_178_type, _seq); D(p->level--); return _seq; } -// _gather_176: double_starred_kvpair _loop0_177 +// _gather_177: double_starred_kvpair _loop0_178 static asdl_seq * -_gather_176_rule(Parser *p) +_gather_177_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31744,27 +31801,27 @@ _gather_176_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_177 + { // double_starred_kvpair _loop0_178 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c> _gather_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_177_rule(p)) // _loop0_177 + (seq = _loop0_178_rule(p)) // _loop0_178 ) { - D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c+ _gather_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c%s _gather_177[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_178")); } _res = NULL; done: @@ -31772,9 +31829,9 @@ _gather_176_rule(Parser *p) return _res; } -// _tmp_178: '}' | ',' +// _tmp_179: '}' | ',' static void * -_tmp_178_rule(Parser *p) +_tmp_179_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31788,18 +31845,18 @@ _tmp_178_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -31807,18 +31864,18 @@ _tmp_178_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -31827,9 +31884,9 @@ _tmp_178_rule(Parser *p) return _res; } -// _tmp_179: star_targets '=' +// _tmp_180: star_targets '=' static void * -_tmp_179_rule(Parser *p) +_tmp_180_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31843,7 +31900,7 @@ _tmp_179_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -31852,7 +31909,7 @@ _tmp_179_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -31862,7 +31919,7 @@ _tmp_179_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -31871,9 +31928,9 @@ _tmp_179_rule(Parser *p) return _res; } -// _tmp_180: '.' | '...' +// _tmp_181: '.' | '...' static void * -_tmp_180_rule(Parser *p) +_tmp_181_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31887,18 +31944,18 @@ _tmp_180_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -31906,18 +31963,18 @@ _tmp_180_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -31926,9 +31983,9 @@ _tmp_180_rule(Parser *p) return _res; } -// _tmp_181: '.' | '...' +// _tmp_182: '.' | '...' static void * -_tmp_181_rule(Parser *p) +_tmp_182_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31942,18 +31999,18 @@ _tmp_181_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -31961,18 +32018,18 @@ _tmp_181_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -31981,9 +32038,9 @@ _tmp_181_rule(Parser *p) return _res; } -// _tmp_182: '@' named_expression NEWLINE +// _tmp_183: '@' named_expression NEWLINE static void * -_tmp_182_rule(Parser *p) +_tmp_183_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31997,7 +32054,7 @@ _tmp_182_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -32009,7 +32066,7 @@ _tmp_182_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32019,7 +32076,7 @@ _tmp_182_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -32028,9 +32085,9 @@ _tmp_182_rule(Parser *p) return _res; } -// _tmp_183: ',' expression +// _tmp_184: ',' expression static void * -_tmp_183_rule(Parser *p) +_tmp_184_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32044,7 +32101,7 @@ _tmp_183_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -32053,7 +32110,7 @@ _tmp_183_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32063,7 +32120,7 @@ _tmp_183_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -32072,9 +32129,9 @@ _tmp_183_rule(Parser *p) return _res; } -// _tmp_184: ',' star_expression +// _tmp_185: ',' star_expression static void * -_tmp_184_rule(Parser *p) +_tmp_185_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32088,7 +32145,7 @@ _tmp_184_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -32097,7 +32154,7 @@ _tmp_184_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32107,7 +32164,7 @@ _tmp_184_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -32116,9 +32173,9 @@ _tmp_184_rule(Parser *p) return _res; } -// _tmp_185: 'or' conjunction +// _tmp_186: 'or' conjunction static void * -_tmp_185_rule(Parser *p) +_tmp_186_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32132,7 +32189,7 @@ _tmp_185_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -32141,7 +32198,7 @@ _tmp_185_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32151,7 +32208,7 @@ _tmp_185_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -32160,9 +32217,9 @@ _tmp_185_rule(Parser *p) return _res; } -// _tmp_186: 'and' inversion +// _tmp_187: 'and' inversion static void * -_tmp_186_rule(Parser *p) +_tmp_187_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32176,7 +32233,7 @@ _tmp_186_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -32185,7 +32242,7 @@ _tmp_186_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32195,7 +32252,7 @@ _tmp_186_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -32204,9 +32261,9 @@ _tmp_186_rule(Parser *p) return _res; } -// _tmp_187: 'if' disjunction +// _tmp_188: 'if' disjunction static void * -_tmp_187_rule(Parser *p) +_tmp_188_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32220,7 +32277,7 @@ _tmp_187_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -32229,7 +32286,7 @@ _tmp_187_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32239,7 +32296,7 @@ _tmp_187_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -32248,9 +32305,9 @@ _tmp_187_rule(Parser *p) return _res; } -// _tmp_188: 'if' disjunction +// _tmp_189: 'if' disjunction static void * -_tmp_188_rule(Parser *p) +_tmp_189_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32264,7 +32321,7 @@ _tmp_188_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -32273,7 +32330,7 @@ _tmp_188_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32283,7 +32340,7 @@ _tmp_188_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -32292,9 +32349,9 @@ _tmp_188_rule(Parser *p) return _res; } -// _tmp_189: starred_expression | (assigment_expression | expression !':=') !'=' +// _tmp_190: starred_expression | (assigment_expression | expression !':=') !'=' static void * -_tmp_189_rule(Parser *p) +_tmp_190_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32308,18 +32365,18 @@ _tmp_189_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assigment_expression | expression !':=') !'=' @@ -32327,20 +32384,20 @@ _tmp_189_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); - void *_tmp_200_var; + D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); + void *_tmp_201_var; if ( - (_tmp_200_var = _tmp_200_rule(p)) // assigment_expression | expression !':=' + (_tmp_201_var = _tmp_201_rule(p)) // assigment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); - _res = _tmp_200_var; + D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); + _res = _tmp_201_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='")); } _res = NULL; @@ -32349,9 +32406,9 @@ _tmp_189_rule(Parser *p) return _res; } -// _tmp_190: ',' star_target +// _tmp_191: ',' star_target static void * -_tmp_190_rule(Parser *p) +_tmp_191_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32365,7 +32422,7 @@ _tmp_190_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -32374,7 +32431,7 @@ _tmp_190_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32384,7 +32441,7 @@ _tmp_190_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -32393,9 +32450,9 @@ _tmp_190_rule(Parser *p) return _res; } -// _tmp_191: ',' star_target +// _tmp_192: ',' star_target static void * -_tmp_191_rule(Parser *p) +_tmp_192_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32409,7 +32466,7 @@ _tmp_191_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -32418,7 +32475,7 @@ _tmp_191_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32428,7 +32485,7 @@ _tmp_191_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -32437,9 +32494,9 @@ _tmp_191_rule(Parser *p) return _res; } -// _tmp_192: star_targets '=' +// _tmp_193: star_targets '=' static void * -_tmp_192_rule(Parser *p) +_tmp_193_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32453,7 +32510,7 @@ _tmp_192_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -32462,12 +32519,12 @@ _tmp_192_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -32476,9 +32533,9 @@ _tmp_192_rule(Parser *p) return _res; } -// _tmp_193: star_targets '=' +// _tmp_194: star_targets '=' static void * -_tmp_193_rule(Parser *p) +_tmp_194_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32492,7 +32549,7 @@ _tmp_193_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -32501,12 +32558,12 @@ _tmp_193_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -32515,9 +32572,9 @@ _tmp_193_rule(Parser *p) return _res; } -// _tmp_194: ')' | '**' +// _tmp_195: ')' | '**' static void * -_tmp_194_rule(Parser *p) +_tmp_195_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32531,18 +32588,18 @@ _tmp_194_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -32550,18 +32607,18 @@ _tmp_194_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -32570,9 +32627,9 @@ _tmp_194_rule(Parser *p) return _res; } -// _tmp_195: ':' | '**' +// _tmp_196: ':' | '**' static void * -_tmp_195_rule(Parser *p) +_tmp_196_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32586,18 +32643,18 @@ _tmp_195_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -32605,18 +32662,18 @@ _tmp_195_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -32625,9 +32682,9 @@ _tmp_195_rule(Parser *p) return _res; } -// _tmp_196: expression ['as' star_target] +// _tmp_197: expression ['as' star_target] static void * -_tmp_196_rule(Parser *p) +_tmp_197_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32641,22 +32698,22 @@ _tmp_196_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -32665,9 +32722,9 @@ _tmp_196_rule(Parser *p) return _res; } -// _tmp_197: expressions ['as' star_target] +// _tmp_198: expressions ['as' star_target] static void * -_tmp_197_rule(Parser *p) +_tmp_198_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32681,22 +32738,22 @@ _tmp_197_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -32705,9 +32762,9 @@ _tmp_197_rule(Parser *p) return _res; } -// _tmp_198: expression ['as' star_target] +// _tmp_199: expression ['as' star_target] static void * -_tmp_198_rule(Parser *p) +_tmp_199_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32721,22 +32778,22 @@ _tmp_198_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -32745,9 +32802,9 @@ _tmp_198_rule(Parser *p) return _res; } -// _tmp_199: expressions ['as' star_target] +// _tmp_200: expressions ['as' star_target] static void * -_tmp_199_rule(Parser *p) +_tmp_200_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32761,22 +32818,22 @@ _tmp_199_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_205_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -32785,9 +32842,9 @@ _tmp_199_rule(Parser *p) return _res; } -// _tmp_200: assigment_expression | expression !':=' +// _tmp_201: assigment_expression | expression !':=' static void * -_tmp_200_rule(Parser *p) +_tmp_201_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32801,18 +32858,18 @@ _tmp_200_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression")); + D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression")); expr_ty assigment_expression_var; if ( (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression")); + D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression")); _res = assigment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression")); } { // expression !':=' @@ -32820,7 +32877,7 @@ _tmp_200_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -32828,12 +32885,12 @@ _tmp_200_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -32842,9 +32899,9 @@ _tmp_200_rule(Parser *p) return _res; } -// _tmp_201: 'as' star_target +// _tmp_202: 'as' star_target static void * -_tmp_201_rule(Parser *p) +_tmp_202_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32858,7 +32915,7 @@ _tmp_201_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32867,12 +32924,12 @@ _tmp_201_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -32881,9 +32938,9 @@ _tmp_201_rule(Parser *p) return _res; } -// _tmp_202: 'as' star_target +// _tmp_203: 'as' star_target static void * -_tmp_202_rule(Parser *p) +_tmp_203_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32897,7 +32954,7 @@ _tmp_202_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32906,12 +32963,12 @@ _tmp_202_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -32920,9 +32977,9 @@ _tmp_202_rule(Parser *p) return _res; } -// _tmp_203: 'as' star_target +// _tmp_204: 'as' star_target static void * -_tmp_203_rule(Parser *p) +_tmp_204_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32936,7 +32993,7 @@ _tmp_203_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32945,12 +33002,12 @@ _tmp_203_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -32959,9 +33016,9 @@ _tmp_203_rule(Parser *p) return _res; } -// _tmp_204: 'as' star_target +// _tmp_205: 'as' star_target static void * -_tmp_204_rule(Parser *p) +_tmp_205_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32975,7 +33032,7 @@ _tmp_204_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32984,12 +33041,12 @@ _tmp_204_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; From webhook-mailer at python.org Thu Aug 5 14:00:31 2021 From: webhook-mailer at python.org (miss-islington) Date: Thu, 05 Aug 2021 18:00:31 -0000 Subject: [Python-checkins] [3.10] bpo-44838: Refine the custom syntax errors for invalid 'if' expressions (GH-27615). (GH-27616) Message-ID: https://github.com/python/cpython/commit/b1bd16c2528295b8b28395827f6b589dccea0624 commit: b1bd16c2528295b8b28395827f6b589dccea0624 branch: 3.10 author: Pablo Galindo Salgado committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-05T11:00:19-07:00 summary: [3.10] bpo-44838: Refine the custom syntax errors for invalid 'if' expressions (GH-27615). (GH-27616) ? (cherry picked from commit f5cbea6b1b5fc39cca377c6cc93f222916015fc4) Co-authored-by: Pablo Galindo Salgado Automerge-Triggered-By: GH:lysnikolaou files: A Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst M Grammar/python.gram M Lib/test/test_syntax.py M Parser/parser.c diff --git a/Grammar/python.gram b/Grammar/python.gram index 3e7475a3fa6f4..decc57807867b 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -859,7 +859,7 @@ invalid_expression: # Soft keywords need to also be ignored because they can be parsed as NAME NAME | !(NAME STRING | SOFT_KEYWORD) a=disjunction b=expression_without_invalid { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } - | a=disjunction 'if' b=disjunction !'else' { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } + | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } invalid_named_expression: | a=expression ':=' expression { diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index d5a52ba628a81..c77aafeb36361 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -152,6 +152,14 @@ Traceback (most recent call last): SyntaxError: expected 'else' after 'if' expression +>>> if True: +... print("Hello" +... +... if 2: +... print(123)) +Traceback (most recent call last): +SyntaxError: invalid syntax + >>> True = True = 3 Traceback (most recent call last): SyntaxError: cannot assign to True diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst new file mode 100644 index 0000000000000..a542a5d70933a --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-42-03.bpo-44838.r_Lkj_.rst @@ -0,0 +1,2 @@ +Fixed a bug that was causing the parser to raise an incorrect custom +:exc:`SyntaxError` for invalid 'if' expressions. Patch by Pablo Galindo. diff --git a/Parser/parser.c b/Parser/parser.c index b37e3d6855ce9..acaa7b0e8db3f 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -439,38 +439,38 @@ static char *soft_keywords[] = { #define _tmp_144_type 1365 #define _tmp_145_type 1366 #define _tmp_146_type 1367 -#define _loop0_147_type 1368 +#define _tmp_147_type 1368 #define _loop0_148_type 1369 #define _loop0_149_type 1370 -#define _tmp_150_type 1371 +#define _loop0_150_type 1371 #define _tmp_151_type 1372 #define _tmp_152_type 1373 #define _tmp_153_type 1374 -#define _loop0_154_type 1375 -#define _loop1_155_type 1376 -#define _loop0_156_type 1377 -#define _loop1_157_type 1378 -#define _tmp_158_type 1379 +#define _tmp_154_type 1375 +#define _loop0_155_type 1376 +#define _loop1_156_type 1377 +#define _loop0_157_type 1378 +#define _loop1_158_type 1379 #define _tmp_159_type 1380 #define _tmp_160_type 1381 -#define _loop0_162_type 1382 -#define _gather_161_type 1383 -#define _loop0_164_type 1384 -#define _gather_163_type 1385 -#define _loop0_166_type 1386 -#define _gather_165_type 1387 -#define _loop0_168_type 1388 -#define _gather_167_type 1389 -#define _tmp_169_type 1390 +#define _tmp_161_type 1382 +#define _loop0_163_type 1383 +#define _gather_162_type 1384 +#define _loop0_165_type 1385 +#define _gather_164_type 1386 +#define _loop0_167_type 1387 +#define _gather_166_type 1388 +#define _loop0_169_type 1389 +#define _gather_168_type 1390 #define _tmp_170_type 1391 #define _tmp_171_type 1392 #define _tmp_172_type 1393 #define _tmp_173_type 1394 #define _tmp_174_type 1395 #define _tmp_175_type 1396 -#define _loop0_177_type 1397 -#define _gather_176_type 1398 -#define _tmp_178_type 1399 +#define _tmp_176_type 1397 +#define _loop0_178_type 1398 +#define _gather_177_type 1399 #define _tmp_179_type 1400 #define _tmp_180_type 1401 #define _tmp_181_type 1402 @@ -497,6 +497,7 @@ static char *soft_keywords[] = { #define _tmp_202_type 1423 #define _tmp_203_type 1424 #define _tmp_204_type 1425 +#define _tmp_205_type 1426 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -866,38 +867,38 @@ static void *_tmp_143_rule(Parser *p); static void *_tmp_144_rule(Parser *p); static void *_tmp_145_rule(Parser *p); static void *_tmp_146_rule(Parser *p); -static asdl_seq *_loop0_147_rule(Parser *p); +static void *_tmp_147_rule(Parser *p); static asdl_seq *_loop0_148_rule(Parser *p); static asdl_seq *_loop0_149_rule(Parser *p); -static void *_tmp_150_rule(Parser *p); +static asdl_seq *_loop0_150_rule(Parser *p); static void *_tmp_151_rule(Parser *p); static void *_tmp_152_rule(Parser *p); static void *_tmp_153_rule(Parser *p); -static asdl_seq *_loop0_154_rule(Parser *p); -static asdl_seq *_loop1_155_rule(Parser *p); -static asdl_seq *_loop0_156_rule(Parser *p); -static asdl_seq *_loop1_157_rule(Parser *p); -static void *_tmp_158_rule(Parser *p); +static void *_tmp_154_rule(Parser *p); +static asdl_seq *_loop0_155_rule(Parser *p); +static asdl_seq *_loop1_156_rule(Parser *p); +static asdl_seq *_loop0_157_rule(Parser *p); +static asdl_seq *_loop1_158_rule(Parser *p); static void *_tmp_159_rule(Parser *p); static void *_tmp_160_rule(Parser *p); -static asdl_seq *_loop0_162_rule(Parser *p); -static asdl_seq *_gather_161_rule(Parser *p); -static asdl_seq *_loop0_164_rule(Parser *p); -static asdl_seq *_gather_163_rule(Parser *p); -static asdl_seq *_loop0_166_rule(Parser *p); -static asdl_seq *_gather_165_rule(Parser *p); -static asdl_seq *_loop0_168_rule(Parser *p); -static asdl_seq *_gather_167_rule(Parser *p); -static void *_tmp_169_rule(Parser *p); +static void *_tmp_161_rule(Parser *p); +static asdl_seq *_loop0_163_rule(Parser *p); +static asdl_seq *_gather_162_rule(Parser *p); +static asdl_seq *_loop0_165_rule(Parser *p); +static asdl_seq *_gather_164_rule(Parser *p); +static asdl_seq *_loop0_167_rule(Parser *p); +static asdl_seq *_gather_166_rule(Parser *p); +static asdl_seq *_loop0_169_rule(Parser *p); +static asdl_seq *_gather_168_rule(Parser *p); static void *_tmp_170_rule(Parser *p); static void *_tmp_171_rule(Parser *p); static void *_tmp_172_rule(Parser *p); static void *_tmp_173_rule(Parser *p); static void *_tmp_174_rule(Parser *p); static void *_tmp_175_rule(Parser *p); -static asdl_seq *_loop0_177_rule(Parser *p); -static asdl_seq *_gather_176_rule(Parser *p); -static void *_tmp_178_rule(Parser *p); +static void *_tmp_176_rule(Parser *p); +static asdl_seq *_loop0_178_rule(Parser *p); +static asdl_seq *_gather_177_rule(Parser *p); static void *_tmp_179_rule(Parser *p); static void *_tmp_180_rule(Parser *p); static void *_tmp_181_rule(Parser *p); @@ -924,6 +925,7 @@ static void *_tmp_201_rule(Parser *p); static void *_tmp_202_rule(Parser *p); static void *_tmp_203_rule(Parser *p); static void *_tmp_204_rule(Parser *p); +static void *_tmp_205_rule(Parser *p); // file: statements? $ @@ -18229,7 +18231,7 @@ invalid_legacy_expression_rule(Parser *p) // invalid_expression: // | invalid_legacy_expression // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid -// | disjunction 'if' disjunction !'else' +// | disjunction 'if' disjunction !('else' | ':') static void * invalid_expression_rule(Parser *p) { @@ -18288,12 +18290,12 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid")); } - { // disjunction 'if' disjunction !'else' + { // disjunction 'if' disjunction !('else' | ':') if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); Token * _keyword; expr_ty a; expr_ty b; @@ -18304,10 +18306,10 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 516) // token='else' + _PyPegen_lookahead(0, _tmp_144_rule, p) ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !'else'")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); _res = RAISE_SYNTAX_ERROR_KNOWN_RANGE ( a , b , "expected 'else' after 'if' expression" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -18318,7 +18320,7 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !'else'")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } _res = NULL; done: @@ -18386,7 +18388,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_144_rule, p) + _PyPegen_lookahead(0, _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -18412,7 +18414,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, _tmp_145_rule, p) + _PyPegen_lookahead(0, _tmp_146_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -18420,7 +18422,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, _tmp_146_rule, p) + _PyPegen_lookahead(0, _tmp_147_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -18497,7 +18499,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_147_var; + asdl_seq * _loop0_148_var; expr_ty a; expr_ty expression_var; if ( @@ -18505,7 +18507,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_147_var = _loop0_147_rule(p)) // star_named_expressions* + (_loop0_148_var = _loop0_148_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -18562,10 +18564,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_148_var; + asdl_seq * _loop0_149_var; expr_ty a; if ( - (_loop0_148_var = _loop0_148_rule(p)) // ((star_targets '='))* + (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -18592,10 +18594,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_149_var; + asdl_seq * _loop0_150_var; expr_ty a; if ( - (_loop0_149_var = _loop0_149_rule(p)) // ((star_targets '='))* + (_loop0_150_var = _loop0_150_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -18621,7 +18623,7 @@ invalid_assignment_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); - void *_tmp_150_var; + void *_tmp_151_var; expr_ty a; AugOperator* augassign_var; if ( @@ -18629,7 +18631,7 @@ invalid_assignment_rule(Parser *p) && (augassign_var = augassign_rule(p)) // augassign && - (_tmp_150_var = _tmp_150_rule(p)) // yield_expr | star_expressions + (_tmp_151_var = _tmp_151_rule(p)) // yield_expr | star_expressions ) { D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)")); @@ -18888,11 +18890,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_151_var; + void *_tmp_152_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_151_var = _tmp_151_rule(p)) // '[' | '(' | '{' + (_tmp_152_var = _tmp_152_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -18919,12 +18921,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_152_var; + void *_tmp_153_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_152_var = _tmp_152_rule(p)) // '[' | '{' + (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -18954,12 +18956,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_153_var; + void *_tmp_154_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_153_var = _tmp_153_rule(p)) // '[' | '{' + (_tmp_154_var = _tmp_154_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -19057,11 +19059,11 @@ invalid_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default* invalid_parameters_helper param_no_default")); - asdl_seq * _loop0_154_var; + asdl_seq * _loop0_155_var; arg_ty a; void *invalid_parameters_helper_var; if ( - (_loop0_154_var = _loop0_154_rule(p)) // param_no_default* + (_loop0_155_var = _loop0_155_rule(p)) // param_no_default* && (invalid_parameters_helper_var = invalid_parameters_helper_rule(p)) // invalid_parameters_helper && @@ -19128,13 +19130,13 @@ invalid_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - asdl_seq * _loop1_155_var; + asdl_seq * _loop1_156_var; if ( - (_loop1_155_var = _loop1_155_rule(p)) // param_with_default+ + (_loop1_156_var = _loop1_156_rule(p)) // param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+")); - _res = _loop1_155_var; + _res = _loop1_156_var; goto done; } p->mark = _mark; @@ -19165,11 +19167,11 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* invalid_lambda_parameters_helper lambda_param_no_default")); - asdl_seq * _loop0_156_var; + asdl_seq * _loop0_157_var; arg_ty a; void *invalid_lambda_parameters_helper_var; if ( - (_loop0_156_var = _loop0_156_rule(p)) // lambda_param_no_default* + (_loop0_157_var = _loop0_157_rule(p)) // lambda_param_no_default* && (invalid_lambda_parameters_helper_var = invalid_lambda_parameters_helper_rule(p)) // invalid_lambda_parameters_helper && @@ -19238,13 +19240,13 @@ invalid_lambda_parameters_helper_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters_helper[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - asdl_seq * _loop1_157_var; + asdl_seq * _loop1_158_var; if ( - (_loop1_157_var = _loop1_157_rule(p)) // lambda_param_with_default+ + (_loop1_158_var = _loop1_158_rule(p)) // lambda_param_with_default+ ) { D(fprintf(stderr, "%*c+ invalid_lambda_parameters_helper[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+")); - _res = _loop1_157_var; + _res = _loop1_158_var; goto done; } p->mark = _mark; @@ -19274,12 +19276,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_158_var; + void *_tmp_159_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_158_var = _tmp_158_rule(p)) // ')' | ',' (')' | '**') + (_tmp_159_var = _tmp_159_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -19349,11 +19351,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_159_var; + void *_tmp_160_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_159_var = _tmp_159_rule(p)) // ':' | ',' (':' | '**') + (_tmp_160_var = _tmp_160_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -19455,7 +19457,7 @@ invalid_with_item_rule(Parser *p) && (a = expression_rule(p)) // expression && - _PyPegen_lookahead(1, _tmp_160_rule, p) + _PyPegen_lookahead(1, _tmp_161_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression 'as' expression &(',' | ')' | ':')")); @@ -19668,7 +19670,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); - asdl_seq * _gather_161_var; + asdl_seq * _gather_162_var; Token * _keyword; Token * _literal; void *_opt_var; @@ -19678,13 +19680,13 @@ invalid_with_stmt_rule(Parser *p) && (_keyword = _PyPegen_expect_token(p, 519)) // token='with' && - (_gather_161_var = _gather_161_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_162_var = _gather_162_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' ) { D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_161_var, _literal); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _gather_162_var, _literal); goto done; } p->mark = _mark; @@ -19697,7 +19699,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); - asdl_seq * _gather_163_var; + asdl_seq * _gather_164_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -19713,7 +19715,7 @@ invalid_with_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_163_var = _gather_163_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_164_var = _gather_164_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','? && @@ -19723,7 +19725,7 @@ invalid_with_stmt_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_with_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' &&':'")); - _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_163_var, _opt_var_1, _literal_1, _literal_2); + _res = _PyPegen_dummy_name(p, _opt_var, _keyword, _literal, _gather_164_var, _opt_var_1, _literal_1, _literal_2); goto done; } p->mark = _mark; @@ -19755,7 +19757,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_165_var; + asdl_seq * _gather_166_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -19766,7 +19768,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (a = _PyPegen_expect_token(p, 519)) // token='with' && - (_gather_165_var = _gather_165_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_166_var = _gather_166_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -19794,7 +19796,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_167_var; + asdl_seq * _gather_168_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -19811,7 +19813,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_167_var = _gather_167_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_168_var = _gather_168_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), 1) // ','? && @@ -19902,7 +19904,7 @@ invalid_try_stmt_rule(Parser *p) && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, _tmp_169_rule, p) + _PyPegen_lookahead(0, _tmp_170_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -19960,7 +19962,7 @@ invalid_except_stmt_rule(Parser *p) && (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_170_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -19994,7 +19996,7 @@ invalid_except_stmt_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_171_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME] && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -20124,7 +20126,7 @@ invalid_except_stmt_indent_rule(Parser *p) && (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_172_rule(p), 1) // ['as' NAME] + (_opt_var = _tmp_173_rule(p), 1) // ['as' NAME] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20508,7 +20510,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_173_rule(p), 1) // [positional_patterns ','] + (_opt_var = _tmp_174_rule(p), 1) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -20942,7 +20944,7 @@ invalid_def_raw_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' && - (_opt_var_2 = _tmp_174_rule(p), 1) // ['->' expression] + (_opt_var_2 = _tmp_175_rule(p), 1) // ['->' expression] && (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20998,7 +21000,7 @@ invalid_class_def_raw_rule(Parser *p) && (name_var = _PyPegen_name_token(p)) // NAME && - (_opt_var = _tmp_175_rule(p), 1) // ['(' arguments? ')'] + (_opt_var = _tmp_176_rule(p), 1) // ['(' arguments? ')'] && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -21046,11 +21048,11 @@ invalid_double_starred_kvpairs_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_double_starred_kvpairs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - asdl_seq * _gather_176_var; + asdl_seq * _gather_177_var; Token * _literal; void *invalid_kvpair_var; if ( - (_gather_176_var = _gather_176_rule(p)) // ','.double_starred_kvpair+ + (_gather_177_var = _gather_177_rule(p)) // ','.double_starred_kvpair+ && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && @@ -21058,7 +21060,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ',' invalid_kvpair")); - _res = _PyPegen_dummy_name(p, _gather_176_var, _literal, invalid_kvpair_var); + _res = _PyPegen_dummy_name(p, _gather_177_var, _literal, invalid_kvpair_var); goto done; } p->mark = _mark; @@ -21111,7 +21113,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, _tmp_178_rule, p) + _PyPegen_lookahead(1, _tmp_179_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -22484,12 +22486,12 @@ _loop1_22_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_179_var; + void *_tmp_180_var; while ( - (_tmp_179_var = _tmp_179_rule(p)) // star_targets '=' + (_tmp_180_var = _tmp_180_rule(p)) // star_targets '=' ) { - _res = _tmp_179_var; + _res = _tmp_180_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -22992,12 +22994,12 @@ _loop0_31_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_180_var; + void *_tmp_181_var; while ( - (_tmp_180_var = _tmp_180_rule(p)) // '.' | '...' + (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...' ) { - _res = _tmp_180_var; + _res = _tmp_181_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -23058,12 +23060,12 @@ _loop1_32_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_181_var; + void *_tmp_182_var; while ( - (_tmp_181_var = _tmp_181_rule(p)) // '.' | '...' + (_tmp_182_var = _tmp_182_rule(p)) // '.' | '...' ) { - _res = _tmp_181_var; + _res = _tmp_182_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26174,12 +26176,12 @@ _loop1_84_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_182_var; + void *_tmp_183_var; while ( - (_tmp_182_var = _tmp_182_rule(p)) // '@' named_expression NEWLINE + (_tmp_183_var = _tmp_183_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_182_var; + _res = _tmp_183_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26292,12 +26294,12 @@ _loop1_86_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_183_var; + void *_tmp_184_var; while ( - (_tmp_183_var = _tmp_183_rule(p)) // ',' star_expression + (_tmp_184_var = _tmp_184_rule(p)) // ',' star_expression ) { - _res = _tmp_183_var; + _res = _tmp_184_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26477,12 +26479,12 @@ _loop1_89_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)")); - void *_tmp_184_var; + void *_tmp_185_var; while ( - (_tmp_184_var = _tmp_184_rule(p)) // ',' expression + (_tmp_185_var = _tmp_185_rule(p)) // ',' expression ) { - _res = _tmp_184_var; + _res = _tmp_185_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27507,12 +27509,12 @@ _loop1_104_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_185_var; + void *_tmp_186_var; while ( - (_tmp_185_var = _tmp_185_rule(p)) // 'or' conjunction + (_tmp_186_var = _tmp_186_rule(p)) // 'or' conjunction ) { - _res = _tmp_185_var; + _res = _tmp_186_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27578,12 +27580,12 @@ _loop1_105_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_186_var; + void *_tmp_187_var; while ( - (_tmp_186_var = _tmp_186_rule(p)) // 'and' inversion + (_tmp_187_var = _tmp_187_rule(p)) // 'and' inversion ) { - _res = _tmp_186_var; + _res = _tmp_187_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28556,12 +28558,12 @@ _loop0_121_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_187_var; + void *_tmp_188_var; while ( - (_tmp_187_var = _tmp_187_rule(p)) // 'if' disjunction + (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction ) { - _res = _tmp_187_var; + _res = _tmp_188_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28622,12 +28624,12 @@ _loop0_122_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_188_var; + void *_tmp_189_var; while ( - (_tmp_188_var = _tmp_188_rule(p)) // 'if' disjunction + (_tmp_189_var = _tmp_189_rule(p)) // 'if' disjunction ) { - _res = _tmp_188_var; + _res = _tmp_189_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -28693,7 +28695,7 @@ _loop0_124_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' + (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' ) { _res = elem; @@ -28757,7 +28759,7 @@ _gather_123_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_189_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' + (elem = _tmp_190_rule(p)) // starred_expression | (assigment_expression | expression !':=') !'=' && (seq = _loop0_124_rule(p)) // _loop0_124 ) @@ -29303,12 +29305,12 @@ _loop0_134_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_190_var; + void *_tmp_191_var; while ( - (_tmp_190_var = _tmp_190_rule(p)) // ',' star_target + (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target ) { - _res = _tmp_190_var; + _res = _tmp_191_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29483,12 +29485,12 @@ _loop1_137_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_191_var; + void *_tmp_192_var; while ( - (_tmp_191_var = _tmp_191_rule(p)) // ',' star_target + (_tmp_192_var = _tmp_192_rule(p)) // ',' star_target ) { - _res = _tmp_191_var; + _res = _tmp_192_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29834,9 +29836,64 @@ _tmp_143_rule(Parser *p) return _res; } -// _tmp_144: '=' | ':=' +// _tmp_144: 'else' | ':' static void * _tmp_144_rule(Parser *p) +{ + D(p->level++); + if (p->error_indicator) { + D(p->level--); + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // 'else' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); + Token * _keyword; + if ( + (_keyword = _PyPegen_expect_token(p, 516)) // token='else' + ) + { + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); + _res = _keyword; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else'")); + } + { // ':' + if (p->error_indicator) { + D(p->level--); + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + Token * _literal; + if ( + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + ) + { + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + _res = _literal; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); + } + _res = NULL; + done: + D(p->level--); + return _res; +} + +// _tmp_145: '=' | ':=' +static void * +_tmp_145_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -29850,18 +29907,18 @@ _tmp_144_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -29869,18 +29926,18 @@ _tmp_144_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -29889,9 +29946,9 @@ _tmp_144_rule(Parser *p) return _res; } -// _tmp_145: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_146: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_145_rule(Parser *p) +_tmp_146_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -29905,18 +29962,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -29924,18 +29981,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -29943,18 +30000,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -29962,18 +30019,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 524)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -29981,18 +30038,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 523)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -30000,18 +30057,18 @@ _tmp_145_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 525)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -30020,9 +30077,9 @@ _tmp_145_rule(Parser *p) return _res; } -// _tmp_146: '=' | ':=' +// _tmp_147: '=' | ':=' static void * -_tmp_146_rule(Parser *p) +_tmp_147_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30036,18 +30093,18 @@ _tmp_146_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -30055,18 +30112,18 @@ _tmp_146_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -30075,9 +30132,9 @@ _tmp_146_rule(Parser *p) return _res; } -// _loop0_147: star_named_expressions +// _loop0_148: star_named_expressions static asdl_seq * -_loop0_147_rule(Parser *p) +_loop0_148_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30101,7 +30158,7 @@ _loop0_147_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -30123,7 +30180,7 @@ _loop0_147_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30136,14 +30193,14 @@ _loop0_147_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_147_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq); D(p->level--); return _seq; } -// _loop0_148: (star_targets '=') +// _loop0_149: (star_targets '=') static asdl_seq * -_loop0_148_rule(Parser *p) +_loop0_149_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30167,13 +30224,13 @@ _loop0_148_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_192_var; + D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_193_var; while ( - (_tmp_192_var = _tmp_192_rule(p)) // star_targets '=' + (_tmp_193_var = _tmp_193_rule(p)) // star_targets '=' ) { - _res = _tmp_192_var; + _res = _tmp_193_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30189,7 +30246,7 @@ _loop0_148_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30202,14 +30259,14 @@ _loop0_148_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_148_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq); D(p->level--); return _seq; } -// _loop0_149: (star_targets '=') +// _loop0_150: (star_targets '=') static asdl_seq * -_loop0_149_rule(Parser *p) +_loop0_150_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30233,13 +30290,13 @@ _loop0_149_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_193_var; + D(fprintf(stderr, "%*c> _loop0_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_194_var; while ( - (_tmp_193_var = _tmp_193_rule(p)) // star_targets '=' + (_tmp_194_var = _tmp_194_rule(p)) // star_targets '=' ) { - _res = _tmp_193_var; + _res = _tmp_194_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -30255,7 +30312,7 @@ _loop0_149_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30268,14 +30325,14 @@ _loop0_149_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_149_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_150_type, _seq); D(p->level--); return _seq; } -// _tmp_150: yield_expr | star_expressions +// _tmp_151: yield_expr | star_expressions static void * -_tmp_150_rule(Parser *p) +_tmp_151_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30289,18 +30346,18 @@ _tmp_150_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr")); expr_ty yield_expr_var; if ( (yield_expr_var = yield_expr_rule(p)) // yield_expr ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr")); _res = yield_expr_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr")); } { // star_expressions @@ -30308,18 +30365,18 @@ _tmp_150_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions")); expr_ty star_expressions_var; if ( (star_expressions_var = star_expressions_rule(p)) // star_expressions ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions")); _res = star_expressions_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } _res = NULL; @@ -30328,9 +30385,9 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: '[' | '(' | '{' +// _tmp_152: '[' | '(' | '{' static void * -_tmp_151_rule(Parser *p) +_tmp_152_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30344,18 +30401,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -30363,18 +30420,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -30382,18 +30439,18 @@ _tmp_151_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30402,9 +30459,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: '[' | '{' +// _tmp_153: '[' | '{' static void * -_tmp_152_rule(Parser *p) +_tmp_153_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30418,18 +30475,18 @@ _tmp_152_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -30437,18 +30494,18 @@ _tmp_152_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30457,9 +30514,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: '[' | '{' +// _tmp_154: '[' | '{' static void * -_tmp_153_rule(Parser *p) +_tmp_154_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30473,18 +30530,18 @@ _tmp_153_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -30492,18 +30549,18 @@ _tmp_153_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -30512,9 +30569,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _loop0_154: param_no_default +// _loop0_155: param_no_default static asdl_seq * -_loop0_154_rule(Parser *p) +_loop0_155_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30538,7 +30595,7 @@ _loop0_154_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _loop0_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; while ( (param_no_default_var = param_no_default_rule(p)) // param_no_default @@ -30560,7 +30617,7 @@ _loop0_154_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30573,14 +30630,14 @@ _loop0_154_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_154_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_155_type, _seq); D(p->level--); return _seq; } -// _loop1_155: param_with_default +// _loop1_156: param_with_default static asdl_seq * -_loop1_155_rule(Parser *p) +_loop1_156_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30604,7 +30661,7 @@ _loop1_155_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop1_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); + D(fprintf(stderr, "%*c> _loop1_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default")); NameDefaultPair* param_with_default_var; while ( (param_with_default_var = param_with_default_rule(p)) // param_with_default @@ -30626,7 +30683,7 @@ _loop1_155_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -30644,14 +30701,14 @@ _loop1_155_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_155_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_156_type, _seq); D(p->level--); return _seq; } -// _loop0_156: lambda_param_no_default +// _loop0_157: lambda_param_no_default static asdl_seq * -_loop0_156_rule(Parser *p) +_loop0_157_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30675,7 +30732,7 @@ _loop0_156_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _loop0_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; while ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default @@ -30697,7 +30754,7 @@ _loop0_156_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -30710,14 +30767,14 @@ _loop0_156_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_156_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_157_type, _seq); D(p->level--); return _seq; } -// _loop1_157: lambda_param_with_default +// _loop1_158: lambda_param_with_default static asdl_seq * -_loop1_157_rule(Parser *p) +_loop1_158_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30741,7 +30798,7 @@ _loop1_157_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop1_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); + D(fprintf(stderr, "%*c> _loop1_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default")); NameDefaultPair* lambda_param_with_default_var; while ( (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default @@ -30763,7 +30820,7 @@ _loop1_157_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop1_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop1_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default")); } if (_n == 0 || p->error_indicator) { @@ -30781,14 +30838,14 @@ _loop1_157_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop1_157_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop1_158_type, _seq); D(p->level--); return _seq; } -// _tmp_158: ')' | ',' (')' | '**') +// _tmp_159: ')' | ',' (')' | '**') static void * -_tmp_158_rule(Parser *p) +_tmp_159_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30802,18 +30859,18 @@ _tmp_158_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -30821,21 +30878,21 @@ _tmp_158_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_194_var; + void *_tmp_195_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_194_var = _tmp_194_rule(p)) // ')' | '**' + (_tmp_195_var = _tmp_195_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_194_var); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -30844,9 +30901,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: ':' | ',' (':' | '**') +// _tmp_160: ':' | ',' (':' | '**') static void * -_tmp_159_rule(Parser *p) +_tmp_160_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30860,18 +30917,18 @@ _tmp_159_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -30879,21 +30936,21 @@ _tmp_159_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_195_var; + void *_tmp_196_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_195_var = _tmp_195_rule(p)) // ':' | '**' + (_tmp_196_var = _tmp_196_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_195_var); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_196_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -30902,9 +30959,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: ',' | ')' | ':' +// _tmp_161: ',' | ')' | ':' static void * -_tmp_160_rule(Parser *p) +_tmp_161_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -30918,18 +30975,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // ')' @@ -30937,18 +30994,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ':' @@ -30956,18 +31013,18 @@ _tmp_160_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -30976,9 +31033,9 @@ _tmp_160_rule(Parser *p) return _res; } -// _loop0_162: ',' (expression ['as' star_target]) +// _loop0_163: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_162_rule(Parser *p) +_loop0_163_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31002,13 +31059,13 @@ _loop0_162_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_196_rule(p)) // expression ['as' star_target] + (elem = _tmp_197_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -31033,7 +31090,7 @@ _loop0_162_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31046,14 +31103,14 @@ _loop0_162_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_162_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_163_type, _seq); D(p->level--); return _seq; } -// _gather_161: (expression ['as' star_target]) _loop0_162 +// _gather_162: (expression ['as' star_target]) _loop0_163 static asdl_seq * -_gather_161_rule(Parser *p) +_gather_162_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31062,27 +31119,27 @@ _gather_161_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_162 + { // (expression ['as' star_target]) _loop0_163 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c> _gather_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_196_rule(p)) // expression ['as' star_target] + (elem = _tmp_197_rule(p)) // expression ['as' star_target] && - (seq = _loop0_162_rule(p)) // _loop0_162 + (seq = _loop0_163_rule(p)) // _loop0_163 ) { - D(fprintf(stderr, "%*c+ _gather_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c+ _gather_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_161[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_162")); + D(fprintf(stderr, "%*c%s _gather_162[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_163")); } _res = NULL; done: @@ -31090,9 +31147,9 @@ _gather_161_rule(Parser *p) return _res; } -// _loop0_164: ',' (expressions ['as' star_target]) +// _loop0_165: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_164_rule(Parser *p) +_loop0_165_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31116,13 +31173,13 @@ _loop0_164_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_197_rule(p)) // expressions ['as' star_target] + (elem = _tmp_198_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -31147,7 +31204,7 @@ _loop0_164_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31160,14 +31217,14 @@ _loop0_164_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_164_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_165_type, _seq); D(p->level--); return _seq; } -// _gather_163: (expressions ['as' star_target]) _loop0_164 +// _gather_164: (expressions ['as' star_target]) _loop0_165 static asdl_seq * -_gather_163_rule(Parser *p) +_gather_164_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31176,27 +31233,27 @@ _gather_163_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_164 + { // (expressions ['as' star_target]) _loop0_165 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c> _gather_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_197_rule(p)) // expressions ['as' star_target] + (elem = _tmp_198_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_164_rule(p)) // _loop0_164 + (seq = _loop0_165_rule(p)) // _loop0_165 ) { - D(fprintf(stderr, "%*c+ _gather_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c+ _gather_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_163[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_164")); + D(fprintf(stderr, "%*c%s _gather_164[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_165")); } _res = NULL; done: @@ -31204,9 +31261,9 @@ _gather_163_rule(Parser *p) return _res; } -// _loop0_166: ',' (expression ['as' star_target]) +// _loop0_167: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_166_rule(Parser *p) +_loop0_167_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31230,13 +31287,13 @@ _loop0_166_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_198_rule(p)) // expression ['as' star_target] + (elem = _tmp_199_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -31261,7 +31318,7 @@ _loop0_166_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31274,14 +31331,14 @@ _loop0_166_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_166_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_167_type, _seq); D(p->level--); return _seq; } -// _gather_165: (expression ['as' star_target]) _loop0_166 +// _gather_166: (expression ['as' star_target]) _loop0_167 static asdl_seq * -_gather_165_rule(Parser *p) +_gather_166_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31290,27 +31347,27 @@ _gather_165_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_166 + { // (expression ['as' star_target]) _loop0_167 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c> _gather_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_198_rule(p)) // expression ['as' star_target] + (elem = _tmp_199_rule(p)) // expression ['as' star_target] && - (seq = _loop0_166_rule(p)) // _loop0_166 + (seq = _loop0_167_rule(p)) // _loop0_167 ) { - D(fprintf(stderr, "%*c+ _gather_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c+ _gather_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_165[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_166")); + D(fprintf(stderr, "%*c%s _gather_166[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_167")); } _res = NULL; done: @@ -31318,9 +31375,9 @@ _gather_165_rule(Parser *p) return _res; } -// _loop0_168: ',' (expressions ['as' star_target]) +// _loop0_169: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_168_rule(Parser *p) +_loop0_169_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31344,13 +31401,13 @@ _loop0_168_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_199_rule(p)) // expressions ['as' star_target] + (elem = _tmp_200_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -31375,7 +31432,7 @@ _loop0_168_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31388,14 +31445,14 @@ _loop0_168_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_168_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_169_type, _seq); D(p->level--); return _seq; } -// _gather_167: (expressions ['as' star_target]) _loop0_168 +// _gather_168: (expressions ['as' star_target]) _loop0_169 static asdl_seq * -_gather_167_rule(Parser *p) +_gather_168_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31404,27 +31461,27 @@ _gather_167_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_168 + { // (expressions ['as' star_target]) _loop0_169 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c> _gather_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_199_rule(p)) // expressions ['as' star_target] + (elem = _tmp_200_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_168_rule(p)) // _loop0_168 + (seq = _loop0_169_rule(p)) // _loop0_169 ) { - D(fprintf(stderr, "%*c+ _gather_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c+ _gather_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_167[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_168")); + D(fprintf(stderr, "%*c%s _gather_168[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_169")); } _res = NULL; done: @@ -31432,9 +31489,9 @@ _gather_167_rule(Parser *p) return _res; } -// _tmp_169: 'except' | 'finally' +// _tmp_170: 'except' | 'finally' static void * -_tmp_169_rule(Parser *p) +_tmp_170_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31448,18 +31505,18 @@ _tmp_169_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 521)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -31467,18 +31524,18 @@ _tmp_169_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 522)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -31487,9 +31544,9 @@ _tmp_169_rule(Parser *p) return _res; } -// _tmp_170: 'as' NAME +// _tmp_171: 'as' NAME static void * -_tmp_170_rule(Parser *p) +_tmp_171_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31503,7 +31560,7 @@ _tmp_170_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31512,12 +31569,12 @@ _tmp_170_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31526,9 +31583,9 @@ _tmp_170_rule(Parser *p) return _res; } -// _tmp_171: 'as' NAME +// _tmp_172: 'as' NAME static void * -_tmp_171_rule(Parser *p) +_tmp_172_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31542,7 +31599,7 @@ _tmp_171_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31551,12 +31608,12 @@ _tmp_171_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31565,9 +31622,9 @@ _tmp_171_rule(Parser *p) return _res; } -// _tmp_172: 'as' NAME +// _tmp_173: 'as' NAME static void * -_tmp_172_rule(Parser *p) +_tmp_173_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31581,7 +31638,7 @@ _tmp_172_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME")); Token * _keyword; expr_ty name_var; if ( @@ -31590,12 +31647,12 @@ _tmp_172_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); + D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME")); _res = _PyPegen_dummy_name(p, _keyword, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME")); } _res = NULL; @@ -31604,9 +31661,9 @@ _tmp_172_rule(Parser *p) return _res; } -// _tmp_173: positional_patterns ',' +// _tmp_174: positional_patterns ',' static void * -_tmp_173_rule(Parser *p) +_tmp_174_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31620,7 +31677,7 @@ _tmp_173_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -31629,12 +31686,12 @@ _tmp_173_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -31643,9 +31700,9 @@ _tmp_173_rule(Parser *p) return _res; } -// _tmp_174: '->' expression +// _tmp_175: '->' expression static void * -_tmp_174_rule(Parser *p) +_tmp_175_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31659,7 +31716,7 @@ _tmp_174_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_174[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression")); Token * _literal; expr_ty expression_var; if ( @@ -31668,12 +31725,12 @@ _tmp_174_rule(Parser *p) (expression_var = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_174[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); + D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression")); _res = _PyPegen_dummy_name(p, _literal, expression_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_174[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression")); } _res = NULL; @@ -31682,9 +31739,9 @@ _tmp_174_rule(Parser *p) return _res; } -// _tmp_175: '(' arguments? ')' +// _tmp_176: '(' arguments? ')' static void * -_tmp_175_rule(Parser *p) +_tmp_176_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31698,7 +31755,7 @@ _tmp_175_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_175[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c> _tmp_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); Token * _literal; Token * _literal_1; void *_opt_var; @@ -31711,12 +31768,12 @@ _tmp_175_rule(Parser *p) (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_175[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); + D(fprintf(stderr, "%*c+ _tmp_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'")); _res = _PyPegen_dummy_name(p, _literal, _opt_var, _literal_1); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_175[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_176[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'")); } _res = NULL; @@ -31725,9 +31782,9 @@ _tmp_175_rule(Parser *p) return _res; } -// _loop0_177: ',' double_starred_kvpair +// _loop0_178: ',' double_starred_kvpair static asdl_seq * -_loop0_177_rule(Parser *p) +_loop0_178_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31751,7 +31808,7 @@ _loop0_177_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _loop0_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); + D(fprintf(stderr, "%*c> _loop0_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair")); Token * _literal; KeyValuePair* elem; while ( @@ -31782,7 +31839,7 @@ _loop0_177_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_177[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_178[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -31795,14 +31852,14 @@ _loop0_177_rule(Parser *p) } for (int i = 0; i < _n; i++) asdl_seq_SET_UNTYPED(_seq, i, _children[i]); PyMem_Free(_children); - _PyPegen_insert_memo(p, _start_mark, _loop0_177_type, _seq); + _PyPegen_insert_memo(p, _start_mark, _loop0_178_type, _seq); D(p->level--); return _seq; } -// _gather_176: double_starred_kvpair _loop0_177 +// _gather_177: double_starred_kvpair _loop0_178 static asdl_seq * -_gather_176_rule(Parser *p) +_gather_177_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31811,27 +31868,27 @@ _gather_176_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // double_starred_kvpair _loop0_177 + { // double_starred_kvpair _loop0_178 if (p->error_indicator) { D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _gather_176[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c> _gather_177[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178")); KeyValuePair* elem; asdl_seq * seq; if ( (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair && - (seq = _loop0_177_rule(p)) // _loop0_177 + (seq = _loop0_178_rule(p)) // _loop0_178 ) { - D(fprintf(stderr, "%*c+ _gather_176[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c+ _gather_177[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_178")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_176[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_177")); + D(fprintf(stderr, "%*c%s _gather_177[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_178")); } _res = NULL; done: @@ -31839,9 +31896,9 @@ _gather_176_rule(Parser *p) return _res; } -// _tmp_178: '}' | ',' +// _tmp_179: '}' | ',' static void * -_tmp_178_rule(Parser *p) +_tmp_179_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31855,18 +31912,18 @@ _tmp_178_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -31874,18 +31931,18 @@ _tmp_178_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_178[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_178[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_178[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -31894,9 +31951,9 @@ _tmp_178_rule(Parser *p) return _res; } -// _tmp_179: star_targets '=' +// _tmp_180: star_targets '=' static void * -_tmp_179_rule(Parser *p) +_tmp_180_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31910,7 +31967,7 @@ _tmp_179_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_179[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -31919,7 +31976,7 @@ _tmp_179_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_179[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -31929,7 +31986,7 @@ _tmp_179_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_179[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -31938,9 +31995,9 @@ _tmp_179_rule(Parser *p) return _res; } -// _tmp_180: '.' | '...' +// _tmp_181: '.' | '...' static void * -_tmp_180_rule(Parser *p) +_tmp_181_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -31954,18 +32011,18 @@ _tmp_180_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -31973,18 +32030,18 @@ _tmp_180_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_180[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_180[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_180[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -31993,9 +32050,9 @@ _tmp_180_rule(Parser *p) return _res; } -// _tmp_181: '.' | '...' +// _tmp_182: '.' | '...' static void * -_tmp_181_rule(Parser *p) +_tmp_182_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32009,18 +32066,18 @@ _tmp_181_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -32028,18 +32085,18 @@ _tmp_181_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_181[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_181[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_181[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -32048,9 +32105,9 @@ _tmp_181_rule(Parser *p) return _res; } -// _tmp_182: '@' named_expression NEWLINE +// _tmp_183: '@' named_expression NEWLINE static void * -_tmp_182_rule(Parser *p) +_tmp_183_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32064,7 +32121,7 @@ _tmp_182_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_182[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -32076,7 +32133,7 @@ _tmp_182_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_182[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32086,7 +32143,7 @@ _tmp_182_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_182[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -32095,9 +32152,9 @@ _tmp_182_rule(Parser *p) return _res; } -// _tmp_183: ',' star_expression +// _tmp_184: ',' star_expression static void * -_tmp_183_rule(Parser *p) +_tmp_184_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32111,7 +32168,7 @@ _tmp_183_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_183[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -32120,7 +32177,7 @@ _tmp_183_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_183[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32130,7 +32187,7 @@ _tmp_183_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_183[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -32139,9 +32196,9 @@ _tmp_183_rule(Parser *p) return _res; } -// _tmp_184: ',' expression +// _tmp_185: ',' expression static void * -_tmp_184_rule(Parser *p) +_tmp_185_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32155,7 +32212,7 @@ _tmp_184_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_184[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression")); Token * _literal; expr_ty c; if ( @@ -32164,7 +32221,7 @@ _tmp_184_rule(Parser *p) (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ _tmp_184[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); + D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32174,7 +32231,7 @@ _tmp_184_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_184[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression")); } _res = NULL; @@ -32183,9 +32240,9 @@ _tmp_184_rule(Parser *p) return _res; } -// _tmp_185: 'or' conjunction +// _tmp_186: 'or' conjunction static void * -_tmp_185_rule(Parser *p) +_tmp_186_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32199,7 +32256,7 @@ _tmp_185_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_185[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -32208,7 +32265,7 @@ _tmp_185_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_185[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32218,7 +32275,7 @@ _tmp_185_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_185[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -32227,9 +32284,9 @@ _tmp_185_rule(Parser *p) return _res; } -// _tmp_186: 'and' inversion +// _tmp_187: 'and' inversion static void * -_tmp_186_rule(Parser *p) +_tmp_187_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32243,7 +32300,7 @@ _tmp_186_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_186[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -32252,7 +32309,7 @@ _tmp_186_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_186[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32262,7 +32319,7 @@ _tmp_186_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_186[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -32271,9 +32328,9 @@ _tmp_186_rule(Parser *p) return _res; } -// _tmp_187: 'if' disjunction +// _tmp_188: 'if' disjunction static void * -_tmp_187_rule(Parser *p) +_tmp_188_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32287,7 +32344,7 @@ _tmp_187_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_187[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -32296,7 +32353,7 @@ _tmp_187_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_187[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32306,7 +32363,7 @@ _tmp_187_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_187[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -32315,9 +32372,9 @@ _tmp_187_rule(Parser *p) return _res; } -// _tmp_188: 'if' disjunction +// _tmp_189: 'if' disjunction static void * -_tmp_188_rule(Parser *p) +_tmp_189_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32331,7 +32388,7 @@ _tmp_188_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_188[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -32340,7 +32397,7 @@ _tmp_188_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_188[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32350,7 +32407,7 @@ _tmp_188_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_188[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -32359,9 +32416,9 @@ _tmp_188_rule(Parser *p) return _res; } -// _tmp_189: starred_expression | (assigment_expression | expression !':=') !'=' +// _tmp_190: starred_expression | (assigment_expression | expression !':=') !'=' static void * -_tmp_189_rule(Parser *p) +_tmp_190_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32375,18 +32432,18 @@ _tmp_189_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assigment_expression | expression !':=') !'=' @@ -32394,20 +32451,20 @@ _tmp_189_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_189[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); - void *_tmp_200_var; + D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); + void *_tmp_201_var; if ( - (_tmp_200_var = _tmp_200_rule(p)) // assigment_expression | expression !':=' + (_tmp_201_var = _tmp_201_rule(p)) // assigment_expression | expression !':=' && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_189[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); - _res = _tmp_200_var; + D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assigment_expression | expression !':=') !'='")); + _res = _tmp_201_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_189[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assigment_expression | expression !':=') !'='")); } _res = NULL; @@ -32416,9 +32473,9 @@ _tmp_189_rule(Parser *p) return _res; } -// _tmp_190: ',' star_target +// _tmp_191: ',' star_target static void * -_tmp_190_rule(Parser *p) +_tmp_191_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32432,7 +32489,7 @@ _tmp_190_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_190[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -32441,7 +32498,7 @@ _tmp_190_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_190[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32451,7 +32508,7 @@ _tmp_190_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_190[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -32460,9 +32517,9 @@ _tmp_190_rule(Parser *p) return _res; } -// _tmp_191: ',' star_target +// _tmp_192: ',' star_target static void * -_tmp_191_rule(Parser *p) +_tmp_192_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32476,7 +32533,7 @@ _tmp_191_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_191[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -32485,7 +32542,7 @@ _tmp_191_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_191[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -32495,7 +32552,7 @@ _tmp_191_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_191[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -32504,9 +32561,9 @@ _tmp_191_rule(Parser *p) return _res; } -// _tmp_192: star_targets '=' +// _tmp_193: star_targets '=' static void * -_tmp_192_rule(Parser *p) +_tmp_193_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32520,7 +32577,7 @@ _tmp_192_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_192[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -32529,12 +32586,12 @@ _tmp_192_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_192[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_192[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -32543,9 +32600,9 @@ _tmp_192_rule(Parser *p) return _res; } -// _tmp_193: star_targets '=' +// _tmp_194: star_targets '=' static void * -_tmp_193_rule(Parser *p) +_tmp_194_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32559,7 +32616,7 @@ _tmp_193_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_193[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty star_targets_var; if ( @@ -32568,12 +32625,12 @@ _tmp_193_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_193[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = _PyPegen_dummy_name(p, star_targets_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_193[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -32582,9 +32639,9 @@ _tmp_193_rule(Parser *p) return _res; } -// _tmp_194: ')' | '**' +// _tmp_195: ')' | '**' static void * -_tmp_194_rule(Parser *p) +_tmp_195_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32598,18 +32655,18 @@ _tmp_194_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -32617,18 +32674,18 @@ _tmp_194_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_194[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_194[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_194[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -32637,9 +32694,9 @@ _tmp_194_rule(Parser *p) return _res; } -// _tmp_195: ':' | '**' +// _tmp_196: ':' | '**' static void * -_tmp_195_rule(Parser *p) +_tmp_196_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32653,18 +32710,18 @@ _tmp_195_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -32672,18 +32729,18 @@ _tmp_195_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_195[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_195[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_195[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -32692,9 +32749,9 @@ _tmp_195_rule(Parser *p) return _res; } -// _tmp_196: expression ['as' star_target] +// _tmp_197: expression ['as' star_target] static void * -_tmp_196_rule(Parser *p) +_tmp_197_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32708,22 +32765,22 @@ _tmp_196_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_196[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_201_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_196[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_196[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -32732,9 +32789,9 @@ _tmp_196_rule(Parser *p) return _res; } -// _tmp_197: expressions ['as' star_target] +// _tmp_198: expressions ['as' star_target] static void * -_tmp_197_rule(Parser *p) +_tmp_198_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32748,22 +32805,22 @@ _tmp_197_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_197[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_202_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_197[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_197[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -32772,9 +32829,9 @@ _tmp_197_rule(Parser *p) return _res; } -// _tmp_198: expression ['as' star_target] +// _tmp_199: expression ['as' star_target] static void * -_tmp_198_rule(Parser *p) +_tmp_199_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32788,22 +32845,22 @@ _tmp_198_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_198[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_203_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_198[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_198[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -32812,9 +32869,9 @@ _tmp_198_rule(Parser *p) return _res; } -// _tmp_199: expressions ['as' star_target] +// _tmp_200: expressions ['as' star_target] static void * -_tmp_199_rule(Parser *p) +_tmp_200_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32828,22 +32885,22 @@ _tmp_199_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_199[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_204_rule(p), 1) // ['as' star_target] + (_opt_var = _tmp_205_rule(p), 1) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_199[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_199[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -32852,9 +32909,9 @@ _tmp_199_rule(Parser *p) return _res; } -// _tmp_200: assigment_expression | expression !':=' +// _tmp_201: assigment_expression | expression !':=' static void * -_tmp_200_rule(Parser *p) +_tmp_201_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32868,18 +32925,18 @@ _tmp_200_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression")); + D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assigment_expression")); expr_ty assigment_expression_var; if ( (assigment_expression_var = assigment_expression_rule(p)) // assigment_expression ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression")); + D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assigment_expression")); _res = assigment_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assigment_expression")); } { // expression !':=' @@ -32887,7 +32944,7 @@ _tmp_200_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_200[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='")); expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression @@ -32895,12 +32952,12 @@ _tmp_200_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_200[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); + D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='")); _res = expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_200[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='")); } _res = NULL; @@ -32909,9 +32966,9 @@ _tmp_200_rule(Parser *p) return _res; } -// _tmp_201: 'as' star_target +// _tmp_202: 'as' star_target static void * -_tmp_201_rule(Parser *p) +_tmp_202_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32925,7 +32982,7 @@ _tmp_201_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_201[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32934,12 +32991,12 @@ _tmp_201_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_201[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_201[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -32948,9 +33005,9 @@ _tmp_201_rule(Parser *p) return _res; } -// _tmp_202: 'as' star_target +// _tmp_203: 'as' star_target static void * -_tmp_202_rule(Parser *p) +_tmp_203_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -32964,7 +33021,7 @@ _tmp_202_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_202[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -32973,12 +33030,12 @@ _tmp_202_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_202[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_202[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -32987,9 +33044,9 @@ _tmp_202_rule(Parser *p) return _res; } -// _tmp_203: 'as' star_target +// _tmp_204: 'as' star_target static void * -_tmp_203_rule(Parser *p) +_tmp_204_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -33003,7 +33060,7 @@ _tmp_203_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_203[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -33012,12 +33069,12 @@ _tmp_203_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_203[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_203[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; @@ -33026,9 +33083,9 @@ _tmp_203_rule(Parser *p) return _res; } -// _tmp_204: 'as' star_target +// _tmp_205: 'as' star_target static void * -_tmp_204_rule(Parser *p) +_tmp_205_rule(Parser *p) { D(p->level++); if (p->error_indicator) { @@ -33042,7 +33099,7 @@ _tmp_204_rule(Parser *p) D(p->level--); return NULL; } - D(fprintf(stderr, "%*c> _tmp_204[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_205[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -33051,12 +33108,12 @@ _tmp_204_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_204[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_205[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_204[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_205[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; From webhook-mailer at python.org Thu Aug 5 16:48:26 2021 From: webhook-mailer at python.org (miss-islington) Date: Thu, 05 Aug 2021 20:48:26 -0000 Subject: [Python-checkins] bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) Message-ID: https://github.com/python/cpython/commit/938e84b4fa410f1a86f5e0708ebc3af6bb8efb0e commit: 938e84b4fa410f1a86f5e0708ebc3af6bb8efb0e branch: main author: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-05T13:48:18-07:00 summary: bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) files: M Doc/library/unittest.mock.rst diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index e760321ba129c..2f82fded9943d 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -2208,7 +2208,7 @@ In this example we monkey patch ``method`` to return ``sentinel.some_object``: >>> real.method.return_value = sentinel.some_object >>> result = real.method() >>> assert result is sentinel.some_object - >>> sentinel.some_object + >>> result sentinel.some_object From webhook-mailer at python.org Thu Aug 5 17:10:24 2021 From: webhook-mailer at python.org (miss-islington) Date: Thu, 05 Aug 2021 21:10:24 -0000 Subject: [Python-checkins] bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) Message-ID: https://github.com/python/cpython/commit/0a642d57736be6802c712bdbf2dcff39fe8a39b7 commit: 0a642d57736be6802c712bdbf2dcff39fe8a39b7 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-05T14:10:14-07:00 summary: bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) (cherry picked from commit 938e84b4fa410f1a86f5e0708ebc3af6bb8efb0e) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: M Doc/library/unittest.mock.rst diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index f1c0757c510fa..d0640b42ef40a 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -2208,7 +2208,7 @@ In this example we monkey patch ``method`` to return ``sentinel.some_object``: >>> real.method.return_value = sentinel.some_object >>> result = real.method() >>> assert result is sentinel.some_object - >>> sentinel.some_object + >>> result sentinel.some_object From webhook-mailer at python.org Fri Aug 6 07:11:19 2021 From: webhook-mailer at python.org (vstinner) Date: Fri, 06 Aug 2021 11:11:19 -0000 Subject: [Python-checkins] bpo-44584: Deprecate PYTHONTHREADDEBUG env var (GH-27065) Message-ID: https://github.com/python/cpython/commit/4d77691172aae81bdcbb0ea75839d0e896c43781 commit: 4d77691172aae81bdcbb0ea75839d0e896c43781 branch: main author: Victor Stinner committer: vstinner date: 2021-08-06T13:11:12+02:00 summary: bpo-44584: Deprecate PYTHONTHREADDEBUG env var (GH-27065) The threading debug (PYTHONTHREADDEBUG environment variable) is deprecated in Python 3.10 and will be removed in Python 3.12. This feature requires a debug build of Python. files: A Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst M Doc/using/cmdline.rst M Doc/whatsnew/3.10.rst M Lib/test/test_threading.py M Misc/python.man M Python/pylifecycle.c M Python/thread.c diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 98fdba24e28bf4..9e391604a1a59d 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -962,10 +962,12 @@ Debug-mode variables .. envvar:: PYTHONTHREADDEBUG - If set, Python will print threading debug info. + If set, Python will print threading debug info into stdout. Need a :ref:`debug build of Python `. + .. deprecated-removed:: 3.10 3.12 + .. envvar:: PYTHONDUMPREFS diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 52901506362921..ae6ad9c52ccade 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -1691,6 +1691,11 @@ Deprecated * NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` and :meth:`ssl.SSLContext.set_npn_protocols` are replaced by ALPN. +* The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is + deprecated in Python 3.10 and will be removed in Python 3.12. This feature + requires a :ref:`debug build of Python `. + (Contributed by Victor Stinner in :issue:`44584`.) + .. _whatsnew310-removed: Removed diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index 23fe2d3f4d32e2..c51de6f4b85537 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -32,6 +32,9 @@ # on platforms known to behave badly. platforms_to_skip = ('netbsd5', 'hp-ux11') +# Is Python built with Py_DEBUG macro defined? +Py_DEBUG = hasattr(sys, 'gettotalrefcount') + def restore_default_excepthook(testcase): testcase.addCleanup(setattr, threading, 'excepthook', threading.excepthook) @@ -915,6 +918,16 @@ def noop(): pass threading.Thread(target=noop).start() # Thread.join() is not called + @unittest.skipUnless(Py_DEBUG, 'need debug build (Py_DEBUG)') + def test_debug_deprecation(self): + # bpo-44584: The PYTHONTHREADDEBUG environment variable is deprecated + rc, out, err = assert_python_ok("-Wdefault", "-c", "pass", + PYTHONTHREADDEBUG="1") + msg = (b'DeprecationWarning: The threading debug ' + b'(PYTHONTHREADDEBUG environment variable) ' + b'is deprecated and will be removed in Python 3.12') + self.assertIn(msg, err) + class ThreadJoinOnShutdown(BaseTestCase): diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst new file mode 100644 index 00000000000000..4afb33b047d4be --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst @@ -0,0 +1,3 @@ +The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is +deprecated in Python 3.10 and will be removed in Python 3.12. This feature +requires a debug build of Python. Patch by Victor Stinner. diff --git a/Misc/python.man b/Misc/python.man index 10cb807c38a02c..45a49271d4dfe3 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -550,6 +550,7 @@ if Python was configured with the \fB\--with-pydebug\fP build option. .IP PYTHONTHREADDEBUG If this environment variable is set, Python will print threading debug info. +The feature is deprecated in Python 3.10 and will be removed in Python 3.12. .IP PYTHONDUMPREFS If this environment variable is set, Python will dump objects and reference counts still alive after shutting down the interpreter. diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index d31a9c15fd1ec5..eeaf20b4617a20 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1057,6 +1057,8 @@ pyinit_main_reconfigure(PyThreadState *tstate) static PyStatus init_interp_main(PyThreadState *tstate) { + extern void _PyThread_debug_deprecation(void); + assert(!_PyErr_Occurred(tstate)); PyStatus status; @@ -1158,6 +1160,9 @@ init_interp_main(PyThreadState *tstate) #endif } + // Warn about PYTHONTHREADDEBUG deprecation + _PyThread_debug_deprecation(); + assert(!_PyErr_Occurred(tstate)); return _PyStatus_OK(); diff --git a/Python/thread.c b/Python/thread.c index a10f5728dc0ceb..dfe28b6bdb680d 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -75,6 +75,25 @@ PyThread_init_thread(void) PyThread__init_thread(); } +void +_PyThread_debug_deprecation(void) +{ +#ifdef Py_DEBUG + if (thread_debug) { + // Flush previous dprintf() logs + fflush(stdout); + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "The threading debug (PYTHONTHREADDEBUG environment " + "variable) is deprecated and will be removed " + "in Python 3.12", + 0)) + { + _PyErr_WriteUnraisableMsg("at Python startup", NULL); + } + } +#endif +} + #if defined(_POSIX_THREADS) # define PYTHREAD_NAME "pthread" # include "thread_pthread.h" From webhook-mailer at python.org Fri Aug 6 07:33:16 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 11:33:16 -0000 Subject: [Python-checkins] bpo-44584: Deprecate PYTHONTHREADDEBUG env var (GH-27065) Message-ID: https://github.com/python/cpython/commit/a11158ecef8cff795f7db8f4047cbd20cc9cf37e commit: a11158ecef8cff795f7db8f4047cbd20cc9cf37e branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T04:32:37-07:00 summary: bpo-44584: Deprecate PYTHONTHREADDEBUG env var (GH-27065) The threading debug (PYTHONTHREADDEBUG environment variable) is deprecated in Python 3.10 and will be removed in Python 3.12. This feature requires a debug build of Python. (cherry picked from commit 4d77691172aae81bdcbb0ea75839d0e896c43781) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst M Doc/using/cmdline.rst M Doc/whatsnew/3.10.rst M Lib/test/test_threading.py M Misc/python.man M Python/pylifecycle.c M Python/thread.c diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst index 25e05d413de877..f22548facd0f92 100644 --- a/Doc/using/cmdline.rst +++ b/Doc/using/cmdline.rst @@ -942,10 +942,12 @@ Debug-mode variables .. envvar:: PYTHONTHREADDEBUG - If set, Python will print threading debug info. + If set, Python will print threading debug info into stdout. Need a :ref:`debug build of Python `. + .. deprecated-removed:: 3.10 3.12 + .. envvar:: PYTHONDUMPREFS diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 5af1693e90cacf..d9a90fb63f18ed 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -1687,6 +1687,11 @@ Deprecated * NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` and :meth:`ssl.SSLContext.set_npn_protocols` are replaced by ALPN. +* The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is + deprecated in Python 3.10 and will be removed in Python 3.12. This feature + requires a :ref:`debug build of Python `. + (Contributed by Victor Stinner in :issue:`44584`.) + .. _whatsnew310-removed: Removed diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index 23fe2d3f4d32e2..c51de6f4b85537 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -32,6 +32,9 @@ # on platforms known to behave badly. platforms_to_skip = ('netbsd5', 'hp-ux11') +# Is Python built with Py_DEBUG macro defined? +Py_DEBUG = hasattr(sys, 'gettotalrefcount') + def restore_default_excepthook(testcase): testcase.addCleanup(setattr, threading, 'excepthook', threading.excepthook) @@ -915,6 +918,16 @@ def noop(): pass threading.Thread(target=noop).start() # Thread.join() is not called + @unittest.skipUnless(Py_DEBUG, 'need debug build (Py_DEBUG)') + def test_debug_deprecation(self): + # bpo-44584: The PYTHONTHREADDEBUG environment variable is deprecated + rc, out, err = assert_python_ok("-Wdefault", "-c", "pass", + PYTHONTHREADDEBUG="1") + msg = (b'DeprecationWarning: The threading debug ' + b'(PYTHONTHREADDEBUG environment variable) ' + b'is deprecated and will be removed in Python 3.12') + self.assertIn(msg, err) + class ThreadJoinOnShutdown(BaseTestCase): diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst b/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst new file mode 100644 index 00000000000000..4afb33b047d4be --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-07-08-12-18-56.bpo-44584.qKnSqV.rst @@ -0,0 +1,3 @@ +The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is +deprecated in Python 3.10 and will be removed in Python 3.12. This feature +requires a debug build of Python. Patch by Victor Stinner. diff --git a/Misc/python.man b/Misc/python.man index 10cb807c38a02c..45a49271d4dfe3 100644 --- a/Misc/python.man +++ b/Misc/python.man @@ -550,6 +550,7 @@ if Python was configured with the \fB\--with-pydebug\fP build option. .IP PYTHONTHREADDEBUG If this environment variable is set, Python will print threading debug info. +The feature is deprecated in Python 3.10 and will be removed in Python 3.12. .IP PYTHONDUMPREFS If this environment variable is set, Python will dump objects and reference counts still alive after shutting down the interpreter. diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index d31a9c15fd1ec5..eeaf20b4617a20 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1057,6 +1057,8 @@ pyinit_main_reconfigure(PyThreadState *tstate) static PyStatus init_interp_main(PyThreadState *tstate) { + extern void _PyThread_debug_deprecation(void); + assert(!_PyErr_Occurred(tstate)); PyStatus status; @@ -1158,6 +1160,9 @@ init_interp_main(PyThreadState *tstate) #endif } + // Warn about PYTHONTHREADDEBUG deprecation + _PyThread_debug_deprecation(); + assert(!_PyErr_Occurred(tstate)); return _PyStatus_OK(); diff --git a/Python/thread.c b/Python/thread.c index a10f5728dc0ceb..dfe28b6bdb680d 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -75,6 +75,25 @@ PyThread_init_thread(void) PyThread__init_thread(); } +void +_PyThread_debug_deprecation(void) +{ +#ifdef Py_DEBUG + if (thread_debug) { + // Flush previous dprintf() logs + fflush(stdout); + if (PyErr_WarnEx(PyExc_DeprecationWarning, + "The threading debug (PYTHONTHREADDEBUG environment " + "variable) is deprecated and will be removed " + "in Python 3.12", + 0)) + { + _PyErr_WriteUnraisableMsg("at Python startup", NULL); + } + } +#endif +} + #if defined(_POSIX_THREADS) # define PYTHREAD_NAME "pthread" # include "thread_pthread.h" From webhook-mailer at python.org Fri Aug 6 08:51:00 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 12:51:00 -0000 Subject: [Python-checkins] bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) Message-ID: https://github.com/python/cpython/commit/15d3c14df32a35ac69898a7852115722e30d7857 commit: 15d3c14df32a35ac69898a7852115722e30d7857 branch: main author: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> committer: ambv date: 2021-08-06T14:50:56+02:00 summary: bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) * When trying to allocate very large regions on macOS, malloc does not fail silently. It sends a noisy error out to STDERR * This provides a helper function to warn the user, and provides the warning for test_decimal, which consistently generates these warnings on macOS. Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst M Lib/test/support/__init__.py M Lib/test/test_decimal.py diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index e2847d5d3771ea..b380271d24f230 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -467,6 +467,24 @@ def requires_debug_ranges(reason='requires co_positions / debug_ranges'): TEST_DATA_DIR = os.path.join(TEST_HOME_DIR, "data") +def darwin_malloc_err_warning(test_name): + """Assure user that loud errors generated by macOS libc's malloc are + expected.""" + if sys.platform != 'darwin': + return + + import shutil + msg = ' NOTICE ' + detail = (f'{test_name} may generate "malloc can\'t allocate region"\n' + 'warnings on macOS systems. This behavior is known. Do not\n' + 'report a bug unless tests are also failing. See bpo-40928.') + + padding, _ = shutil.get_terminal_size() + print(msg.center(padding, '-')) + print(detail) + print('-' * padding) + + def findfile(filename, subdir=None): """Try to find a file on sys.path or in the test directory. If it is not found the argument passed to the function is returned (this does not diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 058829b03a3dee..28d56909b30034 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -36,7 +36,8 @@ requires_IEEE_754, requires_docstrings, requires_legacy_unicode_capi) from test.support import (TestFailed, - run_with_locale, cpython_only) + run_with_locale, cpython_only, + darwin_malloc_err_warning) from test.support.import_helper import import_fresh_module from test.support import warnings_helper import random @@ -44,6 +45,10 @@ import threading +if sys.platform == 'darwin': + darwin_malloc_err_warning('test_decimal') + + C = import_fresh_module('decimal', fresh=['_decimal']) P = import_fresh_module('decimal', blocked=['_decimal']) orig_sys_decimal = sys.modules['decimal'] diff --git a/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst new file mode 100644 index 00000000000000..c9a5e1b01e58aa --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst @@ -0,0 +1,2 @@ +Notify users running test_decimal regression tests on macOS of potential +harmless "malloc can't allocate region" messages spewed by test_decimal. From webhook-mailer at python.org Fri Aug 6 09:15:18 2021 From: webhook-mailer at python.org (vstinner) Date: Fri, 06 Aug 2021 13:15:18 -0000 Subject: [Python-checkins] bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Message-ID: https://github.com/python/cpython/commit/c24896c0e3b32c8a9f614ef51366007b67d5c665 commit: c24896c0e3b32c8a9f614ef51366007b67d5c665 branch: main author: Victor Stinner committer: vstinner date: 2021-08-06T15:15:10+02:00 summary: bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Fix the os.set_inheritable() function on FreeBSD 14 for file descriptor opened with the O_PATH flag: ignore the EBADF error on ioctl(), fallback on the fcntl() implementation. files: A Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst M Python/fileutils.c diff --git a/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst new file mode 100644 index 00000000000000..b1f225485ddef5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst @@ -0,0 +1,4 @@ +Fix the :func:`os.set_inheritable` function on FreeBSD 14 for file descriptor +opened with the :data:`~os.O_PATH` flag: ignore the :data:`~errno.EBADF` +error on ``ioctl()``, fallback on the ``fcntl()`` implementation. Patch by +Victor Stinner. diff --git a/Python/fileutils.c b/Python/fileutils.c index a8fab00629da41..e8a7eda505c7ec 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1374,10 +1374,11 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) return 0; } -#ifdef __linux__ +#ifdef O_PATH if (errno == EBADF) { - // On Linux, ioctl(FIOCLEX) will fail with EBADF for O_PATH file descriptors - // Fall through to the fcntl() path + // bpo-44849: On Linux and FreeBSD, ioctl(FIOCLEX) fails with EBADF + // on O_PATH file descriptors. Fall through to the fcntl() + // implementation. } else #endif From webhook-mailer at python.org Fri Aug 6 09:35:46 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 13:35:46 -0000 Subject: [Python-checkins] [3.9] bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) (GH-27629) Message-ID: https://github.com/python/cpython/commit/693a661478036dc2c5b48e138dd09320a972c25a commit: 693a661478036dc2c5b48e138dd09320a972c25a branch: 3.9 author: ?ukasz Langa committer: ambv date: 2021-08-06T15:35:11+02:00 summary: [3.9] bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) (GH-27629) * When trying to allocate very large regions on macOS, malloc does not fail silently. It sends a noisy error out to STDERR * This provides a helper function to warn the user, and provides the warning for test_decimal, which consistently generates these warnings on macOS. Co-authored-by: ?ukasz Langa . (cherry picked from commit 15d3c14df32a35ac69898a7852115722e30d7857) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: A Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst M Lib/test/support/__init__.py M Lib/test/test_decimal.py diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index bc263b3033e1fc..ff7db991589c2b 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -986,6 +986,25 @@ def temp_umask(umask): # TEST_DATA_DIR is used as a target download location for remote resources TEST_DATA_DIR = os.path.join(TEST_HOME_DIR, "data") + +def darwin_malloc_err_warning(test_name): + """Assure user that loud errors generated by macOS libc's malloc are + expected.""" + if sys.platform != 'darwin': + return + + import shutil + msg = ' NOTICE ' + detail = (f'{test_name} may generate "malloc can\'t allocate region"\n' + 'warnings on macOS systems. This behavior is known. Do not\n' + 'report a bug unless tests are also failing. See bpo-40928.') + + padding, _ = shutil.get_terminal_size() + print(msg.center(padding, '-')) + print(detail) + print('-' * padding) + + def findfile(filename, subdir=None): """Try to find a file on sys.path or in the test directory. If it is not found the argument passed to the function is returned (this does not diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index fd62f37de18736..d37c53da2cf4f5 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -35,12 +35,17 @@ from test.support import (run_unittest, run_doctest, is_resource_enabled, requires_IEEE_754, requires_docstrings) from test.support import (import_fresh_module, TestFailed, - run_with_locale, cpython_only) + run_with_locale, cpython_only, + darwin_malloc_err_warning) import random import inspect import threading +if sys.platform == 'darwin': + darwin_malloc_err_warning('test_decimal') + + C = import_fresh_module('decimal', fresh=['_decimal']) P = import_fresh_module('decimal', blocked=['_decimal']) orig_sys_decimal = sys.modules['decimal'] diff --git a/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst new file mode 100644 index 00000000000000..c9a5e1b01e58aa --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst @@ -0,0 +1,2 @@ +Notify users running test_decimal regression tests on macOS of potential +harmless "malloc can't allocate region" messages spewed by test_decimal. From webhook-mailer at python.org Fri Aug 6 09:36:40 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 13:36:40 -0000 Subject: [Python-checkins] bpo-44524: Fix an issue wherein `_GenericAlias._name` was not properly set for specialforms (GH-27614) Message-ID: https://github.com/python/cpython/commit/8bdf12e99a3dc7ada5f85bba79c2a9eb9931f5b0 commit: 8bdf12e99a3dc7ada5f85bba79c2a9eb9931f5b0 branch: main author: Bas van Beek <43369155+BvB93 at users.noreply.github.com> committer: ambv date: 2021-08-06T15:36:35+02:00 summary: bpo-44524: Fix an issue wherein `_GenericAlias._name` was not properly set for specialforms (GH-27614) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Library/2021-08-05-18-20-17.bpo-44524.9T1tfe.rst M Lib/test/test_typing.py M Lib/typing.py diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 439d963af5bd4..06141f8bbcb61 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -4791,66 +4791,185 @@ def test_no_isinstance(self): issubclass(int, TypeGuard) +SpecialAttrsP = typing.ParamSpec('SpecialAttrsP') +SpecialAttrsT = typing.TypeVar('SpecialAttrsT', int, float, complex) + + class SpecialAttrsTests(BaseTestCase): + def test_special_attrs(self): - cls_to_check = ( + cls_to_check = { # ABC classes - typing.AbstractSet, - typing.AsyncContextManager, - typing.AsyncGenerator, - typing.AsyncIterable, - typing.AsyncIterator, - typing.Awaitable, - typing.ByteString, - typing.Callable, - typing.ChainMap, - typing.Collection, - typing.Container, - typing.ContextManager, - typing.Coroutine, - typing.Counter, - typing.DefaultDict, - typing.Deque, - typing.Dict, - typing.FrozenSet, - typing.Generator, - typing.Hashable, - typing.ItemsView, - typing.Iterable, - typing.Iterator, - typing.KeysView, - typing.List, - typing.Mapping, - typing.MappingView, - typing.MutableMapping, - typing.MutableSequence, - typing.MutableSet, - typing.OrderedDict, - typing.Reversible, - typing.Sequence, - typing.Set, - typing.Sized, - typing.Tuple, - typing.Type, - typing.ValuesView, + typing.AbstractSet: 'AbstractSet', + typing.AsyncContextManager: 'AsyncContextManager', + typing.AsyncGenerator: 'AsyncGenerator', + typing.AsyncIterable: 'AsyncIterable', + typing.AsyncIterator: 'AsyncIterator', + typing.Awaitable: 'Awaitable', + typing.ByteString: 'ByteString', + typing.Callable: 'Callable', + typing.ChainMap: 'ChainMap', + typing.Collection: 'Collection', + typing.Container: 'Container', + typing.ContextManager: 'ContextManager', + typing.Coroutine: 'Coroutine', + typing.Counter: 'Counter', + typing.DefaultDict: 'DefaultDict', + typing.Deque: 'Deque', + typing.Dict: 'Dict', + typing.FrozenSet: 'FrozenSet', + typing.Generator: 'Generator', + typing.Hashable: 'Hashable', + typing.ItemsView: 'ItemsView', + typing.Iterable: 'Iterable', + typing.Iterator: 'Iterator', + typing.KeysView: 'KeysView', + typing.List: 'List', + typing.Mapping: 'Mapping', + typing.MappingView: 'MappingView', + typing.MutableMapping: 'MutableMapping', + typing.MutableSequence: 'MutableSequence', + typing.MutableSet: 'MutableSet', + typing.OrderedDict: 'OrderedDict', + typing.Reversible: 'Reversible', + typing.Sequence: 'Sequence', + typing.Set: 'Set', + typing.Sized: 'Sized', + typing.Tuple: 'Tuple', + typing.Type: 'Type', + typing.ValuesView: 'ValuesView', + # Subscribed ABC classes + typing.AbstractSet[Any]: 'AbstractSet', + typing.AsyncContextManager[Any]: 'AsyncContextManager', + typing.AsyncGenerator[Any, Any]: 'AsyncGenerator', + typing.AsyncIterable[Any]: 'AsyncIterable', + typing.AsyncIterator[Any]: 'AsyncIterator', + typing.Awaitable[Any]: 'Awaitable', + typing.Callable[[], Any]: 'Callable', + typing.Callable[..., Any]: 'Callable', + typing.ChainMap[Any, Any]: 'ChainMap', + typing.Collection[Any]: 'Collection', + typing.Container[Any]: 'Container', + typing.ContextManager[Any]: 'ContextManager', + typing.Coroutine[Any, Any, Any]: 'Coroutine', + typing.Counter[Any]: 'Counter', + typing.DefaultDict[Any, Any]: 'DefaultDict', + typing.Deque[Any]: 'Deque', + typing.Dict[Any, Any]: 'Dict', + typing.FrozenSet[Any]: 'FrozenSet', + typing.Generator[Any, Any, Any]: 'Generator', + typing.ItemsView[Any, Any]: 'ItemsView', + typing.Iterable[Any]: 'Iterable', + typing.Iterator[Any]: 'Iterator', + typing.KeysView[Any]: 'KeysView', + typing.List[Any]: 'List', + typing.Mapping[Any, Any]: 'Mapping', + typing.MappingView[Any]: 'MappingView', + typing.MutableMapping[Any, Any]: 'MutableMapping', + typing.MutableSequence[Any]: 'MutableSequence', + typing.MutableSet[Any]: 'MutableSet', + typing.OrderedDict[Any, Any]: 'OrderedDict', + typing.Reversible[Any]: 'Reversible', + typing.Sequence[Any]: 'Sequence', + typing.Set[Any]: 'Set', + typing.Tuple[Any]: 'Tuple', + typing.Tuple[Any, ...]: 'Tuple', + typing.Type[Any]: 'Type', + typing.ValuesView[Any]: 'ValuesView', # Special Forms - typing.Any, - typing.NoReturn, - typing.ClassVar, - typing.Final, - typing.Union, - typing.Optional, - typing.Literal, - typing.TypeAlias, - typing.Concatenate, - typing.TypeGuard, - ) + typing.Annotated: 'Annotated', + typing.Any: 'Any', + typing.ClassVar: 'ClassVar', + typing.Concatenate: 'Concatenate', + typing.Final: 'Final', + typing.ForwardRef: 'ForwardRef', + typing.Literal: 'Literal', + typing.NewType: 'NewType', + typing.NoReturn: 'NoReturn', + typing.Optional: 'Optional', + typing.TypeAlias: 'TypeAlias', + typing.TypeGuard: 'TypeGuard', + typing.TypeVar: 'TypeVar', + typing.Union: 'Union', + # Subscribed special forms + typing.Annotated[Any, "Annotation"]: 'Annotated', + typing.ClassVar[Any]: 'ClassVar', + typing.Concatenate[Any, SpecialAttrsP]: 'Concatenate', + typing.Final[Any]: 'Final', + typing.Literal[Any]: 'Literal', + typing.Optional[Any]: 'Optional', + typing.TypeGuard[Any]: 'TypeGuard', + typing.Union[Any]: 'Any', + typing.Union[int, float]: 'Union', + # Incompatible special forms (tested in test_special_attrs2) + # - typing.ForwardRef('set[Any]') + # - typing.NewType('TypeName', Any) + # - typing.ParamSpec('SpecialAttrsP') + # - typing.TypeVar('T') + } - for cls in cls_to_check: + for cls, name in cls_to_check.items(): with self.subTest(cls=cls): - self.assertEqual(cls.__name__, cls._name) - self.assertEqual(cls.__qualname__, cls._name) - self.assertEqual(cls.__module__, 'typing') + self.assertEqual(cls.__name__, name, str(cls)) + self.assertEqual(cls.__qualname__, name, str(cls)) + self.assertEqual(cls.__module__, 'typing', str(cls)) + self.assertEqual(getattr(cls, '_name', name), name, str(cls)) + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + s = pickle.dumps(cls, proto) + loaded = pickle.loads(s) + self.assertIs(cls, loaded) + + TypeName = typing.NewType('SpecialAttrsTests.TypeName', Any) + + def test_special_attrs2(self): + # Forward refs provide a different introspection API. __name__ and + # __qualname__ make little sense for forward refs as they can store + # complex typing expressions. + fr = typing.ForwardRef('set[Any]') + self.assertFalse(hasattr(fr, '__name__')) + self.assertFalse(hasattr(fr, '__qualname__')) + self.assertEqual(fr.__module__, 'typing') + # Forward refs are currently unpicklable. + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + with self.assertRaises(TypeError) as exc: + pickle.dumps(fr, proto) + + self.assertEqual(SpecialAttrsTests.TypeName.__name__, 'TypeName') + self.assertEqual( + SpecialAttrsTests.TypeName.__qualname__, + 'SpecialAttrsTests.TypeName', + ) + self.assertEqual( + SpecialAttrsTests.TypeName.__module__, + 'test.test_typing', + ) + # NewTypes are picklable assuming correct qualname information. + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + s = pickle.dumps(SpecialAttrsTests.TypeName, proto) + loaded = pickle.loads(s) + self.assertIs(SpecialAttrsTests.TypeName, loaded) + + # Type variables don't support non-global instantiation per PEP 484 + # restriction that "The argument to TypeVar() must be a string equal + # to the variable name to which it is assigned". Thus, providing + # __qualname__ is unnecessary. + self.assertEqual(SpecialAttrsT.__name__, 'SpecialAttrsT') + self.assertFalse(hasattr(SpecialAttrsT, '__qualname__')) + self.assertEqual(SpecialAttrsT.__module__, 'test.test_typing') + # Module-level type variables are picklable. + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + s = pickle.dumps(SpecialAttrsT, proto) + loaded = pickle.loads(s) + self.assertIs(SpecialAttrsT, loaded) + + self.assertEqual(SpecialAttrsP.__name__, 'SpecialAttrsP') + self.assertFalse(hasattr(SpecialAttrsP, '__qualname__')) + self.assertEqual(SpecialAttrsP.__module__, 'test.test_typing') + # Module-level ParamSpecs are picklable. + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + s = pickle.dumps(SpecialAttrsP, proto) + loaded = pickle.loads(s) + self.assertIs(SpecialAttrsP, loaded) class AllTests(BaseTestCase): """Tests for __all__.""" diff --git a/Lib/typing.py b/Lib/typing.py index 9c595ae541aa1..51468aeaf5b75 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -461,7 +461,7 @@ class Starship: be used with isinstance() or issubclass(). """ item = _type_check(parameters, f'{self} accepts only single type.') - return _GenericAlias(self, (item,)) + return _GenericAlias(self, (item,), name="ClassVar") @_SpecialForm def Final(self, parameters): @@ -482,7 +482,7 @@ class FastConnector(Connection): There is no runtime checking of these properties. """ item = _type_check(parameters, f'{self} accepts only single type.') - return _GenericAlias(self, (item,)) + return _GenericAlias(self, (item,), name="Final") @_SpecialForm def Union(self, parameters): @@ -520,7 +520,12 @@ def Union(self, parameters): parameters = _remove_dups_flatten(parameters) if len(parameters) == 1: return parameters[0] - return _UnionGenericAlias(self, parameters) + + if len(parameters) == 2 and type(None) in parameters: + name = "Optional" + else: + name = "Union" + return _UnionGenericAlias(self, parameters, name=name) @_SpecialForm def Optional(self, parameters): @@ -565,7 +570,7 @@ def open_helper(file: str, mode: MODE) -> str: except TypeError: # unhashable parameters pass - return _LiteralGenericAlias(self, parameters) + return _LiteralGenericAlias(self, parameters, name="Literal") @_SpecialForm @@ -604,7 +609,7 @@ def Concatenate(self, parameters): "ParamSpec variable.") msg = "Concatenate[arg, ...]: each arg must be a type." parameters = tuple(_type_check(p, msg) for p in parameters) - return _ConcatenateGenericAlias(self, parameters) + return _ConcatenateGenericAlias(self, parameters, name="Concatenate") @_SpecialForm @@ -652,7 +657,7 @@ def is_str(val: Union[str, float]): PEP 647 (User-Defined Type Guards). """ item = _type_check(parameters, f'{self} accepts only single type.') - return _GenericAlias(self, (item,)) + return _GenericAlias(self, (item,), name="TypeGuard") class ForwardRef(_Final, _root=True): @@ -1237,6 +1242,10 @@ def __subclasscheck__(self, cls): if issubclass(cls, arg): return True + def __reduce__(self): + func, (origin, args) = super().__reduce__() + return func, (Union, args) + def _value_and_type_iter(parameters): return ((p, type(p)) for p in parameters) @@ -1566,7 +1575,7 @@ def __init__(self, origin, metadata): if isinstance(origin, _AnnotatedAlias): metadata = origin.__metadata__ + metadata origin = origin.__origin__ - super().__init__(origin, origin) + super().__init__(origin, origin, name="Annotated") self.__metadata__ = metadata def copy_with(self, params): diff --git a/Misc/NEWS.d/next/Library/2021-08-05-18-20-17.bpo-44524.9T1tfe.rst b/Misc/NEWS.d/next/Library/2021-08-05-18-20-17.bpo-44524.9T1tfe.rst new file mode 100644 index 0000000000000..0c9e82050883d --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-05-18-20-17.bpo-44524.9T1tfe.rst @@ -0,0 +1,2 @@ +Fixed an issue wherein the ``__name__`` and ``__qualname__`` attributes of +subscribed specialforms could be ``None``. From webhook-mailer at python.org Fri Aug 6 09:40:49 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 13:40:49 -0000 Subject: [Python-checkins] bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Message-ID: https://github.com/python/cpython/commit/2ae2235c7a7627725df40c7875245cd17d90f39f commit: 2ae2235c7a7627725df40c7875245cd17d90f39f branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T06:40:44-07:00 summary: bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Fix the os.set_inheritable() function on FreeBSD 14 for file descriptor opened with the O_PATH flag: ignore the EBADF error on ioctl(), fallback on the fcntl() implementation. (cherry picked from commit c24896c0e3b32c8a9f614ef51366007b67d5c665) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst M Python/fileutils.c diff --git a/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst new file mode 100644 index 00000000000000..b1f225485ddef5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst @@ -0,0 +1,4 @@ +Fix the :func:`os.set_inheritable` function on FreeBSD 14 for file descriptor +opened with the :data:`~os.O_PATH` flag: ignore the :data:`~errno.EBADF` +error on ``ioctl()``, fallback on the ``fcntl()`` implementation. Patch by +Victor Stinner. diff --git a/Python/fileutils.c b/Python/fileutils.c index a8fab00629da41..e8a7eda505c7ec 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1374,10 +1374,11 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) return 0; } -#ifdef __linux__ +#ifdef O_PATH if (errno == EBADF) { - // On Linux, ioctl(FIOCLEX) will fail with EBADF for O_PATH file descriptors - // Fall through to the fcntl() path + // bpo-44849: On Linux and FreeBSD, ioctl(FIOCLEX) fails with EBADF + // on O_PATH file descriptors. Fall through to the fcntl() + // implementation. } else #endif From webhook-mailer at python.org Fri Aug 6 09:42:59 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 13:42:59 -0000 Subject: [Python-checkins] bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Message-ID: https://github.com/python/cpython/commit/791c28a56f043618111a19377f8527326037230e commit: 791c28a56f043618111a19377f8527326037230e branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T06:42:51-07:00 summary: bpo-44849: Fix os.set_inheritable() on FreeBSD 14 with O_PATH (GH-27623) Fix the os.set_inheritable() function on FreeBSD 14 for file descriptor opened with the O_PATH flag: ignore the EBADF error on ioctl(), fallback on the fcntl() implementation. (cherry picked from commit c24896c0e3b32c8a9f614ef51366007b67d5c665) Co-authored-by: Victor Stinner files: A Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst M Python/fileutils.c diff --git a/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst new file mode 100644 index 00000000000000..b1f225485ddef5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-13-00-28.bpo-44849.O78F_f.rst @@ -0,0 +1,4 @@ +Fix the :func:`os.set_inheritable` function on FreeBSD 14 for file descriptor +opened with the :data:`~os.O_PATH` flag: ignore the :data:`~errno.EBADF` +error on ``ioctl()``, fallback on the ``fcntl()`` implementation. Patch by +Victor Stinner. diff --git a/Python/fileutils.c b/Python/fileutils.c index 45ea2043912597..11c659d5a46fae 100644 --- a/Python/fileutils.c +++ b/Python/fileutils.c @@ -1314,10 +1314,11 @@ set_inheritable(int fd, int inheritable, int raise, int *atomic_flag_works) return 0; } -#ifdef __linux__ +#ifdef O_PATH if (errno == EBADF) { - // On Linux, ioctl(FIOCLEX) will fail with EBADF for O_PATH file descriptors - // Fall through to the fcntl() path + // bpo-44849: On Linux and FreeBSD, ioctl(FIOCLEX) fails with EBADF + // on O_PATH file descriptors. Fall through to the fcntl() + // implementation. } else #endif From webhook-mailer at python.org Fri Aug 6 11:38:32 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 15:38:32 -0000 Subject: [Python-checkins] bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) (GH-27619) Message-ID: https://github.com/python/cpython/commit/8c17db6cd4e29f922a195acdb5aff3ef9c2340e5 commit: 8c17db6cd4e29f922a195acdb5aff3ef9c2340e5 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-06T17:38:21+02:00 summary: bpo-44679: [doc] fix typo in unittest.mock.rst (GH-27618) (GH-27619) (cherry picked from commit 938e84b4fa410f1a86f5e0708ebc3af6bb8efb0e) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: M Doc/library/unittest.mock.rst diff --git a/Doc/library/unittest.mock.rst b/Doc/library/unittest.mock.rst index b3e71705801088..3c74b61779d478 100644 --- a/Doc/library/unittest.mock.rst +++ b/Doc/library/unittest.mock.rst @@ -2207,7 +2207,7 @@ In this example we monkey patch ``method`` to return ``sentinel.some_object``: >>> real.method.return_value = sentinel.some_object >>> result = real.method() >>> assert result is sentinel.some_object - >>> sentinel.some_object + >>> result sentinel.some_object From webhook-mailer at python.org Fri Aug 6 13:09:11 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 17:09:11 -0000 Subject: [Python-checkins] bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) Message-ID: https://github.com/python/cpython/commit/a5d99632766b458b42f327e8bd0f82b0345c9a63 commit: a5d99632766b458b42f327e8bd0f82b0345c9a63 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T10:09:06-07:00 summary: bpo-40928: notify users running test_decimal on macOS of malloc warnings (GH-26783) * When trying to allocate very large regions on macOS, malloc does not fail silently. It sends a noisy error out to STDERR * This provides a helper function to warn the user, and provides the warning for test_decimal, which consistently generates these warnings on macOS. Co-authored-by: ?ukasz Langa (cherry picked from commit 15d3c14df32a35ac69898a7852115722e30d7857) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: A Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst M Lib/test/support/__init__.py M Lib/test/test_decimal.py diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index 4a2ed1ea5ae0c0..cb3acecbbd1197 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -459,6 +459,24 @@ def requires_lzma(reason='requires lzma'): TEST_DATA_DIR = os.path.join(TEST_HOME_DIR, "data") +def darwin_malloc_err_warning(test_name): + """Assure user that loud errors generated by macOS libc's malloc are + expected.""" + if sys.platform != 'darwin': + return + + import shutil + msg = ' NOTICE ' + detail = (f'{test_name} may generate "malloc can\'t allocate region"\n' + 'warnings on macOS systems. This behavior is known. Do not\n' + 'report a bug unless tests are also failing. See bpo-40928.') + + padding, _ = shutil.get_terminal_size() + print(msg.center(padding, '-')) + print(detail) + print('-' * padding) + + def findfile(filename, subdir=None): """Try to find a file on sys.path or in the test directory. If it is not found the argument passed to the function is returned (this does not diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 058829b03a3dee..28d56909b30034 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -36,7 +36,8 @@ requires_IEEE_754, requires_docstrings, requires_legacy_unicode_capi) from test.support import (TestFailed, - run_with_locale, cpython_only) + run_with_locale, cpython_only, + darwin_malloc_err_warning) from test.support.import_helper import import_fresh_module from test.support import warnings_helper import random @@ -44,6 +45,10 @@ import threading +if sys.platform == 'darwin': + darwin_malloc_err_warning('test_decimal') + + C = import_fresh_module('decimal', fresh=['_decimal']) P = import_fresh_module('decimal', blocked=['_decimal']) orig_sys_decimal = sys.modules['decimal'] diff --git a/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst new file mode 100644 index 00000000000000..c9a5e1b01e58aa --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-06-00-07-15.bpo-40928.aIwb6G.rst @@ -0,0 +1,2 @@ +Notify users running test_decimal regression tests on macOS of potential +harmless "malloc can't allocate region" messages spewed by test_decimal. From webhook-mailer at python.org Fri Aug 6 13:57:47 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Fri, 06 Aug 2021 17:57:47 -0000 Subject: [Python-checkins] [3.9] bpo-43853: Handle sqlite3_value_text() errors (GH-25422). (GH-27627) Message-ID: https://github.com/python/cpython/commit/8c07fef867707694c9f2fcee4d7a9563ad78ed14 commit: 8c07fef867707694c9f2fcee4d7a9563ad78ed14 branch: 3.9 author: Erlend Egeberg Aasland committer: serhiy-storchaka date: 2021-08-06T20:57:39+03:00 summary: [3.9] bpo-43853: Handle sqlite3_value_text() errors (GH-25422). (GH-27627) (cherry picked from commit 006fd869e4798b68e266f5de89c83ddb531a756b) files: A Misc/NEWS.d/next/Library/2021-04-15-12-02-17.bpo-43853.XXCVAp.rst M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/connection.c diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index c11c82e1275778..a1c29d482366e4 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -236,9 +236,11 @@ def CheckFuncException(self): def CheckParamString(self): cur = self.con.cursor() - cur.execute("select isstring(?)", ("foo",)) - val = cur.fetchone()[0] - self.assertEqual(val, 1) + for text in ["foo", str()]: + with self.subTest(text=text): + cur.execute("select isstring(?)", (text,)) + val = cur.fetchone()[0] + self.assertEqual(val, 1) def CheckParamInt(self): cur = self.con.cursor() @@ -387,9 +389,9 @@ def CheckAggrExceptionInFinalize(self): def CheckAggrCheckParamStr(self): cur = self.con.cursor() - cur.execute("select checkType('str', ?)", ("foo",)) + cur.execute("select checkTypes('str', ?, ?)", ("foo", str())) val = cur.fetchone()[0] - self.assertEqual(val, 1) + self.assertEqual(val, 2) def CheckAggrCheckParamInt(self): cur = self.con.cursor() diff --git a/Misc/NEWS.d/next/Library/2021-04-15-12-02-17.bpo-43853.XXCVAp.rst b/Misc/NEWS.d/next/Library/2021-04-15-12-02-17.bpo-43853.XXCVAp.rst new file mode 100644 index 00000000000000..c5c3a0ae83c7f4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-04-15-12-02-17.bpo-43853.XXCVAp.rst @@ -0,0 +1,3 @@ +Improve :mod:`sqlite3` error handling: ``sqlite3_value_text()`` errors that +set ``SQLITE_NOMEM`` now raise :exc:`MemoryError`. Patch by Erlend E. +Aasland. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 1cf31489d07f9f..986a82918b5fe8 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -546,7 +546,6 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_ int i; sqlite3_value* cur_value; PyObject* cur_py_value; - const char* val_str; Py_ssize_t buflen; args = PyTuple_New(argc); @@ -563,16 +562,19 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_ case SQLITE_FLOAT: cur_py_value = PyFloat_FromDouble(sqlite3_value_double(cur_value)); break; - case SQLITE_TEXT: - val_str = (const char*)sqlite3_value_text(cur_value); - cur_py_value = PyUnicode_FromString(val_str); - /* TODO: have a way to show errors here */ - if (!cur_py_value) { - PyErr_Clear(); - Py_INCREF(Py_None); - cur_py_value = Py_None; + case SQLITE_TEXT: { + sqlite3 *db = sqlite3_context_db_handle(context); + const char *text = (const char *)sqlite3_value_text(cur_value); + + if (text == NULL && sqlite3_errcode(db) == SQLITE_NOMEM) { + PyErr_NoMemory(); + goto error; } + + Py_ssize_t size = sqlite3_value_bytes(cur_value); + cur_py_value = PyUnicode_FromStringAndSize(text, size); break; + } case SQLITE_BLOB: buflen = sqlite3_value_bytes(cur_value); cur_py_value = PyBytes_FromStringAndSize( @@ -585,8 +587,7 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_ } if (!cur_py_value) { - Py_DECREF(args); - return NULL; + goto error; } PyTuple_SetItem(args, i, cur_py_value); @@ -594,6 +595,10 @@ PyObject* _pysqlite_build_py_params(sqlite3_context *context, int argc, sqlite3_ } return args; + +error: + Py_DECREF(args); + return NULL; } void _pysqlite_func_callback(sqlite3_context* context, int argc, sqlite3_value** argv) From webhook-mailer at python.org Fri Aug 6 14:00:05 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 18:00:05 -0000 Subject: [Python-checkins] bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588) Message-ID: https://github.com/python/cpython/commit/2b1e713f877102bbca299f0f5d7db969d78db49f commit: 2b1e713f877102bbca299f0f5d7db969d78db49f branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T10:59:51-07:00 summary: bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588) (cherry picked from commit 8f010dc920e1f6dc6a357e7cc1460a7a567c05c6) Co-authored-by: Erlend Egeberg Aasland files: A Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/connection.c diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index 429089072496ed..75e803582e06ba 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -28,6 +28,8 @@ def func_returntext(): return "foo" +def func_returntextwithnull(): + return "1\x002" def func_returnunicode(): return "bar" def func_returnint(): @@ -138,11 +140,21 @@ def step(self, val): def finalize(self): return self.val +class AggrText: + def __init__(self): + self.txt = "" + def step(self, txt): + self.txt = self.txt + txt + def finalize(self): + return self.txt + + class FunctionTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") self.con.create_function("returntext", 0, func_returntext) + self.con.create_function("returntextwithnull", 0, func_returntextwithnull) self.con.create_function("returnunicode", 0, func_returnunicode) self.con.create_function("returnint", 0, func_returnint) self.con.create_function("returnfloat", 0, func_returnfloat) @@ -186,6 +198,12 @@ def test_func_return_text(self): self.assertEqual(type(val), str) self.assertEqual(val, "foo") + def test_func_return_text_with_null_char(self): + cur = self.con.cursor() + res = cur.execute("select returntextwithnull()").fetchone()[0] + self.assertEqual(type(res), str) + self.assertEqual(res, "1\x002") + def test_func_return_unicode(self): cur = self.con.cursor() cur.execute("select returnunicode()") @@ -364,6 +382,7 @@ def setUp(self): self.con.create_aggregate("checkType", 2, AggrCheckType) self.con.create_aggregate("checkTypes", -1, AggrCheckTypes) self.con.create_aggregate("mysum", 1, AggrSum) + self.con.create_aggregate("aggtxt", 1, AggrText) def tearDown(self): #self.cur.close() @@ -457,6 +476,15 @@ def test_aggr_no_match(self): val = cur.fetchone()[0] self.assertIsNone(val) + def test_aggr_text(self): + cur = self.con.cursor() + for txt in ["foo", "1\x002"]: + with self.subTest(txt=txt): + cur.execute("select aggtxt(?) from test", (txt,)) + val = cur.fetchone()[0] + self.assertEqual(val, txt) + + class AuthorizerTests(unittest.TestCase): @staticmethod def authorizer_cb(action, arg1, arg2, dbname, source): diff --git a/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst new file mode 100644 index 00000000000000..d078142886d2e0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst @@ -0,0 +1,3 @@ +:mod:`sqlite3` user-defined functions and aggregators returning +:class:`strings ` with embedded NUL characters are no longer +truncated. Patch by Erlend E. Aasland. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 9c05a154559d92..f060ef1ef42480 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -549,10 +549,17 @@ _pysqlite_set_result(sqlite3_context* context, PyObject* py_val) } else if (PyFloat_Check(py_val)) { sqlite3_result_double(context, PyFloat_AsDouble(py_val)); } else if (PyUnicode_Check(py_val)) { - const char *str = PyUnicode_AsUTF8(py_val); - if (str == NULL) + Py_ssize_t sz; + const char *str = PyUnicode_AsUTF8AndSize(py_val, &sz); + if (str == NULL) { return -1; - sqlite3_result_text(context, str, -1, SQLITE_TRANSIENT); + } + if (sz > INT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "string is longer than INT_MAX bytes"); + return -1; + } + sqlite3_result_text(context, str, (int)sz, SQLITE_TRANSIENT); } else if (PyObject_CheckBuffer(py_val)) { Py_buffer view; if (PyObject_GetBuffer(py_val, &view, PyBUF_SIMPLE) != 0) { From webhook-mailer at python.org Fri Aug 6 14:14:08 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 18:14:08 -0000 Subject: [Python-checkins] bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) Message-ID: https://github.com/python/cpython/commit/55fa87b1ef46bbb9db7612b2dc2dd7fb039d9bc3 commit: 55fa87b1ef46bbb9db7612b2dc2dd7fb039d9bc3 branch: main author: ?ukasz Langa committer: ambv date: 2021-08-06T20:13:59+02:00 summary: bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) It turned out to be disruptive for downstream distributors. files: A Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst M Doc/Makefile M Doc/README.rst diff --git a/Doc/Makefile b/Doc/Makefile index ac02bbca971b5b..24528a1c4f3269 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -45,7 +45,7 @@ help: @echo " check to run a check for frequent markup errors" @echo " serve to serve the documentation on the localhost (8000)" -build: venv +build: -mkdir -p build # Look first for a Misc/NEWS file (building from a source release tarball # or old repo) and use that, otherwise look for a Misc/NEWS.d directory @@ -145,7 +145,8 @@ clean-venv: venv: @if [ -d $(VENVDIR) ] ; then \ - echo "venv already exists"; \ + echo "venv already exists."; \ + echo "To recreate it, remove it first with \`make clean-venv'."; \ else \ $(PYTHON) -m venv $(VENVDIR); \ $(VENVDIR)/bin/python3 -m pip install -U pip setuptools; \ diff --git a/Doc/README.rst b/Doc/README.rst index 20c0432ba1d350..7e8a27b4066d87 100644 --- a/Doc/README.rst +++ b/Doc/README.rst @@ -29,13 +29,20 @@ Using make ---------- To get started on UNIX, you can create a virtual environment and build -documentation with the command:: +documentation with the commands:: + make venv make html The virtual environment in the ``venv`` directory will contain all the tools -necessary to build the documentation. You can also configure where the virtual -environment directory will be with the ``VENVDIR`` variable. +necessary to build the documentation downloaded and installed from PyPI. +If you'd like to create the virtual environment in a different location, +you can specify it using the ``VENVDIR`` variable. + +You can also skip creating the virtual environment altogether, in which case +the Makefile will look for instances of ``sphinxbuild`` and ``blurb`` +installed on your process ``PATH`` (configurable with the ``SPHINXBUILD`` and +``BLURB`` variables). On Windows, we try to emulate the Makefile as closely as possible with a ``make.bat`` file. If you need to specify the Python interpreter to use, diff --git a/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst new file mode 100644 index 00000000000000..ca2e1b9b53b752 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst @@ -0,0 +1,3 @@ +Reverted automated virtual environment creation on ``make html`` when +building documentation. It turned out to be disruptive for downstream +distributors. From webhook-mailer at python.org Fri Aug 6 14:22:56 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 18:22:56 -0000 Subject: [Python-checkins] Upgrade bundled pip and setuptools (#27625) Message-ID: https://github.com/python/cpython/commit/738ac00a08cb6a9d104ec85ccb1a44c2399d6baa commit: 738ac00a08cb6a9d104ec85ccb1a44c2399d6baa branch: main author: Tzu-ping Chung committer: ambv date: 2021-08-06T20:22:48+02:00 summary: Upgrade bundled pip and setuptools (#27625) pip is now 21.2.3 setuptools is now 57.4.0 files: A Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl A Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl A Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst D Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl D Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl M Lib/ensurepip/__init__.py diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 28e12537e9fff4..651f876e24bc8b 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -10,8 +10,8 @@ __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('setuptools', 'pip') -_SETUPTOOLS_VERSION = "56.0.0" -_PIP_VERSION = "21.1.3" +_SETUPTOOLS_VERSION = "57.4.0" +_PIP_VERSION = "21.2.3" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), ("pip", _PIP_VERSION, "py3"), diff --git a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl deleted file mode 100644 index d96a40a9291fb2..00000000000000 Binary files a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl and /dev/null differ diff --git a/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl new file mode 100644 index 00000000000000..d417df63d9ec19 Binary files /dev/null and b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl differ diff --git a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl similarity index 65% rename from Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl rename to Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl index 264ef10e826679..af8f8ba21003b1 100644 Binary files a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl and b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl differ diff --git a/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst new file mode 100644 index 00000000000000..99f08065b9d2f0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst @@ -0,0 +1 @@ +Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0 From webhook-mailer at python.org Fri Aug 6 14:28:57 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Fri, 06 Aug 2021 18:28:57 -0000 Subject: [Python-checkins] bpo-44839: Raise more specific errors in sqlite3 (GH-27613) Message-ID: https://github.com/python/cpython/commit/7d747f26e6cac9f6891d475f3443441ce947697b commit: 7d747f26e6cac9f6891d475f3443441ce947697b branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-08-06T21:28:47+03:00 summary: bpo-44839: Raise more specific errors in sqlite3 (GH-27613) MemoryError raised in user-defined functions will now preserve its type. OverflowError will now be converted to DataError. Previously both were converted to OperationalError. files: A Misc/NEWS.d/next/Library/2021-08-05-14-59-39.bpo-44839.MURNL9.rst M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/connection.c diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index b3da3c425b8035..9681dbdde2b092 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -23,12 +23,16 @@ import contextlib import functools +import gc import io +import sys import unittest import unittest.mock -import gc import sqlite3 as sqlite +from test.support import bigmemtest + + def with_tracebacks(strings): """Convenience decorator for testing callback tracebacks.""" strings.append('Traceback') @@ -69,6 +73,10 @@ def func_returnlonglong(): return 1<<31 def func_raiseexception(): 5/0 +def func_memoryerror(): + raise MemoryError +def func_overflowerror(): + raise OverflowError def func_isstring(v): return type(v) is str @@ -187,6 +195,8 @@ def setUp(self): self.con.create_function("returnblob", 0, func_returnblob) self.con.create_function("returnlonglong", 0, func_returnlonglong) self.con.create_function("raiseexception", 0, func_raiseexception) + self.con.create_function("memoryerror", 0, func_memoryerror) + self.con.create_function("overflowerror", 0, func_overflowerror) self.con.create_function("isstring", 1, func_isstring) self.con.create_function("isint", 1, func_isint) @@ -279,6 +289,20 @@ def test_func_exception(self): cur.fetchone() self.assertEqual(str(cm.exception), 'user-defined function raised exception') + @with_tracebacks(['func_memoryerror', 'MemoryError']) + def test_func_memory_error(self): + cur = self.con.cursor() + with self.assertRaises(MemoryError): + cur.execute("select memoryerror()") + cur.fetchone() + + @with_tracebacks(['func_overflowerror', 'OverflowError']) + def test_func_overflow_error(self): + cur = self.con.cursor() + with self.assertRaises(sqlite.DataError): + cur.execute("select overflowerror()") + cur.fetchone() + def test_param_string(self): cur = self.con.cursor() for text in ["foo", str()]: @@ -384,6 +408,25 @@ def md5sum(t): del x,y gc.collect() + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @bigmemtest(size=2**31, memuse=3, dry_run=False) + def test_large_text(self, size): + cur = self.con.cursor() + for size in 2**31-1, 2**31: + self.con.create_function("largetext", 0, lambda size=size: "b" * size) + with self.assertRaises(sqlite.DataError): + cur.execute("select largetext()") + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @bigmemtest(size=2**31, memuse=2, dry_run=False) + def test_large_blob(self, size): + cur = self.con.cursor() + for size in 2**31-1, 2**31: + self.con.create_function("largeblob", 0, lambda size=size: b"b" * size) + with self.assertRaises(sqlite.DataError): + cur.execute("select largeblob()") + + class AggregateTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") diff --git a/Misc/NEWS.d/next/Library/2021-08-05-14-59-39.bpo-44839.MURNL9.rst b/Misc/NEWS.d/next/Library/2021-08-05-14-59-39.bpo-44839.MURNL9.rst new file mode 100644 index 00000000000000..62ad62c5d48d54 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-05-14-59-39.bpo-44839.MURNL9.rst @@ -0,0 +1,4 @@ +:class:`MemoryError` raised in user-defined functions will now produce a +``MemoryError`` in :mod:`sqlite3`. :class:`OverflowError` will now be converted +to :class:`~sqlite3.DataError`. Previously +:class:`~sqlite3.OperationalError` was produced in these cases. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index aae6c66d63faba..0dab3e85160e82 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -619,6 +619,29 @@ _pysqlite_build_py_params(sqlite3_context *context, int argc, return NULL; } +// Checks the Python exception and sets the appropriate SQLite error code. +static void +set_sqlite_error(sqlite3_context *context, const char *msg) +{ + assert(PyErr_Occurred()); + if (PyErr_ExceptionMatches(PyExc_MemoryError)) { + sqlite3_result_error_nomem(context); + } + else if (PyErr_ExceptionMatches(PyExc_OverflowError)) { + sqlite3_result_error_toobig(context); + } + else { + sqlite3_result_error(context, msg, -1); + } + pysqlite_state *state = pysqlite_get_state(NULL); + if (state->enable_callback_tracebacks) { + PyErr_Print(); + } + else { + PyErr_Clear(); + } +} + static void _pysqlite_func_callback(sqlite3_context *context, int argc, sqlite3_value **argv) { @@ -645,14 +668,7 @@ _pysqlite_func_callback(sqlite3_context *context, int argc, sqlite3_value **argv Py_DECREF(py_retval); } if (!ok) { - pysqlite_state *state = pysqlite_get_state(NULL); - if (state->enable_callback_tracebacks) { - PyErr_Print(); - } - else { - PyErr_Clear(); - } - sqlite3_result_error(context, "user-defined function raised exception", -1); + set_sqlite_error(context, "user-defined function raised exception"); } PyGILState_Release(threadstate); @@ -676,18 +692,9 @@ static void _pysqlite_step_callback(sqlite3_context *context, int argc, sqlite3_ if (*aggregate_instance == NULL) { *aggregate_instance = _PyObject_CallNoArg(aggregate_class); - - if (PyErr_Occurred()) { - *aggregate_instance = 0; - - pysqlite_state *state = pysqlite_get_state(NULL); - if (state->enable_callback_tracebacks) { - PyErr_Print(); - } - else { - PyErr_Clear(); - } - sqlite3_result_error(context, "user-defined aggregate's '__init__' method raised error", -1); + if (!*aggregate_instance) { + set_sqlite_error(context, + "user-defined aggregate's '__init__' method raised error"); goto error; } } @@ -706,14 +713,8 @@ static void _pysqlite_step_callback(sqlite3_context *context, int argc, sqlite3_ Py_DECREF(args); if (!function_result) { - pysqlite_state *state = pysqlite_get_state(NULL); - if (state->enable_callback_tracebacks) { - PyErr_Print(); - } - else { - PyErr_Clear(); - } - sqlite3_result_error(context, "user-defined aggregate's 'step' method raised error", -1); + set_sqlite_error(context, + "user-defined aggregate's 'step' method raised error"); } error: @@ -761,14 +762,8 @@ _pysqlite_final_callback(sqlite3_context *context) Py_DECREF(function_result); } if (!ok) { - pysqlite_state *state = pysqlite_get_state(NULL); - if (state->enable_callback_tracebacks) { - PyErr_Print(); - } - else { - PyErr_Clear(); - } - sqlite3_result_error(context, "user-defined aggregate's 'finalize' method raised error", -1); + set_sqlite_error(context, + "user-defined aggregate's 'finalize' method raised error"); } /* Restore the exception (if any) of the last call to step(), From webhook-mailer at python.org Fri Aug 6 14:42:36 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 18:42:36 -0000 Subject: [Python-checkins] bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) (GH-27636) Message-ID: https://github.com/python/cpython/commit/91f6d386691c060dfaa870d74b370e9c10eb8cd8 commit: 91f6d386691c060dfaa870d74b370e9c10eb8cd8 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-06T20:42:27+02:00 summary: bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) (GH-27636) It turned out to be disruptive for downstream distributors. (cherry picked from commit 55fa87b1ef46bbb9db7612b2dc2dd7fb039d9bc3) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst M Doc/Makefile M Doc/README.rst diff --git a/Doc/Makefile b/Doc/Makefile index 18ca07a9446cd1..57763fc0e103d7 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -45,7 +45,7 @@ help: @echo " check to run a check for frequent markup errors" @echo " serve to serve the documentation on the localhost (8000)" -build: venv +build: -mkdir -p build # Look first for a Misc/NEWS file (building from a source release tarball # or old repo) and use that, otherwise look for a Misc/NEWS.d directory @@ -145,7 +145,8 @@ clean-venv: venv: @if [ -d $(VENVDIR) ] ; then \ - echo "venv already exists"; \ + echo "venv already exists."; \ + echo "To recreate it, remove it first with \`make clean-venv'."; \ else \ $(PYTHON) -m venv $(VENVDIR); \ $(VENVDIR)/bin/python3 -m pip install -U pip setuptools; \ diff --git a/Doc/README.rst b/Doc/README.rst index 20c0432ba1d350..7e8a27b4066d87 100644 --- a/Doc/README.rst +++ b/Doc/README.rst @@ -29,13 +29,20 @@ Using make ---------- To get started on UNIX, you can create a virtual environment and build -documentation with the command:: +documentation with the commands:: + make venv make html The virtual environment in the ``venv`` directory will contain all the tools -necessary to build the documentation. You can also configure where the virtual -environment directory will be with the ``VENVDIR`` variable. +necessary to build the documentation downloaded and installed from PyPI. +If you'd like to create the virtual environment in a different location, +you can specify it using the ``VENVDIR`` variable. + +You can also skip creating the virtual environment altogether, in which case +the Makefile will look for instances of ``sphinxbuild`` and ``blurb`` +installed on your process ``PATH`` (configurable with the ``SPHINXBUILD`` and +``BLURB`` variables). On Windows, we try to emulate the Makefile as closely as possible with a ``make.bat`` file. If you need to specify the Python interpreter to use, diff --git a/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst new file mode 100644 index 00000000000000..ca2e1b9b53b752 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst @@ -0,0 +1,3 @@ +Reverted automated virtual environment creation on ``make html`` when +building documentation. It turned out to be disruptive for downstream +distributors. From webhook-mailer at python.org Fri Aug 6 15:16:02 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 19:16:02 -0000 Subject: [Python-checkins] bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) Message-ID: https://github.com/python/cpython/commit/1e9c9ca570ffe92dc6a60825c2f9c91865129b8f commit: 1e9c9ca570ffe92dc6a60825c2f9c91865129b8f branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T12:15:54-07:00 summary: bpo-44756: [docs] revert automated virtual environment creation on `make html` (GH-27635) It turned out to be disruptive for downstream distributors. (cherry picked from commit 55fa87b1ef46bbb9db7612b2dc2dd7fb039d9bc3) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst M Doc/Makefile M Doc/README.rst diff --git a/Doc/Makefile b/Doc/Makefile index ac02bbca971b5b..24528a1c4f3269 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -45,7 +45,7 @@ help: @echo " check to run a check for frequent markup errors" @echo " serve to serve the documentation on the localhost (8000)" -build: venv +build: -mkdir -p build # Look first for a Misc/NEWS file (building from a source release tarball # or old repo) and use that, otherwise look for a Misc/NEWS.d directory @@ -145,7 +145,8 @@ clean-venv: venv: @if [ -d $(VENVDIR) ] ; then \ - echo "venv already exists"; \ + echo "venv already exists."; \ + echo "To recreate it, remove it first with \`make clean-venv'."; \ else \ $(PYTHON) -m venv $(VENVDIR); \ $(VENVDIR)/bin/python3 -m pip install -U pip setuptools; \ diff --git a/Doc/README.rst b/Doc/README.rst index 20c0432ba1d350..7e8a27b4066d87 100644 --- a/Doc/README.rst +++ b/Doc/README.rst @@ -29,13 +29,20 @@ Using make ---------- To get started on UNIX, you can create a virtual environment and build -documentation with the command:: +documentation with the commands:: + make venv make html The virtual environment in the ``venv`` directory will contain all the tools -necessary to build the documentation. You can also configure where the virtual -environment directory will be with the ``VENVDIR`` variable. +necessary to build the documentation downloaded and installed from PyPI. +If you'd like to create the virtual environment in a different location, +you can specify it using the ``VENVDIR`` variable. + +You can also skip creating the virtual environment altogether, in which case +the Makefile will look for instances of ``sphinxbuild`` and ``blurb`` +installed on your process ``PATH`` (configurable with the ``SPHINXBUILD`` and +``BLURB`` variables). On Windows, we try to emulate the Makefile as closely as possible with a ``make.bat`` file. If you need to specify the Python interpreter to use, diff --git a/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst new file mode 100644 index 00000000000000..ca2e1b9b53b752 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-08-06-19-36-21.bpo-44756.1Ngzon.rst @@ -0,0 +1,3 @@ +Reverted automated virtual environment creation on ``make html`` when +building documentation. It turned out to be disruptive for downstream +distributors. From webhook-mailer at python.org Fri Aug 6 15:33:40 2021 From: webhook-mailer at python.org (rhettinger) Date: Fri, 06 Aug 2021 19:33:40 -0000 Subject: [Python-checkins] bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) Message-ID: https://github.com/python/cpython/commit/1f7d64608b5c7f4c3d96b01b33e18ebf9dec8490 commit: 1f7d64608b5c7f4c3d96b01b33e18ebf9dec8490 branch: main author: Raymond Hettinger committer: rhettinger date: 2021-08-06T14:33:30-05:00 summary: bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) files: A Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst M Lib/functools.py M Lib/test/test_functools.py diff --git a/Lib/functools.py b/Lib/functools.py index 357c1dfd909fa..77ec852805c10 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -88,84 +88,84 @@ def wraps(wrapped, def _gt_from_lt(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _le_from_lt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _ge_from_lt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a < b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _ge_from_le(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _lt_from_le(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _gt_from_le(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a <= b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result def _lt_from_gt(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _ge_from_gt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _le_from_gt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a > b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _le_from_ge(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _gt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _lt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a >= b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 78a8a5fcc0fea..fbf5578872e6b 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -1163,6 +1163,34 @@ def test_pickle(self): method_copy = pickle.loads(pickle.dumps(method, proto)) self.assertIs(method_copy, method) + + def test_total_ordering_for_metaclasses_issue_44605(self): + + @functools.total_ordering + class SortableMeta(type): + def __new__(cls, name, bases, ns): + return super().__new__(cls, name, bases, ns) + + def __lt__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ < other.__name__ + + def __eq__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ == other.__name__ + + class B(metaclass=SortableMeta): + pass + + class A(metaclass=SortableMeta): + pass + + self.assertTrue(A < B) + self.assertFalse(A > B) + + @functools.total_ordering class Orderable_LT: def __init__(self, value): diff --git a/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst new file mode 100644 index 0000000000000..93783923e15b3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst @@ -0,0 +1 @@ +The @functools.total_ordering() decorator now works with metaclasses. From webhook-mailer at python.org Fri Aug 6 15:58:24 2021 From: webhook-mailer at python.org (rhettinger) Date: Fri, 06 Aug 2021 19:58:24 -0000 Subject: [Python-checkins] bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) (GH-27641) Message-ID: https://github.com/python/cpython/commit/fde84170d06f74afd6f95d5b18cf3f733018191a commit: fde84170d06f74afd6f95d5b18cf3f733018191a branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: rhettinger date: 2021-08-06T14:57:52-05:00 summary: bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) (GH-27641) files: A Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst M Lib/functools.py M Lib/test/test_functools.py diff --git a/Lib/functools.py b/Lib/functools.py index 8506ed3827f29..97744a869563d 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -88,84 +88,84 @@ def wraps(wrapped, def _gt_from_lt(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _le_from_lt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _ge_from_lt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a < b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _ge_from_le(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _lt_from_le(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _gt_from_le(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a <= b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result def _lt_from_gt(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _ge_from_gt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _le_from_gt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a > b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _le_from_ge(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _gt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _lt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a >= b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 11e8aa356d333..ffe2456a2a9fc 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -1153,6 +1153,34 @@ def test_pickle(self): method_copy = pickle.loads(pickle.dumps(method, proto)) self.assertIs(method_copy, method) + + def test_total_ordering_for_metaclasses_issue_44605(self): + + @functools.total_ordering + class SortableMeta(type): + def __new__(cls, name, bases, ns): + return super().__new__(cls, name, bases, ns) + + def __lt__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ < other.__name__ + + def __eq__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ == other.__name__ + + class B(metaclass=SortableMeta): + pass + + class A(metaclass=SortableMeta): + pass + + self.assertTrue(A < B) + self.assertFalse(A > B) + + @functools.total_ordering class Orderable_LT: def __init__(self, value): diff --git a/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst new file mode 100644 index 0000000000000..93783923e15b3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst @@ -0,0 +1 @@ +The @functools.total_ordering() decorator now works with metaclasses. From webhook-mailer at python.org Fri Aug 6 16:05:24 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 20:05:24 -0000 Subject: [Python-checkins] bpo-27752: improve documentation of csv.Dialect (GH-26795) Message-ID: https://github.com/python/cpython/commit/0ffdced3b64ba5886fcde64266a31a15712da284 commit: 0ffdced3b64ba5886fcde64266a31a15712da284 branch: main author: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> committer: ambv date: 2021-08-06T22:05:16+02:00 summary: bpo-27752: improve documentation of csv.Dialect (GH-26795) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst M Doc/library/csv.rst diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index cb03f8da20235..899ce0225ce7f 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -94,8 +94,8 @@ The :mod:`csv` module defines the following functions: :class:`Dialect` class or one of the strings returned by the :func:`list_dialects` function. The other optional *fmtparams* keyword arguments can be given to override individual formatting parameters in the current - dialect. For full details about the dialect and formatting parameters, see - section :ref:`csv-fmt-params`. To make it + dialect. For full details about dialects and formatting parameters, see + the :ref:`csv-fmt-params` section. To make it as easy as possible to interface with modules which implement the DB API, the value :const:`None` is written as the empty string. While this isn't a reversible transformation, it makes it easier to dump SQL NULL data values to @@ -117,7 +117,7 @@ The :mod:`csv` module defines the following functions: Associate *dialect* with *name*. *name* must be a string. The dialect can be specified either by passing a sub-class of :class:`Dialect`, or by *fmtparams* keyword arguments, or both, with keyword arguments overriding - parameters of the dialect. For full details about the dialect and formatting + parameters of the dialect. For full details about dialects and formatting parameters, see section :ref:`csv-fmt-params`. @@ -225,9 +225,21 @@ The :mod:`csv` module defines the following classes: .. class:: Dialect - The :class:`Dialect` class is a container class relied on primarily for its - attributes, which are used to define the parameters for a specific - :class:`reader` or :class:`writer` instance. + The :class:`Dialect` class is a container class whose attributes contain + information for how to handle doublequotes, whitespace, delimiters, etc. + Due to the lack of a strict CSV specification, different applications + produce subtly different CSV data. :class:`Dialect` instances define how + :class:`reader` and :class:`writer` instances behave. + + All available :class:`Dialect` names are returned by :func:`list_dialects`, + and they can be registered with specific :class:`reader` and :class:`writer` + classes through their initializer (``__init__``) functions like this:: + + import csv + + with open('students.csv', 'w', newline='') as csvfile: + writer = csv.writer(csvfile, dialect='unix') + ^^^^^^^^^^^^^^ .. class:: excel() @@ -419,8 +431,8 @@ Reader objects (:class:`DictReader` instances and objects returned by the Return the next row of the reader's iterable object as a list (if the object was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` - instance), parsed according to the current dialect. Usually you should call - this as ``next(reader)``. + instance), parsed according to the current :class:`Dialect`. Usually you + should call this as ``next(reader)``. Reader objects have the following public attributes: @@ -460,9 +472,9 @@ read CSV files (assuming they support complex numbers at all). .. method:: csvwriter.writerow(row) - Write the *row* parameter to the writer's file object, formatted according to - the current dialect. Return the return value of the call to the *write* method - of the underlying file object. + Write the *row* parameter to the writer's file object, formatted according + to the current :class:`Dialect`. Return the return value of the call to the + *write* method of the underlying file object. .. versionchanged:: 3.5 Added support of arbitrary iterables. diff --git a/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst new file mode 100644 index 0000000000000..ccb7767a6b693 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst @@ -0,0 +1 @@ +Documentation of csv.Dialect is more descriptive. From webhook-mailer at python.org Fri Aug 6 16:11:52 2021 From: webhook-mailer at python.org (rhettinger) Date: Fri, 06 Aug 2021 20:11:52 -0000 Subject: [Python-checkins] bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) (GH-27640) Message-ID: https://github.com/python/cpython/commit/66dd1a0e645f26b074547dccc92448169cb32410 commit: 66dd1a0e645f26b074547dccc92448169cb32410 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: rhettinger date: 2021-08-06T15:11:44-05:00 summary: bpo-44605: Teach @total_ordering() to work with metaclasses (GH-27633) (GH-27640) files: A Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst M Lib/functools.py M Lib/test/test_functools.py diff --git a/Lib/functools.py b/Lib/functools.py index 357c1dfd909fa..77ec852805c10 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -88,84 +88,84 @@ def wraps(wrapped, def _gt_from_lt(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a < b) and (a != b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _le_from_lt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (a < b) or (a == b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _ge_from_lt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a < b).' - op_result = self.__lt__(other) + op_result = type(self).__lt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _ge_from_le(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (not a <= b) or (a == b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _lt_from_le(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (a <= b) and (a != b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _gt_from_le(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (not a <= b).' - op_result = self.__le__(other) + op_result = type(self).__le__(self, other) if op_result is NotImplemented: return op_result return not op_result def _lt_from_gt(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a > b) and (a != b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result and self != other def _ge_from_gt(self, other, NotImplemented=NotImplemented): 'Return a >= b. Computed by @total_ordering from (a > b) or (a == b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return op_result or self == other def _le_from_gt(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a > b).' - op_result = self.__gt__(other) + op_result = type(self).__gt__(self, other) if op_result is NotImplemented: return op_result return not op_result def _le_from_ge(self, other, NotImplemented=NotImplemented): 'Return a <= b. Computed by @total_ordering from (not a >= b) or (a == b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result or self == other def _gt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a > b. Computed by @total_ordering from (a >= b) and (a != b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return op_result and self != other def _lt_from_ge(self, other, NotImplemented=NotImplemented): 'Return a < b. Computed by @total_ordering from (not a >= b).' - op_result = self.__ge__(other) + op_result = type(self).__ge__(self, other) if op_result is NotImplemented: return op_result return not op_result diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 78a8a5fcc0fea..fbf5578872e6b 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -1163,6 +1163,34 @@ def test_pickle(self): method_copy = pickle.loads(pickle.dumps(method, proto)) self.assertIs(method_copy, method) + + def test_total_ordering_for_metaclasses_issue_44605(self): + + @functools.total_ordering + class SortableMeta(type): + def __new__(cls, name, bases, ns): + return super().__new__(cls, name, bases, ns) + + def __lt__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ < other.__name__ + + def __eq__(self, other): + if not isinstance(other, SortableMeta): + pass + return self.__name__ == other.__name__ + + class B(metaclass=SortableMeta): + pass + + class A(metaclass=SortableMeta): + pass + + self.assertTrue(A < B) + self.assertFalse(A > B) + + @functools.total_ordering class Orderable_LT: def __init__(self, value): diff --git a/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst new file mode 100644 index 0000000000000..93783923e15b3 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-09-43-50.bpo-44605.q4YSBZ.rst @@ -0,0 +1 @@ +The @functools.total_ordering() decorator now works with metaclasses. From webhook-mailer at python.org Fri Aug 6 16:31:59 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 20:31:59 -0000 Subject: [Python-checkins] bpo-27752: improve documentation of csv.Dialect (GH-26795) Message-ID: https://github.com/python/cpython/commit/2fd1f21db46b165cf603cf4524b4d14ab41ed1cc commit: 2fd1f21db46b165cf603cf4524b4d14ab41ed1cc branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T13:31:49-07:00 summary: bpo-27752: improve documentation of csv.Dialect (GH-26795) Co-authored-by: ?ukasz Langa (cherry picked from commit 0ffdced3b64ba5886fcde64266a31a15712da284) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: A Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst M Doc/library/csv.rst diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index cb03f8da20235..899ce0225ce7f 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -94,8 +94,8 @@ The :mod:`csv` module defines the following functions: :class:`Dialect` class or one of the strings returned by the :func:`list_dialects` function. The other optional *fmtparams* keyword arguments can be given to override individual formatting parameters in the current - dialect. For full details about the dialect and formatting parameters, see - section :ref:`csv-fmt-params`. To make it + dialect. For full details about dialects and formatting parameters, see + the :ref:`csv-fmt-params` section. To make it as easy as possible to interface with modules which implement the DB API, the value :const:`None` is written as the empty string. While this isn't a reversible transformation, it makes it easier to dump SQL NULL data values to @@ -117,7 +117,7 @@ The :mod:`csv` module defines the following functions: Associate *dialect* with *name*. *name* must be a string. The dialect can be specified either by passing a sub-class of :class:`Dialect`, or by *fmtparams* keyword arguments, or both, with keyword arguments overriding - parameters of the dialect. For full details about the dialect and formatting + parameters of the dialect. For full details about dialects and formatting parameters, see section :ref:`csv-fmt-params`. @@ -225,9 +225,21 @@ The :mod:`csv` module defines the following classes: .. class:: Dialect - The :class:`Dialect` class is a container class relied on primarily for its - attributes, which are used to define the parameters for a specific - :class:`reader` or :class:`writer` instance. + The :class:`Dialect` class is a container class whose attributes contain + information for how to handle doublequotes, whitespace, delimiters, etc. + Due to the lack of a strict CSV specification, different applications + produce subtly different CSV data. :class:`Dialect` instances define how + :class:`reader` and :class:`writer` instances behave. + + All available :class:`Dialect` names are returned by :func:`list_dialects`, + and they can be registered with specific :class:`reader` and :class:`writer` + classes through their initializer (``__init__``) functions like this:: + + import csv + + with open('students.csv', 'w', newline='') as csvfile: + writer = csv.writer(csvfile, dialect='unix') + ^^^^^^^^^^^^^^ .. class:: excel() @@ -419,8 +431,8 @@ Reader objects (:class:`DictReader` instances and objects returned by the Return the next row of the reader's iterable object as a list (if the object was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` - instance), parsed according to the current dialect. Usually you should call - this as ``next(reader)``. + instance), parsed according to the current :class:`Dialect`. Usually you + should call this as ``next(reader)``. Reader objects have the following public attributes: @@ -460,9 +472,9 @@ read CSV files (assuming they support complex numbers at all). .. method:: csvwriter.writerow(row) - Write the *row* parameter to the writer's file object, formatted according to - the current dialect. Return the return value of the call to the *write* method - of the underlying file object. + Write the *row* parameter to the writer's file object, formatted according + to the current :class:`Dialect`. Return the return value of the call to the + *write* method of the underlying file object. .. versionchanged:: 3.5 Added support of arbitrary iterables. diff --git a/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst new file mode 100644 index 0000000000000..ccb7767a6b693 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst @@ -0,0 +1 @@ +Documentation of csv.Dialect is more descriptive. From webhook-mailer at python.org Fri Aug 6 16:33:30 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 20:33:30 -0000 Subject: [Python-checkins] bpo-27752: improve documentation of csv.Dialect (GH-26795) (GH-27644) Message-ID: https://github.com/python/cpython/commit/62bce24e32a9c754a23e758a32a7e0ca49602fc5 commit: 62bce24e32a9c754a23e758a32a7e0ca49602fc5 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-06T22:33:21+02:00 summary: bpo-27752: improve documentation of csv.Dialect (GH-26795) (GH-27644) Co-authored-by: ?ukasz Langa (cherry picked from commit 0ffdced3b64ba5886fcde64266a31a15712da284) Co-authored-by: Jack DeVries <58614260+jdevries3133 at users.noreply.github.com> files: A Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst M Doc/library/csv.rst diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index 7a72c26d5bade..275ee10e93d31 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -94,8 +94,8 @@ The :mod:`csv` module defines the following functions: :class:`Dialect` class or one of the strings returned by the :func:`list_dialects` function. The other optional *fmtparams* keyword arguments can be given to override individual formatting parameters in the current - dialect. For full details about the dialect and formatting parameters, see - section :ref:`csv-fmt-params`. To make it + dialect. For full details about dialects and formatting parameters, see + the :ref:`csv-fmt-params` section. To make it as easy as possible to interface with modules which implement the DB API, the value :const:`None` is written as the empty string. While this isn't a reversible transformation, it makes it easier to dump SQL NULL data values to @@ -117,7 +117,7 @@ The :mod:`csv` module defines the following functions: Associate *dialect* with *name*. *name* must be a string. The dialect can be specified either by passing a sub-class of :class:`Dialect`, or by *fmtparams* keyword arguments, or both, with keyword arguments overriding - parameters of the dialect. For full details about the dialect and formatting + parameters of the dialect. For full details about dialects and formatting parameters, see section :ref:`csv-fmt-params`. @@ -225,9 +225,21 @@ The :mod:`csv` module defines the following classes: .. class:: Dialect - The :class:`Dialect` class is a container class relied on primarily for its - attributes, which are used to define the parameters for a specific - :class:`reader` or :class:`writer` instance. + The :class:`Dialect` class is a container class whose attributes contain + information for how to handle doublequotes, whitespace, delimiters, etc. + Due to the lack of a strict CSV specification, different applications + produce subtly different CSV data. :class:`Dialect` instances define how + :class:`reader` and :class:`writer` instances behave. + + All available :class:`Dialect` names are returned by :func:`list_dialects`, + and they can be registered with specific :class:`reader` and :class:`writer` + classes through their initializer (``__init__``) functions like this:: + + import csv + + with open('students.csv', 'w', newline='') as csvfile: + writer = csv.writer(csvfile, dialect='unix') + ^^^^^^^^^^^^^^ .. class:: excel() @@ -405,8 +417,8 @@ Reader objects (:class:`DictReader` instances and objects returned by the Return the next row of the reader's iterable object as a list (if the object was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` - instance), parsed according to the current dialect. Usually you should call - this as ``next(reader)``. + instance), parsed according to the current :class:`Dialect`. Usually you + should call this as ``next(reader)``. Reader objects have the following public attributes: @@ -446,9 +458,9 @@ read CSV files (assuming they support complex numbers at all). .. method:: csvwriter.writerow(row) - Write the *row* parameter to the writer's file object, formatted according to - the current dialect. Return the return value of the call to the *write* method - of the underlying file object. + Write the *row* parameter to the writer's file object, formatted according + to the current :class:`Dialect`. Return the return value of the call to the + *write* method of the underlying file object. .. versionchanged:: 3.5 Added support of arbitrary iterables. diff --git a/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst new file mode 100644 index 0000000000000..ccb7767a6b693 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2021-06-18-18-04-53.bpo-27752.NEByNk.rst @@ -0,0 +1 @@ +Documentation of csv.Dialect is more descriptive. From webhook-mailer at python.org Fri Aug 6 16:44:24 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 20:44:24 -0000 Subject: [Python-checkins] bpo-41576: document BaseException in favor of bare except (GH-21917) Message-ID: https://github.com/python/cpython/commit/e9a6f1b78bf57d9f3f99547bd007d7cfc9724cfb commit: e9a6f1b78bf57d9f3f99547bd007d7cfc9724cfb branch: main author: Thomas Grainger committer: ambv date: 2021-08-06T22:44:15+02:00 summary: bpo-41576: document BaseException in favor of bare except (GH-21917) files: A Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst M Doc/tutorial/errors.rst diff --git a/Doc/tutorial/errors.rst b/Doc/tutorial/errors.rst index 27e39dfe257716..e7a45a302c65a7 100644 --- a/Doc/tutorial/errors.rst +++ b/Doc/tutorial/errors.rst @@ -147,10 +147,10 @@ For example, the following code will print B, C, D in that order:: Note that if the *except clauses* were reversed (with ``except B`` first), it would have printed B, B, B --- the first matching *except clause* is triggered. -The last *except clause* may omit the exception name(s), to serve as a wildcard. -Use this with extreme caution, since it is easy to mask a real programming error -in this way! It can also be used to print an error message and then re-raise -the exception (allowing a caller to handle the exception as well):: +All exceptions inherit from :exc:`BaseException`, and so it can be used to serve +as a wildcard. Use this with extreme caution, since it is easy to mask a real +programming error in this way! It can also be used to print an error message and +then re-raise the exception (allowing a caller to handle the exception as well):: import sys @@ -162,10 +162,13 @@ the exception (allowing a caller to handle the exception as well):: print("OS error: {0}".format(err)) except ValueError: print("Could not convert data to an integer.") - except: - print("Unexpected error:", sys.exc_info()[0]) + except BaseException as err: + print(f"Unexpected {err=}, {type(err)=}") raise +Alternatively the last except clause may omit the exception name(s), however the exception +value must then be retrieved from ``sys.exc_info()[1]``. + The :keyword:`try` ... :keyword:`except` statement has an optional *else clause*, which, when present, must follow all *except clauses*. It is useful for code that must be executed if the *try clause* does not raise an exception. @@ -493,5 +496,3 @@ used in a way that ensures they are always cleaned up promptly and correctly. :: After the statement is executed, the file *f* is always closed, even if a problem was encountered while processing the lines. Objects which, like files, provide predefined clean-up actions will indicate this in their documentation. - - diff --git a/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst b/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst new file mode 100644 index 00000000000000..f74ef62ca47ab2 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst @@ -0,0 +1 @@ +document BaseException in favor of bare except \ No newline at end of file From webhook-mailer at python.org Fri Aug 6 17:02:25 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Fri, 06 Aug 2021 21:02:25 -0000 Subject: [Python-checkins] [3.9] bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588). (GH-27639) Message-ID: https://github.com/python/cpython/commit/c352412123140e79dcce6188d17e3e6dbc3f4144 commit: c352412123140e79dcce6188d17e3e6dbc3f4144 branch: 3.9 author: Erlend Egeberg Aasland committer: serhiy-storchaka date: 2021-08-07T00:02:06+03:00 summary: [3.9] bpo-44822: Don't truncate `str`s with embedded NULL chars returned by `sqlite3` UDF callbacks (GH-27588). (GH-27639) (cherry picked from commit 8f010dc920e1f6dc6a357e7cc1460a7a567c05c6) files: A Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/connection.c diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index a1c29d482366e..1bceefe8e69d9 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -27,6 +27,8 @@ def func_returntext(): return "foo" +def func_returntextwithnull(): + return "1\x002" def func_returnunicode(): return "bar" def func_returnint(): @@ -137,11 +139,21 @@ def step(self, val): def finalize(self): return self.val +class AggrText: + def __init__(self): + self.txt = "" + def step(self, txt): + self.txt = self.txt + txt + def finalize(self): + return self.txt + + class FunctionTests(unittest.TestCase): def setUp(self): self.con = sqlite.connect(":memory:") self.con.create_function("returntext", 0, func_returntext) + self.con.create_function("returntextwithnull", 0, func_returntextwithnull) self.con.create_function("returnunicode", 0, func_returnunicode) self.con.create_function("returnint", 0, func_returnint) self.con.create_function("returnfloat", 0, func_returnfloat) @@ -185,6 +197,12 @@ def CheckFuncReturnText(self): self.assertEqual(type(val), str) self.assertEqual(val, "foo") + def CheckFuncReturnTextWithNullChar(self): + cur = self.con.cursor() + res = cur.execute("select returntextwithnull()").fetchone()[0] + self.assertEqual(type(res), str) + self.assertEqual(res, "1\x002") + def CheckFuncReturnUnicode(self): cur = self.con.cursor() cur.execute("select returnunicode()") @@ -343,6 +361,7 @@ def setUp(self): self.con.create_aggregate("checkType", 2, AggrCheckType) self.con.create_aggregate("checkTypes", -1, AggrCheckTypes) self.con.create_aggregate("mysum", 1, AggrSum) + self.con.create_aggregate("aggtxt", 1, AggrText) def tearDown(self): #self.cur.close() @@ -431,6 +450,15 @@ def CheckAggrCheckAggrSum(self): val = cur.fetchone()[0] self.assertEqual(val, 60) + def CheckAggrText(self): + cur = self.con.cursor() + for txt in ["foo", "1\x002"]: + with self.subTest(txt=txt): + cur.execute("select aggtxt(?) from test", (txt,)) + val = cur.fetchone()[0] + self.assertEqual(val, txt) + + class AuthorizerTests(unittest.TestCase): @staticmethod def authorizer_cb(action, arg1, arg2, dbname, source): diff --git a/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst new file mode 100644 index 0000000000000..d078142886d2e --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-04-12-29-00.bpo-44822.zePNXA.rst @@ -0,0 +1,3 @@ +:mod:`sqlite3` user-defined functions and aggregators returning +:class:`strings ` with embedded NUL characters are no longer +truncated. Patch by Erlend E. Aasland. diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 986a82918b5fe..4806a12789cd1 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -515,10 +515,17 @@ _pysqlite_set_result(sqlite3_context* context, PyObject* py_val) } else if (PyFloat_Check(py_val)) { sqlite3_result_double(context, PyFloat_AsDouble(py_val)); } else if (PyUnicode_Check(py_val)) { - const char *str = PyUnicode_AsUTF8(py_val); - if (str == NULL) + Py_ssize_t sz; + const char *str = PyUnicode_AsUTF8AndSize(py_val, &sz); + if (str == NULL) { return -1; - sqlite3_result_text(context, str, -1, SQLITE_TRANSIENT); + } + if (sz > INT_MAX) { + PyErr_SetString(PyExc_OverflowError, + "string is longer than INT_MAX bytes"); + return -1; + } + sqlite3_result_text(context, str, (int)sz, SQLITE_TRANSIENT); } else if (PyObject_CheckBuffer(py_val)) { Py_buffer view; if (PyObject_GetBuffer(py_val, &view, PyBUF_SIMPLE) != 0) { From webhook-mailer at python.org Fri Aug 6 17:14:44 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 06 Aug 2021 21:14:44 -0000 Subject: [Python-checkins] bpo-41576: document BaseException in favor of bare except (GH-21917) Message-ID: https://github.com/python/cpython/commit/699ee016af5736ffc80f68359617611a22b72943 commit: 699ee016af5736ffc80f68359617611a22b72943 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-06T14:14:40-07:00 summary: bpo-41576: document BaseException in favor of bare except (GH-21917) (cherry picked from commit e9a6f1b78bf57d9f3f99547bd007d7cfc9724cfb) Co-authored-by: Thomas Grainger files: A Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst M Doc/tutorial/errors.rst diff --git a/Doc/tutorial/errors.rst b/Doc/tutorial/errors.rst index 27e39dfe257716..e7a45a302c65a7 100644 --- a/Doc/tutorial/errors.rst +++ b/Doc/tutorial/errors.rst @@ -147,10 +147,10 @@ For example, the following code will print B, C, D in that order:: Note that if the *except clauses* were reversed (with ``except B`` first), it would have printed B, B, B --- the first matching *except clause* is triggered. -The last *except clause* may omit the exception name(s), to serve as a wildcard. -Use this with extreme caution, since it is easy to mask a real programming error -in this way! It can also be used to print an error message and then re-raise -the exception (allowing a caller to handle the exception as well):: +All exceptions inherit from :exc:`BaseException`, and so it can be used to serve +as a wildcard. Use this with extreme caution, since it is easy to mask a real +programming error in this way! It can also be used to print an error message and +then re-raise the exception (allowing a caller to handle the exception as well):: import sys @@ -162,10 +162,13 @@ the exception (allowing a caller to handle the exception as well):: print("OS error: {0}".format(err)) except ValueError: print("Could not convert data to an integer.") - except: - print("Unexpected error:", sys.exc_info()[0]) + except BaseException as err: + print(f"Unexpected {err=}, {type(err)=}") raise +Alternatively the last except clause may omit the exception name(s), however the exception +value must then be retrieved from ``sys.exc_info()[1]``. + The :keyword:`try` ... :keyword:`except` statement has an optional *else clause*, which, when present, must follow all *except clauses*. It is useful for code that must be executed if the *try clause* does not raise an exception. @@ -493,5 +496,3 @@ used in a way that ensures they are always cleaned up promptly and correctly. :: After the statement is executed, the file *f* is always closed, even if a problem was encountered while processing the lines. Objects which, like files, provide predefined clean-up actions will indicate this in their documentation. - - diff --git a/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst b/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst new file mode 100644 index 00000000000000..f74ef62ca47ab2 --- /dev/null +++ b/Misc/NEWS.d/next/Documentation/2020-08-21-22-59-37.bpo-41576.7a6CQR.rst @@ -0,0 +1 @@ +document BaseException in favor of bare except \ No newline at end of file From webhook-mailer at python.org Fri Aug 6 17:35:23 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 06 Aug 2021 21:35:23 -0000 Subject: [Python-checkins] bpo-42971: Add errno.EQFULL (macOS) (GH-24419) Message-ID: https://github.com/python/cpython/commit/17c23167942498296f0bdfffe52e72d53d66d693 commit: 17c23167942498296f0bdfffe52e72d53d66d693 branch: main author: Ronald Oussoren committer: ambv date: 2021-08-06T23:35:13+02:00 summary: bpo-42971: Add errno.EQFULL (macOS) (GH-24419) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Library/2021-02-02-20-11-14.bpo-42971.OpVoFu.rst M Doc/library/errno.rst M Modules/errnomodule.c diff --git a/Doc/library/errno.rst b/Doc/library/errno.rst index 1cbd51c582c0c..93bdb6ca9b8e3 100644 --- a/Doc/library/errno.rst +++ b/Doc/library/errno.rst @@ -637,3 +637,8 @@ defined by the module. The specific list of defined symbols is available as Quota exceeded +.. data:: EQFULL + + Interface output queue is full + + .. versionadded:: 3.11 diff --git a/Misc/NEWS.d/next/Library/2021-02-02-20-11-14.bpo-42971.OpVoFu.rst b/Misc/NEWS.d/next/Library/2021-02-02-20-11-14.bpo-42971.OpVoFu.rst new file mode 100644 index 0000000000000..97c8d2d79aa40 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-02-02-20-11-14.bpo-42971.OpVoFu.rst @@ -0,0 +1,2 @@ +Add definition of ``errno.EQFULL`` for platforms that define this constant +(such as macOS). diff --git a/Modules/errnomodule.c b/Modules/errnomodule.c index d99bed45bd6a2..bf6766e02349c 100644 --- a/Modules/errnomodule.c +++ b/Modules/errnomodule.c @@ -920,6 +920,9 @@ errno_exec(PyObject *module) #ifdef ESHLIBVERS add_errcode("ESHLIBVERS", ESHLIBVERS, "Shared library version mismatch"); #endif +#ifdef EQFULL + add_errcode("EQFULL", EQFULL, "Interface output queue is full"); +#endif Py_DECREF(error_dict); return 0; From webhook-mailer at python.org Sat Aug 7 06:10:43 2021 From: webhook-mailer at python.org (ambv) Date: Sat, 07 Aug 2021 10:10:43 -0000 Subject: [Python-checkins] bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) Message-ID: https://github.com/python/cpython/commit/a40675c659cd8c0699f85ee9ac31660f93f8c2f5 commit: a40675c659cd8c0699f85ee9ac31660f93f8c2f5 branch: main author: Pablo Galindo Salgado committer: ambv date: 2021-08-07T12:10:14+02:00 summary: bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) files: A Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst M Python/bltinmodule.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst new file mode 100644 index 0000000000000..1111d01b726fa --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst @@ -0,0 +1 @@ +Fix reference leaks in the error paths of ``update_bases()`` and ``__build_class__``. Patch by Pablo Galindo. diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index bfe21ad6d0c4c..761dc08d1d641 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -72,6 +72,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) /* If this is a first successful replacement, create new_bases list and copy previously encountered bases. */ if (!(new_bases = PyList_New(i))) { + Py_DECREF(new_base); goto error; } for (j = 0; j < i; j++) { @@ -82,6 +83,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) } j = PyList_GET_SIZE(new_bases); if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { + Py_DECREF(new_base); goto error; } Py_DECREF(new_base); @@ -103,8 +105,9 @@ static PyObject * builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns, *orig_bases; - PyObject *cls = NULL, *cell = NULL; + PyObject *func, *name, *winner, *prep; + PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL; + PyObject *mkw = NULL, *bases = NULL; int isclass = 0; /* initialize to prevent gcc warning */ if (nargs < 2) { @@ -141,26 +144,20 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, else { mkw = _PyStack_AsDict(args + nargs, kwnames); if (mkw == NULL) { - Py_DECREF(bases); - return NULL; + goto error; } meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass); if (meta != NULL) { Py_INCREF(meta); if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) { - Py_DECREF(meta); - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } /* metaclass is explicitly given, check if it's indeed a class */ isclass = PyType_Check(meta); } else if (PyErr_Occurred()) { - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } } if (meta == NULL) { @@ -183,10 +180,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta, bases); if (winner == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (winner != meta) { Py_DECREF(meta); @@ -208,10 +202,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py_DECREF(prep); } if (ns == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (!PyMapping_Check(ns)) { PyErr_Format(PyExc_TypeError, @@ -252,13 +243,13 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, } error: Py_XDECREF(cell); - Py_DECREF(ns); - Py_DECREF(meta); + Py_XDECREF(ns); + Py_XDECREF(meta); Py_XDECREF(mkw); - Py_DECREF(bases); if (bases != orig_bases) { Py_DECREF(orig_bases); } + Py_DECREF(bases); return cls; } From webhook-mailer at python.org Sat Aug 7 07:17:44 2021 From: webhook-mailer at python.org (ambv) Date: Sat, 07 Aug 2021 11:17:44 -0000 Subject: [Python-checkins] bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) (GH-27652) Message-ID: https://github.com/python/cpython/commit/0a423096e8d8bbe22c0fb0904f7520387a8d4247 commit: 0a423096e8d8bbe22c0fb0904f7520387a8d4247 branch: 3.8 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-07T13:17:16+02:00 summary: bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) (GH-27652) (cherry picked from commit a40675c659cd8c0699f85ee9ac31660f93f8c2f5) Co-authored-by: Pablo Galindo Salgado files: A Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst M Python/bltinmodule.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst new file mode 100644 index 00000000000000..1111d01b726fa2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst @@ -0,0 +1 @@ +Fix reference leaks in the error paths of ``update_bases()`` and ``__build_class__``. Patch by Pablo Galindo. diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 3767f552bb17aa..4c0129c5c8ae43 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -71,6 +71,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) /* If this is a first successful replacement, create new_bases list and copy previously encountered bases. */ if (!(new_bases = PyList_New(i))) { + Py_DECREF(new_base); goto error; } for (j = 0; j < i; j++) { @@ -81,6 +82,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) } j = PyList_GET_SIZE(new_bases); if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { + Py_DECREF(new_base); goto error; } Py_DECREF(new_base); @@ -102,8 +104,9 @@ static PyObject * builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns, *orig_bases; - PyObject *cls = NULL, *cell = NULL; + PyObject *func, *name, *winner, *prep; + PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL; + PyObject *mkw = NULL, *bases = NULL; int isclass = 0; /* initialize to prevent gcc warning */ if (nargs < 2) { @@ -140,26 +143,20 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, else { mkw = _PyStack_AsDict(args + nargs, kwnames); if (mkw == NULL) { - Py_DECREF(bases); - return NULL; + goto error; } meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass); if (meta != NULL) { Py_INCREF(meta); if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) { - Py_DECREF(meta); - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } /* metaclass is explicitly given, check if it's indeed a class */ isclass = PyType_Check(meta); } else if (PyErr_Occurred()) { - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } } if (meta == NULL) { @@ -182,10 +179,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta, bases); if (winner == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (winner != meta) { Py_DECREF(meta); @@ -207,10 +201,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py_DECREF(prep); } if (ns == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (!PyMapping_Check(ns)) { PyErr_Format(PyExc_TypeError, @@ -251,13 +242,13 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, } error: Py_XDECREF(cell); - Py_DECREF(ns); - Py_DECREF(meta); + Py_XDECREF(ns); + Py_XDECREF(meta); Py_XDECREF(mkw); - Py_DECREF(bases); if (bases != orig_bases) { Py_DECREF(orig_bases); } + Py_DECREF(bases); return cls; } From webhook-mailer at python.org Sat Aug 7 07:17:45 2021 From: webhook-mailer at python.org (ambv) Date: Sat, 07 Aug 2021 11:17:45 -0000 Subject: [Python-checkins] bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) (GH-27651) Message-ID: https://github.com/python/cpython/commit/ed718e9b07df06ea1abbe7b34c649e9d610adf86 commit: ed718e9b07df06ea1abbe7b34c649e9d610adf86 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-07T13:17:41+02:00 summary: bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) (GH-27651) (cherry picked from commit a40675c659cd8c0699f85ee9ac31660f93f8c2f5) Co-authored-by: Pablo Galindo Salgado files: A Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst M Python/bltinmodule.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst new file mode 100644 index 00000000000000..1111d01b726fa2 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst @@ -0,0 +1 @@ +Fix reference leaks in the error paths of ``update_bases()`` and ``__build_class__``. Patch by Pablo Galindo. diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 614012df9b12a2..21c70f9a6c7bd0 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -71,6 +71,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) /* If this is a first successful replacement, create new_bases list and copy previously encountered bases. */ if (!(new_bases = PyList_New(i))) { + Py_DECREF(new_base); goto error; } for (j = 0; j < i; j++) { @@ -81,6 +82,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) } j = PyList_GET_SIZE(new_bases); if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { + Py_DECREF(new_base); goto error; } Py_DECREF(new_base); @@ -102,8 +104,9 @@ static PyObject * builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns, *orig_bases; - PyObject *cls = NULL, *cell = NULL; + PyObject *func, *name, *winner, *prep; + PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL; + PyObject *mkw = NULL, *bases = NULL; int isclass = 0; /* initialize to prevent gcc warning */ if (nargs < 2) { @@ -140,26 +143,20 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, else { mkw = _PyStack_AsDict(args + nargs, kwnames); if (mkw == NULL) { - Py_DECREF(bases); - return NULL; + goto error; } meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass); if (meta != NULL) { Py_INCREF(meta); if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) { - Py_DECREF(meta); - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } /* metaclass is explicitly given, check if it's indeed a class */ isclass = PyType_Check(meta); } else if (PyErr_Occurred()) { - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } } if (meta == NULL) { @@ -182,10 +179,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta, bases); if (winner == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (winner != meta) { Py_DECREF(meta); @@ -207,10 +201,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py_DECREF(prep); } if (ns == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (!PyMapping_Check(ns)) { PyErr_Format(PyExc_TypeError, @@ -251,13 +242,13 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, } error: Py_XDECREF(cell); - Py_DECREF(ns); - Py_DECREF(meta); + Py_XDECREF(ns); + Py_XDECREF(meta); Py_XDECREF(mkw); - Py_DECREF(bases); if (bases != orig_bases) { Py_DECREF(orig_bases); } + Py_DECREF(bases); return cls; } From webhook-mailer at python.org Sat Aug 7 10:03:23 2021 From: webhook-mailer at python.org (miss-islington) Date: Sat, 07 Aug 2021 14:03:23 -0000 Subject: [Python-checkins] bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) Message-ID: https://github.com/python/cpython/commit/ac8f72cd3ffa24f53c558911947c42316865683c commit: ac8f72cd3ffa24f53c558911947c42316865683c branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-07T07:03:17-07:00 summary: bpo-44856: Possible reference leak in error paths of update_bases() and __build_class__ (GH-27647) (cherry picked from commit a40675c659cd8c0699f85ee9ac31660f93f8c2f5) Co-authored-by: Pablo Galindo Salgado files: A Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst M Python/bltinmodule.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst new file mode 100644 index 0000000000000..1111d01b726fa --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-07-01-26-12.bpo-44856.9rk3li.rst @@ -0,0 +1 @@ +Fix reference leaks in the error paths of ``update_bases()`` and ``__build_class__``. Patch by Pablo Galindo. diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 66a74cbdef610..130c5f055b931 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -72,6 +72,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) /* If this is a first successful replacement, create new_bases list and copy previously encountered bases. */ if (!(new_bases = PyList_New(i))) { + Py_DECREF(new_base); goto error; } for (j = 0; j < i; j++) { @@ -82,6 +83,7 @@ update_bases(PyObject *bases, PyObject *const *args, Py_ssize_t nargs) } j = PyList_GET_SIZE(new_bases); if (PyList_SetSlice(new_bases, j, j, new_base) < 0) { + Py_DECREF(new_base); goto error; } Py_DECREF(new_base); @@ -103,8 +105,9 @@ static PyObject * builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) { - PyObject *func, *name, *bases, *mkw, *meta, *winner, *prep, *ns, *orig_bases; - PyObject *cls = NULL, *cell = NULL; + PyObject *func, *name, *winner, *prep; + PyObject *cls = NULL, *cell = NULL, *ns = NULL, *meta = NULL, *orig_bases = NULL; + PyObject *mkw = NULL, *bases = NULL; int isclass = 0; /* initialize to prevent gcc warning */ if (nargs < 2) { @@ -141,26 +144,20 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, else { mkw = _PyStack_AsDict(args + nargs, kwnames); if (mkw == NULL) { - Py_DECREF(bases); - return NULL; + goto error; } meta = _PyDict_GetItemIdWithError(mkw, &PyId_metaclass); if (meta != NULL) { Py_INCREF(meta); if (_PyDict_DelItemId(mkw, &PyId_metaclass) < 0) { - Py_DECREF(meta); - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } /* metaclass is explicitly given, check if it's indeed a class */ isclass = PyType_Check(meta); } else if (PyErr_Occurred()) { - Py_DECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } } if (meta == NULL) { @@ -183,10 +180,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, winner = (PyObject *)_PyType_CalculateMetaclass((PyTypeObject *)meta, bases); if (winner == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (winner != meta) { Py_DECREF(meta); @@ -208,10 +202,7 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py_DECREF(prep); } if (ns == NULL) { - Py_DECREF(meta); - Py_XDECREF(mkw); - Py_DECREF(bases); - return NULL; + goto error; } if (!PyMapping_Check(ns)) { PyErr_Format(PyExc_TypeError, @@ -252,13 +243,13 @@ builtin___build_class__(PyObject *self, PyObject *const *args, Py_ssize_t nargs, } error: Py_XDECREF(cell); - Py_DECREF(ns); - Py_DECREF(meta); + Py_XDECREF(ns); + Py_XDECREF(meta); Py_XDECREF(mkw); - Py_DECREF(bases); if (bases != orig_bases) { Py_DECREF(orig_bases); } + Py_DECREF(bases); return cls; } From webhook-mailer at python.org Sat Aug 7 12:38:59 2021 From: webhook-mailer at python.org (miss-islington) Date: Sat, 07 Aug 2021 16:38:59 -0000 Subject: [Python-checkins] Upgrade bundled pip and setuptools (GH-27625) Message-ID: https://github.com/python/cpython/commit/7d6a0fe5b8001b63d452af5364422e40d06ac755 commit: 7d6a0fe5b8001b63d452af5364422e40d06ac755 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-07T09:38:40-07:00 summary: Upgrade bundled pip and setuptools (GH-27625) pip is now 21.2.3 setuptools is now 57.4.0 (cherry picked from commit 738ac00a08cb6a9d104ec85ccb1a44c2399d6baa) Co-authored-by: Tzu-ping Chung files: A Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl A Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl A Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst D Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl D Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl M Lib/ensurepip/__init__.py diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 45c0981abbddbf..f28ab11ed40082 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -11,8 +11,8 @@ __all__ = ["version", "bootstrap"] _PACKAGE_NAMES = ('setuptools', 'pip') -_SETUPTOOLS_VERSION = "56.0.0" -_PIP_VERSION = "21.1.3" +_SETUPTOOLS_VERSION = "57.4.0" +_PIP_VERSION = "21.2.3" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), ("pip", _PIP_VERSION, "py3"), diff --git a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl deleted file mode 100644 index d96a40a9291fb2..00000000000000 Binary files a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl and /dev/null differ diff --git a/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl new file mode 100644 index 00000000000000..d417df63d9ec19 Binary files /dev/null and b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl differ diff --git a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl similarity index 65% rename from Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl rename to Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl index 264ef10e826679..af8f8ba21003b1 100644 Binary files a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl and b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl differ diff --git a/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst new file mode 100644 index 00000000000000..99f08065b9d2f0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst @@ -0,0 +1 @@ +Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0 From webhook-mailer at python.org Sat Aug 7 23:18:14 2021 From: webhook-mailer at python.org (orsenthil) Date: Sun, 08 Aug 2021 03:18:14 -0000 Subject: [Python-checkins] bpo-44830 - Remove the broken Broken Mozilla devguide link. (GH-27664) Message-ID: https://github.com/python/cpython/commit/ebecffdb6d5fffa4249f9a813f1fc1915926feb5 commit: ebecffdb6d5fffa4249f9a813f1fc1915926feb5 branch: main author: Senthil Kumaran committer: orsenthil date: 2021-08-07T20:18:10-07:00 summary: bpo-44830 - Remove the broken Broken Mozilla devguide link. (GH-27664) files: M Doc/bugs.rst diff --git a/Doc/bugs.rst b/Doc/bugs.rst index 8ffc8b14c53e4..82819792a1ad8 100644 --- a/Doc/bugs.rst +++ b/Doc/bugs.rst @@ -80,10 +80,6 @@ taken on the bug. Article which goes into some detail about how to create a useful bug report. This describes what kind of information is useful and why it is useful. - `Bug Report Writing Guidelines `_ - Information about writing a good bug report. Some of this is specific to the - Mozilla project, but describes general good practices. - .. _contributing-to-python: Getting started contributing to Python yourself From webhook-mailer at python.org Sat Aug 7 23:44:16 2021 From: webhook-mailer at python.org (orsenthil) Date: Sun, 08 Aug 2021 03:44:16 -0000 Subject: [Python-checkins] bpo-44830 - Remove the broken Broken Mozilla devguide link. (GH-27664) (GH-27665) Message-ID: https://github.com/python/cpython/commit/6a6bcf16370beff2e0d1a034661654d5c335b5ee commit: 6a6bcf16370beff2e0d1a034661654d5c335b5ee branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: orsenthil date: 2021-08-07T20:44:08-07:00 summary: bpo-44830 - Remove the broken Broken Mozilla devguide link. (GH-27664) (GH-27665) (cherry picked from commit ebecffdb6d5fffa4249f9a813f1fc1915926feb5) Co-authored-by: Senthil Kumaran Co-authored-by: Senthil Kumaran files: M Doc/bugs.rst diff --git a/Doc/bugs.rst b/Doc/bugs.rst index a17f04d26fa40..ee914920f10f0 100644 --- a/Doc/bugs.rst +++ b/Doc/bugs.rst @@ -80,10 +80,6 @@ taken on the bug. Article which goes into some detail about how to create a useful bug report. This describes what kind of information is useful and why it is useful. - `Bug Report Writing Guidelines `_ - Information about writing a good bug report. Some of this is specific to the - Mozilla project, but describes general good practices. - .. _contributing-to-python: Getting started contributing to Python yourself From webhook-mailer at python.org Sun Aug 8 01:50:01 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sun, 08 Aug 2021 05:50:01 -0000 Subject: [Python-checkins] bpo-44859: Improve error handling in sqlite3 and and raise more accurate exceptions. (GH-27654) Message-ID: https://github.com/python/cpython/commit/0eec6276fdcdde5221370d92b50ea95851760c72 commit: 0eec6276fdcdde5221370d92b50ea95851760c72 branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-08-08T08:49:44+03:00 summary: bpo-44859: Improve error handling in sqlite3 and and raise more accurate exceptions. (GH-27654) * MemoryError is now raised instead of sqlite3.Warning when memory is not enough for encoding a statement to UTF-8 in Connection.__call__() and Cursor.execute(). * UnicodEncodeError is now raised instead of sqlite3.Warning when the statement contains surrogate characters in Connection.__call__() and Cursor.execute(). * TypeError is now raised instead of ValueError for non-string script argument in Cursor.executescript(). * ValueError is now raised for script containing the null character instead of truncating it in Cursor.executescript(). * Correctly handle exceptions raised when getting boolean value of the result of the progress handler. * Add many tests covering different corner cases. Co-authored-by: Erlend Egeberg Aasland files: A Misc/NEWS.d/next/Library/2021-08-07-17-28-56.bpo-44859.CCopjk.rst M Lib/sqlite3/test/dbapi.py M Lib/sqlite3/test/hooks.py M Lib/sqlite3/test/regression.py M Lib/sqlite3/test/types.py M Lib/sqlite3/test/userfunctions.py M Modules/_sqlite/clinic/cursor.c.h M Modules/_sqlite/connection.c M Modules/_sqlite/cursor.c M Modules/_sqlite/statement.c diff --git a/Lib/sqlite3/test/dbapi.py b/Lib/sqlite3/test/dbapi.py index 408f9945f2c970..5d7e5bba05bc45 100644 --- a/Lib/sqlite3/test/dbapi.py +++ b/Lib/sqlite3/test/dbapi.py @@ -26,7 +26,7 @@ import threading import unittest -from test.support import check_disallow_instantiation, threading_helper +from test.support import check_disallow_instantiation, threading_helper, bigmemtest from test.support.os_helper import TESTFN, unlink @@ -758,9 +758,35 @@ def test_script_error_normal(self): def test_cursor_executescript_as_bytes(self): con = sqlite.connect(":memory:") cur = con.cursor() - with self.assertRaises(ValueError) as cm: + with self.assertRaises(TypeError): cur.executescript(b"create table test(foo); insert into test(foo) values (5);") - self.assertEqual(str(cm.exception), 'script argument must be unicode.') + + def test_cursor_executescript_with_null_characters(self): + con = sqlite.connect(":memory:") + cur = con.cursor() + with self.assertRaises(ValueError): + cur.executescript(""" + create table a(i);\0 + insert into a(i) values (5); + """) + + def test_cursor_executescript_with_surrogates(self): + con = sqlite.connect(":memory:") + cur = con.cursor() + with self.assertRaises(UnicodeEncodeError): + cur.executescript(""" + create table a(s); + insert into a(s) values ('\ud8ff'); + """) + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @bigmemtest(size=2**31, memuse=3, dry_run=False) + def test_cursor_executescript_too_large_script(self, maxsize): + con = sqlite.connect(":memory:") + cur = con.cursor() + for size in 2**31-1, 2**31: + with self.assertRaises(sqlite.DataError): + cur.executescript("create table a(s);".ljust(size)) def test_connection_execute(self): con = sqlite.connect(":memory:") @@ -969,6 +995,7 @@ def suite(): CursorTests, ExtensionTests, ModuleTests, + OpenTests, SqliteOnConflictTests, ThreadTests, UninitialisedConnectionTests, diff --git a/Lib/sqlite3/test/hooks.py b/Lib/sqlite3/test/hooks.py index 1be6d380abd20a..43e3810d13df18 100644 --- a/Lib/sqlite3/test/hooks.py +++ b/Lib/sqlite3/test/hooks.py @@ -24,7 +24,7 @@ import sqlite3 as sqlite from test.support.os_helper import TESTFN, unlink - +from .userfunctions import with_tracebacks class CollationTests(unittest.TestCase): def test_create_collation_not_string(self): @@ -145,7 +145,6 @@ def progress(): """) self.assertTrue(progress_calls) - def test_opcode_count(self): """ Test that the opcode argument is respected. @@ -198,6 +197,32 @@ def progress(): con.execute("select 1 union select 2 union select 3").fetchall() self.assertEqual(action, 0, "progress handler was not cleared") + @with_tracebacks(['bad_progress', 'ZeroDivisionError']) + def test_error_in_progress_handler(self): + con = sqlite.connect(":memory:") + def bad_progress(): + 1 / 0 + con.set_progress_handler(bad_progress, 1) + with self.assertRaises(sqlite.OperationalError): + con.execute(""" + create table foo(a, b) + """) + + @with_tracebacks(['__bool__', 'ZeroDivisionError']) + def test_error_in_progress_handler_result(self): + con = sqlite.connect(":memory:") + class BadBool: + def __bool__(self): + 1 / 0 + def bad_progress(): + return BadBool() + con.set_progress_handler(bad_progress, 1) + with self.assertRaises(sqlite.OperationalError): + con.execute(""" + create table foo(a, b) + """) + + class TraceCallbackTests(unittest.TestCase): def test_trace_callback_used(self): """ diff --git a/Lib/sqlite3/test/regression.py b/Lib/sqlite3/test/regression.py index 6c093d7c2c36e0..ddf36e71819445 100644 --- a/Lib/sqlite3/test/regression.py +++ b/Lib/sqlite3/test/regression.py @@ -21,6 +21,7 @@ # 3. This notice may not be removed or altered from any source distribution. import datetime +import sys import unittest import sqlite3 as sqlite import weakref @@ -273,7 +274,7 @@ def test_connection_call(self): Call a connection with a non-string SQL request: check error handling of the statement constructor. """ - self.assertRaises(TypeError, self.con, 1) + self.assertRaises(TypeError, self.con, b"select 1") def test_collation(self): def collation_cb(a, b): @@ -344,6 +345,26 @@ def test_null_character(self): self.assertRaises(ValueError, cur.execute, " \0select 2") self.assertRaises(ValueError, cur.execute, "select 2\0") + def test_surrogates(self): + con = sqlite.connect(":memory:") + self.assertRaises(UnicodeEncodeError, con, "select '\ud8ff'") + self.assertRaises(UnicodeEncodeError, con, "select '\udcff'") + cur = con.cursor() + self.assertRaises(UnicodeEncodeError, cur.execute, "select '\ud8ff'") + self.assertRaises(UnicodeEncodeError, cur.execute, "select '\udcff'") + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @support.bigmemtest(size=2**31, memuse=4, dry_run=False) + def test_large_sql(self, maxsize): + # Test two cases: size+1 > INT_MAX and size+1 <= INT_MAX. + for size in (2**31, 2**31-2): + con = sqlite.connect(":memory:") + sql = "select 1".ljust(size) + self.assertRaises(sqlite.DataError, con, sql) + cur = con.cursor() + self.assertRaises(sqlite.DataError, cur.execute, sql) + del sql + def test_commit_cursor_reset(self): """ Connection.commit() did reset cursors, which made sqlite3 diff --git a/Lib/sqlite3/test/types.py b/Lib/sqlite3/test/types.py index 4f0e4f6d268392..b8926ffee22e87 100644 --- a/Lib/sqlite3/test/types.py +++ b/Lib/sqlite3/test/types.py @@ -23,11 +23,14 @@ import datetime import unittest import sqlite3 as sqlite +import sys try: import zlib except ImportError: zlib = None +from test import support + class SqliteTypeTests(unittest.TestCase): def setUp(self): @@ -45,6 +48,12 @@ def test_string(self): row = self.cur.fetchone() self.assertEqual(row[0], "?sterreich") + def test_string_with_null_character(self): + self.cur.execute("insert into test(s) values (?)", ("a\0b",)) + self.cur.execute("select s from test") + row = self.cur.fetchone() + self.assertEqual(row[0], "a\0b") + def test_small_int(self): self.cur.execute("insert into test(i) values (?)", (42,)) self.cur.execute("select i from test") @@ -52,7 +61,7 @@ def test_small_int(self): self.assertEqual(row[0], 42) def test_large_int(self): - num = 2**40 + num = 123456789123456789 self.cur.execute("insert into test(i) values (?)", (num,)) self.cur.execute("select i from test") row = self.cur.fetchone() @@ -78,6 +87,45 @@ def test_unicode_execute(self): row = self.cur.fetchone() self.assertEqual(row[0], "?sterreich") + def test_too_large_int(self): + for value in 2**63, -2**63-1, 2**64: + with self.assertRaises(OverflowError): + self.cur.execute("insert into test(i) values (?)", (value,)) + self.cur.execute("select i from test") + row = self.cur.fetchone() + self.assertIsNone(row) + + def test_string_with_surrogates(self): + for value in 0xd8ff, 0xdcff: + with self.assertRaises(UnicodeEncodeError): + self.cur.execute("insert into test(s) values (?)", (chr(value),)) + self.cur.execute("select s from test") + row = self.cur.fetchone() + self.assertIsNone(row) + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @support.bigmemtest(size=2**31, memuse=4, dry_run=False) + def test_too_large_string(self, maxsize): + with self.assertRaises(sqlite.InterfaceError): + self.cur.execute("insert into test(s) values (?)", ('x'*(2**31-1),)) + with self.assertRaises(OverflowError): + self.cur.execute("insert into test(s) values (?)", ('x'*(2**31),)) + self.cur.execute("select 1 from test") + row = self.cur.fetchone() + self.assertIsNone(row) + + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') + @support.bigmemtest(size=2**31, memuse=3, dry_run=False) + def test_too_large_blob(self, maxsize): + with self.assertRaises(sqlite.InterfaceError): + self.cur.execute("insert into test(s) values (?)", (b'x'*(2**31-1),)) + with self.assertRaises(OverflowError): + self.cur.execute("insert into test(s) values (?)", (b'x'*(2**31),)) + self.cur.execute("select 1 from test") + row = self.cur.fetchone() + self.assertIsNone(row) + + class DeclTypesTests(unittest.TestCase): class Foo: def __init__(self, _val): @@ -163,7 +211,7 @@ def test_small_int(self): def test_large_int(self): # default - num = 2**40 + num = 123456789123456789 self.cur.execute("insert into test(i) values (?)", (num,)) self.cur.execute("select i from test") row = self.cur.fetchone() diff --git a/Lib/sqlite3/test/userfunctions.py b/Lib/sqlite3/test/userfunctions.py index 9681dbdde2b092..b4d5181777ebdf 100644 --- a/Lib/sqlite3/test/userfunctions.py +++ b/Lib/sqlite3/test/userfunctions.py @@ -33,28 +33,37 @@ from test.support import bigmemtest -def with_tracebacks(strings): +def with_tracebacks(strings, traceback=True): """Convenience decorator for testing callback tracebacks.""" - strings.append('Traceback') + if traceback: + strings.append('Traceback') def decorator(func): @functools.wraps(func) def wrapper(self, *args, **kwargs): # First, run the test with traceback enabled. - sqlite.enable_callback_tracebacks(True) - buf = io.StringIO() - with contextlib.redirect_stderr(buf): + with check_tracebacks(self, strings): func(self, *args, **kwargs) - tb = buf.getvalue() - for s in strings: - self.assertIn(s, tb) # Then run the test with traceback disabled. - sqlite.enable_callback_tracebacks(False) func(self, *args, **kwargs) return wrapper return decorator + at contextlib.contextmanager +def check_tracebacks(self, strings): + """Convenience context manager for testing callback tracebacks.""" + sqlite.enable_callback_tracebacks(True) + try: + buf = io.StringIO() + with contextlib.redirect_stderr(buf): + yield + tb = buf.getvalue() + for s in strings: + self.assertIn(s, tb) + finally: + sqlite.enable_callback_tracebacks(False) + def func_returntext(): return "foo" def func_returntextwithnull(): @@ -408,9 +417,26 @@ def md5sum(t): del x,y gc.collect() + def test_func_return_too_large_int(self): + cur = self.con.cursor() + for value in 2**63, -2**63-1, 2**64: + self.con.create_function("largeint", 0, lambda value=value: value) + with check_tracebacks(self, ['OverflowError']): + with self.assertRaises(sqlite.DataError): + cur.execute("select largeint()") + + def test_func_return_text_with_surrogates(self): + cur = self.con.cursor() + self.con.create_function("pychr", 1, chr) + for value in 0xd8ff, 0xdcff: + with check_tracebacks(self, + ['UnicodeEncodeError', 'surrogates not allowed']): + with self.assertRaises(sqlite.OperationalError): + cur.execute("select pychr(?)", (value,)) + @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') @bigmemtest(size=2**31, memuse=3, dry_run=False) - def test_large_text(self, size): + def test_func_return_too_large_text(self, size): cur = self.con.cursor() for size in 2**31-1, 2**31: self.con.create_function("largetext", 0, lambda size=size: "b" * size) @@ -419,7 +445,7 @@ def test_large_text(self, size): @unittest.skipUnless(sys.maxsize > 2**32, 'requires 64bit platform') @bigmemtest(size=2**31, memuse=2, dry_run=False) - def test_large_blob(self, size): + def test_func_return_too_large_blob(self, size): cur = self.con.cursor() for size in 2**31-1, 2**31: self.con.create_function("largeblob", 0, lambda size=size: b"b" * size) diff --git a/Misc/NEWS.d/next/Library/2021-08-07-17-28-56.bpo-44859.CCopjk.rst b/Misc/NEWS.d/next/Library/2021-08-07-17-28-56.bpo-44859.CCopjk.rst new file mode 100644 index 00000000000000..ec9f774d66b8c4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-07-17-28-56.bpo-44859.CCopjk.rst @@ -0,0 +1,8 @@ +Improve error handling in :mod:`sqlite3` and raise more accurate exceptions. + +* :exc:`MemoryError` is now raised instead of :exc:`sqlite3.Warning` when memory is not enough for encoding a statement to UTF-8 in ``Connection.__call__()`` and ``Cursor.execute()``. +* :exc:`UnicodEncodeError` is now raised instead of :exc:`sqlite3.Warning` when the statement contains surrogate characters in ``Connection.__call__()`` and ``Cursor.execute()``. +* :exc:`TypeError` is now raised instead of :exc:`ValueError` for non-string script argument in ``Cursor.executescript()``. +* :exc:`ValueError` is now raised for script containing the null character instead of truncating it in ``Cursor.executescript()``. +* Correctly handle exceptions raised when getting boolean value of the result of the progress handler. +* Add many tests covering different corner cases. diff --git a/Modules/_sqlite/clinic/cursor.c.h b/Modules/_sqlite/clinic/cursor.c.h index d2c453b38b4b9e..07e15870146cf7 100644 --- a/Modules/_sqlite/clinic/cursor.c.h +++ b/Modules/_sqlite/clinic/cursor.c.h @@ -119,6 +119,35 @@ PyDoc_STRVAR(pysqlite_cursor_executescript__doc__, #define PYSQLITE_CURSOR_EXECUTESCRIPT_METHODDEF \ {"executescript", (PyCFunction)pysqlite_cursor_executescript, METH_O, pysqlite_cursor_executescript__doc__}, +static PyObject * +pysqlite_cursor_executescript_impl(pysqlite_Cursor *self, + const char *sql_script); + +static PyObject * +pysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *arg) +{ + PyObject *return_value = NULL; + const char *sql_script; + + if (!PyUnicode_Check(arg)) { + _PyArg_BadArgument("executescript", "argument", "str", arg); + goto exit; + } + Py_ssize_t sql_script_length; + sql_script = PyUnicode_AsUTF8AndSize(arg, &sql_script_length); + if (sql_script == NULL) { + goto exit; + } + if (strlen(sql_script) != (size_t)sql_script_length) { + PyErr_SetString(PyExc_ValueError, "embedded null character"); + goto exit; + } + return_value = pysqlite_cursor_executescript_impl(self, sql_script); + +exit: + return return_value; +} + PyDoc_STRVAR(pysqlite_cursor_fetchone__doc__, "fetchone($self, /)\n" "--\n" @@ -270,4 +299,4 @@ pysqlite_cursor_close(pysqlite_Cursor *self, PyTypeObject *cls, PyObject *const exit: return return_value; } -/*[clinic end generated code: output=7b216aba2439f5cf input=a9049054013a1b77]*/ +/*[clinic end generated code: output=ace31a7481aa3f41 input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index 0dab3e85160e82..67160c4c449aa1 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -997,6 +997,14 @@ static int _progress_handler(void* user_arg) ret = _PyObject_CallNoArg((PyObject*)user_arg); if (!ret) { + /* abort query if error occurred */ + rc = -1; + } + else { + rc = PyObject_IsTrue(ret); + Py_DECREF(ret); + } + if (rc < 0) { pysqlite_state *state = pysqlite_get_state(NULL); if (state->enable_callback_tracebacks) { PyErr_Print(); @@ -1004,12 +1012,6 @@ static int _progress_handler(void* user_arg) else { PyErr_Clear(); } - - /* abort query if error occurred */ - rc = 1; - } else { - rc = (int)PyObject_IsTrue(ret); - Py_DECREF(ret); } PyGILState_Release(gilstate); diff --git a/Modules/_sqlite/cursor.c b/Modules/_sqlite/cursor.c index 2f4494690f9557..7308f3062da4b9 100644 --- a/Modules/_sqlite/cursor.c +++ b/Modules/_sqlite/cursor.c @@ -728,21 +728,21 @@ pysqlite_cursor_executemany_impl(pysqlite_Cursor *self, PyObject *sql, /*[clinic input] _sqlite3.Cursor.executescript as pysqlite_cursor_executescript - sql_script as script_obj: object + sql_script: str / Executes multiple SQL statements at once. Non-standard. [clinic start generated code]*/ static PyObject * -pysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *script_obj) -/*[clinic end generated code: output=115a8132b0f200fe input=ba3ec59df205e362]*/ +pysqlite_cursor_executescript_impl(pysqlite_Cursor *self, + const char *sql_script) +/*[clinic end generated code: output=8fd726dde1c65164 input=1ac0693dc8db02a8]*/ { _Py_IDENTIFIER(commit); - const char* script_cstr; sqlite3_stmt* statement; int rc; - Py_ssize_t sql_len; + size_t sql_len; PyObject* result; if (!check_cursor(self)) { @@ -751,21 +751,12 @@ pysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *script_obj) self->reset = 0; - if (PyUnicode_Check(script_obj)) { - script_cstr = PyUnicode_AsUTF8AndSize(script_obj, &sql_len); - if (!script_cstr) { - return NULL; - } - - int max_length = sqlite3_limit(self->connection->db, - SQLITE_LIMIT_LENGTH, -1); - if (sql_len >= max_length) { - PyErr_SetString(self->connection->DataError, - "query string is too large"); - return NULL; - } - } else { - PyErr_SetString(PyExc_ValueError, "script argument must be unicode."); + sql_len = strlen(sql_script); + int max_length = sqlite3_limit(self->connection->db, + SQLITE_LIMIT_LENGTH, -1); + if (sql_len >= (unsigned)max_length) { + PyErr_SetString(self->connection->DataError, + "query string is too large"); return NULL; } @@ -782,7 +773,7 @@ pysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *script_obj) Py_BEGIN_ALLOW_THREADS rc = sqlite3_prepare_v2(self->connection->db, - script_cstr, + sql_script, (int)sql_len + 1, &statement, &tail); @@ -816,8 +807,8 @@ pysqlite_cursor_executescript(pysqlite_Cursor *self, PyObject *script_obj) if (*tail == (char)0) { break; } - sql_len -= (tail - script_cstr); - script_cstr = tail; + sql_len -= (tail - sql_script); + sql_script = tail; } error: diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 983df2d50c975d..2d5c72d13b7edb 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -56,9 +56,6 @@ pysqlite_statement_create(pysqlite_Connection *connection, PyObject *sql) Py_ssize_t size; const char *sql_cstr = PyUnicode_AsUTF8AndSize(sql, &size); if (sql_cstr == NULL) { - PyErr_Format(connection->Warning, - "SQL is of wrong type ('%s'). Must be string.", - Py_TYPE(sql)->tp_name); return NULL; } From webhook-mailer at python.org Sun Aug 8 14:04:15 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sun, 08 Aug 2021 18:04:15 -0000 Subject: [Python-checkins] bpo-42053: Remove misleading check in os.fwalk() (GH-27669) Message-ID: https://github.com/python/cpython/commit/2b496e79293a8b80e8ba0e514e186b3b1467b64b commit: 2b496e79293a8b80e8ba0e514e186b3b1467b64b branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-08-08T21:04:02+03:00 summary: bpo-42053: Remove misleading check in os.fwalk() (GH-27669) os.fwalk() does not support integer as the first argument, and never supported. files: M Lib/os.py diff --git a/Lib/os.py b/Lib/os.py index 8cc70a11e9bc8..ab7ef3c17798b 100644 --- a/Lib/os.py +++ b/Lib/os.py @@ -461,8 +461,7 @@ def fwalk(top=".", topdown=True, onerror=None, *, follow_symlinks=False, dir_fd= dirs.remove('CVS') # don't visit CVS directories """ sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd) - if not isinstance(top, int) or not hasattr(top, '__index__'): - top = fspath(top) + top = fspath(top) # Note: To guard against symlink races, we use the standard # lstat()/open()/fstat() trick. if not follow_symlinks: From webhook-mailer at python.org Mon Aug 9 05:19:30 2021 From: webhook-mailer at python.org (markshannon) Date: Mon, 09 Aug 2021 09:19:30 -0000 Subject: [Python-checkins] bpo-44840: Compiler: Move duplication of exit blocks with no line numbers to after CFG optimization. (GH-27656) Message-ID: https://github.com/python/cpython/commit/b854557b49083d8625a433eb36aacb0c87d67c52 commit: b854557b49083d8625a433eb36aacb0c87d67c52 branch: main author: Mark Shannon committer: markshannon date: 2021-08-09T10:18:59+01:00 summary: bpo-44840: Compiler: Move duplication of exit blocks with no line numbers to after CFG optimization. (GH-27656) files: M Lib/test/test_dis.py M Lib/test/test_sys_settrace.py M Python/compile.c M Python/importlib.h M Python/importlib_external.h M Python/importlib_zipimport.h diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index 546932cc9c99f..d708c78bf9960 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -294,7 +294,7 @@ def bug42562(): %3d 16 DUP_TOP 18 LOAD_GLOBAL 0 (Exception) - 20 JUMP_IF_NOT_EXC_MATCH 28 (to 56) + 20 JUMP_IF_NOT_EXC_MATCH 27 (to 54) 22 POP_TOP 24 STORE_FAST 0 (e) 26 POP_TOP @@ -313,15 +313,14 @@ def bug42562(): 48 STORE_FAST 0 (e) 50 DELETE_FAST 0 (e) 52 RERAISE 1 - >> 54 POP_EXCEPT_AND_RERAISE -%3d >> 56 RERAISE 0 +%3d >> 54 RERAISE 0 + >> 56 POP_EXCEPT_AND_RERAISE ExceptionTable: 2 to 8 -> 14 [0] - 14 to 26 -> 54 [3] lasti + 14 to 26 -> 56 [3] lasti 28 to 32 -> 46 [3] lasti - 46 to 52 -> 54 [3] lasti - 56 to 56 -> 54 [3] lasti + 46 to 54 -> 56 [3] lasti """ % (TRACEBACK_CODE.co_firstlineno + 1, TRACEBACK_CODE.co_firstlineno + 2, TRACEBACK_CODE.co_firstlineno + 5, @@ -1088,11 +1087,11 @@ def _prepare_test_cases(): Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=108, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='BINARY_TRUE_DIVIDE', opcode=27, arg=None, argval=None, argrepr='', offset=110, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=112, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=14, argval=144, argrepr='to 144', offset=114, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=15, argval=146, argrepr='to 146', offset=114, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=116, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=118, starts_line=22, is_jump_target=False, positions=None), Instruction(opname='LOAD_GLOBAL', opcode=116, arg=2, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=120, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_IF_NOT_EXC_MATCH', opcode=121, arg=124, argval=248, argrepr='to 248', offset=122, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_IF_NOT_EXC_MATCH', opcode=121, arg=71, argval=142, argrepr='to 142', offset=122, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=124, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=126, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=128, starts_line=None, is_jump_target=False, positions=None), @@ -1101,61 +1100,61 @@ def _prepare_test_cases(): Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=134, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=136, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=138, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=46, argval=234, argrepr='to 234', offset=140, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=142, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=25, is_jump_target=True, positions=None), - Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=146, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=148, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=150, starts_line=26, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=152, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=154, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=156, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=158, starts_line=25, is_jump_target=False, positions=None), - Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=160, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=33, argval=208, argrepr='to 208', offset=140, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=142, starts_line=22, is_jump_target=True, positions=None), + Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=144, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=146, starts_line=25, is_jump_target=True, positions=None), + Instruction(opname='BEFORE_WITH', opcode=53, arg=None, argval=None, argrepr='', offset=148, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=150, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=152, starts_line=26, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=154, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=156, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=158, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=160, starts_line=25, is_jump_target=False, positions=None), Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=162, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=164, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=166, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=25, argval=220, argrepr='to 220', offset=168, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=170, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=90, argval=180, argrepr='to 180', offset=174, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=4, argval=4, argrepr='', offset=176, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=178, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=True, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=182, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=164, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=166, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=168, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=25, argval=222, argrepr='to 222', offset=170, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=174, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=91, argval=182, argrepr='to 182', offset=176, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=4, argval=4, argrepr='', offset=178, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=182, starts_line=None, is_jump_target=True, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=184, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False, positions=None), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=190, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=192, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=194, starts_line=28, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=196, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=198, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=200, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=202, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=204, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=206, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=208, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=210, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=212, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=214, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=216, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=218, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=220, starts_line=25, is_jump_target=True, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=222, starts_line=28, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=224, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=226, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=230, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=232, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=234, starts_line=23, is_jump_target=True, positions=None), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=236, starts_line=28, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=238, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=240, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=242, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=244, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=246, starts_line=None, is_jump_target=False, positions=None), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=248, starts_line=22, is_jump_target=True, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=192, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=194, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=196, starts_line=28, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=198, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=200, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=202, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=204, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=206, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=208, starts_line=23, is_jump_target=True, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=210, starts_line=28, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=212, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=214, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=216, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=218, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=220, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='NOP', opcode=9, arg=None, argval=None, argrepr='', offset=222, starts_line=25, is_jump_target=True, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=224, starts_line=28, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=226, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=228, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=230, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=232, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=234, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='PUSH_EXC_INFO', opcode=35, arg=None, argval=None, argrepr='', offset=236, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=238, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=240, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=242, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=244, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=246, starts_line=None, is_jump_target=False, positions=None), + Instruction(opname='POP_EXCEPT_AND_RERAISE', opcode=37, arg=None, argval=None, argrepr='', offset=248, starts_line=None, is_jump_target=False, positions=None), ] # One last piece of inspect fodder to check the default line number handling diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py index 8b6631879fb33..3fe0bb7f460b9 100644 --- a/Lib/test/test_sys_settrace.py +++ b/Lib/test/test_sys_settrace.py @@ -894,6 +894,29 @@ def func(): (4, 'line'), (4, 'return')]) + def test_nested_ifs_with_and(self): + + def func(): + if A: + if B: + if C: + if D: + return False + else: + return False + elif E and F: + return True + + A = B = True + C = False + + self.run_and_compare(func, + [(0, 'call'), + (1, 'line'), + (2, 'line'), + (3, 'line'), + (3, 'return')]) + def test_nested_try_if(self): def func(): diff --git a/Python/compile.c b/Python/compile.c index 7fb8abf7749bb..d65f7a849a5b7 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -890,7 +890,7 @@ compiler_copy_block(struct compiler *c, basicblock *block) * a block can only have one fallthrough predecessor. */ assert(block->b_nofallthrough); - basicblock *result = compiler_next_block(c); + basicblock *result = compiler_new_block(c); if (result == NULL) { return NULL; } @@ -7567,8 +7567,9 @@ normalize_basic_block(basicblock *bb); static int optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts); +/* Duplicates exit BBs, so that line numbers can be propagated to them */ static int -ensure_exits_have_lineno(struct compiler *c); +duplicate_exits_without_lineno(struct compiler *c); static int extend_block(basicblock *bb); @@ -7710,10 +7711,10 @@ guarantee_lineno_for_exits(struct assembler *a, int firstlineno) { } struct instr *last = &b->b_instr[b->b_iused-1]; if (last->i_lineno < 0) { - if (last->i_opcode == RETURN_VALUE) - { + if (last->i_opcode == RETURN_VALUE) { for (int i = 0; i < b->b_iused; i++) { assert(b->b_instr[i].i_lineno < 0); + b->b_instr[i].i_lineno = lineno; } } @@ -7769,6 +7770,9 @@ fix_cell_offsets(struct compiler *c, basicblock *entryblock, int *fixedmap) return numdropped; } +static void +propagate_line_numbers(struct assembler *a); + static PyCodeObject * assemble(struct compiler *c, int addNone) { @@ -7801,10 +7805,6 @@ assemble(struct compiler *c, int addNone) } } - if (ensure_exits_have_lineno(c)) { - return NULL; - } - nblocks = 0; entryblock = NULL; for (b = c->u->u_blocks; b != NULL; b = b->b_list) { @@ -7861,8 +7861,11 @@ assemble(struct compiler *c, int addNone) if (optimize_cfg(c, &a, consts)) { goto error; } + if (duplicate_exits_without_lineno(c)) { + return NULL; + } + propagate_line_numbers(&a); guarantee_lineno_for_exits(&a, c->u->u_firstlineno); - int maxdepth = stackdepth(c); if (maxdepth < 0) { goto error; @@ -8365,6 +8368,7 @@ clean_basic_block(basicblock *bb) { } } } + } if (dest != src) { bb->b_instr[dest] = bb->b_instr[src]; @@ -8479,7 +8483,7 @@ eliminate_empty_basic_blocks(basicblock *entry) { * but has no impact on the generated line number events. */ static void -propogate_line_numbers(struct assembler *a) { +propagate_line_numbers(struct assembler *a) { for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { if (b->b_iused == 0) { continue; @@ -8544,6 +8548,11 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) clean_basic_block(b); assert(b->b_predecessors == 0); } + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (extend_block(b)) { + return -1; + } + } if (mark_reachable(a)) { return -1; } @@ -8581,7 +8590,6 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) if (maybe_empty_blocks) { eliminate_empty_basic_blocks(a->a_entry); } - propogate_line_numbers(a); return 0; } @@ -8600,7 +8608,7 @@ is_exit_without_lineno(basicblock *b) { * copy the line number from the sole predecessor block. */ static int -ensure_exits_have_lineno(struct compiler *c) +duplicate_exits_without_lineno(struct compiler *c) { basicblock *entry = NULL; /* Copy all exit blocks without line number that are targets of a jump. @@ -8616,20 +8624,21 @@ ensure_exits_have_lineno(struct compiler *c) continue; } basicblock *target = b->b_instr[b->b_iused-1].i_target; - if (is_exit_without_lineno(target)) { + if (is_exit_without_lineno(target) && target->b_predecessors > 1) { basicblock *new_target = compiler_copy_block(c, target); if (new_target == NULL) { return -1; } COPY_INSTR_LOC(b->b_instr[b->b_iused-1], new_target->b_instr[0]); b->b_instr[b->b_iused-1].i_target = new_target; + target->b_predecessors--; + new_target->b_predecessors = 1; + new_target->b_next = target->b_next; + target->b_next = new_target; } } } assert(entry != NULL); - if (is_exit_without_lineno(entry)) { - entry->b_instr[0].i_lineno = c->u->u_firstlineno; - } /* Eliminate empty blocks */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { while (b->b_next && b->b_next->b_iused == 0) { diff --git a/Python/importlib.h b/Python/importlib.h index ce3945ecf8470..b62cc9db17916 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -49,9 +49,9 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 115,105,111,110,32,111,102,32,116,104,105,115,32,109,111,100, 117,108,101,46,10,10,99,1,0,0,0,0,0,0,0,0, 0,0,0,8,0,0,0,3,0,0,0,115,40,0,0,0, - 9,0,124,0,106,0,83,0,35,0,4,0,116,1,121,19, + 9,0,124,0,106,0,83,0,35,0,4,0,116,1,121,18, 1,0,1,0,1,0,116,2,124,0,131,1,106,0,6,0, - 89,0,83,0,37,0,119,0,169,1,78,41,3,218,12,95, + 89,0,83,0,119,0,37,0,169,1,78,41,3,218,12,95, 95,113,117,97,108,110,97,109,101,95,95,218,14,65,116,116, 114,105,98,117,116,101,69,114,114,111,114,218,4,116,121,112, 101,41,1,218,3,111,98,106,115,1,0,0,0,32,250,29, @@ -59,213 +59,213 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 98,46,95,98,111,111,116,115,116,114,97,112,62,218,12,95, 111,98,106,101,99,116,95,110,97,109,101,114,6,0,0,0, 23,0,0,0,115,14,0,0,0,2,1,6,1,2,128,12, - 1,14,1,2,128,2,255,115,16,0,0,0,2,4,6,254, - 2,128,2,2,2,255,22,1,2,128,2,0,115,40,0,0, - 0,5,38,16,19,16,32,9,32,0,0,5,38,12,26,5, - 38,5,38,5,38,5,38,16,20,21,24,16,25,16,38,9, - 38,9,38,9,38,0,0,5,38,115,12,0,0,0,129,2, - 4,0,132,12,18,7,147,1,18,7,78,99,2,0,0,0, - 0,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0, - 115,56,0,0,0,100,1,68,0,93,16,125,2,116,0,124, - 1,124,2,131,2,114,18,116,1,124,0,124,2,116,2,124, - 1,124,2,131,2,131,3,1,0,113,2,124,0,106,3,160, - 4,124,1,106,3,161,1,1,0,100,2,83,0,41,3,122, - 47,83,105,109,112,108,101,32,115,117,98,115,116,105,116,117, - 116,101,32,102,111,114,32,102,117,110,99,116,111,111,108,115, - 46,117,112,100,97,116,101,95,119,114,97,112,112,101,114,46, - 41,4,218,10,95,95,109,111,100,117,108,101,95,95,218,8, - 95,95,110,97,109,101,95,95,114,1,0,0,0,218,7,95, - 95,100,111,99,95,95,78,41,5,218,7,104,97,115,97,116, - 116,114,218,7,115,101,116,97,116,116,114,218,7,103,101,116, - 97,116,116,114,218,8,95,95,100,105,99,116,95,95,218,6, - 117,112,100,97,116,101,41,3,90,3,110,101,119,90,3,111, - 108,100,218,7,114,101,112,108,97,99,101,115,3,0,0,0, - 32,32,32,114,5,0,0,0,218,5,95,119,114,97,112,114, - 16,0,0,0,40,0,0,0,115,10,0,0,0,8,2,10, - 1,18,1,2,128,18,1,115,14,0,0,0,2,2,4,2, - 2,254,8,1,20,1,2,128,18,1,115,56,0,0,0,20, - 73,5,57,5,57,9,16,12,19,20,23,25,32,12,33,9, - 57,13,20,21,24,26,33,35,42,43,46,48,55,35,56,13, - 57,13,57,0,0,5,8,5,17,5,38,25,28,25,37,5, - 38,5,38,5,38,5,38,243,0,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,3,0,0, - 0,115,12,0,0,0,116,0,116,1,131,1,124,0,131,1, - 83,0,114,0,0,0,0,41,2,114,3,0,0,0,218,3, - 115,121,115,169,1,218,4,110,97,109,101,115,1,0,0,0, - 32,114,5,0,0,0,218,11,95,110,101,119,95,109,111,100, - 117,108,101,114,21,0,0,0,48,0,0,0,243,2,0,0, - 0,12,1,114,22,0,0,0,115,12,0,0,0,12,16,17, - 20,12,21,22,26,12,27,5,27,114,17,0,0,0,99,0, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, - 0,0,0,115,12,0,0,0,101,0,90,1,100,0,90,2, - 100,1,83,0,41,2,218,14,95,68,101,97,100,108,111,99, - 107,69,114,114,111,114,78,41,3,114,8,0,0,0,114,7, - 0,0,0,114,1,0,0,0,169,0,114,17,0,0,0,114, - 5,0,0,0,114,23,0,0,0,114,23,0,0,0,61,0, - 0,0,115,4,0,0,0,8,0,4,1,115,4,0,0,0, - 8,195,4,62,115,12,0,0,0,1,1,1,1,1,1,1, - 1,5,9,5,9,114,17,0,0,0,114,23,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 0,0,0,0,115,46,0,0,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,132,0,90,4,100,3,132,0,90, - 5,100,4,132,0,90,6,100,5,132,0,90,7,100,6,132, - 0,90,8,100,7,83,0,41,8,218,11,95,77,111,100,117, - 108,101,76,111,99,107,122,169,65,32,114,101,99,117,114,115, - 105,118,101,32,108,111,99,107,32,105,109,112,108,101,109,101, - 110,116,97,116,105,111,110,32,119,104,105,99,104,32,105,115, - 32,97,98,108,101,32,116,111,32,100,101,116,101,99,116,32, - 100,101,97,100,108,111,99,107,115,10,32,32,32,32,40,101, - 46,103,46,32,116,104,114,101,97,100,32,49,32,116,114,121, - 105,110,103,32,116,111,32,116,97,107,101,32,108,111,99,107, - 115,32,65,32,116,104,101,110,32,66,44,32,97,110,100,32, - 116,104,114,101,97,100,32,50,32,116,114,121,105,110,103,32, - 116,111,10,32,32,32,32,116,97,107,101,32,108,111,99,107, - 115,32,66,32,116,104,101,110,32,65,41,46,10,32,32,32, - 32,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,3,0,0,0,115,48,0,0,0,116,0,160,1,161, - 0,124,0,95,2,116,0,160,1,161,0,124,0,95,3,124, - 1,124,0,95,4,100,0,124,0,95,5,100,1,124,0,95, - 6,100,1,124,0,95,7,100,0,83,0,169,2,78,233,0, - 0,0,0,41,8,218,7,95,116,104,114,101,97,100,90,13, - 97,108,108,111,99,97,116,101,95,108,111,99,107,218,4,108, - 111,99,107,218,6,119,97,107,101,117,112,114,20,0,0,0, - 218,5,111,119,110,101,114,218,5,99,111,117,110,116,218,7, - 119,97,105,116,101,114,115,169,2,218,4,115,101,108,102,114, - 20,0,0,0,115,2,0,0,0,32,32,114,5,0,0,0, - 218,8,95,95,105,110,105,116,95,95,122,20,95,77,111,100, - 117,108,101,76,111,99,107,46,95,95,105,110,105,116,95,95, - 71,0,0,0,243,12,0,0,0,10,1,10,1,6,1,6, - 1,6,1,10,1,114,37,0,0,0,115,48,0,0,0,21, - 28,21,44,21,44,9,13,9,18,23,30,23,46,23,46,9, - 13,9,20,21,25,9,13,9,18,22,26,9,13,9,19,22, - 23,9,13,9,19,24,25,9,13,9,21,9,21,9,21,114, - 17,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,115,86,0,0,0,116,0, - 160,1,161,0,125,1,124,0,106,2,125,2,116,3,131,0, - 125,3,9,0,116,4,160,5,124,2,161,1,125,4,124,4, - 100,0,117,0,114,22,100,2,83,0,124,4,106,2,125,2, - 124,2,124,1,107,2,114,31,100,1,83,0,124,2,124,3, - 118,0,114,37,100,2,83,0,124,3,160,6,124,2,161,1, - 1,0,113,11,41,3,78,84,70,41,7,114,28,0,0,0, - 218,9,103,101,116,95,105,100,101,110,116,114,31,0,0,0, - 218,3,115,101,116,218,12,95,98,108,111,99,107,105,110,103, - 95,111,110,218,3,103,101,116,218,3,97,100,100,41,5,114, - 35,0,0,0,90,2,109,101,218,3,116,105,100,90,4,115, - 101,101,110,114,29,0,0,0,115,5,0,0,0,32,32,32, - 32,32,114,5,0,0,0,218,12,104,97,115,95,100,101,97, - 100,108,111,99,107,122,24,95,77,111,100,117,108,101,76,111, - 99,107,46,104,97,115,95,100,101,97,100,108,111,99,107,79, - 0,0,0,115,28,0,0,0,8,2,6,1,6,1,2,1, - 10,1,8,1,4,1,6,1,8,1,4,1,8,1,4,6, - 10,1,2,242,115,28,0,0,0,8,2,6,1,6,1,2, - 1,10,1,6,1,6,1,6,1,6,1,6,1,6,1,6, - 6,10,1,2,242,115,86,0,0,0,14,21,14,33,14,33, - 9,11,15,19,15,25,9,12,16,19,16,21,9,13,15,19, - 20,32,20,41,37,40,20,41,13,17,16,20,24,28,16,28, - 13,29,24,29,24,29,19,23,19,29,13,16,16,19,23,25, - 16,25,13,28,24,28,24,28,16,19,23,27,16,27,13,29, - 24,29,24,29,13,17,13,26,22,25,13,26,13,26,15,19, - 114,17,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,9,0,0,0,3,0,0,0,115,204,0,0,0,116, - 0,160,1,161,0,125,1,124,0,116,2,124,1,60,0,9, - 0,9,0,124,0,106,3,53,0,1,0,124,0,106,4,100, - 2,107,2,115,24,124,0,106,5,124,1,107,2,114,45,124, - 1,124,0,95,5,124,0,4,0,106,4,100,3,55,0,2, - 0,95,4,9,0,100,4,4,0,4,0,131,3,1,0,116, - 2,124,1,61,0,100,1,83,0,124,0,160,6,161,0,114, - 55,116,7,100,5,124,0,22,0,131,1,130,1,124,0,106, - 8,160,9,100,6,161,1,114,68,124,0,4,0,106,10,100, - 3,55,0,2,0,95,10,100,4,4,0,4,0,131,3,1, - 0,110,11,35,0,49,0,115,79,119,4,37,0,1,0,1, - 0,1,0,89,0,1,0,1,0,124,0,106,8,160,9,161, - 0,1,0,124,0,106,8,160,11,161,0,1,0,113,10,35, - 0,116,2,124,1,61,0,119,0,37,0,41,7,122,185,10, - 32,32,32,32,32,32,32,32,65,99,113,117,105,114,101,32, - 116,104,101,32,109,111,100,117,108,101,32,108,111,99,107,46, - 32,32,73,102,32,97,32,112,111,116,101,110,116,105,97,108, - 32,100,101,97,100,108,111,99,107,32,105,115,32,100,101,116, - 101,99,116,101,100,44,10,32,32,32,32,32,32,32,32,97, - 32,95,68,101,97,100,108,111,99,107,69,114,114,111,114,32, - 105,115,32,114,97,105,115,101,100,46,10,32,32,32,32,32, - 32,32,32,79,116,104,101,114,119,105,115,101,44,32,116,104, - 101,32,108,111,99,107,32,105,115,32,97,108,119,97,121,115, - 32,97,99,113,117,105,114,101,100,32,97,110,100,32,84,114, - 117,101,32,105,115,32,114,101,116,117,114,110,101,100,46,10, - 32,32,32,32,32,32,32,32,84,114,27,0,0,0,233,1, - 0,0,0,78,122,23,100,101,97,100,108,111,99,107,32,100, - 101,116,101,99,116,101,100,32,98,121,32,37,114,70,41,12, - 114,28,0,0,0,114,38,0,0,0,114,40,0,0,0,114, - 29,0,0,0,114,32,0,0,0,114,31,0,0,0,114,44, - 0,0,0,114,23,0,0,0,114,30,0,0,0,218,7,97, - 99,113,117,105,114,101,114,33,0,0,0,218,7,114,101,108, - 101,97,115,101,169,2,114,35,0,0,0,114,43,0,0,0, - 115,2,0,0,0,32,32,114,5,0,0,0,114,46,0,0, - 0,122,19,95,77,111,100,117,108,101,76,111,99,107,46,97, - 99,113,117,105,114,101,100,0,0,0,115,46,0,0,0,8, - 6,8,1,2,1,2,1,8,1,20,1,6,1,14,1,2, - 1,10,252,10,13,8,248,12,1,12,1,14,1,20,248,2, - 128,12,0,10,10,10,1,2,244,2,128,10,14,115,52,0, - 0,0,8,6,8,1,2,16,2,242,4,1,4,8,8,249, - 2,3,8,253,2,3,6,254,14,1,2,1,10,4,10,5, - 6,248,14,1,10,1,36,1,2,128,12,0,10,2,10,1, - 2,244,2,128,10,14,115,204,0,0,0,15,22,15,34,15, - 34,9,12,29,33,9,21,22,25,9,26,9,34,19,23,22, - 26,22,31,17,42,17,42,24,28,24,34,38,39,24,39,21, - 36,43,47,43,53,57,60,43,60,21,36,38,41,25,29,25, - 35,25,29,25,35,25,35,39,40,25,40,25,35,25,35,32, - 36,17,42,17,42,17,42,17,42,17,42,17,29,30,33,17, - 34,17,34,17,34,24,28,24,43,24,43,21,79,31,45,46, - 71,74,78,46,78,31,79,25,79,24,28,24,35,24,50,44, - 49,24,50,21,42,25,29,25,37,25,37,41,42,25,42,25, - 37,25,37,17,42,17,42,17,42,17,42,17,42,17,42,17, - 42,17,42,17,42,17,42,0,0,17,42,17,42,17,42,17, - 42,17,42,17,42,17,21,17,28,17,38,17,38,17,38,17, - 21,17,28,17,38,17,38,17,38,19,23,0,0,17,29,30, - 33,17,34,13,34,13,34,115,56,0,0,0,137,4,65,32, - 0,141,22,65,10,3,163,5,65,32,0,173,23,65,10,3, - 193,4,6,65,32,0,193,10,4,65,14,11,193,14,1,65, - 32,0,193,15,3,65,14,11,193,18,14,65,32,0,193,32, - 5,65,37,7,99,1,0,0,0,0,0,0,0,0,0,0, - 0,9,0,0,0,3,0,0,0,115,182,0,0,0,116,0, - 160,1,161,0,125,1,124,0,106,2,53,0,1,0,124,0, - 106,3,124,1,107,3,114,17,116,4,100,1,131,1,130,1, - 124,0,106,5,100,2,107,4,115,24,74,0,130,1,124,0, - 4,0,106,5,100,3,56,0,2,0,95,5,124,0,106,5, - 100,2,107,2,114,83,100,0,124,0,95,3,124,0,106,6, - 114,75,124,0,4,0,106,6,100,3,56,0,2,0,95,6, - 124,0,106,7,160,8,161,0,1,0,9,0,100,0,4,0, - 4,0,131,3,1,0,100,0,83,0,35,0,49,0,115,67, - 119,4,37,0,1,0,1,0,1,0,89,0,1,0,1,0, - 100,0,83,0,9,0,100,0,4,0,4,0,131,3,1,0, - 100,0,83,0,9,0,100,0,4,0,4,0,131,3,1,0, - 100,0,83,0,41,4,78,250,31,99,97,110,110,111,116,32, - 114,101,108,101,97,115,101,32,117,110,45,97,99,113,117,105, - 114,101,100,32,108,111,99,107,114,27,0,0,0,114,45,0, - 0,0,41,9,114,28,0,0,0,114,38,0,0,0,114,29, - 0,0,0,114,31,0,0,0,218,12,82,117,110,116,105,109, - 101,69,114,114,111,114,114,32,0,0,0,114,33,0,0,0, - 114,30,0,0,0,114,47,0,0,0,114,48,0,0,0,115, - 2,0,0,0,32,32,114,5,0,0,0,114,47,0,0,0, - 122,19,95,77,111,100,117,108,101,76,111,99,107,46,114,101, - 108,101,97,115,101,125,0,0,0,115,36,0,0,0,8,1, - 8,1,10,1,8,1,14,1,14,1,10,1,6,1,6,1, - 14,1,12,1,22,247,2,128,16,0,2,7,14,249,2,5, - 14,251,115,32,0,0,0,8,1,4,1,4,9,8,248,10, - 1,14,1,14,1,8,1,2,4,6,253,4,1,2,2,14, - 255,34,1,2,128,48,0,115,182,0,0,0,15,22,15,34, - 15,34,9,12,14,18,14,23,9,42,9,42,16,20,16,26, - 30,33,16,33,13,70,23,35,36,69,23,70,17,70,20,24, - 20,30,33,34,20,34,13,34,13,34,13,34,13,17,13,23, - 13,23,27,28,13,28,13,23,13,23,16,20,16,26,30,31, - 16,31,13,42,30,34,17,21,17,27,20,24,20,32,17,42, - 21,25,21,33,21,33,37,38,21,38,21,33,21,33,21,25, - 21,32,21,42,21,42,21,42,21,42,9,42,9,42,9,42, + 1,14,1,2,255,2,128,115,14,0,0,0,2,4,6,254, + 2,128,2,2,2,255,24,1,2,128,115,40,0,0,0,5, + 38,16,19,16,32,9,32,0,0,5,38,12,26,5,38,5, + 38,5,38,5,38,16,20,21,24,16,25,16,38,9,38,9, + 38,9,38,5,38,0,0,115,12,0,0,0,129,2,4,0, + 132,12,19,7,146,1,19,7,78,99,2,0,0,0,0,0, + 0,0,0,0,0,0,7,0,0,0,3,0,0,0,115,56, + 0,0,0,100,1,68,0,93,16,125,2,116,0,124,1,124, + 2,131,2,114,18,116,1,124,0,124,2,116,2,124,1,124, + 2,131,2,131,3,1,0,113,2,124,0,106,3,160,4,124, + 1,106,3,161,1,1,0,100,2,83,0,41,3,122,47,83, + 105,109,112,108,101,32,115,117,98,115,116,105,116,117,116,101, + 32,102,111,114,32,102,117,110,99,116,111,111,108,115,46,117, + 112,100,97,116,101,95,119,114,97,112,112,101,114,46,41,4, + 218,10,95,95,109,111,100,117,108,101,95,95,218,8,95,95, + 110,97,109,101,95,95,114,1,0,0,0,218,7,95,95,100, + 111,99,95,95,78,41,5,218,7,104,97,115,97,116,116,114, + 218,7,115,101,116,97,116,116,114,218,7,103,101,116,97,116, + 116,114,218,8,95,95,100,105,99,116,95,95,218,6,117,112, + 100,97,116,101,41,3,90,3,110,101,119,90,3,111,108,100, + 218,7,114,101,112,108,97,99,101,115,3,0,0,0,32,32, + 32,114,5,0,0,0,218,5,95,119,114,97,112,114,16,0, + 0,0,40,0,0,0,115,10,0,0,0,8,2,10,1,18, + 1,2,128,18,1,115,14,0,0,0,2,2,4,2,2,254, + 8,1,20,1,2,128,18,1,115,56,0,0,0,20,73,5, + 57,5,57,9,16,12,19,20,23,25,32,12,33,9,57,13, + 20,21,24,26,33,35,42,43,46,48,55,35,56,13,57,13, + 57,0,0,5,8,5,17,5,38,25,28,25,37,5,38,5, + 38,5,38,5,38,243,0,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,115, + 12,0,0,0,116,0,116,1,131,1,124,0,131,1,83,0, + 114,0,0,0,0,41,2,114,3,0,0,0,218,3,115,121, + 115,169,1,218,4,110,97,109,101,115,1,0,0,0,32,114, + 5,0,0,0,218,11,95,110,101,119,95,109,111,100,117,108, + 101,114,21,0,0,0,48,0,0,0,243,2,0,0,0,12, + 1,114,22,0,0,0,115,12,0,0,0,12,16,17,20,12, + 21,22,26,12,27,5,27,114,17,0,0,0,99,0,0,0, + 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, + 0,115,12,0,0,0,101,0,90,1,100,0,90,2,100,1, + 83,0,41,2,218,14,95,68,101,97,100,108,111,99,107,69, + 114,114,111,114,78,41,3,114,8,0,0,0,114,7,0,0, + 0,114,1,0,0,0,169,0,114,17,0,0,0,114,5,0, + 0,0,114,23,0,0,0,114,23,0,0,0,61,0,0,0, + 115,4,0,0,0,8,0,4,1,115,4,0,0,0,8,195, + 4,62,115,12,0,0,0,1,1,1,1,1,1,1,1,5, + 9,5,9,114,17,0,0,0,114,23,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,0,115,46,0,0,0,101,0,90,1,100,0,90,2,100, + 1,90,3,100,2,132,0,90,4,100,3,132,0,90,5,100, + 4,132,0,90,6,100,5,132,0,90,7,100,6,132,0,90, + 8,100,7,83,0,41,8,218,11,95,77,111,100,117,108,101, + 76,111,99,107,122,169,65,32,114,101,99,117,114,115,105,118, + 101,32,108,111,99,107,32,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,32,119,104,105,99,104,32,105,115,32,97, + 98,108,101,32,116,111,32,100,101,116,101,99,116,32,100,101, + 97,100,108,111,99,107,115,10,32,32,32,32,40,101,46,103, + 46,32,116,104,114,101,97,100,32,49,32,116,114,121,105,110, + 103,32,116,111,32,116,97,107,101,32,108,111,99,107,115,32, + 65,32,116,104,101,110,32,66,44,32,97,110,100,32,116,104, + 114,101,97,100,32,50,32,116,114,121,105,110,103,32,116,111, + 10,32,32,32,32,116,97,107,101,32,108,111,99,107,115,32, + 66,32,116,104,101,110,32,65,41,46,10,32,32,32,32,99, + 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,115,48,0,0,0,116,0,160,1,161,0,124, + 0,95,2,116,0,160,1,161,0,124,0,95,3,124,1,124, + 0,95,4,100,0,124,0,95,5,100,1,124,0,95,6,100, + 1,124,0,95,7,100,0,83,0,169,2,78,233,0,0,0, + 0,41,8,218,7,95,116,104,114,101,97,100,90,13,97,108, + 108,111,99,97,116,101,95,108,111,99,107,218,4,108,111,99, + 107,218,6,119,97,107,101,117,112,114,20,0,0,0,218,5, + 111,119,110,101,114,218,5,99,111,117,110,116,218,7,119,97, + 105,116,101,114,115,169,2,218,4,115,101,108,102,114,20,0, + 0,0,115,2,0,0,0,32,32,114,5,0,0,0,218,8, + 95,95,105,110,105,116,95,95,122,20,95,77,111,100,117,108, + 101,76,111,99,107,46,95,95,105,110,105,116,95,95,71,0, + 0,0,243,12,0,0,0,10,1,10,1,6,1,6,1,6, + 1,10,1,114,37,0,0,0,115,48,0,0,0,21,28,21, + 44,21,44,9,13,9,18,23,30,23,46,23,46,9,13,9, + 20,21,25,9,13,9,18,22,26,9,13,9,19,22,23,9, + 13,9,19,24,25,9,13,9,21,9,21,9,21,114,17,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,115,86,0,0,0,116,0,160,1, + 161,0,125,1,124,0,106,2,125,2,116,3,131,0,125,3, + 9,0,116,4,160,5,124,2,161,1,125,4,124,4,100,0, + 117,0,114,22,100,2,83,0,124,4,106,2,125,2,124,2, + 124,1,107,2,114,31,100,1,83,0,124,2,124,3,118,0, + 114,37,100,2,83,0,124,3,160,6,124,2,161,1,1,0, + 113,11,41,3,78,84,70,41,7,114,28,0,0,0,218,9, + 103,101,116,95,105,100,101,110,116,114,31,0,0,0,218,3, + 115,101,116,218,12,95,98,108,111,99,107,105,110,103,95,111, + 110,218,3,103,101,116,218,3,97,100,100,41,5,114,35,0, + 0,0,90,2,109,101,218,3,116,105,100,90,4,115,101,101, + 110,114,29,0,0,0,115,5,0,0,0,32,32,32,32,32, + 114,5,0,0,0,218,12,104,97,115,95,100,101,97,100,108, + 111,99,107,122,24,95,77,111,100,117,108,101,76,111,99,107, + 46,104,97,115,95,100,101,97,100,108,111,99,107,79,0,0, + 0,115,28,0,0,0,8,2,6,1,6,1,2,1,10,1, + 8,1,4,1,6,1,8,1,4,1,8,1,4,6,10,1, + 2,242,115,28,0,0,0,8,2,6,1,6,1,2,1,10, + 1,6,1,6,1,6,1,6,1,6,1,6,1,6,6,10, + 1,2,242,115,86,0,0,0,14,21,14,33,14,33,9,11, + 15,19,15,25,9,12,16,19,16,21,9,13,15,19,20,32, + 20,41,37,40,20,41,13,17,16,20,24,28,16,28,13,29, + 24,29,24,29,19,23,19,29,13,16,16,19,23,25,16,25, + 13,28,24,28,24,28,16,19,23,27,16,27,13,29,24,29, + 24,29,13,17,13,26,22,25,13,26,13,26,15,19,114,17, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 9,0,0,0,3,0,0,0,115,204,0,0,0,116,0,160, + 1,161,0,125,1,124,0,116,2,124,1,60,0,9,0,9, + 0,124,0,106,3,53,0,1,0,124,0,106,4,100,2,107, + 2,115,24,124,0,106,5,124,1,107,2,114,45,124,1,124, + 0,95,5,124,0,4,0,106,4,100,3,55,0,2,0,95, + 4,9,0,100,4,4,0,4,0,131,3,1,0,116,2,124, + 1,61,0,100,1,83,0,124,0,160,6,161,0,114,55,116, + 7,100,5,124,0,22,0,131,1,130,1,124,0,106,8,160, + 9,100,6,161,1,114,68,124,0,4,0,106,10,100,3,55, + 0,2,0,95,10,100,4,4,0,4,0,131,3,1,0,110, + 11,35,0,49,0,115,79,119,4,37,0,1,0,1,0,1, + 0,89,0,1,0,1,0,124,0,106,8,160,9,161,0,1, + 0,124,0,106,8,160,11,161,0,1,0,113,10,35,0,116, + 2,124,1,61,0,119,0,37,0,41,7,122,185,10,32,32, + 32,32,32,32,32,32,65,99,113,117,105,114,101,32,116,104, + 101,32,109,111,100,117,108,101,32,108,111,99,107,46,32,32, + 73,102,32,97,32,112,111,116,101,110,116,105,97,108,32,100, + 101,97,100,108,111,99,107,32,105,115,32,100,101,116,101,99, + 116,101,100,44,10,32,32,32,32,32,32,32,32,97,32,95, + 68,101,97,100,108,111,99,107,69,114,114,111,114,32,105,115, + 32,114,97,105,115,101,100,46,10,32,32,32,32,32,32,32, + 32,79,116,104,101,114,119,105,115,101,44,32,116,104,101,32, + 108,111,99,107,32,105,115,32,97,108,119,97,121,115,32,97, + 99,113,117,105,114,101,100,32,97,110,100,32,84,114,117,101, + 32,105,115,32,114,101,116,117,114,110,101,100,46,10,32,32, + 32,32,32,32,32,32,84,114,27,0,0,0,233,1,0,0, + 0,78,122,23,100,101,97,100,108,111,99,107,32,100,101,116, + 101,99,116,101,100,32,98,121,32,37,114,70,41,12,114,28, + 0,0,0,114,38,0,0,0,114,40,0,0,0,114,29,0, + 0,0,114,32,0,0,0,114,31,0,0,0,114,44,0,0, + 0,114,23,0,0,0,114,30,0,0,0,218,7,97,99,113, + 117,105,114,101,114,33,0,0,0,218,7,114,101,108,101,97, + 115,101,169,2,114,35,0,0,0,114,43,0,0,0,115,2, + 0,0,0,32,32,114,5,0,0,0,114,46,0,0,0,122, + 19,95,77,111,100,117,108,101,76,111,99,107,46,97,99,113, + 117,105,114,101,100,0,0,0,115,46,0,0,0,8,6,8, + 1,2,1,2,1,8,1,20,1,6,1,14,1,2,1,10, + 252,10,13,8,248,12,1,12,1,14,1,20,248,2,128,12, + 0,10,10,10,1,2,244,2,128,10,14,115,52,0,0,0, + 8,6,8,1,2,16,2,242,4,1,4,8,8,249,2,3, + 8,253,2,3,6,254,14,1,2,1,10,4,10,5,6,248, + 14,1,10,1,36,1,2,128,12,0,10,2,10,1,2,244, + 2,128,10,14,115,204,0,0,0,15,22,15,34,15,34,9, + 12,29,33,9,21,22,25,9,26,9,34,19,23,22,26,22, + 31,17,42,17,42,24,28,24,34,38,39,24,39,21,36,43, + 47,43,53,57,60,43,60,21,36,38,41,25,29,25,35,25, + 29,25,35,25,35,39,40,25,40,25,35,25,35,32,36,17, + 42,17,42,17,42,17,42,17,42,17,29,30,33,17,34,17, + 34,17,34,24,28,24,43,24,43,21,79,31,45,46,71,74, + 78,46,78,31,79,25,79,24,28,24,35,24,50,44,49,24, + 50,21,42,25,29,25,37,25,37,41,42,25,42,25,37,25, + 37,17,42,17,42,17,42,17,42,17,42,17,42,17,42,17, + 42,17,42,17,42,0,0,17,42,17,42,17,42,17,42,17, + 42,17,42,17,21,17,28,17,38,17,38,17,38,17,21,17, + 28,17,38,17,38,17,38,19,23,0,0,17,29,30,33,17, + 34,13,34,13,34,115,56,0,0,0,137,4,65,32,0,141, + 22,65,10,3,163,5,65,32,0,173,23,65,10,3,193,4, + 6,65,32,0,193,10,4,65,14,11,193,14,1,65,32,0, + 193,15,3,65,14,11,193,18,14,65,32,0,193,32,5,65, + 37,7,99,1,0,0,0,0,0,0,0,0,0,0,0,9, + 0,0,0,3,0,0,0,115,182,0,0,0,116,0,160,1, + 161,0,125,1,124,0,106,2,53,0,1,0,124,0,106,3, + 124,1,107,3,114,17,116,4,100,1,131,1,130,1,124,0, + 106,5,100,2,107,4,115,24,74,0,130,1,124,0,4,0, + 106,5,100,3,56,0,2,0,95,5,124,0,106,5,100,2, + 107,2,114,62,100,0,124,0,95,3,124,0,106,6,114,70, + 124,0,4,0,106,6,100,3,56,0,2,0,95,6,124,0, + 106,7,160,8,161,0,1,0,9,0,100,0,4,0,4,0, + 131,3,1,0,100,0,83,0,9,0,100,0,4,0,4,0, + 131,3,1,0,100,0,83,0,9,0,100,0,4,0,4,0, + 131,3,1,0,100,0,83,0,35,0,49,0,115,83,119,4, + 37,0,1,0,1,0,1,0,89,0,1,0,1,0,100,0, + 83,0,41,4,78,250,31,99,97,110,110,111,116,32,114,101, + 108,101,97,115,101,32,117,110,45,97,99,113,117,105,114,101, + 100,32,108,111,99,107,114,27,0,0,0,114,45,0,0,0, + 41,9,114,28,0,0,0,114,38,0,0,0,114,29,0,0, + 0,114,31,0,0,0,218,12,82,117,110,116,105,109,101,69, + 114,114,111,114,114,32,0,0,0,114,33,0,0,0,114,30, + 0,0,0,114,47,0,0,0,114,48,0,0,0,115,2,0, + 0,0,32,32,114,5,0,0,0,114,47,0,0,0,122,19, + 95,77,111,100,117,108,101,76,111,99,107,46,114,101,108,101, + 97,115,101,125,0,0,0,115,36,0,0,0,8,1,8,1, + 10,1,8,1,14,1,14,1,10,1,6,1,6,1,14,1, + 12,1,14,247,2,5,14,251,2,7,22,249,2,128,16,0, + 115,32,0,0,0,8,1,4,1,4,9,8,248,10,1,14, + 1,14,1,8,1,2,4,6,253,4,1,2,2,14,255,66, + 1,2,128,16,0,115,182,0,0,0,15,22,15,34,15,34, + 9,12,14,18,14,23,9,42,9,42,16,20,16,26,30,33, + 16,33,13,70,23,35,36,69,23,70,17,70,20,24,20,30, + 33,34,20,34,13,34,13,34,13,34,13,17,13,23,13,23, + 27,28,13,28,13,23,13,23,16,20,16,26,30,31,16,31, + 13,42,30,34,17,21,17,27,20,24,20,32,17,42,21,25, + 21,33,21,33,37,38,21,38,21,33,21,33,21,25,21,32, + 21,42,21,42,21,42,21,42,9,42,9,42,9,42,9,42, + 9,42,9,42,9,42,13,42,9,42,9,42,9,42,9,42, + 9,42,9,42,9,42,17,42,9,42,9,42,9,42,9,42, + 9,42,9,42,9,42,9,42,9,42,9,42,9,42,0,0, 9,42,9,42,9,42,9,42,9,42,9,42,9,42,9,42, - 0,0,9,42,9,42,9,42,9,42,9,42,9,42,9,42, - 9,42,17,42,9,42,9,42,9,42,9,42,9,42,9,42, - 9,42,13,42,9,42,9,42,9,42,9,42,9,42,9,42, - 9,42,115,15,0,0,0,135,47,62,3,190,4,65,2,11, - 193,3,3,65,2,11,99,1,0,0,0,0,0,0,0,0, + 115,17,0,0,0,135,47,65,14,3,193,14,4,65,18,11, + 193,19,3,65,18,11,99,1,0,0,0,0,0,0,0,0, 0,0,0,5,0,0,0,3,0,0,0,243,18,0,0,0, 100,1,160,0,124,0,106,1,116,2,124,0,131,1,161,2, 83,0,41,2,78,122,23,95,77,111,100,117,108,101,76,111, @@ -400,15 +400,15 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 5,29,5,29,114,17,0,0,0,114,61,0,0,0,99,1, 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3, 0,0,0,115,152,0,0,0,116,0,160,1,161,0,1,0, - 9,0,9,0,116,2,124,0,25,0,131,0,125,1,110,12, - 35,0,4,0,116,3,121,75,1,0,1,0,1,0,100,1, - 125,1,89,0,110,1,37,0,124,1,100,1,117,0,114,68, - 116,4,100,1,117,0,114,37,116,5,124,0,131,1,125,1, - 110,4,116,6,124,0,131,1,125,1,124,0,102,1,100,2, - 132,1,125,2,116,7,160,8,124,1,124,2,161,2,116,2, - 124,0,60,0,9,0,116,0,160,9,161,0,1,0,124,1, + 9,0,9,0,116,2,124,0,25,0,131,0,125,1,110,13, + 35,0,4,0,116,3,121,23,1,0,1,0,1,0,100,1, + 125,1,89,0,110,2,119,0,37,0,124,1,100,1,117,0, + 114,62,116,4,100,1,117,0,114,38,116,5,124,0,131,1, + 125,1,110,4,116,6,124,0,131,1,125,1,124,0,102,1, + 100,2,132,1,125,2,116,7,160,8,124,1,124,2,161,2, + 116,2,124,0,60,0,9,0,116,0,160,9,161,0,1,0, + 124,1,83,0,9,0,116,0,160,9,161,0,1,0,124,1, 83,0,35,0,116,0,160,9,161,0,1,0,119,0,37,0, - 9,0,116,0,160,9,161,0,1,0,124,1,83,0,119,0, 41,3,122,139,71,101,116,32,111,114,32,99,114,101,97,116, 101,32,116,104,101,32,109,111,100,117,108,101,32,108,111,99, 107,32,102,111,114,32,97,32,103,105,118,101,110,32,109,111, @@ -421,10 +421,10 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,0, 0,19,0,0,0,115,72,0,0,0,116,0,160,1,161,0, 1,0,9,0,116,2,160,3,124,1,161,1,124,0,117,0, - 114,29,116,2,124,1,61,0,9,0,116,0,160,4,161,0, - 1,0,100,0,83,0,35,0,116,0,160,4,161,0,1,0, - 119,0,37,0,9,0,116,0,160,4,161,0,1,0,100,0, - 83,0,114,0,0,0,0,41,5,218,4,95,105,109,112,218, + 114,22,116,2,124,1,61,0,9,0,116,0,160,4,161,0, + 1,0,100,0,83,0,9,0,116,0,160,4,161,0,1,0, + 100,0,83,0,35,0,116,0,160,4,161,0,1,0,119,0, + 37,0,114,0,0,0,0,41,5,218,4,95,105,109,112,218, 12,97,99,113,117,105,114,101,95,108,111,99,107,218,13,95, 109,111,100,117,108,101,95,108,111,99,107,115,114,41,0,0, 0,218,12,114,101,108,101,97,115,101,95,108,111,99,107,41, @@ -432,15 +432,15 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 32,32,114,5,0,0,0,218,2,99,98,122,28,95,103,101, 116,95,109,111,100,117,108,101,95,108,111,99,107,46,60,108, 111,99,97,108,115,62,46,99,98,198,0,0,0,115,20,0, - 0,0,8,1,2,1,14,4,8,1,12,2,2,128,10,0, - 2,128,2,253,12,3,115,20,0,0,0,8,1,2,8,12, - 253,10,1,12,2,2,128,10,0,2,128,2,254,12,2,115, + 0,0,8,1,2,1,14,4,8,1,12,2,2,253,12,3, + 2,128,10,0,2,128,115,20,0,0,0,8,1,2,8,12, + 253,10,1,12,2,2,254,12,2,2,128,10,0,2,128,115, 72,0,0,0,17,21,17,36,17,36,17,36,17,40,24,37, 24,47,42,46,24,47,51,54,24,54,21,48,29,42,43,47, 29,48,29,48,21,25,21,40,21,40,21,40,21,40,21,40, - 0,0,21,25,21,40,21,40,21,40,21,40,0,0,21,48, - 21,25,21,40,21,40,21,40,21,40,21,40,115,8,0,0, - 0,133,10,22,0,150,6,28,7,41,10,114,70,0,0,0, + 21,48,21,25,21,40,21,40,21,40,21,40,21,40,0,0, + 21,25,21,40,21,40,21,40,21,40,0,0,115,8,0,0, + 0,133,10,29,0,157,6,35,7,41,10,114,70,0,0,0, 114,71,0,0,0,114,72,0,0,0,218,8,75,101,121,69, 114,114,111,114,114,28,0,0,0,114,58,0,0,0,114,25, 0,0,0,218,8,95,119,101,97,107,114,101,102,114,74,0, @@ -448,2130 +448,2127 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,114,75,0,0,0,115,3,0,0,0,32,32,32, 114,5,0,0,0,114,64,0,0,0,114,64,0,0,0,179, 0,0,0,115,46,0,0,0,8,6,2,1,2,1,12,1, - 2,128,12,1,8,1,2,128,8,2,8,1,10,1,8,2, - 10,2,18,11,8,2,4,2,2,128,10,254,2,128,2,237, - 8,19,4,2,2,232,115,54,0,0,0,8,6,2,26,2, - 235,12,254,2,128,2,2,2,255,16,1,2,128,6,2,2, + 2,128,12,1,8,1,2,255,2,128,8,3,8,1,10,1, + 8,2,10,2,18,11,8,2,4,2,2,235,8,19,4,2, + 2,128,10,254,2,128,115,52,0,0,0,8,6,2,26,2, + 235,12,254,2,128,2,2,2,255,18,1,2,128,6,2,2, 17,6,240,2,3,10,254,8,2,2,2,8,9,18,2,8, - 2,4,2,2,128,10,254,2,128,2,254,8,2,4,2,2, - 233,115,152,0,0,0,5,9,5,24,5,24,5,24,5,28, - 9,24,20,33,34,38,20,39,20,41,13,17,13,17,0,0, - 9,24,16,24,9,24,9,24,9,24,9,24,20,24,13,17, - 13,17,13,17,0,0,12,16,20,24,12,24,9,57,16,23, + 2,4,2,2,252,8,2,4,2,2,128,10,254,2,128,115, + 152,0,0,0,5,9,5,24,5,24,5,24,5,28,9,24, + 20,33,34,38,20,39,20,41,13,17,13,17,0,0,9,24, + 16,24,9,24,9,24,9,24,9,24,20,24,13,17,13,17, + 13,17,9,24,0,0,12,16,20,24,12,24,9,57,16,23, 27,31,16,31,13,41,24,40,41,45,24,46,17,21,17,21, 24,35,36,40,24,41,17,21,30,34,13,40,13,40,13,40, 13,40,35,43,35,57,48,52,54,56,35,57,13,26,27,31, 13,32,13,32,9,13,9,28,9,28,9,28,12,16,5,16, - 0,0,9,13,9,28,9,28,9,28,9,28,0,0,9,57, - 9,13,9,28,9,28,9,28,12,16,5,16,9,24,115,26, - 0,0,0,134,5,12,0,139,1,61,0,140,9,23,7,149, - 33,61,0,189,6,65,3,7,193,11,1,23,7,99,1,0, - 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, - 0,0,115,56,0,0,0,116,0,124,0,131,1,125,1,9, - 0,124,1,160,1,161,0,1,0,110,11,35,0,4,0,116, - 2,121,27,1,0,1,0,1,0,89,0,100,1,83,0,37, - 0,124,1,160,3,161,0,1,0,100,1,83,0,119,0,41, - 2,122,189,65,99,113,117,105,114,101,115,32,116,104,101,110, - 32,114,101,108,101,97,115,101,115,32,116,104,101,32,109,111, - 100,117,108,101,32,108,111,99,107,32,102,111,114,32,97,32, - 103,105,118,101,110,32,109,111,100,117,108,101,32,110,97,109, - 101,46,10,10,32,32,32,32,84,104,105,115,32,105,115,32, - 117,115,101,100,32,116,111,32,101,110,115,117,114,101,32,97, - 32,109,111,100,117,108,101,32,105,115,32,99,111,109,112,108, - 101,116,101,108,121,32,105,110,105,116,105,97,108,105,122,101, - 100,44,32,105,110,32,116,104,101,10,32,32,32,32,101,118, - 101,110,116,32,105,116,32,105,115,32,98,101,105,110,103,32, - 105,109,112,111,114,116,101,100,32,98,121,32,97,110,111,116, - 104,101,114,32,116,104,114,101,97,100,46,10,32,32,32,32, - 78,41,4,114,64,0,0,0,114,46,0,0,0,114,23,0, - 0,0,114,47,0,0,0,41,2,114,20,0,0,0,114,29, - 0,0,0,115,2,0,0,0,32,32,114,5,0,0,0,218, - 19,95,108,111,99,107,95,117,110,108,111,99,107,95,109,111, - 100,117,108,101,114,78,0,0,0,216,0,0,0,115,18,0, - 0,0,8,6,2,1,10,1,2,128,12,1,6,3,2,128, - 12,2,2,251,115,20,0,0,0,8,6,2,8,10,250,2, - 128,2,4,2,253,14,3,2,128,12,2,2,254,115,56,0, - 0,0,12,28,29,33,12,34,5,9,5,23,9,13,9,23, - 9,23,9,23,9,23,0,0,5,13,12,26,5,13,5,13, - 5,13,5,13,9,13,9,13,9,13,0,0,9,13,9,23, - 9,23,9,23,9,23,9,23,5,13,115,12,0,0,0,133, - 4,10,0,138,7,20,7,155,1,20,7,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,15,0,0,0, - 115,14,0,0,0,124,0,124,1,105,0,124,2,164,1,142, - 1,83,0,41,2,97,46,1,0,0,114,101,109,111,118,101, - 95,105,109,112,111,114,116,108,105,98,95,102,114,97,109,101, - 115,32,105,110,32,105,109,112,111,114,116,46,99,32,119,105, - 108,108,32,97,108,119,97,121,115,32,114,101,109,111,118,101, - 32,115,101,113,117,101,110,99,101,115,10,32,32,32,32,111, - 102,32,105,109,112,111,114,116,108,105,98,32,102,114,97,109, - 101,115,32,116,104,97,116,32,101,110,100,32,119,105,116,104, - 32,97,32,99,97,108,108,32,116,111,32,116,104,105,115,32, - 102,117,110,99,116,105,111,110,10,10,32,32,32,32,85,115, - 101,32,105,116,32,105,110,115,116,101,97,100,32,111,102,32, - 97,32,110,111,114,109,97,108,32,99,97,108,108,32,105,110, - 32,112,108,97,99,101,115,32,119,104,101,114,101,32,105,110, - 99,108,117,100,105,110,103,32,116,104,101,32,105,109,112,111, - 114,116,108,105,98,10,32,32,32,32,102,114,97,109,101,115, - 32,105,110,116,114,111,100,117,99,101,115,32,117,110,119,97, - 110,116,101,100,32,110,111,105,115,101,32,105,110,116,111,32, - 116,104,101,32,116,114,97,99,101,98,97,99,107,32,40,101, - 46,103,46,32,119,104,101,110,32,101,120,101,99,117,116,105, - 110,103,10,32,32,32,32,109,111,100,117,108,101,32,99,111, - 100,101,41,10,32,32,32,32,78,114,24,0,0,0,41,3, - 218,1,102,114,67,0,0,0,90,4,107,119,100,115,115,3, - 0,0,0,32,32,32,114,5,0,0,0,218,25,95,99,97, - 108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,114, - 101,109,111,118,101,100,114,80,0,0,0,233,0,0,0,243, - 2,0,0,0,14,8,114,81,0,0,0,115,14,0,0,0, - 12,13,15,19,12,28,23,27,12,28,12,28,5,28,114,17, - 0,0,0,114,45,0,0,0,41,1,218,9,118,101,114,98, - 111,115,105,116,121,99,1,0,0,0,0,0,0,0,1,0, - 0,0,4,0,0,0,7,0,0,0,115,58,0,0,0,116, - 0,106,1,106,2,124,1,107,5,114,27,124,0,160,3,100, - 1,161,1,115,15,100,2,124,0,23,0,125,0,116,4,124, - 0,106,5,124,2,142,0,116,0,106,6,100,3,141,2,1, - 0,100,4,83,0,100,4,83,0,41,5,122,61,80,114,105, - 110,116,32,116,104,101,32,109,101,115,115,97,103,101,32,116, - 111,32,115,116,100,101,114,114,32,105,102,32,45,118,47,80, - 89,84,72,79,78,86,69,82,66,79,83,69,32,105,115,32, - 116,117,114,110,101,100,32,111,110,46,41,2,250,1,35,122, - 7,105,109,112,111,114,116,32,122,2,35,32,41,1,90,4, - 102,105,108,101,78,41,7,114,18,0,0,0,218,5,102,108, - 97,103,115,218,7,118,101,114,98,111,115,101,218,10,115,116, - 97,114,116,115,119,105,116,104,218,5,112,114,105,110,116,114, - 53,0,0,0,218,6,115,116,100,101,114,114,41,3,218,7, - 109,101,115,115,97,103,101,114,82,0,0,0,114,67,0,0, - 0,115,3,0,0,0,32,32,32,114,5,0,0,0,218,16, - 95,118,101,114,98,111,115,101,95,109,101,115,115,97,103,101, - 114,90,0,0,0,244,0,0,0,115,10,0,0,0,12,2, - 10,1,8,1,24,1,4,253,115,10,0,0,0,10,2,2, - 3,8,254,10,1,28,1,115,58,0,0,0,8,11,8,17, - 8,25,29,38,8,38,5,54,16,23,16,52,35,51,16,52, - 9,37,23,27,30,37,23,37,13,20,9,14,15,22,15,29, - 31,35,15,36,43,46,43,53,9,54,9,54,9,54,9,54, - 9,54,5,54,5,54,114,17,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,26,0,0,0,135,0,136,0,102,1,100,1,132,8,125, - 1,116,0,124,1,137,0,131,2,1,0,124,1,83,0,41, - 3,122,49,68,101,99,111,114,97,116,111,114,32,116,111,32, - 118,101,114,105,102,121,32,116,104,101,32,110,97,109,101,100, - 32,109,111,100,117,108,101,32,105,115,32,98,117,105,108,116, - 45,105,110,46,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,19,0,0,0,115,38,0,0,0,124,1, - 116,0,106,1,118,1,114,14,116,2,100,1,160,3,124,1, - 161,1,124,1,100,2,141,2,130,1,137,2,124,0,124,1, - 131,2,83,0,41,3,78,250,29,123,33,114,125,32,105,115, - 32,110,111,116,32,97,32,98,117,105,108,116,45,105,110,32, - 109,111,100,117,108,101,114,19,0,0,0,41,4,114,18,0, - 0,0,218,20,98,117,105,108,116,105,110,95,109,111,100,117, - 108,101,95,110,97,109,101,115,218,11,73,109,112,111,114,116, - 69,114,114,111,114,114,53,0,0,0,169,3,114,35,0,0, - 0,218,8,102,117,108,108,110,97,109,101,218,3,102,120,110, - 115,3,0,0,0,32,32,128,114,5,0,0,0,218,25,95, - 114,101,113,117,105,114,101,115,95,98,117,105,108,116,105,110, - 95,119,114,97,112,112,101,114,122,52,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,46,60,108,111,99, - 97,108,115,62,46,95,114,101,113,117,105,114,101,115,95,98, - 117,105,108,116,105,110,95,119,114,97,112,112,101,114,254,0, - 0,0,243,10,0,0,0,10,1,10,1,2,1,6,255,10, - 2,243,10,0,0,0,8,1,2,2,10,255,8,1,10,1, - 115,38,0,0,0,12,20,28,31,28,52,12,52,9,45,19, - 30,31,62,31,79,70,78,31,79,36,44,19,45,19,45,13, - 45,16,19,20,24,26,34,16,35,9,35,114,17,0,0,0, - 78,169,1,114,16,0,0,0,41,2,114,97,0,0,0,114, - 98,0,0,0,115,2,0,0,0,96,32,114,5,0,0,0, - 218,17,95,114,101,113,117,105,114,101,115,95,98,117,105,108, - 116,105,110,114,102,0,0,0,252,0,0,0,243,8,0,0, - 0,2,128,10,2,10,5,4,1,243,8,0,0,0,2,128, - 10,6,10,1,4,1,115,26,0,0,0,0,0,5,35,5, - 35,5,35,5,35,5,35,5,10,11,36,38,41,5,42,5, - 42,12,37,5,37,114,17,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,114, - 91,0,0,0,41,3,122,47,68,101,99,111,114,97,116,111, - 114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,32, - 110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,32, - 102,114,111,122,101,110,46,99,2,0,0,0,0,0,0,0, + 9,57,9,13,9,28,9,28,9,28,12,16,5,16,0,0, + 9,13,9,28,9,28,9,28,9,28,0,0,115,33,0,0, + 0,134,5,12,0,139,1,65,5,0,140,9,24,7,149,2, + 65,5,0,151,1,24,7,152,31,65,5,0,193,5,6,65, + 11,7,99,1,0,0,0,0,0,0,0,0,0,0,0,8, + 0,0,0,3,0,0,0,115,56,0,0,0,116,0,124,0, + 131,1,125,1,9,0,124,1,160,1,161,0,1,0,110,12, + 35,0,4,0,116,2,121,20,1,0,1,0,1,0,89,0, + 100,1,83,0,119,0,37,0,124,1,160,3,161,0,1,0, + 100,1,83,0,41,2,122,189,65,99,113,117,105,114,101,115, + 32,116,104,101,110,32,114,101,108,101,97,115,101,115,32,116, + 104,101,32,109,111,100,117,108,101,32,108,111,99,107,32,102, + 111,114,32,97,32,103,105,118,101,110,32,109,111,100,117,108, + 101,32,110,97,109,101,46,10,10,32,32,32,32,84,104,105, + 115,32,105,115,32,117,115,101,100,32,116,111,32,101,110,115, + 117,114,101,32,97,32,109,111,100,117,108,101,32,105,115,32, + 99,111,109,112,108,101,116,101,108,121,32,105,110,105,116,105, + 97,108,105,122,101,100,44,32,105,110,32,116,104,101,10,32, + 32,32,32,101,118,101,110,116,32,105,116,32,105,115,32,98, + 101,105,110,103,32,105,109,112,111,114,116,101,100,32,98,121, + 32,97,110,111,116,104,101,114,32,116,104,114,101,97,100,46, + 10,32,32,32,32,78,41,4,114,64,0,0,0,114,46,0, + 0,0,114,23,0,0,0,114,47,0,0,0,41,2,114,20, + 0,0,0,114,29,0,0,0,115,2,0,0,0,32,32,114, + 5,0,0,0,218,19,95,108,111,99,107,95,117,110,108,111, + 99,107,95,109,111,100,117,108,101,114,78,0,0,0,216,0, + 0,0,115,18,0,0,0,8,6,2,1,10,1,2,128,12, + 1,6,3,2,253,2,128,12,5,115,18,0,0,0,8,6, + 2,8,10,250,2,128,2,4,2,253,16,3,2,128,12,2, + 115,56,0,0,0,12,28,29,33,12,34,5,9,5,23,9, + 13,9,23,9,23,9,23,9,23,0,0,5,13,12,26,5, + 13,5,13,5,13,5,13,9,13,9,13,9,13,5,13,0, + 0,9,13,9,23,9,23,9,23,9,23,9,23,115,12,0, + 0,0,133,4,10,0,138,7,21,7,148,1,21,7,99,1, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,15, + 0,0,0,115,14,0,0,0,124,0,124,1,105,0,124,2, + 164,1,142,1,83,0,41,2,97,46,1,0,0,114,101,109, + 111,118,101,95,105,109,112,111,114,116,108,105,98,95,102,114, + 97,109,101,115,32,105,110,32,105,109,112,111,114,116,46,99, + 32,119,105,108,108,32,97,108,119,97,121,115,32,114,101,109, + 111,118,101,32,115,101,113,117,101,110,99,101,115,10,32,32, + 32,32,111,102,32,105,109,112,111,114,116,108,105,98,32,102, + 114,97,109,101,115,32,116,104,97,116,32,101,110,100,32,119, + 105,116,104,32,97,32,99,97,108,108,32,116,111,32,116,104, + 105,115,32,102,117,110,99,116,105,111,110,10,10,32,32,32, + 32,85,115,101,32,105,116,32,105,110,115,116,101,97,100,32, + 111,102,32,97,32,110,111,114,109,97,108,32,99,97,108,108, + 32,105,110,32,112,108,97,99,101,115,32,119,104,101,114,101, + 32,105,110,99,108,117,100,105,110,103,32,116,104,101,32,105, + 109,112,111,114,116,108,105,98,10,32,32,32,32,102,114,97, + 109,101,115,32,105,110,116,114,111,100,117,99,101,115,32,117, + 110,119,97,110,116,101,100,32,110,111,105,115,101,32,105,110, + 116,111,32,116,104,101,32,116,114,97,99,101,98,97,99,107, + 32,40,101,46,103,46,32,119,104,101,110,32,101,120,101,99, + 117,116,105,110,103,10,32,32,32,32,109,111,100,117,108,101, + 32,99,111,100,101,41,10,32,32,32,32,78,114,24,0,0, + 0,41,3,218,1,102,114,67,0,0,0,90,4,107,119,100, + 115,115,3,0,0,0,32,32,32,114,5,0,0,0,218,25, + 95,99,97,108,108,95,119,105,116,104,95,102,114,97,109,101, + 115,95,114,101,109,111,118,101,100,114,80,0,0,0,233,0, + 0,0,243,2,0,0,0,14,8,114,81,0,0,0,115,14, + 0,0,0,12,13,15,19,12,28,23,27,12,28,12,28,5, + 28,114,17,0,0,0,114,45,0,0,0,41,1,218,9,118, + 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0, + 0,1,0,0,0,4,0,0,0,7,0,0,0,115,58,0, + 0,0,116,0,106,1,106,2,124,1,107,5,114,27,124,0, + 160,3,100,1,161,1,115,15,100,2,124,0,23,0,125,0, + 116,4,124,0,106,5,124,2,142,0,116,0,106,6,100,3, + 141,2,1,0,100,4,83,0,100,4,83,0,41,5,122,61, + 80,114,105,110,116,32,116,104,101,32,109,101,115,115,97,103, + 101,32,116,111,32,115,116,100,101,114,114,32,105,102,32,45, + 118,47,80,89,84,72,79,78,86,69,82,66,79,83,69,32, + 105,115,32,116,117,114,110,101,100,32,111,110,46,41,2,250, + 1,35,122,7,105,109,112,111,114,116,32,122,2,35,32,41, + 1,90,4,102,105,108,101,78,41,7,114,18,0,0,0,218, + 5,102,108,97,103,115,218,7,118,101,114,98,111,115,101,218, + 10,115,116,97,114,116,115,119,105,116,104,218,5,112,114,105, + 110,116,114,53,0,0,0,218,6,115,116,100,101,114,114,41, + 3,218,7,109,101,115,115,97,103,101,114,82,0,0,0,114, + 67,0,0,0,115,3,0,0,0,32,32,32,114,5,0,0, + 0,218,16,95,118,101,114,98,111,115,101,95,109,101,115,115, + 97,103,101,114,90,0,0,0,244,0,0,0,115,10,0,0, + 0,12,2,10,1,8,1,24,1,4,253,115,10,0,0,0, + 10,2,2,3,8,254,10,1,28,1,115,58,0,0,0,8, + 11,8,17,8,25,29,38,8,38,5,54,16,23,16,52,35, + 51,16,52,9,37,23,27,30,37,23,37,13,20,9,14,15, + 22,15,29,31,35,15,36,43,46,43,53,9,54,9,54,9, + 54,9,54,9,54,5,54,5,54,114,17,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,243,26,0,0,0,135,0,136,0,102,1,100,1, + 132,8,125,1,116,0,124,1,137,0,131,2,1,0,124,1, + 83,0,41,3,122,49,68,101,99,111,114,97,116,111,114,32, + 116,111,32,118,101,114,105,102,121,32,116,104,101,32,110,97, + 109,101,100,32,109,111,100,117,108,101,32,105,115,32,98,117, + 105,108,116,45,105,110,46,99,2,0,0,0,0,0,0,0, 0,0,0,0,4,0,0,0,19,0,0,0,115,38,0,0, - 0,116,0,160,1,124,1,161,1,115,14,116,2,100,1,160, + 0,124,1,116,0,106,1,118,1,114,14,116,2,100,1,160, 3,124,1,161,1,124,1,100,2,141,2,130,1,137,2,124, - 0,124,1,131,2,83,0,169,3,78,122,27,123,33,114,125, - 32,105,115,32,110,111,116,32,97,32,102,114,111,122,101,110, - 32,109,111,100,117,108,101,114,19,0,0,0,41,4,114,70, - 0,0,0,218,9,105,115,95,102,114,111,122,101,110,114,94, - 0,0,0,114,53,0,0,0,114,95,0,0,0,115,3,0, - 0,0,32,32,128,114,5,0,0,0,218,24,95,114,101,113, - 117,105,114,101,115,95,102,114,111,122,101,110,95,119,114,97, - 112,112,101,114,122,50,95,114,101,113,117,105,114,101,115,95, - 102,114,111,122,101,110,46,60,108,111,99,97,108,115,62,46, - 95,114,101,113,117,105,114,101,115,95,102,114,111,122,101,110, - 95,119,114,97,112,112,101,114,9,1,0,0,114,99,0,0, - 0,114,100,0,0,0,115,38,0,0,0,16,20,16,40,31, - 39,16,40,9,45,19,30,31,60,31,77,68,76,31,77,36, - 44,19,45,19,45,13,45,16,19,20,24,26,34,16,35,9, - 35,114,17,0,0,0,78,114,101,0,0,0,41,2,114,97, - 0,0,0,114,107,0,0,0,115,2,0,0,0,96,32,114, - 5,0,0,0,218,16,95,114,101,113,117,105,114,101,115,95, - 102,114,111,122,101,110,114,108,0,0,0,7,1,0,0,114, - 103,0,0,0,114,104,0,0,0,115,26,0,0,0,0,0, - 5,35,5,35,5,35,5,35,5,35,5,10,11,35,37,40, - 5,41,5,41,12,36,5,36,114,17,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,115,74,0,0,0,100,1,125,2,116,0,160,1,124, - 2,116,2,161,2,1,0,116,3,124,1,124,0,131,2,125, - 3,124,1,116,4,106,5,118,0,114,33,116,4,106,5,124, - 1,25,0,125,4,116,6,124,3,124,4,131,2,1,0,116, - 4,106,5,124,1,25,0,83,0,116,7,124,3,131,1,83, - 0,41,3,122,130,76,111,97,100,32,116,104,101,32,115,112, - 101,99,105,102,105,101,100,32,109,111,100,117,108,101,32,105, - 110,116,111,32,115,121,115,46,109,111,100,117,108,101,115,32, - 97,110,100,32,114,101,116,117,114,110,32,105,116,46,10,10, - 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,108,111,97,100,101,114,46,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,122,103,116,104,101,32,108,111,97, - 100,95,109,111,100,117,108,101,40,41,32,109,101,116,104,111, - 100,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32, - 97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114, - 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110, - 32,51,46,49,50,59,32,117,115,101,32,101,120,101,99,95, - 109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,100, - 78,41,8,218,9,95,119,97,114,110,105,110,103,115,218,4, - 119,97,114,110,218,18,68,101,112,114,101,99,97,116,105,111, - 110,87,97,114,110,105,110,103,218,16,115,112,101,99,95,102, - 114,111,109,95,108,111,97,100,101,114,114,18,0,0,0,218, - 7,109,111,100,117,108,101,115,218,5,95,101,120,101,99,218, - 5,95,108,111,97,100,41,5,114,35,0,0,0,114,96,0, - 0,0,218,3,109,115,103,218,4,115,112,101,99,218,6,109, - 111,100,117,108,101,115,5,0,0,0,32,32,32,32,32,114, - 5,0,0,0,218,17,95,108,111,97,100,95,109,111,100,117, - 108,101,95,115,104,105,109,114,119,0,0,0,19,1,0,0, - 115,16,0,0,0,4,6,12,2,10,1,10,1,10,1,10, - 1,10,1,8,2,115,20,0,0,0,2,7,2,255,12,2, - 10,1,8,1,2,5,10,252,10,1,10,1,8,2,115,74, - 0,0,0,12,51,5,8,5,14,5,44,20,23,25,43,5, - 44,5,44,12,28,29,37,39,43,12,44,5,9,8,16,20, - 23,20,31,8,31,5,27,18,21,18,29,30,38,18,39,9, - 15,9,14,15,19,21,27,9,28,9,28,16,19,16,27,28, - 36,16,37,9,37,16,21,22,26,16,27,9,27,114,17,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,8, - 0,0,0,3,0,0,0,115,194,0,0,0,116,0,124,0, - 100,1,100,2,131,3,125,1,116,0,124,0,100,3,100,2, - 131,3,4,0,125,2,114,18,116,1,124,2,131,1,83,0, - 116,2,124,1,100,4,131,2,114,39,9,0,124,1,160,3, - 124,0,161,1,83,0,35,0,4,0,116,4,121,96,1,0, - 1,0,1,0,89,0,110,1,37,0,9,0,124,0,106,5, - 125,3,110,12,35,0,4,0,116,6,121,95,1,0,1,0, - 1,0,100,5,125,3,89,0,110,1,37,0,9,0,124,0, - 106,7,125,4,110,27,35,0,4,0,116,6,121,94,1,0, - 1,0,1,0,124,1,100,2,117,0,114,79,100,6,160,8, - 124,3,161,1,6,0,89,0,83,0,100,7,160,8,124,3, - 124,1,161,2,6,0,89,0,83,0,37,0,100,8,160,8, - 124,3,124,4,161,2,83,0,119,0,119,0,119,0,41,9, - 122,44,84,104,101,32,105,109,112,108,101,109,101,110,116,97, - 116,105,111,110,32,111,102,32,77,111,100,117,108,101,84,121, - 112,101,46,95,95,114,101,112,114,95,95,40,41,46,218,10, - 95,95,108,111,97,100,101,114,95,95,78,218,8,95,95,115, - 112,101,99,95,95,218,11,109,111,100,117,108,101,95,114,101, - 112,114,250,1,63,250,13,60,109,111,100,117,108,101,32,123, - 33,114,125,62,250,20,60,109,111,100,117,108,101,32,123,33, - 114,125,32,40,123,33,114,125,41,62,250,23,60,109,111,100, - 117,108,101,32,123,33,114,125,32,102,114,111,109,32,123,33, - 114,125,62,41,9,114,12,0,0,0,218,22,95,109,111,100, - 117,108,101,95,114,101,112,114,95,102,114,111,109,95,115,112, - 101,99,114,10,0,0,0,114,122,0,0,0,218,9,69,120, - 99,101,112,116,105,111,110,114,8,0,0,0,114,2,0,0, - 0,218,8,95,95,102,105,108,101,95,95,114,53,0,0,0, - 41,5,114,118,0,0,0,218,6,108,111,97,100,101,114,114, - 117,0,0,0,114,20,0,0,0,218,8,102,105,108,101,110, - 97,109,101,115,5,0,0,0,32,32,32,32,32,114,5,0, - 0,0,218,12,95,109,111,100,117,108,101,95,114,101,112,114, - 114,132,0,0,0,38,1,0,0,115,56,0,0,0,12,2, - 16,1,8,1,10,1,2,1,10,1,2,128,12,1,4,1, - 2,128,2,2,8,1,2,128,12,1,8,1,2,128,2,1, - 8,1,2,128,12,1,8,1,14,1,16,2,2,128,12,2, - 2,250,2,252,2,251,115,68,0,0,0,12,2,14,1,2, - 6,8,251,8,1,4,4,10,254,2,128,2,2,2,255,12, - 1,2,128,2,5,8,254,2,128,2,2,2,255,16,1,2, - 128,2,9,8,249,2,128,2,5,2,252,8,4,6,253,2, - 3,14,254,16,2,2,128,12,2,2,254,2,249,2,251,115, - 194,0,0,0,14,21,22,28,30,42,44,48,14,49,5,11, - 16,23,24,30,32,42,44,48,16,49,8,49,8,12,5,17, - 16,38,39,43,16,44,9,44,10,17,18,24,26,39,10,40, - 5,17,9,17,20,26,20,46,39,45,20,46,13,46,0,0, - 9,17,16,25,9,17,9,17,9,17,9,17,13,17,13,17, - 0,0,5,19,16,22,16,31,9,13,9,13,0,0,5,19, - 12,26,5,19,5,19,5,19,5,19,16,19,9,13,9,13, - 9,13,0,0,5,64,20,26,20,35,9,17,9,17,0,0, - 5,63,12,26,5,63,5,63,5,63,5,63,12,18,22,26, - 12,26,9,63,20,35,20,48,43,47,20,48,13,48,13,48, - 13,48,20,42,20,63,50,54,56,62,20,63,13,63,13,63, - 13,63,0,0,16,41,16,64,49,53,55,63,16,64,9,64, - 5,63,5,19,9,17,115,47,0,0,0,152,4,29,0,157, - 7,38,7,168,3,44,0,172,9,55,7,185,3,61,0,189, - 16,65,23,7,193,15,6,65,23,7,193,30,1,65,23,7, - 193,31,1,55,7,193,32,1,38,7,99,0,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,115, - 98,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,100,2,100,2,100,3,156,3,100,4,132,2,90,4, - 100,5,132,0,90,5,100,6,132,0,90,6,101,7,100,7, - 132,0,131,1,90,8,101,8,106,9,100,8,132,0,131,1, - 90,8,101,7,100,9,132,0,131,1,90,10,101,7,100,10, - 132,0,131,1,90,11,101,11,106,9,100,11,132,0,131,1, - 90,11,100,2,83,0,41,12,218,10,77,111,100,117,108,101, - 83,112,101,99,97,208,5,0,0,84,104,101,32,115,112,101, - 99,105,102,105,99,97,116,105,111,110,32,102,111,114,32,97, - 32,109,111,100,117,108,101,44,32,117,115,101,100,32,102,111, - 114,32,108,111,97,100,105,110,103,46,10,10,32,32,32,32, - 65,32,109,111,100,117,108,101,39,115,32,115,112,101,99,32, - 105,115,32,116,104,101,32,115,111,117,114,99,101,32,102,111, - 114,32,105,110,102,111,114,109,97,116,105,111,110,32,97,98, - 111,117,116,32,116,104,101,32,109,111,100,117,108,101,46,32, - 32,70,111,114,10,32,32,32,32,100,97,116,97,32,97,115, - 115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104, - 101,32,109,111,100,117,108,101,44,32,105,110,99,108,117,100, - 105,110,103,32,115,111,117,114,99,101,44,32,117,115,101,32, - 116,104,101,32,115,112,101,99,39,115,10,32,32,32,32,108, - 111,97,100,101,114,46,10,10,32,32,32,32,96,110,97,109, - 101,96,32,105,115,32,116,104,101,32,97,98,115,111,108,117, - 116,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109, - 111,100,117,108,101,46,32,32,96,108,111,97,100,101,114,96, - 32,105,115,32,116,104,101,32,108,111,97,100,101,114,10,32, - 32,32,32,116,111,32,117,115,101,32,119,104,101,110,32,108, - 111,97,100,105,110,103,32,116,104,101,32,109,111,100,117,108, - 101,46,32,32,96,112,97,114,101,110,116,96,32,105,115,32, - 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,10, - 32,32,32,32,112,97,99,107,97,103,101,32,116,104,101,32, - 109,111,100,117,108,101,32,105,115,32,105,110,46,32,32,84, - 104,101,32,112,97,114,101,110,116,32,105,115,32,100,101,114, - 105,118,101,100,32,102,114,111,109,32,116,104,101,32,110,97, - 109,101,46,10,10,32,32,32,32,96,105,115,95,112,97,99, - 107,97,103,101,96,32,100,101,116,101,114,109,105,110,101,115, - 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,105, - 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,112, - 97,99,107,97,103,101,32,111,114,10,32,32,32,32,110,111, - 116,46,32,32,79,110,32,109,111,100,117,108,101,115,32,116, - 104,105,115,32,105,115,32,114,101,102,108,101,99,116,101,100, - 32,98,121,32,116,104,101,32,96,95,95,112,97,116,104,95, - 95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,32, - 32,32,32,96,111,114,105,103,105,110,96,32,105,115,32,116, - 104,101,32,115,112,101,99,105,102,105,99,32,108,111,99,97, - 116,105,111,110,32,117,115,101,100,32,98,121,32,116,104,101, - 32,108,111,97,100,101,114,32,102,114,111,109,32,119,104,105, - 99,104,32,116,111,10,32,32,32,32,108,111,97,100,32,116, - 104,101,32,109,111,100,117,108,101,44,32,105,102,32,116,104, - 97,116,32,105,110,102,111,114,109,97,116,105,111,110,32,105, - 115,32,97,118,97,105,108,97,98,108,101,46,32,32,87,104, - 101,110,32,102,105,108,101,110,97,109,101,32,105,115,10,32, - 32,32,32,115,101,116,44,32,111,114,105,103,105,110,32,119, - 105,108,108,32,109,97,116,99,104,46,10,10,32,32,32,32, - 96,104,97,115,95,108,111,99,97,116,105,111,110,96,32,105, - 110,100,105,99,97,116,101,115,32,116,104,97,116,32,97,32, - 115,112,101,99,39,115,32,34,111,114,105,103,105,110,34,32, - 114,101,102,108,101,99,116,115,32,97,32,108,111,99,97,116, - 105,111,110,46,10,32,32,32,32,87,104,101,110,32,116,104, - 105,115,32,105,115,32,84,114,117,101,44,32,96,95,95,102, - 105,108,101,95,95,96,32,97,116,116,114,105,98,117,116,101, - 32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,105, - 115,32,115,101,116,46,10,10,32,32,32,32,96,99,97,99, - 104,101,100,96,32,105,115,32,116,104,101,32,108,111,99,97, - 116,105,111,110,32,111,102,32,116,104,101,32,99,97,99,104, - 101,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, - 44,32,105,102,32,97,110,121,46,32,32,73,116,10,32,32, - 32,32,99,111,114,114,101,115,112,111,110,100,115,32,116,111, - 32,116,104,101,32,96,95,95,99,97,99,104,101,100,95,95, - 96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,32, - 32,32,96,115,117,98,109,111,100,117,108,101,95,115,101,97, - 114,99,104,95,108,111,99,97,116,105,111,110,115,96,32,105, - 115,32,116,104,101,32,115,101,113,117,101,110,99,101,32,111, - 102,32,112,97,116,104,32,101,110,116,114,105,101,115,32,116, - 111,10,32,32,32,32,115,101,97,114,99,104,32,119,104,101, - 110,32,105,109,112,111,114,116,105,110,103,32,115,117,98,109, - 111,100,117,108,101,115,46,32,32,73,102,32,115,101,116,44, - 32,105,115,95,112,97,99,107,97,103,101,32,115,104,111,117, - 108,100,32,98,101,10,32,32,32,32,84,114,117,101,45,45, - 97,110,100,32,70,97,108,115,101,32,111,116,104,101,114,119, - 105,115,101,46,10,10,32,32,32,32,80,97,99,107,97,103, - 101,115,32,97,114,101,32,115,105,109,112,108,121,32,109,111, - 100,117,108,101,115,32,116,104,97,116,32,40,109,97,121,41, - 32,104,97,118,101,32,115,117,98,109,111,100,117,108,101,115, - 46,32,32,73,102,32,97,32,115,112,101,99,10,32,32,32, - 32,104,97,115,32,97,32,110,111,110,45,78,111,110,101,32, - 118,97,108,117,101,32,105,110,32,96,115,117,98,109,111,100, - 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, - 105,111,110,115,96,44,32,116,104,101,32,105,109,112,111,114, - 116,10,32,32,32,32,115,121,115,116,101,109,32,119,105,108, - 108,32,99,111,110,115,105,100,101,114,32,109,111,100,117,108, - 101,115,32,108,111,97,100,101,100,32,102,114,111,109,32,116, - 104,101,32,115,112,101,99,32,97,115,32,112,97,99,107,97, - 103,101,115,46,10,10,32,32,32,32,79,110,108,121,32,102, - 105,110,100,101,114,115,32,40,115,101,101,32,105,109,112,111, - 114,116,108,105,98,46,97,98,99,46,77,101,116,97,80,97, - 116,104,70,105,110,100,101,114,32,97,110,100,10,32,32,32, - 32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,80, - 97,116,104,69,110,116,114,121,70,105,110,100,101,114,41,32, - 115,104,111,117,108,100,32,109,111,100,105,102,121,32,77,111, - 100,117,108,101,83,112,101,99,32,105,110,115,116,97,110,99, - 101,115,46,10,10,32,32,32,32,78,41,3,218,6,111,114, - 105,103,105,110,218,12,108,111,97,100,101,114,95,115,116,97, - 116,101,218,10,105,115,95,112,97,99,107,97,103,101,99,3, - 0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3, - 0,0,0,115,60,0,0,0,124,1,124,0,95,0,124,2, - 124,0,95,1,124,3,124,0,95,2,124,4,124,0,95,3, - 124,5,114,16,103,0,110,1,100,0,124,0,95,4,103,0, - 124,0,95,5,100,1,124,0,95,6,100,0,124,0,95,7, - 100,0,83,0,41,2,78,70,41,8,114,20,0,0,0,114, - 130,0,0,0,114,134,0,0,0,114,135,0,0,0,218,26, + 0,124,1,131,2,83,0,41,3,78,250,29,123,33,114,125, + 32,105,115,32,110,111,116,32,97,32,98,117,105,108,116,45, + 105,110,32,109,111,100,117,108,101,114,19,0,0,0,41,4, + 114,18,0,0,0,218,20,98,117,105,108,116,105,110,95,109, + 111,100,117,108,101,95,110,97,109,101,115,218,11,73,109,112, + 111,114,116,69,114,114,111,114,114,53,0,0,0,169,3,114, + 35,0,0,0,218,8,102,117,108,108,110,97,109,101,218,3, + 102,120,110,115,3,0,0,0,32,32,128,114,5,0,0,0, + 218,25,95,114,101,113,117,105,114,101,115,95,98,117,105,108, + 116,105,110,95,119,114,97,112,112,101,114,122,52,95,114,101, + 113,117,105,114,101,115,95,98,117,105,108,116,105,110,46,60, + 108,111,99,97,108,115,62,46,95,114,101,113,117,105,114,101, + 115,95,98,117,105,108,116,105,110,95,119,114,97,112,112,101, + 114,254,0,0,0,243,10,0,0,0,10,1,10,1,2,1, + 6,255,10,2,243,10,0,0,0,8,1,2,2,10,255,8, + 1,10,1,115,38,0,0,0,12,20,28,31,28,52,12,52, + 9,45,19,30,31,62,31,79,70,78,31,79,36,44,19,45, + 19,45,13,45,16,19,20,24,26,34,16,35,9,35,114,17, + 0,0,0,78,169,1,114,16,0,0,0,41,2,114,97,0, + 0,0,114,98,0,0,0,115,2,0,0,0,96,32,114,5, + 0,0,0,218,17,95,114,101,113,117,105,114,101,115,95,98, + 117,105,108,116,105,110,114,102,0,0,0,252,0,0,0,243, + 8,0,0,0,2,128,10,2,10,5,4,1,243,8,0,0, + 0,2,128,10,6,10,1,4,1,115,26,0,0,0,0,0, + 5,35,5,35,5,35,5,35,5,35,5,10,11,36,38,41, + 5,42,5,42,12,37,5,37,114,17,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,114,91,0,0,0,41,3,122,47,68,101,99,111,114, + 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116, + 104,101,32,110,97,109,101,100,32,109,111,100,117,108,101,32, + 105,115,32,102,114,111,122,101,110,46,99,2,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,19,0,0,0,115, + 38,0,0,0,116,0,160,1,124,1,161,1,115,14,116,2, + 100,1,160,3,124,1,161,1,124,1,100,2,141,2,130,1, + 137,2,124,0,124,1,131,2,83,0,169,3,78,122,27,123, + 33,114,125,32,105,115,32,110,111,116,32,97,32,102,114,111, + 122,101,110,32,109,111,100,117,108,101,114,19,0,0,0,41, + 4,114,70,0,0,0,218,9,105,115,95,102,114,111,122,101, + 110,114,94,0,0,0,114,53,0,0,0,114,95,0,0,0, + 115,3,0,0,0,32,32,128,114,5,0,0,0,218,24,95, + 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,95, + 119,114,97,112,112,101,114,122,50,95,114,101,113,117,105,114, + 101,115,95,102,114,111,122,101,110,46,60,108,111,99,97,108, + 115,62,46,95,114,101,113,117,105,114,101,115,95,102,114,111, + 122,101,110,95,119,114,97,112,112,101,114,9,1,0,0,114, + 99,0,0,0,114,100,0,0,0,115,38,0,0,0,16,20, + 16,40,31,39,16,40,9,45,19,30,31,60,31,77,68,76, + 31,77,36,44,19,45,19,45,13,45,16,19,20,24,26,34, + 16,35,9,35,114,17,0,0,0,78,114,101,0,0,0,41, + 2,114,97,0,0,0,114,107,0,0,0,115,2,0,0,0, + 96,32,114,5,0,0,0,218,16,95,114,101,113,117,105,114, + 101,115,95,102,114,111,122,101,110,114,108,0,0,0,7,1, + 0,0,114,103,0,0,0,114,104,0,0,0,115,26,0,0, + 0,0,0,5,35,5,35,5,35,5,35,5,35,5,10,11, + 35,37,40,5,41,5,41,12,36,5,36,114,17,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,115,74,0,0,0,100,1,125,2,116,0, + 160,1,124,2,116,2,161,2,1,0,116,3,124,1,124,0, + 131,2,125,3,124,1,116,4,106,5,118,0,114,33,116,4, + 106,5,124,1,25,0,125,4,116,6,124,3,124,4,131,2, + 1,0,116,4,106,5,124,1,25,0,83,0,116,7,124,3, + 131,1,83,0,41,3,122,130,76,111,97,100,32,116,104,101, + 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108, + 101,32,105,110,116,111,32,115,121,115,46,109,111,100,117,108, + 101,115,32,97,110,100,32,114,101,116,117,114,110,32,105,116, + 46,10,10,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,108,111,97,100,101,114,46,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,122,103,116,104,101,32, + 108,111,97,100,95,109,111,100,117,108,101,40,41,32,109,101, + 116,104,111,100,32,105,115,32,100,101,112,114,101,99,97,116, + 101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111, + 114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116, + 104,111,110,32,51,46,49,50,59,32,117,115,101,32,101,120, + 101,99,95,109,111,100,117,108,101,40,41,32,105,110,115,116, + 101,97,100,78,41,8,218,9,95,119,97,114,110,105,110,103, + 115,218,4,119,97,114,110,218,18,68,101,112,114,101,99,97, + 116,105,111,110,87,97,114,110,105,110,103,218,16,115,112,101, + 99,95,102,114,111,109,95,108,111,97,100,101,114,114,18,0, + 0,0,218,7,109,111,100,117,108,101,115,218,5,95,101,120, + 101,99,218,5,95,108,111,97,100,41,5,114,35,0,0,0, + 114,96,0,0,0,218,3,109,115,103,218,4,115,112,101,99, + 218,6,109,111,100,117,108,101,115,5,0,0,0,32,32,32, + 32,32,114,5,0,0,0,218,17,95,108,111,97,100,95,109, + 111,100,117,108,101,95,115,104,105,109,114,119,0,0,0,19, + 1,0,0,115,16,0,0,0,4,6,12,2,10,1,10,1, + 10,1,10,1,10,1,8,2,115,20,0,0,0,2,7,2, + 255,12,2,10,1,8,1,2,5,10,252,10,1,10,1,8, + 2,115,74,0,0,0,12,51,5,8,5,14,5,44,20,23, + 25,43,5,44,5,44,12,28,29,37,39,43,12,44,5,9, + 8,16,20,23,20,31,8,31,5,27,18,21,18,29,30,38, + 18,39,9,15,9,14,15,19,21,27,9,28,9,28,16,19, + 16,27,28,36,16,37,9,37,16,21,22,26,16,27,9,27, + 114,17,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,8,0,0,0,3,0,0,0,115,194,0,0,0,116, + 0,124,0,100,1,100,2,131,3,125,1,116,0,124,0,100, + 3,100,2,131,3,4,0,125,2,114,18,116,1,124,2,131, + 1,83,0,116,2,124,1,100,4,131,2,114,40,9,0,124, + 1,160,3,124,0,161,1,83,0,35,0,4,0,116,4,121, + 38,1,0,1,0,1,0,89,0,110,2,119,0,37,0,9, + 0,124,0,106,5,125,3,110,13,35,0,4,0,116,6,121, + 56,1,0,1,0,1,0,100,5,125,3,89,0,110,2,119, + 0,37,0,9,0,124,0,106,7,125,4,110,28,35,0,4, + 0,116,6,121,89,1,0,1,0,1,0,124,1,100,2,117, + 0,114,81,100,6,160,8,124,3,161,1,6,0,89,0,83, + 0,100,7,160,8,124,3,124,1,161,2,6,0,89,0,83, + 0,119,0,37,0,100,8,160,8,124,3,124,4,161,2,83, + 0,41,9,122,44,84,104,101,32,105,109,112,108,101,109,101, + 110,116,97,116,105,111,110,32,111,102,32,77,111,100,117,108, + 101,84,121,112,101,46,95,95,114,101,112,114,95,95,40,41, + 46,218,10,95,95,108,111,97,100,101,114,95,95,78,218,8, + 95,95,115,112,101,99,95,95,218,11,109,111,100,117,108,101, + 95,114,101,112,114,250,1,63,250,13,60,109,111,100,117,108, + 101,32,123,33,114,125,62,250,20,60,109,111,100,117,108,101, + 32,123,33,114,125,32,40,123,33,114,125,41,62,250,23,60, + 109,111,100,117,108,101,32,123,33,114,125,32,102,114,111,109, + 32,123,33,114,125,62,41,9,114,12,0,0,0,218,22,95, + 109,111,100,117,108,101,95,114,101,112,114,95,102,114,111,109, + 95,115,112,101,99,114,10,0,0,0,114,122,0,0,0,218, + 9,69,120,99,101,112,116,105,111,110,114,8,0,0,0,114, + 2,0,0,0,218,8,95,95,102,105,108,101,95,95,114,53, + 0,0,0,41,5,114,118,0,0,0,218,6,108,111,97,100, + 101,114,114,117,0,0,0,114,20,0,0,0,218,8,102,105, + 108,101,110,97,109,101,115,5,0,0,0,32,32,32,32,32, + 114,5,0,0,0,218,12,95,109,111,100,117,108,101,95,114, + 101,112,114,114,132,0,0,0,38,1,0,0,115,56,0,0, + 0,12,2,16,1,8,1,10,1,2,1,10,1,2,128,12, + 1,4,1,2,255,2,128,2,3,8,1,2,128,12,1,8, + 1,2,255,2,128,2,2,8,1,2,128,12,1,8,1,14, + 1,16,2,2,252,2,128,12,6,115,62,0,0,0,12,2, + 14,1,2,6,8,251,8,1,4,4,10,254,2,128,2,2, + 2,255,14,1,2,128,2,5,8,254,2,128,2,2,2,255, + 18,1,2,128,2,9,8,249,2,128,2,5,2,252,8,4, + 6,253,2,3,14,254,18,2,2,128,12,2,115,194,0,0, + 0,14,21,22,28,30,42,44,48,14,49,5,11,16,23,24, + 30,32,42,44,48,16,49,8,49,8,12,5,17,16,38,39, + 43,16,44,9,44,10,17,18,24,26,39,10,40,5,17,9, + 17,20,26,20,46,39,45,20,46,13,46,0,0,9,17,16, + 25,9,17,9,17,9,17,9,17,13,17,13,17,9,17,0, + 0,5,19,16,22,16,31,9,13,9,13,0,0,5,19,12, + 26,5,19,5,19,5,19,5,19,16,19,9,13,9,13,9, + 13,5,19,0,0,5,64,20,26,20,35,9,17,9,17,0, + 0,5,63,12,26,5,63,5,63,5,63,5,63,12,18,22, + 26,12,26,9,63,20,35,20,48,43,47,20,48,13,48,13, + 48,13,48,20,42,20,63,50,54,56,62,20,63,13,63,13, + 63,13,63,5,63,0,0,16,41,16,64,49,53,55,63,16, + 64,9,64,115,45,0,0,0,152,4,29,0,157,7,39,7, + 166,1,39,7,169,3,45,0,173,9,57,7,184,1,57,7, + 187,3,63,0,191,16,65,26,7,193,17,6,65,26,7,193, + 25,1,65,26,7,99,0,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,0,0,0,0,115,98,0,0,0,101, + 0,90,1,100,0,90,2,100,1,90,3,100,2,100,2,100, + 2,100,3,156,3,100,4,132,2,90,4,100,5,132,0,90, + 5,100,6,132,0,90,6,101,7,100,7,132,0,131,1,90, + 8,101,8,106,9,100,8,132,0,131,1,90,8,101,7,100, + 9,132,0,131,1,90,10,101,7,100,10,132,0,131,1,90, + 11,101,11,106,9,100,11,132,0,131,1,90,11,100,2,83, + 0,41,12,218,10,77,111,100,117,108,101,83,112,101,99,97, + 208,5,0,0,84,104,101,32,115,112,101,99,105,102,105,99, + 97,116,105,111,110,32,102,111,114,32,97,32,109,111,100,117, + 108,101,44,32,117,115,101,100,32,102,111,114,32,108,111,97, + 100,105,110,103,46,10,10,32,32,32,32,65,32,109,111,100, + 117,108,101,39,115,32,115,112,101,99,32,105,115,32,116,104, + 101,32,115,111,117,114,99,101,32,102,111,114,32,105,110,102, + 111,114,109,97,116,105,111,110,32,97,98,111,117,116,32,116, + 104,101,32,109,111,100,117,108,101,46,32,32,70,111,114,10, + 32,32,32,32,100,97,116,97,32,97,115,115,111,99,105,97, + 116,101,100,32,119,105,116,104,32,116,104,101,32,109,111,100, + 117,108,101,44,32,105,110,99,108,117,100,105,110,103,32,115, + 111,117,114,99,101,44,32,117,115,101,32,116,104,101,32,115, + 112,101,99,39,115,10,32,32,32,32,108,111,97,100,101,114, + 46,10,10,32,32,32,32,96,110,97,109,101,96,32,105,115, + 32,116,104,101,32,97,98,115,111,108,117,116,101,32,110,97, + 109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101, + 46,32,32,96,108,111,97,100,101,114,96,32,105,115,32,116, + 104,101,32,108,111,97,100,101,114,10,32,32,32,32,116,111, + 32,117,115,101,32,119,104,101,110,32,108,111,97,100,105,110, + 103,32,116,104,101,32,109,111,100,117,108,101,46,32,32,96, + 112,97,114,101,110,116,96,32,105,115,32,116,104,101,32,110, + 97,109,101,32,111,102,32,116,104,101,10,32,32,32,32,112, + 97,99,107,97,103,101,32,116,104,101,32,109,111,100,117,108, + 101,32,105,115,32,105,110,46,32,32,84,104,101,32,112,97, + 114,101,110,116,32,105,115,32,100,101,114,105,118,101,100,32, + 102,114,111,109,32,116,104,101,32,110,97,109,101,46,10,10, + 32,32,32,32,96,105,115,95,112,97,99,107,97,103,101,96, + 32,100,101,116,101,114,109,105,110,101,115,32,105,102,32,116, + 104,101,32,109,111,100,117,108,101,32,105,115,32,99,111,110, + 115,105,100,101,114,101,100,32,97,32,112,97,99,107,97,103, + 101,32,111,114,10,32,32,32,32,110,111,116,46,32,32,79, + 110,32,109,111,100,117,108,101,115,32,116,104,105,115,32,105, + 115,32,114,101,102,108,101,99,116,101,100,32,98,121,32,116, + 104,101,32,96,95,95,112,97,116,104,95,95,96,32,97,116, + 116,114,105,98,117,116,101,46,10,10,32,32,32,32,96,111, + 114,105,103,105,110,96,32,105,115,32,116,104,101,32,115,112, + 101,99,105,102,105,99,32,108,111,99,97,116,105,111,110,32, + 117,115,101,100,32,98,121,32,116,104,101,32,108,111,97,100, + 101,114,32,102,114,111,109,32,119,104,105,99,104,32,116,111, + 10,32,32,32,32,108,111,97,100,32,116,104,101,32,109,111, + 100,117,108,101,44,32,105,102,32,116,104,97,116,32,105,110, + 102,111,114,109,97,116,105,111,110,32,105,115,32,97,118,97, + 105,108,97,98,108,101,46,32,32,87,104,101,110,32,102,105, + 108,101,110,97,109,101,32,105,115,10,32,32,32,32,115,101, + 116,44,32,111,114,105,103,105,110,32,119,105,108,108,32,109, + 97,116,99,104,46,10,10,32,32,32,32,96,104,97,115,95, + 108,111,99,97,116,105,111,110,96,32,105,110,100,105,99,97, + 116,101,115,32,116,104,97,116,32,97,32,115,112,101,99,39, + 115,32,34,111,114,105,103,105,110,34,32,114,101,102,108,101, + 99,116,115,32,97,32,108,111,99,97,116,105,111,110,46,10, + 32,32,32,32,87,104,101,110,32,116,104,105,115,32,105,115, + 32,84,114,117,101,44,32,96,95,95,102,105,108,101,95,95, + 96,32,97,116,116,114,105,98,117,116,101,32,111,102,32,116, + 104,101,32,109,111,100,117,108,101,32,105,115,32,115,101,116, + 46,10,10,32,32,32,32,96,99,97,99,104,101,100,96,32, + 105,115,32,116,104,101,32,108,111,99,97,116,105,111,110,32, + 111,102,32,116,104,101,32,99,97,99,104,101,100,32,98,121, + 116,101,99,111,100,101,32,102,105,108,101,44,32,105,102,32, + 97,110,121,46,32,32,73,116,10,32,32,32,32,99,111,114, + 114,101,115,112,111,110,100,115,32,116,111,32,116,104,101,32, + 96,95,95,99,97,99,104,101,100,95,95,96,32,97,116,116, + 114,105,98,117,116,101,46,10,10,32,32,32,32,96,115,117, + 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, + 111,99,97,116,105,111,110,115,96,32,105,115,32,116,104,101, + 32,115,101,113,117,101,110,99,101,32,111,102,32,112,97,116, + 104,32,101,110,116,114,105,101,115,32,116,111,10,32,32,32, + 32,115,101,97,114,99,104,32,119,104,101,110,32,105,109,112, + 111,114,116,105,110,103,32,115,117,98,109,111,100,117,108,101, + 115,46,32,32,73,102,32,115,101,116,44,32,105,115,95,112, + 97,99,107,97,103,101,32,115,104,111,117,108,100,32,98,101, + 10,32,32,32,32,84,114,117,101,45,45,97,110,100,32,70, + 97,108,115,101,32,111,116,104,101,114,119,105,115,101,46,10, + 10,32,32,32,32,80,97,99,107,97,103,101,115,32,97,114, + 101,32,115,105,109,112,108,121,32,109,111,100,117,108,101,115, + 32,116,104,97,116,32,40,109,97,121,41,32,104,97,118,101, + 32,115,117,98,109,111,100,117,108,101,115,46,32,32,73,102, + 32,97,32,115,112,101,99,10,32,32,32,32,104,97,115,32, + 97,32,110,111,110,45,78,111,110,101,32,118,97,108,117,101, + 32,105,110,32,96,115,117,98,109,111,100,117,108,101,95,115, + 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,96, + 44,32,116,104,101,32,105,109,112,111,114,116,10,32,32,32, + 32,115,121,115,116,101,109,32,119,105,108,108,32,99,111,110, + 115,105,100,101,114,32,109,111,100,117,108,101,115,32,108,111, + 97,100,101,100,32,102,114,111,109,32,116,104,101,32,115,112, + 101,99,32,97,115,32,112,97,99,107,97,103,101,115,46,10, + 10,32,32,32,32,79,110,108,121,32,102,105,110,100,101,114, + 115,32,40,115,101,101,32,105,109,112,111,114,116,108,105,98, + 46,97,98,99,46,77,101,116,97,80,97,116,104,70,105,110, + 100,101,114,32,97,110,100,10,32,32,32,32,105,109,112,111, + 114,116,108,105,98,46,97,98,99,46,80,97,116,104,69,110, + 116,114,121,70,105,110,100,101,114,41,32,115,104,111,117,108, + 100,32,109,111,100,105,102,121,32,77,111,100,117,108,101,83, + 112,101,99,32,105,110,115,116,97,110,99,101,115,46,10,10, + 32,32,32,32,78,41,3,218,6,111,114,105,103,105,110,218, + 12,108,111,97,100,101,114,95,115,116,97,116,101,218,10,105, + 115,95,112,97,99,107,97,103,101,99,3,0,0,0,0,0, + 0,0,3,0,0,0,2,0,0,0,3,0,0,0,115,60, + 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,124, + 3,124,0,95,2,124,4,124,0,95,3,124,5,114,16,103, + 0,110,1,100,0,124,0,95,4,103,0,124,0,95,5,100, + 1,124,0,95,6,100,0,124,0,95,7,100,0,83,0,41, + 2,78,70,41,8,114,20,0,0,0,114,130,0,0,0,114, + 134,0,0,0,114,135,0,0,0,218,26,115,117,98,109,111, + 100,117,108,101,95,115,101,97,114,99,104,95,108,111,99,97, + 116,105,111,110,115,218,25,95,117,110,105,110,105,116,105,97, + 108,105,122,101,100,95,115,117,98,109,111,100,117,108,101,115, + 218,13,95,115,101,116,95,102,105,108,101,97,116,116,114,218, + 7,95,99,97,99,104,101,100,41,6,114,35,0,0,0,114, + 20,0,0,0,114,130,0,0,0,114,134,0,0,0,114,135, + 0,0,0,114,136,0,0,0,115,6,0,0,0,32,32,32, + 32,32,32,114,5,0,0,0,114,36,0,0,0,122,19,77, + 111,100,117,108,101,83,112,101,99,46,95,95,105,110,105,116, + 95,95,101,1,0,0,243,16,0,0,0,6,2,6,1,6, + 1,6,1,14,1,6,1,6,3,10,1,114,141,0,0,0, + 115,60,0,0,0,21,25,9,13,9,18,23,29,9,13,9, + 20,23,29,9,13,9,20,29,41,9,13,9,26,49,59,43, + 69,43,45,43,45,65,69,9,13,9,40,42,44,9,13,9, + 39,30,35,9,13,9,27,24,28,9,13,9,21,9,21,9, + 21,114,17,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,6,0,0,0,3,0,0,0,115,102,0,0,0, + 100,1,160,0,124,0,106,1,161,1,100,2,160,0,124,0, + 106,2,161,1,103,2,125,1,124,0,106,3,100,0,117,1, + 114,26,124,1,160,4,100,3,160,0,124,0,106,3,161,1, + 161,1,1,0,124,0,106,5,100,0,117,1,114,40,124,1, + 160,4,100,4,160,0,124,0,106,5,161,1,161,1,1,0, + 100,5,160,0,124,0,106,6,106,7,100,6,160,8,124,1, + 161,1,161,2,83,0,41,7,78,122,9,110,97,109,101,61, + 123,33,114,125,122,11,108,111,97,100,101,114,61,123,33,114, + 125,122,11,111,114,105,103,105,110,61,123,33,114,125,122,29, 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104, - 95,108,111,99,97,116,105,111,110,115,218,25,95,117,110,105, - 110,105,116,105,97,108,105,122,101,100,95,115,117,98,109,111, - 100,117,108,101,115,218,13,95,115,101,116,95,102,105,108,101, - 97,116,116,114,218,7,95,99,97,99,104,101,100,41,6,114, - 35,0,0,0,114,20,0,0,0,114,130,0,0,0,114,134, - 0,0,0,114,135,0,0,0,114,136,0,0,0,115,6,0, - 0,0,32,32,32,32,32,32,114,5,0,0,0,114,36,0, - 0,0,122,19,77,111,100,117,108,101,83,112,101,99,46,95, - 95,105,110,105,116,95,95,101,1,0,0,243,16,0,0,0, - 6,2,6,1,6,1,6,1,14,1,6,1,6,3,10,1, - 114,141,0,0,0,115,60,0,0,0,21,25,9,13,9,18, - 23,29,9,13,9,20,23,29,9,13,9,20,29,41,9,13, - 9,26,49,59,43,69,43,45,43,45,65,69,9,13,9,40, - 42,44,9,13,9,39,30,35,9,13,9,27,24,28,9,13, - 9,21,9,21,9,21,114,17,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,6,0,0,0,3,0,0,0, - 115,102,0,0,0,100,1,160,0,124,0,106,1,161,1,100, - 2,160,0,124,0,106,2,161,1,103,2,125,1,124,0,106, - 3,100,0,117,1,114,26,124,1,160,4,100,3,160,0,124, - 0,106,3,161,1,161,1,1,0,124,0,106,5,100,0,117, - 1,114,40,124,1,160,4,100,4,160,0,124,0,106,5,161, - 1,161,1,1,0,100,5,160,0,124,0,106,6,106,7,100, - 6,160,8,124,1,161,1,161,2,83,0,41,7,78,122,9, - 110,97,109,101,61,123,33,114,125,122,11,108,111,97,100,101, - 114,61,123,33,114,125,122,11,111,114,105,103,105,110,61,123, - 33,114,125,122,29,115,117,98,109,111,100,117,108,101,95,115, - 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,61, - 123,125,122,6,123,125,40,123,125,41,122,2,44,32,41,9, - 114,53,0,0,0,114,20,0,0,0,114,130,0,0,0,114, - 134,0,0,0,218,6,97,112,112,101,110,100,114,137,0,0, - 0,218,9,95,95,99,108,97,115,115,95,95,114,8,0,0, - 0,218,4,106,111,105,110,41,2,114,35,0,0,0,114,67, - 0,0,0,115,2,0,0,0,32,32,114,5,0,0,0,114, - 56,0,0,0,122,19,77,111,100,117,108,101,83,112,101,99, - 46,95,95,114,101,112,114,95,95,114,1,0,0,115,20,0, - 0,0,10,1,10,1,4,255,10,2,18,1,10,1,6,1, - 8,1,4,255,22,2,115,24,0,0,0,10,1,12,1,2, - 255,8,2,20,1,8,1,2,2,2,255,2,1,2,255,12, - 1,22,1,115,102,0,0,0,17,28,17,46,36,40,36,45, - 17,46,17,30,17,50,38,42,38,49,17,50,16,51,9,13, - 12,16,12,23,31,35,12,35,9,59,13,17,13,59,25,38, - 25,58,46,50,46,57,25,58,13,59,13,59,12,16,12,43, - 51,55,12,55,9,66,13,17,13,66,25,56,25,65,33,37, - 33,64,25,65,13,66,13,66,16,24,16,73,32,36,32,46, - 32,55,57,61,57,72,67,71,57,72,16,73,9,73,114,17, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,3,0,0,0,115,104,0,0,0,124,0,106, - 0,125,2,9,0,124,0,106,1,124,1,106,1,107,2,111, - 38,124,0,106,2,124,1,106,2,107,2,111,38,124,0,106, - 3,124,1,106,3,107,2,111,38,124,2,124,1,106,0,107, - 2,111,38,124,0,106,4,124,1,106,4,107,2,111,38,124, - 0,106,5,124,1,106,5,107,2,83,0,35,0,4,0,116, - 6,121,51,1,0,1,0,1,0,116,7,6,0,89,0,83, - 0,37,0,119,0,114,0,0,0,0,41,8,114,137,0,0, - 0,114,20,0,0,0,114,130,0,0,0,114,134,0,0,0, - 218,6,99,97,99,104,101,100,218,12,104,97,115,95,108,111, - 99,97,116,105,111,110,114,2,0,0,0,218,14,78,111,116, - 73,109,112,108,101,109,101,110,116,101,100,41,3,114,35,0, - 0,0,90,5,111,116,104,101,114,90,4,115,109,115,108,115, - 3,0,0,0,32,32,32,114,5,0,0,0,218,6,95,95, - 101,113,95,95,122,17,77,111,100,117,108,101,83,112,101,99, - 46,95,95,101,113,95,95,124,1,0,0,115,36,0,0,0, - 6,1,2,1,12,1,10,1,2,255,10,2,2,254,8,3, - 2,253,10,4,2,252,10,5,2,251,2,128,12,6,8,1, - 2,128,2,255,115,36,0,0,0,6,1,2,9,10,249,2, - 5,10,252,2,4,10,253,2,3,8,254,2,2,10,255,14, - 1,2,128,2,2,2,255,16,1,2,128,2,0,115,104,0, - 0,0,16,20,16,47,9,13,9,34,21,25,21,30,34,39, - 34,44,21,44,21,60,21,25,21,32,36,41,36,48,21,48, - 21,60,21,25,21,32,36,41,36,48,21,48,21,60,21,25, - 29,34,29,61,21,61,21,60,21,25,21,32,36,41,36,48, - 21,48,21,60,21,25,21,38,42,47,42,60,21,60,13,61, - 0,0,9,34,16,30,9,34,9,34,9,34,9,34,20,34, - 13,34,13,34,13,34,0,0,9,34,115,12,0,0,0,132, - 34,39,0,167,9,50,7,179,1,50,7,99,1,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 115,58,0,0,0,124,0,106,0,100,0,117,0,114,26,124, - 0,106,1,100,0,117,1,114,26,124,0,106,2,114,26,116, - 3,100,0,117,0,114,19,116,4,130,1,116,3,160,5,124, - 0,106,1,161,1,124,0,95,0,124,0,106,0,83,0,114, - 0,0,0,0,41,6,114,140,0,0,0,114,134,0,0,0, - 114,139,0,0,0,218,19,95,98,111,111,116,115,116,114,97, - 112,95,101,120,116,101,114,110,97,108,218,19,78,111,116,73, - 109,112,108,101,109,101,110,116,101,100,69,114,114,111,114,90, - 11,95,103,101,116,95,99,97,99,104,101,100,114,55,0,0, - 0,115,1,0,0,0,32,114,5,0,0,0,114,145,0,0, - 0,122,17,77,111,100,117,108,101,83,112,101,99,46,99,97, - 99,104,101,100,136,1,0,0,115,12,0,0,0,10,2,16, - 1,8,1,4,1,14,1,6,1,115,20,0,0,0,8,2, - 2,4,8,253,2,3,4,253,2,3,6,254,6,1,14,1, - 6,1,115,58,0,0,0,12,16,12,24,28,32,12,32,9, - 76,16,20,16,27,35,39,16,39,13,76,44,48,44,62,13, - 76,20,39,43,47,20,47,17,46,27,46,21,46,32,51,32, - 76,64,68,64,75,32,76,17,21,17,29,16,20,16,28,9, - 28,114,17,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,3,0,0,0,115,10,0,0,0, - 124,1,124,0,95,0,100,0,83,0,114,0,0,0,0,41, - 1,114,140,0,0,0,41,2,114,35,0,0,0,114,145,0, - 0,0,115,2,0,0,0,32,32,114,5,0,0,0,114,145, - 0,0,0,122,17,77,111,100,117,108,101,83,112,101,99,46, - 99,97,99,104,101,100,145,1,0,0,243,2,0,0,0,10, - 2,114,151,0,0,0,115,10,0,0,0,24,30,9,13,9, - 21,9,21,9,21,114,17,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,115, - 32,0,0,0,124,0,106,0,100,1,117,0,114,13,124,0, - 106,1,160,2,100,2,161,1,100,3,25,0,83,0,124,0, - 106,1,83,0,41,4,122,32,84,104,101,32,110,97,109,101, - 32,111,102,32,116,104,101,32,109,111,100,117,108,101,39,115, - 32,112,97,114,101,110,116,46,78,218,1,46,114,27,0,0, - 0,41,3,114,137,0,0,0,114,20,0,0,0,218,10,114, - 112,97,114,116,105,116,105,111,110,114,55,0,0,0,115,1, - 0,0,0,32,114,5,0,0,0,218,6,112,97,114,101,110, - 116,122,17,77,111,100,117,108,101,83,112,101,99,46,112,97, - 114,101,110,116,149,1,0,0,115,6,0,0,0,10,3,16, - 1,6,2,115,8,0,0,0,8,3,2,3,16,254,6,2, - 115,32,0,0,0,12,16,12,43,47,51,12,51,9,29,20, - 24,20,29,20,45,41,44,20,45,46,47,20,48,13,48,20, - 24,20,29,13,29,114,17,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,115, - 6,0,0,0,124,0,106,0,83,0,114,0,0,0,0,41, - 1,114,139,0,0,0,114,55,0,0,0,115,1,0,0,0, - 32,114,5,0,0,0,114,146,0,0,0,122,23,77,111,100, - 117,108,101,83,112,101,99,46,104,97,115,95,108,111,99,97, - 116,105,111,110,157,1,0,0,243,2,0,0,0,6,2,114, - 155,0,0,0,115,6,0,0,0,16,20,16,34,9,34,114, - 17,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,2,0,0,0,3,0,0,0,115,14,0,0,0,116,0, - 124,1,131,1,124,0,95,1,100,0,83,0,114,0,0,0, - 0,41,2,218,4,98,111,111,108,114,139,0,0,0,41,2, - 114,35,0,0,0,218,5,118,97,108,117,101,115,2,0,0, - 0,32,32,114,5,0,0,0,114,146,0,0,0,122,23,77, - 111,100,117,108,101,83,112,101,99,46,104,97,115,95,108,111, - 99,97,116,105,111,110,161,1,0,0,243,2,0,0,0,14, - 2,114,158,0,0,0,115,14,0,0,0,30,34,35,40,30, - 41,9,13,9,27,9,27,9,27,114,17,0,0,0,41,12, - 114,8,0,0,0,114,7,0,0,0,114,1,0,0,0,114, - 9,0,0,0,114,36,0,0,0,114,56,0,0,0,114,148, - 0,0,0,218,8,112,114,111,112,101,114,116,121,114,145,0, - 0,0,218,6,115,101,116,116,101,114,114,154,0,0,0,114, - 146,0,0,0,114,24,0,0,0,114,17,0,0,0,114,5, - 0,0,0,114,133,0,0,0,114,133,0,0,0,64,1,0, - 0,115,34,0,0,0,8,0,4,1,4,36,2,1,10,255, - 6,13,6,10,2,12,8,1,4,8,8,1,2,3,8,1, - 2,7,8,1,4,3,12,1,115,52,0,0,0,0,129,0, - 129,8,190,0,127,0,127,2,101,0,129,0,129,2,155,0, - 127,0,127,4,103,2,1,10,10,6,10,6,12,2,2,8, - 7,4,2,8,2,2,2,8,6,2,2,8,2,4,2,12, - 2,115,98,0,0,0,1,1,1,1,1,1,1,1,5,8, - 1,1,48,52,67,71,29,33,5,28,5,28,5,28,5,28, - 5,28,5,73,5,73,5,73,5,34,5,34,5,34,6,14, - 5,28,5,28,5,28,5,28,6,12,6,19,5,30,5,30, - 5,30,5,30,6,14,5,29,5,29,5,29,5,29,6,14, - 5,34,5,34,5,34,5,34,6,18,6,25,5,41,5,41, - 5,41,5,41,5,41,5,41,114,17,0,0,0,114,133,0, - 0,0,169,2,114,134,0,0,0,114,136,0,0,0,99,2, - 0,0,0,0,0,0,0,2,0,0,0,8,0,0,0,3, - 0,0,0,115,152,0,0,0,116,0,124,1,100,1,131,2, - 114,37,116,1,100,2,117,0,114,11,116,2,130,1,116,1, - 106,3,125,4,124,3,100,2,117,0,114,24,124,4,124,0, - 124,1,100,3,141,2,83,0,124,3,114,28,103,0,110,1, - 100,2,125,5,124,4,124,0,124,1,124,5,100,4,141,3, - 83,0,124,3,100,2,117,0,114,67,116,0,124,1,100,5, - 131,2,114,65,9,0,124,1,160,4,124,0,161,1,125,3, - 110,14,35,0,4,0,116,5,121,75,1,0,1,0,1,0, - 100,2,125,3,89,0,110,3,37,0,100,6,125,3,116,6, - 124,0,124,1,124,2,124,3,100,7,141,4,83,0,119,0, - 41,8,122,53,82,101,116,117,114,110,32,97,32,109,111,100, - 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111, - 110,32,118,97,114,105,111,117,115,32,108,111,97,100,101,114, - 32,109,101,116,104,111,100,115,46,90,12,103,101,116,95,102, - 105,108,101,110,97,109,101,78,41,1,114,130,0,0,0,41, - 2,114,130,0,0,0,114,137,0,0,0,114,136,0,0,0, - 70,114,161,0,0,0,41,7,114,10,0,0,0,114,149,0, - 0,0,114,150,0,0,0,218,23,115,112,101,99,95,102,114, - 111,109,95,102,105,108,101,95,108,111,99,97,116,105,111,110, - 114,136,0,0,0,114,94,0,0,0,114,133,0,0,0,41, - 6,114,20,0,0,0,114,130,0,0,0,114,134,0,0,0, - 114,136,0,0,0,114,162,0,0,0,90,6,115,101,97,114, - 99,104,115,6,0,0,0,32,32,32,32,32,32,114,5,0, - 0,0,114,112,0,0,0,114,112,0,0,0,166,1,0,0, - 115,42,0,0,0,10,2,8,1,4,1,6,1,8,2,12, - 1,12,1,6,1,2,1,6,255,8,3,10,1,2,1,12, - 1,2,128,12,1,8,1,2,128,4,3,16,2,2,250,115, - 48,0,0,0,8,2,2,9,6,248,6,1,6,1,6,2, - 14,1,12,1,6,1,8,1,6,2,2,8,8,249,2,7, - 2,253,12,254,2,128,2,2,2,255,16,1,2,128,4,3, - 16,2,2,251,115,152,0,0,0,8,15,16,22,24,38,8, - 39,5,74,12,31,35,39,12,39,9,38,19,38,13,38,35, - 54,35,78,9,32,12,22,26,30,12,30,9,64,20,43,44, - 48,57,63,20,64,20,64,13,64,24,34,18,44,18,20,18, - 20,40,44,9,15,16,39,40,44,53,59,67,73,16,74,16, - 74,9,74,8,18,22,26,8,26,5,31,12,19,20,26,28, - 40,12,41,9,31,13,34,30,36,30,53,48,52,30,53,17, - 27,17,27,0,0,13,34,20,31,13,34,13,34,13,34,13, - 34,30,34,17,27,17,27,17,27,0,0,26,31,13,23,12, - 22,23,27,29,35,44,50,63,73,12,74,12,74,5,74,13, - 34,115,15,0,0,0,175,5,53,0,181,9,65,0,7,193, - 11,1,65,0,7,99,3,0,0,0,0,0,0,0,0,0, - 0,0,8,0,0,0,3,0,0,0,115,50,1,0,0,9, - 0,124,0,106,0,125,3,110,10,35,0,4,0,116,1,121, - 152,1,0,1,0,1,0,89,0,110,7,37,0,124,3,100, - 0,117,1,114,21,124,3,83,0,124,0,106,2,125,4,124, - 1,100,0,117,0,114,43,9,0,124,0,106,3,125,1,110, - 10,35,0,4,0,116,1,121,151,1,0,1,0,1,0,89, - 0,110,1,37,0,9,0,124,0,106,4,125,5,110,12,35, - 0,4,0,116,1,121,150,1,0,1,0,1,0,100,0,125, - 5,89,0,110,1,37,0,124,2,100,0,117,0,114,87,124, - 5,100,0,117,0,114,85,9,0,124,1,106,5,125,2,110, - 14,35,0,4,0,116,1,121,149,1,0,1,0,1,0,100, - 0,125,2,89,0,110,3,37,0,124,5,125,2,9,0,124, - 0,106,6,125,6,110,12,35,0,4,0,116,1,121,148,1, - 0,1,0,1,0,100,0,125,6,89,0,110,1,37,0,9, - 0,116,7,124,0,106,8,131,1,125,7,110,12,35,0,4, - 0,116,1,121,147,1,0,1,0,1,0,100,0,125,7,89, - 0,110,1,37,0,116,9,124,4,124,1,124,2,100,1,141, - 3,125,3,124,5,100,0,117,0,114,136,100,2,110,1,100, - 3,124,3,95,10,124,6,124,3,95,11,124,7,124,3,95, - 12,124,3,83,0,119,0,119,0,119,0,119,0,119,0,119, - 0,41,4,78,169,1,114,134,0,0,0,70,84,41,13,114, - 121,0,0,0,114,2,0,0,0,114,8,0,0,0,114,120, - 0,0,0,114,129,0,0,0,218,7,95,79,82,73,71,73, - 78,218,10,95,95,99,97,99,104,101,100,95,95,218,4,108, - 105,115,116,218,8,95,95,112,97,116,104,95,95,114,133,0, - 0,0,114,139,0,0,0,114,145,0,0,0,114,137,0,0, - 0,41,8,114,118,0,0,0,114,130,0,0,0,114,134,0, - 0,0,114,117,0,0,0,114,20,0,0,0,90,8,108,111, - 99,97,116,105,111,110,114,145,0,0,0,114,137,0,0,0, - 115,8,0,0,0,32,32,32,32,32,32,32,32,114,5,0, - 0,0,218,17,95,115,112,101,99,95,102,114,111,109,95,109, - 111,100,117,108,101,114,168,0,0,0,192,1,0,0,115,108, - 0,0,0,2,2,8,1,2,128,12,1,4,1,2,128,8, - 2,4,1,6,2,8,1,2,1,8,1,2,128,12,1,4, - 2,2,128,2,1,8,1,2,128,12,1,8,1,2,128,8, - 1,8,1,2,1,8,1,2,128,12,1,8,1,2,128,4, - 2,2,1,8,1,2,128,12,1,8,1,2,128,2,1,12, - 1,2,128,12,1,8,1,2,128,14,2,18,1,6,1,6, - 1,4,1,2,249,2,252,2,250,2,250,2,251,2,246,115, - 124,0,0,0,2,8,8,251,2,128,2,2,2,255,12,1, - 2,128,6,2,6,1,6,2,6,1,4,5,8,253,2,128, - 2,3,2,254,12,2,2,128,2,4,8,254,2,128,2,2, - 2,255,16,1,2,128,6,1,2,7,6,250,2,6,2,254, - 8,254,2,128,2,2,2,255,16,1,2,128,4,2,2,4, - 8,254,2,128,2,2,2,255,16,1,2,128,2,4,12,254, - 2,128,2,2,2,255,16,1,2,128,14,2,18,1,6,1, - 6,1,4,1,2,250,2,252,2,250,2,250,2,252,2,245, - 115,50,1,0,0,5,24,16,22,16,31,9,13,9,13,0, - 0,5,13,12,26,5,13,5,13,5,13,5,13,9,13,9, - 13,0,0,12,16,24,28,12,28,9,24,20,24,13,24,12, - 18,12,27,5,9,8,14,18,22,8,22,5,17,9,17,22, - 28,22,39,13,19,13,19,0,0,9,17,16,30,9,17,9, - 17,9,17,9,17,13,17,13,17,0,0,5,24,20,26,20, - 35,9,17,9,17,0,0,5,24,12,26,5,24,5,24,5, - 24,5,24,20,24,9,17,9,17,9,17,0,0,8,14,18, - 22,8,22,5,30,12,20,24,28,12,28,9,30,13,30,26, - 32,26,40,17,23,17,23,0,0,13,30,20,34,13,30,13, - 30,13,30,13,30,26,30,17,23,17,23,17,23,0,0,22, - 30,13,19,5,22,18,24,18,35,9,15,9,15,0,0,5, - 22,12,26,5,22,5,22,5,22,5,22,18,22,9,15,9, - 15,9,15,0,0,5,42,38,42,43,49,43,58,38,59,9, - 35,9,35,0,0,5,42,12,26,5,42,5,42,5,42,5, - 42,38,42,9,35,9,35,9,35,0,0,12,22,23,27,29, - 35,44,50,12,51,12,51,5,9,35,43,47,51,35,51,26, - 61,26,31,26,31,57,61,5,9,5,23,19,25,5,9,5, - 16,39,65,5,9,5,36,12,16,5,16,5,42,5,22,13, - 30,5,24,9,17,5,13,115,93,0,0,0,129,3,5,0, - 133,7,14,7,157,3,33,0,161,7,42,7,172,3,48,0, - 176,9,59,7,193,5,3,65,9,0,193,9,9,65,20,7, - 193,24,3,65,28,0,193,28,9,65,39,7,193,41,5,65, - 47,0,193,47,9,65,58,7,194,19,1,65,58,7,194,20, - 1,65,39,7,194,21,1,65,20,7,194,22,1,59,7,194, - 23,1,42,7,194,24,1,14,7,70,169,1,218,8,111,118, - 101,114,114,105,100,101,99,2,0,0,0,0,0,0,0,1, - 0,0,0,8,0,0,0,3,0,0,0,115,204,1,0,0, - 124,2,115,10,116,0,124,1,100,1,100,0,131,3,100,0, - 117,0,114,26,9,0,124,0,106,1,124,1,95,2,110,10, - 35,0,4,0,116,3,121,229,1,0,1,0,1,0,89,0, - 110,1,37,0,124,2,115,36,116,0,124,1,100,2,100,0, - 131,3,100,0,117,0,114,87,124,0,106,4,125,3,124,3, - 100,0,117,0,114,72,124,0,106,5,100,0,117,1,114,72, - 116,6,100,0,117,0,114,54,116,7,130,1,116,6,106,8, - 125,4,124,4,160,9,124,4,161,1,125,3,124,0,106,5, - 124,3,95,10,124,3,124,0,95,4,100,0,124,1,95,11, - 9,0,124,3,124,1,95,12,110,10,35,0,4,0,116,3, - 121,228,1,0,1,0,1,0,89,0,110,1,37,0,124,2, - 115,97,116,0,124,1,100,3,100,0,131,3,100,0,117,0, - 114,113,9,0,124,0,106,13,124,1,95,14,110,10,35,0, - 4,0,116,3,121,227,1,0,1,0,1,0,89,0,110,1, - 37,0,9,0,124,0,124,1,95,15,110,10,35,0,4,0, - 116,3,121,226,1,0,1,0,1,0,89,0,110,1,37,0, - 124,2,115,138,116,0,124,1,100,4,100,0,131,3,100,0, - 117,0,114,159,124,0,106,5,100,0,117,1,114,159,9,0, - 124,0,106,5,124,1,95,16,110,10,35,0,4,0,116,3, - 121,225,1,0,1,0,1,0,89,0,110,1,37,0,124,0, - 106,17,114,221,124,2,115,172,116,0,124,1,100,5,100,0, - 131,3,100,0,117,0,114,188,9,0,124,0,106,18,124,1, - 95,11,110,10,35,0,4,0,116,3,121,224,1,0,1,0, - 1,0,89,0,110,1,37,0,124,2,115,198,116,0,124,1, - 100,6,100,0,131,3,100,0,117,0,114,221,124,0,106,19, - 100,0,117,1,114,221,9,0,124,0,106,19,124,1,95,20, - 124,1,83,0,35,0,4,0,116,3,121,223,1,0,1,0, - 1,0,89,0,124,1,83,0,37,0,124,1,83,0,119,0, - 119,0,119,0,119,0,119,0,119,0,119,0,41,7,78,114, - 8,0,0,0,114,120,0,0,0,218,11,95,95,112,97,99, - 107,97,103,101,95,95,114,167,0,0,0,114,129,0,0,0, - 114,165,0,0,0,41,21,114,12,0,0,0,114,20,0,0, - 0,114,8,0,0,0,114,2,0,0,0,114,130,0,0,0, - 114,137,0,0,0,114,149,0,0,0,114,150,0,0,0,218, - 16,95,78,97,109,101,115,112,97,99,101,76,111,97,100,101, - 114,218,7,95,95,110,101,119,95,95,90,5,95,112,97,116, - 104,114,129,0,0,0,114,120,0,0,0,114,154,0,0,0, - 114,171,0,0,0,114,121,0,0,0,114,167,0,0,0,114, - 146,0,0,0,114,134,0,0,0,114,145,0,0,0,114,165, - 0,0,0,41,5,114,117,0,0,0,114,118,0,0,0,114, - 170,0,0,0,114,130,0,0,0,114,172,0,0,0,115,5, - 0,0,0,32,32,32,32,32,114,5,0,0,0,218,18,95, - 105,110,105,116,95,109,111,100,117,108,101,95,97,116,116,114, - 115,114,174,0,0,0,237,1,0,0,115,142,0,0,0,20, - 4,2,1,10,1,2,128,12,1,4,1,2,128,20,2,6, - 1,8,1,10,2,8,1,4,1,6,1,10,2,8,1,6, - 1,6,11,2,1,8,1,2,128,12,1,4,1,2,128,20, - 2,2,1,10,1,2,128,12,1,4,1,2,128,2,2,8, - 1,2,128,12,1,4,1,2,128,20,2,10,1,2,1,10, - 1,2,128,12,1,4,1,2,128,6,2,20,1,2,1,10, - 1,2,128,12,1,4,1,2,128,20,2,10,1,2,1,8, - 1,4,3,2,128,12,254,2,1,4,1,2,128,4,0,2, - 254,2,249,2,249,2,249,2,251,2,250,2,228,115,192,0, - 0,0,2,4,2,4,14,252,4,4,10,254,2,128,2,2, - 2,255,12,1,2,128,2,2,2,26,14,230,2,26,6,231, - 6,1,2,20,8,238,2,18,6,239,6,1,6,1,10,2, - 8,1,6,1,6,11,2,4,8,254,2,128,2,2,2,255, - 12,1,2,128,2,2,2,4,14,252,4,4,10,254,2,128, - 2,2,2,255,12,1,2,128,2,5,8,254,2,128,2,2, - 2,255,12,1,2,128,2,2,2,5,14,251,2,5,8,252, - 4,4,10,254,2,128,2,2,2,255,12,1,2,128,4,2, - 2,12,2,245,2,4,14,252,4,4,10,254,2,128,2,2, - 2,255,12,1,2,128,2,2,2,5,14,251,2,5,8,252, - 4,4,8,254,4,3,2,128,2,255,2,255,10,1,4,1, - 2,128,4,0,2,255,2,249,2,249,2,249,2,251,2,250, - 2,228,115,204,1,0,0,9,17,5,17,21,28,29,35,37, - 47,49,53,21,54,58,62,21,62,5,17,9,17,31,35,31, - 40,13,19,13,28,13,28,0,0,9,17,16,30,9,17,9, - 17,9,17,9,17,13,17,13,17,0,0,8,16,5,17,20, - 27,28,34,36,48,50,54,20,55,59,63,20,63,5,17,18, - 22,18,29,9,15,12,18,22,26,12,26,9,39,16,20,16, - 47,55,59,16,59,13,39,20,39,43,47,20,47,17,46,27, - 46,21,46,36,55,36,72,17,33,26,42,26,68,51,67,26, - 68,17,23,32,36,32,63,17,23,17,29,31,37,17,21,17, - 28,35,39,17,23,17,32,9,17,33,39,13,19,13,30,13, - 30,0,0,9,17,16,30,9,17,9,17,9,17,9,17,13, - 17,13,17,0,0,8,16,5,17,20,27,28,34,36,49,51, + 95,108,111,99,97,116,105,111,110,115,61,123,125,122,6,123, + 125,40,123,125,41,122,2,44,32,41,9,114,53,0,0,0, + 114,20,0,0,0,114,130,0,0,0,114,134,0,0,0,218, + 6,97,112,112,101,110,100,114,137,0,0,0,218,9,95,95, + 99,108,97,115,115,95,95,114,8,0,0,0,218,4,106,111, + 105,110,41,2,114,35,0,0,0,114,67,0,0,0,115,2, + 0,0,0,32,32,114,5,0,0,0,114,56,0,0,0,122, + 19,77,111,100,117,108,101,83,112,101,99,46,95,95,114,101, + 112,114,95,95,114,1,0,0,115,20,0,0,0,10,1,10, + 1,4,255,10,2,18,1,10,1,6,1,8,1,4,255,22, + 2,115,24,0,0,0,10,1,12,1,2,255,8,2,20,1, + 8,1,2,2,2,255,2,1,2,255,12,1,22,1,115,102, + 0,0,0,17,28,17,46,36,40,36,45,17,46,17,30,17, + 50,38,42,38,49,17,50,16,51,9,13,12,16,12,23,31, + 35,12,35,9,59,13,17,13,59,25,38,25,58,46,50,46, + 57,25,58,13,59,13,59,12,16,12,43,51,55,12,55,9, + 66,13,17,13,66,25,56,25,65,33,37,33,64,25,65,13, + 66,13,66,16,24,16,73,32,36,32,46,32,55,57,61,57, + 72,67,71,57,72,16,73,9,73,114,17,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,3, + 0,0,0,115,104,0,0,0,124,0,106,0,125,2,9,0, + 124,0,106,1,124,1,106,1,107,2,111,38,124,0,106,2, + 124,1,106,2,107,2,111,38,124,0,106,3,124,1,106,3, + 107,2,111,38,124,2,124,1,106,0,107,2,111,38,124,0, + 106,4,124,1,106,4,107,2,111,38,124,0,106,5,124,1, + 106,5,107,2,83,0,35,0,4,0,116,6,121,50,1,0, + 1,0,1,0,116,7,6,0,89,0,83,0,119,0,37,0, + 114,0,0,0,0,41,8,114,137,0,0,0,114,20,0,0, + 0,114,130,0,0,0,114,134,0,0,0,218,6,99,97,99, + 104,101,100,218,12,104,97,115,95,108,111,99,97,116,105,111, + 110,114,2,0,0,0,218,14,78,111,116,73,109,112,108,101, + 109,101,110,116,101,100,41,3,114,35,0,0,0,90,5,111, + 116,104,101,114,90,4,115,109,115,108,115,3,0,0,0,32, + 32,32,114,5,0,0,0,218,6,95,95,101,113,95,95,122, + 17,77,111,100,117,108,101,83,112,101,99,46,95,95,101,113, + 95,95,124,1,0,0,115,36,0,0,0,6,1,2,1,12, + 1,10,1,2,255,10,2,2,254,8,3,2,253,10,4,2, + 252,10,5,2,251,2,128,12,6,8,1,2,255,2,128,115, + 34,0,0,0,6,1,2,9,10,249,2,5,10,252,2,4, + 10,253,2,3,8,254,2,2,10,255,14,1,2,128,2,2, + 2,255,18,1,2,128,115,104,0,0,0,16,20,16,47,9, + 13,9,34,21,25,21,30,34,39,34,44,21,44,21,60,21, + 25,21,32,36,41,36,48,21,48,21,60,21,25,21,32,36, + 41,36,48,21,48,21,60,21,25,29,34,29,61,21,61,21, + 60,21,25,21,32,36,41,36,48,21,48,21,60,21,25,21, + 38,42,47,42,60,21,60,13,61,0,0,9,34,16,30,9, + 34,9,34,9,34,9,34,20,34,13,34,13,34,13,34,9, + 34,0,0,115,12,0,0,0,132,34,39,0,167,9,51,7, + 178,1,51,7,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,115,58,0,0,0,124,0, + 106,0,100,0,117,0,114,26,124,0,106,1,100,0,117,1, + 114,26,124,0,106,2,114,26,116,3,100,0,117,0,114,19, + 116,4,130,1,116,3,160,5,124,0,106,1,161,1,124,0, + 95,0,124,0,106,0,83,0,114,0,0,0,0,41,6,114, + 140,0,0,0,114,134,0,0,0,114,139,0,0,0,218,19, + 95,98,111,111,116,115,116,114,97,112,95,101,120,116,101,114, + 110,97,108,218,19,78,111,116,73,109,112,108,101,109,101,110, + 116,101,100,69,114,114,111,114,90,11,95,103,101,116,95,99, + 97,99,104,101,100,114,55,0,0,0,115,1,0,0,0,32, + 114,5,0,0,0,114,145,0,0,0,122,17,77,111,100,117, + 108,101,83,112,101,99,46,99,97,99,104,101,100,136,1,0, + 0,115,12,0,0,0,10,2,16,1,8,1,4,1,14,1, + 6,1,115,20,0,0,0,8,2,2,4,8,253,2,3,4, + 253,2,3,6,254,6,1,14,1,6,1,115,58,0,0,0, + 12,16,12,24,28,32,12,32,9,76,16,20,16,27,35,39, + 16,39,13,76,44,48,44,62,13,76,20,39,43,47,20,47, + 17,46,27,46,21,46,32,51,32,76,64,68,64,75,32,76, + 17,21,17,29,16,20,16,28,9,28,114,17,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,115,10,0,0,0,124,1,124,0,95,0,100, + 0,83,0,114,0,0,0,0,41,1,114,140,0,0,0,41, + 2,114,35,0,0,0,114,145,0,0,0,115,2,0,0,0, + 32,32,114,5,0,0,0,114,145,0,0,0,122,17,77,111, + 100,117,108,101,83,112,101,99,46,99,97,99,104,101,100,145, + 1,0,0,243,2,0,0,0,10,2,114,151,0,0,0,115, + 10,0,0,0,24,30,9,13,9,21,9,21,9,21,114,17, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,115,32,0,0,0,124,0,106, + 0,100,1,117,0,114,13,124,0,106,1,160,2,100,2,161, + 1,100,3,25,0,83,0,124,0,106,1,83,0,41,4,122, + 32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101, + 32,109,111,100,117,108,101,39,115,32,112,97,114,101,110,116, + 46,78,218,1,46,114,27,0,0,0,41,3,114,137,0,0, + 0,114,20,0,0,0,218,10,114,112,97,114,116,105,116,105, + 111,110,114,55,0,0,0,115,1,0,0,0,32,114,5,0, + 0,0,218,6,112,97,114,101,110,116,122,17,77,111,100,117, + 108,101,83,112,101,99,46,112,97,114,101,110,116,149,1,0, + 0,115,6,0,0,0,10,3,16,1,6,2,115,8,0,0, + 0,8,3,2,3,16,254,6,2,115,32,0,0,0,12,16, + 12,43,47,51,12,51,9,29,20,24,20,29,20,45,41,44, + 20,45,46,47,20,48,13,48,20,24,20,29,13,29,114,17, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,3,0,0,0,115,6,0,0,0,124,0,106, + 0,83,0,114,0,0,0,0,41,1,114,139,0,0,0,114, + 55,0,0,0,115,1,0,0,0,32,114,5,0,0,0,114, + 146,0,0,0,122,23,77,111,100,117,108,101,83,112,101,99, + 46,104,97,115,95,108,111,99,97,116,105,111,110,157,1,0, + 0,243,2,0,0,0,6,2,114,155,0,0,0,115,6,0, + 0,0,16,20,16,34,9,34,114,17,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, + 0,0,115,14,0,0,0,116,0,124,1,131,1,124,0,95, + 1,100,0,83,0,114,0,0,0,0,41,2,218,4,98,111, + 111,108,114,139,0,0,0,41,2,114,35,0,0,0,218,5, + 118,97,108,117,101,115,2,0,0,0,32,32,114,5,0,0, + 0,114,146,0,0,0,122,23,77,111,100,117,108,101,83,112, + 101,99,46,104,97,115,95,108,111,99,97,116,105,111,110,161, + 1,0,0,243,2,0,0,0,14,2,114,158,0,0,0,115, + 14,0,0,0,30,34,35,40,30,41,9,13,9,27,9,27, + 9,27,114,17,0,0,0,41,12,114,8,0,0,0,114,7, + 0,0,0,114,1,0,0,0,114,9,0,0,0,114,36,0, + 0,0,114,56,0,0,0,114,148,0,0,0,218,8,112,114, + 111,112,101,114,116,121,114,145,0,0,0,218,6,115,101,116, + 116,101,114,114,154,0,0,0,114,146,0,0,0,114,24,0, + 0,0,114,17,0,0,0,114,5,0,0,0,114,133,0,0, + 0,114,133,0,0,0,64,1,0,0,115,34,0,0,0,8, + 0,4,1,4,36,2,1,10,255,6,13,6,10,2,12,8, + 1,4,8,8,1,2,3,8,1,2,7,8,1,4,3,12, + 1,115,52,0,0,0,0,129,0,129,8,190,0,127,0,127, + 2,101,0,129,0,129,2,155,0,127,0,127,4,103,2,1, + 10,10,6,10,6,12,2,2,8,7,4,2,8,2,2,2, + 8,6,2,2,8,2,4,2,12,2,115,98,0,0,0,1, + 1,1,1,1,1,1,1,5,8,1,1,48,52,67,71,29, + 33,5,28,5,28,5,28,5,28,5,28,5,73,5,73,5, + 73,5,34,5,34,5,34,6,14,5,28,5,28,5,28,5, + 28,6,12,6,19,5,30,5,30,5,30,5,30,6,14,5, + 29,5,29,5,29,5,29,6,14,5,34,5,34,5,34,5, + 34,6,18,6,25,5,41,5,41,5,41,5,41,5,41,5, + 41,114,17,0,0,0,114,133,0,0,0,169,2,114,134,0, + 0,0,114,136,0,0,0,99,2,0,0,0,0,0,0,0, + 2,0,0,0,8,0,0,0,3,0,0,0,115,152,0,0, + 0,116,0,124,1,100,1,131,2,114,37,116,1,100,2,117, + 0,114,11,116,2,130,1,116,1,106,3,125,4,124,3,100, + 2,117,0,114,24,124,4,124,0,124,1,100,3,141,2,83, + 0,124,3,114,28,103,0,110,1,100,2,125,5,124,4,124, + 0,124,1,124,5,100,4,141,3,83,0,124,3,100,2,117, + 0,114,68,116,0,124,1,100,5,131,2,114,66,9,0,124, + 1,160,4,124,0,161,1,125,3,110,15,35,0,4,0,116, + 5,121,64,1,0,1,0,1,0,100,2,125,3,89,0,110, + 4,119,0,37,0,100,6,125,3,116,6,124,0,124,1,124, + 2,124,3,100,7,141,4,83,0,41,8,122,53,82,101,116, + 117,114,110,32,97,32,109,111,100,117,108,101,32,115,112,101, + 99,32,98,97,115,101,100,32,111,110,32,118,97,114,105,111, + 117,115,32,108,111,97,100,101,114,32,109,101,116,104,111,100, + 115,46,90,12,103,101,116,95,102,105,108,101,110,97,109,101, + 78,41,1,114,130,0,0,0,41,2,114,130,0,0,0,114, + 137,0,0,0,114,136,0,0,0,70,114,161,0,0,0,41, + 7,114,10,0,0,0,114,149,0,0,0,114,150,0,0,0, + 218,23,115,112,101,99,95,102,114,111,109,95,102,105,108,101, + 95,108,111,99,97,116,105,111,110,114,136,0,0,0,114,94, + 0,0,0,114,133,0,0,0,41,6,114,20,0,0,0,114, + 130,0,0,0,114,134,0,0,0,114,136,0,0,0,114,162, + 0,0,0,90,6,115,101,97,114,99,104,115,6,0,0,0, + 32,32,32,32,32,32,114,5,0,0,0,114,112,0,0,0, + 114,112,0,0,0,166,1,0,0,115,42,0,0,0,10,2, + 8,1,4,1,6,1,8,2,12,1,12,1,6,1,2,1, + 6,255,8,3,10,1,2,1,12,1,2,128,12,1,8,1, + 2,255,2,128,4,4,16,2,115,46,0,0,0,8,2,2, + 9,6,248,6,1,6,1,6,2,14,1,12,1,6,1,8, + 1,6,2,2,8,8,249,2,7,2,253,12,254,2,128,2, + 2,2,255,18,1,2,128,4,3,16,2,115,152,0,0,0, + 8,15,16,22,24,38,8,39,5,74,12,31,35,39,12,39, + 9,38,19,38,13,38,35,54,35,78,9,32,12,22,26,30, + 12,30,9,64,20,43,44,48,57,63,20,64,20,64,13,64, + 24,34,18,44,18,20,18,20,40,44,9,15,16,39,40,44, + 53,59,67,73,16,74,16,74,9,74,8,18,22,26,8,26, + 5,31,12,19,20,26,28,40,12,41,9,31,13,34,30,36, + 30,53,48,52,30,53,17,27,17,27,0,0,13,34,20,31, + 13,34,13,34,13,34,13,34,30,34,17,27,17,27,17,27, + 13,34,0,0,26,31,13,23,12,22,23,27,29,35,44,50, + 63,73,12,74,12,74,5,74,115,15,0,0,0,175,5,53, + 0,181,9,65,1,7,193,0,1,65,1,7,99,3,0,0, + 0,0,0,0,0,0,0,0,0,8,0,0,0,3,0,0, + 0,115,50,1,0,0,9,0,124,0,106,0,125,3,110,11, + 35,0,4,0,116,1,121,14,1,0,1,0,1,0,89,0, + 110,8,119,0,37,0,124,3,100,0,117,1,114,22,124,3, + 83,0,124,0,106,2,125,4,124,1,100,0,117,0,114,45, + 9,0,124,0,106,3,125,1,110,11,35,0,4,0,116,1, + 121,43,1,0,1,0,1,0,89,0,110,2,119,0,37,0, + 9,0,124,0,106,4,125,5,110,13,35,0,4,0,116,1, + 121,61,1,0,1,0,1,0,100,0,125,5,89,0,110,2, + 119,0,37,0,124,2,100,0,117,0,114,91,124,5,100,0, + 117,0,114,89,9,0,124,1,106,5,125,2,110,15,35,0, + 4,0,116,1,121,87,1,0,1,0,1,0,100,0,125,2, + 89,0,110,4,119,0,37,0,124,5,125,2,9,0,124,0, + 106,6,125,6,110,13,35,0,4,0,116,1,121,107,1,0, + 1,0,1,0,100,0,125,6,89,0,110,2,119,0,37,0, + 9,0,116,7,124,0,106,8,131,1,125,7,110,13,35,0, + 4,0,116,1,121,127,1,0,1,0,1,0,100,0,125,7, + 89,0,110,2,119,0,37,0,116,9,124,4,124,1,124,2, + 100,1,141,3,125,3,124,5,100,0,117,0,114,142,100,2, + 110,1,100,3,124,3,95,10,124,6,124,3,95,11,124,7, + 124,3,95,12,124,3,83,0,41,4,78,169,1,114,134,0, + 0,0,70,84,41,13,114,121,0,0,0,114,2,0,0,0, + 114,8,0,0,0,114,120,0,0,0,114,129,0,0,0,218, + 7,95,79,82,73,71,73,78,218,10,95,95,99,97,99,104, + 101,100,95,95,218,4,108,105,115,116,218,8,95,95,112,97, + 116,104,95,95,114,133,0,0,0,114,139,0,0,0,114,145, + 0,0,0,114,137,0,0,0,41,8,114,118,0,0,0,114, + 130,0,0,0,114,134,0,0,0,114,117,0,0,0,114,20, + 0,0,0,90,8,108,111,99,97,116,105,111,110,114,145,0, + 0,0,114,137,0,0,0,115,8,0,0,0,32,32,32,32, + 32,32,32,32,114,5,0,0,0,218,17,95,115,112,101,99, + 95,102,114,111,109,95,109,111,100,117,108,101,114,168,0,0, + 0,192,1,0,0,115,108,0,0,0,2,2,8,1,2,128, + 12,1,4,1,2,255,2,128,8,3,4,1,6,2,8,1, + 2,1,8,1,2,128,12,1,4,2,2,254,2,128,2,3, + 8,1,2,128,12,1,8,1,2,255,2,128,8,2,8,1, + 2,1,8,1,2,128,12,1,8,1,2,255,2,128,4,3, + 2,1,8,1,2,128,12,1,8,1,2,255,2,128,2,2, + 12,1,2,128,12,1,8,1,2,255,2,128,14,3,18,1, + 6,1,6,1,4,1,115,112,0,0,0,2,8,8,251,2, + 128,2,2,2,255,14,1,2,128,6,2,6,1,6,2,6, + 1,4,5,8,253,2,128,2,3,2,254,14,2,2,128,2, + 4,8,254,2,128,2,2,2,255,18,1,2,128,6,1,2, + 7,6,250,2,6,2,254,8,254,2,128,2,2,2,255,18, + 1,2,128,4,2,2,4,8,254,2,128,2,2,2,255,18, + 1,2,128,2,4,12,254,2,128,2,2,2,255,18,1,2, + 128,14,2,18,1,6,1,6,1,4,1,115,50,1,0,0, + 5,24,16,22,16,31,9,13,9,13,0,0,5,13,12,26, + 5,13,5,13,5,13,5,13,9,13,9,13,5,13,0,0, + 12,16,24,28,12,28,9,24,20,24,13,24,12,18,12,27, + 5,9,8,14,18,22,8,22,5,17,9,17,22,28,22,39, + 13,19,13,19,0,0,9,17,16,30,9,17,9,17,9,17, + 9,17,13,17,13,17,9,17,0,0,5,24,20,26,20,35, + 9,17,9,17,0,0,5,24,12,26,5,24,5,24,5,24, + 5,24,20,24,9,17,9,17,9,17,5,24,0,0,8,14, + 18,22,8,22,5,30,12,20,24,28,12,28,9,30,13,30, + 26,32,26,40,17,23,17,23,0,0,13,30,20,34,13,30, + 13,30,13,30,13,30,26,30,17,23,17,23,17,23,13,30, + 0,0,22,30,13,19,5,22,18,24,18,35,9,15,9,15, + 0,0,5,22,12,26,5,22,5,22,5,22,5,22,18,22, + 9,15,9,15,9,15,5,22,0,0,5,42,38,42,43,49, + 43,58,38,59,9,35,9,35,0,0,5,42,12,26,5,42, + 5,42,5,42,5,42,38,42,9,35,9,35,9,35,5,42, + 0,0,12,22,23,27,29,35,44,50,12,51,12,51,5,9, + 35,43,47,51,35,51,26,61,26,31,26,31,57,61,5,9, + 5,23,19,25,5,9,5,16,39,65,5,9,5,36,12,16, + 5,16,115,90,0,0,0,129,3,5,0,133,7,15,7,142, + 1,15,7,158,3,34,0,162,7,44,7,171,1,44,7,174, + 3,50,0,178,9,62,7,189,1,62,7,193,8,3,65,12, + 0,193,12,9,65,24,7,193,23,1,65,24,7,193,28,3, + 65,32,0,193,32,9,65,44,7,193,43,1,65,44,7,193, + 46,5,65,52,0,193,52,9,66,0,7,193,63,1,66,0, + 7,70,169,1,218,8,111,118,101,114,114,105,100,101,99,2, + 0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,3, + 0,0,0,115,204,1,0,0,124,2,115,10,116,0,124,1, + 100,1,100,0,131,3,100,0,117,0,114,27,9,0,124,0, + 106,1,124,1,95,2,110,11,35,0,4,0,116,3,121,25, + 1,0,1,0,1,0,89,0,110,2,119,0,37,0,124,2, + 115,37,116,0,124,1,100,2,100,0,131,3,100,0,117,0, + 114,89,124,0,106,4,125,3,124,3,100,0,117,0,114,73, + 124,0,106,5,100,0,117,1,114,73,116,6,100,0,117,0, + 114,55,116,7,130,1,116,6,106,8,125,4,124,4,160,9, + 124,4,161,1,125,3,124,0,106,5,124,3,95,10,124,3, + 124,0,95,4,100,0,124,1,95,11,9,0,124,3,124,1, + 95,12,110,11,35,0,4,0,116,3,121,87,1,0,1,0, + 1,0,89,0,110,2,119,0,37,0,124,2,115,99,116,0, + 124,1,100,3,100,0,131,3,100,0,117,0,114,116,9,0, + 124,0,106,13,124,1,95,14,110,11,35,0,4,0,116,3, + 121,114,1,0,1,0,1,0,89,0,110,2,119,0,37,0, + 9,0,124,0,124,1,95,15,110,11,35,0,4,0,116,3, + 121,130,1,0,1,0,1,0,89,0,110,2,119,0,37,0, + 124,2,115,142,116,0,124,1,100,4,100,0,131,3,100,0, + 117,0,114,164,124,0,106,5,100,0,117,1,114,164,9,0, + 124,0,106,5,124,1,95,16,110,11,35,0,4,0,116,3, + 121,162,1,0,1,0,1,0,89,0,110,2,119,0,37,0, + 124,0,106,17,114,228,124,2,115,177,116,0,124,1,100,5, + 100,0,131,3,100,0,117,0,114,194,9,0,124,0,106,18, + 124,1,95,11,110,11,35,0,4,0,116,3,121,192,1,0, + 1,0,1,0,89,0,110,2,119,0,37,0,124,2,115,204, + 116,0,124,1,100,6,100,0,131,3,100,0,117,0,114,228, + 124,0,106,19,100,0,117,1,114,228,9,0,124,0,106,19, + 124,1,95,20,124,1,83,0,35,0,4,0,116,3,121,226, + 1,0,1,0,1,0,89,0,124,1,83,0,119,0,37,0, + 124,1,83,0,41,7,78,114,8,0,0,0,114,120,0,0, + 0,218,11,95,95,112,97,99,107,97,103,101,95,95,114,167, + 0,0,0,114,129,0,0,0,114,165,0,0,0,41,21,114, + 12,0,0,0,114,20,0,0,0,114,8,0,0,0,114,2, + 0,0,0,114,130,0,0,0,114,137,0,0,0,114,149,0, + 0,0,114,150,0,0,0,218,16,95,78,97,109,101,115,112, + 97,99,101,76,111,97,100,101,114,218,7,95,95,110,101,119, + 95,95,90,5,95,112,97,116,104,114,129,0,0,0,114,120, + 0,0,0,114,154,0,0,0,114,171,0,0,0,114,121,0, + 0,0,114,167,0,0,0,114,146,0,0,0,114,134,0,0, + 0,114,145,0,0,0,114,165,0,0,0,41,5,114,117,0, + 0,0,114,118,0,0,0,114,170,0,0,0,114,130,0,0, + 0,114,172,0,0,0,115,5,0,0,0,32,32,32,32,32, + 114,5,0,0,0,218,18,95,105,110,105,116,95,109,111,100, + 117,108,101,95,97,116,116,114,115,114,174,0,0,0,237,1, + 0,0,115,142,0,0,0,20,4,2,1,10,1,2,128,12, + 1,4,1,2,255,2,128,20,3,6,1,8,1,10,2,8, + 1,4,1,6,1,10,2,8,1,6,1,6,11,2,1,8, + 1,2,128,12,1,4,1,2,255,2,128,20,3,2,1,10, + 1,2,128,12,1,4,1,2,255,2,128,2,3,8,1,2, + 128,12,1,4,1,2,255,2,128,20,3,10,1,2,1,10, + 1,2,128,12,1,4,1,2,255,2,128,6,3,20,1,2, + 1,10,1,2,128,12,1,4,1,2,255,2,128,20,3,10, + 1,2,1,8,1,4,3,2,128,12,254,2,1,4,1,2, + 254,2,128,4,2,115,180,0,0,0,2,4,2,4,14,252, + 4,4,10,254,2,128,2,2,2,255,14,1,2,128,2,2, + 2,26,14,230,2,26,6,231,6,1,2,20,8,238,2,18, + 6,239,6,1,6,1,10,2,8,1,6,1,6,11,2,4, + 8,254,2,128,2,2,2,255,14,1,2,128,2,2,2,4, + 14,252,4,4,10,254,2,128,2,2,2,255,14,1,2,128, + 2,5,8,254,2,128,2,2,2,255,14,1,2,128,2,2, + 2,5,14,251,2,5,8,252,4,4,10,254,2,128,2,2, + 2,255,14,1,2,128,4,2,2,12,2,245,2,4,14,252, + 4,4,10,254,2,128,2,2,2,255,14,1,2,128,2,2, + 2,5,14,251,2,5,8,252,4,4,8,254,4,3,2,128, + 2,255,2,255,10,1,4,1,2,255,2,128,4,1,115,204, + 1,0,0,9,17,5,17,21,28,29,35,37,47,49,53,21, + 54,58,62,21,62,5,17,9,17,31,35,31,40,13,19,13, + 28,13,28,0,0,9,17,16,30,9,17,9,17,9,17,9, + 17,13,17,13,17,9,17,0,0,8,16,5,17,20,27,28, + 34,36,48,50,54,20,55,59,63,20,63,5,17,18,22,18, + 29,9,15,12,18,22,26,12,26,9,39,16,20,16,47,55, + 59,16,59,13,39,20,39,43,47,20,47,17,46,27,46,21, + 46,36,55,36,72,17,33,26,42,26,68,51,67,26,68,17, + 23,32,36,32,63,17,23,17,29,31,37,17,21,17,28,35, + 39,17,23,17,32,9,17,33,39,13,19,13,30,13,30,0, + 0,9,17,16,30,9,17,9,17,9,17,9,17,13,17,13, + 17,9,17,0,0,8,16,5,17,20,27,28,34,36,49,51, 55,20,56,60,64,20,64,5,17,9,17,34,38,34,45,13, 19,13,31,13,31,0,0,9,17,16,30,9,17,9,17,9, - 17,9,17,13,17,13,17,0,0,5,13,27,31,9,15,9, - 24,9,24,0,0,5,13,12,26,5,13,5,13,5,13,5, - 13,9,13,9,13,0,0,8,16,5,21,20,27,28,34,36, - 46,48,52,20,53,57,61,20,61,5,21,12,16,12,43,51, - 55,12,55,9,21,13,21,35,39,35,66,17,23,17,32,17, + 17,9,17,13,17,13,17,9,17,0,0,5,13,27,31,9, + 15,9,24,9,24,0,0,5,13,12,26,5,13,5,13,5, + 13,5,13,9,13,9,13,5,13,0,0,8,16,5,21,20, + 27,28,34,36,46,48,52,20,53,57,61,20,61,5,21,12, + 16,12,43,51,55,12,55,9,21,13,21,35,39,35,66,17, + 23,17,32,17,32,0,0,13,21,20,34,13,21,13,21,13, + 21,13,21,17,21,17,21,13,21,0,0,8,12,8,25,5, + 25,12,20,9,21,24,31,32,38,40,50,52,56,24,57,61, + 65,24,65,9,21,13,21,35,39,35,46,17,23,17,32,17, 32,0,0,13,21,20,34,13,21,13,21,13,21,13,21,17, - 21,17,21,0,0,8,12,8,25,5,25,12,20,9,21,24, - 31,32,38,40,50,52,56,24,57,61,65,24,65,9,21,13, - 21,35,39,35,46,17,23,17,32,17,32,0,0,13,21,20, - 34,13,21,13,21,13,21,13,21,17,21,17,21,0,0,12, - 20,9,25,24,31,32,38,40,52,54,58,24,59,63,67,24, - 67,9,25,16,20,16,27,35,39,16,39,13,25,17,25,41, - 45,41,52,21,27,21,38,12,18,5,18,0,0,17,25,24, - 38,17,25,17,25,17,25,17,25,21,25,12,18,5,18,0, - 0,12,18,5,18,17,25,13,21,13,21,5,13,9,17,9, - 17,9,17,115,121,0,0,0,139,4,16,0,144,7,25,7, - 193,9,3,65,13,0,193,13,7,65,22,7,193,34,4,65, - 39,0,193,39,7,65,48,7,193,50,3,65,54,0,193,54, - 7,65,63,7,194,16,4,66,21,0,194,21,7,66,30,7, - 194,45,4,66,50,0,194,50,7,66,59,7,195,12,4,67, - 18,0,195,18,7,67,28,7,195,31,1,67,28,7,195,32, - 1,66,59,7,195,33,1,66,30,7,195,34,1,65,63,7, - 195,35,1,65,48,7,195,36,1,65,22,7,195,37,1,25, - 7,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,115,82,0,0,0,100,1,125,1,116, - 0,124,0,106,1,100,2,131,2,114,15,124,0,106,1,160, - 2,124,0,161,1,125,1,110,10,116,0,124,0,106,1,100, - 3,131,2,114,25,116,3,100,4,131,1,130,1,124,1,100, - 1,117,0,114,34,116,4,124,0,106,5,131,1,125,1,116, - 6,124,0,124,1,131,2,1,0,124,1,83,0,41,5,122, - 43,67,114,101,97,116,101,32,97,32,109,111,100,117,108,101, - 32,98,97,115,101,100,32,111,110,32,116,104,101,32,112,114, - 111,118,105,100,101,100,32,115,112,101,99,46,78,218,13,99, - 114,101,97,116,101,95,109,111,100,117,108,101,218,11,101,120, - 101,99,95,109,111,100,117,108,101,122,66,108,111,97,100,101, - 114,115,32,116,104,97,116,32,100,101,102,105,110,101,32,101, - 120,101,99,95,109,111,100,117,108,101,40,41,32,109,117,115, - 116,32,97,108,115,111,32,100,101,102,105,110,101,32,99,114, - 101,97,116,101,95,109,111,100,117,108,101,40,41,41,7,114, - 10,0,0,0,114,130,0,0,0,114,175,0,0,0,114,94, - 0,0,0,114,21,0,0,0,114,20,0,0,0,114,174,0, - 0,0,169,2,114,117,0,0,0,114,118,0,0,0,115,2, - 0,0,0,32,32,114,5,0,0,0,218,16,109,111,100,117, - 108,101,95,102,114,111,109,95,115,112,101,99,114,178,0,0, - 0,53,2,0,0,115,18,0,0,0,4,3,12,1,14,3, - 12,1,8,1,8,2,10,1,10,1,4,1,115,24,0,0, - 0,4,3,10,1,2,6,14,253,10,1,2,2,2,255,6, - 1,6,1,12,1,10,1,4,1,115,82,0,0,0,14,18, - 5,11,8,15,16,20,16,27,29,44,8,45,5,62,18,22, - 18,29,18,49,44,48,18,49,9,15,9,15,10,17,18,22, - 18,29,31,44,10,45,5,62,15,26,27,61,15,62,9,62, - 8,14,18,22,8,22,5,40,18,29,30,34,30,39,18,40, - 9,15,5,23,24,28,30,36,5,37,5,37,12,18,5,18, - 114,17,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,115,100,0,0,0,124, - 0,106,0,100,1,117,0,114,7,100,2,110,2,124,0,106, - 0,125,1,124,0,106,1,100,1,117,0,114,32,124,0,106, - 2,100,1,117,0,114,25,100,3,160,3,124,1,161,1,83, - 0,100,4,160,3,124,1,124,0,106,2,161,2,83,0,124, - 0,106,4,114,42,100,5,160,3,124,1,124,0,106,1,161, - 2,83,0,100,6,160,3,124,0,106,0,124,0,106,1,161, - 2,83,0,41,7,122,38,82,101,116,117,114,110,32,116,104, - 101,32,114,101,112,114,32,116,111,32,117,115,101,32,102,111, - 114,32,116,104,101,32,109,111,100,117,108,101,46,78,114,123, - 0,0,0,114,124,0,0,0,114,125,0,0,0,114,126,0, - 0,0,250,18,60,109,111,100,117,108,101,32,123,33,114,125, - 32,40,123,125,41,62,41,5,114,20,0,0,0,114,134,0, - 0,0,114,130,0,0,0,114,53,0,0,0,114,146,0,0, - 0,41,2,114,117,0,0,0,114,20,0,0,0,115,2,0, - 0,0,32,32,114,5,0,0,0,114,127,0,0,0,114,127, - 0,0,0,70,2,0,0,115,16,0,0,0,20,3,10,1, - 10,1,10,1,14,2,6,2,14,1,16,2,115,22,0,0, - 0,20,3,8,1,2,9,8,248,2,3,10,254,14,2,4, - 2,2,3,14,254,16,2,115,100,0,0,0,19,23,19,28, - 32,36,19,36,12,51,12,15,12,15,42,46,42,51,5,9, - 8,12,8,19,23,27,8,27,5,71,12,16,12,23,27,31, - 12,31,9,68,20,35,20,48,43,47,20,48,13,48,20,42, - 20,68,50,54,56,60,56,67,20,68,13,68,12,16,12,29, - 9,71,20,45,20,71,53,57,59,63,59,70,20,71,13,71, - 20,40,20,71,48,52,48,57,59,63,59,70,20,71,13,71, - 114,17,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,10,0,0,0,3,0,0,0,115,32,1,0,0,124, - 0,106,0,125,2,116,1,124,2,131,1,53,0,1,0,116, - 2,106,3,160,4,124,2,161,1,124,1,117,1,114,27,100, - 1,160,5,124,2,161,1,125,3,116,6,124,3,124,2,100, - 2,141,2,130,1,9,0,124,0,106,7,100,3,117,0,114, - 53,124,0,106,8,100,3,117,0,114,45,116,6,100,4,124, - 0,106,0,100,2,141,2,130,1,116,9,124,0,124,1,100, - 5,100,6,141,3,1,0,110,40,116,9,124,0,124,1,100, - 5,100,6,141,3,1,0,116,10,124,0,106,7,100,7,131, - 2,115,87,116,11,124,0,106,7,131,1,155,0,100,8,157, - 2,125,3,116,12,160,13,124,3,116,14,161,2,1,0,124, - 0,106,7,160,15,124,2,161,1,1,0,110,6,124,0,106, - 7,160,16,124,1,161,1,1,0,116,2,106,3,160,17,124, - 0,106,0,161,1,125,1,124,1,116,2,106,3,124,0,106, - 0,60,0,110,29,35,0,116,2,106,3,160,17,124,0,106, - 0,161,1,125,1,124,1,116,2,106,3,124,0,106,0,60, - 0,119,0,37,0,35,0,49,0,115,128,119,4,37,0,1, - 0,1,0,1,0,89,0,1,0,1,0,124,1,83,0,9, - 0,100,3,4,0,4,0,131,3,1,0,124,1,83,0,41, - 9,122,70,69,120,101,99,117,116,101,32,116,104,101,32,115, - 112,101,99,39,115,32,115,112,101,99,105,102,105,101,100,32, - 109,111,100,117,108,101,32,105,110,32,97,110,32,101,120,105, - 115,116,105,110,103,32,109,111,100,117,108,101,39,115,32,110, - 97,109,101,115,112,97,99,101,46,122,30,109,111,100,117,108, - 101,32,123,33,114,125,32,110,111,116,32,105,110,32,115,121, - 115,46,109,111,100,117,108,101,115,114,19,0,0,0,78,250, - 14,109,105,115,115,105,110,103,32,108,111,97,100,101,114,84, - 114,169,0,0,0,114,176,0,0,0,250,55,46,101,120,101, - 99,95,109,111,100,117,108,101,40,41,32,110,111,116,32,102, - 111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97, - 99,107,32,116,111,32,108,111,97,100,95,109,111,100,117,108, - 101,40,41,41,18,114,20,0,0,0,114,61,0,0,0,114, - 18,0,0,0,114,113,0,0,0,114,41,0,0,0,114,53, - 0,0,0,114,94,0,0,0,114,130,0,0,0,114,137,0, - 0,0,114,174,0,0,0,114,10,0,0,0,114,6,0,0, - 0,114,109,0,0,0,114,110,0,0,0,218,13,73,109,112, - 111,114,116,87,97,114,110,105,110,103,218,11,108,111,97,100, - 95,109,111,100,117,108,101,114,176,0,0,0,218,3,112,111, - 112,41,4,114,117,0,0,0,114,118,0,0,0,114,20,0, - 0,0,114,116,0,0,0,115,4,0,0,0,32,32,32,32, - 114,5,0,0,0,114,114,0,0,0,114,114,0,0,0,87, - 2,0,0,115,56,0,0,0,6,2,10,1,16,1,10,1, - 12,1,2,1,10,1,10,1,14,1,16,2,14,2,12,1, - 16,1,12,2,14,1,12,2,14,4,14,1,2,128,14,255, - 16,1,8,233,2,128,12,0,4,24,2,255,10,233,4,24, - 115,64,0,0,0,6,2,6,1,4,23,14,234,2,2,10, - 255,12,1,2,20,8,238,2,13,8,244,16,1,16,2,14, - 2,10,1,2,6,8,251,6,1,2,255,12,2,14,1,12, - 2,14,4,14,1,2,128,14,255,24,1,2,128,12,0,4, - 1,12,255,4,1,115,32,1,0,0,12,16,12,21,5,9, - 10,28,29,33,10,34,5,44,5,44,12,15,12,23,12,33, - 28,32,12,33,41,47,12,47,9,46,19,51,19,64,59,63, - 19,64,13,16,19,30,31,34,41,45,19,46,19,46,13,46, - 9,44,16,20,16,27,31,35,16,35,13,52,20,24,20,51, - 55,59,20,59,17,72,27,38,39,55,62,66,62,71,27,72, - 27,72,21,72,17,35,36,40,42,48,59,63,17,64,17,64, - 17,64,17,64,17,35,36,40,42,48,59,63,17,64,17,64, - 17,64,24,31,32,36,32,43,45,58,24,59,17,52,31,43, - 44,48,44,55,31,56,28,59,28,59,28,59,21,24,21,30, - 21,55,36,39,41,54,21,55,21,55,21,25,21,32,21,50, - 45,49,21,50,21,50,21,50,21,25,21,32,21,52,45,51, - 21,52,21,52,22,25,22,33,22,48,38,42,38,47,22,48, - 13,19,38,44,13,16,13,24,25,29,25,34,13,35,13,35, - 0,0,22,25,22,33,22,48,38,42,38,47,22,48,13,19, - 38,44,13,16,13,24,25,29,25,34,13,35,13,44,13,44, - 5,44,5,44,5,44,5,44,0,0,5,44,5,44,5,44, - 5,44,5,44,5,44,12,18,5,18,13,35,5,44,5,44, - 5,44,5,44,5,44,12,18,5,18,115,41,0,0,0,135, - 20,65,59,3,156,65,1,65,43,2,193,29,14,65,59,3, - 193,43,15,65,58,9,193,58,1,65,59,3,193,59,4,65, - 63,11,194,0,3,65,63,11,99,1,0,0,0,0,0,0, - 0,0,0,0,0,8,0,0,0,3,0,0,0,115,22,1, - 0,0,9,0,124,0,106,0,160,1,124,0,106,2,161,1, - 1,0,110,25,35,0,1,0,1,0,1,0,124,0,106,2, - 116,3,106,4,118,0,114,32,116,3,106,4,160,5,124,0, - 106,2,161,1,125,1,124,1,116,3,106,4,124,0,106,2, - 60,0,130,0,37,0,116,3,106,4,160,5,124,0,106,2, - 161,1,125,1,124,1,116,3,106,4,124,0,106,2,60,0, - 116,6,124,1,100,1,100,0,131,3,100,0,117,0,114,71, - 9,0,124,0,106,0,124,1,95,7,110,10,35,0,4,0, - 116,8,121,138,1,0,1,0,1,0,89,0,110,1,37,0, - 116,6,124,1,100,2,100,0,131,3,100,0,117,0,114,109, - 9,0,124,1,106,9,124,1,95,10,116,11,124,1,100,3, - 131,2,115,98,124,0,106,2,160,12,100,4,161,1,100,5, - 25,0,124,1,95,10,110,10,35,0,4,0,116,8,121,137, - 1,0,1,0,1,0,89,0,110,1,37,0,116,6,124,1, - 100,6,100,0,131,3,100,0,117,0,114,134,9,0,124,0, - 124,1,95,13,124,1,83,0,35,0,4,0,116,8,121,136, - 1,0,1,0,1,0,89,0,124,1,83,0,37,0,124,1, - 83,0,119,0,119,0,119,0,41,7,78,114,120,0,0,0, - 114,171,0,0,0,114,167,0,0,0,114,152,0,0,0,114, - 27,0,0,0,114,121,0,0,0,41,14,114,130,0,0,0, - 114,183,0,0,0,114,20,0,0,0,114,18,0,0,0,114, - 113,0,0,0,114,184,0,0,0,114,12,0,0,0,114,120, - 0,0,0,114,2,0,0,0,114,8,0,0,0,114,171,0, - 0,0,114,10,0,0,0,114,153,0,0,0,114,121,0,0, - 0,114,177,0,0,0,115,2,0,0,0,32,32,114,5,0, - 0,0,218,25,95,108,111,97,100,95,98,97,99,107,119,97, - 114,100,95,99,111,109,112,97,116,105,98,108,101,114,185,0, - 0,0,117,2,0,0,115,80,0,0,0,2,3,16,1,2, - 128,6,1,12,1,14,1,12,1,2,1,2,128,14,3,12, - 1,16,1,2,1,10,1,2,128,12,1,4,1,2,128,16, - 1,2,1,8,4,10,1,18,1,4,128,12,1,4,1,2, - 128,16,1,2,1,6,1,4,3,2,128,12,254,2,1,4, - 1,2,128,4,0,2,254,2,251,2,246,115,88,0,0,0, - 2,9,16,251,2,128,6,5,10,253,2,2,14,255,12,1, - 2,1,2,128,14,3,12,1,14,1,4,4,10,254,2,128, - 2,2,2,255,12,1,2,128,14,1,4,9,8,252,8,1, - 20,1,4,128,2,2,2,255,12,1,2,128,14,1,4,4, - 6,254,4,3,2,128,2,255,2,255,10,1,4,1,2,128, - 4,0,2,255,2,251,2,246,115,22,1,0,0,5,14,9, - 13,9,20,9,43,33,37,33,42,9,43,9,43,9,43,0, - 0,5,14,5,14,5,14,12,16,12,21,25,28,25,36,12, - 36,9,44,22,25,22,33,22,48,38,42,38,47,22,48,13, - 19,38,44,13,16,13,24,25,29,25,34,13,35,9,14,0, - 0,14,17,14,25,14,40,30,34,30,39,14,40,5,11,30, - 36,5,8,5,16,17,21,17,26,5,27,8,15,16,22,24, - 36,38,42,8,43,47,51,8,51,5,17,9,17,33,37,33, - 44,13,19,13,30,13,30,0,0,9,17,16,30,9,17,9, - 17,9,17,9,17,13,17,13,17,0,0,8,15,16,22,24, - 37,39,43,8,44,48,52,8,52,5,17,9,17,34,40,34, - 49,13,19,13,31,20,27,28,34,36,46,20,47,13,66,38, - 42,38,47,38,63,59,62,38,63,64,65,38,66,17,23,17, - 35,0,0,0,0,9,17,16,30,9,17,9,17,9,17,9, - 17,13,17,13,17,0,0,8,15,16,22,24,34,36,40,8, - 41,45,49,8,49,5,17,9,17,31,35,13,19,13,28,12, - 18,5,18,0,0,9,17,16,30,9,17,9,17,9,17,9, - 17,13,17,12,18,5,18,0,0,12,18,5,18,9,17,9, - 17,9,17,115,59,0,0,0,129,7,9,0,137,24,33,7, - 184,4,61,0,189,7,65,6,7,193,16,18,65,35,0,193, - 35,7,65,44,7,193,54,3,65,59,0,193,59,7,66,5, - 7,194,8,1,66,5,7,194,9,1,65,44,7,194,10,1, - 65,6,7,99,1,0,0,0,0,0,0,0,0,0,0,0, - 11,0,0,0,3,0,0,0,115,248,0,0,0,124,0,106, - 0,100,0,117,1,114,29,116,1,124,0,106,0,100,1,131, - 2,115,29,116,2,124,0,106,0,131,1,155,0,100,2,157, - 2,125,1,116,3,160,4,124,1,116,5,161,2,1,0,116, - 6,124,0,131,1,83,0,116,7,124,0,131,1,125,2,100, - 3,124,0,95,8,9,0,124,2,116,9,106,10,124,0,106, - 11,60,0,9,0,124,0,106,0,100,0,117,0,114,62,124, - 0,106,12,100,0,117,0,114,61,116,13,100,4,124,0,106, - 11,100,5,141,2,130,1,110,6,124,0,106,0,160,14,124, - 2,161,1,1,0,110,22,35,0,1,0,1,0,1,0,9, - 0,116,9,106,10,124,0,106,11,61,0,130,0,35,0,4, - 0,116,15,121,123,1,0,1,0,1,0,89,0,130,0,37, - 0,37,0,116,9,106,10,160,16,124,0,106,11,161,1,125, - 2,124,2,116,9,106,10,124,0,106,11,60,0,116,17,100, - 6,124,0,106,11,124,0,106,0,131,3,1,0,100,7,124, - 0,95,8,124,2,83,0,35,0,100,7,124,0,95,8,119, - 0,37,0,119,0,41,8,78,114,176,0,0,0,114,181,0, - 0,0,84,114,180,0,0,0,114,19,0,0,0,122,18,105, - 109,112,111,114,116,32,123,33,114,125,32,35,32,123,33,114, - 125,70,41,18,114,130,0,0,0,114,10,0,0,0,114,6, - 0,0,0,114,109,0,0,0,114,110,0,0,0,114,182,0, - 0,0,114,185,0,0,0,114,178,0,0,0,90,13,95,105, - 110,105,116,105,97,108,105,122,105,110,103,114,18,0,0,0, - 114,113,0,0,0,114,20,0,0,0,114,137,0,0,0,114, - 94,0,0,0,114,176,0,0,0,114,76,0,0,0,114,184, - 0,0,0,114,90,0,0,0,41,3,114,117,0,0,0,114, - 116,0,0,0,114,118,0,0,0,115,3,0,0,0,32,32, - 32,114,5,0,0,0,218,14,95,108,111,97,100,95,117,110, - 108,111,99,107,101,100,114,186,0,0,0,153,2,0,0,115, - 66,0,0,0,10,2,12,2,16,1,12,2,8,1,8,2, - 6,5,2,1,12,1,2,1,10,1,10,1,14,1,2,255, - 12,4,4,128,6,1,2,1,10,1,2,3,2,128,12,254, - 2,1,2,1,4,128,14,5,12,1,16,1,6,2,4,2, - 2,128,10,254,2,245,115,76,0,0,0,8,2,2,6,10, - 252,2,4,8,253,6,1,2,255,12,2,8,1,8,2,6, - 5,2,24,12,234,2,13,8,245,2,5,8,252,18,1,12, - 3,4,128,6,6,2,255,10,254,2,3,2,128,2,255,2, - 255,10,1,2,1,4,128,14,5,12,1,16,1,6,2,4, - 2,2,128,10,254,2,246,115,248,0,0,0,8,12,8,19, - 27,31,8,31,5,51,16,23,24,28,24,35,37,50,16,51, - 9,51,23,35,36,40,36,47,23,48,20,52,20,52,20,52, - 13,16,13,22,13,47,28,31,33,46,13,47,13,47,20,45, - 46,50,20,51,13,51,14,30,31,35,14,36,5,11,26,30, - 5,9,5,23,5,35,34,40,9,12,9,20,21,25,21,30, - 9,31,9,18,16,20,16,27,31,35,16,35,13,48,20,24, - 20,51,55,59,20,59,17,72,27,38,39,55,62,66,62,71, - 27,72,27,72,21,72,17,72,17,21,17,28,17,48,41,47, - 17,48,17,48,0,0,0,0,9,18,9,18,9,18,13,21, - 21,24,21,32,33,37,33,42,21,43,13,18,0,0,13,21, - 20,28,13,21,13,21,13,21,13,21,17,21,13,18,0,0, - 0,0,18,21,18,29,18,44,34,38,34,43,18,44,9,15, - 34,40,9,12,9,20,21,25,21,30,9,31,9,25,26,46, - 48,52,48,57,59,63,59,70,9,71,9,71,30,35,9,13, - 9,27,12,18,5,18,0,0,30,35,9,13,9,27,9,35, - 9,35,13,21,115,64,0,0,0,165,6,65,53,0,172,24, - 65,5,0,193,4,1,65,53,0,193,5,4,65,26,7,193, - 10,5,65,16,6,193,15,1,65,26,7,193,16,7,65,25, - 13,193,23,3,65,26,7,193,26,22,65,53,0,193,53,5, - 65,58,7,193,59,1,65,25,13,99,1,0,0,0,0,0, - 0,0,0,0,0,0,9,0,0,0,3,0,0,0,115,58, - 0,0,0,116,0,124,0,106,1,131,1,53,0,1,0,116, - 2,124,0,131,1,2,0,100,1,4,0,4,0,131,3,1, - 0,83,0,35,0,49,0,115,21,119,4,37,0,1,0,1, - 0,1,0,89,0,1,0,1,0,100,1,83,0,41,2,122, - 191,82,101,116,117,114,110,32,97,32,110,101,119,32,109,111, - 100,117,108,101,32,111,98,106,101,99,116,44,32,108,111,97, - 100,101,100,32,98,121,32,116,104,101,32,115,112,101,99,39, - 115,32,108,111,97,100,101,114,46,10,10,32,32,32,32,84, - 104,101,32,109,111,100,117,108,101,32,105,115,32,110,111,116, - 32,97,100,100,101,100,32,116,111,32,105,116,115,32,112,97, - 114,101,110,116,46,10,10,32,32,32,32,73,102,32,97,32, - 109,111,100,117,108,101,32,105,115,32,97,108,114,101,97,100, - 121,32,105,110,32,115,121,115,46,109,111,100,117,108,101,115, - 44,32,116,104,97,116,32,101,120,105,115,116,105,110,103,32, - 109,111,100,117,108,101,32,103,101,116,115,10,32,32,32,32, - 99,108,111,98,98,101,114,101,100,46,10,10,32,32,32,32, - 78,41,3,114,61,0,0,0,114,20,0,0,0,114,186,0, - 0,0,169,1,114,117,0,0,0,115,1,0,0,0,32,114, - 5,0,0,0,114,115,0,0,0,114,115,0,0,0,198,2, - 0,0,115,10,0,0,0,12,9,6,1,22,255,2,128,16, - 0,115,8,0,0,0,8,9,32,1,2,128,16,0,115,58, - 0,0,0,10,28,29,33,29,38,10,39,5,36,5,36,16, - 30,31,35,16,36,5,36,5,36,5,36,5,36,5,36,5, - 36,5,36,5,36,5,36,5,36,5,36,0,0,5,36,5, - 36,5,36,5,36,5,36,5,36,5,36,5,36,115,12,0, - 0,0,133,4,16,3,144,4,20,11,149,3,20,11,99,0, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0, - 0,0,0,115,124,0,0,0,101,0,90,1,100,0,90,2, - 100,1,90,3,100,2,90,4,101,5,100,3,132,0,131,1, - 90,6,101,7,100,12,100,5,132,1,131,1,90,8,101,7, - 100,13,100,6,132,1,131,1,90,9,101,5,100,7,132,0, - 131,1,90,10,101,5,100,8,132,0,131,1,90,11,101,7, - 101,12,100,9,132,0,131,1,131,1,90,13,101,7,101,12, - 100,10,132,0,131,1,131,1,90,14,101,7,101,12,100,11, - 132,0,131,1,131,1,90,15,101,7,101,16,131,1,90,17, - 100,4,83,0,41,14,218,15,66,117,105,108,116,105,110,73, - 109,112,111,114,116,101,114,122,144,77,101,116,97,32,112,97, - 116,104,32,105,109,112,111,114,116,32,102,111,114,32,98,117, - 105,108,116,45,105,110,32,109,111,100,117,108,101,115,46,10, - 10,32,32,32,32,65,108,108,32,109,101,116,104,111,100,115, - 32,97,114,101,32,101,105,116,104,101,114,32,99,108,97,115, - 115,32,111,114,32,115,116,97,116,105,99,32,109,101,116,104, - 111,100,115,32,116,111,32,97,118,111,105,100,32,116,104,101, - 32,110,101,101,100,32,116,111,10,32,32,32,32,105,110,115, - 116,97,110,116,105,97,116,101,32,116,104,101,32,99,108,97, - 115,115,46,10,10,32,32,32,32,122,8,98,117,105,108,116, - 45,105,110,99,1,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,3,0,0,0,115,34,0,0,0,116,0,160, - 1,100,1,116,2,161,2,1,0,100,2,124,0,106,3,155, - 2,100,3,116,4,106,5,155,0,100,4,157,5,83,0,41, - 6,250,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,81,66,117,105,108,116,105,110,73, - 109,112,111,114,116,101,114,46,109,111,100,117,108,101,95,114, - 101,112,114,40,41,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, - 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, - 116,104,111,110,32,51,46,49,50,122,8,60,109,111,100,117, - 108,101,32,122,2,32,40,122,2,41,62,78,41,6,114,109, - 0,0,0,114,110,0,0,0,114,111,0,0,0,114,8,0, - 0,0,114,188,0,0,0,114,164,0,0,0,169,1,114,118, - 0,0,0,115,1,0,0,0,32,114,5,0,0,0,114,122, - 0,0,0,122,27,66,117,105,108,116,105,110,73,109,112,111, - 114,116,101,114,46,109,111,100,117,108,101,95,114,101,112,114, - 224,2,0,0,115,8,0,0,0,6,7,2,1,4,255,22, - 2,115,6,0,0,0,2,7,10,1,22,1,115,34,0,0, - 0,9,18,9,80,24,59,61,79,9,80,9,80,16,75,17, - 23,17,32,16,75,16,75,48,63,48,71,16,75,16,75,16, - 75,9,75,114,17,0,0,0,78,99,4,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,115,42, - 0,0,0,124,2,100,0,117,1,114,6,100,0,83,0,116, - 0,160,1,124,1,161,1,114,19,116,2,124,1,124,0,124, - 0,106,3,100,1,141,3,83,0,100,0,83,0,169,2,78, - 114,163,0,0,0,41,4,114,70,0,0,0,90,10,105,115, - 95,98,117,105,108,116,105,110,114,112,0,0,0,114,164,0, - 0,0,169,4,218,3,99,108,115,114,96,0,0,0,218,4, - 112,97,116,104,218,6,116,97,114,103,101,116,115,4,0,0, - 0,32,32,32,32,114,5,0,0,0,218,9,102,105,110,100, - 95,115,112,101,99,122,25,66,117,105,108,116,105,110,73,109, - 112,111,114,116,101,114,46,102,105,110,100,95,115,112,101,99, - 235,2,0,0,115,10,0,0,0,8,2,4,1,10,1,16, - 1,4,2,115,12,0,0,0,6,2,6,1,8,1,2,3, - 16,254,4,2,115,42,0,0,0,12,16,24,28,12,28,9, - 24,20,24,20,24,12,16,12,37,28,36,12,37,9,24,20, - 36,37,45,47,50,59,62,59,70,20,71,20,71,13,71,20, - 24,20,24,114,17,0,0,0,99,3,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,115,42,0, - 0,0,116,0,160,1,100,1,116,2,161,2,1,0,124,0, - 160,3,124,1,124,2,161,2,125,3,124,3,100,2,117,1, - 114,19,124,3,106,4,83,0,100,2,83,0,41,3,122,175, - 70,105,110,100,32,116,104,101,32,98,117,105,108,116,45,105, - 110,32,109,111,100,117,108,101,46,10,10,32,32,32,32,32, - 32,32,32,73,102,32,39,112,97,116,104,39,32,105,115,32, - 101,118,101,114,32,115,112,101,99,105,102,105,101,100,32,116, - 104,101,110,32,116,104,101,32,115,101,97,114,99,104,32,105, - 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,102, - 97,105,108,117,114,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,122, - 106,66,117,105,108,116,105,110,73,109,112,111,114,116,101,114, - 46,102,105,110,100,95,109,111,100,117,108,101,40,41,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, - 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, - 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, - 49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,101, - 99,40,41,32,105,110,115,116,101,97,100,78,41,5,114,109, - 0,0,0,114,110,0,0,0,114,111,0,0,0,114,196,0, - 0,0,114,130,0,0,0,41,4,114,193,0,0,0,114,96, - 0,0,0,114,194,0,0,0,114,117,0,0,0,115,4,0, - 0,0,32,32,32,32,114,5,0,0,0,218,11,102,105,110, - 100,95,109,111,100,117,108,101,122,27,66,117,105,108,116,105, - 110,73,109,112,111,114,116,101,114,46,102,105,110,100,95,109, - 111,100,117,108,101,244,2,0,0,115,10,0,0,0,6,9, - 2,2,4,254,12,3,18,1,115,12,0,0,0,2,9,2, - 2,2,255,6,1,12,1,18,1,115,42,0,0,0,9,18, - 9,43,24,84,24,42,9,43,9,43,16,19,16,45,30,38, - 40,44,16,45,9,13,31,35,43,47,31,47,16,57,16,20, - 16,27,9,57,53,57,9,57,114,17,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,115,46,0,0,0,124,0,106,0,116,1,106,2,118, - 1,114,17,116,3,100,1,160,4,124,0,106,0,161,1,124, - 0,106,0,100,2,141,2,130,1,116,5,116,6,106,7,124, - 0,131,2,83,0,41,4,122,24,67,114,101,97,116,101,32, - 97,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,114,92,0,0,0,114,19,0,0,0,78,41,8,114,20, - 0,0,0,114,18,0,0,0,114,93,0,0,0,114,94,0, - 0,0,114,53,0,0,0,114,80,0,0,0,114,70,0,0, - 0,90,14,99,114,101,97,116,101,95,98,117,105,108,116,105, - 110,114,187,0,0,0,115,1,0,0,0,32,114,5,0,0, - 0,114,175,0,0,0,122,29,66,117,105,108,116,105,110,73, - 109,112,111,114,116,101,114,46,99,114,101,97,116,101,95,109, - 111,100,117,108,101,3,3,0,0,115,10,0,0,0,12,3, - 12,1,4,1,6,255,12,2,115,10,0,0,0,10,3,2, - 2,12,255,10,1,12,1,115,46,0,0,0,12,16,12,21, - 29,32,29,53,12,53,9,46,19,30,31,62,31,80,70,74, - 70,79,31,80,36,40,36,45,19,46,19,46,13,46,16,41, - 42,46,42,61,63,67,16,68,9,68,114,17,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,115,16,0,0,0,116,0,116,1,106,2,124, - 0,131,2,1,0,100,1,83,0,41,2,122,22,69,120,101, - 99,32,97,32,98,117,105,108,116,45,105,110,32,109,111,100, - 117,108,101,78,41,3,114,80,0,0,0,114,70,0,0,0, - 90,12,101,120,101,99,95,98,117,105,108,116,105,110,114,190, - 0,0,0,115,1,0,0,0,32,114,5,0,0,0,114,176, - 0,0,0,122,27,66,117,105,108,116,105,110,73,109,112,111, - 114,116,101,114,46,101,120,101,99,95,109,111,100,117,108,101, - 11,3,0,0,243,2,0,0,0,16,3,114,198,0,0,0, - 115,16,0,0,0,9,34,35,39,35,52,54,60,9,61,9, - 61,9,61,9,61,114,17,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,243, - 4,0,0,0,100,1,83,0,41,2,122,57,82,101,116,117, - 114,110,32,78,111,110,101,32,97,115,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,115,32,100,111,32,110, - 111,116,32,104,97,118,101,32,99,111,100,101,32,111,98,106, - 101,99,116,115,46,78,114,24,0,0,0,169,2,114,193,0, - 0,0,114,96,0,0,0,115,2,0,0,0,32,32,114,5, - 0,0,0,218,8,103,101,116,95,99,111,100,101,122,24,66, - 117,105,108,116,105,110,73,109,112,111,114,116,101,114,46,103, - 101,116,95,99,111,100,101,16,3,0,0,243,2,0,0,0, - 4,4,114,202,0,0,0,115,4,0,0,0,16,20,16,20, - 114,17,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,3,0,0,0,114,199,0,0,0,41, - 2,122,56,82,101,116,117,114,110,32,78,111,110,101,32,97, - 115,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,115,32,100,111,32,110,111,116,32,104,97,118,101,32,115, - 111,117,114,99,101,32,99,111,100,101,46,78,114,24,0,0, - 0,114,200,0,0,0,115,2,0,0,0,32,32,114,5,0, - 0,0,218,10,103,101,116,95,115,111,117,114,99,101,122,26, + 21,17,21,13,21,0,0,12,20,9,25,24,31,32,38,40, + 52,54,58,24,59,63,67,24,67,9,25,16,20,16,27,35, + 39,16,39,13,25,17,25,41,45,41,52,21,27,21,38,12, + 18,5,18,0,0,17,25,24,38,17,25,17,25,17,25,17, + 25,21,25,12,18,5,18,17,25,0,0,12,18,5,18,115, + 120,0,0,0,139,4,16,0,144,7,26,7,153,1,26,7, + 193,10,3,65,14,0,193,14,7,65,24,7,193,23,1,65, + 24,7,193,36,4,65,41,0,193,41,7,65,51,7,193,50, + 1,65,51,7,193,53,3,65,57,0,193,57,7,66,3,7, + 194,2,1,66,3,7,194,20,4,66,25,0,194,25,7,66, + 35,7,194,34,1,66,35,7,194,50,4,66,55,0,194,55, + 7,67,1,7,195,0,1,67,1,7,195,18,4,67,24,0, + 195,24,7,67,35,7,195,34,1,67,35,7,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,115,82,0,0,0,100,1,125,1,116,0,124,0,106,1, + 100,2,131,2,114,15,124,0,106,1,160,2,124,0,161,1, + 125,1,110,10,116,0,124,0,106,1,100,3,131,2,114,25, + 116,3,100,4,131,1,130,1,124,1,100,1,117,0,114,34, + 116,4,124,0,106,5,131,1,125,1,116,6,124,0,124,1, + 131,2,1,0,124,1,83,0,41,5,122,43,67,114,101,97, + 116,101,32,97,32,109,111,100,117,108,101,32,98,97,115,101, + 100,32,111,110,32,116,104,101,32,112,114,111,118,105,100,101, + 100,32,115,112,101,99,46,78,218,13,99,114,101,97,116,101, + 95,109,111,100,117,108,101,218,11,101,120,101,99,95,109,111, + 100,117,108,101,122,66,108,111,97,100,101,114,115,32,116,104, + 97,116,32,100,101,102,105,110,101,32,101,120,101,99,95,109, + 111,100,117,108,101,40,41,32,109,117,115,116,32,97,108,115, + 111,32,100,101,102,105,110,101,32,99,114,101,97,116,101,95, + 109,111,100,117,108,101,40,41,41,7,114,10,0,0,0,114, + 130,0,0,0,114,175,0,0,0,114,94,0,0,0,114,21, + 0,0,0,114,20,0,0,0,114,174,0,0,0,169,2,114, + 117,0,0,0,114,118,0,0,0,115,2,0,0,0,32,32, + 114,5,0,0,0,218,16,109,111,100,117,108,101,95,102,114, + 111,109,95,115,112,101,99,114,178,0,0,0,53,2,0,0, + 115,18,0,0,0,4,3,12,1,14,3,12,1,8,1,8, + 2,10,1,10,1,4,1,115,24,0,0,0,4,3,10,1, + 2,6,14,253,10,1,2,2,2,255,6,1,6,1,12,1, + 10,1,4,1,115,82,0,0,0,14,18,5,11,8,15,16, + 20,16,27,29,44,8,45,5,62,18,22,18,29,18,49,44, + 48,18,49,9,15,9,15,10,17,18,22,18,29,31,44,10, + 45,5,62,15,26,27,61,15,62,9,62,8,14,18,22,8, + 22,5,40,18,29,30,34,30,39,18,40,9,15,5,23,24, + 28,30,36,5,37,5,37,12,18,5,18,114,17,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,115,100,0,0,0,124,0,106,0,100,1, + 117,0,114,7,100,2,110,2,124,0,106,0,125,1,124,0, + 106,1,100,1,117,0,114,32,124,0,106,2,100,1,117,0, + 114,25,100,3,160,3,124,1,161,1,83,0,100,4,160,3, + 124,1,124,0,106,2,161,2,83,0,124,0,106,4,114,42, + 100,5,160,3,124,1,124,0,106,1,161,2,83,0,100,6, + 160,3,124,0,106,0,124,0,106,1,161,2,83,0,41,7, + 122,38,82,101,116,117,114,110,32,116,104,101,32,114,101,112, + 114,32,116,111,32,117,115,101,32,102,111,114,32,116,104,101, + 32,109,111,100,117,108,101,46,78,114,123,0,0,0,114,124, + 0,0,0,114,125,0,0,0,114,126,0,0,0,250,18,60, + 109,111,100,117,108,101,32,123,33,114,125,32,40,123,125,41, + 62,41,5,114,20,0,0,0,114,134,0,0,0,114,130,0, + 0,0,114,53,0,0,0,114,146,0,0,0,41,2,114,117, + 0,0,0,114,20,0,0,0,115,2,0,0,0,32,32,114, + 5,0,0,0,114,127,0,0,0,114,127,0,0,0,70,2, + 0,0,115,16,0,0,0,20,3,10,1,10,1,10,1,14, + 2,6,2,14,1,16,2,115,22,0,0,0,20,3,8,1, + 2,9,8,248,2,3,10,254,14,2,4,2,2,3,14,254, + 16,2,115,100,0,0,0,19,23,19,28,32,36,19,36,12, + 51,12,15,12,15,42,46,42,51,5,9,8,12,8,19,23, + 27,8,27,5,71,12,16,12,23,27,31,12,31,9,68,20, + 35,20,48,43,47,20,48,13,48,20,42,20,68,50,54,56, + 60,56,67,20,68,13,68,12,16,12,29,9,71,20,45,20, + 71,53,57,59,63,59,70,20,71,13,71,20,40,20,71,48, + 52,48,57,59,63,59,70,20,71,13,71,114,17,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,10,0,0, + 0,3,0,0,0,115,32,1,0,0,124,0,106,0,125,2, + 116,1,124,2,131,1,53,0,1,0,116,2,106,3,160,4, + 124,2,161,1,124,1,117,1,114,27,100,1,160,5,124,2, + 161,1,125,3,116,6,124,3,124,2,100,2,141,2,130,1, + 9,0,124,0,106,7,100,3,117,0,114,53,124,0,106,8, + 100,3,117,0,114,45,116,6,100,4,124,0,106,0,100,2, + 141,2,130,1,116,9,124,0,124,1,100,5,100,6,141,3, + 1,0,110,40,116,9,124,0,124,1,100,5,100,6,141,3, + 1,0,116,10,124,0,106,7,100,7,131,2,115,87,116,11, + 124,0,106,7,131,1,155,0,100,8,157,2,125,3,116,12, + 160,13,124,3,116,14,161,2,1,0,124,0,106,7,160,15, + 124,2,161,1,1,0,110,6,124,0,106,7,160,16,124,1, + 161,1,1,0,116,2,106,3,160,17,124,0,106,0,161,1, + 125,1,124,1,116,2,106,3,124,0,106,0,60,0,110,16, + 35,0,116,2,106,3,160,17,124,0,106,0,161,1,125,1, + 124,1,116,2,106,3,124,0,106,0,60,0,119,0,37,0, + 9,0,100,3,4,0,4,0,131,3,1,0,124,1,83,0, + 35,0,49,0,115,136,119,4,37,0,1,0,1,0,1,0, + 89,0,1,0,1,0,124,1,83,0,41,9,122,70,69,120, + 101,99,117,116,101,32,116,104,101,32,115,112,101,99,39,115, + 32,115,112,101,99,105,102,105,101,100,32,109,111,100,117,108, + 101,32,105,110,32,97,110,32,101,120,105,115,116,105,110,103, + 32,109,111,100,117,108,101,39,115,32,110,97,109,101,115,112, + 97,99,101,46,122,30,109,111,100,117,108,101,32,123,33,114, + 125,32,110,111,116,32,105,110,32,115,121,115,46,109,111,100, + 117,108,101,115,114,19,0,0,0,78,250,14,109,105,115,115, + 105,110,103,32,108,111,97,100,101,114,84,114,169,0,0,0, + 114,176,0,0,0,250,55,46,101,120,101,99,95,109,111,100, + 117,108,101,40,41,32,110,111,116,32,102,111,117,110,100,59, + 32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111, + 32,108,111,97,100,95,109,111,100,117,108,101,40,41,41,18, + 114,20,0,0,0,114,61,0,0,0,114,18,0,0,0,114, + 113,0,0,0,114,41,0,0,0,114,53,0,0,0,114,94, + 0,0,0,114,130,0,0,0,114,137,0,0,0,114,174,0, + 0,0,114,10,0,0,0,114,6,0,0,0,114,109,0,0, + 0,114,110,0,0,0,218,13,73,109,112,111,114,116,87,97, + 114,110,105,110,103,218,11,108,111,97,100,95,109,111,100,117, + 108,101,114,176,0,0,0,218,3,112,111,112,41,4,114,117, + 0,0,0,114,118,0,0,0,114,20,0,0,0,114,116,0, + 0,0,115,4,0,0,0,32,32,32,32,114,5,0,0,0, + 114,114,0,0,0,114,114,0,0,0,87,2,0,0,115,54, + 0,0,0,6,2,10,1,16,1,10,1,12,1,2,1,10, + 1,10,1,14,1,16,2,14,2,12,1,16,1,12,2,14, + 1,12,2,14,4,14,1,2,128,14,255,18,1,10,233,4, + 24,8,232,2,128,12,0,4,24,115,64,0,0,0,6,2, + 6,1,4,23,14,234,2,2,10,255,12,1,2,20,8,238, + 2,13,8,244,16,1,16,2,14,2,10,1,2,6,8,251, + 6,1,2,255,12,2,14,1,12,2,14,4,14,1,2,128, + 14,255,28,1,4,1,8,255,2,128,12,0,4,1,115,32, + 1,0,0,12,16,12,21,5,9,10,28,29,33,10,34,5, + 44,5,44,12,15,12,23,12,33,28,32,12,33,41,47,12, + 47,9,46,19,51,19,64,59,63,19,64,13,16,19,30,31, + 34,41,45,19,46,19,46,13,46,9,44,16,20,16,27,31, + 35,16,35,13,52,20,24,20,51,55,59,20,59,17,72,27, + 38,39,55,62,66,62,71,27,72,27,72,21,72,17,35,36, + 40,42,48,59,63,17,64,17,64,17,64,17,64,17,35,36, + 40,42,48,59,63,17,64,17,64,17,64,24,31,32,36,32, + 43,45,58,24,59,17,52,31,43,44,48,44,55,31,56,28, + 59,28,59,28,59,21,24,21,30,21,55,36,39,41,54,21, + 55,21,55,21,25,21,32,21,50,45,49,21,50,21,50,21, + 50,21,25,21,32,21,52,45,51,21,52,21,52,22,25,22, + 33,22,48,38,42,38,47,22,48,13,19,38,44,13,16,13, + 24,25,29,25,34,13,35,13,35,0,0,22,25,22,33,22, + 48,38,42,38,47,22,48,13,19,38,44,13,16,13,24,25, + 29,25,34,13,35,13,44,13,44,13,35,5,44,5,44,5, + 44,5,44,5,44,12,18,5,18,5,44,5,44,5,44,5, + 44,0,0,5,44,5,44,5,44,5,44,5,44,5,44,12, + 18,5,18,115,41,0,0,0,135,20,66,3,3,156,65,1, + 65,43,2,193,29,14,66,3,3,193,43,15,65,58,9,193, + 58,1,66,3,3,194,3,4,66,7,11,194,8,3,66,7, + 11,99,1,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,3,0,0,0,115,22,1,0,0,9,0,124,0,106, + 0,160,1,124,0,106,2,161,1,1,0,110,25,35,0,1, + 0,1,0,1,0,124,0,106,2,116,3,106,4,118,0,114, + 32,116,3,106,4,160,5,124,0,106,2,161,1,125,1,124, + 1,116,3,106,4,124,0,106,2,60,0,130,0,37,0,116, + 3,106,4,160,5,124,0,106,2,161,1,125,1,124,1,116, + 3,106,4,124,0,106,2,60,0,116,6,124,1,100,1,100, + 0,131,3,100,0,117,0,114,72,9,0,124,0,106,0,124, + 1,95,7,110,11,35,0,4,0,116,8,121,70,1,0,1, + 0,1,0,89,0,110,2,119,0,37,0,116,6,124,1,100, + 2,100,0,131,3,100,0,117,0,114,111,9,0,124,1,106, + 9,124,1,95,10,116,11,124,1,100,3,131,2,115,99,124, + 0,106,2,160,12,100,4,161,1,100,5,25,0,124,1,95, + 10,110,11,35,0,4,0,116,8,121,109,1,0,1,0,1, + 0,89,0,110,2,119,0,37,0,116,6,124,1,100,6,100, + 0,131,3,100,0,117,0,114,137,9,0,124,0,124,1,95, + 13,124,1,83,0,35,0,4,0,116,8,121,135,1,0,1, + 0,1,0,89,0,124,1,83,0,119,0,37,0,124,1,83, + 0,41,7,78,114,120,0,0,0,114,171,0,0,0,114,167, + 0,0,0,114,152,0,0,0,114,27,0,0,0,114,121,0, + 0,0,41,14,114,130,0,0,0,114,183,0,0,0,114,20, + 0,0,0,114,18,0,0,0,114,113,0,0,0,114,184,0, + 0,0,114,12,0,0,0,114,120,0,0,0,114,2,0,0, + 0,114,8,0,0,0,114,171,0,0,0,114,10,0,0,0, + 114,153,0,0,0,114,121,0,0,0,114,177,0,0,0,115, + 2,0,0,0,32,32,114,5,0,0,0,218,25,95,108,111, + 97,100,95,98,97,99,107,119,97,114,100,95,99,111,109,112, + 97,116,105,98,108,101,114,185,0,0,0,117,2,0,0,115, + 80,0,0,0,2,3,16,1,2,128,6,1,12,1,14,1, + 12,1,2,1,2,128,14,3,12,1,16,1,2,1,10,1, + 2,128,12,1,4,1,2,255,2,128,16,2,2,1,8,4, + 10,1,18,1,4,128,12,1,4,1,2,255,2,128,16,2, + 2,1,6,1,4,3,2,128,12,254,2,1,4,1,2,254, + 2,128,4,2,115,84,0,0,0,2,9,16,251,2,128,6, + 5,10,253,2,2,14,255,12,1,2,1,2,128,14,3,12, + 1,14,1,4,4,10,254,2,128,2,2,2,255,14,1,2, + 128,14,1,4,9,8,252,8,1,20,1,4,128,2,2,2, + 255,14,1,2,128,14,1,4,4,6,254,4,3,2,128,2, + 255,2,255,10,1,4,1,2,255,2,128,4,1,115,22,1, + 0,0,5,14,9,13,9,20,9,43,33,37,33,42,9,43, + 9,43,9,43,0,0,5,14,5,14,5,14,12,16,12,21, + 25,28,25,36,12,36,9,44,22,25,22,33,22,48,38,42, + 38,47,22,48,13,19,38,44,13,16,13,24,25,29,25,34, + 13,35,9,14,0,0,14,17,14,25,14,40,30,34,30,39, + 14,40,5,11,30,36,5,8,5,16,17,21,17,26,5,27, + 8,15,16,22,24,36,38,42,8,43,47,51,8,51,5,17, + 9,17,33,37,33,44,13,19,13,30,13,30,0,0,9,17, + 16,30,9,17,9,17,9,17,9,17,13,17,13,17,9,17, + 0,0,8,15,16,22,24,37,39,43,8,44,48,52,8,52, + 5,17,9,17,34,40,34,49,13,19,13,31,20,27,28,34, + 36,46,20,47,13,66,38,42,38,47,38,63,59,62,38,63, + 64,65,38,66,17,23,17,35,0,0,0,0,9,17,16,30, + 9,17,9,17,9,17,9,17,13,17,13,17,9,17,0,0, + 8,15,16,22,24,34,36,40,8,41,45,49,8,49,5,17, + 9,17,31,35,13,19,13,28,12,18,5,18,0,0,9,17, + 16,30,9,17,9,17,9,17,9,17,13,17,12,18,5,18, + 9,17,0,0,12,18,5,18,115,59,0,0,0,129,7,9, + 0,137,24,33,7,184,4,61,0,189,7,65,7,7,193,6, + 1,65,7,7,193,17,18,65,36,0,193,36,7,65,46,7, + 193,45,1,65,46,7,193,56,3,65,61,0,193,61,7,66, + 8,7,194,7,1,66,8,7,99,1,0,0,0,0,0,0, + 0,0,0,0,0,11,0,0,0,3,0,0,0,115,248,0, + 0,0,124,0,106,0,100,0,117,1,114,29,116,1,124,0, + 106,0,100,1,131,2,115,29,116,2,124,0,106,0,131,1, + 155,0,100,2,157,2,125,1,116,3,160,4,124,1,116,5, + 161,2,1,0,116,6,124,0,131,1,83,0,116,7,124,0, + 131,1,125,2,100,3,124,0,95,8,9,0,124,2,116,9, + 106,10,124,0,106,11,60,0,9,0,124,0,106,0,100,0, + 117,0,114,62,124,0,106,12,100,0,117,0,114,61,116,13, + 100,4,124,0,106,11,100,5,141,2,130,1,110,6,124,0, + 106,0,160,14,124,2,161,1,1,0,110,23,35,0,1,0, + 1,0,1,0,9,0,116,9,106,10,124,0,106,11,61,0, + 130,0,35,0,4,0,116,15,121,89,1,0,1,0,1,0, + 89,0,130,0,119,0,37,0,37,0,116,9,106,10,160,16, + 124,0,106,11,161,1,125,2,124,2,116,9,106,10,124,0, + 106,11,60,0,116,17,100,6,124,0,106,11,124,0,106,0, + 131,3,1,0,100,7,124,0,95,8,124,2,83,0,35,0, + 100,7,124,0,95,8,119,0,37,0,41,8,78,114,176,0, + 0,0,114,181,0,0,0,84,114,180,0,0,0,114,19,0, + 0,0,122,18,105,109,112,111,114,116,32,123,33,114,125,32, + 35,32,123,33,114,125,70,41,18,114,130,0,0,0,114,10, + 0,0,0,114,6,0,0,0,114,109,0,0,0,114,110,0, + 0,0,114,182,0,0,0,114,185,0,0,0,114,178,0,0, + 0,90,13,95,105,110,105,116,105,97,108,105,122,105,110,103, + 114,18,0,0,0,114,113,0,0,0,114,20,0,0,0,114, + 137,0,0,0,114,94,0,0,0,114,176,0,0,0,114,76, + 0,0,0,114,184,0,0,0,114,90,0,0,0,41,3,114, + 117,0,0,0,114,116,0,0,0,114,118,0,0,0,115,3, + 0,0,0,32,32,32,114,5,0,0,0,218,14,95,108,111, + 97,100,95,117,110,108,111,99,107,101,100,114,186,0,0,0, + 153,2,0,0,115,66,0,0,0,10,2,12,2,16,1,12, + 2,8,1,8,2,6,5,2,1,12,1,2,1,10,1,10, + 1,14,1,2,255,12,4,4,128,6,1,2,1,10,1,2, + 3,2,128,12,254,2,1,2,1,2,254,4,128,14,7,12, + 1,16,1,6,2,4,2,2,128,10,254,115,76,0,0,0, + 8,2,2,6,10,252,2,4,8,253,6,1,2,255,12,2, + 8,1,8,2,6,5,2,24,12,234,2,13,8,245,2,5, + 8,252,18,1,12,3,4,128,6,6,2,255,10,254,2,3, + 2,128,2,255,2,255,10,1,2,1,2,255,4,128,14,6, + 12,1,16,1,6,2,4,2,2,128,10,254,115,248,0,0, + 0,8,12,8,19,27,31,8,31,5,51,16,23,24,28,24, + 35,37,50,16,51,9,51,23,35,36,40,36,47,23,48,20, + 52,20,52,20,52,13,16,13,22,13,47,28,31,33,46,13, + 47,13,47,20,45,46,50,20,51,13,51,14,30,31,35,14, + 36,5,11,26,30,5,9,5,23,5,35,34,40,9,12,9, + 20,21,25,21,30,9,31,9,18,16,20,16,27,31,35,16, + 35,13,48,20,24,20,51,55,59,20,59,17,72,27,38,39, + 55,62,66,62,71,27,72,27,72,21,72,17,72,17,21,17, + 28,17,48,41,47,17,48,17,48,0,0,0,0,9,18,9, + 18,9,18,13,21,21,24,21,32,33,37,33,42,21,43,13, + 18,0,0,13,21,20,28,13,21,13,21,13,21,13,21,17, + 21,13,18,13,21,0,0,0,0,18,21,18,29,18,44,34, + 38,34,43,18,44,9,15,34,40,9,12,9,20,21,25,21, + 30,9,31,9,25,26,46,48,52,48,57,59,63,59,70,9, + 71,9,71,30,35,9,13,9,27,12,18,5,18,0,0,30, + 35,9,13,9,27,9,35,9,35,115,70,0,0,0,165,6, + 65,54,0,172,24,65,5,0,193,4,1,65,54,0,193,5, + 4,65,27,7,193,10,5,65,16,6,193,15,1,65,27,7, + 193,16,7,65,26,13,193,23,2,65,27,7,193,25,1,65, + 26,13,193,26,1,65,27,7,193,27,22,65,54,0,193,54, + 5,65,59,7,99,1,0,0,0,0,0,0,0,0,0,0, + 0,9,0,0,0,3,0,0,0,115,58,0,0,0,116,0, + 124,0,106,1,131,1,53,0,1,0,116,2,124,0,131,1, + 2,0,100,1,4,0,4,0,131,3,1,0,83,0,35,0, + 49,0,115,21,119,4,37,0,1,0,1,0,1,0,89,0, + 1,0,1,0,100,1,83,0,41,2,122,191,82,101,116,117, + 114,110,32,97,32,110,101,119,32,109,111,100,117,108,101,32, + 111,98,106,101,99,116,44,32,108,111,97,100,101,100,32,98, + 121,32,116,104,101,32,115,112,101,99,39,115,32,108,111,97, + 100,101,114,46,10,10,32,32,32,32,84,104,101,32,109,111, + 100,117,108,101,32,105,115,32,110,111,116,32,97,100,100,101, + 100,32,116,111,32,105,116,115,32,112,97,114,101,110,116,46, + 10,10,32,32,32,32,73,102,32,97,32,109,111,100,117,108, + 101,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32, + 115,121,115,46,109,111,100,117,108,101,115,44,32,116,104,97, + 116,32,101,120,105,115,116,105,110,103,32,109,111,100,117,108, + 101,32,103,101,116,115,10,32,32,32,32,99,108,111,98,98, + 101,114,101,100,46,10,10,32,32,32,32,78,41,3,114,61, + 0,0,0,114,20,0,0,0,114,186,0,0,0,169,1,114, + 117,0,0,0,115,1,0,0,0,32,114,5,0,0,0,114, + 115,0,0,0,114,115,0,0,0,198,2,0,0,115,10,0, + 0,0,12,9,6,1,22,255,2,128,16,0,115,8,0,0, + 0,8,9,32,1,2,128,16,0,115,58,0,0,0,10,28, + 29,33,29,38,10,39,5,36,5,36,16,30,31,35,16,36, + 5,36,5,36,5,36,5,36,5,36,5,36,5,36,5,36, + 5,36,5,36,5,36,0,0,5,36,5,36,5,36,5,36, + 5,36,5,36,5,36,5,36,115,12,0,0,0,133,4,16, + 3,144,4,20,11,149,3,20,11,99,0,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,0,0,0,0,115,124, + 0,0,0,101,0,90,1,100,0,90,2,100,1,90,3,100, + 2,90,4,101,5,100,3,132,0,131,1,90,6,101,7,100, + 12,100,5,132,1,131,1,90,8,101,7,100,13,100,6,132, + 1,131,1,90,9,101,5,100,7,132,0,131,1,90,10,101, + 5,100,8,132,0,131,1,90,11,101,7,101,12,100,9,132, + 0,131,1,131,1,90,13,101,7,101,12,100,10,132,0,131, + 1,131,1,90,14,101,7,101,12,100,11,132,0,131,1,131, + 1,90,15,101,7,101,16,131,1,90,17,100,4,83,0,41, + 14,218,15,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,122,144,77,101,116,97,32,112,97,116,104,32,105,109, + 112,111,114,116,32,102,111,114,32,98,117,105,108,116,45,105, + 110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,32, + 65,108,108,32,109,101,116,104,111,100,115,32,97,114,101,32, + 101,105,116,104,101,114,32,99,108,97,115,115,32,111,114,32, + 115,116,97,116,105,99,32,109,101,116,104,111,100,115,32,116, + 111,32,97,118,111,105,100,32,116,104,101,32,110,101,101,100, + 32,116,111,10,32,32,32,32,105,110,115,116,97,110,116,105, + 97,116,101,32,116,104,101,32,99,108,97,115,115,46,10,10, + 32,32,32,32,122,8,98,117,105,108,116,45,105,110,99,1, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, + 0,0,0,115,34,0,0,0,116,0,160,1,100,1,116,2, + 161,2,1,0,100,2,124,0,106,3,155,2,100,3,116,4, + 106,5,155,0,100,4,157,5,83,0,41,6,250,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,81,66,117,105,108,116,105,110,73,109,112,111,114,116, + 101,114,46,109,111,100,117,108,101,95,114,101,112,114,40,41, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, + 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, + 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, + 51,46,49,50,122,8,60,109,111,100,117,108,101,32,122,2, + 32,40,122,2,41,62,78,41,6,114,109,0,0,0,114,110, + 0,0,0,114,111,0,0,0,114,8,0,0,0,114,188,0, + 0,0,114,164,0,0,0,169,1,114,118,0,0,0,115,1, + 0,0,0,32,114,5,0,0,0,114,122,0,0,0,122,27, 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46, - 103,101,116,95,115,111,117,114,99,101,22,3,0,0,114,202, - 0,0,0,114,202,0,0,0,115,4,0,0,0,16,20,16, - 20,114,17,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,114,199,0,0,0, - 41,3,122,52,82,101,116,117,114,110,32,70,97,108,115,101, - 32,97,115,32,98,117,105,108,116,45,105,110,32,109,111,100, - 117,108,101,115,32,97,114,101,32,110,101,118,101,114,32,112, - 97,99,107,97,103,101,115,46,70,78,114,24,0,0,0,114, - 200,0,0,0,115,2,0,0,0,32,32,114,5,0,0,0, - 114,136,0,0,0,122,26,66,117,105,108,116,105,110,73,109, - 112,111,114,116,101,114,46,105,115,95,112,97,99,107,97,103, - 101,28,3,0,0,114,202,0,0,0,114,202,0,0,0,115, - 4,0,0,0,16,21,16,21,114,17,0,0,0,169,2,78, - 78,114,0,0,0,0,41,18,114,8,0,0,0,114,7,0, - 0,0,114,1,0,0,0,114,9,0,0,0,114,164,0,0, - 0,218,12,115,116,97,116,105,99,109,101,116,104,111,100,114, - 122,0,0,0,218,11,99,108,97,115,115,109,101,116,104,111, - 100,114,196,0,0,0,114,197,0,0,0,114,175,0,0,0, - 114,176,0,0,0,114,102,0,0,0,114,201,0,0,0,114, - 203,0,0,0,114,136,0,0,0,114,119,0,0,0,114,183, - 0,0,0,114,24,0,0,0,114,17,0,0,0,114,5,0, - 0,0,114,188,0,0,0,114,188,0,0,0,213,2,0,0, - 115,46,0,0,0,8,0,4,2,4,7,2,2,8,1,2, - 10,10,1,2,8,10,1,2,14,8,1,2,7,8,1,2, - 4,2,1,10,1,2,4,2,1,10,1,2,4,2,1,10, - 1,12,4,115,92,0,0,0,0,129,0,129,0,129,0,129, - 0,129,8,166,0,127,0,127,0,127,0,127,0,127,2,97, - 0,129,0,129,0,129,0,129,0,129,2,159,0,127,0,127, - 0,127,0,127,0,127,4,99,2,2,8,9,2,2,2,1, - 8,6,2,2,2,1,8,12,2,2,8,6,2,2,8,3, - 2,2,2,1,10,3,2,2,2,1,10,3,2,2,2,1, - 10,3,12,2,115,124,0,0,0,1,1,1,1,1,1,1, - 1,5,8,1,1,15,25,5,12,6,18,5,75,5,75,5, - 75,5,75,6,17,39,43,5,24,5,24,5,24,5,24,6, - 17,41,45,5,57,5,57,5,57,5,57,6,18,5,68,5, - 68,5,68,5,68,6,18,5,61,5,61,5,61,5,61,6, - 17,6,23,5,20,5,20,5,20,5,20,5,20,6,17,6, - 23,5,20,5,20,5,20,5,20,5,20,6,17,6,23,5, - 21,5,21,5,21,5,21,5,21,19,30,31,48,19,49,5, - 16,5,16,5,16,114,17,0,0,0,114,188,0,0,0,99, - 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 0,0,0,0,115,126,0,0,0,101,0,90,1,100,0,90, - 2,100,1,90,3,100,2,90,4,101,5,100,3,132,0,131, - 1,90,6,101,7,100,13,100,5,132,1,131,1,90,8,101, - 7,100,14,100,6,132,1,131,1,90,9,101,5,100,7,132, - 0,131,1,90,10,101,5,100,8,132,0,131,1,90,11,101, - 7,100,9,132,0,131,1,90,12,101,7,101,13,100,10,132, - 0,131,1,131,1,90,14,101,7,101,13,100,11,132,0,131, - 1,131,1,90,15,101,7,101,13,100,12,132,0,131,1,131, - 1,90,16,100,4,83,0,41,15,218,14,70,114,111,122,101, - 110,73,109,112,111,114,116,101,114,122,142,77,101,116,97,32, - 112,97,116,104,32,105,109,112,111,114,116,32,102,111,114,32, - 102,114,111,122,101,110,32,109,111,100,117,108,101,115,46,10, - 10,32,32,32,32,65,108,108,32,109,101,116,104,111,100,115, - 32,97,114,101,32,101,105,116,104,101,114,32,99,108,97,115, - 115,32,111,114,32,115,116,97,116,105,99,32,109,101,116,104, - 111,100,115,32,116,111,32,97,118,111,105,100,32,116,104,101, - 32,110,101,101,100,32,116,111,10,32,32,32,32,105,110,115, - 116,97,110,116,105,97,116,101,32,116,104,101,32,99,108,97, - 115,115,46,10,10,32,32,32,32,90,6,102,114,111,122,101, - 110,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,0,0,0,115,28,0,0,0,116,0,160,1,100, - 1,116,2,161,2,1,0,100,2,160,3,124,0,106,4,116, - 5,106,6,161,2,83,0,41,4,114,189,0,0,0,122,80, - 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,109, - 111,100,117,108,101,95,114,101,112,114,40,41,32,105,115,32, - 100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115, - 108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97, - 108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50, - 114,179,0,0,0,78,41,7,114,109,0,0,0,114,110,0, - 0,0,114,111,0,0,0,114,53,0,0,0,114,8,0,0, - 0,114,207,0,0,0,114,164,0,0,0,41,1,218,1,109, - 115,1,0,0,0,32,114,5,0,0,0,114,122,0,0,0, - 122,26,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 46,109,111,100,117,108,101,95,114,101,112,114,48,3,0,0, - 115,8,0,0,0,6,7,2,1,4,255,16,2,115,6,0, - 0,0,2,7,10,1,16,1,115,28,0,0,0,9,18,9, - 80,24,59,61,79,9,80,9,80,16,36,16,79,44,45,44, - 54,56,70,56,78,16,79,9,79,114,17,0,0,0,78,99, - 4,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 3,0,0,0,115,30,0,0,0,116,0,160,1,124,1,161, - 1,114,13,116,2,124,1,124,0,124,0,106,3,100,1,141, - 3,83,0,100,0,83,0,114,191,0,0,0,41,4,114,70, - 0,0,0,114,106,0,0,0,114,112,0,0,0,114,164,0, - 0,0,114,192,0,0,0,115,4,0,0,0,32,32,32,32, - 114,5,0,0,0,114,196,0,0,0,122,24,70,114,111,122, - 101,110,73,109,112,111,114,116,101,114,46,102,105,110,100,95, - 115,112,101,99,59,3,0,0,115,6,0,0,0,10,2,16, - 1,4,2,115,8,0,0,0,8,2,2,3,16,254,4,2, - 115,30,0,0,0,12,16,12,36,27,35,12,36,9,24,20, - 36,37,45,47,50,59,62,59,70,20,71,20,71,13,71,20, - 24,20,24,114,17,0,0,0,99,3,0,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,3,0,0,0,115,30,0, - 0,0,116,0,160,1,100,1,116,2,161,2,1,0,116,3, - 160,4,124,1,161,1,114,13,124,0,83,0,100,2,83,0, - 41,3,122,93,70,105,110,100,32,97,32,102,114,111,122,101, - 110,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, + 109,111,100,117,108,101,95,114,101,112,114,224,2,0,0,115, + 8,0,0,0,6,7,2,1,4,255,22,2,115,6,0,0, + 0,2,7,10,1,22,1,115,34,0,0,0,9,18,9,80, + 24,59,61,79,9,80,9,80,16,75,17,23,17,32,16,75, + 16,75,48,63,48,71,16,75,16,75,16,75,9,75,114,17, + 0,0,0,78,99,4,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,115,42,0,0,0,124,2, + 100,0,117,1,114,6,100,0,83,0,116,0,160,1,124,1, + 161,1,114,19,116,2,124,1,124,0,124,0,106,3,100,1, + 141,3,83,0,100,0,83,0,169,2,78,114,163,0,0,0, + 41,4,114,70,0,0,0,90,10,105,115,95,98,117,105,108, + 116,105,110,114,112,0,0,0,114,164,0,0,0,169,4,218, + 3,99,108,115,114,96,0,0,0,218,4,112,97,116,104,218, + 6,116,97,114,103,101,116,115,4,0,0,0,32,32,32,32, + 114,5,0,0,0,218,9,102,105,110,100,95,115,112,101,99, + 122,25,66,117,105,108,116,105,110,73,109,112,111,114,116,101, + 114,46,102,105,110,100,95,115,112,101,99,235,2,0,0,115, + 10,0,0,0,8,2,4,1,10,1,16,1,4,2,115,12, + 0,0,0,6,2,6,1,8,1,2,3,16,254,4,2,115, + 42,0,0,0,12,16,24,28,12,28,9,24,20,24,20,24, + 12,16,12,37,28,36,12,37,9,24,20,36,37,45,47,50, + 59,62,59,70,20,71,20,71,13,71,20,24,20,24,114,17, + 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,115,42,0,0,0,116,0,160, + 1,100,1,116,2,161,2,1,0,124,0,160,3,124,1,124, + 2,161,2,125,3,124,3,100,2,117,1,114,19,124,3,106, + 4,83,0,100,2,83,0,41,3,122,175,70,105,110,100,32, + 116,104,101,32,98,117,105,108,116,45,105,110,32,109,111,100, + 117,108,101,46,10,10,32,32,32,32,32,32,32,32,73,102, + 32,39,112,97,116,104,39,32,105,115,32,101,118,101,114,32, + 115,112,101,99,105,102,105,101,100,32,116,104,101,110,32,116, + 104,101,32,115,101,97,114,99,104,32,105,115,32,99,111,110, + 115,105,100,101,114,101,100,32,97,32,102,97,105,108,117,114, + 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,122,106,66,117,105,108, + 116,105,110,73,109,112,111,114,116,101,114,46,102,105,110,100, + 95,109,111,100,117,108,101,40,41,32,105,115,32,100,101,112, + 114,101,99,97,116,101,100,32,97,110,100,32,115,108,97,116, + 101,100,32,102,111,114,32,114,101,109,111,118,97,108,32,105, + 110,32,80,121,116,104,111,110,32,51,46,49,50,59,32,117, 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,122,105,70,114,111,122,101,110,73,109,112,111,114,116,101, - 114,46,102,105,110,100,95,109,111,100,117,108,101,40,41,32, - 105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110, - 100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109, - 111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51, - 46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,112, - 101,99,40,41,32,105,110,115,116,101,97,100,78,41,5,114, - 109,0,0,0,114,110,0,0,0,114,111,0,0,0,114,70, - 0,0,0,114,106,0,0,0,41,3,114,193,0,0,0,114, - 96,0,0,0,114,194,0,0,0,115,3,0,0,0,32,32, - 32,114,5,0,0,0,114,197,0,0,0,122,26,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,102,105,110,100, - 95,109,111,100,117,108,101,66,3,0,0,115,8,0,0,0, - 6,7,2,2,4,254,18,3,115,10,0,0,0,2,7,2, - 2,2,255,6,1,18,1,115,30,0,0,0,9,18,9,43, - 24,84,24,42,9,43,9,43,23,27,23,47,38,46,23,47, - 16,57,16,19,9,57,53,57,9,57,114,17,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 3,0,0,0,114,199,0,0,0,41,2,122,42,85,115,101, - 32,100,101,102,97,117,108,116,32,115,101,109,97,110,116,105, - 99,115,32,102,111,114,32,109,111,100,117,108,101,32,99,114, - 101,97,116,105,111,110,46,78,114,24,0,0,0,114,187,0, - 0,0,115,1,0,0,0,32,114,5,0,0,0,114,175,0, - 0,0,122,28,70,114,111,122,101,110,73,109,112,111,114,116, + 110,115,116,101,97,100,78,41,5,114,109,0,0,0,114,110, + 0,0,0,114,111,0,0,0,114,196,0,0,0,114,130,0, + 0,0,41,4,114,193,0,0,0,114,96,0,0,0,114,194, + 0,0,0,114,117,0,0,0,115,4,0,0,0,32,32,32, + 32,114,5,0,0,0,218,11,102,105,110,100,95,109,111,100, + 117,108,101,122,27,66,117,105,108,116,105,110,73,109,112,111, + 114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,101, + 244,2,0,0,115,10,0,0,0,6,9,2,2,4,254,12, + 3,18,1,115,12,0,0,0,2,9,2,2,2,255,6,1, + 12,1,18,1,115,42,0,0,0,9,18,9,43,24,84,24, + 42,9,43,9,43,16,19,16,45,30,38,40,44,16,45,9, + 13,31,35,43,47,31,47,16,57,16,20,16,27,9,57,53, + 57,9,57,114,17,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,115,46,0, + 0,0,124,0,106,0,116,1,106,2,118,1,114,17,116,3, + 100,1,160,4,124,0,106,0,161,1,124,0,106,0,100,2, + 141,2,130,1,116,5,116,6,106,7,124,0,131,2,83,0, + 41,4,122,24,67,114,101,97,116,101,32,97,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,114,92,0,0, + 0,114,19,0,0,0,78,41,8,114,20,0,0,0,114,18, + 0,0,0,114,93,0,0,0,114,94,0,0,0,114,53,0, + 0,0,114,80,0,0,0,114,70,0,0,0,90,14,99,114, + 101,97,116,101,95,98,117,105,108,116,105,110,114,187,0,0, + 0,115,1,0,0,0,32,114,5,0,0,0,114,175,0,0, + 0,122,29,66,117,105,108,116,105,110,73,109,112,111,114,116, 101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101, - 78,3,0,0,115,2,0,0,0,4,0,115,2,0,0,0, - 4,128,115,4,0,0,0,0,0,0,0,114,17,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, - 0,3,0,0,0,115,64,0,0,0,124,0,106,0,106,1, - 125,1,116,2,160,3,124,1,161,1,115,18,116,4,100,1, - 160,5,124,1,161,1,124,1,100,2,141,2,130,1,116,6, - 116,2,106,7,124,1,131,2,125,2,116,8,124,2,124,0, - 106,9,131,2,1,0,100,0,83,0,114,105,0,0,0,41, - 10,114,121,0,0,0,114,20,0,0,0,114,70,0,0,0, - 114,106,0,0,0,114,94,0,0,0,114,53,0,0,0,114, - 80,0,0,0,218,17,103,101,116,95,102,114,111,122,101,110, - 95,111,98,106,101,99,116,218,4,101,120,101,99,114,13,0, - 0,0,41,3,114,118,0,0,0,114,20,0,0,0,218,4, - 99,111,100,101,115,3,0,0,0,32,32,32,114,5,0,0, - 0,114,176,0,0,0,122,26,70,114,111,122,101,110,73,109, - 112,111,114,116,101,114,46,101,120,101,99,95,109,111,100,117, - 108,101,82,3,0,0,115,14,0,0,0,8,2,10,1,10, - 1,2,1,6,255,12,2,16,1,115,14,0,0,0,8,2, - 8,1,2,2,10,255,8,1,12,1,16,1,115,64,0,0, - 0,16,22,16,31,16,36,9,13,16,20,16,36,31,35,16, - 36,9,41,19,30,31,60,31,73,68,72,31,73,36,40,19, - 41,19,41,13,41,16,41,42,46,42,64,66,70,16,71,9, - 13,9,13,14,18,20,26,20,35,9,36,9,36,9,36,9, - 36,114,17,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,115,10,0,0,0, - 116,0,124,0,124,1,131,2,83,0,41,2,122,95,76,111, - 97,100,32,97,32,102,114,111,122,101,110,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,78,41,1, - 114,119,0,0,0,114,200,0,0,0,115,2,0,0,0,32, - 32,114,5,0,0,0,114,183,0,0,0,122,26,70,114,111, - 122,101,110,73,109,112,111,114,116,101,114,46,108,111,97,100, - 95,109,111,100,117,108,101,91,3,0,0,243,2,0,0,0, - 10,8,114,212,0,0,0,115,10,0,0,0,16,33,34,37, - 39,47,16,48,9,48,114,17,0,0,0,99,2,0,0,0, - 0,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0, - 243,10,0,0,0,116,0,160,1,124,1,161,1,83,0,41, - 2,122,45,82,101,116,117,114,110,32,116,104,101,32,99,111, - 100,101,32,111,98,106,101,99,116,32,102,111,114,32,116,104, - 101,32,102,114,111,122,101,110,32,109,111,100,117,108,101,46, - 78,41,2,114,70,0,0,0,114,209,0,0,0,114,200,0, - 0,0,115,2,0,0,0,32,32,114,5,0,0,0,114,201, - 0,0,0,122,23,70,114,111,122,101,110,73,109,112,111,114, - 116,101,114,46,103,101,116,95,99,111,100,101,101,3,0,0, - 243,2,0,0,0,10,4,114,214,0,0,0,115,10,0,0, - 0,16,20,16,48,39,47,16,48,9,48,114,17,0,0,0, + 3,3,0,0,115,10,0,0,0,12,3,12,1,4,1,6, + 255,12,2,115,10,0,0,0,10,3,2,2,12,255,10,1, + 12,1,115,46,0,0,0,12,16,12,21,29,32,29,53,12, + 53,9,46,19,30,31,62,31,80,70,74,70,79,31,80,36, + 40,36,45,19,46,19,46,13,46,16,41,42,46,42,61,63, + 67,16,68,9,68,114,17,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,115, + 16,0,0,0,116,0,116,1,106,2,124,0,131,2,1,0, + 100,1,83,0,41,2,122,22,69,120,101,99,32,97,32,98, + 117,105,108,116,45,105,110,32,109,111,100,117,108,101,78,41, + 3,114,80,0,0,0,114,70,0,0,0,90,12,101,120,101, + 99,95,98,117,105,108,116,105,110,114,190,0,0,0,115,1, + 0,0,0,32,114,5,0,0,0,114,176,0,0,0,122,27, + 66,117,105,108,116,105,110,73,109,112,111,114,116,101,114,46, + 101,120,101,99,95,109,111,100,117,108,101,11,3,0,0,243, + 2,0,0,0,16,3,114,198,0,0,0,115,16,0,0,0, + 9,34,35,39,35,52,54,60,9,61,9,61,9,61,9,61, + 114,17,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,243,4,0,0,0,100, + 1,83,0,41,2,122,57,82,101,116,117,114,110,32,78,111, + 110,101,32,97,115,32,98,117,105,108,116,45,105,110,32,109, + 111,100,117,108,101,115,32,100,111,32,110,111,116,32,104,97, + 118,101,32,99,111,100,101,32,111,98,106,101,99,116,115,46, + 78,114,24,0,0,0,169,2,114,193,0,0,0,114,96,0, + 0,0,115,2,0,0,0,32,32,114,5,0,0,0,218,8, + 103,101,116,95,99,111,100,101,122,24,66,117,105,108,116,105, + 110,73,109,112,111,114,116,101,114,46,103,101,116,95,99,111, + 100,101,16,3,0,0,243,2,0,0,0,4,4,114,202,0, + 0,0,115,4,0,0,0,16,20,16,20,114,17,0,0,0, 99,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,3,0,0,0,114,199,0,0,0,41,2,122,54,82,101, - 116,117,114,110,32,78,111,110,101,32,97,115,32,102,114,111, - 122,101,110,32,109,111,100,117,108,101,115,32,100,111,32,110, - 111,116,32,104,97,118,101,32,115,111,117,114,99,101,32,99, - 111,100,101,46,78,114,24,0,0,0,114,200,0,0,0,115, - 2,0,0,0,32,32,114,5,0,0,0,114,203,0,0,0, - 122,25,70,114,111,122,101,110,73,109,112,111,114,116,101,114, - 46,103,101,116,95,115,111,117,114,99,101,107,3,0,0,114, - 202,0,0,0,114,202,0,0,0,115,4,0,0,0,16,20, - 16,20,114,17,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,114,213,0,0, - 0,41,2,122,46,82,101,116,117,114,110,32,84,114,117,101, - 32,105,102,32,116,104,101,32,102,114,111,122,101,110,32,109, - 111,100,117,108,101,32,105,115,32,97,32,112,97,99,107,97, - 103,101,46,78,41,2,114,70,0,0,0,90,17,105,115,95, - 102,114,111,122,101,110,95,112,97,99,107,97,103,101,114,200, - 0,0,0,115,2,0,0,0,32,32,114,5,0,0,0,114, - 136,0,0,0,122,25,70,114,111,122,101,110,73,109,112,111, - 114,116,101,114,46,105,115,95,112,97,99,107,97,103,101,113, - 3,0,0,114,214,0,0,0,114,214,0,0,0,115,10,0, - 0,0,16,20,16,48,39,47,16,48,9,48,114,17,0,0, - 0,114,204,0,0,0,114,0,0,0,0,41,17,114,8,0, - 0,0,114,7,0,0,0,114,1,0,0,0,114,9,0,0, - 0,114,164,0,0,0,114,205,0,0,0,114,122,0,0,0, - 114,206,0,0,0,114,196,0,0,0,114,197,0,0,0,114, - 175,0,0,0,114,176,0,0,0,114,183,0,0,0,114,108, - 0,0,0,114,201,0,0,0,114,203,0,0,0,114,136,0, - 0,0,114,24,0,0,0,114,17,0,0,0,114,5,0,0, - 0,114,207,0,0,0,114,207,0,0,0,37,3,0,0,115, - 48,0,0,0,8,0,4,2,4,7,2,2,8,1,2,10, - 10,1,2,6,10,1,2,11,8,1,2,3,8,1,2,8, - 8,1,2,9,2,1,10,1,2,4,2,1,10,1,2,4, - 2,1,14,1,115,102,0,0,0,0,129,0,129,0,129,0, - 129,0,129,0,129,8,213,0,127,0,127,0,127,0,127,0, - 127,0,127,2,50,0,129,0,129,0,129,0,129,0,129,0, - 129,2,206,0,127,0,127,0,127,0,127,0,127,0,127,4, - 52,2,2,8,9,2,2,2,1,8,4,2,2,2,1,8, - 9,2,2,8,2,2,2,8,7,2,2,8,8,2,2,2, - 1,10,3,2,2,2,1,10,3,2,2,2,1,14,3,115, - 126,0,0,0,1,1,1,1,1,1,1,1,5,8,1,1, - 15,23,5,12,6,18,5,79,5,79,5,79,5,79,6,17, + 0,3,0,0,0,114,199,0,0,0,41,2,122,56,82,101, + 116,117,114,110,32,78,111,110,101,32,97,115,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,115,32,100,111, + 32,110,111,116,32,104,97,118,101,32,115,111,117,114,99,101, + 32,99,111,100,101,46,78,114,24,0,0,0,114,200,0,0, + 0,115,2,0,0,0,32,32,114,5,0,0,0,218,10,103, + 101,116,95,115,111,117,114,99,101,122,26,66,117,105,108,116, + 105,110,73,109,112,111,114,116,101,114,46,103,101,116,95,115, + 111,117,114,99,101,22,3,0,0,114,202,0,0,0,114,202, + 0,0,0,115,4,0,0,0,16,20,16,20,114,17,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,114,199,0,0,0,41,3,122,52,82, + 101,116,117,114,110,32,70,97,108,115,101,32,97,115,32,98, + 117,105,108,116,45,105,110,32,109,111,100,117,108,101,115,32, + 97,114,101,32,110,101,118,101,114,32,112,97,99,107,97,103, + 101,115,46,70,78,114,24,0,0,0,114,200,0,0,0,115, + 2,0,0,0,32,32,114,5,0,0,0,114,136,0,0,0, + 122,26,66,117,105,108,116,105,110,73,109,112,111,114,116,101, + 114,46,105,115,95,112,97,99,107,97,103,101,28,3,0,0, + 114,202,0,0,0,114,202,0,0,0,115,4,0,0,0,16, + 21,16,21,114,17,0,0,0,169,2,78,78,114,0,0,0, + 0,41,18,114,8,0,0,0,114,7,0,0,0,114,1,0, + 0,0,114,9,0,0,0,114,164,0,0,0,218,12,115,116, + 97,116,105,99,109,101,116,104,111,100,114,122,0,0,0,218, + 11,99,108,97,115,115,109,101,116,104,111,100,114,196,0,0, + 0,114,197,0,0,0,114,175,0,0,0,114,176,0,0,0, + 114,102,0,0,0,114,201,0,0,0,114,203,0,0,0,114, + 136,0,0,0,114,119,0,0,0,114,183,0,0,0,114,24, + 0,0,0,114,17,0,0,0,114,5,0,0,0,114,188,0, + 0,0,114,188,0,0,0,213,2,0,0,115,46,0,0,0, + 8,0,4,2,4,7,2,2,8,1,2,10,10,1,2,8, + 10,1,2,14,8,1,2,7,8,1,2,4,2,1,10,1, + 2,4,2,1,10,1,2,4,2,1,10,1,12,4,115,92, + 0,0,0,0,129,0,129,0,129,0,129,0,129,8,166,0, + 127,0,127,0,127,0,127,0,127,2,97,0,129,0,129,0, + 129,0,129,0,129,2,159,0,127,0,127,0,127,0,127,0, + 127,4,99,2,2,8,9,2,2,2,1,8,6,2,2,2, + 1,8,12,2,2,8,6,2,2,8,3,2,2,2,1,10, + 3,2,2,2,1,10,3,2,2,2,1,10,3,12,2,115, + 124,0,0,0,1,1,1,1,1,1,1,1,5,8,1,1, + 15,25,5,12,6,18,5,75,5,75,5,75,5,75,6,17, 39,43,5,24,5,24,5,24,5,24,6,17,41,45,5,57, - 5,57,5,57,5,57,6,18,5,57,5,57,5,57,5,57, - 6,18,5,36,5,36,5,36,5,36,6,17,5,48,5,48, - 5,48,5,48,6,17,6,22,5,48,5,48,5,48,5,48, - 5,48,6,17,6,22,5,20,5,20,5,20,5,20,5,20, - 6,17,6,22,5,48,5,48,5,48,5,48,5,48,5,48, - 5,48,114,17,0,0,0,114,207,0,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, - 0,115,28,0,0,0,101,0,90,1,100,0,90,2,100,1, - 90,3,100,2,132,0,90,4,100,3,132,0,90,5,100,4, - 83,0,41,5,218,18,95,73,109,112,111,114,116,76,111,99, - 107,67,111,110,116,101,120,116,122,36,67,111,110,116,101,120, - 116,32,109,97,110,97,103,101,114,32,102,111,114,32,116,104, - 101,32,105,109,112,111,114,116,32,108,111,99,107,46,99,1, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,243,12,0,0,0,116,0,160,1,161,0,1,0, - 100,1,83,0,41,2,122,24,65,99,113,117,105,114,101,32, - 116,104,101,32,105,109,112,111,114,116,32,108,111,99,107,46, - 78,41,2,114,70,0,0,0,114,71,0,0,0,114,55,0, - 0,0,115,1,0,0,0,32,114,5,0,0,0,114,65,0, - 0,0,122,28,95,73,109,112,111,114,116,76,111,99,107,67, - 111,110,116,101,120,116,46,95,95,101,110,116,101,114,95,95, - 126,3,0,0,243,2,0,0,0,12,2,114,217,0,0,0, - 115,12,0,0,0,9,13,9,28,9,28,9,28,9,28,9, - 28,114,17,0,0,0,99,4,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,3,0,0,0,114,216,0,0,0, - 41,2,122,60,82,101,108,101,97,115,101,32,116,104,101,32, - 105,109,112,111,114,116,32,108,111,99,107,32,114,101,103,97, - 114,100,108,101,115,115,32,111,102,32,97,110,121,32,114,97, - 105,115,101,100,32,101,120,99,101,112,116,105,111,110,115,46, - 78,41,2,114,70,0,0,0,114,73,0,0,0,41,4,114, - 35,0,0,0,218,8,101,120,99,95,116,121,112,101,218,9, - 101,120,99,95,118,97,108,117,101,218,13,101,120,99,95,116, - 114,97,99,101,98,97,99,107,115,4,0,0,0,32,32,32, - 32,114,5,0,0,0,114,68,0,0,0,122,27,95,73,109, - 112,111,114,116,76,111,99,107,67,111,110,116,101,120,116,46, - 95,95,101,120,105,116,95,95,130,3,0,0,114,217,0,0, - 0,114,217,0,0,0,115,12,0,0,0,9,13,9,28,9, - 28,9,28,9,28,9,28,114,17,0,0,0,78,41,6,114, - 8,0,0,0,114,7,0,0,0,114,1,0,0,0,114,9, - 0,0,0,114,65,0,0,0,114,68,0,0,0,114,24,0, - 0,0,114,17,0,0,0,114,5,0,0,0,114,215,0,0, - 0,114,215,0,0,0,122,3,0,0,115,8,0,0,0,8, - 0,4,2,6,2,10,4,115,66,0,0,0,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,8,255,0,127,0,127, - 0,127,0,127,0,127,0,127,0,127,2,3,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,2,253,0,127,0,127, - 0,127,0,127,0,127,0,127,0,127,6,7,10,4,115,28, - 0,0,0,1,1,1,1,1,1,1,1,5,47,1,1,5, - 28,5,28,5,28,5,28,5,28,5,28,5,28,5,28,114, - 17,0,0,0,114,215,0,0,0,99,3,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,115,64, - 0,0,0,124,1,160,0,100,1,124,2,100,2,24,0,161, - 2,125,3,116,1,124,3,131,1,124,2,107,0,114,18,116, - 2,100,3,131,1,130,1,124,3,100,4,25,0,125,4,124, - 0,114,30,100,5,160,3,124,4,124,0,161,2,83,0,124, - 4,83,0,41,7,122,50,82,101,115,111,108,118,101,32,97, - 32,114,101,108,97,116,105,118,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,116,111,32,97,110,32,97,98,115,111, - 108,117,116,101,32,111,110,101,46,114,152,0,0,0,114,45, - 0,0,0,122,50,97,116,116,101,109,112,116,101,100,32,114, - 101,108,97,116,105,118,101,32,105,109,112,111,114,116,32,98, - 101,121,111,110,100,32,116,111,112,45,108,101,118,101,108,32, - 112,97,99,107,97,103,101,114,27,0,0,0,250,5,123,125, - 46,123,125,78,41,4,218,6,114,115,112,108,105,116,218,3, - 108,101,110,114,94,0,0,0,114,53,0,0,0,41,5,114, - 20,0,0,0,218,7,112,97,99,107,97,103,101,218,5,108, - 101,118,101,108,90,4,98,105,116,115,90,4,98,97,115,101, - 115,5,0,0,0,32,32,32,32,32,114,5,0,0,0,218, - 13,95,114,101,115,111,108,118,101,95,110,97,109,101,114,226, - 0,0,0,135,3,0,0,115,10,0,0,0,16,2,12,1, - 8,1,8,1,20,1,115,10,0,0,0,16,2,10,1,10, - 1,8,1,20,1,115,64,0,0,0,12,19,12,42,27,30, - 32,37,40,41,32,41,12,42,5,9,8,11,12,16,8,17, - 20,25,8,25,5,80,15,26,27,79,15,80,9,80,12,16, - 17,18,12,19,5,9,42,46,12,56,12,19,12,38,27,31, - 33,37,12,38,5,56,52,56,5,56,114,17,0,0,0,99, - 3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,115,60,0,0,0,116,0,124,0,131,1,155, - 0,100,1,157,2,125,3,116,1,160,2,124,3,116,3,161, - 2,1,0,124,0,160,4,124,1,124,2,161,2,125,4,124, - 4,100,0,117,0,114,25,100,0,83,0,116,5,124,1,124, - 4,131,2,83,0,41,2,78,122,53,46,102,105,110,100,95, - 115,112,101,99,40,41,32,110,111,116,32,102,111,117,110,100, - 59,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116, - 111,32,102,105,110,100,95,109,111,100,117,108,101,40,41,41, - 6,114,6,0,0,0,114,109,0,0,0,114,110,0,0,0, - 114,182,0,0,0,114,197,0,0,0,114,112,0,0,0,41, - 5,218,6,102,105,110,100,101,114,114,20,0,0,0,114,194, - 0,0,0,114,116,0,0,0,114,130,0,0,0,115,5,0, - 0,0,32,32,32,32,32,114,5,0,0,0,218,17,95,102, - 105,110,100,95,115,112,101,99,95,108,101,103,97,99,121,114, - 228,0,0,0,144,3,0,0,115,12,0,0,0,14,1,12, - 2,12,1,8,1,4,1,10,1,115,16,0,0,0,6,1, - 6,1,2,255,12,2,12,1,6,1,6,1,10,1,115,60, - 0,0,0,15,27,28,34,15,35,12,59,12,59,12,59,5, - 8,5,14,5,39,20,23,25,38,5,39,5,39,14,20,14, - 44,33,37,39,43,14,44,5,11,8,14,18,22,8,22,5, - 20,16,20,16,20,12,28,29,33,35,41,12,42,5,42,114, - 17,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,10,0,0,0,3,0,0,0,115,30,1,0,0,116,0, - 106,1,125,3,124,3,100,1,117,0,114,11,116,2,100,2, - 131,1,130,1,124,3,115,19,116,3,160,4,100,3,116,5, - 161,2,1,0,124,0,116,0,106,6,118,0,125,4,124,3, - 68,0,93,112,125,5,116,7,131,0,53,0,1,0,9,0, - 124,5,106,8,125,6,110,27,35,0,4,0,116,9,121,142, - 1,0,1,0,1,0,116,10,124,5,124,0,124,1,131,3, - 125,7,124,7,100,1,117,0,114,61,89,0,100,1,4,0, - 4,0,131,3,1,0,113,26,89,0,110,7,37,0,124,6, - 124,0,124,1,124,2,131,3,125,7,100,1,4,0,4,0, - 131,3,1,0,110,11,35,0,49,0,115,81,119,4,37,0, - 1,0,1,0,1,0,89,0,1,0,1,0,124,7,100,1, - 117,1,114,138,124,4,115,134,124,0,116,0,106,6,118,0, - 114,134,116,0,106,6,124,0,25,0,125,8,9,0,124,8, - 106,11,125,9,110,14,35,0,4,0,116,9,121,141,1,0, - 1,0,1,0,124,7,6,0,89,0,2,0,1,0,83,0, - 37,0,124,9,100,1,117,0,114,130,124,7,2,0,1,0, - 83,0,124,9,2,0,1,0,83,0,124,7,2,0,1,0, - 83,0,113,26,100,1,83,0,119,0,119,0,41,4,122,21, - 70,105,110,100,32,97,32,109,111,100,117,108,101,39,115,32, - 115,112,101,99,46,78,122,53,115,121,115,46,109,101,116,97, - 95,112,97,116,104,32,105,115,32,78,111,110,101,44,32,80, - 121,116,104,111,110,32,105,115,32,108,105,107,101,108,121,32, - 115,104,117,116,116,105,110,103,32,100,111,119,110,122,22,115, - 121,115,46,109,101,116,97,95,112,97,116,104,32,105,115,32, - 101,109,112,116,121,41,12,114,18,0,0,0,218,9,109,101, - 116,97,95,112,97,116,104,114,94,0,0,0,114,109,0,0, - 0,114,110,0,0,0,114,182,0,0,0,114,113,0,0,0, - 114,215,0,0,0,114,196,0,0,0,114,2,0,0,0,114, - 228,0,0,0,114,121,0,0,0,41,10,114,20,0,0,0, - 114,194,0,0,0,114,195,0,0,0,114,229,0,0,0,90, - 9,105,115,95,114,101,108,111,97,100,114,227,0,0,0,114, - 196,0,0,0,114,117,0,0,0,114,118,0,0,0,114,121, - 0,0,0,115,10,0,0,0,32,32,32,32,32,32,32,32, - 32,32,114,5,0,0,0,218,10,95,102,105,110,100,95,115, - 112,101,99,114,230,0,0,0,154,3,0,0,115,78,0,0, - 0,6,2,8,1,8,2,4,3,12,1,10,5,8,1,8, - 1,2,1,8,1,2,128,12,1,12,1,8,1,2,1,12, - 250,4,5,2,128,12,3,20,248,2,128,12,0,8,9,14, - 2,10,1,2,1,8,1,2,128,12,1,12,4,2,128,8, - 2,8,1,8,2,8,2,2,239,4,19,2,243,2,244,115, - 98,0,0,0,6,2,6,1,2,3,2,255,6,1,2,2, - 14,1,10,5,2,1,4,29,2,227,4,1,6,8,8,250, - 2,128,2,4,2,253,8,3,12,254,6,1,4,1,12,2, - 4,254,2,128,32,2,2,128,12,0,6,1,2,17,2,241, - 2,15,8,241,2,15,10,242,2,12,8,246,2,128,2,5, - 2,252,20,4,2,128,6,2,2,3,8,254,8,2,10,2, - 4,2,2,247,2,243,115,30,1,0,0,17,20,17,30,5, - 14,8,17,21,25,8,25,5,43,15,26,27,42,15,43,9, - 43,12,21,5,64,9,18,9,64,24,48,50,63,9,64,9, - 64,17,21,25,28,25,36,17,36,5,14,19,28,5,20,5, - 20,9,15,14,32,14,34,9,53,9,53,13,53,29,35,29, - 45,17,26,17,26,0,0,13,29,20,34,13,29,13,29,13, - 29,13,29,24,41,42,48,50,54,56,60,24,61,17,21,20, - 24,28,32,20,32,17,29,21,29,9,53,9,53,9,53,9, - 53,9,53,9,53,17,29,17,29,0,0,24,33,34,38,40, - 44,46,52,24,53,17,21,9,53,9,53,9,53,9,53,9, - 53,9,53,9,53,9,53,9,53,9,53,0,0,9,53,9, - 53,9,53,9,53,9,53,9,53,12,16,24,28,12,28,9, - 28,20,29,13,28,34,38,42,45,42,53,34,53,13,28,26, - 29,26,37,38,42,26,43,17,23,17,40,32,38,32,47,21, - 29,21,29,0,0,17,32,24,38,17,32,17,32,17,32,17, - 32,28,32,21,32,21,32,21,32,21,32,21,32,0,0,24, - 32,36,40,24,40,21,40,32,36,25,36,25,36,25,36,32, - 40,25,40,25,40,25,40,24,28,17,28,17,28,17,28,9, - 28,16,20,16,20,17,32,13,29,115,63,0,0,0,159,1, - 65,12,5,161,3,37,4,164,1,65,12,5,165,17,63,11, - 182,1,65,12,5,189,9,65,12,5,193,12,4,65,16,13, - 193,17,3,65,16,13,193,40,3,65,44,2,193,44,9,65, - 57,9,194,13,1,65,57,9,194,14,1,63,11,99,3,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,115,110,0,0,0,116,0,124,0,116,1,131,2,115, - 14,116,2,100,1,160,3,116,4,124,0,131,1,161,1,131, - 1,130,1,124,2,100,2,107,0,114,22,116,5,100,3,131, - 1,130,1,124,2,100,2,107,4,114,41,116,0,124,1,116, - 1,131,2,115,35,116,2,100,4,131,1,130,1,124,1,115, - 41,116,6,100,5,131,1,130,1,124,0,115,53,124,2,100, - 2,107,2,114,51,116,5,100,6,131,1,130,1,100,7,83, - 0,100,7,83,0,41,8,122,28,86,101,114,105,102,121,32, - 97,114,103,117,109,101,110,116,115,32,97,114,101,32,34,115, - 97,110,101,34,46,122,31,109,111,100,117,108,101,32,110,97, - 109,101,32,109,117,115,116,32,98,101,32,115,116,114,44,32, - 110,111,116,32,123,125,114,27,0,0,0,122,18,108,101,118, - 101,108,32,109,117,115,116,32,98,101,32,62,61,32,48,122, - 31,95,95,112,97,99,107,97,103,101,95,95,32,110,111,116, - 32,115,101,116,32,116,111,32,97,32,115,116,114,105,110,103, - 122,54,97,116,116,101,109,112,116,101,100,32,114,101,108,97, - 116,105,118,101,32,105,109,112,111,114,116,32,119,105,116,104, - 32,110,111,32,107,110,111,119,110,32,112,97,114,101,110,116, - 32,112,97,99,107,97,103,101,122,17,69,109,112,116,121,32, - 109,111,100,117,108,101,32,110,97,109,101,78,41,7,218,10, - 105,115,105,110,115,116,97,110,99,101,218,3,115,116,114,218, - 9,84,121,112,101,69,114,114,111,114,114,53,0,0,0,114, - 3,0,0,0,218,10,86,97,108,117,101,69,114,114,111,114, - 114,94,0,0,0,169,3,114,20,0,0,0,114,224,0,0, - 0,114,225,0,0,0,115,3,0,0,0,32,32,32,114,5, - 0,0,0,218,13,95,115,97,110,105,116,121,95,99,104,101, - 99,107,114,236,0,0,0,201,3,0,0,115,24,0,0,0, - 10,2,18,1,8,1,8,1,8,1,10,1,8,1,4,1, - 8,1,12,2,8,1,8,255,115,34,0,0,0,8,2,20, - 1,6,1,10,1,6,1,2,5,8,252,2,4,8,253,2, - 1,2,2,2,255,6,1,2,1,2,1,6,255,18,1,115, - 110,0,0,0,12,22,23,27,29,32,12,33,5,78,15,24, - 25,58,25,77,66,70,71,75,66,76,25,77,15,78,9,78, - 8,13,16,17,8,17,5,47,15,25,26,46,15,47,9,47, - 8,13,16,17,8,17,5,41,16,26,27,34,36,39,16,40, - 9,41,19,28,29,62,19,63,13,63,18,25,9,41,19,30, - 31,40,19,41,13,41,12,16,5,46,21,26,30,31,21,31, - 5,46,15,25,26,45,15,46,9,46,5,46,5,46,5,46, - 5,46,114,17,0,0,0,122,16,78,111,32,109,111,100,117, - 108,101,32,110,97,109,101,100,32,122,4,123,33,114,125,99, - 2,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 3,0,0,0,115,86,1,0,0,100,0,125,2,124,0,160, - 0,100,1,161,1,100,2,25,0,125,3,100,0,125,4,124, - 3,114,76,124,3,116,1,106,2,118,1,114,23,116,3,124, - 1,124,3,131,2,1,0,124,0,116,1,106,2,118,0,114, - 33,116,1,106,2,124,0,25,0,83,0,116,1,106,2,124, - 3,25,0,125,5,9,0,124,5,106,4,125,2,110,23,35, - 0,4,0,116,5,121,170,1,0,1,0,1,0,116,6,100, - 3,23,0,160,7,124,0,124,3,161,2,125,6,116,8,124, - 6,124,0,100,4,141,2,100,0,130,2,37,0,124,5,106, + 5,57,5,57,5,57,6,18,5,68,5,68,5,68,5,68, + 6,18,5,61,5,61,5,61,5,61,6,17,6,23,5,20, + 5,20,5,20,5,20,5,20,6,17,6,23,5,20,5,20, + 5,20,5,20,5,20,6,17,6,23,5,21,5,21,5,21, + 5,21,5,21,19,30,31,48,19,49,5,16,5,16,5,16, + 114,17,0,0,0,114,188,0,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,115, + 126,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, + 100,2,90,4,101,5,100,3,132,0,131,1,90,6,101,7, + 100,13,100,5,132,1,131,1,90,8,101,7,100,14,100,6, + 132,1,131,1,90,9,101,5,100,7,132,0,131,1,90,10, + 101,5,100,8,132,0,131,1,90,11,101,7,100,9,132,0, + 131,1,90,12,101,7,101,13,100,10,132,0,131,1,131,1, + 90,14,101,7,101,13,100,11,132,0,131,1,131,1,90,15, + 101,7,101,13,100,12,132,0,131,1,131,1,90,16,100,4, + 83,0,41,15,218,14,70,114,111,122,101,110,73,109,112,111, + 114,116,101,114,122,142,77,101,116,97,32,112,97,116,104,32, + 105,109,112,111,114,116,32,102,111,114,32,102,114,111,122,101, + 110,32,109,111,100,117,108,101,115,46,10,10,32,32,32,32, + 65,108,108,32,109,101,116,104,111,100,115,32,97,114,101,32, + 101,105,116,104,101,114,32,99,108,97,115,115,32,111,114,32, + 115,116,97,116,105,99,32,109,101,116,104,111,100,115,32,116, + 111,32,97,118,111,105,100,32,116,104,101,32,110,101,101,100, + 32,116,111,10,32,32,32,32,105,110,115,116,97,110,116,105, + 97,116,101,32,116,104,101,32,99,108,97,115,115,46,10,10, + 32,32,32,32,90,6,102,114,111,122,101,110,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, + 0,115,28,0,0,0,116,0,160,1,100,1,116,2,161,2, + 1,0,100,2,160,3,124,0,106,4,116,5,106,6,161,2, + 83,0,41,4,114,189,0,0,0,122,80,70,114,111,122,101, + 110,73,109,112,111,114,116,101,114,46,109,111,100,117,108,101, + 95,114,101,112,114,40,41,32,105,115,32,100,101,112,114,101, + 99,97,116,101,100,32,97,110,100,32,115,108,97,116,101,100, + 32,102,111,114,32,114,101,109,111,118,97,108,32,105,110,32, + 80,121,116,104,111,110,32,51,46,49,50,114,179,0,0,0, + 78,41,7,114,109,0,0,0,114,110,0,0,0,114,111,0, + 0,0,114,53,0,0,0,114,8,0,0,0,114,207,0,0, + 0,114,164,0,0,0,41,1,218,1,109,115,1,0,0,0, + 32,114,5,0,0,0,114,122,0,0,0,122,26,70,114,111, + 122,101,110,73,109,112,111,114,116,101,114,46,109,111,100,117, + 108,101,95,114,101,112,114,48,3,0,0,115,8,0,0,0, + 6,7,2,1,4,255,16,2,115,6,0,0,0,2,7,10, + 1,16,1,115,28,0,0,0,9,18,9,80,24,59,61,79, + 9,80,9,80,16,36,16,79,44,45,44,54,56,70,56,78, + 16,79,9,79,114,17,0,0,0,78,99,4,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,115, + 30,0,0,0,116,0,160,1,124,1,161,1,114,13,116,2, + 124,1,124,0,124,0,106,3,100,1,141,3,83,0,100,0, + 83,0,114,191,0,0,0,41,4,114,70,0,0,0,114,106, + 0,0,0,114,112,0,0,0,114,164,0,0,0,114,192,0, + 0,0,115,4,0,0,0,32,32,32,32,114,5,0,0,0, + 114,196,0,0,0,122,24,70,114,111,122,101,110,73,109,112, + 111,114,116,101,114,46,102,105,110,100,95,115,112,101,99,59, + 3,0,0,115,6,0,0,0,10,2,16,1,4,2,115,8, + 0,0,0,8,2,2,3,16,254,4,2,115,30,0,0,0, + 12,16,12,36,27,35,12,36,9,24,20,36,37,45,47,50, + 59,62,59,70,20,71,20,71,13,71,20,24,20,24,114,17, + 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,115,30,0,0,0,116,0,160, + 1,100,1,116,2,161,2,1,0,116,3,160,4,124,1,161, + 1,114,13,124,0,83,0,100,2,83,0,41,3,122,93,70, + 105,110,100,32,97,32,102,114,111,122,101,110,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,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,122,105,70,114, + 111,122,101,110,73,109,112,111,114,116,101,114,46,102,105,110, + 100,95,109,111,100,117,108,101,40,41,32,105,115,32,100,101, + 112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97, + 116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32, + 105,110,32,80,121,116,104,111,110,32,51,46,49,50,59,32, + 117,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32, + 105,110,115,116,101,97,100,78,41,5,114,109,0,0,0,114, + 110,0,0,0,114,111,0,0,0,114,70,0,0,0,114,106, + 0,0,0,41,3,114,193,0,0,0,114,96,0,0,0,114, + 194,0,0,0,115,3,0,0,0,32,32,32,114,5,0,0, + 0,114,197,0,0,0,122,26,70,114,111,122,101,110,73,109, + 112,111,114,116,101,114,46,102,105,110,100,95,109,111,100,117, + 108,101,66,3,0,0,115,8,0,0,0,6,7,2,2,4, + 254,18,3,115,10,0,0,0,2,7,2,2,2,255,6,1, + 18,1,115,30,0,0,0,9,18,9,43,24,84,24,42,9, + 43,9,43,23,27,23,47,38,46,23,47,16,57,16,19,9, + 57,53,57,9,57,114,17,0,0,0,99,1,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,114, + 199,0,0,0,41,2,122,42,85,115,101,32,100,101,102,97, + 117,108,116,32,115,101,109,97,110,116,105,99,115,32,102,111, + 114,32,109,111,100,117,108,101,32,99,114,101,97,116,105,111, + 110,46,78,114,24,0,0,0,114,187,0,0,0,115,1,0, + 0,0,32,114,5,0,0,0,114,175,0,0,0,122,28,70, + 114,111,122,101,110,73,109,112,111,114,116,101,114,46,99,114, + 101,97,116,101,95,109,111,100,117,108,101,78,3,0,0,115, + 2,0,0,0,4,0,115,2,0,0,0,4,128,115,4,0, + 0,0,0,0,0,0,114,17,0,0,0,99,1,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 115,64,0,0,0,124,0,106,0,106,1,125,1,116,2,160, + 3,124,1,161,1,115,18,116,4,100,1,160,5,124,1,161, + 1,124,1,100,2,141,2,130,1,116,6,116,2,106,7,124, + 1,131,2,125,2,116,8,124,2,124,0,106,9,131,2,1, + 0,100,0,83,0,114,105,0,0,0,41,10,114,121,0,0, + 0,114,20,0,0,0,114,70,0,0,0,114,106,0,0,0, + 114,94,0,0,0,114,53,0,0,0,114,80,0,0,0,218, + 17,103,101,116,95,102,114,111,122,101,110,95,111,98,106,101, + 99,116,218,4,101,120,101,99,114,13,0,0,0,41,3,114, + 118,0,0,0,114,20,0,0,0,218,4,99,111,100,101,115, + 3,0,0,0,32,32,32,114,5,0,0,0,114,176,0,0, + 0,122,26,70,114,111,122,101,110,73,109,112,111,114,116,101, + 114,46,101,120,101,99,95,109,111,100,117,108,101,82,3,0, + 0,115,14,0,0,0,8,2,10,1,10,1,2,1,6,255, + 12,2,16,1,115,14,0,0,0,8,2,8,1,2,2,10, + 255,8,1,12,1,16,1,115,64,0,0,0,16,22,16,31, + 16,36,9,13,16,20,16,36,31,35,16,36,9,41,19,30, + 31,60,31,73,68,72,31,73,36,40,19,41,19,41,13,41, + 16,41,42,46,42,64,66,70,16,71,9,13,9,13,14,18, + 20,26,20,35,9,36,9,36,9,36,9,36,114,17,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,115,10,0,0,0,116,0,124,0,124, + 1,131,2,83,0,41,2,122,95,76,111,97,100,32,97,32, + 102,114,111,122,101,110,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,78,41,1,114,119,0,0,0, + 114,200,0,0,0,115,2,0,0,0,32,32,114,5,0,0, + 0,114,183,0,0,0,122,26,70,114,111,122,101,110,73,109, + 112,111,114,116,101,114,46,108,111,97,100,95,109,111,100,117, + 108,101,91,3,0,0,243,2,0,0,0,10,8,114,212,0, + 0,0,115,10,0,0,0,16,33,34,37,39,47,16,48,9, + 48,114,17,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,3,0,0,0,3,0,0,0,243,10,0,0,0, + 116,0,160,1,124,1,161,1,83,0,41,2,122,45,82,101, + 116,117,114,110,32,116,104,101,32,99,111,100,101,32,111,98, + 106,101,99,116,32,102,111,114,32,116,104,101,32,102,114,111, + 122,101,110,32,109,111,100,117,108,101,46,78,41,2,114,70, + 0,0,0,114,209,0,0,0,114,200,0,0,0,115,2,0, + 0,0,32,32,114,5,0,0,0,114,201,0,0,0,122,23, + 70,114,111,122,101,110,73,109,112,111,114,116,101,114,46,103, + 101,116,95,99,111,100,101,101,3,0,0,243,2,0,0,0, + 10,4,114,214,0,0,0,115,10,0,0,0,16,20,16,48, + 39,47,16,48,9,48,114,17,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0, + 114,199,0,0,0,41,2,122,54,82,101,116,117,114,110,32, + 78,111,110,101,32,97,115,32,102,114,111,122,101,110,32,109, + 111,100,117,108,101,115,32,100,111,32,110,111,116,32,104,97, + 118,101,32,115,111,117,114,99,101,32,99,111,100,101,46,78, + 114,24,0,0,0,114,200,0,0,0,115,2,0,0,0,32, + 32,114,5,0,0,0,114,203,0,0,0,122,25,70,114,111, + 122,101,110,73,109,112,111,114,116,101,114,46,103,101,116,95, + 115,111,117,114,99,101,107,3,0,0,114,202,0,0,0,114, + 202,0,0,0,115,4,0,0,0,16,20,16,20,114,17,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3, + 0,0,0,3,0,0,0,114,213,0,0,0,41,2,122,46, + 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,116, + 104,101,32,102,114,111,122,101,110,32,109,111,100,117,108,101, + 32,105,115,32,97,32,112,97,99,107,97,103,101,46,78,41, + 2,114,70,0,0,0,90,17,105,115,95,102,114,111,122,101, + 110,95,112,97,99,107,97,103,101,114,200,0,0,0,115,2, + 0,0,0,32,32,114,5,0,0,0,114,136,0,0,0,122, + 25,70,114,111,122,101,110,73,109,112,111,114,116,101,114,46, + 105,115,95,112,97,99,107,97,103,101,113,3,0,0,114,214, + 0,0,0,114,214,0,0,0,115,10,0,0,0,16,20,16, + 48,39,47,16,48,9,48,114,17,0,0,0,114,204,0,0, + 0,114,0,0,0,0,41,17,114,8,0,0,0,114,7,0, + 0,0,114,1,0,0,0,114,9,0,0,0,114,164,0,0, + 0,114,205,0,0,0,114,122,0,0,0,114,206,0,0,0, + 114,196,0,0,0,114,197,0,0,0,114,175,0,0,0,114, + 176,0,0,0,114,183,0,0,0,114,108,0,0,0,114,201, + 0,0,0,114,203,0,0,0,114,136,0,0,0,114,24,0, + 0,0,114,17,0,0,0,114,5,0,0,0,114,207,0,0, + 0,114,207,0,0,0,37,3,0,0,115,48,0,0,0,8, + 0,4,2,4,7,2,2,8,1,2,10,10,1,2,6,10, + 1,2,11,8,1,2,3,8,1,2,8,8,1,2,9,2, + 1,10,1,2,4,2,1,10,1,2,4,2,1,14,1,115, + 102,0,0,0,0,129,0,129,0,129,0,129,0,129,0,129, + 8,213,0,127,0,127,0,127,0,127,0,127,0,127,2,50, + 0,129,0,129,0,129,0,129,0,129,0,129,2,206,0,127, + 0,127,0,127,0,127,0,127,0,127,4,52,2,2,8,9, + 2,2,2,1,8,4,2,2,2,1,8,9,2,2,8,2, + 2,2,8,7,2,2,8,8,2,2,2,1,10,3,2,2, + 2,1,10,3,2,2,2,1,14,3,115,126,0,0,0,1, + 1,1,1,1,1,1,1,5,8,1,1,15,23,5,12,6, + 18,5,79,5,79,5,79,5,79,6,17,39,43,5,24,5, + 24,5,24,5,24,6,17,41,45,5,57,5,57,5,57,5, + 57,6,18,5,57,5,57,5,57,5,57,6,18,5,36,5, + 36,5,36,5,36,6,17,5,48,5,48,5,48,5,48,6, + 17,6,22,5,48,5,48,5,48,5,48,5,48,6,17,6, + 22,5,20,5,20,5,20,5,20,5,20,6,17,6,22,5, + 48,5,48,5,48,5,48,5,48,5,48,5,48,114,17,0, + 0,0,114,207,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,0,0,0,0,115,28,0,0, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, + 0,90,4,100,3,132,0,90,5,100,4,83,0,41,5,218, + 18,95,73,109,112,111,114,116,76,111,99,107,67,111,110,116, + 101,120,116,122,36,67,111,110,116,101,120,116,32,109,97,110, + 97,103,101,114,32,102,111,114,32,116,104,101,32,105,109,112, + 111,114,116,32,108,111,99,107,46,99,1,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,3,0,0,0,243,12, + 0,0,0,116,0,160,1,161,0,1,0,100,1,83,0,41, + 2,122,24,65,99,113,117,105,114,101,32,116,104,101,32,105, + 109,112,111,114,116,32,108,111,99,107,46,78,41,2,114,70, + 0,0,0,114,71,0,0,0,114,55,0,0,0,115,1,0, + 0,0,32,114,5,0,0,0,114,65,0,0,0,122,28,95, + 73,109,112,111,114,116,76,111,99,107,67,111,110,116,101,120, + 116,46,95,95,101,110,116,101,114,95,95,126,3,0,0,243, + 2,0,0,0,12,2,114,217,0,0,0,115,12,0,0,0, + 9,13,9,28,9,28,9,28,9,28,9,28,114,17,0,0, + 0,99,4,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,114,216,0,0,0,41,2,122,60,82, + 101,108,101,97,115,101,32,116,104,101,32,105,109,112,111,114, + 116,32,108,111,99,107,32,114,101,103,97,114,100,108,101,115, + 115,32,111,102,32,97,110,121,32,114,97,105,115,101,100,32, + 101,120,99,101,112,116,105,111,110,115,46,78,41,2,114,70, + 0,0,0,114,73,0,0,0,41,4,114,35,0,0,0,218, + 8,101,120,99,95,116,121,112,101,218,9,101,120,99,95,118, + 97,108,117,101,218,13,101,120,99,95,116,114,97,99,101,98, + 97,99,107,115,4,0,0,0,32,32,32,32,114,5,0,0, + 0,114,68,0,0,0,122,27,95,73,109,112,111,114,116,76, + 111,99,107,67,111,110,116,101,120,116,46,95,95,101,120,105, + 116,95,95,130,3,0,0,114,217,0,0,0,114,217,0,0, + 0,115,12,0,0,0,9,13,9,28,9,28,9,28,9,28, + 9,28,114,17,0,0,0,78,41,6,114,8,0,0,0,114, + 7,0,0,0,114,1,0,0,0,114,9,0,0,0,114,65, + 0,0,0,114,68,0,0,0,114,24,0,0,0,114,17,0, + 0,0,114,5,0,0,0,114,215,0,0,0,114,215,0,0, + 0,122,3,0,0,115,8,0,0,0,8,0,4,2,6,2, + 10,4,115,66,0,0,0,0,129,0,129,0,129,0,129,0, + 129,0,129,0,129,8,255,0,127,0,127,0,127,0,127,0, + 127,0,127,0,127,2,3,0,129,0,129,0,129,0,129,0, + 129,0,129,0,129,2,253,0,127,0,127,0,127,0,127,0, + 127,0,127,0,127,6,7,10,4,115,28,0,0,0,1,1, + 1,1,1,1,1,1,5,47,1,1,5,28,5,28,5,28, + 5,28,5,28,5,28,5,28,5,28,114,17,0,0,0,114, + 215,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,115,64,0,0,0,124,1, + 160,0,100,1,124,2,100,2,24,0,161,2,125,3,116,1, + 124,3,131,1,124,2,107,0,114,18,116,2,100,3,131,1, + 130,1,124,3,100,4,25,0,125,4,124,0,114,30,100,5, + 160,3,124,4,124,0,161,2,83,0,124,4,83,0,41,7, + 122,50,82,101,115,111,108,118,101,32,97,32,114,101,108,97, + 116,105,118,101,32,109,111,100,117,108,101,32,110,97,109,101, + 32,116,111,32,97,110,32,97,98,115,111,108,117,116,101,32, + 111,110,101,46,114,152,0,0,0,114,45,0,0,0,122,50, + 97,116,116,101,109,112,116,101,100,32,114,101,108,97,116,105, + 118,101,32,105,109,112,111,114,116,32,98,101,121,111,110,100, + 32,116,111,112,45,108,101,118,101,108,32,112,97,99,107,97, + 103,101,114,27,0,0,0,250,5,123,125,46,123,125,78,41, + 4,218,6,114,115,112,108,105,116,218,3,108,101,110,114,94, + 0,0,0,114,53,0,0,0,41,5,114,20,0,0,0,218, + 7,112,97,99,107,97,103,101,218,5,108,101,118,101,108,90, + 4,98,105,116,115,90,4,98,97,115,101,115,5,0,0,0, + 32,32,32,32,32,114,5,0,0,0,218,13,95,114,101,115, + 111,108,118,101,95,110,97,109,101,114,226,0,0,0,135,3, + 0,0,115,10,0,0,0,16,2,12,1,8,1,8,1,20, + 1,115,10,0,0,0,16,2,10,1,10,1,8,1,20,1, + 115,64,0,0,0,12,19,12,42,27,30,32,37,40,41,32, + 41,12,42,5,9,8,11,12,16,8,17,20,25,8,25,5, + 80,15,26,27,79,15,80,9,80,12,16,17,18,12,19,5, + 9,42,46,12,56,12,19,12,38,27,31,33,37,12,38,5, + 56,52,56,5,56,114,17,0,0,0,99,3,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,115, + 60,0,0,0,116,0,124,0,131,1,155,0,100,1,157,2, + 125,3,116,1,160,2,124,3,116,3,161,2,1,0,124,0, + 160,4,124,1,124,2,161,2,125,4,124,4,100,0,117,0, + 114,25,100,0,83,0,116,5,124,1,124,4,131,2,83,0, + 41,2,78,122,53,46,102,105,110,100,95,115,112,101,99,40, + 41,32,110,111,116,32,102,111,117,110,100,59,32,102,97,108, + 108,105,110,103,32,98,97,99,107,32,116,111,32,102,105,110, + 100,95,109,111,100,117,108,101,40,41,41,6,114,6,0,0, + 0,114,109,0,0,0,114,110,0,0,0,114,182,0,0,0, + 114,197,0,0,0,114,112,0,0,0,41,5,218,6,102,105, + 110,100,101,114,114,20,0,0,0,114,194,0,0,0,114,116, + 0,0,0,114,130,0,0,0,115,5,0,0,0,32,32,32, + 32,32,114,5,0,0,0,218,17,95,102,105,110,100,95,115, + 112,101,99,95,108,101,103,97,99,121,114,228,0,0,0,144, + 3,0,0,115,12,0,0,0,14,1,12,2,12,1,8,1, + 4,1,10,1,115,16,0,0,0,6,1,6,1,2,255,12, + 2,12,1,6,1,6,1,10,1,115,60,0,0,0,15,27, + 28,34,15,35,12,59,12,59,12,59,5,8,5,14,5,39, + 20,23,25,38,5,39,5,39,14,20,14,44,33,37,39,43, + 14,44,5,11,8,14,18,22,8,22,5,20,16,20,16,20, + 12,28,29,33,35,41,12,42,5,42,114,17,0,0,0,99, + 3,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0, + 3,0,0,0,115,30,1,0,0,116,0,106,1,125,3,124, + 3,100,1,117,0,114,11,116,2,100,2,131,1,130,1,124, + 3,115,19,116,3,160,4,100,3,116,5,161,2,1,0,124, + 0,116,0,106,6,118,0,125,4,124,3,68,0,93,114,125, + 5,116,7,131,0,53,0,1,0,9,0,124,5,106,8,125, + 6,110,28,35,0,4,0,116,9,121,63,1,0,1,0,1, + 0,116,10,124,5,124,0,124,1,131,3,125,7,124,7,100, + 1,117,0,114,61,89,0,100,1,4,0,4,0,131,3,1, + 0,113,26,89,0,110,8,119,0,37,0,124,6,124,0,124, + 1,124,2,131,3,125,7,100,1,4,0,4,0,131,3,1, + 0,110,11,35,0,49,0,115,82,119,4,37,0,1,0,1, + 0,1,0,89,0,1,0,1,0,124,7,100,1,117,1,114, + 140,124,4,115,136,124,0,116,0,106,6,118,0,114,136,116, + 0,106,6,124,0,25,0,125,8,9,0,124,8,106,11,125, + 9,110,15,35,0,4,0,116,9,121,122,1,0,1,0,1, + 0,124,7,6,0,89,0,2,0,1,0,83,0,119,0,37, + 0,124,9,100,1,117,0,114,132,124,7,2,0,1,0,83, + 0,124,9,2,0,1,0,83,0,124,7,2,0,1,0,83, + 0,113,26,100,1,83,0,41,4,122,21,70,105,110,100,32, + 97,32,109,111,100,117,108,101,39,115,32,115,112,101,99,46, + 78,122,53,115,121,115,46,109,101,116,97,95,112,97,116,104, + 32,105,115,32,78,111,110,101,44,32,80,121,116,104,111,110, + 32,105,115,32,108,105,107,101,108,121,32,115,104,117,116,116, + 105,110,103,32,100,111,119,110,122,22,115,121,115,46,109,101, + 116,97,95,112,97,116,104,32,105,115,32,101,109,112,116,121, + 41,12,114,18,0,0,0,218,9,109,101,116,97,95,112,97, + 116,104,114,94,0,0,0,114,109,0,0,0,114,110,0,0, + 0,114,182,0,0,0,114,113,0,0,0,114,215,0,0,0, + 114,196,0,0,0,114,2,0,0,0,114,228,0,0,0,114, + 121,0,0,0,41,10,114,20,0,0,0,114,194,0,0,0, + 114,195,0,0,0,114,229,0,0,0,90,9,105,115,95,114, + 101,108,111,97,100,114,227,0,0,0,114,196,0,0,0,114, + 117,0,0,0,114,118,0,0,0,114,121,0,0,0,115,10, + 0,0,0,32,32,32,32,32,32,32,32,32,32,114,5,0, + 0,0,218,10,95,102,105,110,100,95,115,112,101,99,114,230, + 0,0,0,154,3,0,0,115,78,0,0,0,6,2,8,1, + 8,2,4,3,12,1,10,5,8,1,8,1,2,1,8,1, + 2,128,12,1,12,1,8,1,2,1,12,250,4,5,2,254, + 2,128,12,5,20,248,2,128,12,0,8,9,14,2,10,1, + 2,1,8,1,2,128,12,1,12,4,2,252,2,128,8,6, + 8,1,8,2,8,2,2,239,4,19,115,94,0,0,0,6, + 2,6,1,2,3,2,255,6,1,2,2,14,1,10,5,2, + 1,4,29,2,227,4,1,6,8,8,250,2,128,2,4,2, + 253,8,3,12,254,6,1,4,1,12,2,6,254,2,128,32, + 2,2,128,12,0,6,1,2,17,2,241,2,15,8,241,2, + 15,10,242,2,12,8,246,2,128,2,5,2,252,22,4,2, + 128,6,2,2,3,8,254,8,2,10,2,4,2,115,30,1, + 0,0,17,20,17,30,5,14,8,17,21,25,8,25,5,43, + 15,26,27,42,15,43,9,43,12,21,5,64,9,18,9,64, + 24,48,50,63,9,64,9,64,17,21,25,28,25,36,17,36, + 5,14,19,28,5,20,5,20,9,15,14,32,14,34,9,53, + 9,53,13,53,29,35,29,45,17,26,17,26,0,0,13,29, + 20,34,13,29,13,29,13,29,13,29,24,41,42,48,50,54, + 56,60,24,61,17,21,20,24,28,32,20,32,17,29,21,29, + 9,53,9,53,9,53,9,53,9,53,9,53,17,29,17,29, + 13,29,0,0,24,33,34,38,40,44,46,52,24,53,17,21, + 9,53,9,53,9,53,9,53,9,53,9,53,9,53,9,53, + 9,53,9,53,0,0,9,53,9,53,9,53,9,53,9,53, + 9,53,12,16,24,28,12,28,9,28,20,29,13,28,34,38, + 42,45,42,53,34,53,13,28,26,29,26,37,38,42,26,43, + 17,23,17,40,32,38,32,47,21,29,21,29,0,0,17,32, + 24,38,17,32,17,32,17,32,17,32,28,32,21,32,21,32, + 21,32,21,32,21,32,17,32,0,0,24,32,36,40,24,40, + 21,40,32,36,25,36,25,36,25,36,32,40,25,40,25,40, + 25,40,24,28,17,28,17,28,17,28,9,28,16,20,16,20, + 115,70,0,0,0,159,1,65,13,5,161,3,37,4,164,1, + 65,13,5,165,17,65,0,11,182,1,65,13,5,189,2,65, + 13,5,191,1,65,0,11,193,0,7,65,13,5,193,13,4, + 65,17,13,193,18,3,65,17,13,193,41,3,65,45,2,193, + 45,9,65,59,9,193,58,1,65,59,9,99,3,0,0,0, + 0,0,0,0,0,0,0,0,5,0,0,0,3,0,0,0, + 115,110,0,0,0,116,0,124,0,116,1,131,2,115,14,116, + 2,100,1,160,3,116,4,124,0,131,1,161,1,131,1,130, + 1,124,2,100,2,107,0,114,22,116,5,100,3,131,1,130, + 1,124,2,100,2,107,4,114,41,116,0,124,1,116,1,131, + 2,115,35,116,2,100,4,131,1,130,1,124,1,115,41,116, + 6,100,5,131,1,130,1,124,0,115,51,124,2,100,2,107, + 2,114,53,116,5,100,6,131,1,130,1,100,7,83,0,100, + 7,83,0,41,8,122,28,86,101,114,105,102,121,32,97,114, + 103,117,109,101,110,116,115,32,97,114,101,32,34,115,97,110, + 101,34,46,122,31,109,111,100,117,108,101,32,110,97,109,101, + 32,109,117,115,116,32,98,101,32,115,116,114,44,32,110,111, + 116,32,123,125,114,27,0,0,0,122,18,108,101,118,101,108, + 32,109,117,115,116,32,98,101,32,62,61,32,48,122,31,95, + 95,112,97,99,107,97,103,101,95,95,32,110,111,116,32,115, + 101,116,32,116,111,32,97,32,115,116,114,105,110,103,122,54, + 97,116,116,101,109,112,116,101,100,32,114,101,108,97,116,105, + 118,101,32,105,109,112,111,114,116,32,119,105,116,104,32,110, + 111,32,107,110,111,119,110,32,112,97,114,101,110,116,32,112, + 97,99,107,97,103,101,122,17,69,109,112,116,121,32,109,111, + 100,117,108,101,32,110,97,109,101,78,41,7,218,10,105,115, + 105,110,115,116,97,110,99,101,218,3,115,116,114,218,9,84, + 121,112,101,69,114,114,111,114,114,53,0,0,0,114,3,0, + 0,0,218,10,86,97,108,117,101,69,114,114,111,114,114,94, + 0,0,0,169,3,114,20,0,0,0,114,224,0,0,0,114, + 225,0,0,0,115,3,0,0,0,32,32,32,114,5,0,0, + 0,218,13,95,115,97,110,105,116,121,95,99,104,101,99,107, + 114,236,0,0,0,201,3,0,0,115,24,0,0,0,10,2, + 18,1,8,1,8,1,8,1,10,1,8,1,4,1,8,1, + 12,2,8,1,8,255,115,34,0,0,0,8,2,20,1,6, + 1,10,1,6,1,2,5,8,252,2,4,8,253,2,1,2, + 2,2,255,6,1,2,1,2,1,6,255,18,1,115,110,0, + 0,0,12,22,23,27,29,32,12,33,5,78,15,24,25,58, + 25,77,66,70,71,75,66,76,25,77,15,78,9,78,8,13, + 16,17,8,17,5,47,15,25,26,46,15,47,9,47,8,13, + 16,17,8,17,5,41,16,26,27,34,36,39,16,40,9,41, + 19,28,29,62,19,63,13,63,18,25,9,41,19,30,31,40, + 19,41,13,41,12,16,5,46,21,26,30,31,21,31,5,46, + 15,25,26,45,15,46,9,46,5,46,5,46,5,46,5,46, + 114,17,0,0,0,122,16,78,111,32,109,111,100,117,108,101, + 32,110,97,109,101,100,32,122,4,123,33,114,125,99,2,0, + 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, + 0,0,115,86,1,0,0,100,0,125,2,124,0,160,0,100, + 1,161,1,100,2,25,0,125,3,100,0,125,4,124,3,114, + 77,124,3,116,1,106,2,118,1,114,23,116,3,124,1,124, + 3,131,2,1,0,124,0,116,1,106,2,118,0,114,33,116, + 1,106,2,124,0,25,0,83,0,116,1,106,2,124,3,25, + 0,125,5,9,0,124,5,106,4,125,2,110,24,35,0,4, + 0,116,5,121,65,1,0,1,0,1,0,116,6,100,3,23, + 0,160,7,124,0,124,3,161,2,125,6,116,8,124,6,124, + 0,100,4,141,2,100,0,130,2,119,0,37,0,124,5,106, 9,125,4,124,0,160,0,100,1,161,1,100,5,25,0,125, 7,116,10,124,0,124,2,131,2,125,8,124,8,100,0,117, - 0,114,94,116,8,116,6,160,7,124,0,161,1,124,0,100, - 4,141,2,130,1,124,4,114,102,124,4,106,11,160,12,124, + 0,114,95,116,8,116,6,160,7,124,0,161,1,124,0,100, + 4,141,2,130,1,124,4,114,103,124,4,106,11,160,12,124, 7,161,1,1,0,9,0,116,13,124,8,131,1,125,9,124, - 4,114,114,124,4,106,11,160,14,161,0,1,0,110,10,35, - 0,124,4,114,169,124,4,106,11,160,14,161,0,1,0,119, - 0,37,0,124,3,114,166,116,1,106,2,124,3,25,0,125, - 5,9,0,116,15,124,5,124,7,124,9,131,3,1,0,124, - 9,83,0,35,0,4,0,116,5,121,168,1,0,1,0,1, - 0,100,6,124,3,155,2,100,7,124,7,155,2,157,4,125, - 6,116,16,160,17,124,6,116,18,161,2,1,0,89,0,124, - 9,83,0,37,0,124,9,83,0,119,0,119,0,119,0,41, - 8,78,114,152,0,0,0,114,27,0,0,0,122,23,59,32, - 123,33,114,125,32,105,115,32,110,111,116,32,97,32,112,97, - 99,107,97,103,101,114,19,0,0,0,233,2,0,0,0,122, - 27,67,97,110,110,111,116,32,115,101,116,32,97,110,32,97, - 116,116,114,105,98,117,116,101,32,111,110,32,122,18,32,102, - 111,114,32,99,104,105,108,100,32,109,111,100,117,108,101,32, - 41,19,114,153,0,0,0,114,18,0,0,0,114,113,0,0, - 0,114,80,0,0,0,114,167,0,0,0,114,2,0,0,0, - 218,8,95,69,82,82,95,77,83,71,114,53,0,0,0,218, - 19,77,111,100,117,108,101,78,111,116,70,111,117,110,100,69, - 114,114,111,114,114,121,0,0,0,114,230,0,0,0,114,138, - 0,0,0,114,142,0,0,0,114,186,0,0,0,114,184,0, - 0,0,114,11,0,0,0,114,109,0,0,0,114,110,0,0, - 0,114,182,0,0,0,41,10,114,20,0,0,0,218,7,105, - 109,112,111,114,116,95,114,194,0,0,0,114,154,0,0,0, - 90,11,112,97,114,101,110,116,95,115,112,101,99,90,13,112, - 97,114,101,110,116,95,109,111,100,117,108,101,114,116,0,0, - 0,90,5,99,104,105,108,100,114,117,0,0,0,114,118,0, - 0,0,115,10,0,0,0,32,32,32,32,32,32,32,32,32, - 32,114,5,0,0,0,218,23,95,102,105,110,100,95,97,110, - 100,95,108,111,97,100,95,117,110,108,111,99,107,101,100,114, - 241,0,0,0,220,3,0,0,115,92,0,0,0,4,1,14, - 1,4,1,4,1,10,1,10,1,10,2,10,1,10,1,2, - 1,8,1,2,128,12,1,16,1,14,1,2,128,6,1,14, + 4,114,115,124,4,106,11,160,14,161,0,1,0,110,11,35, + 0,124,4,114,125,124,4,106,11,160,14,161,0,1,0,119, + 0,119,0,37,0,124,3,114,169,116,1,106,2,124,3,25, + 0,125,5,9,0,116,15,124,5,124,7,124,9,131,3,1, + 0,124,9,83,0,35,0,4,0,116,5,121,167,1,0,1, + 0,1,0,100,6,124,3,155,2,100,7,124,7,155,2,157, + 4,125,6,116,16,160,17,124,6,116,18,161,2,1,0,89, + 0,124,9,83,0,119,0,37,0,124,9,83,0,41,8,78, + 114,152,0,0,0,114,27,0,0,0,122,23,59,32,123,33, + 114,125,32,105,115,32,110,111,116,32,97,32,112,97,99,107, + 97,103,101,114,19,0,0,0,233,2,0,0,0,122,27,67, + 97,110,110,111,116,32,115,101,116,32,97,110,32,97,116,116, + 114,105,98,117,116,101,32,111,110,32,122,18,32,102,111,114, + 32,99,104,105,108,100,32,109,111,100,117,108,101,32,41,19, + 114,153,0,0,0,114,18,0,0,0,114,113,0,0,0,114, + 80,0,0,0,114,167,0,0,0,114,2,0,0,0,218,8, + 95,69,82,82,95,77,83,71,114,53,0,0,0,218,19,77, + 111,100,117,108,101,78,111,116,70,111,117,110,100,69,114,114, + 111,114,114,121,0,0,0,114,230,0,0,0,114,138,0,0, + 0,114,142,0,0,0,114,186,0,0,0,114,184,0,0,0, + 114,11,0,0,0,114,109,0,0,0,114,110,0,0,0,114, + 182,0,0,0,41,10,114,20,0,0,0,218,7,105,109,112, + 111,114,116,95,114,194,0,0,0,114,154,0,0,0,90,11, + 112,97,114,101,110,116,95,115,112,101,99,90,13,112,97,114, + 101,110,116,95,109,111,100,117,108,101,114,116,0,0,0,90, + 5,99,104,105,108,100,114,117,0,0,0,114,118,0,0,0, + 115,10,0,0,0,32,32,32,32,32,32,32,32,32,32,114, + 5,0,0,0,218,23,95,102,105,110,100,95,97,110,100,95, + 108,111,97,100,95,117,110,108,111,99,107,101,100,114,241,0, + 0,0,220,3,0,0,115,92,0,0,0,4,1,14,1,4, + 1,4,1,10,1,10,1,10,2,10,1,10,1,2,1,8, + 1,2,128,12,1,16,1,14,1,2,254,2,128,6,3,14, 1,10,1,8,1,18,1,4,2,12,3,2,1,8,1,4, - 2,10,1,4,128,4,255,12,1,2,128,4,1,10,2,2, - 1,12,1,4,4,2,128,12,253,16,1,14,1,4,1,2, - 128,4,0,2,253,2,249,2,240,115,106,0,0,0,4,1, - 14,1,4,1,2,1,2,13,8,244,12,1,8,2,12,1, - 10,1,2,5,8,253,2,128,2,3,2,254,8,2,16,255, - 14,1,2,128,6,1,14,1,10,1,6,1,2,11,18,246, - 2,2,14,3,2,5,8,253,2,2,12,1,4,128,2,255, - 14,1,2,128,2,1,2,7,10,251,2,5,12,253,4,4, - 2,128,2,255,2,254,8,2,16,255,14,1,4,1,2,128, - 4,0,2,255,2,248,2,241,115,86,1,0,0,12,16,5, - 9,14,18,14,34,30,33,14,34,35,36,14,37,5,11,19, - 23,5,16,8,14,5,40,12,18,26,29,26,37,12,37,9, - 55,13,38,39,46,48,54,13,55,13,55,12,16,20,23,20, - 31,12,31,9,37,20,23,20,31,32,36,20,37,13,37,25, - 28,25,36,37,43,25,44,9,22,9,64,20,33,20,42,13, - 17,13,17,0,0,9,64,16,30,9,64,9,64,9,64,9, - 64,20,28,31,56,20,56,19,78,65,69,71,77,19,78,13, - 16,19,38,39,42,49,53,19,54,19,54,60,64,13,64,0, - 0,23,36,23,45,9,20,17,21,17,37,33,36,17,37,38, - 39,17,40,9,14,12,22,23,27,29,33,12,34,5,9,8, - 12,16,20,8,20,5,60,15,34,35,43,35,56,51,55,35, - 56,63,67,15,68,15,68,9,68,12,23,9,64,13,24,13, - 50,13,64,58,63,13,64,13,64,9,60,22,36,37,41,22, - 42,13,19,16,27,13,60,17,28,17,54,17,60,17,60,17, - 60,0,0,0,0,16,27,13,60,17,28,17,54,17,60,17, - 60,17,60,17,60,0,0,8,14,5,47,25,28,25,36,37, - 43,25,44,9,22,9,47,13,20,21,34,36,41,43,49,13, - 50,13,50,12,18,5,18,0,0,9,47,16,30,9,47,9, - 47,9,47,9,47,19,86,20,26,19,86,19,86,20,25,19, - 86,19,86,13,16,13,22,13,47,28,31,33,46,13,47,13, - 47,13,47,12,18,5,18,0,0,12,18,5,18,9,47,13, - 60,9,64,115,51,0,0,0,167,3,43,0,171,22,65,1, - 7,193,39,4,65,51,0,193,51,9,65,60,7,194,5,6, - 66,13,0,194,13,21,66,37,7,194,40,1,66,37,7,194, - 41,1,65,60,7,194,42,1,65,1,7,99,2,0,0,0, - 0,0,0,0,0,0,0,0,9,0,0,0,3,0,0,0, - 115,132,0,0,0,116,0,124,0,131,1,53,0,1,0,116, - 1,106,2,160,3,124,0,116,4,161,2,125,2,124,2,116, - 4,117,0,114,27,116,5,124,0,124,1,131,2,2,0,100, - 1,4,0,4,0,131,3,1,0,83,0,9,0,100,1,4, - 0,4,0,131,3,1,0,110,11,35,0,49,0,115,39,119, - 4,37,0,1,0,1,0,1,0,89,0,1,0,1,0,124, - 2,100,1,117,0,114,60,100,2,160,6,124,0,161,1,125, - 3,116,7,124,3,124,0,100,3,141,2,130,1,116,8,124, - 0,131,1,1,0,124,2,83,0,41,4,122,25,70,105,110, - 100,32,97,110,100,32,108,111,97,100,32,116,104,101,32,109, - 111,100,117,108,101,46,78,122,40,105,109,112,111,114,116,32, - 111,102,32,123,125,32,104,97,108,116,101,100,59,32,78,111, - 110,101,32,105,110,32,115,121,115,46,109,111,100,117,108,101, - 115,114,19,0,0,0,41,9,114,61,0,0,0,114,18,0, - 0,0,114,113,0,0,0,114,41,0,0,0,218,14,95,78, - 69,69,68,83,95,76,79,65,68,73,78,71,114,241,0,0, - 0,114,53,0,0,0,114,239,0,0,0,114,78,0,0,0, - 41,4,114,20,0,0,0,114,240,0,0,0,114,118,0,0, - 0,114,89,0,0,0,115,4,0,0,0,32,32,32,32,114, - 5,0,0,0,218,14,95,102,105,110,100,95,97,110,100,95, - 108,111,97,100,114,243,0,0,0,9,4,0,0,115,32,0, - 0,0,10,2,14,1,8,1,8,1,14,253,2,2,20,254, - 2,128,12,0,8,5,2,1,6,1,2,255,12,2,8,2, - 4,1,115,28,0,0,0,6,2,4,3,14,254,6,1,46, - 1,2,128,12,0,6,2,2,3,8,255,2,255,12,2,8, - 2,4,1,115,132,0,0,0,10,28,29,33,10,34,5,58, - 5,58,18,21,18,29,18,55,34,38,40,54,18,55,9,15, - 12,18,22,36,12,36,9,58,20,43,44,48,50,57,20,58, - 5,58,5,58,5,58,5,58,5,58,5,58,5,58,9,58, + 2,10,1,4,128,4,255,12,1,2,255,2,128,4,2,10, + 2,2,1,12,1,4,4,2,128,12,253,16,1,14,1,4, + 1,2,253,2,128,4,3,115,102,0,0,0,4,1,14,1, + 4,1,2,1,2,13,8,244,12,1,8,2,12,1,10,1, + 2,5,8,253,2,128,2,3,2,254,8,2,16,255,16,1, + 2,128,6,1,14,1,10,1,6,1,2,11,18,246,2,2, + 14,3,2,5,8,253,2,2,12,1,4,128,2,255,16,1, + 2,128,2,1,2,7,10,251,2,5,12,253,4,4,2,128, + 2,255,2,254,8,2,16,255,14,1,4,1,2,255,2,128, + 4,1,115,86,1,0,0,12,16,5,9,14,18,14,34,30, + 33,14,34,35,36,14,37,5,11,19,23,5,16,8,14,5, + 40,12,18,26,29,26,37,12,37,9,55,13,38,39,46,48, + 54,13,55,13,55,12,16,20,23,20,31,12,31,9,37,20, + 23,20,31,32,36,20,37,13,37,25,28,25,36,37,43,25, + 44,9,22,9,64,20,33,20,42,13,17,13,17,0,0,9, + 64,16,30,9,64,9,64,9,64,9,64,20,28,31,56,20, + 56,19,78,65,69,71,77,19,78,13,16,19,38,39,42,49, + 53,19,54,19,54,60,64,13,64,9,64,0,0,23,36,23, + 45,9,20,17,21,17,37,33,36,17,37,38,39,17,40,9, + 14,12,22,23,27,29,33,12,34,5,9,8,12,16,20,8, + 20,5,60,15,34,35,43,35,56,51,55,35,56,63,67,15, + 68,15,68,9,68,12,23,9,64,13,24,13,50,13,64,58, + 63,13,64,13,64,9,60,22,36,37,41,22,42,13,19,16, + 27,13,60,17,28,17,54,17,60,17,60,17,60,0,0,0, + 0,16,27,13,60,17,28,17,54,17,60,17,60,17,60,17, + 60,13,60,0,0,8,14,5,47,25,28,25,36,37,43,25, + 44,9,22,9,47,13,20,21,34,36,41,43,49,13,50,13, + 50,12,18,5,18,0,0,9,47,16,30,9,47,9,47,9, + 47,9,47,19,86,20,26,19,86,19,86,20,25,19,86,19, + 86,13,16,13,22,13,47,28,31,33,46,13,47,13,47,13, + 47,12,18,5,18,9,47,0,0,12,18,5,18,115,39,0, + 0,0,167,3,43,0,171,23,65,2,7,193,40,4,65,52, + 0,193,52,10,65,62,7,194,7,6,66,15,0,194,15,21, + 66,40,7,194,39,1,66,40,7,99,2,0,0,0,0,0, + 0,0,0,0,0,0,9,0,0,0,3,0,0,0,115,132, + 0,0,0,116,0,124,0,131,1,53,0,1,0,116,1,106, + 2,160,3,124,0,116,4,161,2,125,2,124,2,116,4,117, + 0,114,27,116,5,124,0,124,1,131,2,2,0,100,1,4, + 0,4,0,131,3,1,0,83,0,9,0,100,1,4,0,4, + 0,131,3,1,0,110,11,35,0,49,0,115,39,119,4,37, + 0,1,0,1,0,1,0,89,0,1,0,1,0,124,2,100, + 1,117,0,114,60,100,2,160,6,124,0,161,1,125,3,116, + 7,124,3,124,0,100,3,141,2,130,1,116,8,124,0,131, + 1,1,0,124,2,83,0,41,4,122,25,70,105,110,100,32, + 97,110,100,32,108,111,97,100,32,116,104,101,32,109,111,100, + 117,108,101,46,78,122,40,105,109,112,111,114,116,32,111,102, + 32,123,125,32,104,97,108,116,101,100,59,32,78,111,110,101, + 32,105,110,32,115,121,115,46,109,111,100,117,108,101,115,114, + 19,0,0,0,41,9,114,61,0,0,0,114,18,0,0,0, + 114,113,0,0,0,114,41,0,0,0,218,14,95,78,69,69, + 68,83,95,76,79,65,68,73,78,71,114,241,0,0,0,114, + 53,0,0,0,114,239,0,0,0,114,78,0,0,0,41,4, + 114,20,0,0,0,114,240,0,0,0,114,118,0,0,0,114, + 89,0,0,0,115,4,0,0,0,32,32,32,32,114,5,0, + 0,0,218,14,95,102,105,110,100,95,97,110,100,95,108,111, + 97,100,114,243,0,0,0,9,4,0,0,115,32,0,0,0, + 10,2,14,1,8,1,8,1,14,253,2,2,20,254,2,128, + 12,0,8,5,2,1,6,1,2,255,12,2,8,2,4,1, + 115,28,0,0,0,6,2,4,3,14,254,6,1,46,1,2, + 128,12,0,6,2,2,3,8,255,2,255,12,2,8,2,4, + 1,115,132,0,0,0,10,28,29,33,10,34,5,58,5,58, + 18,21,18,29,18,55,34,38,40,54,18,55,9,15,12,18, + 22,36,12,36,9,58,20,43,44,48,50,57,20,58,5,58, + 5,58,5,58,5,58,5,58,5,58,5,58,9,58,5,58, 5,58,5,58,5,58,5,58,5,58,5,58,5,58,5,58, - 5,58,5,58,0,0,5,58,5,58,5,58,5,58,5,58, - 5,58,8,14,18,22,8,22,5,54,20,41,20,54,49,53, - 20,54,9,16,15,34,35,42,49,53,15,54,15,54,9,54, - 5,24,25,29,5,30,5,30,12,18,5,18,115,12,0,0, - 0,132,16,34,3,162,4,38,11,167,3,38,11,114,27,0, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,115,42,0,0,0,116,0,124,0, - 124,1,124,2,131,3,1,0,124,2,100,1,107,4,114,16, - 116,1,124,0,124,1,124,2,131,3,125,0,116,2,124,0, - 116,3,131,2,83,0,41,3,97,50,1,0,0,73,109,112, - 111,114,116,32,97,110,100,32,114,101,116,117,114,110,32,116, - 104,101,32,109,111,100,117,108,101,32,98,97,115,101,100,32, - 111,110,32,105,116,115,32,110,97,109,101,44,32,116,104,101, - 32,112,97,99,107,97,103,101,32,116,104,101,32,99,97,108, - 108,32,105,115,10,32,32,32,32,98,101,105,110,103,32,109, - 97,100,101,32,102,114,111,109,44,32,97,110,100,32,116,104, - 101,32,108,101,118,101,108,32,97,100,106,117,115,116,109,101, - 110,116,46,10,10,32,32,32,32,84,104,105,115,32,102,117, - 110,99,116,105,111,110,32,114,101,112,114,101,115,101,110,116, - 115,32,116,104,101,32,103,114,101,97,116,101,115,116,32,99, - 111,109,109,111,110,32,100,101,110,111,109,105,110,97,116,111, - 114,32,111,102,32,102,117,110,99,116,105,111,110,97,108,105, - 116,121,10,32,32,32,32,98,101,116,119,101,101,110,32,105, - 109,112,111,114,116,95,109,111,100,117,108,101,32,97,110,100, - 32,95,95,105,109,112,111,114,116,95,95,46,32,84,104,105, - 115,32,105,110,99,108,117,100,101,115,32,115,101,116,116,105, - 110,103,32,95,95,112,97,99,107,97,103,101,95,95,32,105, - 102,10,32,32,32,32,116,104,101,32,108,111,97,100,101,114, - 32,100,105,100,32,110,111,116,46,10,10,32,32,32,32,114, - 27,0,0,0,78,41,4,114,236,0,0,0,114,226,0,0, - 0,114,243,0,0,0,218,11,95,103,99,100,95,105,109,112, - 111,114,116,114,235,0,0,0,115,3,0,0,0,32,32,32, - 114,5,0,0,0,114,244,0,0,0,114,244,0,0,0,25, - 4,0,0,115,8,0,0,0,12,9,8,1,12,1,10,1, - 115,8,0,0,0,12,9,6,1,14,1,10,1,115,42,0, - 0,0,5,18,19,23,25,32,34,39,5,40,5,40,8,13, - 16,17,8,17,5,51,16,29,30,34,36,43,45,50,16,51, - 9,13,12,26,27,31,33,44,12,45,5,45,114,17,0,0, - 0,169,1,218,9,114,101,99,117,114,115,105,118,101,99,3, - 0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,3, - 0,0,0,115,216,0,0,0,124,1,68,0,93,102,125,4, - 116,0,124,4,116,1,131,2,115,32,124,3,114,17,124,0, - 106,2,100,1,23,0,125,5,110,2,100,2,125,5,116,3, - 100,3,124,5,155,0,100,4,116,4,124,4,131,1,106,2, - 155,0,157,4,131,1,130,1,124,4,100,5,107,2,114,53, - 124,3,115,52,116,5,124,0,100,6,131,2,114,52,116,6, - 124,0,124,0,106,7,124,2,100,7,100,8,141,4,1,0, - 113,2,116,5,124,0,124,4,131,2,115,104,100,9,160,8, - 124,0,106,2,124,4,161,2,125,6,9,0,116,9,124,2, - 124,6,131,2,1,0,113,2,35,0,4,0,116,10,121,107, - 1,0,125,7,1,0,124,7,106,11,124,6,107,2,114,98, - 116,12,106,13,160,14,124,6,116,15,161,2,100,10,117,1, - 114,98,89,0,100,10,125,7,126,7,113,2,130,0,100,10, - 125,7,126,7,119,1,37,0,113,2,124,0,83,0,119,0, - 41,11,122,238,70,105,103,117,114,101,32,111,117,116,32,119, - 104,97,116,32,95,95,105,109,112,111,114,116,95,95,32,115, - 104,111,117,108,100,32,114,101,116,117,114,110,46,10,10,32, - 32,32,32,84,104,101,32,105,109,112,111,114,116,95,32,112, - 97,114,97,109,101,116,101,114,32,105,115,32,97,32,99,97, - 108,108,97,98,108,101,32,119,104,105,99,104,32,116,97,107, - 101,115,32,116,104,101,32,110,97,109,101,32,111,102,32,109, - 111,100,117,108,101,32,116,111,10,32,32,32,32,105,109,112, - 111,114,116,46,32,73,116,32,105,115,32,114,101,113,117,105, - 114,101,100,32,116,111,32,100,101,99,111,117,112,108,101,32, - 116,104,101,32,102,117,110,99,116,105,111,110,32,102,114,111, - 109,32,97,115,115,117,109,105,110,103,32,105,109,112,111,114, - 116,108,105,98,39,115,10,32,32,32,32,105,109,112,111,114, - 116,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, - 32,105,115,32,100,101,115,105,114,101,100,46,10,10,32,32, - 32,32,122,8,46,95,95,97,108,108,95,95,122,13,96,96, - 102,114,111,109,32,108,105,115,116,39,39,122,8,73,116,101, - 109,32,105,110,32,122,18,32,109,117,115,116,32,98,101,32, - 115,116,114,44,32,110,111,116,32,250,1,42,218,7,95,95, - 97,108,108,95,95,84,114,245,0,0,0,114,221,0,0,0, - 78,41,16,114,231,0,0,0,114,232,0,0,0,114,8,0, - 0,0,114,233,0,0,0,114,3,0,0,0,114,10,0,0, - 0,218,16,95,104,97,110,100,108,101,95,102,114,111,109,108, - 105,115,116,114,248,0,0,0,114,53,0,0,0,114,80,0, - 0,0,114,239,0,0,0,114,20,0,0,0,114,18,0,0, - 0,114,113,0,0,0,114,41,0,0,0,114,242,0,0,0, - 41,8,114,118,0,0,0,218,8,102,114,111,109,108,105,115, - 116,114,240,0,0,0,114,246,0,0,0,218,1,120,90,5, - 119,104,101,114,101,90,9,102,114,111,109,95,110,97,109,101, - 90,3,101,120,99,115,8,0,0,0,32,32,32,32,32,32, - 32,32,114,5,0,0,0,114,249,0,0,0,114,249,0,0, - 0,40,4,0,0,115,58,0,0,0,8,10,10,1,4,1, - 12,1,4,2,10,1,8,1,8,255,8,2,14,1,10,1, - 2,1,6,255,2,128,10,2,14,1,2,1,12,1,2,128, - 12,1,10,4,16,1,2,255,10,2,2,1,10,128,2,245, - 4,12,2,248,115,80,0,0,0,2,10,4,23,2,233,8, + 5,58,0,0,5,58,5,58,5,58,5,58,5,58,5,58, + 8,14,18,22,8,22,5,54,20,41,20,54,49,53,20,54, + 9,16,15,34,35,42,49,53,15,54,15,54,9,54,5,24, + 25,29,5,30,5,30,12,18,5,18,115,12,0,0,0,132, + 16,34,3,162,4,38,11,167,3,38,11,114,27,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,115,42,0,0,0,116,0,124,0,124,1, + 124,2,131,3,1,0,124,2,100,1,107,4,114,16,116,1, + 124,0,124,1,124,2,131,3,125,0,116,2,124,0,116,3, + 131,2,83,0,41,3,97,50,1,0,0,73,109,112,111,114, + 116,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101, + 32,109,111,100,117,108,101,32,98,97,115,101,100,32,111,110, + 32,105,116,115,32,110,97,109,101,44,32,116,104,101,32,112, + 97,99,107,97,103,101,32,116,104,101,32,99,97,108,108,32, + 105,115,10,32,32,32,32,98,101,105,110,103,32,109,97,100, + 101,32,102,114,111,109,44,32,97,110,100,32,116,104,101,32, + 108,101,118,101,108,32,97,100,106,117,115,116,109,101,110,116, + 46,10,10,32,32,32,32,84,104,105,115,32,102,117,110,99, + 116,105,111,110,32,114,101,112,114,101,115,101,110,116,115,32, + 116,104,101,32,103,114,101,97,116,101,115,116,32,99,111,109, + 109,111,110,32,100,101,110,111,109,105,110,97,116,111,114,32, + 111,102,32,102,117,110,99,116,105,111,110,97,108,105,116,121, + 10,32,32,32,32,98,101,116,119,101,101,110,32,105,109,112, + 111,114,116,95,109,111,100,117,108,101,32,97,110,100,32,95, + 95,105,109,112,111,114,116,95,95,46,32,84,104,105,115,32, + 105,110,99,108,117,100,101,115,32,115,101,116,116,105,110,103, + 32,95,95,112,97,99,107,97,103,101,95,95,32,105,102,10, + 32,32,32,32,116,104,101,32,108,111,97,100,101,114,32,100, + 105,100,32,110,111,116,46,10,10,32,32,32,32,114,27,0, + 0,0,78,41,4,114,236,0,0,0,114,226,0,0,0,114, + 243,0,0,0,218,11,95,103,99,100,95,105,109,112,111,114, + 116,114,235,0,0,0,115,3,0,0,0,32,32,32,114,5, + 0,0,0,114,244,0,0,0,114,244,0,0,0,25,4,0, + 0,115,8,0,0,0,12,9,8,1,12,1,10,1,115,8, + 0,0,0,12,9,6,1,14,1,10,1,115,42,0,0,0, + 5,18,19,23,25,32,34,39,5,40,5,40,8,13,16,17, + 8,17,5,51,16,29,30,34,36,43,45,50,16,51,9,13, + 12,26,27,31,33,44,12,45,5,45,114,17,0,0,0,169, + 1,218,9,114,101,99,117,114,115,105,118,101,99,3,0,0, + 0,0,0,0,0,1,0,0,0,9,0,0,0,3,0,0, + 0,115,216,0,0,0,124,1,68,0,93,103,125,4,116,0, + 124,4,116,1,131,2,115,32,124,3,114,17,124,0,106,2, + 100,1,23,0,125,5,110,2,100,2,125,5,116,3,100,3, + 124,5,155,0,100,4,116,4,124,4,131,1,106,2,155,0, + 157,4,131,1,130,1,124,4,100,5,107,2,114,53,124,3, + 115,52,116,5,124,0,100,6,131,2,114,52,116,6,124,0, + 124,0,106,7,124,2,100,7,100,8,141,4,1,0,113,2, + 116,5,124,0,124,4,131,2,115,105,100,9,160,8,124,0, + 106,2,124,4,161,2,125,6,9,0,116,9,124,2,124,6, + 131,2,1,0,113,2,35,0,4,0,116,10,121,103,1,0, + 125,7,1,0,124,7,106,11,124,6,107,2,114,98,116,12, + 106,13,160,14,124,6,116,15,161,2,100,10,117,1,114,98, + 89,0,100,10,125,7,126,7,113,2,130,0,100,10,125,7, + 126,7,119,1,119,0,37,0,113,2,124,0,83,0,41,11, + 122,238,70,105,103,117,114,101,32,111,117,116,32,119,104,97, + 116,32,95,95,105,109,112,111,114,116,95,95,32,115,104,111, + 117,108,100,32,114,101,116,117,114,110,46,10,10,32,32,32, + 32,84,104,101,32,105,109,112,111,114,116,95,32,112,97,114, + 97,109,101,116,101,114,32,105,115,32,97,32,99,97,108,108, + 97,98,108,101,32,119,104,105,99,104,32,116,97,107,101,115, + 32,116,104,101,32,110,97,109,101,32,111,102,32,109,111,100, + 117,108,101,32,116,111,10,32,32,32,32,105,109,112,111,114, + 116,46,32,73,116,32,105,115,32,114,101,113,117,105,114,101, + 100,32,116,111,32,100,101,99,111,117,112,108,101,32,116,104, + 101,32,102,117,110,99,116,105,111,110,32,102,114,111,109,32, + 97,115,115,117,109,105,110,103,32,105,109,112,111,114,116,108, + 105,98,39,115,10,32,32,32,32,105,109,112,111,114,116,32, + 105,109,112,108,101,109,101,110,116,97,116,105,111,110,32,105, + 115,32,100,101,115,105,114,101,100,46,10,10,32,32,32,32, + 122,8,46,95,95,97,108,108,95,95,122,13,96,96,102,114, + 111,109,32,108,105,115,116,39,39,122,8,73,116,101,109,32, + 105,110,32,122,18,32,109,117,115,116,32,98,101,32,115,116, + 114,44,32,110,111,116,32,250,1,42,218,7,95,95,97,108, + 108,95,95,84,114,245,0,0,0,114,221,0,0,0,78,41, + 16,114,231,0,0,0,114,232,0,0,0,114,8,0,0,0, + 114,233,0,0,0,114,3,0,0,0,114,10,0,0,0,218, + 16,95,104,97,110,100,108,101,95,102,114,111,109,108,105,115, + 116,114,248,0,0,0,114,53,0,0,0,114,80,0,0,0, + 114,239,0,0,0,114,20,0,0,0,114,18,0,0,0,114, + 113,0,0,0,114,41,0,0,0,114,242,0,0,0,41,8, + 114,118,0,0,0,218,8,102,114,111,109,108,105,115,116,114, + 240,0,0,0,114,246,0,0,0,218,1,120,90,5,119,104, + 101,114,101,90,9,102,114,111,109,95,110,97,109,101,90,3, + 101,120,99,115,8,0,0,0,32,32,32,32,32,32,32,32, + 114,5,0,0,0,114,249,0,0,0,114,249,0,0,0,40, + 4,0,0,115,60,0,0,0,8,10,10,1,4,1,12,1, + 4,2,10,1,8,1,8,255,8,2,14,1,10,1,2,1, + 6,255,2,128,10,2,14,1,2,1,12,1,2,128,12,1, + 10,4,16,1,2,255,10,2,2,1,8,128,2,249,2,128, + 2,252,4,12,115,82,0,0,0,2,10,4,23,2,233,8, 1,2,22,2,235,2,3,12,254,4,2,2,1,2,1,2, 255,20,1,6,1,2,15,2,242,2,2,8,254,2,2,10, 255,8,1,2,128,8,1,2,11,14,246,2,10,12,248,2, 128,2,8,2,249,8,7,8,253,2,2,16,255,12,1,2, - 1,10,128,2,0,4,1,2,255,115,216,0,0,0,14,22, - 5,22,5,22,9,10,16,26,27,28,30,33,16,34,9,22, - 16,25,13,40,25,31,25,40,43,53,25,53,17,22,17,22, - 25,40,17,22,19,28,29,54,40,45,29,54,29,54,36,40, - 41,42,36,43,36,52,29,54,29,54,19,55,13,55,14,15, - 19,22,14,22,9,22,20,29,13,49,34,41,42,48,50,59, - 34,60,13,49,17,33,34,40,42,48,42,56,58,65,44,48, - 17,49,17,49,17,49,0,0,18,25,26,32,34,35,18,36, - 9,22,25,32,25,59,40,46,40,55,57,58,25,59,13,22, - 13,22,17,42,43,50,52,61,17,62,17,62,17,62,0,0, - 13,22,20,39,13,22,13,22,13,22,13,22,21,24,21,29, - 33,42,21,42,17,29,21,24,21,32,21,63,37,46,48,62, - 21,63,71,75,21,75,17,29,21,29,21,29,21,29,21,29, - 21,29,17,22,0,0,0,0,0,0,0,0,0,0,9,22, - 12,18,5,18,13,22,115,36,0,0,0,193,2,5,65,8, - 2,193,8,7,65,39,9,193,15,14,65,35,9,193,34,1, - 65,35,9,193,35,4,65,39,9,193,43,1,65,39,9,99, - 1,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0, - 3,0,0,0,115,146,0,0,0,124,0,160,0,100,1,161, - 1,125,1,124,0,160,0,100,2,161,1,125,2,124,1,100, - 3,117,1,114,41,124,2,100,3,117,1,114,39,124,1,124, - 2,106,1,107,3,114,39,116,2,160,3,100,4,124,1,155, - 2,100,5,124,2,106,1,155,2,100,6,157,5,116,4,100, - 7,100,8,166,3,1,0,124,1,83,0,124,2,100,3,117, - 1,114,48,124,2,106,1,83,0,116,2,160,3,100,9,116, - 4,100,7,100,8,166,3,1,0,124,0,100,10,25,0,125, - 1,100,11,124,0,118,1,114,71,124,1,160,5,100,12,161, - 1,100,13,25,0,125,1,124,1,83,0,41,14,122,167,67, - 97,108,99,117,108,97,116,101,32,119,104,97,116,32,95,95, - 112,97,99,107,97,103,101,95,95,32,115,104,111,117,108,100, - 32,98,101,46,10,10,32,32,32,32,95,95,112,97,99,107, - 97,103,101,95,95,32,105,115,32,110,111,116,32,103,117,97, - 114,97,110,116,101,101,100,32,116,111,32,98,101,32,100,101, - 102,105,110,101,100,32,111,114,32,99,111,117,108,100,32,98, - 101,32,115,101,116,32,116,111,32,78,111,110,101,10,32,32, - 32,32,116,111,32,114,101,112,114,101,115,101,110,116,32,116, - 104,97,116,32,105,116,115,32,112,114,111,112,101,114,32,118, - 97,108,117,101,32,105,115,32,117,110,107,110,111,119,110,46, - 10,10,32,32,32,32,114,171,0,0,0,114,121,0,0,0, - 78,122,32,95,95,112,97,99,107,97,103,101,95,95,32,33, - 61,32,95,95,115,112,101,99,95,95,46,112,97,114,101,110, - 116,32,40,122,4,32,33,61,32,250,1,41,233,3,0,0, - 0,41,1,90,10,115,116,97,99,107,108,101,118,101,108,122, - 89,99,97,110,39,116,32,114,101,115,111,108,118,101,32,112, - 97,99,107,97,103,101,32,102,114,111,109,32,95,95,115,112, - 101,99,95,95,32,111,114,32,95,95,112,97,99,107,97,103, - 101,95,95,44,32,102,97,108,108,105,110,103,32,98,97,99, - 107,32,111,110,32,95,95,110,97,109,101,95,95,32,97,110, - 100,32,95,95,112,97,116,104,95,95,114,8,0,0,0,114, - 167,0,0,0,114,152,0,0,0,114,27,0,0,0,41,6, - 114,41,0,0,0,114,154,0,0,0,114,109,0,0,0,114, - 110,0,0,0,114,182,0,0,0,114,153,0,0,0,41,3, - 218,7,103,108,111,98,97,108,115,114,224,0,0,0,114,117, - 0,0,0,115,3,0,0,0,32,32,32,114,5,0,0,0, - 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103, - 101,95,95,114,255,0,0,0,77,4,0,0,115,42,0,0, - 0,10,7,10,1,8,1,18,1,6,1,2,1,4,255,4, - 1,6,255,4,2,6,254,4,3,8,1,6,1,6,2,4, - 2,6,254,8,3,8,1,14,1,4,1,115,48,0,0,0, - 10,7,10,1,6,1,2,14,6,243,2,3,8,253,2,3, - 2,254,2,2,18,255,10,1,4,1,6,1,2,8,6,249, - 2,2,2,2,2,255,10,1,8,1,6,1,16,1,4,1, - 115,146,0,0,0,15,22,15,41,27,40,15,41,5,12,12, - 19,12,35,24,34,12,35,5,9,8,15,23,27,8,27,5, - 49,12,16,24,28,12,28,9,56,33,40,44,48,44,55,33, - 55,9,56,13,22,13,56,28,63,29,36,28,63,28,63,29, - 33,29,40,28,63,28,63,28,63,28,41,54,55,13,56,13, - 56,13,56,16,23,9,23,10,14,22,26,10,26,5,49,16, - 20,16,27,9,27,9,18,9,52,24,63,24,37,50,51,9, - 52,9,52,9,52,19,26,27,37,19,38,9,16,12,22,30, - 37,12,37,9,49,23,30,23,46,42,45,23,46,47,48,23, - 49,13,20,12,19,5,19,114,17,0,0,0,114,24,0,0, - 0,99,5,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,115,174,0,0,0,124,4,100,1,107, - 2,114,9,116,0,124,0,131,1,125,5,110,18,124,1,100, - 2,117,1,114,15,124,1,110,1,105,0,125,6,116,1,124, - 6,131,1,125,7,116,0,124,0,124,7,124,4,131,3,125, - 5,124,3,115,74,124,4,100,1,107,2,114,42,116,0,124, - 0,160,2,100,3,161,1,100,1,25,0,131,1,83,0,124, - 0,115,46,124,5,83,0,116,3,124,0,131,1,116,3,124, - 0,160,2,100,3,161,1,100,1,25,0,131,1,24,0,125, - 8,116,4,106,5,124,5,106,6,100,2,116,3,124,5,106, - 6,131,1,124,8,24,0,133,2,25,0,25,0,83,0,116, - 7,124,5,100,4,131,2,114,85,116,8,124,5,124,3,116, - 0,131,3,83,0,124,5,83,0,41,5,97,215,1,0,0, - 73,109,112,111,114,116,32,97,32,109,111,100,117,108,101,46, - 10,10,32,32,32,32,84,104,101,32,39,103,108,111,98,97, - 108,115,39,32,97,114,103,117,109,101,110,116,32,105,115,32, - 117,115,101,100,32,116,111,32,105,110,102,101,114,32,119,104, - 101,114,101,32,116,104,101,32,105,109,112,111,114,116,32,105, - 115,32,111,99,99,117,114,114,105,110,103,32,102,114,111,109, - 10,32,32,32,32,116,111,32,104,97,110,100,108,101,32,114, - 101,108,97,116,105,118,101,32,105,109,112,111,114,116,115,46, - 32,84,104,101,32,39,108,111,99,97,108,115,39,32,97,114, - 103,117,109,101,110,116,32,105,115,32,105,103,110,111,114,101, - 100,46,32,84,104,101,10,32,32,32,32,39,102,114,111,109, - 108,105,115,116,39,32,97,114,103,117,109,101,110,116,32,115, - 112,101,99,105,102,105,101,115,32,119,104,97,116,32,115,104, - 111,117,108,100,32,101,120,105,115,116,32,97,115,32,97,116, - 116,114,105,98,117,116,101,115,32,111,110,32,116,104,101,32, - 109,111,100,117,108,101,10,32,32,32,32,98,101,105,110,103, - 32,105,109,112,111,114,116,101,100,32,40,101,46,103,46,32, - 96,96,102,114,111,109,32,109,111,100,117,108,101,32,105,109, - 112,111,114,116,32,60,102,114,111,109,108,105,115,116,62,96, - 96,41,46,32,32,84,104,101,32,39,108,101,118,101,108,39, - 10,32,32,32,32,97,114,103,117,109,101,110,116,32,114,101, - 112,114,101,115,101,110,116,115,32,116,104,101,32,112,97,99, - 107,97,103,101,32,108,111,99,97,116,105,111,110,32,116,111, - 32,105,109,112,111,114,116,32,102,114,111,109,32,105,110,32, - 97,32,114,101,108,97,116,105,118,101,10,32,32,32,32,105, - 109,112,111,114,116,32,40,101,46,103,46,32,96,96,102,114, - 111,109,32,46,46,112,107,103,32,105,109,112,111,114,116,32, - 109,111,100,96,96,32,119,111,117,108,100,32,104,97,118,101, - 32,97,32,39,108,101,118,101,108,39,32,111,102,32,50,41, - 46,10,10,32,32,32,32,114,27,0,0,0,78,114,152,0, - 0,0,114,167,0,0,0,41,9,114,244,0,0,0,114,255, - 0,0,0,218,9,112,97,114,116,105,116,105,111,110,114,223, - 0,0,0,114,18,0,0,0,114,113,0,0,0,114,8,0, - 0,0,114,10,0,0,0,114,249,0,0,0,41,9,114,20, - 0,0,0,114,254,0,0,0,218,6,108,111,99,97,108,115, - 114,250,0,0,0,114,225,0,0,0,114,118,0,0,0,90, - 8,103,108,111,98,97,108,115,95,114,224,0,0,0,90,7, - 99,117,116,95,111,102,102,115,9,0,0,0,32,32,32,32, - 32,32,32,32,32,114,5,0,0,0,218,10,95,95,105,109, - 112,111,114,116,95,95,114,2,1,0,0,104,4,0,0,115, - 30,0,0,0,8,11,10,1,16,2,8,1,12,1,4,1, - 8,3,18,1,4,1,4,1,26,4,30,3,10,1,12,1, - 4,2,115,40,0,0,0,6,11,2,5,10,252,16,2,8, - 1,12,1,2,1,2,17,6,242,2,10,18,247,2,1,2, - 8,4,249,26,4,30,3,8,1,2,3,12,254,4,2,115, - 174,0,0,0,8,13,17,18,8,18,5,51,18,29,30,34, - 18,35,9,15,9,15,31,38,46,50,31,50,20,58,20,27, - 20,27,56,58,9,17,19,36,37,45,19,46,9,16,18,29, - 30,34,36,43,45,50,18,51,9,15,12,20,5,22,12,17, - 21,22,12,22,9,79,20,31,32,36,32,51,47,50,32,51, - 52,53,32,54,20,55,13,55,18,22,9,79,20,26,13,26, - 23,26,27,31,23,32,35,38,39,43,39,58,54,57,39,58, - 59,60,39,61,35,62,23,62,13,20,20,23,20,31,32,38, - 32,47,48,77,49,52,53,59,53,68,49,69,70,77,49,77, - 48,77,32,78,20,79,13,79,10,17,18,24,26,36,10,37, - 5,22,16,32,33,39,41,49,51,62,16,63,9,63,16,22, - 9,22,114,17,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,115,38,0,0, - 0,116,0,160,1,124,0,161,1,125,1,124,1,100,0,117, - 0,114,15,116,2,100,1,124,0,23,0,131,1,130,1,116, - 3,124,1,131,1,83,0,41,2,78,122,25,110,111,32,98, - 117,105,108,116,45,105,110,32,109,111,100,117,108,101,32,110, - 97,109,101,100,32,41,4,114,188,0,0,0,114,196,0,0, - 0,114,94,0,0,0,114,186,0,0,0,41,2,114,20,0, - 0,0,114,117,0,0,0,115,2,0,0,0,32,32,114,5, - 0,0,0,218,18,95,98,117,105,108,116,105,110,95,102,114, - 111,109,95,110,97,109,101,114,3,1,0,0,141,4,0,0, - 115,8,0,0,0,10,1,8,1,12,1,8,1,115,8,0, - 0,0,10,1,6,1,14,1,8,1,115,38,0,0,0,12, - 27,12,43,38,42,12,43,5,9,8,12,16,20,8,20,5, - 62,15,26,27,54,57,61,27,61,15,62,9,62,12,26,27, - 31,12,32,5,32,114,17,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,115, - 166,0,0,0,124,1,97,0,124,0,97,1,116,2,116,1, - 131,1,125,2,116,1,106,3,160,4,161,0,68,0,93,36, - 92,2,125,3,125,4,116,5,124,4,124,2,131,2,114,49, - 124,3,116,1,106,6,118,0,114,30,116,7,125,5,110,9, - 116,0,160,8,124,3,161,1,114,38,116,9,125,5,110,1, - 113,13,116,10,124,4,124,5,131,2,125,6,116,11,124,6, - 124,4,131,2,1,0,113,13,116,1,106,3,116,12,25,0, - 125,7,100,1,68,0,93,23,125,8,124,8,116,1,106,3, - 118,1,114,69,116,13,124,8,131,1,125,9,110,5,116,1, - 106,3,124,8,25,0,125,9,116,14,124,7,124,8,124,9, - 131,3,1,0,113,57,100,2,83,0,41,3,122,250,83,101, - 116,117,112,32,105,109,112,111,114,116,108,105,98,32,98,121, - 32,105,109,112,111,114,116,105,110,103,32,110,101,101,100,101, - 100,32,98,117,105,108,116,45,105,110,32,109,111,100,117,108, - 101,115,32,97,110,100,32,105,110,106,101,99,116,105,110,103, - 32,116,104,101,109,10,32,32,32,32,105,110,116,111,32,116, - 104,101,32,103,108,111,98,97,108,32,110,97,109,101,115,112, - 97,99,101,46,10,10,32,32,32,32,65,115,32,115,121,115, - 32,105,115,32,110,101,101,100,101,100,32,102,111,114,32,115, - 121,115,46,109,111,100,117,108,101,115,32,97,99,99,101,115, - 115,32,97,110,100,32,95,105,109,112,32,105,115,32,110,101, - 101,100,101,100,32,116,111,32,108,111,97,100,32,98,117,105, - 108,116,45,105,110,10,32,32,32,32,109,111,100,117,108,101, - 115,44,32,116,104,111,115,101,32,116,119,111,32,109,111,100, - 117,108,101,115,32,109,117,115,116,32,98,101,32,101,120,112, - 108,105,99,105,116,108,121,32,112,97,115,115,101,100,32,105, - 110,46,10,10,32,32,32,32,41,3,114,28,0,0,0,114, - 109,0,0,0,114,77,0,0,0,78,41,15,114,70,0,0, - 0,114,18,0,0,0,114,3,0,0,0,114,113,0,0,0, - 218,5,105,116,101,109,115,114,231,0,0,0,114,93,0,0, - 0,114,188,0,0,0,114,106,0,0,0,114,207,0,0,0, - 114,168,0,0,0,114,174,0,0,0,114,8,0,0,0,114, - 3,1,0,0,114,11,0,0,0,41,10,218,10,115,121,115, - 95,109,111,100,117,108,101,218,11,95,105,109,112,95,109,111, - 100,117,108,101,90,11,109,111,100,117,108,101,95,116,121,112, - 101,114,20,0,0,0,114,118,0,0,0,114,130,0,0,0, - 114,117,0,0,0,90,11,115,101,108,102,95,109,111,100,117, - 108,101,90,12,98,117,105,108,116,105,110,95,110,97,109,101, - 90,14,98,117,105,108,116,105,110,95,109,111,100,117,108,101, - 115,10,0,0,0,32,32,32,32,32,32,32,32,32,32,114, - 5,0,0,0,218,6,95,115,101,116,117,112,114,7,1,0, - 0,148,4,0,0,115,40,0,0,0,4,9,4,1,8,3, - 18,1,10,1,10,1,6,1,10,1,6,1,2,2,10,1, - 10,1,2,128,10,3,8,1,10,1,10,1,10,2,14,1, - 4,251,115,54,0,0,0,4,9,4,1,8,3,8,1,4, - 9,6,247,8,1,2,8,8,249,2,5,6,252,8,1,2, - 3,6,254,2,2,10,1,10,1,2,128,10,3,2,1,4, - 5,2,251,8,1,2,3,10,254,10,2,18,1,115,166,0, - 0,0,12,23,5,9,11,21,5,8,19,23,24,27,19,28, - 5,16,25,28,25,36,25,44,25,44,5,45,5,45,9,21, - 9,13,15,21,12,22,23,29,31,42,12,43,9,45,16,20, - 24,27,24,48,16,48,13,25,26,41,17,23,17,23,18,22, - 18,38,33,37,18,38,13,25,26,40,17,23,17,23,17,25, - 20,37,38,44,46,52,20,53,13,17,13,31,32,36,38,44, - 13,45,13,45,0,0,19,22,19,30,31,39,19,40,5,16, - 25,61,5,59,5,59,9,21,12,24,32,35,32,43,12,43, - 9,55,30,48,49,61,30,62,13,27,13,27,30,33,30,41, - 42,54,30,55,13,27,9,16,17,28,30,42,44,58,9,59, - 9,59,9,59,5,59,5,59,114,17,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, - 0,0,115,38,0,0,0,116,0,124,0,124,1,131,2,1, - 0,116,1,106,2,160,3,116,4,161,1,1,0,116,1,106, - 2,160,3,116,5,161,1,1,0,100,1,83,0,41,2,122, - 48,73,110,115,116,97,108,108,32,105,109,112,111,114,116,101, - 114,115,32,102,111,114,32,98,117,105,108,116,105,110,32,97, - 110,100,32,102,114,111,122,101,110,32,109,111,100,117,108,101, - 115,78,41,6,114,7,1,0,0,114,18,0,0,0,114,229, - 0,0,0,114,142,0,0,0,114,188,0,0,0,114,207,0, - 0,0,41,2,114,5,1,0,0,114,6,1,0,0,115,2, - 0,0,0,32,32,114,5,0,0,0,218,8,95,105,110,115, - 116,97,108,108,114,8,1,0,0,183,4,0,0,243,6,0, - 0,0,10,2,12,2,16,1,114,9,1,0,0,115,38,0, - 0,0,5,11,12,22,24,35,5,36,5,36,5,8,5,18, - 5,42,26,41,5,42,5,42,5,8,5,18,5,41,26,40, - 5,41,5,41,5,41,5,41,114,17,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,115,32,0,0,0,100,1,100,2,108,0,125,0,124, - 0,97,1,124,0,160,2,116,3,106,4,116,5,25,0,161, - 1,1,0,100,2,83,0,41,3,122,57,73,110,115,116,97, - 108,108,32,105,109,112,111,114,116,101,114,115,32,116,104,97, - 116,32,114,101,113,117,105,114,101,32,101,120,116,101,114,110, - 97,108,32,102,105,108,101,115,121,115,116,101,109,32,97,99, - 99,101,115,115,114,27,0,0,0,78,41,6,218,26,95,102, - 114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,95, - 101,120,116,101,114,110,97,108,114,149,0,0,0,114,8,1, - 0,0,114,18,0,0,0,114,113,0,0,0,114,8,0,0, - 0,41,1,114,10,1,0,0,115,1,0,0,0,32,114,5, - 0,0,0,218,27,95,105,110,115,116,97,108,108,95,101,120, - 116,101,114,110,97,108,95,105,109,112,111,114,116,101,114,115, - 114,11,1,0,0,191,4,0,0,243,6,0,0,0,8,3, - 4,1,20,1,114,12,1,0,0,115,32,0,0,0,5,38, - 5,38,5,38,5,38,27,53,5,24,5,31,5,63,41,44, - 41,52,53,61,41,62,5,63,5,63,5,63,5,63,114,17, - 0,0,0,114,204,0,0,0,114,0,0,0,0,114,26,0, - 0,0,41,4,78,78,114,24,0,0,0,114,27,0,0,0, - 41,54,114,9,0,0,0,114,6,0,0,0,114,28,0,0, - 0,114,109,0,0,0,114,77,0,0,0,114,149,0,0,0, - 114,16,0,0,0,114,21,0,0,0,114,72,0,0,0,114, - 40,0,0,0,114,50,0,0,0,114,23,0,0,0,114,25, - 0,0,0,114,58,0,0,0,114,61,0,0,0,114,64,0, - 0,0,114,78,0,0,0,114,80,0,0,0,114,90,0,0, - 0,114,102,0,0,0,114,108,0,0,0,114,119,0,0,0, - 114,132,0,0,0,114,133,0,0,0,114,112,0,0,0,114, - 168,0,0,0,114,174,0,0,0,114,178,0,0,0,114,127, - 0,0,0,114,114,0,0,0,114,185,0,0,0,114,186,0, - 0,0,114,115,0,0,0,114,188,0,0,0,114,207,0,0, - 0,114,215,0,0,0,114,226,0,0,0,114,228,0,0,0, - 114,230,0,0,0,114,236,0,0,0,90,15,95,69,82,82, - 95,77,83,71,95,80,82,69,70,73,88,114,238,0,0,0, - 114,241,0,0,0,218,6,111,98,106,101,99,116,114,242,0, - 0,0,114,243,0,0,0,114,244,0,0,0,114,249,0,0, - 0,114,255,0,0,0,114,2,1,0,0,114,3,1,0,0, - 114,7,1,0,0,114,8,1,0,0,114,11,1,0,0,114, - 24,0,0,0,114,17,0,0,0,114,5,0,0,0,218,8, - 60,109,111,100,117,108,101,62,114,14,1,0,0,1,0,0, - 0,115,104,0,0,0,4,0,6,22,4,9,4,1,4,1, - 4,3,6,3,6,8,4,8,4,2,14,3,12,4,12,77, - 12,21,6,16,6,37,6,17,12,11,6,8,6,11,6,12, - 6,19,12,26,14,102,8,26,12,45,6,72,6,17,6,17, - 6,30,6,36,6,45,12,15,12,80,12,85,6,13,6,9, - 8,10,6,47,4,16,8,1,6,2,6,42,6,3,8,16, - 12,15,6,37,8,27,6,37,6,7,6,35,10,8,115,124, - 0,0,0,4,7,6,19,4,5,4,1,4,1,4,3,6, - 8,6,4,4,7,4,2,8,4,2,255,4,1,12,77,12, - 21,12,14,6,39,6,17,6,11,2,3,10,5,6,11,6, - 11,6,19,6,27,12,102,4,3,10,23,2,3,6,42,2, - 3,10,69,6,17,6,16,6,31,6,37,6,43,6,14,12, - 82,12,83,12,15,6,9,6,10,2,3,6,44,6,16,4, - 3,8,1,6,41,6,3,6,16,2,3,6,12,2,3,10, - 34,6,27,2,3,6,34,6,7,6,35,6,8,10,8,115, - 130,1,0,0,1,4,1,4,1,38,1,38,1,38,11,15, - 1,8,13,17,1,10,12,16,1,9,23,27,1,20,1,38, - 1,38,1,38,1,27,1,27,1,27,17,19,1,14,16,18, - 1,13,1,9,1,9,1,9,1,9,22,34,1,9,1,9, - 1,69,1,69,1,69,1,69,1,69,1,69,1,74,1,74, - 1,74,1,74,1,74,1,74,1,29,1,29,1,29,1,29, - 1,29,1,29,1,16,1,16,1,16,1,23,1,23,1,23, - 1,28,1,28,1,28,48,49,1,54,1,54,1,54,1,54, - 1,54,1,37,1,37,1,37,1,36,1,36,1,36,1,27, - 1,27,1,27,1,64,1,64,1,64,1,41,1,41,1,41, - 1,41,1,41,1,41,46,50,63,67,1,74,1,74,1,74, - 1,74,1,74,38,42,1,16,1,16,1,16,50,55,1,18, - 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,71, - 1,71,1,71,1,18,1,18,1,18,1,18,1,18,1,18, - 1,18,1,18,1,18,1,36,1,36,1,36,1,49,1,49, - 1,49,1,49,1,49,1,49,1,48,1,48,1,48,1,48, - 1,48,1,48,1,28,1,28,1,28,1,28,1,28,1,28, - 1,56,1,56,1,56,1,42,1,42,1,42,35,39,1,20, - 1,20,1,20,1,46,1,46,1,46,19,37,1,16,12,27, - 30,36,12,36,1,9,1,18,1,18,1,18,18,24,18,26, - 1,15,1,18,1,18,1,18,31,35,1,45,1,45,1,45, - 62,67,1,18,1,18,1,18,1,18,1,18,1,19,1,19, - 1,19,30,34,1,22,1,22,1,22,1,32,1,32,1,32, - 1,59,1,59,1,59,1,41,1,41,1,41,1,63,1,63, - 1,63,1,63,1,63,114,17,0,0,0, + 1,8,128,2,0,2,128,2,0,4,1,115,216,0,0,0, + 14,22,5,22,5,22,9,10,16,26,27,28,30,33,16,34, + 9,22,16,25,13,40,25,31,25,40,43,53,25,53,17,22, + 17,22,25,40,17,22,19,28,29,54,40,45,29,54,29,54, + 36,40,41,42,36,43,36,52,29,54,29,54,19,55,13,55, + 14,15,19,22,14,22,9,22,20,29,13,49,34,41,42,48, + 50,59,34,60,13,49,17,33,34,40,42,48,42,56,58,65, + 44,48,17,49,17,49,17,49,0,0,18,25,26,32,34,35, + 18,36,9,22,25,32,25,59,40,46,40,55,57,58,25,59, + 13,22,13,22,17,42,43,50,52,61,17,62,17,62,17,62, + 0,0,13,22,20,39,13,22,13,22,13,22,13,22,21,24, + 21,29,33,42,21,42,17,29,21,24,21,32,21,63,37,46, + 48,62,21,63,71,75,21,75,17,29,21,29,21,29,21,29, + 21,29,21,29,17,22,0,0,0,0,0,0,0,0,13,22, + 0,0,9,22,12,18,5,18,115,30,0,0,0,193,2,5, + 65,8,2,193,8,7,65,40,9,193,15,14,65,35,9,193, + 34,1,65,35,9,193,35,5,65,40,9,99,1,0,0,0, + 0,0,0,0,0,0,0,0,7,0,0,0,3,0,0,0, + 115,146,0,0,0,124,0,160,0,100,1,161,1,125,1,124, + 0,160,0,100,2,161,1,125,2,124,1,100,3,117,1,114, + 41,124,2,100,3,117,1,114,39,124,1,124,2,106,1,107, + 3,114,39,116,2,160,3,100,4,124,1,155,2,100,5,124, + 2,106,1,155,2,100,6,157,5,116,4,100,7,100,8,166, + 3,1,0,124,1,83,0,124,2,100,3,117,1,114,48,124, + 2,106,1,83,0,116,2,160,3,100,9,116,4,100,7,100, + 8,166,3,1,0,124,0,100,10,25,0,125,1,100,11,124, + 0,118,1,114,71,124,1,160,5,100,12,161,1,100,13,25, + 0,125,1,124,1,83,0,41,14,122,167,67,97,108,99,117, + 108,97,116,101,32,119,104,97,116,32,95,95,112,97,99,107, + 97,103,101,95,95,32,115,104,111,117,108,100,32,98,101,46, + 10,10,32,32,32,32,95,95,112,97,99,107,97,103,101,95, + 95,32,105,115,32,110,111,116,32,103,117,97,114,97,110,116, + 101,101,100,32,116,111,32,98,101,32,100,101,102,105,110,101, + 100,32,111,114,32,99,111,117,108,100,32,98,101,32,115,101, + 116,32,116,111,32,78,111,110,101,10,32,32,32,32,116,111, + 32,114,101,112,114,101,115,101,110,116,32,116,104,97,116,32, + 105,116,115,32,112,114,111,112,101,114,32,118,97,108,117,101, + 32,105,115,32,117,110,107,110,111,119,110,46,10,10,32,32, + 32,32,114,171,0,0,0,114,121,0,0,0,78,122,32,95, + 95,112,97,99,107,97,103,101,95,95,32,33,61,32,95,95, + 115,112,101,99,95,95,46,112,97,114,101,110,116,32,40,122, + 4,32,33,61,32,250,1,41,233,3,0,0,0,41,1,90, + 10,115,116,97,99,107,108,101,118,101,108,122,89,99,97,110, + 39,116,32,114,101,115,111,108,118,101,32,112,97,99,107,97, + 103,101,32,102,114,111,109,32,95,95,115,112,101,99,95,95, + 32,111,114,32,95,95,112,97,99,107,97,103,101,95,95,44, + 32,102,97,108,108,105,110,103,32,98,97,99,107,32,111,110, + 32,95,95,110,97,109,101,95,95,32,97,110,100,32,95,95, + 112,97,116,104,95,95,114,8,0,0,0,114,167,0,0,0, + 114,152,0,0,0,114,27,0,0,0,41,6,114,41,0,0, + 0,114,154,0,0,0,114,109,0,0,0,114,110,0,0,0, + 114,182,0,0,0,114,153,0,0,0,41,3,218,7,103,108, + 111,98,97,108,115,114,224,0,0,0,114,117,0,0,0,115, + 3,0,0,0,32,32,32,114,5,0,0,0,218,17,95,99, + 97,108,99,95,95,95,112,97,99,107,97,103,101,95,95,114, + 255,0,0,0,77,4,0,0,115,42,0,0,0,10,7,10, + 1,8,1,18,1,6,1,2,1,4,255,4,1,6,255,4, + 2,6,254,4,3,8,1,6,1,6,2,4,2,6,254,8, + 3,8,1,14,1,4,1,115,48,0,0,0,10,7,10,1, + 6,1,2,14,6,243,2,3,8,253,2,3,2,254,2,2, + 18,255,10,1,4,1,6,1,2,8,6,249,2,2,2,2, + 2,255,10,1,8,1,6,1,16,1,4,1,115,146,0,0, + 0,15,22,15,41,27,40,15,41,5,12,12,19,12,35,24, + 34,12,35,5,9,8,15,23,27,8,27,5,49,12,16,24, + 28,12,28,9,56,33,40,44,48,44,55,33,55,9,56,13, + 22,13,56,28,63,29,36,28,63,28,63,29,33,29,40,28, + 63,28,63,28,63,28,41,54,55,13,56,13,56,13,56,16, + 23,9,23,10,14,22,26,10,26,5,49,16,20,16,27,9, + 27,9,18,9,52,24,63,24,37,50,51,9,52,9,52,9, + 52,19,26,27,37,19,38,9,16,12,22,30,37,12,37,9, + 49,23,30,23,46,42,45,23,46,47,48,23,49,13,20,12, + 19,5,19,114,17,0,0,0,114,24,0,0,0,99,5,0, + 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, + 0,0,115,174,0,0,0,124,4,100,1,107,2,114,9,116, + 0,124,0,131,1,125,5,110,18,124,1,100,2,117,1,114, + 15,124,1,110,1,105,0,125,6,116,1,124,6,131,1,125, + 7,116,0,124,0,124,7,124,4,131,3,125,5,124,3,115, + 74,124,4,100,1,107,2,114,42,116,0,124,0,160,2,100, + 3,161,1,100,1,25,0,131,1,83,0,124,0,115,46,124, + 5,83,0,116,3,124,0,131,1,116,3,124,0,160,2,100, + 3,161,1,100,1,25,0,131,1,24,0,125,8,116,4,106, + 5,124,5,106,6,100,2,116,3,124,5,106,6,131,1,124, + 8,24,0,133,2,25,0,25,0,83,0,116,7,124,5,100, + 4,131,2,114,85,116,8,124,5,124,3,116,0,131,3,83, + 0,124,5,83,0,41,5,97,215,1,0,0,73,109,112,111, + 114,116,32,97,32,109,111,100,117,108,101,46,10,10,32,32, + 32,32,84,104,101,32,39,103,108,111,98,97,108,115,39,32, + 97,114,103,117,109,101,110,116,32,105,115,32,117,115,101,100, + 32,116,111,32,105,110,102,101,114,32,119,104,101,114,101,32, + 116,104,101,32,105,109,112,111,114,116,32,105,115,32,111,99, + 99,117,114,114,105,110,103,32,102,114,111,109,10,32,32,32, + 32,116,111,32,104,97,110,100,108,101,32,114,101,108,97,116, + 105,118,101,32,105,109,112,111,114,116,115,46,32,84,104,101, + 32,39,108,111,99,97,108,115,39,32,97,114,103,117,109,101, + 110,116,32,105,115,32,105,103,110,111,114,101,100,46,32,84, + 104,101,10,32,32,32,32,39,102,114,111,109,108,105,115,116, + 39,32,97,114,103,117,109,101,110,116,32,115,112,101,99,105, + 102,105,101,115,32,119,104,97,116,32,115,104,111,117,108,100, + 32,101,120,105,115,116,32,97,115,32,97,116,116,114,105,98, + 117,116,101,115,32,111,110,32,116,104,101,32,109,111,100,117, + 108,101,10,32,32,32,32,98,101,105,110,103,32,105,109,112, + 111,114,116,101,100,32,40,101,46,103,46,32,96,96,102,114, + 111,109,32,109,111,100,117,108,101,32,105,109,112,111,114,116, + 32,60,102,114,111,109,108,105,115,116,62,96,96,41,46,32, + 32,84,104,101,32,39,108,101,118,101,108,39,10,32,32,32, + 32,97,114,103,117,109,101,110,116,32,114,101,112,114,101,115, + 101,110,116,115,32,116,104,101,32,112,97,99,107,97,103,101, + 32,108,111,99,97,116,105,111,110,32,116,111,32,105,109,112, + 111,114,116,32,102,114,111,109,32,105,110,32,97,32,114,101, + 108,97,116,105,118,101,10,32,32,32,32,105,109,112,111,114, + 116,32,40,101,46,103,46,32,96,96,102,114,111,109,32,46, + 46,112,107,103,32,105,109,112,111,114,116,32,109,111,100,96, + 96,32,119,111,117,108,100,32,104,97,118,101,32,97,32,39, + 108,101,118,101,108,39,32,111,102,32,50,41,46,10,10,32, + 32,32,32,114,27,0,0,0,78,114,152,0,0,0,114,167, + 0,0,0,41,9,114,244,0,0,0,114,255,0,0,0,218, + 9,112,97,114,116,105,116,105,111,110,114,223,0,0,0,114, + 18,0,0,0,114,113,0,0,0,114,8,0,0,0,114,10, + 0,0,0,114,249,0,0,0,41,9,114,20,0,0,0,114, + 254,0,0,0,218,6,108,111,99,97,108,115,114,250,0,0, + 0,114,225,0,0,0,114,118,0,0,0,90,8,103,108,111, + 98,97,108,115,95,114,224,0,0,0,90,7,99,117,116,95, + 111,102,102,115,9,0,0,0,32,32,32,32,32,32,32,32, + 32,114,5,0,0,0,218,10,95,95,105,109,112,111,114,116, + 95,95,114,2,1,0,0,104,4,0,0,115,30,0,0,0, + 8,11,10,1,16,2,8,1,12,1,4,1,8,3,18,1, + 4,1,4,1,26,4,30,3,10,1,12,1,4,2,115,40, + 0,0,0,6,11,2,5,10,252,16,2,8,1,12,1,2, + 1,2,17,6,242,2,10,18,247,2,1,2,8,4,249,26, + 4,30,3,8,1,2,3,12,254,4,2,115,174,0,0,0, + 8,13,17,18,8,18,5,51,18,29,30,34,18,35,9,15, + 9,15,31,38,46,50,31,50,20,58,20,27,20,27,56,58, + 9,17,19,36,37,45,19,46,9,16,18,29,30,34,36,43, + 45,50,18,51,9,15,12,20,5,22,12,17,21,22,12,22, + 9,79,20,31,32,36,32,51,47,50,32,51,52,53,32,54, + 20,55,13,55,18,22,9,79,20,26,13,26,23,26,27,31, + 23,32,35,38,39,43,39,58,54,57,39,58,59,60,39,61, + 35,62,23,62,13,20,20,23,20,31,32,38,32,47,48,77, + 49,52,53,59,53,68,49,69,70,77,49,77,48,77,32,78, + 20,79,13,79,10,17,18,24,26,36,10,37,5,22,16,32, + 33,39,41,49,51,62,16,63,9,63,16,22,9,22,114,17, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,115,38,0,0,0,116,0,160, + 1,124,0,161,1,125,1,124,1,100,0,117,0,114,15,116, + 2,100,1,124,0,23,0,131,1,130,1,116,3,124,1,131, + 1,83,0,41,2,78,122,25,110,111,32,98,117,105,108,116, + 45,105,110,32,109,111,100,117,108,101,32,110,97,109,101,100, + 32,41,4,114,188,0,0,0,114,196,0,0,0,114,94,0, + 0,0,114,186,0,0,0,41,2,114,20,0,0,0,114,117, + 0,0,0,115,2,0,0,0,32,32,114,5,0,0,0,218, + 18,95,98,117,105,108,116,105,110,95,102,114,111,109,95,110, + 97,109,101,114,3,1,0,0,141,4,0,0,115,8,0,0, + 0,10,1,8,1,12,1,8,1,115,8,0,0,0,10,1, + 6,1,14,1,8,1,115,38,0,0,0,12,27,12,43,38, + 42,12,43,5,9,8,12,16,20,8,20,5,62,15,26,27, + 54,57,61,27,61,15,62,9,62,12,26,27,31,12,32,5, + 32,114,17,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,3,0,0,0,115,166,0,0,0, + 124,1,97,0,124,0,97,1,116,2,116,1,131,1,125,2, + 116,1,106,3,160,4,161,0,68,0,93,36,92,2,125,3, + 125,4,116,5,124,4,124,2,131,2,114,49,124,3,116,1, + 106,6,118,0,114,30,116,7,125,5,110,9,116,0,160,8, + 124,3,161,1,114,38,116,9,125,5,110,1,113,13,116,10, + 124,4,124,5,131,2,125,6,116,11,124,6,124,4,131,2, + 1,0,113,13,116,1,106,3,116,12,25,0,125,7,100,1, + 68,0,93,23,125,8,124,8,116,1,106,3,118,1,114,69, + 116,13,124,8,131,1,125,9,110,5,116,1,106,3,124,8, + 25,0,125,9,116,14,124,7,124,8,124,9,131,3,1,0, + 113,57,100,2,83,0,41,3,122,250,83,101,116,117,112,32, + 105,109,112,111,114,116,108,105,98,32,98,121,32,105,109,112, + 111,114,116,105,110,103,32,110,101,101,100,101,100,32,98,117, + 105,108,116,45,105,110,32,109,111,100,117,108,101,115,32,97, + 110,100,32,105,110,106,101,99,116,105,110,103,32,116,104,101, + 109,10,32,32,32,32,105,110,116,111,32,116,104,101,32,103, + 108,111,98,97,108,32,110,97,109,101,115,112,97,99,101,46, + 10,10,32,32,32,32,65,115,32,115,121,115,32,105,115,32, + 110,101,101,100,101,100,32,102,111,114,32,115,121,115,46,109, + 111,100,117,108,101,115,32,97,99,99,101,115,115,32,97,110, + 100,32,95,105,109,112,32,105,115,32,110,101,101,100,101,100, + 32,116,111,32,108,111,97,100,32,98,117,105,108,116,45,105, + 110,10,32,32,32,32,109,111,100,117,108,101,115,44,32,116, + 104,111,115,101,32,116,119,111,32,109,111,100,117,108,101,115, + 32,109,117,115,116,32,98,101,32,101,120,112,108,105,99,105, + 116,108,121,32,112,97,115,115,101,100,32,105,110,46,10,10, + 32,32,32,32,41,3,114,28,0,0,0,114,109,0,0,0, + 114,77,0,0,0,78,41,15,114,70,0,0,0,114,18,0, + 0,0,114,3,0,0,0,114,113,0,0,0,218,5,105,116, + 101,109,115,114,231,0,0,0,114,93,0,0,0,114,188,0, + 0,0,114,106,0,0,0,114,207,0,0,0,114,168,0,0, + 0,114,174,0,0,0,114,8,0,0,0,114,3,1,0,0, + 114,11,0,0,0,41,10,218,10,115,121,115,95,109,111,100, + 117,108,101,218,11,95,105,109,112,95,109,111,100,117,108,101, + 90,11,109,111,100,117,108,101,95,116,121,112,101,114,20,0, + 0,0,114,118,0,0,0,114,130,0,0,0,114,117,0,0, + 0,90,11,115,101,108,102,95,109,111,100,117,108,101,90,12, + 98,117,105,108,116,105,110,95,110,97,109,101,90,14,98,117, + 105,108,116,105,110,95,109,111,100,117,108,101,115,10,0,0, + 0,32,32,32,32,32,32,32,32,32,32,114,5,0,0,0, + 218,6,95,115,101,116,117,112,114,7,1,0,0,148,4,0, + 0,115,40,0,0,0,4,9,4,1,8,3,18,1,10,1, + 10,1,6,1,10,1,6,1,2,2,10,1,10,1,2,128, + 10,3,8,1,10,1,10,1,10,2,14,1,4,251,115,54, + 0,0,0,4,9,4,1,8,3,8,1,4,9,6,247,8, + 1,2,8,8,249,2,5,6,252,8,1,2,3,6,254,2, + 2,10,1,10,1,2,128,10,3,2,1,4,5,2,251,8, + 1,2,3,10,254,10,2,18,1,115,166,0,0,0,12,23, + 5,9,11,21,5,8,19,23,24,27,19,28,5,16,25,28, + 25,36,25,44,25,44,5,45,5,45,9,21,9,13,15,21, + 12,22,23,29,31,42,12,43,9,45,16,20,24,27,24,48, + 16,48,13,25,26,41,17,23,17,23,18,22,18,38,33,37, + 18,38,13,25,26,40,17,23,17,23,17,25,20,37,38,44, + 46,52,20,53,13,17,13,31,32,36,38,44,13,45,13,45, + 0,0,19,22,19,30,31,39,19,40,5,16,25,61,5,59, + 5,59,9,21,12,24,32,35,32,43,12,43,9,55,30,48, + 49,61,30,62,13,27,13,27,30,33,30,41,42,54,30,55, + 13,27,9,16,17,28,30,42,44,58,9,59,9,59,9,59, + 5,59,5,59,114,17,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,115,38, + 0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,106, + 2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,116, + 5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,115, + 116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,102, + 111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,102, + 114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,6, + 114,7,1,0,0,114,18,0,0,0,114,229,0,0,0,114, + 142,0,0,0,114,188,0,0,0,114,207,0,0,0,41,2, + 114,5,1,0,0,114,6,1,0,0,115,2,0,0,0,32, + 32,114,5,0,0,0,218,8,95,105,110,115,116,97,108,108, + 114,8,1,0,0,183,4,0,0,243,6,0,0,0,10,2, + 12,2,16,1,114,9,1,0,0,115,38,0,0,0,5,11, + 12,22,24,35,5,36,5,36,5,8,5,18,5,42,26,41, + 5,42,5,42,5,8,5,18,5,41,26,40,5,41,5,41, + 5,41,5,41,114,17,0,0,0,99,0,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,115,32, + 0,0,0,100,1,100,2,108,0,125,0,124,0,97,1,124, + 0,160,2,116,3,106,4,116,5,25,0,161,1,1,0,100, + 2,83,0,41,3,122,57,73,110,115,116,97,108,108,32,105, + 109,112,111,114,116,101,114,115,32,116,104,97,116,32,114,101, + 113,117,105,114,101,32,101,120,116,101,114,110,97,108,32,102, + 105,108,101,115,121,115,116,101,109,32,97,99,99,101,115,115, + 114,27,0,0,0,78,41,6,218,26,95,102,114,111,122,101, + 110,95,105,109,112,111,114,116,108,105,98,95,101,120,116,101, + 114,110,97,108,114,149,0,0,0,114,8,1,0,0,114,18, + 0,0,0,114,113,0,0,0,114,8,0,0,0,41,1,114, + 10,1,0,0,115,1,0,0,0,32,114,5,0,0,0,218, + 27,95,105,110,115,116,97,108,108,95,101,120,116,101,114,110, + 97,108,95,105,109,112,111,114,116,101,114,115,114,11,1,0, + 0,191,4,0,0,243,6,0,0,0,8,3,4,1,20,1, + 114,12,1,0,0,115,32,0,0,0,5,38,5,38,5,38, + 5,38,27,53,5,24,5,31,5,63,41,44,41,52,53,61, + 41,62,5,63,5,63,5,63,5,63,114,17,0,0,0,114, + 204,0,0,0,114,0,0,0,0,114,26,0,0,0,41,4, + 78,78,114,24,0,0,0,114,27,0,0,0,41,54,114,9, + 0,0,0,114,6,0,0,0,114,28,0,0,0,114,109,0, + 0,0,114,77,0,0,0,114,149,0,0,0,114,16,0,0, + 0,114,21,0,0,0,114,72,0,0,0,114,40,0,0,0, + 114,50,0,0,0,114,23,0,0,0,114,25,0,0,0,114, + 58,0,0,0,114,61,0,0,0,114,64,0,0,0,114,78, + 0,0,0,114,80,0,0,0,114,90,0,0,0,114,102,0, + 0,0,114,108,0,0,0,114,119,0,0,0,114,132,0,0, + 0,114,133,0,0,0,114,112,0,0,0,114,168,0,0,0, + 114,174,0,0,0,114,178,0,0,0,114,127,0,0,0,114, + 114,0,0,0,114,185,0,0,0,114,186,0,0,0,114,115, + 0,0,0,114,188,0,0,0,114,207,0,0,0,114,215,0, + 0,0,114,226,0,0,0,114,228,0,0,0,114,230,0,0, + 0,114,236,0,0,0,90,15,95,69,82,82,95,77,83,71, + 95,80,82,69,70,73,88,114,238,0,0,0,114,241,0,0, + 0,218,6,111,98,106,101,99,116,114,242,0,0,0,114,243, + 0,0,0,114,244,0,0,0,114,249,0,0,0,114,255,0, + 0,0,114,2,1,0,0,114,3,1,0,0,114,7,1,0, + 0,114,8,1,0,0,114,11,1,0,0,114,24,0,0,0, + 114,17,0,0,0,114,5,0,0,0,218,8,60,109,111,100, + 117,108,101,62,114,14,1,0,0,1,0,0,0,115,104,0, + 0,0,4,0,6,22,4,9,4,1,4,1,4,3,6,3, + 6,8,4,8,4,2,14,3,12,4,12,77,12,21,6,16, + 6,37,6,17,12,11,6,8,6,11,6,12,6,19,12,26, + 14,102,8,26,12,45,6,72,6,17,6,17,6,30,6,36, + 6,45,12,15,12,80,12,85,6,13,6,9,8,10,6,47, + 4,16,8,1,6,2,6,42,6,3,8,16,12,15,6,37, + 8,27,6,37,6,7,6,35,10,8,115,124,0,0,0,4, + 7,6,19,4,5,4,1,4,1,4,3,6,8,6,4,4, + 7,4,2,8,4,2,255,4,1,12,77,12,21,12,14,6, + 39,6,17,6,11,2,3,10,5,6,11,6,11,6,19,6, + 27,12,102,4,3,10,23,2,3,6,42,2,3,10,69,6, + 17,6,16,6,31,6,37,6,43,6,14,12,82,12,83,12, + 15,6,9,6,10,2,3,6,44,6,16,4,3,8,1,6, + 41,6,3,6,16,2,3,6,12,2,3,10,34,6,27,2, + 3,6,34,6,7,6,35,6,8,10,8,115,130,1,0,0, + 1,4,1,4,1,38,1,38,1,38,11,15,1,8,13,17, + 1,10,12,16,1,9,23,27,1,20,1,38,1,38,1,38, + 1,27,1,27,1,27,17,19,1,14,16,18,1,13,1,9, + 1,9,1,9,1,9,22,34,1,9,1,9,1,69,1,69, + 1,69,1,69,1,69,1,69,1,74,1,74,1,74,1,74, + 1,74,1,74,1,29,1,29,1,29,1,29,1,29,1,29, + 1,16,1,16,1,16,1,23,1,23,1,23,1,28,1,28, + 1,28,48,49,1,54,1,54,1,54,1,54,1,54,1,37, + 1,37,1,37,1,36,1,36,1,36,1,27,1,27,1,27, + 1,64,1,64,1,64,1,41,1,41,1,41,1,41,1,41, + 1,41,46,50,63,67,1,74,1,74,1,74,1,74,1,74, + 38,42,1,16,1,16,1,16,50,55,1,18,1,18,1,18, + 1,18,1,18,1,18,1,18,1,18,1,71,1,71,1,71, + 1,18,1,18,1,18,1,18,1,18,1,18,1,18,1,18, + 1,18,1,36,1,36,1,36,1,49,1,49,1,49,1,49, + 1,49,1,49,1,48,1,48,1,48,1,48,1,48,1,48, + 1,28,1,28,1,28,1,28,1,28,1,28,1,56,1,56, + 1,56,1,42,1,42,1,42,35,39,1,20,1,20,1,20, + 1,46,1,46,1,46,19,37,1,16,12,27,30,36,12,36, + 1,9,1,18,1,18,1,18,18,24,18,26,1,15,1,18, + 1,18,1,18,31,35,1,45,1,45,1,45,62,67,1,18, + 1,18,1,18,1,18,1,18,1,19,1,19,1,19,30,34, + 1,22,1,22,1,22,1,32,1,32,1,32,1,59,1,59, + 1,59,1,41,1,41,1,41,1,63,1,63,1,63,1,63, + 1,63,114,17,0,0,0, }; diff --git a/Python/importlib_external.h b/Python/importlib_external.h index 7a05504a769ee..1572d0d4d9bca 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -317,9 +317,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 12,15,12,20,21,25,12,26,5,26,114,10,0,0,0,99, 2,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0, 3,0,0,0,115,50,0,0,0,9,0,116,0,124,0,131, - 1,125,2,110,11,35,0,4,0,116,1,121,24,1,0,1, - 0,1,0,89,0,100,1,83,0,37,0,124,2,106,2,100, - 2,64,0,124,1,107,2,83,0,119,0,41,4,122,49,84, + 1,125,2,110,12,35,0,4,0,116,1,121,16,1,0,1, + 0,1,0,89,0,100,1,83,0,119,0,37,0,124,2,106, + 2,100,2,64,0,124,1,107,2,83,0,41,4,122,49,84, 101,115,116,32,119,104,101,116,104,101,114,32,116,104,101,32, 112,97,116,104,32,105,115,32,116,104,101,32,115,112,101,99, 105,102,105,101,100,32,109,111,100,101,32,116,121,112,101,46, @@ -330,608 +330,688 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 114,7,0,0,0,218,18,95,112,97,116,104,95,105,115,95, 109,111,100,101,95,116,121,112,101,114,83,0,0,0,150,0, 0,0,115,16,0,0,0,2,2,10,1,2,128,12,1,6, - 1,2,128,14,1,2,254,115,18,0,0,0,2,5,10,254, - 2,128,2,2,2,255,14,1,2,128,14,1,2,255,115,50, - 0,0,0,5,21,21,31,32,36,21,37,9,18,9,18,0, - 0,5,21,12,19,5,21,5,21,5,21,5,21,16,21,16, - 21,16,21,0,0,13,22,13,30,33,41,13,41,46,50,12, - 50,5,50,5,21,115,12,0,0,0,129,4,6,0,134,7, - 16,7,152,1,16,7,99,1,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,115,10,0,0,0, - 116,0,124,0,100,1,131,2,83,0,41,3,122,31,82,101, - 112,108,97,99,101,109,101,110,116,32,102,111,114,32,111,115, - 46,112,97,116,104,46,105,115,102,105,108,101,46,105,0,128, - 0,0,78,41,1,114,83,0,0,0,114,77,0,0,0,115, - 1,0,0,0,32,114,7,0,0,0,218,12,95,112,97,116, - 104,95,105,115,102,105,108,101,114,84,0,0,0,159,0,0, - 0,243,2,0,0,0,10,2,114,85,0,0,0,115,10,0, - 0,0,12,30,31,35,37,45,12,46,5,46,114,10,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,115,22,0,0,0,124,0,115,6,116, - 0,106,1,131,0,125,0,116,2,124,0,100,1,131,2,83, - 0,41,3,122,30,82,101,112,108,97,99,101,109,101,110,116, - 32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,100, - 105,114,46,105,0,64,0,0,78,41,3,114,21,0,0,0, - 218,6,103,101,116,99,119,100,114,83,0,0,0,114,77,0, - 0,0,115,1,0,0,0,32,114,7,0,0,0,218,11,95, - 112,97,116,104,95,105,115,100,105,114,114,87,0,0,0,164, - 0,0,0,115,6,0,0,0,4,2,8,1,10,1,115,6, - 0,0,0,2,2,10,1,10,1,115,22,0,0,0,12,16, - 5,28,16,19,16,26,16,28,9,13,12,30,31,35,37,45, - 12,46,5,46,114,10,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,3,0,0,0,115,62, - 0,0,0,124,0,115,4,100,1,83,0,116,0,106,1,124, - 0,131,1,100,2,25,0,160,2,100,3,100,4,161,2,125, - 1,116,3,124,1,131,1,100,5,107,4,111,30,124,1,160, - 4,100,6,161,1,112,30,124,1,160,5,100,4,161,1,83, - 0,41,8,250,30,82,101,112,108,97,99,101,109,101,110,116, - 32,102,111,114,32,111,115,46,112,97,116,104,46,105,115,97, - 98,115,46,70,114,0,0,0,0,114,2,0,0,0,114,1, - 0,0,0,114,3,0,0,0,122,2,92,92,78,41,6,114, - 21,0,0,0,114,58,0,0,0,218,7,114,101,112,108,97, - 99,101,114,4,0,0,0,114,29,0,0,0,114,60,0,0, - 0,41,2,114,67,0,0,0,114,66,0,0,0,115,2,0, - 0,0,32,32,114,7,0,0,0,218,11,95,112,97,116,104, - 95,105,115,97,98,115,114,90,0,0,0,172,0,0,0,115, - 8,0,0,0,4,2,4,1,22,1,32,1,115,8,0,0, - 0,2,2,6,1,22,1,32,1,115,62,0,0,0,16,20, - 9,25,20,25,20,25,16,19,16,35,36,40,16,41,42,43, - 16,44,16,63,53,56,58,62,16,63,9,13,16,19,20,24, - 16,25,28,29,16,29,16,82,35,39,35,58,51,57,35,58, - 35,81,62,66,62,81,76,80,62,81,9,82,114,10,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,115,10,0,0,0,124,0,160,0,116, - 1,161,1,83,0,41,2,114,88,0,0,0,78,41,2,114, - 29,0,0,0,114,53,0,0,0,114,77,0,0,0,115,1, - 0,0,0,32,114,7,0,0,0,114,90,0,0,0,114,90, - 0,0,0,180,0,0,0,114,85,0,0,0,114,85,0,0, - 0,115,10,0,0,0,16,20,16,48,32,47,16,48,9,48, - 114,10,0,0,0,233,182,1,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,11,0,0,0,3,0,0,0,115, - 178,0,0,0,100,1,160,0,124,0,116,1,124,0,131,1, - 161,2,125,3,116,2,106,3,124,3,116,2,106,4,116,2, - 106,5,66,0,116,2,106,6,66,0,124,2,100,2,64,0, - 131,3,125,4,9,0,116,7,106,8,124,4,100,3,131,2, - 53,0,125,5,124,5,160,9,124,1,161,1,1,0,100,4, - 4,0,4,0,131,3,1,0,110,11,35,0,49,0,115,48, - 119,4,37,0,1,0,1,0,1,0,89,0,1,0,1,0, - 116,2,106,10,124,3,124,0,131,2,1,0,100,4,83,0, - 35,0,4,0,116,11,121,88,1,0,1,0,1,0,9,0, - 116,2,106,12,124,3,131,1,1,0,130,0,35,0,4,0, - 116,11,121,87,1,0,1,0,1,0,89,0,130,0,37,0, - 37,0,119,0,119,0,41,5,122,162,66,101,115,116,45,101, - 102,102,111,114,116,32,102,117,110,99,116,105,111,110,32,116, - 111,32,119,114,105,116,101,32,100,97,116,97,32,116,111,32, - 97,32,112,97,116,104,32,97,116,111,109,105,99,97,108,108, - 121,46,10,32,32,32,32,66,101,32,112,114,101,112,97,114, - 101,100,32,116,111,32,104,97,110,100,108,101,32,97,32,70, - 105,108,101,69,120,105,115,116,115,69,114,114,111,114,32,105, - 102,32,99,111,110,99,117,114,114,101,110,116,32,119,114,105, - 116,105,110,103,32,111,102,32,116,104,101,10,32,32,32,32, - 116,101,109,112,111,114,97,114,121,32,102,105,108,101,32,105, - 115,32,97,116,116,101,109,112,116,101,100,46,250,5,123,125, - 46,123,125,114,91,0,0,0,90,2,119,98,78,41,13,218, - 6,102,111,114,109,97,116,218,2,105,100,114,21,0,0,0, - 90,4,111,112,101,110,90,6,79,95,69,88,67,76,90,7, - 79,95,67,82,69,65,84,90,8,79,95,87,82,79,78,76, - 89,218,3,95,105,111,218,6,70,105,108,101,73,79,218,5, - 119,114,105,116,101,114,89,0,0,0,114,80,0,0,0,90, - 6,117,110,108,105,110,107,41,6,114,67,0,0,0,114,44, - 0,0,0,114,82,0,0,0,90,8,112,97,116,104,95,116, - 109,112,90,2,102,100,218,4,102,105,108,101,115,6,0,0, - 0,32,32,32,32,32,32,114,7,0,0,0,218,13,95,119, - 114,105,116,101,95,97,116,111,109,105,99,114,99,0,0,0, - 185,0,0,0,115,46,0,0,0,16,5,6,1,22,1,4, - 255,2,2,14,3,10,1,20,255,2,128,12,0,16,2,2, - 128,12,1,2,1,10,1,2,3,2,128,12,254,2,1,2, - 1,4,128,2,254,2,253,115,54,0,0,0,16,5,6,1, + 1,2,255,2,128,14,2,115,16,0,0,0,2,5,10,254, + 2,128,2,2,2,255,16,1,2,128,14,1,115,50,0,0, + 0,5,21,21,31,32,36,21,37,9,18,9,18,0,0,5, + 21,12,19,5,21,5,21,5,21,5,21,16,21,16,21,16, + 21,5,21,0,0,13,22,13,30,33,41,13,41,46,50,12, + 50,5,50,115,12,0,0,0,129,4,6,0,134,7,17,7, + 144,1,17,7,99,1,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,115,10,0,0,0,116,0, + 124,0,100,1,131,2,83,0,41,3,122,31,82,101,112,108, + 97,99,101,109,101,110,116,32,102,111,114,32,111,115,46,112, + 97,116,104,46,105,115,102,105,108,101,46,105,0,128,0,0, + 78,41,1,114,83,0,0,0,114,77,0,0,0,115,1,0, + 0,0,32,114,7,0,0,0,218,12,95,112,97,116,104,95, + 105,115,102,105,108,101,114,84,0,0,0,159,0,0,0,243, + 2,0,0,0,10,2,114,85,0,0,0,115,10,0,0,0, + 12,30,31,35,37,45,12,46,5,46,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,115,22,0,0,0,124,0,115,6,116,0,106, + 1,131,0,125,0,116,2,124,0,100,1,131,2,83,0,41, + 3,122,30,82,101,112,108,97,99,101,109,101,110,116,32,102, + 111,114,32,111,115,46,112,97,116,104,46,105,115,100,105,114, + 46,105,0,64,0,0,78,41,3,114,21,0,0,0,218,6, + 103,101,116,99,119,100,114,83,0,0,0,114,77,0,0,0, + 115,1,0,0,0,32,114,7,0,0,0,218,11,95,112,97, + 116,104,95,105,115,100,105,114,114,87,0,0,0,164,0,0, + 0,115,6,0,0,0,4,2,8,1,10,1,115,6,0,0, + 0,2,2,10,1,10,1,115,22,0,0,0,12,16,5,28, + 16,19,16,26,16,28,9,13,12,30,31,35,37,45,12,46, + 5,46,114,10,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,115,62,0,0, + 0,124,0,115,4,100,1,83,0,116,0,106,1,124,0,131, + 1,100,2,25,0,160,2,100,3,100,4,161,2,125,1,116, + 3,124,1,131,1,100,5,107,4,111,30,124,1,160,4,100, + 6,161,1,112,30,124,1,160,5,100,4,161,1,83,0,41, + 8,250,30,82,101,112,108,97,99,101,109,101,110,116,32,102, + 111,114,32,111,115,46,112,97,116,104,46,105,115,97,98,115, + 46,70,114,0,0,0,0,114,2,0,0,0,114,1,0,0, + 0,114,3,0,0,0,122,2,92,92,78,41,6,114,21,0, + 0,0,114,58,0,0,0,218,7,114,101,112,108,97,99,101, + 114,4,0,0,0,114,29,0,0,0,114,60,0,0,0,41, + 2,114,67,0,0,0,114,66,0,0,0,115,2,0,0,0, + 32,32,114,7,0,0,0,218,11,95,112,97,116,104,95,105, + 115,97,98,115,114,90,0,0,0,172,0,0,0,115,8,0, + 0,0,4,2,4,1,22,1,32,1,115,8,0,0,0,2, + 2,6,1,22,1,32,1,115,62,0,0,0,16,20,9,25, + 20,25,20,25,16,19,16,35,36,40,16,41,42,43,16,44, + 16,63,53,56,58,62,16,63,9,13,16,19,20,24,16,25, + 28,29,16,29,16,82,35,39,35,58,51,57,35,58,35,81, + 62,66,62,81,76,80,62,81,9,82,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,115,10,0,0,0,124,0,160,0,116,1,161, + 1,83,0,41,2,114,88,0,0,0,78,41,2,114,29,0, + 0,0,114,53,0,0,0,114,77,0,0,0,115,1,0,0, + 0,32,114,7,0,0,0,114,90,0,0,0,114,90,0,0, + 0,180,0,0,0,114,85,0,0,0,114,85,0,0,0,115, + 10,0,0,0,16,20,16,48,32,47,16,48,9,48,114,10, + 0,0,0,233,182,1,0,0,99,3,0,0,0,0,0,0, + 0,0,0,0,0,11,0,0,0,3,0,0,0,115,178,0, + 0,0,100,1,160,0,124,0,116,1,124,0,131,1,161,2, + 125,3,116,2,106,3,124,3,116,2,106,4,116,2,106,5, + 66,0,116,2,106,6,66,0,124,2,100,2,64,0,131,3, + 125,4,9,0,116,7,106,8,124,4,100,3,131,2,53,0, + 125,5,124,5,160,9,124,1,161,1,1,0,100,4,4,0, + 4,0,131,3,1,0,110,11,35,0,49,0,115,48,119,4, + 37,0,1,0,1,0,1,0,89,0,1,0,1,0,116,2, + 106,10,124,3,124,0,131,2,1,0,100,4,83,0,35,0, + 4,0,116,11,121,87,1,0,1,0,1,0,9,0,116,2, + 106,12,124,3,131,1,1,0,130,0,35,0,4,0,116,11, + 121,85,1,0,1,0,1,0,89,0,130,0,119,0,37,0, + 119,0,37,0,41,5,122,162,66,101,115,116,45,101,102,102, + 111,114,116,32,102,117,110,99,116,105,111,110,32,116,111,32, + 119,114,105,116,101,32,100,97,116,97,32,116,111,32,97,32, + 112,97,116,104,32,97,116,111,109,105,99,97,108,108,121,46, + 10,32,32,32,32,66,101,32,112,114,101,112,97,114,101,100, + 32,116,111,32,104,97,110,100,108,101,32,97,32,70,105,108, + 101,69,120,105,115,116,115,69,114,114,111,114,32,105,102,32, + 99,111,110,99,117,114,114,101,110,116,32,119,114,105,116,105, + 110,103,32,111,102,32,116,104,101,10,32,32,32,32,116,101, + 109,112,111,114,97,114,121,32,102,105,108,101,32,105,115,32, + 97,116,116,101,109,112,116,101,100,46,250,5,123,125,46,123, + 125,114,91,0,0,0,90,2,119,98,78,41,13,218,6,102, + 111,114,109,97,116,218,2,105,100,114,21,0,0,0,90,4, + 111,112,101,110,90,6,79,95,69,88,67,76,90,7,79,95, + 67,82,69,65,84,90,8,79,95,87,82,79,78,76,89,218, + 3,95,105,111,218,6,70,105,108,101,73,79,218,5,119,114, + 105,116,101,114,89,0,0,0,114,80,0,0,0,90,6,117, + 110,108,105,110,107,41,6,114,67,0,0,0,114,44,0,0, + 0,114,82,0,0,0,90,8,112,97,116,104,95,116,109,112, + 90,2,102,100,218,4,102,105,108,101,115,6,0,0,0,32, + 32,32,32,32,32,114,7,0,0,0,218,13,95,119,114,105, + 116,101,95,97,116,111,109,105,99,114,99,0,0,0,185,0, + 0,0,115,48,0,0,0,16,5,6,1,22,1,4,255,2, + 2,14,3,10,1,20,255,2,128,12,0,16,2,2,128,12, + 1,2,1,10,1,2,3,2,128,12,254,2,1,2,1,2, + 254,2,128,2,253,2,128,115,56,0,0,0,16,5,6,1, 24,1,2,255,2,13,10,248,2,1,2,255,30,1,2,128, 12,0,16,1,2,128,2,6,2,251,8,5,2,255,10,254, - 2,3,2,128,2,255,2,255,10,1,2,1,4,128,2,255, - 2,1,115,178,0,0,0,16,23,16,46,31,35,37,39,40, - 44,37,45,16,46,5,13,10,13,10,18,19,27,19,22,19, - 29,32,35,32,43,19,43,46,49,46,58,19,58,60,64,67, - 72,60,72,10,73,5,7,5,14,14,17,14,24,25,27,29, - 33,14,34,9,29,38,42,13,17,13,29,24,28,13,29,13, - 29,9,29,9,29,9,29,9,29,9,29,9,29,9,29,9, - 29,9,29,9,29,0,0,9,29,9,29,9,29,9,29,9, - 29,9,29,9,12,9,20,21,29,31,35,9,36,9,36,9, - 36,9,36,0,0,5,14,12,19,5,14,5,14,5,14,5, - 14,9,17,13,16,13,23,24,32,13,33,13,33,9,14,0, - 0,9,17,16,23,9,17,9,17,9,17,9,17,13,17,9, - 14,0,0,0,0,9,17,5,14,115,69,0,0,0,153,6, - 62,0,159,6,43,3,165,6,62,0,171,4,47,11,175,1, - 62,0,176,3,47,11,179,9,62,0,190,7,65,22,7,193, - 6,5,65,12,6,193,11,1,65,22,7,193,12,7,65,21, - 13,193,19,3,65,22,7,193,23,1,65,21,13,193,24,1, - 65,22,7,105,132,13,0,0,114,47,0,0,0,114,35,0, - 0,0,115,2,0,0,0,13,10,90,11,95,95,112,121,99, - 97,99,104,101,95,95,122,4,111,112,116,45,122,3,46,112, - 121,122,4,46,112,121,119,122,4,46,112,121,99,41,1,218, - 12,111,112,116,105,109,105,122,97,116,105,111,110,99,2,0, - 0,0,0,0,0,0,1,0,0,0,5,0,0,0,3,0, - 0,0,115,80,1,0,0,124,1,100,1,117,1,114,26,116, - 0,106,1,100,2,116,2,131,2,1,0,124,2,100,1,117, - 1,114,20,100,3,125,3,116,3,124,3,131,1,130,1,124, - 1,114,24,100,4,110,1,100,5,125,2,116,4,106,5,124, - 0,131,1,125,0,116,6,124,0,131,1,92,2,125,4,125, - 5,124,5,160,7,100,6,161,1,92,3,125,6,125,7,125, - 8,116,8,106,9,106,10,125,9,124,9,100,1,117,0,114, - 57,116,11,100,7,131,1,130,1,100,4,160,12,124,6,114, - 63,124,6,110,1,124,8,124,7,124,9,103,3,161,1,125, - 10,124,2,100,1,117,0,114,86,116,8,106,13,106,14,100, - 8,107,2,114,82,100,4,125,2,110,4,116,8,106,13,106, - 14,125,2,116,15,124,2,131,1,125,2,124,2,100,4,107, - 3,114,112,124,2,160,16,161,0,115,105,116,17,100,9,160, - 18,124,2,161,1,131,1,130,1,100,10,160,18,124,10,116, - 19,124,2,161,3,125,10,124,10,116,20,100,8,25,0,23, - 0,125,11,116,8,106,21,100,1,117,1,114,162,116,22,124, - 4,131,1,115,134,116,23,116,4,106,24,131,0,124,4,131, - 2,125,4,124,4,100,5,25,0,100,11,107,2,114,152,124, - 4,100,8,25,0,116,25,118,1,114,152,124,4,100,12,100, - 1,133,2,25,0,125,4,116,23,116,8,106,21,124,4,160, - 26,116,25,161,1,124,11,131,3,83,0,116,23,124,4,116, - 27,124,11,131,3,83,0,41,13,97,254,2,0,0,71,105, - 118,101,110,32,116,104,101,32,112,97,116,104,32,116,111,32, - 97,32,46,112,121,32,102,105,108,101,44,32,114,101,116,117, - 114,110,32,116,104,101,32,112,97,116,104,32,116,111,32,105, - 116,115,32,46,112,121,99,32,102,105,108,101,46,10,10,32, - 32,32,32,84,104,101,32,46,112,121,32,102,105,108,101,32, - 100,111,101,115,32,110,111,116,32,110,101,101,100,32,116,111, - 32,101,120,105,115,116,59,32,116,104,105,115,32,115,105,109, - 112,108,121,32,114,101,116,117,114,110,115,32,116,104,101,32, - 112,97,116,104,32,116,111,32,116,104,101,10,32,32,32,32, - 46,112,121,99,32,102,105,108,101,32,99,97,108,99,117,108, - 97,116,101,100,32,97,115,32,105,102,32,116,104,101,32,46, - 112,121,32,102,105,108,101,32,119,101,114,101,32,105,109,112, - 111,114,116,101,100,46,10,10,32,32,32,32,84,104,101,32, - 39,111,112,116,105,109,105,122,97,116,105,111,110,39,32,112, - 97,114,97,109,101,116,101,114,32,99,111,110,116,114,111,108, - 115,32,116,104,101,32,112,114,101,115,117,109,101,100,32,111, - 112,116,105,109,105,122,97,116,105,111,110,32,108,101,118,101, - 108,32,111,102,10,32,32,32,32,116,104,101,32,98,121,116, - 101,99,111,100,101,32,102,105,108,101,46,32,73,102,32,39, - 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,115, - 32,110,111,116,32,78,111,110,101,44,32,116,104,101,32,115, - 116,114,105,110,103,32,114,101,112,114,101,115,101,110,116,97, - 116,105,111,110,10,32,32,32,32,111,102,32,116,104,101,32, - 97,114,103,117,109,101,110,116,32,105,115,32,116,97,107,101, - 110,32,97,110,100,32,118,101,114,105,102,105,101,100,32,116, - 111,32,98,101,32,97,108,112,104,97,110,117,109,101,114,105, - 99,32,40,101,108,115,101,32,86,97,108,117,101,69,114,114, - 111,114,10,32,32,32,32,105,115,32,114,97,105,115,101,100, - 41,46,10,10,32,32,32,32,84,104,101,32,100,101,98,117, - 103,95,111,118,101,114,114,105,100,101,32,112,97,114,97,109, - 101,116,101,114,32,105,115,32,100,101,112,114,101,99,97,116, - 101,100,46,32,73,102,32,100,101,98,117,103,95,111,118,101, - 114,114,105,100,101,32,105,115,32,110,111,116,32,78,111,110, - 101,44,10,32,32,32,32,97,32,84,114,117,101,32,118,97, - 108,117,101,32,105,115,32,116,104,101,32,115,97,109,101,32, - 97,115,32,115,101,116,116,105,110,103,32,39,111,112,116,105, - 109,105,122,97,116,105,111,110,39,32,116,111,32,116,104,101, - 32,101,109,112,116,121,32,115,116,114,105,110,103,10,32,32, - 32,32,119,104,105,108,101,32,97,32,70,97,108,115,101,32, - 118,97,108,117,101,32,105,115,32,101,113,117,105,118,97,108, - 101,110,116,32,116,111,32,115,101,116,116,105,110,103,32,39, - 111,112,116,105,109,105,122,97,116,105,111,110,39,32,116,111, - 32,39,49,39,46,10,10,32,32,32,32,73,102,32,115,121, - 115,46,105,109,112,108,101,109,101,110,116,97,116,105,111,110, - 46,99,97,99,104,101,95,116,97,103,32,105,115,32,78,111, - 110,101,32,116,104,101,110,32,78,111,116,73,109,112,108,101, - 109,101,110,116,101,100,69,114,114,111,114,32,105,115,32,114, - 97,105,115,101,100,46,10,10,32,32,32,32,78,122,70,116, - 104,101,32,100,101,98,117,103,95,111,118,101,114,114,105,100, - 101,32,112,97,114,97,109,101,116,101,114,32,105,115,32,100, - 101,112,114,101,99,97,116,101,100,59,32,117,115,101,32,39, - 111,112,116,105,109,105,122,97,116,105,111,110,39,32,105,110, - 115,116,101,97,100,122,50,100,101,98,117,103,95,111,118,101, - 114,114,105,100,101,32,111,114,32,111,112,116,105,109,105,122, - 97,116,105,111,110,32,109,117,115,116,32,98,101,32,115,101, - 116,32,116,111,32,78,111,110,101,114,11,0,0,0,114,3, - 0,0,0,218,1,46,250,36,115,121,115,46,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,46,99,97,99,104,101, - 95,116,97,103,32,105,115,32,78,111,110,101,114,0,0,0, - 0,122,24,123,33,114,125,32,105,115,32,110,111,116,32,97, - 108,112,104,97,110,117,109,101,114,105,99,122,7,123,125,46, - 123,125,123,125,114,12,0,0,0,114,47,0,0,0,41,28, - 218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114, - 110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97, - 114,110,105,110,103,218,9,84,121,112,101,69,114,114,111,114, - 114,21,0,0,0,218,6,102,115,112,97,116,104,114,76,0, - 0,0,218,10,114,112,97,114,116,105,116,105,111,110,114,18, - 0,0,0,218,14,105,109,112,108,101,109,101,110,116,97,116, - 105,111,110,218,9,99,97,99,104,101,95,116,97,103,218,19, - 78,111,116,73,109,112,108,101,109,101,110,116,101,100,69,114, - 114,111,114,114,64,0,0,0,114,19,0,0,0,218,8,111, - 112,116,105,109,105,122,101,218,3,115,116,114,218,7,105,115, - 97,108,110,117,109,218,10,86,97,108,117,101,69,114,114,111, - 114,114,93,0,0,0,218,4,95,79,80,84,218,17,66,89, - 84,69,67,79,68,69,95,83,85,70,70,73,88,69,83,218, - 14,112,121,99,97,99,104,101,95,112,114,101,102,105,120,114, - 90,0,0,0,114,69,0,0,0,114,86,0,0,0,114,53, - 0,0,0,218,6,108,115,116,114,105,112,218,8,95,80,89, - 67,65,67,72,69,41,12,114,67,0,0,0,90,14,100,101, - 98,117,103,95,111,118,101,114,114,105,100,101,114,100,0,0, - 0,218,7,109,101,115,115,97,103,101,218,4,104,101,97,100, - 114,68,0,0,0,90,4,98,97,115,101,114,6,0,0,0, - 218,4,114,101,115,116,90,3,116,97,103,90,15,97,108,109, - 111,115,116,95,102,105,108,101,110,97,109,101,218,8,102,105, - 108,101,110,97,109,101,115,12,0,0,0,32,32,32,32,32, - 32,32,32,32,32,32,32,114,7,0,0,0,218,17,99,97, - 99,104,101,95,102,114,111,109,95,115,111,117,114,99,101,114, - 125,0,0,0,135,1,0,0,115,72,0,0,0,8,18,6, - 1,2,1,4,255,8,2,4,1,8,1,12,1,10,1,12, - 1,16,1,8,1,8,1,8,1,24,1,8,1,12,1,6, - 1,8,2,8,1,8,1,8,1,14,1,14,1,12,1,10, - 1,8,9,14,1,24,5,12,1,2,4,4,1,8,1,2, - 1,4,253,12,5,115,86,0,0,0,6,18,2,6,4,251, - 8,1,6,1,2,2,4,255,8,1,12,1,10,1,12,1, - 16,1,8,1,6,1,10,1,24,1,6,1,2,4,10,253, - 2,3,6,254,8,2,8,1,6,1,2,3,6,254,16,1, - 14,1,12,1,8,1,2,24,6,241,16,1,10,5,2,1, - 10,255,14,1,2,4,4,1,8,1,2,1,4,1,12,1, - 115,80,1,0,0,8,22,30,34,8,34,5,51,9,18,9, - 23,24,48,50,68,9,69,9,69,12,24,32,36,12,36,9, - 37,23,75,13,20,19,28,29,36,19,37,13,37,30,44,24, - 51,24,26,24,26,50,51,9,21,12,15,12,22,23,27,12, - 28,5,9,18,29,30,34,18,35,5,15,5,9,11,15,23, - 27,23,43,39,42,23,43,5,20,5,9,11,14,16,20,11, - 14,11,29,11,39,5,8,8,11,15,19,8,19,5,74,15, - 34,35,73,15,74,9,74,23,25,23,68,41,45,33,55,33, - 37,33,37,51,55,58,61,63,66,31,67,23,68,5,20,8, - 20,24,28,8,28,5,46,12,15,12,21,12,30,34,35,12, - 35,9,46,28,30,13,25,13,25,28,31,28,37,28,46,13, - 25,20,23,24,36,20,37,5,17,8,20,24,26,8,26,5, - 80,16,28,16,38,16,38,9,78,19,29,30,56,30,77,64, - 76,30,77,19,78,13,78,27,36,27,80,44,59,61,65,67, - 79,27,80,9,24,16,31,34,51,52,53,34,54,16,54,5, - 13,8,11,8,26,34,38,8,38,5,10,16,27,28,32,16, - 33,9,50,20,30,31,34,31,41,31,43,45,49,20,50,13, - 17,12,16,17,18,12,19,23,26,12,26,9,28,31,35,36, - 37,31,38,46,61,31,61,9,28,20,24,25,26,25,27,25, - 27,20,28,13,17,16,26,13,16,13,31,13,17,13,41,25, - 40,13,41,13,21,16,10,9,10,12,22,23,27,29,37,39, - 47,12,48,5,48,114,10,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,115, - 40,1,0,0,116,0,106,1,106,2,100,1,117,0,114,10, - 116,3,100,2,131,1,130,1,116,4,106,5,124,0,131,1, - 125,0,116,6,124,0,131,1,92,2,125,1,125,2,100,3, - 125,3,116,0,106,7,100,1,117,1,114,51,116,0,106,7, - 160,8,116,9,161,1,125,4,124,1,160,10,124,4,116,11, - 23,0,161,1,114,51,124,1,116,12,124,4,131,1,100,1, - 133,2,25,0,125,1,100,4,125,3,124,3,115,72,116,6, - 124,1,131,1,92,2,125,1,125,5,124,5,116,13,107,3, - 114,72,116,14,116,13,155,0,100,5,124,0,155,2,157,3, - 131,1,130,1,124,2,160,15,100,6,161,1,125,6,124,6, - 100,7,118,1,114,88,116,14,100,8,124,2,155,2,157,2, - 131,1,130,1,124,6,100,9,107,2,114,132,124,2,160,16, - 100,6,100,10,161,2,100,11,25,0,125,7,124,7,160,10, - 116,17,161,1,115,112,116,14,100,12,116,17,155,2,157,2, - 131,1,130,1,124,7,116,12,116,17,131,1,100,1,133,2, - 25,0,125,8,124,8,160,18,161,0,115,132,116,14,100,13, - 124,7,155,2,100,14,157,3,131,1,130,1,124,2,160,19, - 100,6,161,1,100,15,25,0,125,9,116,20,124,1,124,9, - 116,21,100,15,25,0,23,0,131,2,83,0,41,16,97,110, - 1,0,0,71,105,118,101,110,32,116,104,101,32,112,97,116, - 104,32,116,111,32,97,32,46,112,121,99,46,32,102,105,108, - 101,44,32,114,101,116,117,114,110,32,116,104,101,32,112,97, - 116,104,32,116,111,32,105,116,115,32,46,112,121,32,102,105, - 108,101,46,10,10,32,32,32,32,84,104,101,32,46,112,121, - 99,32,102,105,108,101,32,100,111,101,115,32,110,111,116,32, - 110,101,101,100,32,116,111,32,101,120,105,115,116,59,32,116, - 104,105,115,32,115,105,109,112,108,121,32,114,101,116,117,114, - 110,115,32,116,104,101,32,112,97,116,104,32,116,111,10,32, - 32,32,32,116,104,101,32,46,112,121,32,102,105,108,101,32, - 99,97,108,99,117,108,97,116,101,100,32,116,111,32,99,111, - 114,114,101,115,112,111,110,100,32,116,111,32,116,104,101,32, - 46,112,121,99,32,102,105,108,101,46,32,32,73,102,32,112, - 97,116,104,32,100,111,101,115,10,32,32,32,32,110,111,116, - 32,99,111,110,102,111,114,109,32,116,111,32,80,69,80,32, - 51,49,52,55,47,52,56,56,32,102,111,114,109,97,116,44, - 32,86,97,108,117,101,69,114,114,111,114,32,119,105,108,108, - 32,98,101,32,114,97,105,115,101,100,46,32,73,102,10,32, - 32,32,32,115,121,115,46,105,109,112,108,101,109,101,110,116, - 97,116,105,111,110,46,99,97,99,104,101,95,116,97,103,32, - 105,115,32,78,111,110,101,32,116,104,101,110,32,78,111,116, - 73,109,112,108,101,109,101,110,116,101,100,69,114,114,111,114, - 32,105,115,32,114,97,105,115,101,100,46,10,10,32,32,32, - 32,78,114,102,0,0,0,70,84,122,31,32,110,111,116,32, - 98,111,116,116,111,109,45,108,101,118,101,108,32,100,105,114, - 101,99,116,111,114,121,32,105,110,32,114,101,0,0,0,62, - 2,0,0,0,114,47,0,0,0,233,3,0,0,0,122,29, - 101,120,112,101,99,116,101,100,32,111,110,108,121,32,50,32, - 111,114,32,51,32,100,111,116,115,32,105,110,32,114,126,0, - 0,0,114,47,0,0,0,233,254,255,255,255,122,53,111,112, - 116,105,109,105,122,97,116,105,111,110,32,112,111,114,116,105, - 111,110,32,111,102,32,102,105,108,101,110,97,109,101,32,100, - 111,101,115,32,110,111,116,32,115,116,97,114,116,32,119,105, - 116,104,32,122,19,111,112,116,105,109,105,122,97,116,105,111, - 110,32,108,101,118,101,108,32,122,29,32,105,115,32,110,111, - 116,32,97,110,32,97,108,112,104,97,110,117,109,101,114,105, - 99,32,118,97,108,117,101,114,0,0,0,0,41,22,114,18, - 0,0,0,114,109,0,0,0,114,110,0,0,0,114,111,0, - 0,0,114,21,0,0,0,114,107,0,0,0,114,76,0,0, - 0,114,118,0,0,0,114,52,0,0,0,114,53,0,0,0, - 114,29,0,0,0,114,61,0,0,0,114,4,0,0,0,114, - 120,0,0,0,114,115,0,0,0,218,5,99,111,117,110,116, - 218,6,114,115,112,108,105,116,114,116,0,0,0,114,114,0, - 0,0,218,9,112,97,114,116,105,116,105,111,110,114,69,0, - 0,0,218,15,83,79,85,82,67,69,95,83,85,70,70,73, - 88,69,83,41,10,114,67,0,0,0,114,122,0,0,0,90, - 16,112,121,99,97,99,104,101,95,102,105,108,101,110,97,109, - 101,90,23,102,111,117,110,100,95,105,110,95,112,121,99,97, - 99,104,101,95,112,114,101,102,105,120,90,13,115,116,114,105, - 112,112,101,100,95,112,97,116,104,90,7,112,121,99,97,99, - 104,101,90,9,100,111,116,95,99,111,117,110,116,114,100,0, - 0,0,90,9,111,112,116,95,108,101,118,101,108,90,13,98, - 97,115,101,95,102,105,108,101,110,97,109,101,115,10,0,0, - 0,32,32,32,32,32,32,32,32,32,32,114,7,0,0,0, - 218,17,115,111,117,114,99,101,95,102,114,111,109,95,99,97, - 99,104,101,114,132,0,0,0,206,1,0,0,115,60,0,0, - 0,12,9,8,1,10,1,12,1,4,1,10,1,12,1,14, - 1,16,1,4,1,4,1,12,1,8,1,8,1,2,1,8, - 255,10,2,8,1,14,1,8,1,16,1,10,1,4,1,2, - 1,8,255,16,2,8,1,16,1,14,2,18,1,115,78,0, - 0,0,10,9,10,1,10,1,12,1,4,1,8,1,2,4, - 12,253,12,1,2,2,16,255,4,1,2,1,2,4,12,253, - 6,1,2,2,4,255,14,1,10,1,6,1,2,10,14,247, - 6,1,2,8,16,249,8,1,2,2,2,255,12,1,16,1, - 6,1,2,2,2,255,2,1,2,255,10,1,14,1,18,1, - 115,40,1,0,0,8,11,8,26,8,36,40,44,8,44,5, - 74,15,34,35,73,15,74,9,74,12,15,12,22,23,27,12, - 28,5,9,30,41,42,46,30,47,5,27,5,9,11,27,31, - 36,5,28,8,11,8,26,34,38,8,38,5,43,25,28,25, - 43,25,67,51,66,25,67,9,22,12,16,12,53,28,41,44, - 52,28,52,12,53,9,43,20,24,25,28,29,42,25,43,25, - 44,25,44,20,45,13,17,39,43,13,36,12,35,5,42,25, - 36,37,41,25,42,9,22,9,13,15,22,12,19,23,31,12, - 31,9,42,19,29,33,41,30,41,30,41,31,35,30,41,30, - 41,19,42,13,42,17,33,17,44,40,43,17,44,5,14,8, - 17,25,31,8,31,5,51,15,25,26,78,27,43,26,78,26, - 78,15,79,9,79,10,19,23,24,10,24,5,51,24,40,24, - 55,48,51,53,54,24,55,56,58,24,59,9,21,16,28,16, - 45,40,44,16,45,9,47,19,29,30,46,31,35,30,46,30, - 46,19,47,13,47,21,33,34,37,38,42,34,43,34,44,34, - 44,21,45,9,18,16,25,16,35,16,35,9,51,19,29,30, - 50,31,43,30,50,30,50,30,50,19,51,13,51,21,37,21, - 52,48,51,21,52,53,54,21,55,5,18,12,22,23,27,29, - 42,45,60,61,62,45,63,29,63,12,64,5,64,114,10,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,9, - 0,0,0,3,0,0,0,115,126,0,0,0,116,0,124,0, - 131,1,100,1,107,2,114,8,100,2,83,0,124,0,160,1, - 100,3,161,1,92,3,125,1,125,2,125,3,124,1,114,28, - 124,3,160,2,161,0,100,4,100,5,133,2,25,0,100,6, - 107,3,114,30,124,0,83,0,9,0,116,3,124,0,131,1, - 125,4,110,18,35,0,4,0,116,4,116,5,102,2,121,62, - 1,0,1,0,1,0,124,0,100,2,100,5,133,2,25,0, - 125,4,89,0,110,1,37,0,116,6,124,4,131,1,114,60, - 124,4,83,0,124,0,83,0,119,0,41,7,122,188,67,111, - 110,118,101,114,116,32,97,32,98,121,116,101,99,111,100,101, - 32,102,105,108,101,32,112,97,116,104,32,116,111,32,97,32, - 115,111,117,114,99,101,32,112,97,116,104,32,40,105,102,32, - 112,111,115,115,105,98,108,101,41,46,10,10,32,32,32,32, - 84,104,105,115,32,102,117,110,99,116,105,111,110,32,101,120, - 105,115,116,115,32,112,117,114,101,108,121,32,102,111,114,32, - 98,97,99,107,119,97,114,100,115,45,99,111,109,112,97,116, - 105,98,105,108,105,116,121,32,102,111,114,10,32,32,32,32, - 80,121,73,109,112,111,114,116,95,69,120,101,99,67,111,100, - 101,77,111,100,117,108,101,87,105,116,104,70,105,108,101,110, - 97,109,101,115,40,41,32,105,110,32,116,104,101,32,67,32, - 65,80,73,46,10,10,32,32,32,32,114,0,0,0,0,78, - 114,101,0,0,0,233,253,255,255,255,233,255,255,255,255,90, - 2,112,121,41,7,114,4,0,0,0,114,108,0,0,0,218, - 5,108,111,119,101,114,114,132,0,0,0,114,111,0,0,0, - 114,115,0,0,0,114,84,0,0,0,41,5,218,13,98,121, - 116,101,99,111,100,101,95,112,97,116,104,114,123,0,0,0, - 218,1,95,90,9,101,120,116,101,110,115,105,111,110,218,11, - 115,111,117,114,99,101,95,112,97,116,104,115,5,0,0,0, - 32,32,32,32,32,114,7,0,0,0,218,15,95,103,101,116, - 95,115,111,117,114,99,101,102,105,108,101,114,139,0,0,0, - 246,1,0,0,115,26,0,0,0,12,7,4,1,16,1,24, - 1,4,1,2,1,10,1,2,128,16,1,16,1,2,128,16, - 1,2,254,115,32,0,0,0,10,7,6,1,16,1,2,1, - 2,1,18,255,6,1,2,4,10,254,2,128,2,2,6,255, - 24,1,2,128,16,1,2,255,115,126,0,0,0,8,11,12, + 2,3,2,128,2,255,2,255,10,1,2,1,2,255,2,128, + 2,1,2,128,115,178,0,0,0,16,23,16,46,31,35,37, + 39,40,44,37,45,16,46,5,13,10,13,10,18,19,27,19, + 22,19,29,32,35,32,43,19,43,46,49,46,58,19,58,60, + 64,67,72,60,72,10,73,5,7,5,14,14,17,14,24,25, + 27,29,33,14,34,9,29,38,42,13,17,13,29,24,28,13, + 29,13,29,9,29,9,29,9,29,9,29,9,29,9,29,9, + 29,9,29,9,29,9,29,0,0,9,29,9,29,9,29,9, + 29,9,29,9,29,9,12,9,20,21,29,31,35,9,36,9, + 36,9,36,9,36,0,0,5,14,12,19,5,14,5,14,5, + 14,5,14,9,17,13,16,13,23,24,32,13,33,13,33,9, + 14,0,0,9,17,16,23,9,17,9,17,9,17,9,17,13, + 17,9,14,9,17,0,0,5,14,0,0,115,69,0,0,0, + 153,6,62,0,159,6,43,3,165,6,62,0,171,4,47,11, + 175,1,62,0,176,3,47,11,179,9,62,0,190,7,65,24, + 7,193,6,5,65,12,6,193,11,1,65,24,7,193,12,7, + 65,22,13,193,19,2,65,24,7,193,21,1,65,22,13,193, + 22,2,65,24,7,105,132,13,0,0,114,47,0,0,0,114, + 35,0,0,0,115,2,0,0,0,13,10,90,11,95,95,112, + 121,99,97,99,104,101,95,95,122,4,111,112,116,45,122,3, + 46,112,121,122,4,46,112,121,119,122,4,46,112,121,99,41, + 1,218,12,111,112,116,105,109,105,122,97,116,105,111,110,99, + 2,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0, + 3,0,0,0,115,80,1,0,0,124,1,100,1,117,1,114, + 26,116,0,106,1,100,2,116,2,131,2,1,0,124,2,100, + 1,117,1,114,20,100,3,125,3,116,3,124,3,131,1,130, + 1,124,1,114,24,100,4,110,1,100,5,125,2,116,4,106, + 5,124,0,131,1,125,0,116,6,124,0,131,1,92,2,125, + 4,125,5,124,5,160,7,100,6,161,1,92,3,125,6,125, + 7,125,8,116,8,106,9,106,10,125,9,124,9,100,1,117, + 0,114,57,116,11,100,7,131,1,130,1,100,4,160,12,124, + 6,114,63,124,6,110,1,124,8,124,7,124,9,103,3,161, + 1,125,10,124,2,100,1,117,0,114,86,116,8,106,13,106, + 14,100,8,107,2,114,82,100,4,125,2,110,4,116,8,106, + 13,106,14,125,2,116,15,124,2,131,1,125,2,124,2,100, + 4,107,3,114,112,124,2,160,16,161,0,115,105,116,17,100, + 9,160,18,124,2,161,1,131,1,130,1,100,10,160,18,124, + 10,116,19,124,2,161,3,125,10,124,10,116,20,100,8,25, + 0,23,0,125,11,116,8,106,21,100,1,117,1,114,162,116, + 22,124,4,131,1,115,134,116,23,116,4,106,24,131,0,124, + 4,131,2,125,4,124,4,100,5,25,0,100,11,107,2,114, + 152,124,4,100,8,25,0,116,25,118,1,114,152,124,4,100, + 12,100,1,133,2,25,0,125,4,116,23,116,8,106,21,124, + 4,160,26,116,25,161,1,124,11,131,3,83,0,116,23,124, + 4,116,27,124,11,131,3,83,0,41,13,97,254,2,0,0, + 71,105,118,101,110,32,116,104,101,32,112,97,116,104,32,116, + 111,32,97,32,46,112,121,32,102,105,108,101,44,32,114,101, + 116,117,114,110,32,116,104,101,32,112,97,116,104,32,116,111, + 32,105,116,115,32,46,112,121,99,32,102,105,108,101,46,10, + 10,32,32,32,32,84,104,101,32,46,112,121,32,102,105,108, + 101,32,100,111,101,115,32,110,111,116,32,110,101,101,100,32, + 116,111,32,101,120,105,115,116,59,32,116,104,105,115,32,115, + 105,109,112,108,121,32,114,101,116,117,114,110,115,32,116,104, + 101,32,112,97,116,104,32,116,111,32,116,104,101,10,32,32, + 32,32,46,112,121,99,32,102,105,108,101,32,99,97,108,99, + 117,108,97,116,101,100,32,97,115,32,105,102,32,116,104,101, + 32,46,112,121,32,102,105,108,101,32,119,101,114,101,32,105, + 109,112,111,114,116,101,100,46,10,10,32,32,32,32,84,104, + 101,32,39,111,112,116,105,109,105,122,97,116,105,111,110,39, + 32,112,97,114,97,109,101,116,101,114,32,99,111,110,116,114, + 111,108,115,32,116,104,101,32,112,114,101,115,117,109,101,100, + 32,111,112,116,105,109,105,122,97,116,105,111,110,32,108,101, + 118,101,108,32,111,102,10,32,32,32,32,116,104,101,32,98, + 121,116,101,99,111,100,101,32,102,105,108,101,46,32,73,102, + 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32, + 105,115,32,110,111,116,32,78,111,110,101,44,32,116,104,101, + 32,115,116,114,105,110,103,32,114,101,112,114,101,115,101,110, + 116,97,116,105,111,110,10,32,32,32,32,111,102,32,116,104, + 101,32,97,114,103,117,109,101,110,116,32,105,115,32,116,97, + 107,101,110,32,97,110,100,32,118,101,114,105,102,105,101,100, + 32,116,111,32,98,101,32,97,108,112,104,97,110,117,109,101, + 114,105,99,32,40,101,108,115,101,32,86,97,108,117,101,69, + 114,114,111,114,10,32,32,32,32,105,115,32,114,97,105,115, + 101,100,41,46,10,10,32,32,32,32,84,104,101,32,100,101, + 98,117,103,95,111,118,101,114,114,105,100,101,32,112,97,114, + 97,109,101,116,101,114,32,105,115,32,100,101,112,114,101,99, + 97,116,101,100,46,32,73,102,32,100,101,98,117,103,95,111, + 118,101,114,114,105,100,101,32,105,115,32,110,111,116,32,78, + 111,110,101,44,10,32,32,32,32,97,32,84,114,117,101,32, + 118,97,108,117,101,32,105,115,32,116,104,101,32,115,97,109, + 101,32,97,115,32,115,101,116,116,105,110,103,32,39,111,112, + 116,105,109,105,122,97,116,105,111,110,39,32,116,111,32,116, + 104,101,32,101,109,112,116,121,32,115,116,114,105,110,103,10, + 32,32,32,32,119,104,105,108,101,32,97,32,70,97,108,115, + 101,32,118,97,108,117,101,32,105,115,32,101,113,117,105,118, + 97,108,101,110,116,32,116,111,32,115,101,116,116,105,110,103, + 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32, + 116,111,32,39,49,39,46,10,10,32,32,32,32,73,102,32, + 115,121,115,46,105,109,112,108,101,109,101,110,116,97,116,105, + 111,110,46,99,97,99,104,101,95,116,97,103,32,105,115,32, + 78,111,110,101,32,116,104,101,110,32,78,111,116,73,109,112, + 108,101,109,101,110,116,101,100,69,114,114,111,114,32,105,115, + 32,114,97,105,115,101,100,46,10,10,32,32,32,32,78,122, + 70,116,104,101,32,100,101,98,117,103,95,111,118,101,114,114, + 105,100,101,32,112,97,114,97,109,101,116,101,114,32,105,115, + 32,100,101,112,114,101,99,97,116,101,100,59,32,117,115,101, + 32,39,111,112,116,105,109,105,122,97,116,105,111,110,39,32, + 105,110,115,116,101,97,100,122,50,100,101,98,117,103,95,111, + 118,101,114,114,105,100,101,32,111,114,32,111,112,116,105,109, + 105,122,97,116,105,111,110,32,109,117,115,116,32,98,101,32, + 115,101,116,32,116,111,32,78,111,110,101,114,11,0,0,0, + 114,3,0,0,0,218,1,46,250,36,115,121,115,46,105,109, + 112,108,101,109,101,110,116,97,116,105,111,110,46,99,97,99, + 104,101,95,116,97,103,32,105,115,32,78,111,110,101,114,0, + 0,0,0,122,24,123,33,114,125,32,105,115,32,110,111,116, + 32,97,108,112,104,97,110,117,109,101,114,105,99,122,7,123, + 125,46,123,125,123,125,114,12,0,0,0,114,47,0,0,0, + 41,28,218,9,95,119,97,114,110,105,110,103,115,218,4,119, + 97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110, + 87,97,114,110,105,110,103,218,9,84,121,112,101,69,114,114, + 111,114,114,21,0,0,0,218,6,102,115,112,97,116,104,114, + 76,0,0,0,218,10,114,112,97,114,116,105,116,105,111,110, + 114,18,0,0,0,218,14,105,109,112,108,101,109,101,110,116, + 97,116,105,111,110,218,9,99,97,99,104,101,95,116,97,103, + 218,19,78,111,116,73,109,112,108,101,109,101,110,116,101,100, + 69,114,114,111,114,114,64,0,0,0,114,19,0,0,0,218, + 8,111,112,116,105,109,105,122,101,218,3,115,116,114,218,7, + 105,115,97,108,110,117,109,218,10,86,97,108,117,101,69,114, + 114,111,114,114,93,0,0,0,218,4,95,79,80,84,218,17, + 66,89,84,69,67,79,68,69,95,83,85,70,70,73,88,69, + 83,218,14,112,121,99,97,99,104,101,95,112,114,101,102,105, + 120,114,90,0,0,0,114,69,0,0,0,114,86,0,0,0, + 114,53,0,0,0,218,6,108,115,116,114,105,112,218,8,95, + 80,89,67,65,67,72,69,41,12,114,67,0,0,0,90,14, + 100,101,98,117,103,95,111,118,101,114,114,105,100,101,114,100, + 0,0,0,218,7,109,101,115,115,97,103,101,218,4,104,101, + 97,100,114,68,0,0,0,90,4,98,97,115,101,114,6,0, + 0,0,218,4,114,101,115,116,90,3,116,97,103,90,15,97, + 108,109,111,115,116,95,102,105,108,101,110,97,109,101,218,8, + 102,105,108,101,110,97,109,101,115,12,0,0,0,32,32,32, + 32,32,32,32,32,32,32,32,32,114,7,0,0,0,218,17, + 99,97,99,104,101,95,102,114,111,109,95,115,111,117,114,99, + 101,114,125,0,0,0,135,1,0,0,115,72,0,0,0,8, + 18,6,1,2,1,4,255,8,2,4,1,8,1,12,1,10, + 1,12,1,16,1,8,1,8,1,8,1,24,1,8,1,12, + 1,6,1,8,2,8,1,8,1,8,1,14,1,14,1,12, + 1,10,1,8,9,14,1,24,5,12,1,2,4,4,1,8, + 1,2,1,4,253,12,5,115,86,0,0,0,6,18,2,6, + 4,251,8,1,6,1,2,2,4,255,8,1,12,1,10,1, + 12,1,16,1,8,1,6,1,10,1,24,1,6,1,2,4, + 10,253,2,3,6,254,8,2,8,1,6,1,2,3,6,254, + 16,1,14,1,12,1,8,1,2,24,6,241,16,1,10,5, + 2,1,10,255,14,1,2,4,4,1,8,1,2,1,4,1, + 12,1,115,80,1,0,0,8,22,30,34,8,34,5,51,9, + 18,9,23,24,48,50,68,9,69,9,69,12,24,32,36,12, + 36,9,37,23,75,13,20,19,28,29,36,19,37,13,37,30, + 44,24,51,24,26,24,26,50,51,9,21,12,15,12,22,23, + 27,12,28,5,9,18,29,30,34,18,35,5,15,5,9,11, + 15,23,27,23,43,39,42,23,43,5,20,5,9,11,14,16, + 20,11,14,11,29,11,39,5,8,8,11,15,19,8,19,5, + 74,15,34,35,73,15,74,9,74,23,25,23,68,41,45,33, + 55,33,37,33,37,51,55,58,61,63,66,31,67,23,68,5, + 20,8,20,24,28,8,28,5,46,12,15,12,21,12,30,34, + 35,12,35,9,46,28,30,13,25,13,25,28,31,28,37,28, + 46,13,25,20,23,24,36,20,37,5,17,8,20,24,26,8, + 26,5,80,16,28,16,38,16,38,9,78,19,29,30,56,30, + 77,64,76,30,77,19,78,13,78,27,36,27,80,44,59,61, + 65,67,79,27,80,9,24,16,31,34,51,52,53,34,54,16, + 54,5,13,8,11,8,26,34,38,8,38,5,10,16,27,28, + 32,16,33,9,50,20,30,31,34,31,41,31,43,45,49,20, + 50,13,17,12,16,17,18,12,19,23,26,12,26,9,28,31, + 35,36,37,31,38,46,61,31,61,9,28,20,24,25,26,25, + 27,25,27,20,28,13,17,16,26,13,16,13,31,13,17,13, + 41,25,40,13,41,13,21,16,10,9,10,12,22,23,27,29, + 37,39,47,12,48,5,48,114,10,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,115,40,1,0,0,116,0,106,1,106,2,100,1,117,0, + 114,10,116,3,100,2,131,1,130,1,116,4,106,5,124,0, + 131,1,125,0,116,6,124,0,131,1,92,2,125,1,125,2, + 100,3,125,3,116,0,106,7,100,1,117,1,114,51,116,0, + 106,7,160,8,116,9,161,1,125,4,124,1,160,10,124,4, + 116,11,23,0,161,1,114,51,124,1,116,12,124,4,131,1, + 100,1,133,2,25,0,125,1,100,4,125,3,124,3,115,72, + 116,6,124,1,131,1,92,2,125,1,125,5,124,5,116,13, + 107,3,114,72,116,14,116,13,155,0,100,5,124,0,155,2, + 157,3,131,1,130,1,124,2,160,15,100,6,161,1,125,6, + 124,6,100,7,118,1,114,88,116,14,100,8,124,2,155,2, + 157,2,131,1,130,1,124,6,100,9,107,2,114,132,124,2, + 160,16,100,6,100,10,161,2,100,11,25,0,125,7,124,7, + 160,10,116,17,161,1,115,112,116,14,100,12,116,17,155,2, + 157,2,131,1,130,1,124,7,116,12,116,17,131,1,100,1, + 133,2,25,0,125,8,124,8,160,18,161,0,115,132,116,14, + 100,13,124,7,155,2,100,14,157,3,131,1,130,1,124,2, + 160,19,100,6,161,1,100,15,25,0,125,9,116,20,124,1, + 124,9,116,21,100,15,25,0,23,0,131,2,83,0,41,16, + 97,110,1,0,0,71,105,118,101,110,32,116,104,101,32,112, + 97,116,104,32,116,111,32,97,32,46,112,121,99,46,32,102, + 105,108,101,44,32,114,101,116,117,114,110,32,116,104,101,32, + 112,97,116,104,32,116,111,32,105,116,115,32,46,112,121,32, + 102,105,108,101,46,10,10,32,32,32,32,84,104,101,32,46, + 112,121,99,32,102,105,108,101,32,100,111,101,115,32,110,111, + 116,32,110,101,101,100,32,116,111,32,101,120,105,115,116,59, + 32,116,104,105,115,32,115,105,109,112,108,121,32,114,101,116, + 117,114,110,115,32,116,104,101,32,112,97,116,104,32,116,111, + 10,32,32,32,32,116,104,101,32,46,112,121,32,102,105,108, + 101,32,99,97,108,99,117,108,97,116,101,100,32,116,111,32, + 99,111,114,114,101,115,112,111,110,100,32,116,111,32,116,104, + 101,32,46,112,121,99,32,102,105,108,101,46,32,32,73,102, + 32,112,97,116,104,32,100,111,101,115,10,32,32,32,32,110, + 111,116,32,99,111,110,102,111,114,109,32,116,111,32,80,69, + 80,32,51,49,52,55,47,52,56,56,32,102,111,114,109,97, + 116,44,32,86,97,108,117,101,69,114,114,111,114,32,119,105, + 108,108,32,98,101,32,114,97,105,115,101,100,46,32,73,102, + 10,32,32,32,32,115,121,115,46,105,109,112,108,101,109,101, + 110,116,97,116,105,111,110,46,99,97,99,104,101,95,116,97, + 103,32,105,115,32,78,111,110,101,32,116,104,101,110,32,78, + 111,116,73,109,112,108,101,109,101,110,116,101,100,69,114,114, + 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32, + 32,32,32,78,114,102,0,0,0,70,84,122,31,32,110,111, + 116,32,98,111,116,116,111,109,45,108,101,118,101,108,32,100, + 105,114,101,99,116,111,114,121,32,105,110,32,114,101,0,0, + 0,62,2,0,0,0,114,47,0,0,0,233,3,0,0,0, + 122,29,101,120,112,101,99,116,101,100,32,111,110,108,121,32, + 50,32,111,114,32,51,32,100,111,116,115,32,105,110,32,114, + 126,0,0,0,114,47,0,0,0,233,254,255,255,255,122,53, + 111,112,116,105,109,105,122,97,116,105,111,110,32,112,111,114, + 116,105,111,110,32,111,102,32,102,105,108,101,110,97,109,101, + 32,100,111,101,115,32,110,111,116,32,115,116,97,114,116,32, + 119,105,116,104,32,122,19,111,112,116,105,109,105,122,97,116, + 105,111,110,32,108,101,118,101,108,32,122,29,32,105,115,32, + 110,111,116,32,97,110,32,97,108,112,104,97,110,117,109,101, + 114,105,99,32,118,97,108,117,101,114,0,0,0,0,41,22, + 114,18,0,0,0,114,109,0,0,0,114,110,0,0,0,114, + 111,0,0,0,114,21,0,0,0,114,107,0,0,0,114,76, + 0,0,0,114,118,0,0,0,114,52,0,0,0,114,53,0, + 0,0,114,29,0,0,0,114,61,0,0,0,114,4,0,0, + 0,114,120,0,0,0,114,115,0,0,0,218,5,99,111,117, + 110,116,218,6,114,115,112,108,105,116,114,116,0,0,0,114, + 114,0,0,0,218,9,112,97,114,116,105,116,105,111,110,114, + 69,0,0,0,218,15,83,79,85,82,67,69,95,83,85,70, + 70,73,88,69,83,41,10,114,67,0,0,0,114,122,0,0, + 0,90,16,112,121,99,97,99,104,101,95,102,105,108,101,110, + 97,109,101,90,23,102,111,117,110,100,95,105,110,95,112,121, + 99,97,99,104,101,95,112,114,101,102,105,120,90,13,115,116, + 114,105,112,112,101,100,95,112,97,116,104,90,7,112,121,99, + 97,99,104,101,90,9,100,111,116,95,99,111,117,110,116,114, + 100,0,0,0,90,9,111,112,116,95,108,101,118,101,108,90, + 13,98,97,115,101,95,102,105,108,101,110,97,109,101,115,10, + 0,0,0,32,32,32,32,32,32,32,32,32,32,114,7,0, + 0,0,218,17,115,111,117,114,99,101,95,102,114,111,109,95, + 99,97,99,104,101,114,132,0,0,0,206,1,0,0,115,60, + 0,0,0,12,9,8,1,10,1,12,1,4,1,10,1,12, + 1,14,1,16,1,4,1,4,1,12,1,8,1,8,1,2, + 1,8,255,10,2,8,1,14,1,8,1,16,1,10,1,4, + 1,2,1,8,255,16,2,8,1,16,1,14,2,18,1,115, + 78,0,0,0,10,9,10,1,10,1,12,1,4,1,8,1, + 2,4,12,253,12,1,2,2,16,255,4,1,2,1,2,4, + 12,253,6,1,2,2,4,255,14,1,10,1,6,1,2,10, + 14,247,6,1,2,8,16,249,8,1,2,2,2,255,12,1, + 16,1,6,1,2,2,2,255,2,1,2,255,10,1,14,1, + 18,1,115,40,1,0,0,8,11,8,26,8,36,40,44,8, + 44,5,74,15,34,35,73,15,74,9,74,12,15,12,22,23, + 27,12,28,5,9,30,41,42,46,30,47,5,27,5,9,11, + 27,31,36,5,28,8,11,8,26,34,38,8,38,5,43,25, + 28,25,43,25,67,51,66,25,67,9,22,12,16,12,53,28, + 41,44,52,28,52,12,53,9,43,20,24,25,28,29,42,25, + 43,25,44,25,44,20,45,13,17,39,43,13,36,12,35,5, + 42,25,36,37,41,25,42,9,22,9,13,15,22,12,19,23, + 31,12,31,9,42,19,29,33,41,30,41,30,41,31,35,30, + 41,30,41,19,42,13,42,17,33,17,44,40,43,17,44,5, + 14,8,17,25,31,8,31,5,51,15,25,26,78,27,43,26, + 78,26,78,15,79,9,79,10,19,23,24,10,24,5,51,24, + 40,24,55,48,51,53,54,24,55,56,58,24,59,9,21,16, + 28,16,45,40,44,16,45,9,47,19,29,30,46,31,35,30, + 46,30,46,19,47,13,47,21,33,34,37,38,42,34,43,34, + 44,34,44,21,45,9,18,16,25,16,35,16,35,9,51,19, + 29,30,50,31,43,30,50,30,50,30,50,19,51,13,51,21, + 37,21,52,48,51,21,52,53,54,21,55,5,18,12,22,23, + 27,29,42,45,60,61,62,45,63,29,63,12,64,5,64,114, + 10,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,9,0,0,0,3,0,0,0,115,126,0,0,0,116,0, + 124,0,131,1,100,1,107,2,114,8,100,2,83,0,124,0, + 160,1,100,3,161,1,92,3,125,1,125,2,125,3,124,1, + 114,28,124,3,160,2,161,0,100,4,100,5,133,2,25,0, + 100,6,107,3,114,30,124,0,83,0,9,0,116,3,124,0, + 131,1,125,4,110,19,35,0,4,0,116,4,116,5,102,2, + 121,53,1,0,1,0,1,0,124,0,100,2,100,5,133,2, + 25,0,125,4,89,0,110,2,119,0,37,0,116,6,124,4, + 131,1,114,61,124,4,83,0,124,0,83,0,41,7,122,188, + 67,111,110,118,101,114,116,32,97,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,32,112,97,116,104,32,116,111,32, + 97,32,115,111,117,114,99,101,32,112,97,116,104,32,40,105, + 102,32,112,111,115,115,105,98,108,101,41,46,10,10,32,32, + 32,32,84,104,105,115,32,102,117,110,99,116,105,111,110,32, + 101,120,105,115,116,115,32,112,117,114,101,108,121,32,102,111, + 114,32,98,97,99,107,119,97,114,100,115,45,99,111,109,112, + 97,116,105,98,105,108,105,116,121,32,102,111,114,10,32,32, + 32,32,80,121,73,109,112,111,114,116,95,69,120,101,99,67, + 111,100,101,77,111,100,117,108,101,87,105,116,104,70,105,108, + 101,110,97,109,101,115,40,41,32,105,110,32,116,104,101,32, + 67,32,65,80,73,46,10,10,32,32,32,32,114,0,0,0, + 0,78,114,101,0,0,0,233,253,255,255,255,233,255,255,255, + 255,90,2,112,121,41,7,114,4,0,0,0,114,108,0,0, + 0,218,5,108,111,119,101,114,114,132,0,0,0,114,111,0, + 0,0,114,115,0,0,0,114,84,0,0,0,41,5,218,13, + 98,121,116,101,99,111,100,101,95,112,97,116,104,114,123,0, + 0,0,218,1,95,90,9,101,120,116,101,110,115,105,111,110, + 218,11,115,111,117,114,99,101,95,112,97,116,104,115,5,0, + 0,0,32,32,32,32,32,114,7,0,0,0,218,15,95,103, + 101,116,95,115,111,117,114,99,101,102,105,108,101,114,139,0, + 0,0,246,1,0,0,115,26,0,0,0,12,7,4,1,16, + 1,24,1,4,1,2,1,10,1,2,128,16,1,16,1,2, + 255,2,128,16,2,115,30,0,0,0,10,7,6,1,16,1, + 2,1,2,1,18,255,6,1,2,4,10,254,2,128,2,2, + 6,255,26,1,2,128,16,1,115,126,0,0,0,8,11,12, 25,8,26,30,31,8,31,5,20,16,20,16,20,26,39,26, 55,51,54,26,55,5,23,5,9,11,12,14,23,12,16,5, 29,20,29,20,37,20,37,38,40,41,43,38,43,20,44,48, 52,20,52,5,29,16,29,9,29,5,41,23,40,41,54,23, 55,9,20,9,20,0,0,5,41,13,32,34,44,12,45,5, 41,5,41,5,41,5,41,23,36,37,40,38,40,37,40,23, - 41,9,20,9,20,9,20,0,0,27,39,40,51,27,52,12, - 71,12,23,5,71,58,71,5,71,5,41,115,12,0,0,0, - 159,4,36,0,164,15,53,7,190,1,53,7,99,1,0,0, + 41,9,20,9,20,9,20,5,41,0,0,27,39,40,51,27, + 52,12,71,12,23,5,71,58,71,5,71,115,12,0,0,0, + 159,4,36,0,164,15,54,7,181,1,54,7,99,1,0,0, 0,0,0,0,0,0,0,0,0,8,0,0,0,3,0,0, - 0,115,72,0,0,0,124,0,160,0,116,1,116,2,131,1, - 161,1,114,22,9,0,116,3,124,0,131,1,83,0,35,0, - 4,0,116,4,121,35,1,0,1,0,1,0,89,0,110,12, - 37,0,124,0,160,0,116,1,116,5,131,1,161,1,114,31, - 124,0,83,0,100,0,83,0,100,0,83,0,119,0,114,71, - 0,0,0,41,6,114,60,0,0,0,218,5,116,117,112,108, - 101,114,131,0,0,0,114,125,0,0,0,114,111,0,0,0, - 114,117,0,0,0,41,1,114,124,0,0,0,115,1,0,0, - 0,32,114,7,0,0,0,218,11,95,103,101,116,95,99,97, - 99,104,101,100,114,141,0,0,0,9,2,0,0,115,24,0, - 0,0,14,1,2,1,8,1,2,128,12,1,4,1,2,128, - 14,1,4,1,4,2,4,252,2,255,115,28,0,0,0,12, - 1,2,8,2,252,8,254,2,128,2,2,2,255,12,1,2, - 128,12,1,2,3,4,254,4,2,6,252,115,72,0,0,0, - 8,16,8,49,26,31,32,47,26,48,8,49,5,20,9,17, - 20,37,38,46,20,47,13,47,0,0,9,17,16,35,9,17, - 9,17,9,17,9,17,13,17,13,17,0,0,10,18,10,53, - 28,33,34,51,28,52,10,53,5,20,16,24,9,24,16,20, - 16,20,13,17,13,17,9,17,115,12,0,0,0,136,3,12, - 0,140,7,21,7,163,1,21,7,99,1,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,3,0,0,0,115,52, - 0,0,0,9,0,116,0,124,0,131,1,106,1,125,1,110, - 12,35,0,4,0,116,2,121,25,1,0,1,0,1,0,100, - 1,125,1,89,0,110,1,37,0,124,1,100,2,79,0,125, - 1,124,1,83,0,119,0,41,4,122,51,67,97,108,99,117, - 108,97,116,101,32,116,104,101,32,109,111,100,101,32,112,101, - 114,109,105,115,115,105,111,110,115,32,102,111,114,32,97,32, - 98,121,116,101,99,111,100,101,32,102,105,108,101,46,114,91, - 0,0,0,233,128,0,0,0,78,41,3,114,78,0,0,0, - 114,81,0,0,0,114,80,0,0,0,41,2,114,67,0,0, - 0,114,82,0,0,0,115,2,0,0,0,32,32,114,7,0, - 0,0,218,10,95,99,97,108,99,95,109,111,100,101,114,143, - 0,0,0,21,2,0,0,115,18,0,0,0,2,2,12,1, - 2,128,12,1,8,1,2,128,8,3,4,1,2,251,115,20, - 0,0,0,2,5,12,254,2,128,2,2,2,255,16,1,2, - 128,8,3,4,1,2,252,115,52,0,0,0,5,21,16,26, - 27,31,16,32,16,40,9,13,9,13,0,0,5,21,12,19, - 5,21,5,21,5,21,5,21,16,21,9,13,9,13,9,13, - 0,0,5,9,13,18,5,18,5,9,12,16,5,16,5,21, - 115,12,0,0,0,129,5,7,0,135,9,18,7,153,1,18, - 7,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,115,50,0,0,0,135,0,100,4,136, - 0,102,1,100,2,132,9,125,1,116,0,100,1,117,1,114, - 15,116,0,106,1,125,2,110,3,100,3,132,0,125,2,124, - 2,124,1,137,0,131,2,1,0,124,1,83,0,41,5,122, - 252,68,101,99,111,114,97,116,111,114,32,116,111,32,118,101, - 114,105,102,121,32,116,104,97,116,32,116,104,101,32,109,111, - 100,117,108,101,32,98,101,105,110,103,32,114,101,113,117,101, - 115,116,101,100,32,109,97,116,99,104,101,115,32,116,104,101, - 32,111,110,101,32,116,104,101,10,32,32,32,32,108,111,97, - 100,101,114,32,99,97,110,32,104,97,110,100,108,101,46,10, - 10,32,32,32,32,84,104,101,32,102,105,114,115,116,32,97, - 114,103,117,109,101,110,116,32,40,115,101,108,102,41,32,109, - 117,115,116,32,100,101,102,105,110,101,32,95,110,97,109,101, - 32,119,104,105,99,104,32,116,104,101,32,115,101,99,111,110, - 100,32,97,114,103,117,109,101,110,116,32,105,115,10,32,32, - 32,32,99,111,109,112,97,114,101,100,32,97,103,97,105,110, - 115,116,46,32,73,102,32,116,104,101,32,99,111,109,112,97, - 114,105,115,111,110,32,102,97,105,108,115,32,116,104,101,110, - 32,73,109,112,111,114,116,69,114,114,111,114,32,105,115,32, - 114,97,105,115,101,100,46,10,10,32,32,32,32,78,99,2, - 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,31, - 0,0,0,115,76,0,0,0,124,1,100,0,117,0,114,8, - 124,0,106,0,125,1,110,18,124,0,106,0,124,1,107,3, - 114,26,116,1,100,1,124,0,106,0,155,1,100,2,124,1, - 155,1,157,4,124,1,100,3,141,2,130,1,137,4,124,0, - 124,1,103,2,124,2,162,1,82,0,105,0,124,3,164,1, - 142,1,83,0,41,4,78,122,11,108,111,97,100,101,114,32, - 102,111,114,32,122,15,32,99,97,110,110,111,116,32,104,97, - 110,100,108,101,32,169,1,218,4,110,97,109,101,41,2,114, - 145,0,0,0,218,11,73,109,112,111,114,116,69,114,114,111, - 114,41,5,218,4,115,101,108,102,114,145,0,0,0,218,4, - 97,114,103,115,218,6,107,119,97,114,103,115,218,6,109,101, - 116,104,111,100,115,5,0,0,0,32,32,32,32,128,114,7, - 0,0,0,218,19,95,99,104,101,99,107,95,110,97,109,101, - 95,119,114,97,112,112,101,114,122,40,95,99,104,101,99,107, - 95,110,97,109,101,46,60,108,111,99,97,108,115,62,46,95, - 99,104,101,99,107,95,110,97,109,101,95,119,114,97,112,112, - 101,114,41,2,0,0,115,18,0,0,0,8,1,8,1,10, - 1,4,1,12,1,2,255,2,1,6,255,24,2,115,16,0, - 0,0,6,1,2,4,8,253,8,1,2,2,4,255,22,1, - 24,1,115,76,0,0,0,12,16,20,24,12,24,9,62,20, - 24,20,29,13,17,13,17,14,18,14,23,27,31,14,31,9, - 62,19,30,19,30,34,38,34,43,34,43,34,43,45,49,45, - 49,31,50,57,61,19,62,19,62,13,62,16,22,23,27,29, - 33,16,51,36,40,16,51,16,51,16,51,44,50,16,51,16, - 51,9,51,114,10,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,7,0,0,0,19,0,0,0,115,56,0, - 0,0,100,1,68,0,93,16,125,2,116,0,124,1,124,2, - 131,2,114,18,116,1,124,0,124,2,116,2,124,1,124,2, - 131,2,131,3,1,0,113,2,124,0,106,3,160,4,124,1, - 106,3,161,1,1,0,100,0,83,0,41,2,78,41,4,218, - 10,95,95,109,111,100,117,108,101,95,95,218,8,95,95,110, - 97,109,101,95,95,218,12,95,95,113,117,97,108,110,97,109, - 101,95,95,218,7,95,95,100,111,99,95,95,41,5,218,7, - 104,97,115,97,116,116,114,218,7,115,101,116,97,116,116,114, - 218,7,103,101,116,97,116,116,114,218,8,95,95,100,105,99, - 116,95,95,218,6,117,112,100,97,116,101,41,3,90,3,110, - 101,119,90,3,111,108,100,114,89,0,0,0,115,3,0,0, - 0,32,32,32,114,7,0,0,0,218,5,95,119,114,97,112, - 122,26,95,99,104,101,99,107,95,110,97,109,101,46,60,108, - 111,99,97,108,115,62,46,95,119,114,97,112,54,2,0,0, - 115,10,0,0,0,8,1,10,1,18,1,2,128,18,1,115, - 14,0,0,0,2,1,4,2,2,254,8,1,20,1,2,128, - 18,1,115,56,0,0,0,28,81,13,65,13,65,17,24,20, - 27,28,31,33,40,20,41,17,65,21,28,29,32,34,41,43, - 50,51,54,56,63,43,64,21,65,21,65,0,0,13,16,13, - 25,13,46,33,36,33,45,13,46,13,46,13,46,13,46,114, - 10,0,0,0,114,71,0,0,0,41,2,218,10,95,98,111, - 111,116,115,116,114,97,112,114,161,0,0,0,41,3,114,150, - 0,0,0,114,151,0,0,0,114,161,0,0,0,115,3,0, - 0,0,96,32,32,114,7,0,0,0,218,11,95,99,104,101, - 99,107,95,110,97,109,101,114,163,0,0,0,33,2,0,0, - 115,14,0,0,0,2,128,12,8,8,10,8,1,6,2,10, - 6,4,1,115,18,0,0,0,2,128,2,8,10,6,6,4, - 2,7,8,250,6,6,10,2,4,1,115,50,0,0,0,0, - 0,40,44,5,51,5,51,5,51,5,51,5,51,8,18,26, - 30,8,30,5,46,17,27,17,33,9,14,9,14,9,46,9, - 46,9,46,5,10,11,30,32,38,5,39,5,39,12,31,5, - 31,114,10,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,115,72,0,0,0, - 116,0,106,1,100,1,116,2,131,2,1,0,124,0,160,3, - 124,1,161,1,92,2,125,2,125,3,124,2,100,2,117,0, - 114,34,116,4,124,3,131,1,114,34,100,3,125,4,116,0, - 106,1,124,4,160,5,124,3,100,4,25,0,161,1,116,6, - 131,2,1,0,124,2,83,0,41,5,122,155,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,32,98,121,32,100,101,108, - 101,103,97,116,105,110,103,32,116,111,10,32,32,32,32,115, - 101,108,102,46,102,105,110,100,95,108,111,97,100,101,114,40, - 41,46,10,10,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,32,105,110,32,102,97,118,111,114,32,111,102,32,102,105, - 110,100,101,114,46,102,105,110,100,95,115,112,101,99,40,41, - 46,10,10,32,32,32,32,122,90,102,105,110,100,95,109,111, - 100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99, - 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32, - 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80, - 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32, - 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,78,122,44,78,111,116,32,105,109,112,111,114,116, - 105,110,103,32,100,105,114,101,99,116,111,114,121,32,123,125, - 58,32,109,105,115,115,105,110,103,32,95,95,105,110,105,116, - 95,95,114,0,0,0,0,41,7,114,103,0,0,0,114,104, - 0,0,0,114,105,0,0,0,218,11,102,105,110,100,95,108, - 111,97,100,101,114,114,4,0,0,0,114,93,0,0,0,218, - 13,73,109,112,111,114,116,87,97,114,110,105,110,103,41,5, - 114,147,0,0,0,218,8,102,117,108,108,110,97,109,101,218, - 6,108,111,97,100,101,114,218,8,112,111,114,116,105,111,110, - 115,218,3,109,115,103,115,5,0,0,0,32,32,32,32,32, - 114,7,0,0,0,218,17,95,102,105,110,100,95,109,111,100, - 117,108,101,95,115,104,105,109,114,170,0,0,0,64,2,0, - 0,115,16,0,0,0,6,7,2,2,4,254,14,6,16,1, - 4,1,22,1,4,1,115,22,0,0,0,4,7,2,1,6, - 1,14,4,6,1,2,2,6,254,2,2,4,255,22,1,4, - 1,115,72,0,0,0,5,14,5,19,20,80,20,38,5,39, - 5,39,24,28,24,50,41,49,24,50,5,21,5,11,13,21, - 8,14,18,22,8,22,5,63,27,30,31,39,27,40,5,63, - 15,61,9,12,9,18,9,23,24,27,24,47,35,43,44,45, - 35,46,24,47,49,62,9,63,9,63,12,18,5,18,114,10, - 0,0,0,99,3,0,0,0,0,0,0,0,0,0,0,0, - 4,0,0,0,3,0,0,0,115,166,0,0,0,124,0,100, - 1,100,2,133,2,25,0,125,3,124,3,116,0,107,3,114, - 32,100,3,124,1,155,2,100,4,124,3,155,2,157,4,125, - 4,116,1,160,2,100,5,124,4,161,2,1,0,116,3,124, - 4,102,1,105,0,124,2,164,1,142,1,130,1,116,4,124, - 0,131,1,100,6,107,0,114,53,100,7,124,1,155,2,157, - 2,125,4,116,1,160,2,100,5,124,4,161,2,1,0,116, - 5,124,4,131,1,130,1,116,6,124,0,100,2,100,8,133, - 2,25,0,131,1,125,5,124,5,100,9,64,0,114,81,100, - 10,124,5,155,2,100,11,124,1,155,2,157,4,125,4,116, - 3,124,4,102,1,105,0,124,2,164,1,142,1,130,1,124, - 5,83,0,41,12,97,84,2,0,0,80,101,114,102,111,114, - 109,32,98,97,115,105,99,32,118,97,108,105,100,105,116,121, - 32,99,104,101,99,107,105,110,103,32,111,102,32,97,32,112, - 121,99,32,104,101,97,100,101,114,32,97,110,100,32,114,101, - 116,117,114,110,32,116,104,101,32,102,108,97,103,115,32,102, - 105,101,108,100,44,10,32,32,32,32,119,104,105,99,104,32, - 100,101,116,101,114,109,105,110,101,115,32,104,111,119,32,116, - 104,101,32,112,121,99,32,115,104,111,117,108,100,32,98,101, - 32,102,117,114,116,104,101,114,32,118,97,108,105,100,97,116, - 101,100,32,97,103,97,105,110,115,116,32,116,104,101,32,115, - 111,117,114,99,101,46,10,10,32,32,32,32,42,100,97,116, - 97,42,32,105,115,32,116,104,101,32,99,111,110,116,101,110, - 116,115,32,111,102,32,116,104,101,32,112,121,99,32,102,105, - 108,101,46,32,40,79,110,108,121,32,116,104,101,32,102,105, - 114,115,116,32,49,54,32,98,121,116,101,115,32,97,114,101, - 10,32,32,32,32,114,101,113,117,105,114,101,100,44,32,116, - 104,111,117,103,104,46,41,10,10,32,32,32,32,42,110,97, + 0,115,70,0,0,0,124,0,160,0,116,1,116,2,131,1, + 161,1,114,24,9,0,116,3,124,0,131,1,83,0,35,0, + 4,0,116,4,121,22,1,0,1,0,1,0,89,0,100,0, + 83,0,119,0,37,0,124,0,160,0,116,1,116,5,131,1, + 161,1,114,33,124,0,83,0,100,0,83,0,114,71,0,0, + 0,41,6,114,60,0,0,0,218,5,116,117,112,108,101,114, + 131,0,0,0,114,125,0,0,0,114,111,0,0,0,114,117, + 0,0,0,41,1,114,124,0,0,0,115,1,0,0,0,32, + 114,7,0,0,0,218,11,95,103,101,116,95,99,97,99,104, + 101,100,114,141,0,0,0,9,2,0,0,115,22,0,0,0, + 14,1,2,1,8,1,2,128,12,1,6,1,2,255,2,128, + 14,2,4,1,4,2,115,26,0,0,0,12,1,2,8,2, + 252,8,254,2,128,2,2,2,255,16,1,2,128,12,1,2, + 3,4,254,4,2,115,70,0,0,0,8,16,8,49,26,31, + 32,47,26,48,8,49,5,20,9,17,20,37,38,46,20,47, + 13,47,0,0,9,17,16,35,9,17,9,17,9,17,9,17, + 13,17,13,17,13,17,9,17,0,0,10,18,10,53,28,33, + 34,51,28,52,10,53,5,20,16,24,9,24,16,20,16,20, + 115,12,0,0,0,136,3,12,0,140,7,23,7,150,1,23, + 7,99,1,0,0,0,0,0,0,0,0,0,0,0,8,0, + 0,0,3,0,0,0,115,52,0,0,0,9,0,116,0,124, + 0,131,1,106,1,125,1,110,13,35,0,4,0,116,2,121, + 18,1,0,1,0,1,0,100,1,125,1,89,0,110,2,119, + 0,37,0,124,1,100,2,79,0,125,1,124,1,83,0,41, + 4,122,51,67,97,108,99,117,108,97,116,101,32,116,104,101, + 32,109,111,100,101,32,112,101,114,109,105,115,115,105,111,110, + 115,32,102,111,114,32,97,32,98,121,116,101,99,111,100,101, + 32,102,105,108,101,46,114,91,0,0,0,233,128,0,0,0, + 78,41,3,114,78,0,0,0,114,81,0,0,0,114,80,0, + 0,0,41,2,114,67,0,0,0,114,82,0,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,218,10,95,99,97,108, + 99,95,109,111,100,101,114,143,0,0,0,21,2,0,0,115, + 18,0,0,0,2,2,12,1,2,128,12,1,8,1,2,255, + 2,128,8,4,4,1,115,18,0,0,0,2,5,12,254,2, + 128,2,2,2,255,18,1,2,128,8,3,4,1,115,52,0, + 0,0,5,21,16,26,27,31,16,32,16,40,9,13,9,13, + 0,0,5,21,12,19,5,21,5,21,5,21,5,21,16,21, + 9,13,9,13,9,13,5,21,0,0,5,9,13,18,5,18, + 5,9,12,16,5,16,115,12,0,0,0,129,5,7,0,135, + 9,19,7,146,1,19,7,99,1,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,115,50,0,0, + 0,135,0,100,4,136,0,102,1,100,2,132,9,125,1,116, + 0,100,1,117,1,114,15,116,0,106,1,125,2,110,3,100, + 3,132,0,125,2,124,2,124,1,137,0,131,2,1,0,124, + 1,83,0,41,5,122,252,68,101,99,111,114,97,116,111,114, + 32,116,111,32,118,101,114,105,102,121,32,116,104,97,116,32, + 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103, + 32,114,101,113,117,101,115,116,101,100,32,109,97,116,99,104, + 101,115,32,116,104,101,32,111,110,101,32,116,104,101,10,32, + 32,32,32,108,111,97,100,101,114,32,99,97,110,32,104,97, + 110,100,108,101,46,10,10,32,32,32,32,84,104,101,32,102, + 105,114,115,116,32,97,114,103,117,109,101,110,116,32,40,115, + 101,108,102,41,32,109,117,115,116,32,100,101,102,105,110,101, + 32,95,110,97,109,101,32,119,104,105,99,104,32,116,104,101, + 32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,116, + 32,105,115,10,32,32,32,32,99,111,109,112,97,114,101,100, + 32,97,103,97,105,110,115,116,46,32,73,102,32,116,104,101, + 32,99,111,109,112,97,114,105,115,111,110,32,102,97,105,108, + 115,32,116,104,101,110,32,73,109,112,111,114,116,69,114,114, + 111,114,32,105,115,32,114,97,105,115,101,100,46,10,10,32, + 32,32,32,78,99,2,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,31,0,0,0,115,76,0,0,0,124,1, + 100,0,117,0,114,8,124,0,106,0,125,1,110,18,124,0, + 106,0,124,1,107,3,114,26,116,1,100,1,124,0,106,0, + 155,1,100,2,124,1,155,1,157,4,124,1,100,3,141,2, + 130,1,137,4,124,0,124,1,103,2,124,2,162,1,82,0, + 105,0,124,3,164,1,142,1,83,0,41,4,78,122,11,108, + 111,97,100,101,114,32,102,111,114,32,122,15,32,99,97,110, + 110,111,116,32,104,97,110,100,108,101,32,169,1,218,4,110, + 97,109,101,41,2,114,145,0,0,0,218,11,73,109,112,111, + 114,116,69,114,114,111,114,41,5,218,4,115,101,108,102,114, + 145,0,0,0,218,4,97,114,103,115,218,6,107,119,97,114, + 103,115,218,6,109,101,116,104,111,100,115,5,0,0,0,32, + 32,32,32,128,114,7,0,0,0,218,19,95,99,104,101,99, + 107,95,110,97,109,101,95,119,114,97,112,112,101,114,122,40, + 95,99,104,101,99,107,95,110,97,109,101,46,60,108,111,99, + 97,108,115,62,46,95,99,104,101,99,107,95,110,97,109,101, + 95,119,114,97,112,112,101,114,41,2,0,0,115,18,0,0, + 0,8,1,8,1,10,1,4,1,12,1,2,255,2,1,6, + 255,24,2,115,16,0,0,0,6,1,2,4,8,253,8,1, + 2,2,4,255,22,1,24,1,115,76,0,0,0,12,16,20, + 24,12,24,9,62,20,24,20,29,13,17,13,17,14,18,14, + 23,27,31,14,31,9,62,19,30,19,30,34,38,34,43,34, + 43,34,43,45,49,45,49,31,50,57,61,19,62,19,62,13, + 62,16,22,23,27,29,33,16,51,36,40,16,51,16,51,16, + 51,44,50,16,51,16,51,9,51,114,10,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,19, + 0,0,0,115,56,0,0,0,100,1,68,0,93,16,125,2, + 116,0,124,1,124,2,131,2,114,18,116,1,124,0,124,2, + 116,2,124,1,124,2,131,2,131,3,1,0,113,2,124,0, + 106,3,160,4,124,1,106,3,161,1,1,0,100,0,83,0, + 41,2,78,41,4,218,10,95,95,109,111,100,117,108,101,95, + 95,218,8,95,95,110,97,109,101,95,95,218,12,95,95,113, + 117,97,108,110,97,109,101,95,95,218,7,95,95,100,111,99, + 95,95,41,5,218,7,104,97,115,97,116,116,114,218,7,115, + 101,116,97,116,116,114,218,7,103,101,116,97,116,116,114,218, + 8,95,95,100,105,99,116,95,95,218,6,117,112,100,97,116, + 101,41,3,90,3,110,101,119,90,3,111,108,100,114,89,0, + 0,0,115,3,0,0,0,32,32,32,114,7,0,0,0,218, + 5,95,119,114,97,112,122,26,95,99,104,101,99,107,95,110, + 97,109,101,46,60,108,111,99,97,108,115,62,46,95,119,114, + 97,112,54,2,0,0,115,10,0,0,0,8,1,10,1,18, + 1,2,128,18,1,115,14,0,0,0,2,1,4,2,2,254, + 8,1,20,1,2,128,18,1,115,56,0,0,0,28,81,13, + 65,13,65,17,24,20,27,28,31,33,40,20,41,17,65,21, + 28,29,32,34,41,43,50,51,54,56,63,43,64,21,65,21, + 65,0,0,13,16,13,25,13,46,33,36,33,45,13,46,13, + 46,13,46,13,46,114,10,0,0,0,114,71,0,0,0,41, + 2,218,10,95,98,111,111,116,115,116,114,97,112,114,161,0, + 0,0,41,3,114,150,0,0,0,114,151,0,0,0,114,161, + 0,0,0,115,3,0,0,0,96,32,32,114,7,0,0,0, + 218,11,95,99,104,101,99,107,95,110,97,109,101,114,163,0, + 0,0,33,2,0,0,115,14,0,0,0,2,128,12,8,8, + 10,8,1,6,2,10,6,4,1,115,18,0,0,0,2,128, + 2,8,10,6,6,4,2,7,8,250,6,6,10,2,4,1, + 115,50,0,0,0,0,0,40,44,5,51,5,51,5,51,5, + 51,5,51,8,18,26,30,8,30,5,46,17,27,17,33,9, + 14,9,14,9,46,9,46,9,46,5,10,11,30,32,38,5, + 39,5,39,12,31,5,31,114,10,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,115,72,0,0,0,116,0,106,1,100,1,116,2,131,2, + 1,0,124,0,160,3,124,1,161,1,92,2,125,2,125,3, + 124,2,100,2,117,0,114,34,116,4,124,3,131,1,114,34, + 100,3,125,4,116,0,106,1,124,4,160,5,124,3,100,4, + 25,0,161,1,116,6,131,2,1,0,124,2,83,0,41,5, + 122,155,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,32, + 98,121,32,100,101,108,101,103,97,116,105,110,103,32,116,111, + 10,32,32,32,32,115,101,108,102,46,102,105,110,100,95,108, + 111,97,100,101,114,40,41,46,10,10,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,32,105,110,32,102,97,118,111,114, + 32,111,102,32,102,105,110,100,101,114,46,102,105,110,100,95, + 115,112,101,99,40,41,46,10,10,32,32,32,32,122,90,102, + 105,110,100,95,109,111,100,117,108,101,40,41,32,105,115,32, + 100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115, + 108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97, + 108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50, + 59,32,117,115,101,32,102,105,110,100,95,115,112,101,99,40, + 41,32,105,110,115,116,101,97,100,78,122,44,78,111,116,32, + 105,109,112,111,114,116,105,110,103,32,100,105,114,101,99,116, + 111,114,121,32,123,125,58,32,109,105,115,115,105,110,103,32, + 95,95,105,110,105,116,95,95,114,0,0,0,0,41,7,114, + 103,0,0,0,114,104,0,0,0,114,105,0,0,0,218,11, + 102,105,110,100,95,108,111,97,100,101,114,114,4,0,0,0, + 114,93,0,0,0,218,13,73,109,112,111,114,116,87,97,114, + 110,105,110,103,41,5,114,147,0,0,0,218,8,102,117,108, + 108,110,97,109,101,218,6,108,111,97,100,101,114,218,8,112, + 111,114,116,105,111,110,115,218,3,109,115,103,115,5,0,0, + 0,32,32,32,32,32,114,7,0,0,0,218,17,95,102,105, + 110,100,95,109,111,100,117,108,101,95,115,104,105,109,114,170, + 0,0,0,64,2,0,0,115,16,0,0,0,6,7,2,2, + 4,254,14,6,16,1,4,1,22,1,4,1,115,22,0,0, + 0,4,7,2,1,6,1,14,4,6,1,2,2,6,254,2, + 2,4,255,22,1,4,1,115,72,0,0,0,5,14,5,19, + 20,80,20,38,5,39,5,39,24,28,24,50,41,49,24,50, + 5,21,5,11,13,21,8,14,18,22,8,22,5,63,27,30, + 31,39,27,40,5,63,15,61,9,12,9,18,9,23,24,27, + 24,47,35,43,44,45,35,46,24,47,49,62,9,63,9,63, + 12,18,5,18,114,10,0,0,0,99,3,0,0,0,0,0, + 0,0,0,0,0,0,4,0,0,0,3,0,0,0,115,166, + 0,0,0,124,0,100,1,100,2,133,2,25,0,125,3,124, + 3,116,0,107,3,114,32,100,3,124,1,155,2,100,4,124, + 3,155,2,157,4,125,4,116,1,160,2,100,5,124,4,161, + 2,1,0,116,3,124,4,102,1,105,0,124,2,164,1,142, + 1,130,1,116,4,124,0,131,1,100,6,107,0,114,53,100, + 7,124,1,155,2,157,2,125,4,116,1,160,2,100,5,124, + 4,161,2,1,0,116,5,124,4,131,1,130,1,116,6,124, + 0,100,2,100,8,133,2,25,0,131,1,125,5,124,5,100, + 9,64,0,114,81,100,10,124,5,155,2,100,11,124,1,155, + 2,157,4,125,4,116,3,124,4,102,1,105,0,124,2,164, + 1,142,1,130,1,124,5,83,0,41,12,97,84,2,0,0, + 80,101,114,102,111,114,109,32,98,97,115,105,99,32,118,97, + 108,105,100,105,116,121,32,99,104,101,99,107,105,110,103,32, + 111,102,32,97,32,112,121,99,32,104,101,97,100,101,114,32, + 97,110,100,32,114,101,116,117,114,110,32,116,104,101,32,102, + 108,97,103,115,32,102,105,101,108,100,44,10,32,32,32,32, + 119,104,105,99,104,32,100,101,116,101,114,109,105,110,101,115, + 32,104,111,119,32,116,104,101,32,112,121,99,32,115,104,111, + 117,108,100,32,98,101,32,102,117,114,116,104,101,114,32,118, + 97,108,105,100,97,116,101,100,32,97,103,97,105,110,115,116, + 32,116,104,101,32,115,111,117,114,99,101,46,10,10,32,32, + 32,32,42,100,97,116,97,42,32,105,115,32,116,104,101,32, + 99,111,110,116,101,110,116,115,32,111,102,32,116,104,101,32, + 112,121,99,32,102,105,108,101,46,32,40,79,110,108,121,32, + 116,104,101,32,102,105,114,115,116,32,49,54,32,98,121,116, + 101,115,32,97,114,101,10,32,32,32,32,114,101,113,117,105, + 114,101,100,44,32,116,104,111,117,103,104,46,41,10,10,32, + 32,32,32,42,110,97,109,101,42,32,105,115,32,116,104,101, + 32,110,97,109,101,32,111,102,32,116,104,101,32,109,111,100, + 117,108,101,32,98,101,105,110,103,32,105,109,112,111,114,116, + 101,100,46,32,73,116,32,105,115,32,117,115,101,100,32,102, + 111,114,32,108,111,103,103,105,110,103,46,10,10,32,32,32, + 32,42,101,120,99,95,100,101,116,97,105,108,115,42,32,105, + 115,32,97,32,100,105,99,116,105,111,110,97,114,121,32,112, + 97,115,115,101,100,32,116,111,32,73,109,112,111,114,116,69, + 114,114,111,114,32,105,102,32,105,116,32,114,97,105,115,101, + 100,32,102,111,114,10,32,32,32,32,105,109,112,114,111,118, + 101,100,32,100,101,98,117,103,103,105,110,103,46,10,10,32, + 32,32,32,73,109,112,111,114,116,69,114,114,111,114,32,105, + 115,32,114,97,105,115,101,100,32,119,104,101,110,32,116,104, + 101,32,109,97,103,105,99,32,110,117,109,98,101,114,32,105, + 115,32,105,110,99,111,114,114,101,99,116,32,111,114,32,119, + 104,101,110,32,116,104,101,32,102,108,97,103,115,10,32,32, + 32,32,102,105,101,108,100,32,105,115,32,105,110,118,97,108, + 105,100,46,32,69,79,70,69,114,114,111,114,32,105,115,32, + 114,97,105,115,101,100,32,119,104,101,110,32,116,104,101,32, + 100,97,116,97,32,105,115,32,102,111,117,110,100,32,116,111, + 32,98,101,32,116,114,117,110,99,97,116,101,100,46,10,10, + 32,32,32,32,78,114,34,0,0,0,122,20,98,97,100,32, + 109,97,103,105,99,32,110,117,109,98,101,114,32,105,110,32, + 122,2,58,32,250,2,123,125,233,16,0,0,0,122,40,114, + 101,97,99,104,101,100,32,69,79,70,32,119,104,105,108,101, + 32,114,101,97,100,105,110,103,32,112,121,99,32,104,101,97, + 100,101,114,32,111,102,32,233,8,0,0,0,233,252,255,255, + 255,122,14,105,110,118,97,108,105,100,32,102,108,97,103,115, + 32,122,4,32,105,110,32,41,7,218,12,77,65,71,73,67, + 95,78,85,77,66,69,82,114,162,0,0,0,218,16,95,118, + 101,114,98,111,115,101,95,109,101,115,115,97,103,101,114,146, + 0,0,0,114,4,0,0,0,218,8,69,79,70,69,114,114, + 111,114,114,45,0,0,0,41,6,114,44,0,0,0,114,145, + 0,0,0,218,11,101,120,99,95,100,101,116,97,105,108,115, + 90,5,109,97,103,105,99,114,121,0,0,0,114,19,0,0, + 0,115,6,0,0,0,32,32,32,32,32,32,114,7,0,0, + 0,218,13,95,99,108,97,115,115,105,102,121,95,112,121,99, + 114,179,0,0,0,84,2,0,0,115,28,0,0,0,12,16, + 8,1,16,1,12,1,16,1,12,1,10,1,12,1,8,1, + 16,1,8,2,16,1,16,1,4,1,115,34,0,0,0,12, + 16,6,1,2,3,16,254,12,1,16,1,10,1,2,3,10, + 254,12,1,8,1,16,1,6,2,2,2,16,255,16,1,4, + 1,115,166,0,0,0,13,17,18,20,19,20,18,20,13,21, + 5,10,8,13,17,29,8,29,5,50,19,61,20,24,19,61, + 19,61,20,25,19,61,19,61,9,16,9,19,9,51,37,41, + 43,50,9,51,9,51,15,26,27,34,15,50,15,50,38,49, + 15,50,15,50,9,50,8,11,12,16,8,17,20,22,8,22, + 5,32,19,70,20,24,19,70,19,70,9,16,9,19,9,51, + 37,41,43,50,9,51,9,51,15,23,24,31,15,32,9,32, + 13,27,28,32,33,34,35,36,33,36,28,37,13,38,5,10, + 8,13,16,21,8,21,5,50,19,57,20,25,19,57,19,57, + 20,24,19,57,19,57,9,16,15,26,27,34,15,50,15,50, + 38,49,15,50,15,50,9,50,12,17,5,17,114,10,0,0, + 0,99,5,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,115,124,0,0,0,116,0,124,0,100, + 1,100,2,133,2,25,0,131,1,124,1,100,3,64,0,107, + 3,114,31,100,4,124,3,155,2,157,2,125,5,116,1,160, + 2,100,5,124,5,161,2,1,0,116,3,124,5,102,1,105, + 0,124,4,164,1,142,1,130,1,124,2,100,6,117,1,114, + 58,116,0,124,0,100,2,100,7,133,2,25,0,131,1,124, + 2,100,3,64,0,107,3,114,60,116,3,100,4,124,3,155, + 2,157,2,102,1,105,0,124,4,164,1,142,1,130,1,100, + 6,83,0,100,6,83,0,41,8,97,7,2,0,0,86,97, + 108,105,100,97,116,101,32,97,32,112,121,99,32,97,103,97, + 105,110,115,116,32,116,104,101,32,115,111,117,114,99,101,32, + 108,97,115,116,45,109,111,100,105,102,105,101,100,32,116,105, + 109,101,46,10,10,32,32,32,32,42,100,97,116,97,42,32, + 105,115,32,116,104,101,32,99,111,110,116,101,110,116,115,32, + 111,102,32,116,104,101,32,112,121,99,32,102,105,108,101,46, + 32,40,79,110,108,121,32,116,104,101,32,102,105,114,115,116, + 32,49,54,32,98,121,116,101,115,32,97,114,101,10,32,32, + 32,32,114,101,113,117,105,114,101,100,46,41,10,10,32,32, + 32,32,42,115,111,117,114,99,101,95,109,116,105,109,101,42, + 32,105,115,32,116,104,101,32,108,97,115,116,32,109,111,100, + 105,102,105,101,100,32,116,105,109,101,115,116,97,109,112,32, + 111,102,32,116,104,101,32,115,111,117,114,99,101,32,102,105, + 108,101,46,10,10,32,32,32,32,42,115,111,117,114,99,101, + 95,115,105,122,101,42,32,105,115,32,78,111,110,101,32,111, + 114,32,116,104,101,32,115,105,122,101,32,111,102,32,116,104, + 101,32,115,111,117,114,99,101,32,102,105,108,101,32,105,110, + 32,98,121,116,101,115,46,10,10,32,32,32,32,42,110,97, 109,101,42,32,105,115,32,116,104,101,32,110,97,109,101,32, 111,102,32,116,104,101,32,109,111,100,117,108,101,32,98,101, 105,110,103,32,105,109,112,111,114,116,101,100,46,32,73,116, @@ -942,845 +1022,763 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 116,111,32,73,109,112,111,114,116,69,114,114,111,114,32,105, 102,32,105,116,32,114,97,105,115,101,100,32,102,111,114,10, 32,32,32,32,105,109,112,114,111,118,101,100,32,100,101,98, - 117,103,103,105,110,103,46,10,10,32,32,32,32,73,109,112, + 117,103,103,105,110,103,46,10,10,32,32,32,32,65,110,32, + 73,109,112,111,114,116,69,114,114,111,114,32,105,115,32,114, + 97,105,115,101,100,32,105,102,32,116,104,101,32,98,121,116, + 101,99,111,100,101,32,105,115,32,115,116,97,108,101,46,10, + 10,32,32,32,32,114,173,0,0,0,233,12,0,0,0,114, + 33,0,0,0,122,22,98,121,116,101,99,111,100,101,32,105, + 115,32,115,116,97,108,101,32,102,111,114,32,114,171,0,0, + 0,78,114,172,0,0,0,41,4,114,45,0,0,0,114,162, + 0,0,0,114,176,0,0,0,114,146,0,0,0,41,6,114, + 44,0,0,0,218,12,115,111,117,114,99,101,95,109,116,105, + 109,101,218,11,115,111,117,114,99,101,95,115,105,122,101,114, + 145,0,0,0,114,178,0,0,0,114,121,0,0,0,115,6, + 0,0,0,32,32,32,32,32,32,114,7,0,0,0,218,23, + 95,118,97,108,105,100,97,116,101,95,116,105,109,101,115,116, + 97,109,112,95,112,121,99,114,183,0,0,0,117,2,0,0, + 115,18,0,0,0,24,19,10,1,12,1,16,1,8,1,22, + 1,2,255,22,2,8,254,115,18,0,0,0,22,19,2,3, + 10,254,12,1,16,1,6,1,2,2,22,255,32,1,115,124, + 0,0,0,8,22,23,27,28,29,30,32,28,32,23,33,8, + 34,39,51,54,64,39,64,8,65,5,50,19,52,20,24,19, + 52,19,52,9,16,9,19,9,51,37,41,43,50,9,51,9, + 51,15,26,27,34,15,50,15,50,38,49,15,50,15,50,9, + 50,9,20,28,32,9,32,5,76,9,23,24,28,29,31,32, + 34,29,34,24,35,9,36,41,52,55,65,41,65,9,66,5, + 76,15,26,27,60,28,32,27,60,27,60,15,76,15,76,64, + 75,15,76,15,76,9,76,5,76,5,76,5,76,5,76,114, + 10,0,0,0,99,4,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,115,42,0,0,0,124,0, + 100,1,100,2,133,2,25,0,124,1,107,3,114,19,116,0, + 100,3,124,2,155,2,157,2,102,1,105,0,124,3,164,1, + 142,1,130,1,100,4,83,0,41,5,97,243,1,0,0,86, + 97,108,105,100,97,116,101,32,97,32,104,97,115,104,45,98, + 97,115,101,100,32,112,121,99,32,98,121,32,99,104,101,99, + 107,105,110,103,32,116,104,101,32,114,101,97,108,32,115,111, + 117,114,99,101,32,104,97,115,104,32,97,103,97,105,110,115, + 116,32,116,104,101,32,111,110,101,32,105,110,10,32,32,32, + 32,116,104,101,32,112,121,99,32,104,101,97,100,101,114,46, + 10,10,32,32,32,32,42,100,97,116,97,42,32,105,115,32, + 116,104,101,32,99,111,110,116,101,110,116,115,32,111,102,32, + 116,104,101,32,112,121,99,32,102,105,108,101,46,32,40,79, + 110,108,121,32,116,104,101,32,102,105,114,115,116,32,49,54, + 32,98,121,116,101,115,32,97,114,101,10,32,32,32,32,114, + 101,113,117,105,114,101,100,46,41,10,10,32,32,32,32,42, + 115,111,117,114,99,101,95,104,97,115,104,42,32,105,115,32, + 116,104,101,32,105,109,112,111,114,116,108,105,98,46,117,116, + 105,108,46,115,111,117,114,99,101,95,104,97,115,104,40,41, + 32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,102, + 105,108,101,46,10,10,32,32,32,32,42,110,97,109,101,42, + 32,105,115,32,116,104,101,32,110,97,109,101,32,111,102,32, + 116,104,101,32,109,111,100,117,108,101,32,98,101,105,110,103, + 32,105,109,112,111,114,116,101,100,46,32,73,116,32,105,115, + 32,117,115,101,100,32,102,111,114,32,108,111,103,103,105,110, + 103,46,10,10,32,32,32,32,42,101,120,99,95,100,101,116, + 97,105,108,115,42,32,105,115,32,97,32,100,105,99,116,105, + 111,110,97,114,121,32,112,97,115,115,101,100,32,116,111,32, + 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,105, + 116,32,114,97,105,115,101,100,32,102,111,114,10,32,32,32, + 32,105,109,112,114,111,118,101,100,32,100,101,98,117,103,103, + 105,110,103,46,10,10,32,32,32,32,65,110,32,73,109,112, 111,114,116,69,114,114,111,114,32,105,115,32,114,97,105,115, - 101,100,32,119,104,101,110,32,116,104,101,32,109,97,103,105, - 99,32,110,117,109,98,101,114,32,105,115,32,105,110,99,111, - 114,114,101,99,116,32,111,114,32,119,104,101,110,32,116,104, - 101,32,102,108,97,103,115,10,32,32,32,32,102,105,101,108, - 100,32,105,115,32,105,110,118,97,108,105,100,46,32,69,79, - 70,69,114,114,111,114,32,105,115,32,114,97,105,115,101,100, - 32,119,104,101,110,32,116,104,101,32,100,97,116,97,32,105, - 115,32,102,111,117,110,100,32,116,111,32,98,101,32,116,114, - 117,110,99,97,116,101,100,46,10,10,32,32,32,32,78,114, - 34,0,0,0,122,20,98,97,100,32,109,97,103,105,99,32, - 110,117,109,98,101,114,32,105,110,32,122,2,58,32,250,2, - 123,125,233,16,0,0,0,122,40,114,101,97,99,104,101,100, - 32,69,79,70,32,119,104,105,108,101,32,114,101,97,100,105, - 110,103,32,112,121,99,32,104,101,97,100,101,114,32,111,102, - 32,233,8,0,0,0,233,252,255,255,255,122,14,105,110,118, - 97,108,105,100,32,102,108,97,103,115,32,122,4,32,105,110, - 32,41,7,218,12,77,65,71,73,67,95,78,85,77,66,69, - 82,114,162,0,0,0,218,16,95,118,101,114,98,111,115,101, - 95,109,101,115,115,97,103,101,114,146,0,0,0,114,4,0, - 0,0,218,8,69,79,70,69,114,114,111,114,114,45,0,0, - 0,41,6,114,44,0,0,0,114,145,0,0,0,218,11,101, - 120,99,95,100,101,116,97,105,108,115,90,5,109,97,103,105, - 99,114,121,0,0,0,114,19,0,0,0,115,6,0,0,0, - 32,32,32,32,32,32,114,7,0,0,0,218,13,95,99,108, - 97,115,115,105,102,121,95,112,121,99,114,179,0,0,0,84, - 2,0,0,115,28,0,0,0,12,16,8,1,16,1,12,1, - 16,1,12,1,10,1,12,1,8,1,16,1,8,2,16,1, - 16,1,4,1,115,34,0,0,0,12,16,6,1,2,3,16, - 254,12,1,16,1,10,1,2,3,10,254,12,1,8,1,16, - 1,6,2,2,2,16,255,16,1,4,1,115,166,0,0,0, - 13,17,18,20,19,20,18,20,13,21,5,10,8,13,17,29, - 8,29,5,50,19,61,20,24,19,61,19,61,20,25,19,61, - 19,61,9,16,9,19,9,51,37,41,43,50,9,51,9,51, - 15,26,27,34,15,50,15,50,38,49,15,50,15,50,9,50, - 8,11,12,16,8,17,20,22,8,22,5,32,19,70,20,24, - 19,70,19,70,9,16,9,19,9,51,37,41,43,50,9,51, - 9,51,15,23,24,31,15,32,9,32,13,27,28,32,33,34, - 35,36,33,36,28,37,13,38,5,10,8,13,16,21,8,21, - 5,50,19,57,20,25,19,57,19,57,20,24,19,57,19,57, - 9,16,15,26,27,34,15,50,15,50,38,49,15,50,15,50, - 9,50,12,17,5,17,114,10,0,0,0,99,5,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 115,124,0,0,0,116,0,124,0,100,1,100,2,133,2,25, - 0,131,1,124,1,100,3,64,0,107,3,114,31,100,4,124, - 3,155,2,157,2,125,5,116,1,160,2,100,5,124,5,161, - 2,1,0,116,3,124,5,102,1,105,0,124,4,164,1,142, - 1,130,1,124,2,100,6,117,1,114,60,116,0,124,0,100, - 2,100,7,133,2,25,0,131,1,124,2,100,3,64,0,107, - 3,114,58,116,3,100,4,124,3,155,2,157,2,102,1,105, - 0,124,4,164,1,142,1,130,1,100,6,83,0,100,6,83, - 0,41,8,97,7,2,0,0,86,97,108,105,100,97,116,101, - 32,97,32,112,121,99,32,97,103,97,105,110,115,116,32,116, - 104,101,32,115,111,117,114,99,101,32,108,97,115,116,45,109, - 111,100,105,102,105,101,100,32,116,105,109,101,46,10,10,32, - 32,32,32,42,100,97,116,97,42,32,105,115,32,116,104,101, - 32,99,111,110,116,101,110,116,115,32,111,102,32,116,104,101, - 32,112,121,99,32,102,105,108,101,46,32,40,79,110,108,121, - 32,116,104,101,32,102,105,114,115,116,32,49,54,32,98,121, - 116,101,115,32,97,114,101,10,32,32,32,32,114,101,113,117, - 105,114,101,100,46,41,10,10,32,32,32,32,42,115,111,117, - 114,99,101,95,109,116,105,109,101,42,32,105,115,32,116,104, - 101,32,108,97,115,116,32,109,111,100,105,102,105,101,100,32, - 116,105,109,101,115,116,97,109,112,32,111,102,32,116,104,101, - 32,115,111,117,114,99,101,32,102,105,108,101,46,10,10,32, - 32,32,32,42,115,111,117,114,99,101,95,115,105,122,101,42, - 32,105,115,32,78,111,110,101,32,111,114,32,116,104,101,32, - 115,105,122,101,32,111,102,32,116,104,101,32,115,111,117,114, - 99,101,32,102,105,108,101,32,105,110,32,98,121,116,101,115, - 46,10,10,32,32,32,32,42,110,97,109,101,42,32,105,115, - 32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,101, - 32,109,111,100,117,108,101,32,98,101,105,110,103,32,105,109, - 112,111,114,116,101,100,46,32,73,116,32,105,115,32,117,115, - 101,100,32,102,111,114,32,108,111,103,103,105,110,103,46,10, - 10,32,32,32,32,42,101,120,99,95,100,101,116,97,105,108, - 115,42,32,105,115,32,97,32,100,105,99,116,105,111,110,97, - 114,121,32,112,97,115,115,101,100,32,116,111,32,73,109,112, - 111,114,116,69,114,114,111,114,32,105,102,32,105,116,32,114, - 97,105,115,101,100,32,102,111,114,10,32,32,32,32,105,109, - 112,114,111,118,101,100,32,100,101,98,117,103,103,105,110,103, - 46,10,10,32,32,32,32,65,110,32,73,109,112,111,114,116, - 69,114,114,111,114,32,105,115,32,114,97,105,115,101,100,32, - 105,102,32,116,104,101,32,98,121,116,101,99,111,100,101,32, - 105,115,32,115,116,97,108,101,46,10,10,32,32,32,32,114, - 173,0,0,0,233,12,0,0,0,114,33,0,0,0,122,22, - 98,121,116,101,99,111,100,101,32,105,115,32,115,116,97,108, - 101,32,102,111,114,32,114,171,0,0,0,78,114,172,0,0, - 0,41,4,114,45,0,0,0,114,162,0,0,0,114,176,0, - 0,0,114,146,0,0,0,41,6,114,44,0,0,0,218,12, - 115,111,117,114,99,101,95,109,116,105,109,101,218,11,115,111, - 117,114,99,101,95,115,105,122,101,114,145,0,0,0,114,178, - 0,0,0,114,121,0,0,0,115,6,0,0,0,32,32,32, - 32,32,32,114,7,0,0,0,218,23,95,118,97,108,105,100, - 97,116,101,95,116,105,109,101,115,116,97,109,112,95,112,121, - 99,114,183,0,0,0,117,2,0,0,115,18,0,0,0,24, - 19,10,1,12,1,16,1,8,1,22,1,2,255,22,2,8, - 254,115,18,0,0,0,22,19,2,3,10,254,12,1,16,1, - 6,1,2,2,22,255,32,1,115,124,0,0,0,8,22,23, - 27,28,29,30,32,28,32,23,33,8,34,39,51,54,64,39, - 64,8,65,5,50,19,52,20,24,19,52,19,52,9,16,9, - 19,9,51,37,41,43,50,9,51,9,51,15,26,27,34,15, - 50,15,50,38,49,15,50,15,50,9,50,9,20,28,32,9, - 32,5,76,9,23,24,28,29,31,32,34,29,34,24,35,9, - 36,41,52,55,65,41,65,9,66,5,76,15,26,27,60,28, - 32,27,60,27,60,15,76,15,76,64,75,15,76,15,76,9, - 76,5,76,5,76,5,76,5,76,114,10,0,0,0,99,4, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,115,42,0,0,0,124,0,100,1,100,2,133,2, - 25,0,124,1,107,3,114,19,116,0,100,3,124,2,155,2, - 157,2,102,1,105,0,124,3,164,1,142,1,130,1,100,4, - 83,0,41,5,97,243,1,0,0,86,97,108,105,100,97,116, - 101,32,97,32,104,97,115,104,45,98,97,115,101,100,32,112, - 121,99,32,98,121,32,99,104,101,99,107,105,110,103,32,116, - 104,101,32,114,101,97,108,32,115,111,117,114,99,101,32,104, - 97,115,104,32,97,103,97,105,110,115,116,32,116,104,101,32, - 111,110,101,32,105,110,10,32,32,32,32,116,104,101,32,112, - 121,99,32,104,101,97,100,101,114,46,10,10,32,32,32,32, - 42,100,97,116,97,42,32,105,115,32,116,104,101,32,99,111, - 110,116,101,110,116,115,32,111,102,32,116,104,101,32,112,121, - 99,32,102,105,108,101,46,32,40,79,110,108,121,32,116,104, - 101,32,102,105,114,115,116,32,49,54,32,98,121,116,101,115, - 32,97,114,101,10,32,32,32,32,114,101,113,117,105,114,101, - 100,46,41,10,10,32,32,32,32,42,115,111,117,114,99,101, - 95,104,97,115,104,42,32,105,115,32,116,104,101,32,105,109, - 112,111,114,116,108,105,98,46,117,116,105,108,46,115,111,117, - 114,99,101,95,104,97,115,104,40,41,32,111,102,32,116,104, - 101,32,115,111,117,114,99,101,32,102,105,108,101,46,10,10, - 32,32,32,32,42,110,97,109,101,42,32,105,115,32,116,104, - 101,32,110,97,109,101,32,111,102,32,116,104,101,32,109,111, - 100,117,108,101,32,98,101,105,110,103,32,105,109,112,111,114, - 116,101,100,46,32,73,116,32,105,115,32,117,115,101,100,32, - 102,111,114,32,108,111,103,103,105,110,103,46,10,10,32,32, - 32,32,42,101,120,99,95,100,101,116,97,105,108,115,42,32, - 105,115,32,97,32,100,105,99,116,105,111,110,97,114,121,32, - 112,97,115,115,101,100,32,116,111,32,73,109,112,111,114,116, - 69,114,114,111,114,32,105,102,32,105,116,32,114,97,105,115, - 101,100,32,102,111,114,10,32,32,32,32,105,109,112,114,111, - 118,101,100,32,100,101,98,117,103,103,105,110,103,46,10,10, - 32,32,32,32,65,110,32,73,109,112,111,114,116,69,114,114, - 111,114,32,105,115,32,114,97,105,115,101,100,32,105,102,32, - 116,104,101,32,98,121,116,101,99,111,100,101,32,105,115,32, - 115,116,97,108,101,46,10,10,32,32,32,32,114,173,0,0, - 0,114,172,0,0,0,122,46,104,97,115,104,32,105,110,32, - 98,121,116,101,99,111,100,101,32,100,111,101,115,110,39,116, - 32,109,97,116,99,104,32,104,97,115,104,32,111,102,32,115, - 111,117,114,99,101,32,78,41,1,114,146,0,0,0,41,4, - 114,44,0,0,0,218,11,115,111,117,114,99,101,95,104,97, - 115,104,114,145,0,0,0,114,178,0,0,0,115,4,0,0, - 0,32,32,32,32,114,7,0,0,0,218,18,95,118,97,108, - 105,100,97,116,101,95,104,97,115,104,95,112,121,99,114,185, - 0,0,0,145,2,0,0,115,14,0,0,0,16,17,2,1, - 8,1,4,255,2,2,6,254,4,255,115,14,0,0,0,14, - 17,2,4,2,253,8,1,4,2,2,255,10,1,115,42,0, - 0,0,8,12,13,14,15,17,13,17,8,18,22,33,8,33, - 5,10,15,26,13,71,14,18,13,71,13,71,15,10,15,10, - 15,26,15,10,15,10,9,10,5,10,5,10,114,10,0,0, - 0,99,4,0,0,0,0,0,0,0,0,0,0,0,5,0, - 0,0,3,0,0,0,115,76,0,0,0,116,0,106,1,124, - 0,131,1,125,4,116,2,124,4,116,3,131,2,114,28,116, - 4,160,5,100,1,124,2,161,2,1,0,124,3,100,2,117, - 1,114,26,116,6,106,7,124,4,124,3,131,2,1,0,124, - 4,83,0,116,8,100,3,160,9,124,2,161,1,124,1,124, - 2,100,4,141,3,130,1,41,5,122,35,67,111,109,112,105, - 108,101,32,98,121,116,101,99,111,100,101,32,97,115,32,102, - 111,117,110,100,32,105,110,32,97,32,112,121,99,46,122,21, - 99,111,100,101,32,111,98,106,101,99,116,32,102,114,111,109, - 32,123,33,114,125,78,122,23,78,111,110,45,99,111,100,101, - 32,111,98,106,101,99,116,32,105,110,32,123,33,114,125,169, - 2,114,145,0,0,0,114,67,0,0,0,41,10,218,7,109, - 97,114,115,104,97,108,90,5,108,111,97,100,115,218,10,105, - 115,105,110,115,116,97,110,99,101,218,10,95,99,111,100,101, - 95,116,121,112,101,114,162,0,0,0,114,176,0,0,0,218, - 4,95,105,109,112,90,16,95,102,105,120,95,99,111,95,102, - 105,108,101,110,97,109,101,114,146,0,0,0,114,93,0,0, - 0,41,5,114,44,0,0,0,114,145,0,0,0,114,136,0, - 0,0,114,138,0,0,0,218,4,99,111,100,101,115,5,0, - 0,0,32,32,32,32,32,114,7,0,0,0,218,17,95,99, - 111,109,112,105,108,101,95,98,121,116,101,99,111,100,101,114, - 192,0,0,0,169,2,0,0,115,18,0,0,0,10,2,10, - 1,12,1,8,1,12,1,4,1,10,2,4,1,6,255,115, - 18,0,0,0,10,2,8,1,2,7,12,250,6,1,14,1, - 4,1,10,2,10,1,115,76,0,0,0,12,19,12,25,26, - 30,12,31,5,9,8,18,19,23,25,35,8,36,5,57,9, - 19,9,76,37,60,62,75,9,76,9,76,12,23,31,35,12, - 35,9,53,13,17,13,34,35,39,41,52,13,53,13,53,16, - 20,9,20,15,26,27,52,27,74,60,73,27,74,32,36,43, - 56,15,57,15,57,9,57,114,10,0,0,0,99,3,0,0, - 0,0,0,0,0,0,0,0,0,4,0,0,0,3,0,0, - 0,115,70,0,0,0,116,0,116,1,131,1,125,3,124,3, - 160,2,116,3,100,1,131,1,161,1,1,0,124,3,160,2, - 116,3,124,1,131,1,161,1,1,0,124,3,160,2,116,3, - 124,2,131,1,161,1,1,0,124,3,160,2,116,4,106,5, - 124,0,131,1,161,1,1,0,124,3,83,0,41,3,122,43, - 80,114,111,100,117,99,101,32,116,104,101,32,100,97,116,97, - 32,102,111,114,32,97,32,116,105,109,101,115,116,97,109,112, - 45,98,97,115,101,100,32,112,121,99,46,114,0,0,0,0, - 78,41,6,218,9,98,121,116,101,97,114,114,97,121,114,175, - 0,0,0,218,6,101,120,116,101,110,100,114,39,0,0,0, - 114,187,0,0,0,218,5,100,117,109,112,115,41,4,114,191, - 0,0,0,218,5,109,116,105,109,101,114,182,0,0,0,114, - 44,0,0,0,115,4,0,0,0,32,32,32,32,114,7,0, - 0,0,218,22,95,99,111,100,101,95,116,111,95,116,105,109, - 101,115,116,97,109,112,95,112,121,99,114,197,0,0,0,182, - 2,0,0,243,12,0,0,0,8,2,14,1,14,1,14,1, - 16,1,4,1,114,198,0,0,0,115,70,0,0,0,12,21, - 22,34,12,35,5,9,5,9,5,33,17,29,30,31,17,32, - 5,33,5,33,5,9,5,37,17,29,30,35,17,36,5,37, - 5,37,5,9,5,43,17,29,30,41,17,42,5,43,5,43, - 5,9,5,37,17,24,17,30,31,35,17,36,5,37,5,37, - 12,16,5,16,114,10,0,0,0,84,99,3,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,115, - 80,0,0,0,116,0,116,1,131,1,125,3,100,1,124,2, - 100,1,62,0,66,0,125,4,124,3,160,2,116,3,124,4, - 131,1,161,1,1,0,116,4,124,1,131,1,100,2,107,2, - 115,25,74,0,130,1,124,3,160,2,124,1,161,1,1,0, - 124,3,160,2,116,5,106,6,124,0,131,1,161,1,1,0, - 124,3,83,0,41,4,122,38,80,114,111,100,117,99,101,32, - 116,104,101,32,100,97,116,97,32,102,111,114,32,97,32,104, - 97,115,104,45,98,97,115,101,100,32,112,121,99,46,114,3, - 0,0,0,114,173,0,0,0,78,41,7,114,193,0,0,0, - 114,175,0,0,0,114,194,0,0,0,114,39,0,0,0,114, - 4,0,0,0,114,187,0,0,0,114,195,0,0,0,41,5, - 114,191,0,0,0,114,184,0,0,0,90,7,99,104,101,99, - 107,101,100,114,44,0,0,0,114,19,0,0,0,115,5,0, - 0,0,32,32,32,32,32,114,7,0,0,0,218,17,95,99, - 111,100,101,95,116,111,95,104,97,115,104,95,112,121,99,114, - 199,0,0,0,192,2,0,0,243,14,0,0,0,8,2,12, - 1,14,1,16,1,10,1,16,1,4,1,114,200,0,0,0, - 115,80,0,0,0,12,21,22,34,12,35,5,9,13,16,19, - 26,30,31,19,31,13,31,5,10,5,9,5,37,17,29,30, - 35,17,36,5,37,5,37,12,15,16,27,12,28,32,33,12, - 33,5,33,5,33,5,33,5,9,5,29,17,28,5,29,5, - 29,5,9,5,37,17,24,17,30,31,35,17,36,5,37,5, - 37,12,16,5,16,114,10,0,0,0,99,1,0,0,0,0, - 0,0,0,0,0,0,0,6,0,0,0,3,0,0,0,115, - 62,0,0,0,100,1,100,2,108,0,125,1,116,1,106,2, - 124,0,131,1,106,3,125,2,124,1,160,4,124,2,161,1, - 125,3,116,1,106,5,100,2,100,3,131,2,125,4,124,4, - 160,6,124,0,160,6,124,3,100,1,25,0,161,1,161,1, - 83,0,41,4,122,121,68,101,99,111,100,101,32,98,121,116, - 101,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32, - 115,111,117,114,99,101,32,99,111,100,101,32,97,110,100,32, - 114,101,116,117,114,110,32,116,104,101,32,115,116,114,105,110, - 103,46,10,10,32,32,32,32,85,110,105,118,101,114,115,97, - 108,32,110,101,119,108,105,110,101,32,115,117,112,112,111,114, - 116,32,105,115,32,117,115,101,100,32,105,110,32,116,104,101, - 32,100,101,99,111,100,105,110,103,46,10,32,32,32,32,114, - 0,0,0,0,78,84,41,7,218,8,116,111,107,101,110,105, - 122,101,114,95,0,0,0,90,7,66,121,116,101,115,73,79, - 90,8,114,101,97,100,108,105,110,101,90,15,100,101,116,101, - 99,116,95,101,110,99,111,100,105,110,103,90,25,73,110,99, - 114,101,109,101,110,116,97,108,78,101,119,108,105,110,101,68, - 101,99,111,100,101,114,218,6,100,101,99,111,100,101,41,5, - 218,12,115,111,117,114,99,101,95,98,121,116,101,115,114,201, - 0,0,0,90,21,115,111,117,114,99,101,95,98,121,116,101, - 115,95,114,101,97,100,108,105,110,101,218,8,101,110,99,111, - 100,105,110,103,90,15,110,101,119,108,105,110,101,95,100,101, - 99,111,100,101,114,115,5,0,0,0,32,32,32,32,32,114, - 7,0,0,0,218,13,100,101,99,111,100,101,95,115,111,117, - 114,99,101,114,205,0,0,0,203,2,0,0,243,10,0,0, - 0,8,5,12,1,10,1,12,1,20,1,114,206,0,0,0, - 115,62,0,0,0,5,20,5,20,5,20,5,20,29,32,29, - 40,41,53,29,54,29,63,5,26,16,24,16,63,41,62,16, - 63,5,13,23,26,23,52,53,57,59,63,23,64,5,20,12, - 27,12,68,35,47,35,67,55,63,64,65,55,66,35,67,12, - 68,5,68,114,10,0,0,0,169,2,114,167,0,0,0,218, - 26,115,117,98,109,111,100,117,108,101,95,115,101,97,114,99, - 104,95,108,111,99,97,116,105,111,110,115,99,2,0,0,0, - 0,0,0,0,2,0,0,0,8,0,0,0,3,0,0,0, - 115,60,1,0,0,124,1,100,1,117,0,114,29,100,2,125, - 1,116,0,124,2,100,3,131,2,114,28,9,0,124,2,160, - 1,124,0,161,1,125,1,110,39,35,0,4,0,116,2,121, - 157,1,0,1,0,1,0,89,0,110,30,37,0,110,28,116, - 3,106,4,124,1,131,1,125,1,116,5,124,1,131,1,115, - 57,9,0,116,6,116,3,106,7,131,0,124,1,131,2,125, - 1,110,10,35,0,4,0,116,8,121,156,1,0,1,0,1, - 0,89,0,110,1,37,0,116,9,160,10,124,0,124,2,124, - 1,100,4,166,3,125,4,100,5,124,4,95,11,124,2,100, - 1,117,0,114,99,116,12,131,0,68,0,93,21,92,2,125, - 5,125,6,124,1,160,13,116,14,124,6,131,1,161,1,114, - 96,124,5,124,0,124,1,131,2,125,2,124,2,124,4,95, - 15,1,0,113,99,113,75,100,1,83,0,124,3,116,16,117, - 0,114,131,116,0,124,2,100,6,131,2,114,130,9,0,124, - 2,160,17,124,0,161,1,125,7,110,10,35,0,4,0,116, - 2,121,155,1,0,1,0,1,0,89,0,110,10,37,0,124, - 7,114,130,103,0,124,4,95,18,110,3,124,3,124,4,95, - 18,124,4,106,18,103,0,107,2,114,153,124,1,114,153,116, - 19,124,1,131,1,100,7,25,0,125,8,124,4,106,18,160, - 20,124,8,161,1,1,0,124,4,83,0,119,0,119,0,119, - 0,41,8,97,61,1,0,0,82,101,116,117,114,110,32,97, - 32,109,111,100,117,108,101,32,115,112,101,99,32,98,97,115, - 101,100,32,111,110,32,97,32,102,105,108,101,32,108,111,99, - 97,116,105,111,110,46,10,10,32,32,32,32,84,111,32,105, - 110,100,105,99,97,116,101,32,116,104,97,116,32,116,104,101, - 32,109,111,100,117,108,101,32,105,115,32,97,32,112,97,99, - 107,97,103,101,44,32,115,101,116,10,32,32,32,32,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,32,116,111,32,97,32,108,105, - 115,116,32,111,102,32,100,105,114,101,99,116,111,114,121,32, - 112,97,116,104,115,46,32,32,65,110,10,32,32,32,32,101, - 109,112,116,121,32,108,105,115,116,32,105,115,32,115,117,102, - 102,105,99,105,101,110,116,44,32,116,104,111,117,103,104,32, - 105,116,115,32,110,111,116,32,111,116,104,101,114,119,105,115, - 101,32,117,115,101,102,117,108,32,116,111,32,116,104,101,10, - 32,32,32,32,105,109,112,111,114,116,32,115,121,115,116,101, - 109,46,10,10,32,32,32,32,84,104,101,32,108,111,97,100, - 101,114,32,109,117,115,116,32,116,97,107,101,32,97,32,115, - 112,101,99,32,97,115,32,105,116,115,32,111,110,108,121,32, - 95,95,105,110,105,116,95,95,40,41,32,97,114,103,46,10, - 10,32,32,32,32,78,122,9,60,117,110,107,110,111,119,110, - 62,218,12,103,101,116,95,102,105,108,101,110,97,109,101,169, - 1,218,6,111,114,105,103,105,110,84,218,10,105,115,95,112, - 97,99,107,97,103,101,114,0,0,0,0,41,21,114,156,0, - 0,0,114,209,0,0,0,114,146,0,0,0,114,21,0,0, - 0,114,107,0,0,0,114,90,0,0,0,114,69,0,0,0, - 114,86,0,0,0,114,80,0,0,0,114,162,0,0,0,218, - 10,77,111,100,117,108,101,83,112,101,99,90,13,95,115,101, - 116,95,102,105,108,101,97,116,116,114,218,27,95,103,101,116, - 95,115,117,112,112,111,114,116,101,100,95,102,105,108,101,95, - 108,111,97,100,101,114,115,114,60,0,0,0,114,140,0,0, - 0,114,167,0,0,0,218,9,95,80,79,80,85,76,65,84, - 69,114,212,0,0,0,114,208,0,0,0,114,76,0,0,0, - 114,63,0,0,0,41,9,114,145,0,0,0,90,8,108,111, - 99,97,116,105,111,110,114,167,0,0,0,114,208,0,0,0, - 218,4,115,112,101,99,218,12,108,111,97,100,101,114,95,99, - 108,97,115,115,218,8,115,117,102,102,105,120,101,115,114,212, - 0,0,0,90,7,100,105,114,110,97,109,101,115,9,0,0, - 0,32,32,32,32,32,32,32,32,32,114,7,0,0,0,218, - 23,115,112,101,99,95,102,114,111,109,95,102,105,108,101,95, - 108,111,99,97,116,105,111,110,114,219,0,0,0,220,2,0, - 0,115,96,0,0,0,8,12,4,4,10,1,2,2,12,1, - 2,128,12,1,4,1,2,128,2,251,10,7,8,1,2,1, - 16,1,2,128,12,1,4,1,2,128,16,8,6,1,8,3, - 14,1,14,1,10,1,6,1,4,1,2,253,4,5,8,3, - 10,2,2,1,12,1,2,128,12,1,4,1,2,128,4,2, - 6,1,2,128,6,2,10,1,4,1,12,1,12,1,4,2, - 2,244,2,228,2,249,115,116,0,0,0,6,12,2,17,4, - 243,8,1,4,5,12,254,2,128,2,2,2,255,12,1,2, - 128,2,0,10,2,6,1,4,4,16,254,2,128,2,2,2, - 255,12,1,2,128,16,8,6,1,6,3,2,7,4,250,4, - 6,6,250,12,1,2,3,10,254,6,1,6,1,4,2,6, - 3,2,11,8,247,4,7,12,251,2,128,2,2,2,255,12, - 1,2,128,2,2,8,1,2,128,6,2,8,1,2,3,2, - 254,2,2,12,255,12,1,4,2,2,245,2,228,2,249,115, + 101,100,32,105,102,32,116,104,101,32,98,121,116,101,99,111, + 100,101,32,105,115,32,115,116,97,108,101,46,10,10,32,32, + 32,32,114,173,0,0,0,114,172,0,0,0,122,46,104,97, + 115,104,32,105,110,32,98,121,116,101,99,111,100,101,32,100, + 111,101,115,110,39,116,32,109,97,116,99,104,32,104,97,115, + 104,32,111,102,32,115,111,117,114,99,101,32,78,41,1,114, + 146,0,0,0,41,4,114,44,0,0,0,218,11,115,111,117, + 114,99,101,95,104,97,115,104,114,145,0,0,0,114,178,0, + 0,0,115,4,0,0,0,32,32,32,32,114,7,0,0,0, + 218,18,95,118,97,108,105,100,97,116,101,95,104,97,115,104, + 95,112,121,99,114,185,0,0,0,145,2,0,0,115,14,0, + 0,0,16,17,2,1,8,1,4,255,2,2,6,254,4,255, + 115,14,0,0,0,14,17,2,4,2,253,8,1,4,2,2, + 255,10,1,115,42,0,0,0,8,12,13,14,15,17,13,17, + 8,18,22,33,8,33,5,10,15,26,13,71,14,18,13,71, + 13,71,15,10,15,10,15,26,15,10,15,10,9,10,5,10, + 5,10,114,10,0,0,0,99,4,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,115,76,0,0, + 0,116,0,106,1,124,0,131,1,125,4,116,2,124,4,116, + 3,131,2,114,28,116,4,160,5,100,1,124,2,161,2,1, + 0,124,3,100,2,117,1,114,26,116,6,106,7,124,4,124, + 3,131,2,1,0,124,4,83,0,116,8,100,3,160,9,124, + 2,161,1,124,1,124,2,100,4,141,3,130,1,41,5,122, + 35,67,111,109,112,105,108,101,32,98,121,116,101,99,111,100, + 101,32,97,115,32,102,111,117,110,100,32,105,110,32,97,32, + 112,121,99,46,122,21,99,111,100,101,32,111,98,106,101,99, + 116,32,102,114,111,109,32,123,33,114,125,78,122,23,78,111, + 110,45,99,111,100,101,32,111,98,106,101,99,116,32,105,110, + 32,123,33,114,125,169,2,114,145,0,0,0,114,67,0,0, + 0,41,10,218,7,109,97,114,115,104,97,108,90,5,108,111, + 97,100,115,218,10,105,115,105,110,115,116,97,110,99,101,218, + 10,95,99,111,100,101,95,116,121,112,101,114,162,0,0,0, + 114,176,0,0,0,218,4,95,105,109,112,90,16,95,102,105, + 120,95,99,111,95,102,105,108,101,110,97,109,101,114,146,0, + 0,0,114,93,0,0,0,41,5,114,44,0,0,0,114,145, + 0,0,0,114,136,0,0,0,114,138,0,0,0,218,4,99, + 111,100,101,115,5,0,0,0,32,32,32,32,32,114,7,0, + 0,0,218,17,95,99,111,109,112,105,108,101,95,98,121,116, + 101,99,111,100,101,114,192,0,0,0,169,2,0,0,115,18, + 0,0,0,10,2,10,1,12,1,8,1,12,1,4,1,10, + 2,4,1,6,255,115,18,0,0,0,10,2,8,1,2,7, + 12,250,6,1,14,1,4,1,10,2,10,1,115,76,0,0, + 0,12,19,12,25,26,30,12,31,5,9,8,18,19,23,25, + 35,8,36,5,57,9,19,9,76,37,60,62,75,9,76,9, + 76,12,23,31,35,12,35,9,53,13,17,13,34,35,39,41, + 52,13,53,13,53,16,20,9,20,15,26,27,52,27,74,60, + 73,27,74,32,36,43,56,15,57,15,57,9,57,114,10,0, + 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,3,0,0,0,115,70,0,0,0,116,0,116,1, + 131,1,125,3,124,3,160,2,116,3,100,1,131,1,161,1, + 1,0,124,3,160,2,116,3,124,1,131,1,161,1,1,0, + 124,3,160,2,116,3,124,2,131,1,161,1,1,0,124,3, + 160,2,116,4,106,5,124,0,131,1,161,1,1,0,124,3, + 83,0,41,3,122,43,80,114,111,100,117,99,101,32,116,104, + 101,32,100,97,116,97,32,102,111,114,32,97,32,116,105,109, + 101,115,116,97,109,112,45,98,97,115,101,100,32,112,121,99, + 46,114,0,0,0,0,78,41,6,218,9,98,121,116,101,97, + 114,114,97,121,114,175,0,0,0,218,6,101,120,116,101,110, + 100,114,39,0,0,0,114,187,0,0,0,218,5,100,117,109, + 112,115,41,4,114,191,0,0,0,218,5,109,116,105,109,101, + 114,182,0,0,0,114,44,0,0,0,115,4,0,0,0,32, + 32,32,32,114,7,0,0,0,218,22,95,99,111,100,101,95, + 116,111,95,116,105,109,101,115,116,97,109,112,95,112,121,99, + 114,197,0,0,0,182,2,0,0,243,12,0,0,0,8,2, + 14,1,14,1,14,1,16,1,4,1,114,198,0,0,0,115, + 70,0,0,0,12,21,22,34,12,35,5,9,5,9,5,33, + 17,29,30,31,17,32,5,33,5,33,5,9,5,37,17,29, + 30,35,17,36,5,37,5,37,5,9,5,43,17,29,30,41, + 17,42,5,43,5,43,5,9,5,37,17,24,17,30,31,35, + 17,36,5,37,5,37,12,16,5,16,114,10,0,0,0,84, + 99,3,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,115,80,0,0,0,116,0,116,1,131,1, + 125,3,100,1,124,2,100,1,62,0,66,0,125,4,124,3, + 160,2,116,3,124,4,131,1,161,1,1,0,116,4,124,1, + 131,1,100,2,107,2,115,25,74,0,130,1,124,3,160,2, + 124,1,161,1,1,0,124,3,160,2,116,5,106,6,124,0, + 131,1,161,1,1,0,124,3,83,0,41,4,122,38,80,114, + 111,100,117,99,101,32,116,104,101,32,100,97,116,97,32,102, + 111,114,32,97,32,104,97,115,104,45,98,97,115,101,100,32, + 112,121,99,46,114,3,0,0,0,114,173,0,0,0,78,41, + 7,114,193,0,0,0,114,175,0,0,0,114,194,0,0,0, + 114,39,0,0,0,114,4,0,0,0,114,187,0,0,0,114, + 195,0,0,0,41,5,114,191,0,0,0,114,184,0,0,0, + 90,7,99,104,101,99,107,101,100,114,44,0,0,0,114,19, + 0,0,0,115,5,0,0,0,32,32,32,32,32,114,7,0, + 0,0,218,17,95,99,111,100,101,95,116,111,95,104,97,115, + 104,95,112,121,99,114,199,0,0,0,192,2,0,0,243,14, + 0,0,0,8,2,12,1,14,1,16,1,10,1,16,1,4, + 1,114,200,0,0,0,115,80,0,0,0,12,21,22,34,12, + 35,5,9,13,16,19,26,30,31,19,31,13,31,5,10,5, + 9,5,37,17,29,30,35,17,36,5,37,5,37,12,15,16, + 27,12,28,32,33,12,33,5,33,5,33,5,33,5,9,5, + 29,17,28,5,29,5,29,5,9,5,37,17,24,17,30,31, + 35,17,36,5,37,5,37,12,16,5,16,114,10,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,3,0,0,0,115,62,0,0,0,100,1,100,2,108,0, + 125,1,116,1,106,2,124,0,131,1,106,3,125,2,124,1, + 160,4,124,2,161,1,125,3,116,1,106,5,100,2,100,3, + 131,2,125,4,124,4,160,6,124,0,160,6,124,3,100,1, + 25,0,161,1,161,1,83,0,41,4,122,121,68,101,99,111, + 100,101,32,98,121,116,101,115,32,114,101,112,114,101,115,101, + 110,116,105,110,103,32,115,111,117,114,99,101,32,99,111,100, + 101,32,97,110,100,32,114,101,116,117,114,110,32,116,104,101, + 32,115,116,114,105,110,103,46,10,10,32,32,32,32,85,110, + 105,118,101,114,115,97,108,32,110,101,119,108,105,110,101,32, + 115,117,112,112,111,114,116,32,105,115,32,117,115,101,100,32, + 105,110,32,116,104,101,32,100,101,99,111,100,105,110,103,46, + 10,32,32,32,32,114,0,0,0,0,78,84,41,7,218,8, + 116,111,107,101,110,105,122,101,114,95,0,0,0,90,7,66, + 121,116,101,115,73,79,90,8,114,101,97,100,108,105,110,101, + 90,15,100,101,116,101,99,116,95,101,110,99,111,100,105,110, + 103,90,25,73,110,99,114,101,109,101,110,116,97,108,78,101, + 119,108,105,110,101,68,101,99,111,100,101,114,218,6,100,101, + 99,111,100,101,41,5,218,12,115,111,117,114,99,101,95,98, + 121,116,101,115,114,201,0,0,0,90,21,115,111,117,114,99, + 101,95,98,121,116,101,115,95,114,101,97,100,108,105,110,101, + 218,8,101,110,99,111,100,105,110,103,90,15,110,101,119,108, + 105,110,101,95,100,101,99,111,100,101,114,115,5,0,0,0, + 32,32,32,32,32,114,7,0,0,0,218,13,100,101,99,111, + 100,101,95,115,111,117,114,99,101,114,205,0,0,0,203,2, + 0,0,243,10,0,0,0,8,5,12,1,10,1,12,1,20, + 1,114,206,0,0,0,115,62,0,0,0,5,20,5,20,5, + 20,5,20,29,32,29,40,41,53,29,54,29,63,5,26,16, + 24,16,63,41,62,16,63,5,13,23,26,23,52,53,57,59, + 63,23,64,5,20,12,27,12,68,35,47,35,67,55,63,64, + 65,55,66,35,67,12,68,5,68,114,10,0,0,0,169,2, + 114,167,0,0,0,218,26,115,117,98,109,111,100,117,108,101, + 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, + 115,99,2,0,0,0,0,0,0,0,2,0,0,0,8,0, + 0,0,3,0,0,0,115,60,1,0,0,124,1,100,1,117, + 0,114,30,100,2,125,1,116,0,124,2,100,3,131,2,114, + 29,9,0,124,2,160,1,124,0,161,1,125,1,110,41,35, + 0,4,0,116,2,121,27,1,0,1,0,1,0,89,0,110, + 32,119,0,37,0,110,29,116,3,106,4,124,1,131,1,125, + 1,116,5,124,1,131,1,115,59,9,0,116,6,116,3,106, + 7,131,0,124,1,131,2,125,1,110,11,35,0,4,0,116, + 8,121,57,1,0,1,0,1,0,89,0,110,2,119,0,37, + 0,116,9,160,10,124,0,124,2,124,1,100,4,166,3,125, + 4,100,5,124,4,95,11,124,2,100,1,117,0,114,101,116, + 12,131,0,68,0,93,21,92,2,125,5,125,6,124,1,160, + 13,116,14,124,6,131,1,161,1,114,98,124,5,124,0,124, + 1,131,2,125,2,124,2,124,4,95,15,1,0,113,101,113, + 77,100,1,83,0,124,3,116,16,117,0,114,134,116,0,124, + 2,100,6,131,2,114,133,9,0,124,2,160,17,124,0,161, + 1,125,7,110,11,35,0,4,0,116,2,121,126,1,0,1, + 0,1,0,89,0,110,11,119,0,37,0,124,7,114,133,103, + 0,124,4,95,18,110,3,124,3,124,4,95,18,124,4,106, + 18,103,0,107,2,114,156,124,1,114,156,116,19,124,1,131, + 1,100,7,25,0,125,8,124,4,106,18,160,20,124,8,161, + 1,1,0,124,4,83,0,41,8,97,61,1,0,0,82,101, + 116,117,114,110,32,97,32,109,111,100,117,108,101,32,115,112, + 101,99,32,98,97,115,101,100,32,111,110,32,97,32,102,105, + 108,101,32,108,111,99,97,116,105,111,110,46,10,10,32,32, + 32,32,84,111,32,105,110,100,105,99,97,116,101,32,116,104, + 97,116,32,116,104,101,32,109,111,100,117,108,101,32,105,115, + 32,97,32,112,97,99,107,97,103,101,44,32,115,101,116,10, + 32,32,32,32,115,117,98,109,111,100,117,108,101,95,115,101, + 97,114,99,104,95,108,111,99,97,116,105,111,110,115,32,116, + 111,32,97,32,108,105,115,116,32,111,102,32,100,105,114,101, + 99,116,111,114,121,32,112,97,116,104,115,46,32,32,65,110, + 10,32,32,32,32,101,109,112,116,121,32,108,105,115,116,32, + 105,115,32,115,117,102,102,105,99,105,101,110,116,44,32,116, + 104,111,117,103,104,32,105,116,115,32,110,111,116,32,111,116, + 104,101,114,119,105,115,101,32,117,115,101,102,117,108,32,116, + 111,32,116,104,101,10,32,32,32,32,105,109,112,111,114,116, + 32,115,121,115,116,101,109,46,10,10,32,32,32,32,84,104, + 101,32,108,111,97,100,101,114,32,109,117,115,116,32,116,97, + 107,101,32,97,32,115,112,101,99,32,97,115,32,105,116,115, + 32,111,110,108,121,32,95,95,105,110,105,116,95,95,40,41, + 32,97,114,103,46,10,10,32,32,32,32,78,122,9,60,117, + 110,107,110,111,119,110,62,218,12,103,101,116,95,102,105,108, + 101,110,97,109,101,169,1,218,6,111,114,105,103,105,110,84, + 218,10,105,115,95,112,97,99,107,97,103,101,114,0,0,0, + 0,41,21,114,156,0,0,0,114,209,0,0,0,114,146,0, + 0,0,114,21,0,0,0,114,107,0,0,0,114,90,0,0, + 0,114,69,0,0,0,114,86,0,0,0,114,80,0,0,0, + 114,162,0,0,0,218,10,77,111,100,117,108,101,83,112,101, + 99,90,13,95,115,101,116,95,102,105,108,101,97,116,116,114, + 218,27,95,103,101,116,95,115,117,112,112,111,114,116,101,100, + 95,102,105,108,101,95,108,111,97,100,101,114,115,114,60,0, + 0,0,114,140,0,0,0,114,167,0,0,0,218,9,95,80, + 79,80,85,76,65,84,69,114,212,0,0,0,114,208,0,0, + 0,114,76,0,0,0,114,63,0,0,0,41,9,114,145,0, + 0,0,90,8,108,111,99,97,116,105,111,110,114,167,0,0, + 0,114,208,0,0,0,218,4,115,112,101,99,218,12,108,111, + 97,100,101,114,95,99,108,97,115,115,218,8,115,117,102,102, + 105,120,101,115,114,212,0,0,0,90,7,100,105,114,110,97, + 109,101,115,9,0,0,0,32,32,32,32,32,32,32,32,32, + 114,7,0,0,0,218,23,115,112,101,99,95,102,114,111,109, + 95,102,105,108,101,95,108,111,99,97,116,105,111,110,114,219, + 0,0,0,220,2,0,0,115,96,0,0,0,8,12,4,4, + 10,1,2,2,12,1,2,128,12,1,4,1,2,255,2,128, + 2,252,10,7,8,1,2,1,16,1,2,128,12,1,4,1, + 2,255,2,128,16,9,6,1,8,3,14,1,14,1,10,1, + 6,1,4,1,2,253,4,5,8,3,10,2,2,1,12,1, + 2,128,12,1,4,1,2,255,2,128,4,3,6,1,2,128, + 6,2,10,1,4,1,12,1,12,1,4,2,115,110,0,0, + 0,6,12,2,17,4,243,8,1,4,5,12,254,2,128,2, + 2,2,255,14,1,2,128,2,0,10,2,6,1,4,4,16, + 254,2,128,2,2,2,255,14,1,2,128,16,8,6,1,6, + 3,2,7,4,250,4,6,6,250,12,1,2,3,10,254,6, + 1,6,1,4,2,6,3,2,11,8,247,4,7,12,251,2, + 128,2,2,2,255,14,1,2,128,2,2,8,1,2,128,6, + 2,8,1,2,3,2,254,2,2,12,255,12,1,4,2,115, 60,1,0,0,8,16,20,24,8,24,5,21,20,31,9,17, 12,19,20,26,28,42,12,43,9,21,13,21,28,34,28,53, 48,52,28,53,17,25,17,25,0,0,13,21,20,31,13,21, - 13,21,13,21,13,21,17,21,17,21,0,0,9,21,20,23, - 20,30,31,39,20,40,9,17,16,27,28,36,16,37,9,21, - 13,21,28,38,39,42,39,49,39,51,53,61,28,62,17,25, - 17,25,0,0,13,21,20,27,13,21,13,21,13,21,13,21, - 17,21,17,21,0,0,12,22,12,64,34,38,40,46,55,63, - 12,64,12,64,5,9,26,30,5,9,5,23,8,14,18,22, - 8,22,5,24,39,66,39,68,9,24,9,24,13,35,13,25, - 27,35,16,24,16,50,34,39,40,48,34,49,16,50,13,22, - 26,38,39,43,45,53,26,54,17,23,31,37,17,21,17,28, - 17,22,17,22,13,22,20,24,20,24,8,34,38,47,8,47, - 5,69,12,19,20,26,28,40,12,41,9,57,13,57,30,36, - 30,53,48,52,30,53,17,27,17,27,0,0,13,21,20,31, - 13,21,13,21,13,21,13,21,17,21,17,21,0,0,20,30, - 17,57,55,57,21,25,21,52,0,0,43,69,9,13,9,40, - 8,12,8,39,43,45,8,45,5,60,12,20,9,60,23,34, - 35,43,23,44,45,46,23,47,13,20,13,17,13,44,13,60, - 52,59,13,60,13,60,12,16,5,16,13,21,13,21,13,21, - 115,44,0,0,0,140,5,18,0,146,7,27,7,167,7,47, - 0,175,7,56,7,193,45,5,65,51,0,193,51,7,65,60, - 7,194,27,1,65,60,7,194,28,1,56,7,194,29,1,27, - 7,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,115,80,0,0,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,90,4,100,3,90,5,101, - 6,111,15,100,4,101,7,118,0,90,8,101,9,100,5,132, - 0,131,1,90,10,101,11,100,6,132,0,131,1,90,12,101, - 11,100,10,100,8,132,1,131,1,90,13,101,11,100,11,100, - 9,132,1,131,1,90,14,100,7,83,0,41,12,218,21,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,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,109,111,100,117,108, - 101,115,32,100,101,99,108,97,114,101,100,32,105,110,32,116, - 104,101,32,87,105,110,100,111,119,115,32,114,101,103,105,115, - 116,114,121,46,122,59,83,111,102,116,119,97,114,101,92,80, - 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101, - 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77, - 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101, - 125,122,65,83,111,102,116,119,97,114,101,92,80,121,116,104, - 111,110,92,80,121,116,104,111,110,67,111,114,101,92,123,115, - 121,115,95,118,101,114,115,105,111,110,125,92,77,111,100,117, - 108,101,115,92,123,102,117,108,108,110,97,109,101,125,92,68, - 101,98,117,103,122,6,95,100,46,112,121,100,99,1,0,0, - 0,0,0,0,0,0,0,0,0,8,0,0,0,3,0,0, - 0,115,52,0,0,0,9,0,116,0,106,1,116,0,106,2, - 124,0,131,2,83,0,35,0,4,0,116,3,121,25,1,0, - 1,0,1,0,116,0,106,1,116,0,106,4,124,0,131,2, - 6,0,89,0,83,0,37,0,119,0,114,71,0,0,0,41, - 5,218,6,119,105,110,114,101,103,90,7,79,112,101,110,75, - 101,121,90,17,72,75,69,89,95,67,85,82,82,69,78,84, - 95,85,83,69,82,114,80,0,0,0,90,18,72,75,69,89, - 95,76,79,67,65,76,95,77,65,67,72,73,78,69,114,22, - 0,0,0,115,1,0,0,0,32,114,7,0,0,0,218,14, - 95,111,112,101,110,95,114,101,103,105,115,116,114,121,122,36, - 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70, - 105,110,100,101,114,46,95,111,112,101,110,95,114,101,103,105, - 115,116,114,121,49,3,0,0,115,14,0,0,0,2,2,14, - 1,2,128,12,1,18,1,2,128,2,255,115,16,0,0,0, - 2,5,14,254,2,128,2,2,2,255,26,1,2,128,2,0, - 115,52,0,0,0,9,66,20,26,20,34,35,41,35,59,61, - 64,20,65,13,65,0,0,9,66,16,23,9,66,9,66,9, - 66,9,66,20,26,20,34,35,41,35,60,62,65,20,66,13, - 66,13,66,13,66,0,0,9,66,115,12,0,0,0,129,6, - 8,0,136,14,24,7,153,1,24,7,99,2,0,0,0,0, - 0,0,0,0,0,0,0,9,0,0,0,3,0,0,0,115, - 140,0,0,0,124,0,106,0,114,7,124,0,106,1,125,2, - 110,3,124,0,106,2,125,2,124,2,160,3,124,1,100,1, - 116,4,106,5,100,0,100,2,133,2,25,0,22,0,100,3, - 166,2,125,3,9,0,124,0,160,6,124,3,161,1,53,0, - 125,4,116,7,106,8,124,4,100,4,131,2,125,5,100,0, - 4,0,4,0,131,3,1,0,124,5,83,0,35,0,49,0, - 115,49,119,4,37,0,1,0,1,0,1,0,89,0,1,0, - 1,0,9,0,124,5,83,0,35,0,4,0,116,9,121,69, - 1,0,1,0,1,0,89,0,100,0,83,0,37,0,119,0, - 41,5,78,122,5,37,100,46,37,100,114,47,0,0,0,41, - 2,114,166,0,0,0,90,11,115,121,115,95,118,101,114,115, - 105,111,110,114,11,0,0,0,41,10,218,11,68,69,66,85, - 71,95,66,85,73,76,68,218,18,82,69,71,73,83,84,82, - 89,95,75,69,89,95,68,69,66,85,71,218,12,82,69,71, - 73,83,84,82,89,95,75,69,89,114,93,0,0,0,114,18, - 0,0,0,218,12,118,101,114,115,105,111,110,95,105,110,102, - 111,114,222,0,0,0,114,221,0,0,0,90,10,81,117,101, - 114,121,86,97,108,117,101,114,80,0,0,0,41,6,218,3, - 99,108,115,114,166,0,0,0,90,12,114,101,103,105,115,116, - 114,121,95,107,101,121,114,23,0,0,0,90,4,104,107,101, - 121,218,8,102,105,108,101,112,97,116,104,115,6,0,0,0, - 32,32,32,32,32,32,114,7,0,0,0,218,16,95,115,101, - 97,114,99,104,95,114,101,103,105,115,116,114,121,122,38,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105, - 110,100,101,114,46,95,115,101,97,114,99,104,95,114,101,103, - 105,115,116,114,121,56,3,0,0,115,40,0,0,0,6,2, - 8,1,6,2,6,1,16,1,6,255,2,2,12,1,12,1, - 10,255,4,4,8,252,2,128,14,0,4,4,2,128,12,254, - 6,1,2,128,2,255,115,50,0,0,0,4,2,2,3,8, - 254,6,2,2,1,2,1,2,255,20,1,2,255,2,6,8, - 253,2,1,2,255,22,1,4,3,8,253,2,128,14,0,4, - 3,2,128,2,255,2,255,14,1,2,128,2,0,115,140,0, - 0,0,12,15,12,27,9,44,28,31,28,50,13,25,13,25, - 28,31,28,44,13,25,15,27,15,78,44,52,47,54,57,60, - 57,73,74,76,75,76,74,76,57,77,47,77,15,78,15,78, - 9,12,9,24,18,21,18,41,37,40,18,41,13,55,45,49, - 28,34,28,45,46,50,52,54,28,55,17,25,13,55,13,55, - 13,55,13,55,13,55,16,24,9,24,13,55,13,55,13,55, - 13,55,0,0,13,55,13,55,13,55,13,55,13,55,13,55, - 13,55,16,24,9,24,0,0,9,24,16,23,9,24,9,24, - 9,24,9,24,20,24,20,24,20,24,0,0,9,24,115,39, - 0,0,0,153,5,58,0,158,7,44,3,165,5,58,0,172, - 4,48,11,176,1,58,0,177,3,48,11,180,3,58,0,186, - 7,65,4,7,193,5,1,65,4,7,78,99,4,0,0,0, - 0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0, - 115,122,0,0,0,124,0,160,0,124,1,161,1,125,4,124, - 4,100,0,117,0,114,11,100,0,83,0,9,0,116,1,124, - 4,131,1,1,0,110,11,35,0,4,0,116,2,121,60,1, - 0,1,0,1,0,89,0,100,0,83,0,37,0,116,3,131, - 0,68,0,93,26,92,2,125,5,125,6,124,4,160,4,116, - 5,124,6,131,1,161,1,114,57,116,6,160,7,124,1,124, - 5,124,1,124,4,131,2,124,4,100,1,166,3,125,7,124, - 7,2,0,1,0,83,0,113,31,100,0,83,0,119,0,41, - 2,78,114,210,0,0,0,41,8,114,229,0,0,0,114,78, - 0,0,0,114,80,0,0,0,114,214,0,0,0,114,60,0, - 0,0,114,140,0,0,0,114,162,0,0,0,218,16,115,112, - 101,99,95,102,114,111,109,95,108,111,97,100,101,114,41,8, - 114,227,0,0,0,114,166,0,0,0,114,67,0,0,0,218, - 6,116,97,114,103,101,116,114,228,0,0,0,114,167,0,0, - 0,114,218,0,0,0,114,216,0,0,0,115,8,0,0,0, - 32,32,32,32,32,32,32,32,114,7,0,0,0,218,9,102, - 105,110,100,95,115,112,101,99,122,31,87,105,110,100,111,119, - 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46, - 102,105,110,100,95,115,112,101,99,71,3,0,0,115,38,0, - 0,0,10,2,8,1,4,1,2,1,10,1,2,128,12,1, - 6,1,2,128,14,1,14,1,6,1,8,1,2,1,6,254, - 8,3,2,252,4,255,2,254,115,46,0,0,0,10,2,6, - 1,6,1,2,4,10,254,2,128,2,2,2,255,14,1,2, - 128,4,1,4,5,6,251,12,1,2,4,2,253,2,2,2, - 254,8,1,6,1,2,254,14,3,2,250,115,122,0,0,0, - 20,23,20,50,41,49,20,50,9,17,12,20,24,28,12,28, - 9,24,20,24,20,24,9,24,13,23,24,32,13,33,13,33, - 13,33,0,0,9,24,16,23,9,24,9,24,9,24,9,24, - 20,24,20,24,20,24,0,0,33,60,33,62,9,28,9,28, - 13,29,13,19,21,29,16,24,16,50,34,39,40,48,34,49, - 16,50,13,28,24,34,24,68,52,60,52,58,59,67,69,77, - 52,78,59,67,24,68,24,68,17,21,24,28,17,28,17,28, - 17,28,13,28,9,28,9,28,9,24,115,12,0,0,0,140, - 4,17,0,145,7,27,7,188,1,27,7,99,3,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 115,42,0,0,0,116,0,106,1,100,1,116,2,131,2,1, - 0,124,0,160,3,124,1,124,2,161,2,125,3,124,3,100, - 2,117,1,114,19,124,3,106,4,83,0,100,2,83,0,41, - 3,122,106,70,105,110,100,32,109,111,100,117,108,101,32,110, - 97,109,101,100,32,105,110,32,116,104,101,32,114,101,103,105, - 115,116,114,121,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,122,112,87, - 105,110,100,111,119,115,82,101,103,105,115,116,114,121,70,105, - 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101, - 40,41,32,105,115,32,100,101,112,114,101,99,97,116,101,100, - 32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32, - 114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111, - 110,32,51,46,49,50,59,32,117,115,101,32,102,105,110,100, - 95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,78, - 169,5,114,103,0,0,0,114,104,0,0,0,114,105,0,0, - 0,114,232,0,0,0,114,167,0,0,0,169,4,114,227,0, - 0,0,114,166,0,0,0,114,67,0,0,0,114,216,0,0, - 0,115,4,0,0,0,32,32,32,32,114,7,0,0,0,218, - 11,102,105,110,100,95,109,111,100,117,108,101,122,33,87,105, + 13,21,13,21,13,21,17,21,17,21,13,21,0,0,9,21, + 20,23,20,30,31,39,20,40,9,17,16,27,28,36,16,37, + 9,21,13,21,28,38,39,42,39,49,39,51,53,61,28,62, + 17,25,17,25,0,0,13,21,20,27,13,21,13,21,13,21, + 13,21,17,21,17,21,13,21,0,0,12,22,12,64,34,38, + 40,46,55,63,12,64,12,64,5,9,26,30,5,9,5,23, + 8,14,18,22,8,22,5,24,39,66,39,68,9,24,9,24, + 13,35,13,25,27,35,16,24,16,50,34,39,40,48,34,49, + 16,50,13,22,26,38,39,43,45,53,26,54,17,23,31,37, + 17,21,17,28,17,22,17,22,13,22,20,24,20,24,8,34, + 38,47,8,47,5,69,12,19,20,26,28,40,12,41,9,57, + 13,57,30,36,30,53,48,52,30,53,17,27,17,27,0,0, + 13,21,20,31,13,21,13,21,13,21,13,21,17,21,17,21, + 13,21,0,0,20,30,17,57,55,57,21,25,21,52,0,0, + 43,69,9,13,9,40,8,12,8,39,43,45,8,45,5,60, + 12,20,9,60,23,34,35,43,23,44,45,46,23,47,13,20, + 13,17,13,44,13,60,52,59,13,60,13,60,12,16,5,16, + 115,42,0,0,0,140,5,18,0,146,7,28,7,155,1,28, + 7,168,7,48,0,176,7,58,7,185,1,58,7,193,47,5, + 65,53,0,193,53,7,65,63,7,193,62,1,65,63,7,99, + 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 0,0,0,0,115,80,0,0,0,101,0,90,1,100,0,90, + 2,100,1,90,3,100,2,90,4,100,3,90,5,101,6,111, + 15,100,4,101,7,118,0,90,8,101,9,100,5,132,0,131, + 1,90,10,101,11,100,6,132,0,131,1,90,12,101,11,100, + 10,100,8,132,1,131,1,90,13,101,11,100,11,100,9,132, + 1,131,1,90,14,100,7,83,0,41,12,218,21,87,105,110, + 100,111,119,115,82,101,103,105,115,116,114,121,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,109,111,100,117,108,101,115, + 32,100,101,99,108,97,114,101,100,32,105,110,32,116,104,101, + 32,87,105,110,100,111,119,115,32,114,101,103,105,115,116,114, + 121,46,122,59,83,111,102,116,119,97,114,101,92,80,121,116, + 104,111,110,92,80,121,116,104,111,110,67,111,114,101,92,123, + 115,121,115,95,118,101,114,115,105,111,110,125,92,77,111,100, + 117,108,101,115,92,123,102,117,108,108,110,97,109,101,125,122, + 65,83,111,102,116,119,97,114,101,92,80,121,116,104,111,110, + 92,80,121,116,104,111,110,67,111,114,101,92,123,115,121,115, + 95,118,101,114,115,105,111,110,125,92,77,111,100,117,108,101, + 115,92,123,102,117,108,108,110,97,109,101,125,92,68,101,98, + 117,103,122,6,95,100,46,112,121,100,99,1,0,0,0,0, + 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,115, + 52,0,0,0,9,0,116,0,106,1,116,0,106,2,124,0, + 131,2,83,0,35,0,4,0,116,3,121,24,1,0,1,0, + 1,0,116,0,106,1,116,0,106,4,124,0,131,2,6,0, + 89,0,83,0,119,0,37,0,114,71,0,0,0,41,5,218, + 6,119,105,110,114,101,103,90,7,79,112,101,110,75,101,121, + 90,17,72,75,69,89,95,67,85,82,82,69,78,84,95,85, + 83,69,82,114,80,0,0,0,90,18,72,75,69,89,95,76, + 79,67,65,76,95,77,65,67,72,73,78,69,114,22,0,0, + 0,115,1,0,0,0,32,114,7,0,0,0,218,14,95,111, + 112,101,110,95,114,101,103,105,115,116,114,121,122,36,87,105, 110,100,111,119,115,82,101,103,105,115,116,114,121,70,105,110, - 100,101,114,46,102,105,110,100,95,109,111,100,117,108,101,87, - 3,0,0,115,14,0,0,0,6,7,2,2,4,254,12,3, - 8,1,6,1,4,2,115,16,0,0,0,4,7,2,1,6, - 1,12,1,6,1,2,3,6,254,4,2,115,42,0,0,0, - 9,18,9,23,24,84,24,42,9,43,9,43,16,19,16,45, - 30,38,40,44,16,45,9,13,12,16,24,28,12,28,9,24, - 20,24,20,31,13,31,20,24,20,24,114,10,0,0,0,169, - 2,78,78,114,71,0,0,0,41,15,114,153,0,0,0,114, - 152,0,0,0,114,154,0,0,0,114,155,0,0,0,114,225, - 0,0,0,114,224,0,0,0,218,11,95,77,83,95,87,73, - 78,68,79,87,83,218,18,69,88,84,69,78,83,73,79,78, - 95,83,85,70,70,73,88,69,83,114,223,0,0,0,218,12, - 115,116,97,116,105,99,109,101,116,104,111,100,114,222,0,0, - 0,218,11,99,108,97,115,115,109,101,116,104,111,100,114,229, - 0,0,0,114,232,0,0,0,114,235,0,0,0,114,13,0, - 0,0,114,10,0,0,0,114,7,0,0,0,114,220,0,0, - 0,114,220,0,0,0,37,3,0,0,115,30,0,0,0,8, - 0,4,2,2,3,2,255,2,4,2,255,12,3,2,2,8, - 1,2,6,8,1,2,14,10,1,2,15,14,1,115,84,0, - 0,0,0,129,0,129,0,129,0,129,0,129,0,129,8,213, - 0,127,0,127,0,127,0,127,0,127,0,127,2,45,0,129, - 0,129,0,129,0,129,0,129,0,129,2,211,0,127,0,127, - 0,127,0,127,0,127,0,127,2,49,2,254,2,5,2,254, - 12,3,2,2,8,5,2,2,8,13,2,2,2,1,8,13, - 2,2,2,1,12,13,115,80,0,0,0,1,1,1,1,1, - 1,1,1,5,73,1,1,9,32,5,17,9,39,5,23,20, - 31,20,66,36,44,48,66,36,66,5,16,6,18,5,66,5, - 66,5,66,5,66,6,17,5,24,5,24,5,24,5,24,6, - 17,39,43,5,28,5,28,5,28,5,28,6,17,41,45,5, - 24,5,24,5,24,5,24,5,24,5,24,114,10,0,0,0, - 114,220,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,0,0,0,0,115,40,0,0,0,101, - 0,90,1,100,0,90,2,100,1,90,3,100,2,132,0,90, - 4,100,3,132,0,90,5,100,4,132,0,90,6,100,5,132, - 0,90,7,100,6,83,0,41,7,218,13,95,76,111,97,100, - 101,114,66,97,115,105,99,115,122,83,66,97,115,101,32,99, - 108,97,115,115,32,111,102,32,99,111,109,109,111,110,32,99, - 111,100,101,32,110,101,101,100,101,100,32,98,121,32,98,111, - 116,104,32,83,111,117,114,99,101,76,111,97,100,101,114,32, - 97,110,100,10,32,32,32,32,83,111,117,114,99,101,108,101, - 115,115,70,105,108,101,76,111,97,100,101,114,46,99,2,0, - 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,0, - 0,0,115,64,0,0,0,116,0,124,0,160,1,124,1,161, - 1,131,1,100,1,25,0,125,2,124,2,160,2,100,2,100, - 1,161,2,100,3,25,0,125,3,124,1,160,3,100,2,161, - 1,100,4,25,0,125,4,124,3,100,5,107,2,111,31,124, - 4,100,5,107,3,83,0,41,7,122,141,67,111,110,99,114, - 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,32,111,102,32,73,110,115,112,101,99,116,76,111,97, - 100,101,114,46,105,115,95,112,97,99,107,97,103,101,32,98, - 121,32,99,104,101,99,107,105,110,103,32,105,102,10,32,32, - 32,32,32,32,32,32,116,104,101,32,112,97,116,104,32,114, - 101,116,117,114,110,101,100,32,98,121,32,103,101,116,95,102, - 105,108,101,110,97,109,101,32,104,97,115,32,97,32,102,105, - 108,101,110,97,109,101,32,111,102,32,39,95,95,105,110,105, - 116,95,95,46,112,121,39,46,114,3,0,0,0,114,101,0, - 0,0,114,0,0,0,0,114,47,0,0,0,218,8,95,95, - 105,110,105,116,95,95,78,41,4,114,76,0,0,0,114,209, - 0,0,0,114,129,0,0,0,114,108,0,0,0,41,5,114, - 147,0,0,0,114,166,0,0,0,114,124,0,0,0,90,13, - 102,105,108,101,110,97,109,101,95,98,97,115,101,90,9,116, - 97,105,108,95,110,97,109,101,115,5,0,0,0,32,32,32, - 32,32,114,7,0,0,0,114,212,0,0,0,122,24,95,76, - 111,97,100,101,114,66,97,115,105,99,115,46,105,115,95,112, - 97,99,107,97,103,101,109,3,0,0,243,8,0,0,0,18, - 3,16,1,14,1,16,1,114,243,0,0,0,115,64,0,0, - 0,20,31,32,36,32,59,50,58,32,59,20,60,61,62,20, - 63,9,17,25,33,25,48,41,44,46,47,25,48,49,50,25, - 51,9,22,21,29,21,45,41,44,21,45,46,47,21,48,9, - 18,16,29,33,43,16,43,16,71,48,57,61,71,48,71,9, - 71,114,10,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,1,0,0,0,3,0,0,0,114,26,0,0,0, - 169,2,122,42,85,115,101,32,100,101,102,97,117,108,116,32, - 115,101,109,97,110,116,105,99,115,32,102,111,114,32,109,111, - 100,117,108,101,32,99,114,101,97,116,105,111,110,46,78,114, - 13,0,0,0,169,2,114,147,0,0,0,114,216,0,0,0, - 115,2,0,0,0,32,32,114,7,0,0,0,218,13,99,114, - 101,97,116,101,95,109,111,100,117,108,101,122,27,95,76,111, - 97,100,101,114,66,97,115,105,99,115,46,99,114,101,97,116, - 101,95,109,111,100,117,108,101,117,3,0,0,243,2,0,0, - 0,4,0,243,2,0,0,0,4,128,115,4,0,0,0,0, - 0,0,0,114,10,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,115,56,0, - 0,0,124,0,160,0,124,1,106,1,161,1,125,2,124,2, - 100,1,117,0,114,18,116,2,100,2,160,3,124,1,106,1, - 161,1,131,1,130,1,116,4,160,5,116,6,124,2,124,1, - 106,7,161,3,1,0,100,1,83,0,41,3,122,19,69,120, - 101,99,117,116,101,32,116,104,101,32,109,111,100,117,108,101, - 46,78,122,52,99,97,110,110,111,116,32,108,111,97,100,32, - 109,111,100,117,108,101,32,123,33,114,125,32,119,104,101,110, - 32,103,101,116,95,99,111,100,101,40,41,32,114,101,116,117, - 114,110,115,32,78,111,110,101,41,8,218,8,103,101,116,95, - 99,111,100,101,114,153,0,0,0,114,146,0,0,0,114,93, - 0,0,0,114,162,0,0,0,218,25,95,99,97,108,108,95, - 119,105,116,104,95,102,114,97,109,101,115,95,114,101,109,111, - 118,101,100,218,4,101,120,101,99,114,159,0,0,0,41,3, - 114,147,0,0,0,218,6,109,111,100,117,108,101,114,191,0, - 0,0,115,3,0,0,0,32,32,32,114,7,0,0,0,218, - 11,101,120,101,99,95,109,111,100,117,108,101,122,25,95,76, - 111,97,100,101,114,66,97,115,105,99,115,46,101,120,101,99, - 95,109,111,100,117,108,101,120,3,0,0,115,12,0,0,0, - 12,2,8,1,4,1,8,1,4,255,20,2,115,12,0,0, - 0,12,2,6,1,2,2,2,255,14,1,20,1,115,56,0, - 0,0,16,20,16,46,30,36,30,45,16,46,9,13,12,16, - 20,24,12,24,9,70,19,30,31,45,31,69,53,59,53,68, - 31,69,19,70,13,70,9,19,9,74,46,50,52,56,58,64, - 58,73,9,74,9,74,9,74,9,74,114,10,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,115,12,0,0,0,116,0,160,1,124,0,124, - 1,161,2,83,0,41,2,122,26,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,78,41,2,114,162,0,0,0,218,17,95,108,111, - 97,100,95,109,111,100,117,108,101,95,115,104,105,109,169,2, - 114,147,0,0,0,114,166,0,0,0,115,2,0,0,0,32, - 32,114,7,0,0,0,218,11,108,111,97,100,95,109,111,100, - 117,108,101,122,25,95,76,111,97,100,101,114,66,97,115,105, - 99,115,46,108,111,97,100,95,109,111,100,117,108,101,128,3, - 0,0,243,2,0,0,0,12,3,114,1,1,0,0,115,12, - 0,0,0,16,26,16,60,45,49,51,59,16,60,9,60,114, - 10,0,0,0,78,41,8,114,153,0,0,0,114,152,0,0, - 0,114,154,0,0,0,114,155,0,0,0,114,212,0,0,0, - 114,246,0,0,0,114,253,0,0,0,114,0,1,0,0,114, - 13,0,0,0,114,10,0,0,0,114,7,0,0,0,114,241, - 0,0,0,114,241,0,0,0,104,3,0,0,115,12,0,0, - 0,8,0,4,2,6,3,6,8,6,3,10,8,115,62,0, - 0,0,0,129,0,129,0,129,0,129,0,129,0,129,8,146, - 0,127,0,127,0,127,0,127,0,127,0,127,2,113,0,129, - 0,129,0,129,0,129,0,129,0,129,2,143,0,127,0,127, - 0,127,0,127,0,127,0,127,6,121,6,3,6,8,10,5, - 115,40,0,0,0,1,1,1,1,1,1,1,1,5,29,1, - 1,5,71,5,71,5,71,5,57,5,57,5,57,5,74,5, - 74,5,74,5,60,5,60,5,60,5,60,5,60,114,10,0, - 0,0,114,241,0,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,0,0,0,0,115,60,0,0, - 0,101,0,90,1,100,0,90,2,100,1,132,0,90,3,100, - 2,132,0,90,4,100,3,132,0,90,5,100,4,132,0,90, - 6,100,5,132,0,90,7,100,6,100,7,156,1,100,8,132, - 2,90,8,100,9,132,0,90,9,100,10,83,0,41,11,218, - 12,83,111,117,114,99,101,76,111,97,100,101,114,99,2,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,115,4,0,0,0,116,0,130,1,41,2,122,165,79, - 112,116,105,111,110,97,108,32,109,101,116,104,111,100,32,116, - 104,97,116,32,114,101,116,117,114,110,115,32,116,104,101,32, - 109,111,100,105,102,105,99,97,116,105,111,110,32,116,105,109, - 101,32,40,97,110,32,105,110,116,41,32,102,111,114,32,116, - 104,101,10,32,32,32,32,32,32,32,32,115,112,101,99,105, - 102,105,101,100,32,112,97,116,104,32,40,97,32,115,116,114, - 41,46,10,10,32,32,32,32,32,32,32,32,82,97,105,115, - 101,115,32,79,83,69,114,114,111,114,32,119,104,101,110,32, - 116,104,101,32,112,97,116,104,32,99,97,110,110,111,116,32, - 98,101,32,104,97,110,100,108,101,100,46,10,32,32,32,32, - 32,32,32,32,78,41,1,114,80,0,0,0,169,2,114,147, - 0,0,0,114,67,0,0,0,115,2,0,0,0,32,32,114, - 7,0,0,0,218,10,112,97,116,104,95,109,116,105,109,101, - 122,23,83,111,117,114,99,101,76,111,97,100,101,114,46,112, - 97,116,104,95,109,116,105,109,101,136,3,0,0,243,2,0, - 0,0,4,6,114,5,1,0,0,115,4,0,0,0,15,22, - 9,22,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,115,14,0,0, - 0,100,1,124,0,160,0,124,1,161,1,105,1,83,0,41, - 3,97,158,1,0,0,79,112,116,105,111,110,97,108,32,109, - 101,116,104,111,100,32,114,101,116,117,114,110,105,110,103,32, - 97,32,109,101,116,97,100,97,116,97,32,100,105,99,116,32, - 102,111,114,32,116,104,101,32,115,112,101,99,105,102,105,101, - 100,10,32,32,32,32,32,32,32,32,112,97,116,104,32,40, - 97,32,115,116,114,41,46,10,10,32,32,32,32,32,32,32, - 32,80,111,115,115,105,98,108,101,32,107,101,121,115,58,10, - 32,32,32,32,32,32,32,32,45,32,39,109,116,105,109,101, - 39,32,40,109,97,110,100,97,116,111,114,121,41,32,105,115, - 32,116,104,101,32,110,117,109,101,114,105,99,32,116,105,109, - 101,115,116,97,109,112,32,111,102,32,108,97,115,116,32,115, - 111,117,114,99,101,10,32,32,32,32,32,32,32,32,32,32, - 99,111,100,101,32,109,111,100,105,102,105,99,97,116,105,111, - 110,59,10,32,32,32,32,32,32,32,32,45,32,39,115,105, - 122,101,39,32,40,111,112,116,105,111,110,97,108,41,32,105, - 115,32,116,104,101,32,115,105,122,101,32,105,110,32,98,121, - 116,101,115,32,111,102,32,116,104,101,32,115,111,117,114,99, - 101,32,99,111,100,101,46,10,10,32,32,32,32,32,32,32, - 32,73,109,112,108,101,109,101,110,116,105,110,103,32,116,104, - 105,115,32,109,101,116,104,111,100,32,97,108,108,111,119,115, - 32,116,104,101,32,108,111,97,100,101,114,32,116,111,32,114, - 101,97,100,32,98,121,116,101,99,111,100,101,32,102,105,108, - 101,115,46,10,32,32,32,32,32,32,32,32,82,97,105,115, - 101,115,32,79,83,69,114,114,111,114,32,119,104,101,110,32, - 116,104,101,32,112,97,116,104,32,99,97,110,110,111,116,32, - 98,101,32,104,97,110,100,108,101,100,46,10,32,32,32,32, - 32,32,32,32,114,196,0,0,0,78,41,1,114,4,1,0, - 0,114,3,1,0,0,115,2,0,0,0,32,32,114,7,0, - 0,0,218,10,112,97,116,104,95,115,116,97,116,115,122,23, - 83,111,117,114,99,101,76,111,97,100,101,114,46,112,97,116, - 104,95,115,116,97,116,115,144,3,0,0,243,2,0,0,0, - 14,12,114,7,1,0,0,115,14,0,0,0,17,24,26,30, - 26,47,42,46,26,47,16,48,9,48,114,10,0,0,0,99, - 4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,115,12,0,0,0,124,0,160,0,124,2,124, - 3,161,2,83,0,41,2,122,228,79,112,116,105,111,110,97, - 108,32,109,101,116,104,111,100,32,119,104,105,99,104,32,119, - 114,105,116,101,115,32,100,97,116,97,32,40,98,121,116,101, - 115,41,32,116,111,32,97,32,102,105,108,101,32,112,97,116, + 100,101,114,46,95,111,112,101,110,95,114,101,103,105,115,116, + 114,121,49,3,0,0,115,14,0,0,0,2,2,14,1,2, + 128,12,1,18,1,2,255,2,128,115,14,0,0,0,2,5, + 14,254,2,128,2,2,2,255,28,1,2,128,115,52,0,0, + 0,9,66,20,26,20,34,35,41,35,59,61,64,20,65,13, + 65,0,0,9,66,16,23,9,66,9,66,9,66,9,66,20, + 26,20,34,35,41,35,60,62,65,20,66,13,66,13,66,13, + 66,9,66,0,0,115,12,0,0,0,129,6,8,0,136,14, + 25,7,152,1,25,7,99,2,0,0,0,0,0,0,0,0, + 0,0,0,9,0,0,0,3,0,0,0,115,140,0,0,0, + 124,0,106,0,114,7,124,0,106,1,125,2,110,3,124,0, + 106,2,125,2,124,2,160,3,124,1,100,1,116,4,106,5, + 100,0,100,2,133,2,25,0,22,0,100,3,166,2,125,3, + 9,0,124,0,160,6,124,3,161,1,53,0,125,4,116,7, + 106,8,124,4,100,4,131,2,125,5,100,0,4,0,4,0, + 131,3,1,0,124,5,83,0,35,0,49,0,115,49,119,4, + 37,0,1,0,1,0,1,0,89,0,1,0,1,0,9,0, + 124,5,83,0,35,0,4,0,116,9,121,68,1,0,1,0, + 1,0,89,0,100,0,83,0,119,0,37,0,41,5,78,122, + 5,37,100,46,37,100,114,47,0,0,0,41,2,114,166,0, + 0,0,90,11,115,121,115,95,118,101,114,115,105,111,110,114, + 11,0,0,0,41,10,218,11,68,69,66,85,71,95,66,85, + 73,76,68,218,18,82,69,71,73,83,84,82,89,95,75,69, + 89,95,68,69,66,85,71,218,12,82,69,71,73,83,84,82, + 89,95,75,69,89,114,93,0,0,0,114,18,0,0,0,218, + 12,118,101,114,115,105,111,110,95,105,110,102,111,114,222,0, + 0,0,114,221,0,0,0,90,10,81,117,101,114,121,86,97, + 108,117,101,114,80,0,0,0,41,6,218,3,99,108,115,114, + 166,0,0,0,90,12,114,101,103,105,115,116,114,121,95,107, + 101,121,114,23,0,0,0,90,4,104,107,101,121,218,8,102, + 105,108,101,112,97,116,104,115,6,0,0,0,32,32,32,32, + 32,32,114,7,0,0,0,218,16,95,115,101,97,114,99,104, + 95,114,101,103,105,115,116,114,121,122,38,87,105,110,100,111, + 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114, + 46,95,115,101,97,114,99,104,95,114,101,103,105,115,116,114, + 121,56,3,0,0,115,40,0,0,0,6,2,8,1,6,2, + 6,1,16,1,6,255,2,2,12,1,12,1,10,255,4,4, + 8,252,2,128,14,0,4,4,2,128,12,254,6,1,2,255, + 2,128,115,48,0,0,0,4,2,2,3,8,254,6,2,2, + 1,2,1,2,255,20,1,2,255,2,6,8,253,2,1,2, + 255,22,1,4,3,8,253,2,128,14,0,4,3,2,128,2, + 255,2,255,16,1,2,128,115,140,0,0,0,12,15,12,27, + 9,44,28,31,28,50,13,25,13,25,28,31,28,44,13,25, + 15,27,15,78,44,52,47,54,57,60,57,73,74,76,75,76, + 74,76,57,77,47,77,15,78,15,78,9,12,9,24,18,21, + 18,41,37,40,18,41,13,55,45,49,28,34,28,45,46,50, + 52,54,28,55,17,25,13,55,13,55,13,55,13,55,13,55, + 16,24,9,24,13,55,13,55,13,55,13,55,0,0,13,55, + 13,55,13,55,13,55,13,55,13,55,13,55,16,24,9,24, + 0,0,9,24,16,23,9,24,9,24,9,24,9,24,20,24, + 20,24,20,24,9,24,0,0,115,39,0,0,0,153,5,58, + 0,158,7,44,3,165,5,58,0,172,4,48,11,176,1,58, + 0,177,3,48,11,180,3,58,0,186,7,65,5,7,193,4, + 1,65,5,7,78,99,4,0,0,0,0,0,0,0,0,0, + 0,0,8,0,0,0,3,0,0,0,115,122,0,0,0,124, + 0,160,0,124,1,161,1,125,4,124,4,100,0,117,0,114, + 11,100,0,83,0,9,0,116,1,124,4,131,1,1,0,110, + 12,35,0,4,0,116,2,121,27,1,0,1,0,1,0,89, + 0,100,0,83,0,119,0,37,0,116,3,131,0,68,0,93, + 26,92,2,125,5,125,6,124,4,160,4,116,5,124,6,131, + 1,161,1,114,58,116,6,160,7,124,1,124,5,124,1,124, + 4,131,2,124,4,100,1,166,3,125,7,124,7,2,0,1, + 0,83,0,113,32,100,0,83,0,41,2,78,114,210,0,0, + 0,41,8,114,229,0,0,0,114,78,0,0,0,114,80,0, + 0,0,114,214,0,0,0,114,60,0,0,0,114,140,0,0, + 0,114,162,0,0,0,218,16,115,112,101,99,95,102,114,111, + 109,95,108,111,97,100,101,114,41,8,114,227,0,0,0,114, + 166,0,0,0,114,67,0,0,0,218,6,116,97,114,103,101, + 116,114,228,0,0,0,114,167,0,0,0,114,218,0,0,0, + 114,216,0,0,0,115,8,0,0,0,32,32,32,32,32,32, + 32,32,114,7,0,0,0,218,9,102,105,110,100,95,115,112, + 101,99,122,31,87,105,110,100,111,119,115,82,101,103,105,115, + 116,114,121,70,105,110,100,101,114,46,102,105,110,100,95,115, + 112,101,99,71,3,0,0,115,38,0,0,0,10,2,8,1, + 4,1,2,1,10,1,2,128,12,1,6,1,2,255,2,128, + 14,2,14,1,6,1,8,1,2,1,6,254,8,3,2,252, + 4,255,115,44,0,0,0,10,2,6,1,6,1,2,4,10, + 254,2,128,2,2,2,255,16,1,2,128,4,1,4,5,6, + 251,12,1,2,4,2,253,2,2,2,254,8,1,6,1,2, + 254,14,3,115,122,0,0,0,20,23,20,50,41,49,20,50, + 9,17,12,20,24,28,12,28,9,24,20,24,20,24,9,24, + 13,23,24,32,13,33,13,33,13,33,0,0,9,24,16,23, + 9,24,9,24,9,24,9,24,20,24,20,24,20,24,9,24, + 0,0,33,60,33,62,9,28,9,28,13,29,13,19,21,29, + 16,24,16,50,34,39,40,48,34,49,16,50,13,28,24,34, + 24,68,52,60,52,58,59,67,69,77,52,78,59,67,24,68, + 24,68,17,21,24,28,17,28,17,28,17,28,13,28,9,28, + 9,28,115,12,0,0,0,140,4,17,0,145,7,28,7,155, + 1,28,7,99,3,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,115,42,0,0,0,116,0,106, + 1,100,1,116,2,131,2,1,0,124,0,160,3,124,1,124, + 2,161,2,125,3,124,3,100,2,117,1,114,19,124,3,106, + 4,83,0,100,2,83,0,41,3,122,106,70,105,110,100,32, + 109,111,100,117,108,101,32,110,97,109,101,100,32,105,110,32, + 116,104,101,32,114,101,103,105,115,116,114,121,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,122,112,87,105,110,100,111,119,115,82,101, + 103,105,115,116,114,121,70,105,110,100,101,114,46,102,105,110, + 100,95,109,111,100,117,108,101,40,41,32,105,115,32,100,101, + 112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97, + 116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32, + 105,110,32,80,121,116,104,111,110,32,51,46,49,50,59,32, + 117,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32, + 105,110,115,116,101,97,100,78,169,5,114,103,0,0,0,114, + 104,0,0,0,114,105,0,0,0,114,232,0,0,0,114,167, + 0,0,0,169,4,114,227,0,0,0,114,166,0,0,0,114, + 67,0,0,0,114,216,0,0,0,115,4,0,0,0,32,32, + 32,32,114,7,0,0,0,218,11,102,105,110,100,95,109,111, + 100,117,108,101,122,33,87,105,110,100,111,119,115,82,101,103, + 105,115,116,114,121,70,105,110,100,101,114,46,102,105,110,100, + 95,109,111,100,117,108,101,87,3,0,0,115,14,0,0,0, + 6,7,2,2,4,254,12,3,8,1,6,1,4,2,115,16, + 0,0,0,4,7,2,1,6,1,12,1,6,1,2,3,6, + 254,4,2,115,42,0,0,0,9,18,9,23,24,84,24,42, + 9,43,9,43,16,19,16,45,30,38,40,44,16,45,9,13, + 12,16,24,28,12,28,9,24,20,24,20,31,13,31,20,24, + 20,24,114,10,0,0,0,169,2,78,78,114,71,0,0,0, + 41,15,114,153,0,0,0,114,152,0,0,0,114,154,0,0, + 0,114,155,0,0,0,114,225,0,0,0,114,224,0,0,0, + 218,11,95,77,83,95,87,73,78,68,79,87,83,218,18,69, + 88,84,69,78,83,73,79,78,95,83,85,70,70,73,88,69, + 83,114,223,0,0,0,218,12,115,116,97,116,105,99,109,101, + 116,104,111,100,114,222,0,0,0,218,11,99,108,97,115,115, + 109,101,116,104,111,100,114,229,0,0,0,114,232,0,0,0, + 114,235,0,0,0,114,13,0,0,0,114,10,0,0,0,114, + 7,0,0,0,114,220,0,0,0,114,220,0,0,0,37,3, + 0,0,115,30,0,0,0,8,0,4,2,2,3,2,255,2, + 4,2,255,12,3,2,2,8,1,2,6,8,1,2,14,10, + 1,2,15,14,1,115,84,0,0,0,0,129,0,129,0,129, + 0,129,0,129,0,129,8,213,0,127,0,127,0,127,0,127, + 0,127,0,127,2,45,0,129,0,129,0,129,0,129,0,129, + 0,129,2,211,0,127,0,127,0,127,0,127,0,127,0,127, + 2,49,2,254,2,5,2,254,12,3,2,2,8,5,2,2, + 8,13,2,2,2,1,8,13,2,2,2,1,12,13,115,80, + 0,0,0,1,1,1,1,1,1,1,1,5,73,1,1,9, + 32,5,17,9,39,5,23,20,31,20,66,36,44,48,66,36, + 66,5,16,6,18,5,66,5,66,5,66,5,66,6,17,5, + 24,5,24,5,24,5,24,6,17,39,43,5,28,5,28,5, + 28,5,28,6,17,41,45,5,24,5,24,5,24,5,24,5, + 24,5,24,114,10,0,0,0,114,220,0,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, + 0,0,115,40,0,0,0,101,0,90,1,100,0,90,2,100, + 1,90,3,100,2,132,0,90,4,100,3,132,0,90,5,100, + 4,132,0,90,6,100,5,132,0,90,7,100,6,83,0,41, + 7,218,13,95,76,111,97,100,101,114,66,97,115,105,99,115, + 122,83,66,97,115,101,32,99,108,97,115,115,32,111,102,32, + 99,111,109,109,111,110,32,99,111,100,101,32,110,101,101,100, + 101,100,32,98,121,32,98,111,116,104,32,83,111,117,114,99, + 101,76,111,97,100,101,114,32,97,110,100,10,32,32,32,32, + 83,111,117,114,99,101,108,101,115,115,70,105,108,101,76,111, + 97,100,101,114,46,99,2,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,3,0,0,0,115,64,0,0,0,116, + 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125, + 2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125, + 3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124, + 3,100,5,107,2,111,31,124,4,100,5,107,3,83,0,41, + 7,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110, + 115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112, + 97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105, + 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104, + 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32, + 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32, + 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111, + 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46, + 114,3,0,0,0,114,101,0,0,0,114,0,0,0,0,114, + 47,0,0,0,218,8,95,95,105,110,105,116,95,95,78,41, + 4,114,76,0,0,0,114,209,0,0,0,114,129,0,0,0, + 114,108,0,0,0,41,5,114,147,0,0,0,114,166,0,0, + 0,114,124,0,0,0,90,13,102,105,108,101,110,97,109,101, + 95,98,97,115,101,90,9,116,97,105,108,95,110,97,109,101, + 115,5,0,0,0,32,32,32,32,32,114,7,0,0,0,114, + 212,0,0,0,122,24,95,76,111,97,100,101,114,66,97,115, + 105,99,115,46,105,115,95,112,97,99,107,97,103,101,109,3, + 0,0,243,8,0,0,0,18,3,16,1,14,1,16,1,114, + 243,0,0,0,115,64,0,0,0,20,31,32,36,32,59,50, + 58,32,59,20,60,61,62,20,63,9,17,25,33,25,48,41, + 44,46,47,25,48,49,50,25,51,9,22,21,29,21,45,41, + 44,21,45,46,47,21,48,9,18,16,29,33,43,16,43,16, + 71,48,57,61,71,48,71,9,71,114,10,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,114,26,0,0,0,169,2,122,42,85,115,101,32, + 100,101,102,97,117,108,116,32,115,101,109,97,110,116,105,99, + 115,32,102,111,114,32,109,111,100,117,108,101,32,99,114,101, + 97,116,105,111,110,46,78,114,13,0,0,0,169,2,114,147, + 0,0,0,114,216,0,0,0,115,2,0,0,0,32,32,114, + 7,0,0,0,218,13,99,114,101,97,116,101,95,109,111,100, + 117,108,101,122,27,95,76,111,97,100,101,114,66,97,115,105, + 99,115,46,99,114,101,97,116,101,95,109,111,100,117,108,101, + 117,3,0,0,243,2,0,0,0,4,0,243,2,0,0,0, + 4,128,115,4,0,0,0,0,0,0,0,114,10,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,115,56,0,0,0,124,0,160,0,124,1, + 106,1,161,1,125,2,124,2,100,1,117,0,114,18,116,2, + 100,2,160,3,124,1,106,1,161,1,131,1,130,1,116,4, + 160,5,116,6,124,2,124,1,106,7,161,3,1,0,100,1, + 83,0,41,3,122,19,69,120,101,99,117,116,101,32,116,104, + 101,32,109,111,100,117,108,101,46,78,122,52,99,97,110,110, + 111,116,32,108,111,97,100,32,109,111,100,117,108,101,32,123, + 33,114,125,32,119,104,101,110,32,103,101,116,95,99,111,100, + 101,40,41,32,114,101,116,117,114,110,115,32,78,111,110,101, + 41,8,218,8,103,101,116,95,99,111,100,101,114,153,0,0, + 0,114,146,0,0,0,114,93,0,0,0,114,162,0,0,0, + 218,25,95,99,97,108,108,95,119,105,116,104,95,102,114,97, + 109,101,115,95,114,101,109,111,118,101,100,218,4,101,120,101, + 99,114,159,0,0,0,41,3,114,147,0,0,0,218,6,109, + 111,100,117,108,101,114,191,0,0,0,115,3,0,0,0,32, + 32,32,114,7,0,0,0,218,11,101,120,101,99,95,109,111, + 100,117,108,101,122,25,95,76,111,97,100,101,114,66,97,115, + 105,99,115,46,101,120,101,99,95,109,111,100,117,108,101,120, + 3,0,0,115,12,0,0,0,12,2,8,1,4,1,8,1, + 4,255,20,2,115,12,0,0,0,12,2,6,1,2,2,2, + 255,14,1,20,1,115,56,0,0,0,16,20,16,46,30,36, + 30,45,16,46,9,13,12,16,20,24,12,24,9,70,19,30, + 31,45,31,69,53,59,53,68,31,69,19,70,13,70,9,19, + 9,74,46,50,52,56,58,64,58,73,9,74,9,74,9,74, + 9,74,114,10,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,115,12,0,0, + 0,116,0,160,1,124,0,124,1,161,2,83,0,41,2,122, + 26,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,78,41,2,114,162, + 0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108, + 101,95,115,104,105,109,169,2,114,147,0,0,0,114,166,0, + 0,0,115,2,0,0,0,32,32,114,7,0,0,0,218,11, + 108,111,97,100,95,109,111,100,117,108,101,122,25,95,76,111, + 97,100,101,114,66,97,115,105,99,115,46,108,111,97,100,95, + 109,111,100,117,108,101,128,3,0,0,243,2,0,0,0,12, + 3,114,1,1,0,0,115,12,0,0,0,16,26,16,60,45, + 49,51,59,16,60,9,60,114,10,0,0,0,78,41,8,114, + 153,0,0,0,114,152,0,0,0,114,154,0,0,0,114,155, + 0,0,0,114,212,0,0,0,114,246,0,0,0,114,253,0, + 0,0,114,0,1,0,0,114,13,0,0,0,114,10,0,0, + 0,114,7,0,0,0,114,241,0,0,0,114,241,0,0,0, + 104,3,0,0,115,12,0,0,0,8,0,4,2,6,3,6, + 8,6,3,10,8,115,62,0,0,0,0,129,0,129,0,129, + 0,129,0,129,0,129,8,146,0,127,0,127,0,127,0,127, + 0,127,0,127,2,113,0,129,0,129,0,129,0,129,0,129, + 0,129,2,143,0,127,0,127,0,127,0,127,0,127,0,127, + 6,121,6,3,6,8,10,5,115,40,0,0,0,1,1,1, + 1,1,1,1,1,5,29,1,1,5,71,5,71,5,71,5, + 57,5,57,5,57,5,74,5,74,5,74,5,60,5,60,5, + 60,5,60,5,60,114,10,0,0,0,114,241,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 0,0,0,0,115,60,0,0,0,101,0,90,1,100,0,90, + 2,100,1,132,0,90,3,100,2,132,0,90,4,100,3,132, + 0,90,5,100,4,132,0,90,6,100,5,132,0,90,7,100, + 6,100,7,156,1,100,8,132,2,90,8,100,9,132,0,90, + 9,100,10,83,0,41,11,218,12,83,111,117,114,99,101,76, + 111,97,100,101,114,99,2,0,0,0,0,0,0,0,0,0, + 0,0,1,0,0,0,3,0,0,0,115,4,0,0,0,116, + 0,130,1,41,2,122,165,79,112,116,105,111,110,97,108,32, + 109,101,116,104,111,100,32,116,104,97,116,32,114,101,116,117, + 114,110,115,32,116,104,101,32,109,111,100,105,102,105,99,97, + 116,105,111,110,32,116,105,109,101,32,40,97,110,32,105,110, + 116,41,32,102,111,114,32,116,104,101,10,32,32,32,32,32, + 32,32,32,115,112,101,99,105,102,105,101,100,32,112,97,116, 104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,32, - 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103, - 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108, - 111,119,115,32,102,111,114,32,116,104,101,32,119,114,105,116, - 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32, - 102,105,108,101,115,46,10,10,32,32,32,32,32,32,32,32, - 84,104,101,32,115,111,117,114,99,101,32,112,97,116,104,32, - 105,115,32,110,101,101,100,101,100,32,105,110,32,111,114,100, - 101,114,32,116,111,32,99,111,114,114,101,99,116,108,121,32, - 116,114,97,110,115,102,101,114,32,112,101,114,109,105,115,115, - 105,111,110,115,10,32,32,32,32,32,32,32,32,78,41,1, - 218,8,115,101,116,95,100,97,116,97,41,4,114,147,0,0, - 0,114,138,0,0,0,90,10,99,97,99,104,101,95,112,97, - 116,104,114,44,0,0,0,115,4,0,0,0,32,32,32,32, - 114,7,0,0,0,218,15,95,99,97,99,104,101,95,98,121, - 116,101,99,111,100,101,122,28,83,111,117,114,99,101,76,111, - 97,100,101,114,46,95,99,97,99,104,101,95,98,121,116,101, - 99,111,100,101,158,3,0,0,243,2,0,0,0,12,8,114, - 10,1,0,0,115,12,0,0,0,16,20,16,47,30,40,42, - 46,16,47,9,47,114,10,0,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,114, - 26,0,0,0,41,2,122,150,79,112,116,105,111,110,97,108, - 32,109,101,116,104,111,100,32,119,104,105,99,104,32,119,114, - 105,116,101,115,32,100,97,116,97,32,40,98,121,116,101,115, - 41,32,116,111,32,97,32,102,105,108,101,32,112,97,116,104, - 32,40,97,32,115,116,114,41,46,10,10,32,32,32,32,32, - 32,32,32,73,109,112,108,101,109,101,110,116,105,110,103,32, - 116,104,105,115,32,109,101,116,104,111,100,32,97,108,108,111, - 119,115,32,102,111,114,32,116,104,101,32,119,114,105,116,105, - 110,103,32,111,102,32,98,121,116,101,99,111,100,101,32,102, - 105,108,101,115,46,10,32,32,32,32,32,32,32,32,78,114, - 13,0,0,0,41,3,114,147,0,0,0,114,67,0,0,0, - 114,44,0,0,0,115,3,0,0,0,32,32,32,114,7,0, - 0,0,114,8,1,0,0,122,21,83,111,117,114,99,101,76, - 111,97,100,101,114,46,115,101,116,95,100,97,116,97,168,3, - 0,0,114,247,0,0,0,114,248,0,0,0,115,4,0,0, - 0,0,0,0,0,114,10,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,115, - 70,0,0,0,124,0,160,0,124,1,161,1,125,2,9,0, - 124,0,160,1,124,2,161,1,125,3,116,4,124,3,131,1, - 83,0,35,0,4,0,116,2,121,34,1,0,125,4,1,0, - 116,3,100,1,124,1,100,2,141,2,124,4,130,2,100,3, - 125,4,126,4,119,1,37,0,119,0,41,4,122,52,67,111, - 110,99,114,101,116,101,32,105,109,112,108,101,109,101,110,116, - 97,116,105,111,110,32,111,102,32,73,110,115,112,101,99,116, - 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, - 101,46,122,39,115,111,117,114,99,101,32,110,111,116,32,97, - 118,97,105,108,97,98,108,101,32,116,104,114,111,117,103,104, - 32,103,101,116,95,100,97,116,97,40,41,114,144,0,0,0, - 78,41,5,114,209,0,0,0,218,8,103,101,116,95,100,97, - 116,97,114,80,0,0,0,114,146,0,0,0,114,205,0,0, - 0,41,5,114,147,0,0,0,114,166,0,0,0,114,67,0, - 0,0,114,203,0,0,0,218,3,101,120,99,115,5,0,0, - 0,32,32,32,32,32,114,7,0,0,0,218,10,103,101,116, - 95,115,111,117,114,99,101,122,23,83,111,117,114,99,101,76, - 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, - 175,3,0,0,115,26,0,0,0,10,2,2,1,10,1,8, - 4,2,128,12,253,4,1,2,1,4,255,2,1,2,255,10, - 128,2,255,115,24,0,0,0,10,2,2,5,10,253,8,4, - 2,128,2,255,2,254,8,2,4,255,10,1,10,128,2,0, - 115,70,0,0,0,16,20,16,43,34,42,16,43,9,13,9, - 54,28,32,28,47,42,46,28,47,13,25,16,29,30,42,16, - 43,9,43,0,0,9,54,16,23,9,54,9,54,9,54,9, - 54,19,30,31,72,36,44,19,45,19,45,51,54,13,54,0, - 0,0,0,0,0,0,0,0,0,9,54,115,20,0,0,0, - 134,5,15,0,143,7,33,7,150,7,29,7,157,4,33,7, - 162,1,33,7,114,134,0,0,0,41,1,218,9,95,111,112, - 116,105,109,105,122,101,99,3,0,0,0,0,0,0,0,1, - 0,0,0,9,0,0,0,3,0,0,0,115,22,0,0,0, - 116,0,160,1,116,2,124,1,124,2,100,1,100,2,124,3, - 100,3,166,6,83,0,41,5,122,130,82,101,116,117,114,110, - 32,116,104,101,32,99,111,100,101,32,111,98,106,101,99,116, - 32,99,111,109,112,105,108,101,100,32,102,114,111,109,32,115, - 111,117,114,99,101,46,10,10,32,32,32,32,32,32,32,32, - 84,104,101,32,39,100,97,116,97,39,32,97,114,103,117,109, - 101,110,116,32,99,97,110,32,98,101,32,97,110,121,32,111, - 98,106,101,99,116,32,116,121,112,101,32,116,104,97,116,32, - 99,111,109,112,105,108,101,40,41,32,115,117,112,112,111,114, - 116,115,46,10,32,32,32,32,32,32,32,32,114,251,0,0, - 0,84,41,2,218,12,100,111,110,116,95,105,110,104,101,114, - 105,116,114,112,0,0,0,78,41,3,114,162,0,0,0,114, - 250,0,0,0,218,7,99,111,109,112,105,108,101,41,4,114, - 147,0,0,0,114,44,0,0,0,114,67,0,0,0,114,14, - 1,0,0,115,4,0,0,0,32,32,32,32,114,7,0,0, - 0,218,14,115,111,117,114,99,101,95,116,111,95,99,111,100, - 101,122,27,83,111,117,114,99,101,76,111,97,100,101,114,46, - 115,111,117,114,99,101,95,116,111,95,99,111,100,101,185,3, - 0,0,115,6,0,0,0,12,5,4,1,6,255,115,8,0, - 0,0,2,5,2,1,8,255,10,1,115,22,0,0,0,16, - 26,16,79,53,60,62,66,68,72,74,80,54,58,69,78,16, - 79,16,79,9,79,114,10,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,9,0,0,0,3,0,0,0,115, - 28,2,0,0,124,0,160,0,124,1,161,1,125,2,100,1, - 125,3,100,1,125,4,100,1,125,5,100,2,125,6,100,3, - 125,7,9,0,116,1,124,2,131,1,125,8,110,13,35,0, - 4,0,116,2,144,1,121,13,1,0,1,0,1,0,100,1, - 125,8,89,0,110,147,37,0,9,0,124,0,160,3,124,2, - 161,1,125,9,110,11,35,0,4,0,116,4,144,1,121,12, - 1,0,1,0,1,0,89,0,110,129,37,0,116,5,124,9, - 100,4,25,0,131,1,125,3,9,0,124,0,160,6,124,8, - 161,1,125,10,110,11,35,0,4,0,116,4,144,1,121,11, - 1,0,1,0,1,0,89,0,110,105,37,0,124,1,124,8, - 100,5,156,2,125,11,9,0,116,7,124,10,124,1,124,11, - 131,3,125,12,116,8,124,10,131,1,100,6,100,1,133,2, - 25,0,125,13,124,12,100,7,64,0,100,8,107,3,125,6, - 124,6,114,141,124,12,100,9,64,0,100,8,107,3,125,7, - 116,9,106,10,100,10,107,3,114,140,124,7,115,122,116,9, - 106,10,100,11,107,2,114,140,124,0,160,6,124,2,161,1, - 125,4,116,9,106,11,116,12,124,4,131,2,125,5,116,13, - 124,10,124,5,124,1,124,11,131,4,1,0,110,10,116,14, - 124,10,124,3,124,9,100,12,25,0,124,1,124,11,131,5, - 1,0,110,13,35,0,4,0,116,15,116,16,102,2,144,1, - 121,10,1,0,1,0,1,0,89,0,110,16,37,0,116,17, - 160,18,100,13,124,8,124,2,161,3,1,0,116,19,124,13, - 124,1,124,8,124,2,100,14,141,4,83,0,124,4,100,1, - 117,0,114,189,124,0,160,6,124,2,161,1,125,4,124,0, - 160,20,124,4,124,2,161,2,125,14,116,17,160,18,100,15, - 124,2,161,2,1,0,116,21,106,22,144,1,115,7,124,8, - 100,1,117,1,144,1,114,7,124,3,100,1,117,1,144,1, - 114,7,124,6,114,233,124,5,100,1,117,0,114,226,116,9, - 106,11,124,4,131,1,125,5,116,23,124,14,124,5,124,7, - 131,3,125,10,110,8,116,24,124,14,124,3,116,25,124,4, - 131,1,131,3,125,10,9,0,124,0,160,26,124,2,124,8, - 124,10,161,3,1,0,124,14,83,0,35,0,4,0,116,2, - 144,1,121,9,1,0,1,0,1,0,89,0,124,14,83,0, - 37,0,124,14,83,0,119,0,119,0,119,0,119,0,119,0, + 32,32,32,32,82,97,105,115,101,115,32,79,83,69,114,114, + 111,114,32,119,104,101,110,32,116,104,101,32,112,97,116,104, + 32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,108, + 101,100,46,10,32,32,32,32,32,32,32,32,78,41,1,114, + 80,0,0,0,169,2,114,147,0,0,0,114,67,0,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,218,10,112,97, + 116,104,95,109,116,105,109,101,122,23,83,111,117,114,99,101, + 76,111,97,100,101,114,46,112,97,116,104,95,109,116,105,109, + 101,136,3,0,0,243,2,0,0,0,4,6,114,5,1,0, + 0,115,4,0,0,0,15,22,9,22,114,10,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,115,14,0,0,0,100,1,124,0,160,0,124, + 1,161,1,105,1,83,0,41,3,97,158,1,0,0,79,112, + 116,105,111,110,97,108,32,109,101,116,104,111,100,32,114,101, + 116,117,114,110,105,110,103,32,97,32,109,101,116,97,100,97, + 116,97,32,100,105,99,116,32,102,111,114,32,116,104,101,32, + 115,112,101,99,105,102,105,101,100,10,32,32,32,32,32,32, + 32,32,112,97,116,104,32,40,97,32,115,116,114,41,46,10, + 10,32,32,32,32,32,32,32,32,80,111,115,115,105,98,108, + 101,32,107,101,121,115,58,10,32,32,32,32,32,32,32,32, + 45,32,39,109,116,105,109,101,39,32,40,109,97,110,100,97, + 116,111,114,121,41,32,105,115,32,116,104,101,32,110,117,109, + 101,114,105,99,32,116,105,109,101,115,116,97,109,112,32,111, + 102,32,108,97,115,116,32,115,111,117,114,99,101,10,32,32, + 32,32,32,32,32,32,32,32,99,111,100,101,32,109,111,100, + 105,102,105,99,97,116,105,111,110,59,10,32,32,32,32,32, + 32,32,32,45,32,39,115,105,122,101,39,32,40,111,112,116, + 105,111,110,97,108,41,32,105,115,32,116,104,101,32,115,105, + 122,101,32,105,110,32,98,121,116,101,115,32,111,102,32,116, + 104,101,32,115,111,117,114,99,101,32,99,111,100,101,46,10, + 10,32,32,32,32,32,32,32,32,73,109,112,108,101,109,101, + 110,116,105,110,103,32,116,104,105,115,32,109,101,116,104,111, + 100,32,97,108,108,111,119,115,32,116,104,101,32,108,111,97, + 100,101,114,32,116,111,32,114,101,97,100,32,98,121,116,101, + 99,111,100,101,32,102,105,108,101,115,46,10,32,32,32,32, + 32,32,32,32,82,97,105,115,101,115,32,79,83,69,114,114, + 111,114,32,119,104,101,110,32,116,104,101,32,112,97,116,104, + 32,99,97,110,110,111,116,32,98,101,32,104,97,110,100,108, + 101,100,46,10,32,32,32,32,32,32,32,32,114,196,0,0, + 0,78,41,1,114,4,1,0,0,114,3,1,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,218,10,112,97,116,104, + 95,115,116,97,116,115,122,23,83,111,117,114,99,101,76,111, + 97,100,101,114,46,112,97,116,104,95,115,116,97,116,115,144, + 3,0,0,243,2,0,0,0,14,12,114,7,1,0,0,115, + 14,0,0,0,17,24,26,30,26,47,42,46,26,47,16,48, + 9,48,114,10,0,0,0,99,4,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,3,0,0,0,115,12,0,0, + 0,124,0,160,0,124,2,124,3,161,2,83,0,41,2,122, + 228,79,112,116,105,111,110,97,108,32,109,101,116,104,111,100, + 32,119,104,105,99,104,32,119,114,105,116,101,115,32,100,97, + 116,97,32,40,98,121,116,101,115,41,32,116,111,32,97,32, + 102,105,108,101,32,112,97,116,104,32,40,97,32,115,116,114, + 41,46,10,10,32,32,32,32,32,32,32,32,73,109,112,108, + 101,109,101,110,116,105,110,103,32,116,104,105,115,32,109,101, + 116,104,111,100,32,97,108,108,111,119,115,32,102,111,114,32, + 116,104,101,32,119,114,105,116,105,110,103,32,111,102,32,98, + 121,116,101,99,111,100,101,32,102,105,108,101,115,46,10,10, + 32,32,32,32,32,32,32,32,84,104,101,32,115,111,117,114, + 99,101,32,112,97,116,104,32,105,115,32,110,101,101,100,101, + 100,32,105,110,32,111,114,100,101,114,32,116,111,32,99,111, + 114,114,101,99,116,108,121,32,116,114,97,110,115,102,101,114, + 32,112,101,114,109,105,115,115,105,111,110,115,10,32,32,32, + 32,32,32,32,32,78,41,1,218,8,115,101,116,95,100,97, + 116,97,41,4,114,147,0,0,0,114,138,0,0,0,90,10, + 99,97,99,104,101,95,112,97,116,104,114,44,0,0,0,115, + 4,0,0,0,32,32,32,32,114,7,0,0,0,218,15,95, + 99,97,99,104,101,95,98,121,116,101,99,111,100,101,122,28, + 83,111,117,114,99,101,76,111,97,100,101,114,46,95,99,97, + 99,104,101,95,98,121,116,101,99,111,100,101,158,3,0,0, + 243,2,0,0,0,12,8,114,10,1,0,0,115,12,0,0, + 0,16,20,16,47,30,40,42,46,16,47,9,47,114,10,0, + 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,114,26,0,0,0,41,2,122,150, + 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, + 119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, + 97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, + 105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, + 46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, + 109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, + 104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, + 104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, + 116,101,99,111,100,101,32,102,105,108,101,115,46,10,32,32, + 32,32,32,32,32,32,78,114,13,0,0,0,41,3,114,147, + 0,0,0,114,67,0,0,0,114,44,0,0,0,115,3,0, + 0,0,32,32,32,114,7,0,0,0,114,8,1,0,0,122, + 21,83,111,117,114,99,101,76,111,97,100,101,114,46,115,101, + 116,95,100,97,116,97,168,3,0,0,114,247,0,0,0,114, + 248,0,0,0,115,4,0,0,0,0,0,0,0,114,10,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,8, + 0,0,0,3,0,0,0,115,70,0,0,0,124,0,160,0, + 124,1,161,1,125,2,9,0,124,0,160,1,124,2,161,1, + 125,3,116,4,124,3,131,1,83,0,35,0,4,0,116,2, + 121,33,1,0,125,4,1,0,116,3,100,1,124,1,100,2, + 141,2,124,4,130,2,100,3,125,4,126,4,119,1,119,0, + 37,0,41,4,122,52,67,111,110,99,114,101,116,101,32,105, + 109,112,108,101,109,101,110,116,97,116,105,111,110,32,111,102, + 32,73,110,115,112,101,99,116,76,111,97,100,101,114,46,103, + 101,116,95,115,111,117,114,99,101,46,122,39,115,111,117,114, + 99,101,32,110,111,116,32,97,118,97,105,108,97,98,108,101, + 32,116,104,114,111,117,103,104,32,103,101,116,95,100,97,116, + 97,40,41,114,144,0,0,0,78,41,5,114,209,0,0,0, + 218,8,103,101,116,95,100,97,116,97,114,80,0,0,0,114, + 146,0,0,0,114,205,0,0,0,41,5,114,147,0,0,0, + 114,166,0,0,0,114,67,0,0,0,114,203,0,0,0,218, + 3,101,120,99,115,5,0,0,0,32,32,32,32,32,114,7, + 0,0,0,218,10,103,101,116,95,115,111,117,114,99,101,122, + 23,83,111,117,114,99,101,76,111,97,100,101,114,46,103,101, + 116,95,115,111,117,114,99,101,175,3,0,0,115,28,0,0, + 0,10,2,2,1,10,1,8,4,2,128,12,253,4,1,2, + 1,4,255,2,1,2,255,8,128,2,255,2,128,115,26,0, + 0,0,10,2,2,5,10,253,8,4,2,128,2,255,2,254, + 8,2,4,255,10,1,8,128,2,0,2,128,115,70,0,0, + 0,16,20,16,43,34,42,16,43,9,13,9,54,28,32,28, + 47,42,46,28,47,13,25,16,29,30,42,16,43,9,43,0, + 0,9,54,16,23,9,54,9,54,9,54,9,54,19,30,31, + 72,36,44,19,45,19,45,51,54,13,54,0,0,0,0,0, + 0,0,0,9,54,0,0,115,16,0,0,0,134,5,15,0, + 143,7,34,7,150,7,29,7,157,5,34,7,114,134,0,0, + 0,41,1,218,9,95,111,112,116,105,109,105,122,101,99,3, + 0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,3, + 0,0,0,115,22,0,0,0,116,0,160,1,116,2,124,1, + 124,2,100,1,100,2,124,3,100,3,166,6,83,0,41,5, + 122,130,82,101,116,117,114,110,32,116,104,101,32,99,111,100, + 101,32,111,98,106,101,99,116,32,99,111,109,112,105,108,101, + 100,32,102,114,111,109,32,115,111,117,114,99,101,46,10,10, + 32,32,32,32,32,32,32,32,84,104,101,32,39,100,97,116, + 97,39,32,97,114,103,117,109,101,110,116,32,99,97,110,32, + 98,101,32,97,110,121,32,111,98,106,101,99,116,32,116,121, + 112,101,32,116,104,97,116,32,99,111,109,112,105,108,101,40, + 41,32,115,117,112,112,111,114,116,115,46,10,32,32,32,32, + 32,32,32,32,114,251,0,0,0,84,41,2,218,12,100,111, + 110,116,95,105,110,104,101,114,105,116,114,112,0,0,0,78, + 41,3,114,162,0,0,0,114,250,0,0,0,218,7,99,111, + 109,112,105,108,101,41,4,114,147,0,0,0,114,44,0,0, + 0,114,67,0,0,0,114,14,1,0,0,115,4,0,0,0, + 32,32,32,32,114,7,0,0,0,218,14,115,111,117,114,99, + 101,95,116,111,95,99,111,100,101,122,27,83,111,117,114,99, + 101,76,111,97,100,101,114,46,115,111,117,114,99,101,95,116, + 111,95,99,111,100,101,185,3,0,0,115,6,0,0,0,12, + 5,4,1,6,255,115,8,0,0,0,2,5,2,1,8,255, + 10,1,115,22,0,0,0,16,26,16,79,53,60,62,66,68, + 72,74,80,54,58,69,78,16,79,16,79,9,79,114,10,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,9, + 0,0,0,3,0,0,0,115,20,2,0,0,124,0,160,0, + 124,1,161,1,125,2,100,1,125,3,100,1,125,4,100,1, + 125,5,100,2,125,6,100,3,125,7,9,0,116,1,124,2, + 131,1,125,8,110,13,35,0,4,0,116,2,121,32,1,0, + 1,0,1,0,100,1,125,8,89,0,110,148,119,0,37,0, + 9,0,124,0,160,3,124,2,161,1,125,9,110,11,35,0, + 4,0,116,4,121,50,1,0,1,0,1,0,89,0,110,130, + 119,0,37,0,116,5,124,9,100,4,25,0,131,1,125,3, + 9,0,124,0,160,6,124,8,161,1,125,10,110,11,35,0, + 4,0,116,4,121,74,1,0,1,0,1,0,89,0,110,106, + 119,0,37,0,124,1,124,8,100,5,156,2,125,11,9,0, + 116,7,124,10,124,1,124,11,131,3,125,12,116,8,124,10, + 131,1,100,6,100,1,133,2,25,0,125,13,124,12,100,7, + 64,0,100,8,107,3,125,6,124,6,114,141,124,12,100,9, + 64,0,100,8,107,3,125,7,116,9,106,10,100,10,107,3, + 114,140,124,7,115,122,116,9,106,10,100,11,107,2,114,140, + 124,0,160,6,124,2,161,1,125,4,116,9,106,11,116,12, + 124,4,131,2,125,5,116,13,124,10,124,5,124,1,124,11, + 131,4,1,0,110,10,116,14,124,10,124,3,124,9,100,12, + 25,0,124,1,124,11,131,5,1,0,110,13,35,0,4,0, + 116,15,116,16,102,2,121,163,1,0,1,0,1,0,89,0, + 110,17,119,0,37,0,116,17,160,18,100,13,124,8,124,2, + 161,3,1,0,116,19,124,13,124,1,124,8,124,2,100,14, + 141,4,83,0,124,4,100,1,117,0,114,189,124,0,160,6, + 124,2,161,1,125,4,124,0,160,20,124,4,124,2,161,2, + 125,14,116,17,160,18,100,15,124,2,161,2,1,0,116,21, + 106,22,144,1,115,8,124,8,100,1,117,1,144,1,114,8, + 124,3,100,1,117,1,144,1,114,8,124,6,114,233,124,5, + 100,1,117,0,114,226,116,9,106,11,124,4,131,1,125,5, + 116,23,124,14,124,5,124,7,131,3,125,10,110,8,116,24, + 124,14,124,3,116,25,124,4,131,1,131,3,125,10,9,0, + 124,0,160,26,124,2,124,8,124,10,161,3,1,0,124,14, + 83,0,35,0,4,0,116,2,144,1,121,6,1,0,1,0, + 1,0,89,0,124,14,83,0,119,0,37,0,124,14,83,0, 41,16,122,190,67,111,110,99,114,101,116,101,32,105,109,112, 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,73, 110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,116, @@ -1823,18 +1821,18 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,114,249,0,0,0,122,21,83,111,117,114,99,101,76,111, 97,100,101,114,46,103,101,116,95,99,111,100,101,193,3,0, 0,115,188,0,0,0,10,7,4,1,4,1,4,1,4,1, - 4,1,2,1,10,1,2,128,14,1,8,1,2,128,2,2, - 12,1,2,128,14,1,4,1,2,128,12,2,2,1,12,1, - 2,128,14,1,4,1,2,128,2,3,2,1,6,254,2,4, - 12,1,16,1,12,1,4,1,12,1,10,1,2,1,2,255, - 8,2,2,254,10,3,4,1,2,1,2,1,4,254,8,4, - 2,1,4,255,2,128,2,3,2,1,2,1,6,1,2,1, - 2,1,4,251,4,128,18,7,4,1,2,128,8,2,2,1, - 4,255,6,2,2,1,2,1,6,254,8,3,10,1,12,1, - 12,1,18,1,6,1,4,255,4,2,8,1,10,1,14,1, - 6,2,6,1,4,255,2,2,14,1,4,3,2,128,14,254, - 2,1,4,1,2,128,4,0,2,254,2,233,2,225,2,250, - 2,251,115,212,0,0,0,10,7,4,1,4,1,4,1,4, + 4,1,2,1,10,1,2,128,12,1,8,1,2,255,2,128, + 2,3,12,1,2,128,12,1,4,1,2,255,2,128,12,3, + 2,1,12,1,2,128,12,1,4,1,2,255,2,128,2,4, + 2,1,6,254,2,4,12,1,16,1,12,1,4,1,12,1, + 10,1,2,1,2,255,8,2,2,254,10,3,4,1,2,1, + 2,1,4,254,8,4,2,1,4,255,2,128,2,3,2,1, + 2,1,6,1,2,1,2,1,4,251,4,128,16,7,4,1, + 2,255,2,128,8,3,2,1,4,255,6,2,2,1,2,1, + 6,254,8,3,10,1,12,1,12,1,18,1,6,1,4,255, + 4,2,8,1,10,1,14,1,6,2,6,1,4,255,2,2, + 14,1,4,3,2,128,14,254,2,1,4,1,2,254,2,128, + 4,2,115,204,0,0,0,10,7,4,1,4,1,4,1,4, 1,4,1,2,52,10,206,2,128,2,2,2,255,18,1,2, 128,2,48,12,211,2,128,2,2,2,255,14,1,2,128,12, 2,2,41,12,217,2,128,2,2,2,255,14,1,2,128,2, @@ -1846,1764 +1844,1761 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 255,6,1,6,1,2,1,8,1,6,1,12,1,12,1,12, 1,4,1,4,12,6,244,4,12,6,245,4,11,2,246,2, 6,6,251,12,1,14,1,6,2,8,1,2,255,2,5,14, - 254,4,3,2,128,2,255,2,255,12,1,4,1,2,128,4, - 0,2,255,2,233,2,225,2,250,2,251,115,28,2,0,0, - 23,27,23,50,41,49,23,50,9,20,24,28,9,21,24,28, - 9,21,23,27,9,20,22,27,9,19,24,28,9,21,9,74, - 29,46,47,58,29,59,13,26,13,26,0,0,9,33,16,35, - 9,33,9,33,9,33,9,33,9,33,29,33,13,26,13,26, - 13,26,0,0,13,74,22,26,22,50,38,49,22,50,17,19, - 17,19,0,0,13,21,20,27,13,21,13,21,13,21,13,21, - 13,21,17,21,17,21,0,0,32,35,36,38,39,46,36,47, - 32,48,17,29,17,74,28,32,28,56,42,55,28,56,21,25, - 21,25,0,0,17,25,24,31,17,25,17,25,17,25,17,25, - 17,25,21,25,21,25,0,0,33,41,33,46,35,22,35,22, - 21,32,21,74,33,46,47,51,53,61,63,74,33,75,25,30, - 38,48,49,53,38,54,55,57,55,58,55,58,38,59,25,35, - 38,43,46,49,38,49,53,54,38,54,25,35,28,38,25,30, - 44,49,52,56,44,56,60,61,44,61,29,41,33,37,33,59, - 63,70,33,70,29,64,34,46,29,64,34,38,34,60,64,72, - 34,72,29,64,48,52,48,74,62,73,48,74,33,45,47,51, - 47,63,37,54,37,49,47,34,33,44,33,51,52,56,58,69, - 71,79,52,63,33,64,33,64,0,0,29,52,33,37,33,45, - 33,35,36,42,33,43,33,41,33,44,29,30,29,30,0,0, - 0,0,21,29,29,40,42,50,28,51,21,29,21,29,21,29, - 21,29,21,29,25,29,25,29,0,0,25,35,25,65,53,68, - 70,83,53,64,25,65,25,65,32,49,50,60,67,75,64,77, - 62,73,32,74,32,74,25,74,12,24,28,32,12,32,9,54, - 28,32,28,54,42,53,28,54,13,25,23,27,23,69,43,55, - 57,68,23,69,9,20,9,19,9,72,37,58,60,71,9,72, - 9,72,17,20,17,40,9,21,9,21,45,58,66,70,45,70, - 9,21,9,21,17,29,37,41,17,41,9,21,9,21,16,26, - 13,65,20,31,35,39,20,39,17,65,35,39,35,51,52,64, - 35,65,21,32,24,41,42,53,55,66,68,80,24,81,17,21, - 17,21,24,46,47,58,60,72,47,50,51,63,47,64,24,65, - 17,21,13,21,17,21,17,71,38,49,51,64,66,70,17,71, - 17,71,16,27,9,27,0,0,13,21,20,39,13,21,13,21, - 13,21,13,21,13,21,17,21,16,27,9,27,0,0,16,27, - 9,27,13,21,21,29,17,25,13,21,9,33,115,80,0,0, - 0,144,4,21,0,149,10,33,7,163,5,41,0,169,8,51, - 7,187,5,65,1,0,193,1,8,65,11,7,193,18,65,5, - 66,24,0,194,24,10,66,36,7,195,50,7,67,59,0,195, - 59,8,68,6,7,196,9,1,68,6,7,196,10,1,66,36, - 7,196,11,1,65,11,7,196,12,1,51,7,196,13,1,33, - 7,78,41,10,114,153,0,0,0,114,152,0,0,0,114,154, - 0,0,0,114,4,1,0,0,114,6,1,0,0,114,9,1, - 0,0,114,8,1,0,0,114,13,1,0,0,114,17,1,0, - 0,114,249,0,0,0,114,13,0,0,0,114,10,0,0,0, - 114,7,0,0,0,114,2,1,0,0,114,2,1,0,0,134, - 3,0,0,115,16,0,0,0,8,0,6,2,6,8,6,14, - 6,10,6,7,12,10,10,8,115,46,0,0,0,0,129,0, - 129,0,129,0,129,0,129,0,129,0,129,8,243,0,127,0, - 127,0,127,0,127,0,127,0,127,0,127,6,21,6,14,6, - 10,6,6,6,11,2,2,10,6,10,84,115,60,0,0,0, - 1,1,1,1,1,1,1,1,5,22,5,22,5,22,5,48, - 5,48,5,48,5,47,5,47,5,47,5,12,5,12,5,12, - 5,43,5,43,5,43,55,57,5,79,5,79,5,79,5,79, - 5,79,5,27,5,27,5,27,5,27,5,27,114,10,0,0, - 0,114,2,1,0,0,99,0,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,0,0,0,0,115,80,0,0,0, - 135,0,101,0,90,1,100,0,90,2,100,1,90,3,100,2, - 132,0,90,4,100,3,132,0,90,5,100,4,132,0,90,6, - 101,7,136,0,102,1,100,5,132,8,131,1,90,8,101,7, - 100,6,132,0,131,1,90,9,100,7,132,0,90,10,101,7, - 100,8,132,0,131,1,90,11,136,0,4,0,90,12,83,0, - 41,9,218,10,70,105,108,101,76,111,97,100,101,114,122,103, - 66,97,115,101,32,102,105,108,101,32,108,111,97,100,101,114, - 32,99,108,97,115,115,32,119,104,105,99,104,32,105,109,112, - 108,101,109,101,110,116,115,32,116,104,101,32,108,111,97,100, - 101,114,32,112,114,111,116,111,99,111,108,32,109,101,116,104, - 111,100,115,32,116,104,97,116,10,32,32,32,32,114,101,113, - 117,105,114,101,32,102,105,108,101,32,115,121,115,116,101,109, - 32,117,115,97,103,101,46,99,3,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,115,16,0,0, - 0,124,1,124,0,95,0,124,2,124,0,95,1,100,1,83, - 0,41,2,122,75,67,97,99,104,101,32,116,104,101,32,109, - 111,100,117,108,101,32,110,97,109,101,32,97,110,100,32,116, - 104,101,32,112,97,116,104,32,116,111,32,116,104,101,32,102, - 105,108,101,32,102,111,117,110,100,32,98,121,32,116,104,101, - 10,32,32,32,32,32,32,32,32,102,105,110,100,101,114,46, - 78,114,186,0,0,0,41,3,114,147,0,0,0,114,166,0, - 0,0,114,67,0,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,114,242,0,0,0,122,19,70,105,108,101,76, - 111,97,100,101,114,46,95,95,105,110,105,116,95,95,27,4, - 0,0,243,4,0,0,0,6,3,10,1,114,24,1,0,0, - 115,16,0,0,0,21,29,9,13,9,18,21,25,9,13,9, - 18,9,18,9,18,114,10,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,3,0,0,0,243, - 24,0,0,0,124,0,106,0,124,1,106,0,107,2,111,11, - 124,0,106,1,124,1,106,1,107,2,83,0,114,71,0,0, - 0,169,2,218,9,95,95,99,108,97,115,115,95,95,114,159, - 0,0,0,169,2,114,147,0,0,0,90,5,111,116,104,101, - 114,115,2,0,0,0,32,32,114,7,0,0,0,218,6,95, - 95,101,113,95,95,122,17,70,105,108,101,76,111,97,100,101, - 114,46,95,95,101,113,95,95,33,4,0,0,243,6,0,0, - 0,12,1,10,1,2,255,243,4,0,0,0,10,1,14,1, - 115,24,0,0,0,17,21,17,31,35,40,35,50,17,50,17, - 48,17,21,17,30,34,39,34,48,17,48,9,49,114,10,0, - 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,243,20,0,0,0,116,0,124,0, - 106,1,131,1,116,0,124,0,106,2,131,1,65,0,83,0, - 114,71,0,0,0,169,3,218,4,104,97,115,104,114,145,0, - 0,0,114,67,0,0,0,169,1,114,147,0,0,0,115,1, - 0,0,0,32,114,7,0,0,0,218,8,95,95,104,97,115, - 104,95,95,122,19,70,105,108,101,76,111,97,100,101,114,46, - 95,95,104,97,115,104,95,95,37,4,0,0,243,2,0,0, - 0,20,1,114,37,1,0,0,115,20,0,0,0,16,20,21, - 25,21,30,16,31,34,38,39,43,39,48,34,49,16,49,9, - 49,114,10,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,3,0,0,0,3,0,0,0,115,16,0,0,0, - 116,0,116,1,124,0,131,2,160,2,124,1,161,1,83,0, - 41,2,122,100,76,111,97,100,32,97,32,109,111,100,117,108, - 101,32,102,114,111,109,32,97,32,102,105,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,78,41,3,218,5,115,117,112, - 101,114,114,23,1,0,0,114,0,1,0,0,41,3,114,147, - 0,0,0,114,166,0,0,0,114,27,1,0,0,115,3,0, - 0,0,32,32,128,114,7,0,0,0,114,0,1,0,0,122, - 22,70,105,108,101,76,111,97,100,101,114,46,108,111,97,100, - 95,109,111,100,117,108,101,40,4,0,0,243,2,0,0,0, - 16,10,114,39,1,0,0,115,16,0,0,0,16,21,22,32, - 34,38,16,39,16,61,52,60,16,61,9,61,114,10,0,0, - 0,99,2,0,0,0,0,0,0,0,0,0,0,0,1,0, - 0,0,3,0,0,0,243,6,0,0,0,124,0,106,0,83, - 0,169,2,122,58,82,101,116,117,114,110,32,116,104,101,32, - 112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114, - 99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100, - 32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,78, - 114,77,0,0,0,114,255,0,0,0,115,2,0,0,0,32, - 32,114,7,0,0,0,114,209,0,0,0,122,23,70,105,108, - 101,76,111,97,100,101,114,46,103,101,116,95,102,105,108,101, - 110,97,109,101,52,4,0,0,243,2,0,0,0,6,3,114, - 42,1,0,0,115,6,0,0,0,16,20,16,25,9,25,114, + 254,4,3,2,128,2,255,2,255,12,1,4,1,2,255,2, + 128,4,1,115,20,2,0,0,23,27,23,50,41,49,23,50, + 9,20,24,28,9,21,24,28,9,21,23,27,9,20,22,27, + 9,19,24,28,9,21,9,74,29,46,47,58,29,59,13,26, + 13,26,0,0,9,33,16,35,9,33,9,33,9,33,9,33, + 29,33,13,26,13,26,13,26,9,33,0,0,13,74,22,26, + 22,50,38,49,22,50,17,19,17,19,0,0,13,21,20,27, + 13,21,13,21,13,21,13,21,17,21,17,21,13,21,0,0, + 32,35,36,38,39,46,36,47,32,48,17,29,17,74,28,32, + 28,56,42,55,28,56,21,25,21,25,0,0,17,25,24,31, + 17,25,17,25,17,25,17,25,21,25,21,25,17,25,0,0, + 33,41,33,46,35,22,35,22,21,32,21,74,33,46,47,51, + 53,61,63,74,33,75,25,30,38,48,49,53,38,54,55,57, + 55,58,55,58,38,59,25,35,38,43,46,49,38,49,53,54, + 38,54,25,35,28,38,25,30,44,49,52,56,44,56,60,61, + 44,61,29,41,33,37,33,59,63,70,33,70,29,64,34,46, + 29,64,34,38,34,60,64,72,34,72,29,64,48,52,48,74, + 62,73,48,74,33,45,47,51,47,63,37,54,37,49,47,34, + 33,44,33,51,52,56,58,69,71,79,52,63,33,64,33,64, + 0,0,29,52,33,37,33,45,33,35,36,42,33,43,33,41, + 33,44,29,30,29,30,0,0,0,0,21,29,29,40,42,50, + 28,51,21,29,21,29,21,29,21,29,25,29,25,29,21,29, + 0,0,25,35,25,65,53,68,70,83,53,64,25,65,25,65, + 32,49,50,60,67,75,64,77,62,73,32,74,32,74,25,74, + 12,24,28,32,12,32,9,54,28,32,28,54,42,53,28,54, + 13,25,23,27,23,69,43,55,57,68,23,69,9,20,9,19, + 9,72,37,58,60,71,9,72,9,72,17,20,17,40,9,21, + 9,21,45,58,66,70,45,70,9,21,9,21,17,29,37,41, + 17,41,9,21,9,21,16,26,13,65,20,31,35,39,20,39, + 17,65,35,39,35,51,52,64,35,65,21,32,24,41,42,53, + 55,66,68,80,24,81,17,21,17,21,24,46,47,58,60,72, + 47,50,51,63,47,64,24,65,17,21,13,21,17,21,17,71, + 38,49,51,64,66,70,17,71,17,71,16,27,9,27,0,0, + 13,21,20,39,13,21,13,21,13,21,13,21,13,21,17,21, + 16,27,9,27,13,21,0,0,16,27,9,27,115,78,0,0, + 0,144,4,21,0,149,9,33,7,160,1,33,7,163,5,41, + 0,169,7,51,7,178,1,51,7,187,5,65,1,0,193,1, + 7,65,11,7,193,10,1,65,11,7,193,18,65,5,66,24, + 0,194,24,9,66,36,7,194,35,1,66,36,7,195,50,7, + 67,59,0,195,59,8,68,7,7,196,6,1,68,7,7,78, + 41,10,114,153,0,0,0,114,152,0,0,0,114,154,0,0, + 0,114,4,1,0,0,114,6,1,0,0,114,9,1,0,0, + 114,8,1,0,0,114,13,1,0,0,114,17,1,0,0,114, + 249,0,0,0,114,13,0,0,0,114,10,0,0,0,114,7, + 0,0,0,114,2,1,0,0,114,2,1,0,0,134,3,0, + 0,115,16,0,0,0,8,0,6,2,6,8,6,14,6,10, + 6,7,12,10,10,8,115,46,0,0,0,0,129,0,129,0, + 129,0,129,0,129,0,129,0,129,8,243,0,127,0,127,0, + 127,0,127,0,127,0,127,0,127,6,21,6,14,6,10,6, + 6,6,11,2,2,10,6,10,84,115,60,0,0,0,1,1, + 1,1,1,1,1,1,5,22,5,22,5,22,5,48,5,48, + 5,48,5,47,5,47,5,47,5,12,5,12,5,12,5,43, + 5,43,5,43,55,57,5,79,5,79,5,79,5,79,5,79, + 5,27,5,27,5,27,5,27,5,27,114,10,0,0,0,114, + 2,1,0,0,99,0,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,0,0,0,0,115,80,0,0,0,135,0, + 101,0,90,1,100,0,90,2,100,1,90,3,100,2,132,0, + 90,4,100,3,132,0,90,5,100,4,132,0,90,6,101,7, + 136,0,102,1,100,5,132,8,131,1,90,8,101,7,100,6, + 132,0,131,1,90,9,100,7,132,0,90,10,101,7,100,8, + 132,0,131,1,90,11,136,0,4,0,90,12,83,0,41,9, + 218,10,70,105,108,101,76,111,97,100,101,114,122,103,66,97, + 115,101,32,102,105,108,101,32,108,111,97,100,101,114,32,99, + 108,97,115,115,32,119,104,105,99,104,32,105,109,112,108,101, + 109,101,110,116,115,32,116,104,101,32,108,111,97,100,101,114, + 32,112,114,111,116,111,99,111,108,32,109,101,116,104,111,100, + 115,32,116,104,97,116,10,32,32,32,32,114,101,113,117,105, + 114,101,32,102,105,108,101,32,115,121,115,116,101,109,32,117, + 115,97,103,101,46,99,3,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,115,16,0,0,0,124, + 1,124,0,95,0,124,2,124,0,95,1,100,1,83,0,41, + 2,122,75,67,97,99,104,101,32,116,104,101,32,109,111,100, + 117,108,101,32,110,97,109,101,32,97,110,100,32,116,104,101, + 32,112,97,116,104,32,116,111,32,116,104,101,32,102,105,108, + 101,32,102,111,117,110,100,32,98,121,32,116,104,101,10,32, + 32,32,32,32,32,32,32,102,105,110,100,101,114,46,78,114, + 186,0,0,0,41,3,114,147,0,0,0,114,166,0,0,0, + 114,67,0,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,114,242,0,0,0,122,19,70,105,108,101,76,111,97, + 100,101,114,46,95,95,105,110,105,116,95,95,27,4,0,0, + 243,4,0,0,0,6,3,10,1,114,24,1,0,0,115,16, + 0,0,0,21,29,9,13,9,18,21,25,9,13,9,18,9, + 18,9,18,114,10,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,243,24,0, + 0,0,124,0,106,0,124,1,106,0,107,2,111,11,124,0, + 106,1,124,1,106,1,107,2,83,0,114,71,0,0,0,169, + 2,218,9,95,95,99,108,97,115,115,95,95,114,159,0,0, + 0,169,2,114,147,0,0,0,90,5,111,116,104,101,114,115, + 2,0,0,0,32,32,114,7,0,0,0,218,6,95,95,101, + 113,95,95,122,17,70,105,108,101,76,111,97,100,101,114,46, + 95,95,101,113,95,95,33,4,0,0,243,6,0,0,0,12, + 1,10,1,2,255,243,4,0,0,0,10,1,14,1,115,24, + 0,0,0,17,21,17,31,35,40,35,50,17,50,17,48,17, + 21,17,30,34,39,34,48,17,48,9,49,114,10,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0, + 0,3,0,0,0,243,20,0,0,0,116,0,124,0,106,1, + 131,1,116,0,124,0,106,2,131,1,65,0,83,0,114,71, + 0,0,0,169,3,218,4,104,97,115,104,114,145,0,0,0, + 114,67,0,0,0,169,1,114,147,0,0,0,115,1,0,0, + 0,32,114,7,0,0,0,218,8,95,95,104,97,115,104,95, + 95,122,19,70,105,108,101,76,111,97,100,101,114,46,95,95, + 104,97,115,104,95,95,37,4,0,0,243,2,0,0,0,20, + 1,114,37,1,0,0,115,20,0,0,0,16,20,21,25,21, + 30,16,31,34,38,39,43,39,48,34,49,16,49,9,49,114, 10,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,9,0,0,0,3,0,0,0,115,136,0,0,0,116,0, - 124,0,116,1,116,2,102,2,131,2,114,38,116,3,106,4, - 116,5,124,1,131,1,131,1,53,0,125,2,124,2,160,6, - 161,0,2,0,100,1,4,0,4,0,131,3,1,0,83,0, - 35,0,49,0,115,30,119,4,37,0,1,0,1,0,1,0, - 89,0,1,0,1,0,100,1,83,0,116,3,106,7,124,1, - 100,2,131,2,53,0,125,2,124,2,160,6,161,0,2,0, - 100,1,4,0,4,0,131,3,1,0,83,0,35,0,49,0, - 115,60,119,4,37,0,1,0,1,0,1,0,89,0,1,0, - 1,0,100,1,83,0,41,3,122,39,82,101,116,117,114,110, - 32,116,104,101,32,100,97,116,97,32,102,114,111,109,32,112, - 97,116,104,32,97,115,32,114,97,119,32,98,121,116,101,115, - 46,78,218,1,114,41,8,114,188,0,0,0,114,2,1,0, - 0,218,19,69,120,116,101,110,115,105,111,110,70,105,108,101, - 76,111,97,100,101,114,114,95,0,0,0,90,9,111,112,101, - 110,95,99,111,100,101,114,113,0,0,0,90,4,114,101,97, - 100,114,96,0,0,0,41,3,114,147,0,0,0,114,67,0, - 0,0,114,98,0,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,114,11,1,0,0,122,19,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,100,97,116,97,57,4, - 0,0,115,22,0,0,0,14,2,16,1,6,1,22,255,2, - 128,16,0,14,3,6,1,22,255,2,128,16,0,115,28,0, - 0,0,12,2,2,5,12,252,2,1,2,255,28,1,2,128, - 16,0,10,2,2,1,2,255,28,1,2,128,16,0,115,136, - 0,0,0,12,22,23,27,30,42,44,63,29,64,12,65,9, - 35,18,21,18,31,32,35,36,40,32,41,18,42,13,35,46, - 50,24,28,24,35,24,35,13,35,13,35,13,35,13,35,13, - 35,13,35,13,35,13,35,13,35,13,35,13,35,0,0,13, - 35,13,35,13,35,13,35,13,35,13,35,13,35,13,35,18, - 21,18,28,29,33,35,38,18,39,13,35,43,47,24,28,24, - 35,24,35,13,35,13,35,13,35,13,35,13,35,13,35,13, - 35,13,35,13,35,13,35,13,35,0,0,13,35,13,35,13, - 35,13,35,13,35,13,35,13,35,13,35,115,24,0,0,0, - 142,4,25,3,153,4,29,11,158,3,29,11,172,4,55,3, - 183,4,59,11,188,3,59,11,99,2,0,0,0,0,0,0, - 0,0,0,0,0,2,0,0,0,3,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,218,17, - 105,109,112,111,114,116,108,105,98,46,114,101,97,100,101,114, - 115,114,45,1,0,0,41,3,114,147,0,0,0,114,252,0, - 0,0,114,45,1,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,218,19,103,101,116,95,114,101,115,111,117,114, - 99,101,95,114,101,97,100,101,114,122,30,70,105,108,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,66,4,0,0,243,4,0, - 0,0,12,2,8,1,114,48,1,0,0,115,20,0,0,0, - 9,49,9,49,9,49,9,49,9,49,9,49,16,26,27,31, - 16,32,9,32,114,10,0,0,0,41,13,114,153,0,0,0, - 114,152,0,0,0,114,154,0,0,0,114,155,0,0,0,114, - 242,0,0,0,114,29,1,0,0,114,36,1,0,0,114,163, - 0,0,0,114,0,1,0,0,114,209,0,0,0,114,11,1, - 0,0,114,47,1,0,0,90,13,95,95,99,108,97,115,115, - 99,101,108,108,95,95,41,1,114,27,1,0,0,115,1,0, - 0,0,64,114,7,0,0,0,114,23,1,0,0,114,23,1, - 0,0,22,4,0,0,115,24,0,0,0,10,128,4,2,6, - 3,6,6,6,4,2,3,12,1,2,11,8,1,6,4,2, - 9,16,1,115,92,0,0,0,2,128,0,129,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,8,226,0,127,0,127, - 0,127,0,127,0,127,0,127,0,127,0,127,2,33,0,129, - 0,129,0,129,0,129,0,129,0,129,0,129,0,129,2,223, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 6,39,6,4,6,3,2,2,12,10,2,2,8,3,6,9, - 2,2,16,3,115,80,0,0,0,0,0,1,1,1,1,1, - 1,1,1,5,34,1,1,5,25,5,25,5,25,5,49,5, - 49,5,49,5,49,5,49,5,49,6,17,5,61,5,61,5, - 61,5,61,5,61,5,61,6,17,5,25,5,25,5,25,5, - 25,5,35,5,35,5,35,6,17,5,32,5,32,5,32,5, - 32,5,32,5,32,5,32,5,32,114,10,0,0,0,114,23, - 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,0,0,0,0,115,40,0,0,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,132,0,90,4,100, - 3,132,0,90,5,100,4,100,5,156,1,100,6,132,2,90, - 6,100,7,83,0,41,8,218,16,83,111,117,114,99,101,70, - 105,108,101,76,111,97,100,101,114,122,62,67,111,110,99,114, - 101,116,101,32,105,109,112,108,101,109,101,110,116,97,116,105, - 111,110,32,111,102,32,83,111,117,114,99,101,76,111,97,100, - 101,114,32,117,115,105,110,103,32,116,104,101,32,102,105,108, - 101,32,115,121,115,116,101,109,46,99,2,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,115,22, - 0,0,0,116,0,124,1,131,1,125,2,124,2,106,1,124, - 2,106,2,100,1,156,2,83,0,41,3,122,33,82,101,116, - 117,114,110,32,116,104,101,32,109,101,116,97,100,97,116,97, - 32,102,111,114,32,116,104,101,32,112,97,116,104,46,41,2, - 114,196,0,0,0,114,18,1,0,0,78,41,3,114,78,0, - 0,0,218,8,115,116,95,109,116,105,109,101,90,7,115,116, - 95,115,105,122,101,41,3,114,147,0,0,0,114,67,0,0, - 0,114,22,1,0,0,115,3,0,0,0,32,32,32,114,7, - 0,0,0,114,6,1,0,0,122,27,83,111,117,114,99,101, - 70,105,108,101,76,111,97,100,101,114,46,112,97,116,104,95, - 115,116,97,116,115,76,4,0,0,243,4,0,0,0,8,2, - 14,1,114,51,1,0,0,115,22,0,0,0,14,24,25,29, - 14,30,9,11,26,28,26,37,47,49,47,57,16,58,16,58, - 9,58,114,10,0,0,0,99,4,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,3,0,0,0,115,24,0,0, - 0,116,0,124,1,131,1,125,4,124,0,160,1,124,2,124, - 3,124,4,100,1,166,3,83,0,41,2,78,169,1,218,5, - 95,109,111,100,101,41,2,114,143,0,0,0,114,8,1,0, - 0,41,5,114,147,0,0,0,114,138,0,0,0,114,136,0, - 0,0,114,44,0,0,0,114,82,0,0,0,115,5,0,0, - 0,32,32,32,32,32,114,7,0,0,0,114,9,1,0,0, - 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,81,4,0,0,243,4,0,0,0,8,2,16,1,114, - 54,1,0,0,115,24,0,0,0,16,26,27,38,16,39,9, - 13,16,20,16,62,30,43,45,49,57,61,16,62,16,62,9, - 62,114,10,0,0,0,114,91,0,0,0,114,52,1,0,0, - 99,3,0,0,0,0,0,0,0,1,0,0,0,9,0,0, - 0,3,0,0,0,115,250,0,0,0,116,0,124,1,131,1, - 92,2,125,4,125,5,103,0,125,6,124,4,114,31,116,1, - 124,4,131,1,115,31,116,0,124,4,131,1,92,2,125,4, - 125,7,124,6,160,2,124,7,161,1,1,0,124,4,114,31, - 116,1,124,4,131,1,114,14,116,3,124,6,131,1,68,0, - 93,47,125,7,116,4,124,4,124,7,131,2,125,4,9,0, - 116,5,106,6,124,4,131,1,1,0,113,35,35,0,4,0, - 116,7,121,58,1,0,1,0,1,0,89,0,113,35,4,0, - 116,8,121,124,1,0,125,8,1,0,116,9,160,10,100,1, - 124,4,124,8,161,3,1,0,89,0,100,2,125,8,126,8, - 1,0,100,2,83,0,100,2,125,8,126,8,119,1,37,0, + 0,3,0,0,0,3,0,0,0,115,16,0,0,0,116,0, + 116,1,124,0,131,2,160,2,124,1,161,1,83,0,41,2, + 122,100,76,111,97,100,32,97,32,109,111,100,117,108,101,32, + 102,114,111,109,32,97,32,102,105,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,78,41,3,218,5,115,117,112,101,114, + 114,23,1,0,0,114,0,1,0,0,41,3,114,147,0,0, + 0,114,166,0,0,0,114,27,1,0,0,115,3,0,0,0, + 32,32,128,114,7,0,0,0,114,0,1,0,0,122,22,70, + 105,108,101,76,111,97,100,101,114,46,108,111,97,100,95,109, + 111,100,117,108,101,40,4,0,0,243,2,0,0,0,16,10, + 114,39,1,0,0,115,16,0,0,0,16,21,22,32,34,38, + 16,39,16,61,52,60,16,61,9,61,114,10,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,243,6,0,0,0,124,0,106,0,83,0,169, + 2,122,58,82,101,116,117,114,110,32,116,104,101,32,112,97, + 116,104,32,116,111,32,116,104,101,32,115,111,117,114,99,101, + 32,102,105,108,101,32,97,115,32,102,111,117,110,100,32,98, + 121,32,116,104,101,32,102,105,110,100,101,114,46,78,114,77, + 0,0,0,114,255,0,0,0,115,2,0,0,0,32,32,114, + 7,0,0,0,114,209,0,0,0,122,23,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, + 109,101,52,4,0,0,243,2,0,0,0,6,3,114,42,1, + 0,0,115,6,0,0,0,16,20,16,25,9,25,114,10,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,9, + 0,0,0,3,0,0,0,115,136,0,0,0,116,0,124,0, + 116,1,116,2,102,2,131,2,114,38,116,3,106,4,116,5, + 124,1,131,1,131,1,53,0,125,2,124,2,160,6,161,0, + 2,0,100,1,4,0,4,0,131,3,1,0,83,0,35,0, + 49,0,115,30,119,4,37,0,1,0,1,0,1,0,89,0, + 1,0,1,0,100,1,83,0,116,3,106,7,124,1,100,2, + 131,2,53,0,125,2,124,2,160,6,161,0,2,0,100,1, + 4,0,4,0,131,3,1,0,83,0,35,0,49,0,115,60, + 119,4,37,0,1,0,1,0,1,0,89,0,1,0,1,0, + 100,1,83,0,41,3,122,39,82,101,116,117,114,110,32,116, + 104,101,32,100,97,116,97,32,102,114,111,109,32,112,97,116, + 104,32,97,115,32,114,97,119,32,98,121,116,101,115,46,78, + 218,1,114,41,8,114,188,0,0,0,114,2,1,0,0,218, + 19,69,120,116,101,110,115,105,111,110,70,105,108,101,76,111, + 97,100,101,114,114,95,0,0,0,90,9,111,112,101,110,95, + 99,111,100,101,114,113,0,0,0,90,4,114,101,97,100,114, + 96,0,0,0,41,3,114,147,0,0,0,114,67,0,0,0, + 114,98,0,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,114,11,1,0,0,122,19,70,105,108,101,76,111,97, + 100,101,114,46,103,101,116,95,100,97,116,97,57,4,0,0, + 115,22,0,0,0,14,2,16,1,6,1,22,255,2,128,16, + 0,14,3,6,1,22,255,2,128,16,0,115,28,0,0,0, + 12,2,2,5,12,252,2,1,2,255,28,1,2,128,16,0, + 10,2,2,1,2,255,28,1,2,128,16,0,115,136,0,0, + 0,12,22,23,27,30,42,44,63,29,64,12,65,9,35,18, + 21,18,31,32,35,36,40,32,41,18,42,13,35,46,50,24, + 28,24,35,24,35,13,35,13,35,13,35,13,35,13,35,13, + 35,13,35,13,35,13,35,13,35,13,35,0,0,13,35,13, + 35,13,35,13,35,13,35,13,35,13,35,13,35,18,21,18, + 28,29,33,35,38,18,39,13,35,43,47,24,28,24,35,24, + 35,13,35,13,35,13,35,13,35,13,35,13,35,13,35,13, + 35,13,35,13,35,13,35,0,0,13,35,13,35,13,35,13, + 35,13,35,13,35,13,35,13,35,115,24,0,0,0,142,4, + 25,3,153,4,29,11,158,3,29,11,172,4,55,3,183,4, + 59,11,188,3,59,11,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,3,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,218,17,105,109, + 112,111,114,116,108,105,98,46,114,101,97,100,101,114,115,114, + 45,1,0,0,41,3,114,147,0,0,0,114,252,0,0,0, + 114,45,1,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,218,19,103,101,116,95,114,101,115,111,117,114,99,101, + 95,114,101,97,100,101,114,122,30,70,105,108,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,66,4,0,0,243,4,0,0,0, + 12,2,8,1,114,48,1,0,0,115,20,0,0,0,9,49, + 9,49,9,49,9,49,9,49,9,49,16,26,27,31,16,32, + 9,32,114,10,0,0,0,41,13,114,153,0,0,0,114,152, + 0,0,0,114,154,0,0,0,114,155,0,0,0,114,242,0, + 0,0,114,29,1,0,0,114,36,1,0,0,114,163,0,0, + 0,114,0,1,0,0,114,209,0,0,0,114,11,1,0,0, + 114,47,1,0,0,90,13,95,95,99,108,97,115,115,99,101, + 108,108,95,95,41,1,114,27,1,0,0,115,1,0,0,0, + 64,114,7,0,0,0,114,23,1,0,0,114,23,1,0,0, + 22,4,0,0,115,24,0,0,0,10,128,4,2,6,3,6, + 6,6,4,2,3,12,1,2,11,8,1,6,4,2,9,16, + 1,115,92,0,0,0,2,128,0,129,0,129,0,129,0,129, + 0,129,0,129,0,129,0,129,8,226,0,127,0,127,0,127, + 0,127,0,127,0,127,0,127,0,127,2,33,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,0,129,2,223,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,6,39, + 6,4,6,3,2,2,12,10,2,2,8,3,6,9,2,2, + 16,3,115,80,0,0,0,0,0,1,1,1,1,1,1,1, + 1,5,34,1,1,5,25,5,25,5,25,5,49,5,49,5, + 49,5,49,5,49,5,49,6,17,5,61,5,61,5,61,5, + 61,5,61,5,61,6,17,5,25,5,25,5,25,5,25,5, + 35,5,35,5,35,6,17,5,32,5,32,5,32,5,32,5, + 32,5,32,5,32,5,32,114,10,0,0,0,114,23,1,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,0,0,0,0,115,40,0,0,0,101,0,90,1,100, + 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, + 0,90,5,100,4,100,5,156,1,100,6,132,2,90,6,100, + 7,83,0,41,8,218,16,83,111,117,114,99,101,70,105,108, + 101,76,111,97,100,101,114,122,62,67,111,110,99,114,101,116, + 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,111,102,32,83,111,117,114,99,101,76,111,97,100,101,114, + 32,117,115,105,110,103,32,116,104,101,32,102,105,108,101,32, + 115,121,115,116,101,109,46,99,2,0,0,0,0,0,0,0, + 0,0,0,0,3,0,0,0,3,0,0,0,115,22,0,0, + 0,116,0,124,1,131,1,125,2,124,2,106,1,124,2,106, + 2,100,1,156,2,83,0,41,3,122,33,82,101,116,117,114, + 110,32,116,104,101,32,109,101,116,97,100,97,116,97,32,102, + 111,114,32,116,104,101,32,112,97,116,104,46,41,2,114,196, + 0,0,0,114,18,1,0,0,78,41,3,114,78,0,0,0, + 218,8,115,116,95,109,116,105,109,101,90,7,115,116,95,115, + 105,122,101,41,3,114,147,0,0,0,114,67,0,0,0,114, + 22,1,0,0,115,3,0,0,0,32,32,32,114,7,0,0, + 0,114,6,1,0,0,122,27,83,111,117,114,99,101,70,105, + 108,101,76,111,97,100,101,114,46,112,97,116,104,95,115,116, + 97,116,115,76,4,0,0,243,4,0,0,0,8,2,14,1, + 114,51,1,0,0,115,22,0,0,0,14,24,25,29,14,30, + 9,11,26,28,26,37,47,49,47,57,16,58,16,58,9,58, + 114,10,0,0,0,99,4,0,0,0,0,0,0,0,0,0, + 0,0,6,0,0,0,3,0,0,0,115,24,0,0,0,116, + 0,124,1,131,1,125,4,124,0,160,1,124,2,124,3,124, + 4,100,1,166,3,83,0,41,2,78,169,1,218,5,95,109, + 111,100,101,41,2,114,143,0,0,0,114,8,1,0,0,41, + 5,114,147,0,0,0,114,138,0,0,0,114,136,0,0,0, + 114,44,0,0,0,114,82,0,0,0,115,5,0,0,0,32, + 32,32,32,32,114,7,0,0,0,114,9,1,0,0,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, + 81,4,0,0,243,4,0,0,0,8,2,16,1,114,54,1, + 0,0,115,24,0,0,0,16,26,27,38,16,39,9,13,16, + 20,16,62,30,43,45,49,57,61,16,62,16,62,9,62,114, + 10,0,0,0,114,91,0,0,0,114,52,1,0,0,99,3, + 0,0,0,0,0,0,0,1,0,0,0,9,0,0,0,3, + 0,0,0,115,250,0,0,0,116,0,124,1,131,1,92,2, + 125,4,125,5,103,0,125,6,124,4,114,31,116,1,124,4, + 131,1,115,31,116,0,124,4,131,1,92,2,125,4,125,7, + 124,6,160,2,124,7,161,1,1,0,124,4,114,31,116,1, + 124,4,131,1,114,14,116,3,124,6,131,1,68,0,93,48, + 125,7,116,4,124,4,124,7,131,2,125,4,9,0,116,5, + 106,6,124,4,131,1,1,0,113,35,35,0,4,0,116,7, + 121,58,1,0,1,0,1,0,89,0,113,35,4,0,116,8, + 121,82,1,0,125,8,1,0,116,9,160,10,100,1,124,4, + 124,8,161,3,1,0,89,0,100,2,125,8,126,8,1,0, + 100,2,83,0,100,2,125,8,126,8,119,1,119,0,37,0, 9,0,116,11,124,1,124,2,124,3,131,3,1,0,116,9, 160,10,100,3,124,1,161,2,1,0,100,2,83,0,35,0, 4,0,116,8,121,123,1,0,125,8,1,0,116,9,160,10, 100,1,124,1,124,8,161,3,1,0,89,0,100,2,125,8, - 126,8,100,2,83,0,100,2,125,8,126,8,119,1,37,0, - 119,0,119,0,41,4,122,27,87,114,105,116,101,32,98,121, - 116,101,115,32,100,97,116,97,32,116,111,32,97,32,102,105, - 108,101,46,122,27,99,111,117,108,100,32,110,111,116,32,99, - 114,101,97,116,101,32,123,33,114,125,58,32,123,33,114,125, - 78,122,12,99,114,101,97,116,101,100,32,123,33,114,125,41, - 12,114,76,0,0,0,114,87,0,0,0,114,63,0,0,0, - 218,8,114,101,118,101,114,115,101,100,114,69,0,0,0,114, - 21,0,0,0,90,5,109,107,100,105,114,218,15,70,105,108, - 101,69,120,105,115,116,115,69,114,114,111,114,114,80,0,0, - 0,114,162,0,0,0,114,176,0,0,0,114,99,0,0,0, - 41,9,114,147,0,0,0,114,67,0,0,0,114,44,0,0, - 0,114,53,1,0,0,218,6,112,97,114,101,110,116,114,124, - 0,0,0,114,65,0,0,0,114,70,0,0,0,114,12,1, - 0,0,115,9,0,0,0,32,32,32,32,32,32,32,32,32, - 114,7,0,0,0,114,8,1,0,0,122,25,83,111,117,114, - 99,101,70,105,108,101,76,111,97,100,101,114,46,115,101,116, - 95,100,97,116,97,86,4,0,0,115,60,0,0,0,12,2, - 4,1,12,2,12,1,10,1,12,254,12,4,10,1,2,1, - 12,1,2,128,12,1,4,2,12,1,6,3,4,1,4,255, - 14,2,10,128,2,1,12,1,16,1,2,128,12,1,8,2, - 2,1,16,255,10,128,2,254,2,247,115,90,0,0,0,12, - 2,4,1,2,2,2,2,6,254,2,2,12,255,10,1,2, - 254,2,2,6,254,2,2,6,2,4,12,2,244,10,1,2, - 11,12,247,2,128,2,3,2,254,12,2,2,6,2,251,8, - 5,2,254,2,1,2,255,8,1,14,1,10,128,2,7,12, - 251,16,1,2,128,2,4,2,253,8,3,2,255,2,1,4, - 255,18,1,10,128,2,0,2,249,115,250,0,0,0,28,39, - 40,44,28,45,9,25,9,15,17,25,22,24,9,19,15,21, - 9,36,30,41,42,48,30,49,9,36,28,39,40,46,28,47, - 13,25,13,19,21,25,13,23,13,36,31,35,13,36,13,36, - 15,21,9,36,30,41,42,48,30,49,9,36,21,29,30,40, - 21,41,9,23,9,23,13,17,22,32,33,39,41,45,22,46, - 13,19,13,23,17,20,17,26,27,33,17,34,17,34,17,34, - 0,0,13,25,20,35,13,25,13,25,13,25,13,25,17,25, - 17,25,13,23,20,27,13,23,13,23,13,23,13,23,17,27, - 17,57,45,74,45,51,53,56,17,57,17,57,17,23,17,23, - 17,23,17,23,17,23,17,23,17,23,0,0,0,0,0,0, - 0,0,0,0,9,45,13,26,27,31,33,37,39,44,13,45, - 13,45,13,23,13,62,41,55,57,61,13,62,13,62,13,62, - 13,62,0,0,9,45,16,23,9,45,9,45,9,45,9,45, - 13,23,13,45,41,70,72,76,41,44,13,45,13,45,13,45, - 13,45,13,45,13,45,13,45,13,45,0,0,0,0,0,0, - 0,0,0,0,9,45,13,23,115,62,0,0,0,171,5,49, - 2,177,7,65,18,9,186,6,65,18,9,193,0,7,65,14, - 9,193,14,4,65,18,9,193,20,12,65,34,0,193,34,7, - 65,58,7,193,41,7,65,54,7,193,54,4,65,58,7,193, - 59,1,65,58,7,193,60,1,65,18,9,78,41,7,114,153, - 0,0,0,114,152,0,0,0,114,154,0,0,0,114,155,0, - 0,0,114,6,1,0,0,114,9,1,0,0,114,8,1,0, - 0,114,13,0,0,0,114,10,0,0,0,114,7,0,0,0, - 114,49,1,0,0,114,49,1,0,0,72,4,0,0,115,10, - 0,0,0,8,0,4,2,6,2,6,5,16,5,115,78,0, - 0,0,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 0,129,8,176,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,2,82,0,129,0,129,0,129,0,129,0,129, - 0,129,0,129,0,129,2,174,0,127,0,127,0,127,0,127, - 0,127,0,127,0,127,0,127,6,87,6,5,2,2,14,28, - 115,40,0,0,0,1,1,1,1,1,1,1,1,5,73,1, - 1,5,58,5,58,5,58,5,62,5,62,5,62,45,50,5, - 45,5,45,5,45,5,45,5,45,5,45,5,45,114,10,0, - 0,0,114,49,1,0,0,99,0,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,0,0,0,0,115,28,0,0, - 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, - 0,90,4,100,3,132,0,90,5,100,4,83,0,41,5,218, - 20,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, - 111,97,100,101,114,122,45,76,111,97,100,101,114,32,119,104, - 105,99,104,32,104,97,110,100,108,101,115,32,115,111,117,114, - 99,101,108,101,115,115,32,102,105,108,101,32,105,109,112,111, - 114,116,115,46,99,2,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,3,0,0,0,115,68,0,0,0,124,0, - 160,0,124,1,161,1,125,2,124,0,160,1,124,2,161,1, - 125,3,124,1,124,2,100,1,156,2,125,4,116,2,124,3, - 124,1,124,4,131,3,1,0,116,3,116,4,124,3,131,1, - 100,2,100,0,133,2,25,0,124,1,124,2,100,3,141,3, - 83,0,41,4,78,114,186,0,0,0,114,172,0,0,0,41, - 2,114,145,0,0,0,114,136,0,0,0,41,5,114,209,0, - 0,0,114,11,1,0,0,114,179,0,0,0,114,192,0,0, - 0,114,19,1,0,0,41,5,114,147,0,0,0,114,166,0, - 0,0,114,67,0,0,0,114,44,0,0,0,114,178,0,0, - 0,115,5,0,0,0,32,32,32,32,32,114,7,0,0,0, - 114,249,0,0,0,122,29,83,111,117,114,99,101,108,101,115, - 115,70,105,108,101,76,111,97,100,101,114,46,103,101,116,95, - 99,111,100,101,121,4,0,0,115,22,0,0,0,10,1,10, - 1,2,4,2,1,6,254,12,4,2,1,14,1,2,1,2, - 1,6,253,115,24,0,0,0,10,1,10,1,2,4,2,1, - 4,1,2,253,12,4,2,1,14,1,2,1,2,1,6,1, - 115,68,0,0,0,16,20,16,43,34,42,16,43,9,13,16, - 20,16,35,30,34,16,35,9,13,21,29,21,25,23,10,23, - 10,9,20,9,22,23,27,29,37,39,50,9,51,9,51,16, - 33,13,23,24,28,13,29,30,32,30,33,30,33,13,34,18, - 26,27,31,16,10,16,10,9,10,114,10,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, - 0,0,0,114,26,0,0,0,41,2,122,39,82,101,116,117, - 114,110,32,78,111,110,101,32,97,115,32,116,104,101,114,101, - 32,105,115,32,110,111,32,115,111,117,114,99,101,32,99,111, - 100,101,46,78,114,13,0,0,0,114,255,0,0,0,115,2, - 0,0,0,32,32,114,7,0,0,0,114,13,1,0,0,122, - 31,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,115,111,117,114,99,101, - 137,4,0,0,114,27,0,0,0,114,27,0,0,0,115,4, - 0,0,0,16,20,16,20,114,10,0,0,0,78,41,6,114, - 153,0,0,0,114,152,0,0,0,114,154,0,0,0,114,155, - 0,0,0,114,249,0,0,0,114,13,1,0,0,114,13,0, - 0,0,114,10,0,0,0,114,7,0,0,0,114,58,1,0, - 0,114,58,1,0,0,117,4,0,0,115,8,0,0,0,8, - 0,4,2,6,2,10,16,115,76,0,0,0,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,0,129,8,131,0,127, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,2,127, + 126,8,100,2,83,0,100,2,125,8,126,8,119,1,119,0, + 37,0,41,4,122,27,87,114,105,116,101,32,98,121,116,101, + 115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,101, + 46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,101, + 97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,122, + 12,99,114,101,97,116,101,100,32,123,33,114,125,41,12,114, + 76,0,0,0,114,87,0,0,0,114,63,0,0,0,218,8, + 114,101,118,101,114,115,101,100,114,69,0,0,0,114,21,0, + 0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,69, + 120,105,115,116,115,69,114,114,111,114,114,80,0,0,0,114, + 162,0,0,0,114,176,0,0,0,114,99,0,0,0,41,9, + 114,147,0,0,0,114,67,0,0,0,114,44,0,0,0,114, + 53,1,0,0,218,6,112,97,114,101,110,116,114,124,0,0, + 0,114,65,0,0,0,114,70,0,0,0,114,12,1,0,0, + 115,9,0,0,0,32,32,32,32,32,32,32,32,32,114,7, + 0,0,0,114,8,1,0,0,122,25,83,111,117,114,99,101, + 70,105,108,101,76,111,97,100,101,114,46,115,101,116,95,100, + 97,116,97,86,4,0,0,115,64,0,0,0,12,2,4,1, + 12,2,12,1,10,1,12,254,12,4,10,1,2,1,12,1, + 2,128,12,1,4,2,12,1,6,3,4,1,4,255,14,2, + 8,128,2,251,2,128,2,6,12,1,16,1,2,128,12,1, + 8,2,2,1,16,255,8,128,2,254,2,128,115,94,0,0, + 0,12,2,4,1,2,2,2,2,6,254,2,2,12,255,10, + 1,2,254,2,2,6,254,2,2,6,2,4,12,2,244,10, + 1,2,11,12,247,2,128,2,3,2,254,12,2,2,6,2, + 251,8,5,2,254,2,1,2,255,8,1,14,1,8,128,2, + 0,2,128,2,7,12,251,16,1,2,128,2,4,2,253,8, + 3,2,255,2,1,4,255,18,1,8,128,2,0,2,128,115, + 250,0,0,0,28,39,40,44,28,45,9,25,9,15,17,25, + 22,24,9,19,15,21,9,36,30,41,42,48,30,49,9,36, + 28,39,40,46,28,47,13,25,13,19,21,25,13,23,13,36, + 31,35,13,36,13,36,15,21,9,36,30,41,42,48,30,49, + 9,36,21,29,30,40,21,41,9,23,9,23,13,17,22,32, + 33,39,41,45,22,46,13,19,13,23,17,20,17,26,27,33, + 17,34,17,34,17,34,0,0,13,25,20,35,13,25,13,25, + 13,25,13,25,17,25,17,25,13,23,20,27,13,23,13,23, + 13,23,13,23,17,27,17,57,45,74,45,51,53,56,17,57, + 17,57,17,23,17,23,17,23,17,23,17,23,17,23,17,23, + 0,0,0,0,0,0,0,0,13,23,0,0,9,45,13,26, + 27,31,33,37,39,44,13,45,13,45,13,23,13,62,41,55, + 57,61,13,62,13,62,13,62,13,62,0,0,9,45,16,23, + 9,45,9,45,9,45,9,45,13,23,13,45,41,70,72,76, + 41,44,13,45,13,45,13,45,13,45,13,45,13,45,13,45, + 13,45,0,0,0,0,0,0,0,0,9,45,0,0,115,50, + 0,0,0,171,5,49,2,177,7,65,19,9,186,6,65,19, + 9,193,0,7,65,14,9,193,14,5,65,19,9,193,21,12, + 65,35,0,193,35,7,65,60,7,193,42,7,65,55,7,193, + 55,5,65,60,7,78,41,7,114,153,0,0,0,114,152,0, + 0,0,114,154,0,0,0,114,155,0,0,0,114,6,1,0, + 0,114,9,1,0,0,114,8,1,0,0,114,13,0,0,0, + 114,10,0,0,0,114,7,0,0,0,114,49,1,0,0,114, + 49,1,0,0,72,4,0,0,115,10,0,0,0,8,0,4, + 2,6,2,6,5,16,5,115,78,0,0,0,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,0,129,8,176,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,2,82, 0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 2,129,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,6,16,10,4,115,28,0,0,0,1,1,1, - 1,1,1,1,1,5,56,1,1,5,10,5,10,5,10,5, - 20,5,20,5,20,5,20,5,20,114,10,0,0,0,114,58, - 1,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,0,0,0,0,115,74,0,0,0,101,0,90, - 1,100,0,90,2,100,1,90,3,100,2,132,0,90,4,100, - 3,132,0,90,5,100,4,132,0,90,6,100,5,132,0,90, - 7,100,6,132,0,90,8,100,7,132,0,90,9,100,8,132, - 0,90,10,100,9,132,0,90,11,101,12,100,10,132,0,131, - 1,90,13,100,11,83,0,41,12,114,44,1,0,0,122,93, - 76,111,97,100,101,114,32,102,111,114,32,101,120,116,101,110, - 115,105,111,110,32,109,111,100,117,108,101,115,46,10,10,32, - 32,32,32,84,104,101,32,99,111,110,115,116,114,117,99,116, - 111,114,32,105,115,32,100,101,115,105,103,110,101,100,32,116, - 111,32,119,111,114,107,32,119,105,116,104,32,70,105,108,101, - 70,105,110,100,101,114,46,10,10,32,32,32,32,99,3,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,0, - 0,0,115,16,0,0,0,124,1,124,0,95,0,124,2,124, - 0,95,1,100,0,83,0,114,71,0,0,0,114,186,0,0, - 0,41,3,114,147,0,0,0,114,145,0,0,0,114,67,0, - 0,0,115,3,0,0,0,32,32,32,114,7,0,0,0,114, - 242,0,0,0,122,28,69,120,116,101,110,115,105,111,110,70, - 105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116, - 95,95,150,4,0,0,243,4,0,0,0,6,1,10,1,114, - 59,1,0,0,115,16,0,0,0,21,25,9,13,9,18,21, - 25,9,13,9,18,9,18,9,18,114,10,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 0,0,0,114,25,1,0,0,114,71,0,0,0,114,26,1, - 0,0,114,28,1,0,0,115,2,0,0,0,32,32,114,7, - 0,0,0,114,29,1,0,0,122,26,69,120,116,101,110,115, - 105,111,110,70,105,108,101,76,111,97,100,101,114,46,95,95, - 101,113,95,95,154,4,0,0,114,30,1,0,0,114,31,1, - 0,0,115,24,0,0,0,17,21,17,31,35,40,35,50,17, - 50,17,48,17,21,17,30,34,39,34,48,17,48,9,49,114, - 10,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,3,0,0,0,3,0,0,0,114,32,1,0,0,114,71, - 0,0,0,114,33,1,0,0,114,35,1,0,0,115,1,0, - 0,0,32,114,7,0,0,0,114,36,1,0,0,122,28,69, - 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,95,95,104,97,115,104,95,95,158,4,0,0,114, - 37,1,0,0,114,37,1,0,0,115,20,0,0,0,16,20, - 21,25,21,30,16,31,34,38,39,43,39,48,34,49,16,49, - 9,49,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,3,0,0,0,115,36,0,0, - 0,116,0,160,1,116,2,106,3,124,1,161,2,125,2,116, - 0,160,4,100,1,124,1,106,5,124,0,106,6,161,3,1, - 0,124,2,83,0,41,3,122,40,67,114,101,97,116,101,32, - 97,110,32,117,110,105,110,105,116,105,97,108,105,122,101,100, - 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, - 101,122,38,101,120,116,101,110,115,105,111,110,32,109,111,100, - 117,108,101,32,123,33,114,125,32,108,111,97,100,101,100,32, - 102,114,111,109,32,123,33,114,125,78,41,7,114,162,0,0, - 0,114,250,0,0,0,114,190,0,0,0,90,14,99,114,101, - 97,116,101,95,100,121,110,97,109,105,99,114,176,0,0,0, - 114,145,0,0,0,114,67,0,0,0,41,3,114,147,0,0, - 0,114,216,0,0,0,114,252,0,0,0,115,3,0,0,0, - 32,32,32,114,7,0,0,0,114,246,0,0,0,122,33,69, - 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,99,114,101,97,116,101,95,109,111,100,117,108,101, - 161,4,0,0,115,14,0,0,0,4,2,6,1,4,255,6, - 2,8,1,4,255,4,2,115,16,0,0,0,2,2,10,1, - 2,255,2,2,2,1,2,255,12,1,4,1,115,36,0,0, - 0,18,28,18,39,13,17,13,32,34,38,18,39,9,15,9, - 19,9,47,37,77,26,30,26,35,37,41,37,46,9,47,9, - 47,16,22,9,22,114,10,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,115, - 36,0,0,0,116,0,160,1,116,2,106,3,124,1,161,2, - 1,0,116,0,160,4,100,1,124,0,106,5,124,0,106,6, - 161,3,1,0,100,2,83,0,41,3,122,30,73,110,105,116, - 105,97,108,105,122,101,32,97,110,32,101,120,116,101,110,115, - 105,111,110,32,109,111,100,117,108,101,122,40,101,120,116,101, - 110,115,105,111,110,32,109,111,100,117,108,101,32,123,33,114, - 125,32,101,120,101,99,117,116,101,100,32,102,114,111,109,32, - 123,33,114,125,78,41,7,114,162,0,0,0,114,250,0,0, - 0,114,190,0,0,0,90,12,101,120,101,99,95,100,121,110, - 97,109,105,99,114,176,0,0,0,114,145,0,0,0,114,67, - 0,0,0,169,2,114,147,0,0,0,114,252,0,0,0,115, - 2,0,0,0,32,32,114,7,0,0,0,114,253,0,0,0, - 122,31,69,120,116,101,110,115,105,111,110,70,105,108,101,76, - 111,97,100,101,114,46,101,120,101,99,95,109,111,100,117,108, - 101,169,4,0,0,115,8,0,0,0,14,2,6,1,8,1, - 8,255,115,10,0,0,0,14,2,2,1,2,1,2,255,16, - 1,115,36,0,0,0,9,19,9,72,46,50,46,63,65,71, - 9,72,9,72,9,19,9,47,37,79,26,30,26,35,37,41, - 37,46,9,47,9,47,9,47,9,47,114,10,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,0,0,0,115,36,0,0,0,135,2,116,0,124,0,106, - 1,131,1,100,1,25,0,138,2,116,2,136,2,102,1,100, - 2,132,8,116,3,68,0,131,1,131,1,83,0,41,4,122, - 49,82,101,116,117,114,110,32,84,114,117,101,32,105,102,32, - 116,104,101,32,101,120,116,101,110,115,105,111,110,32,109,111, - 100,117,108,101,32,105,115,32,97,32,112,97,99,107,97,103, - 101,46,114,3,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,51,0,0,0,115,28,0,0, - 0,129,0,124,0,93,9,125,1,137,2,100,0,124,1,23, - 0,107,2,86,0,1,0,113,2,100,1,83,0,41,2,114, - 242,0,0,0,78,114,13,0,0,0,41,3,114,5,0,0, - 0,218,6,115,117,102,102,105,120,218,9,102,105,108,101,95, - 110,97,109,101,115,3,0,0,0,32,32,128,114,7,0,0, - 0,114,8,0,0,0,122,49,69,120,116,101,110,115,105,111, - 110,70,105,108,101,76,111,97,100,101,114,46,105,115,95,112, - 97,99,107,97,103,101,46,60,108,111,99,97,108,115,62,46, - 60,103,101,110,101,120,112,114,62,178,4,0,0,115,8,0, - 0,0,2,128,4,0,2,1,20,255,115,8,0,0,0,2, - 128,6,1,10,255,10,1,115,28,0,0,0,0,0,19,53, - 19,53,24,30,20,29,33,43,46,52,33,52,20,52,19,53, - 19,53,19,53,19,53,19,53,114,10,0,0,0,78,41,4, - 114,76,0,0,0,114,67,0,0,0,218,3,97,110,121,114, - 238,0,0,0,41,3,114,147,0,0,0,114,166,0,0,0, - 114,62,1,0,0,115,3,0,0,0,32,32,64,114,7,0, - 0,0,114,212,0,0,0,122,30,69,120,116,101,110,115,105, - 111,110,70,105,108,101,76,111,97,100,101,114,46,105,115,95, - 112,97,99,107,97,103,101,175,4,0,0,115,10,0,0,0, - 2,128,14,2,10,1,2,1,8,255,115,8,0,0,0,2, - 128,14,2,2,1,18,1,115,36,0,0,0,0,0,21,32, - 33,37,33,42,21,43,44,45,21,46,9,18,16,19,19,53, - 19,53,19,53,19,53,34,52,19,53,19,53,16,53,9,53, - 114,10,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,3,0,0,0,114,26,0,0,0,41, - 2,122,63,82,101,116,117,114,110,32,78,111,110,101,32,97, - 115,32,97,110,32,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,32,99,97,110,110,111,116,32,99,114,101, - 97,116,101,32,97,32,99,111,100,101,32,111,98,106,101,99, - 116,46,78,114,13,0,0,0,114,255,0,0,0,115,2,0, - 0,0,32,32,114,7,0,0,0,114,249,0,0,0,122,28, - 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, - 100,101,114,46,103,101,116,95,99,111,100,101,181,4,0,0, - 114,27,0,0,0,114,27,0,0,0,115,4,0,0,0,16, - 20,16,20,114,10,0,0,0,99,2,0,0,0,0,0,0, + 2,174,0,127,0,127,0,127,0,127,0,127,0,127,0,127, + 0,127,6,87,6,5,2,2,14,28,115,40,0,0,0,1, + 1,1,1,1,1,1,1,5,73,1,1,5,58,5,58,5, + 58,5,62,5,62,5,62,45,50,5,45,5,45,5,45,5, + 45,5,45,5,45,5,45,114,10,0,0,0,114,49,1,0, + 0,99,0,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,0,0,0,0,115,28,0,0,0,101,0,90,1,100, + 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, + 0,90,5,100,4,83,0,41,5,218,20,83,111,117,114,99, + 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,122, + 45,76,111,97,100,101,114,32,119,104,105,99,104,32,104,97, + 110,100,108,101,115,32,115,111,117,114,99,101,108,101,115,115, + 32,102,105,108,101,32,105,109,112,111,114,116,115,46,99,2, + 0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,3, + 0,0,0,115,68,0,0,0,124,0,160,0,124,1,161,1, + 125,2,124,0,160,1,124,2,161,1,125,3,124,1,124,2, + 100,1,156,2,125,4,116,2,124,3,124,1,124,4,131,3, + 1,0,116,3,116,4,124,3,131,1,100,2,100,0,133,2, + 25,0,124,1,124,2,100,3,141,3,83,0,41,4,78,114, + 186,0,0,0,114,172,0,0,0,41,2,114,145,0,0,0, + 114,136,0,0,0,41,5,114,209,0,0,0,114,11,1,0, + 0,114,179,0,0,0,114,192,0,0,0,114,19,1,0,0, + 41,5,114,147,0,0,0,114,166,0,0,0,114,67,0,0, + 0,114,44,0,0,0,114,178,0,0,0,115,5,0,0,0, + 32,32,32,32,32,114,7,0,0,0,114,249,0,0,0,122, + 29,83,111,117,114,99,101,108,101,115,115,70,105,108,101,76, + 111,97,100,101,114,46,103,101,116,95,99,111,100,101,121,4, + 0,0,115,22,0,0,0,10,1,10,1,2,4,2,1,6, + 254,12,4,2,1,14,1,2,1,2,1,6,253,115,24,0, + 0,0,10,1,10,1,2,4,2,1,4,1,2,253,12,4, + 2,1,14,1,2,1,2,1,6,1,115,68,0,0,0,16, + 20,16,43,34,42,16,43,9,13,16,20,16,35,30,34,16, + 35,9,13,21,29,21,25,23,10,23,10,9,20,9,22,23, + 27,29,37,39,50,9,51,9,51,16,33,13,23,24,28,13, + 29,30,32,30,33,30,33,13,34,18,26,27,31,16,10,16, + 10,9,10,114,10,0,0,0,99,2,0,0,0,0,0,0, 0,0,0,0,0,1,0,0,0,3,0,0,0,114,26,0, - 0,0,41,2,122,53,82,101,116,117,114,110,32,78,111,110, - 101,32,97,115,32,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,115,32,104,97,118,101,32,110,111,32,115, - 111,117,114,99,101,32,99,111,100,101,46,78,114,13,0,0, + 0,0,41,2,122,39,82,101,116,117,114,110,32,78,111,110, + 101,32,97,115,32,116,104,101,114,101,32,105,115,32,110,111, + 32,115,111,117,114,99,101,32,99,111,100,101,46,78,114,13, + 0,0,0,114,255,0,0,0,115,2,0,0,0,32,32,114, + 7,0,0,0,114,13,1,0,0,122,31,83,111,117,114,99, + 101,108,101,115,115,70,105,108,101,76,111,97,100,101,114,46, + 103,101,116,95,115,111,117,114,99,101,137,4,0,0,114,27, + 0,0,0,114,27,0,0,0,115,4,0,0,0,16,20,16, + 20,114,10,0,0,0,78,41,6,114,153,0,0,0,114,152, + 0,0,0,114,154,0,0,0,114,155,0,0,0,114,249,0, + 0,0,114,13,1,0,0,114,13,0,0,0,114,10,0,0, + 0,114,7,0,0,0,114,58,1,0,0,114,58,1,0,0, + 117,4,0,0,115,8,0,0,0,8,0,4,2,6,2,10, + 16,115,76,0,0,0,0,129,0,129,0,129,0,129,0,129, + 0,129,0,129,0,129,8,131,0,127,0,127,0,127,0,127, + 0,127,0,127,0,127,0,127,2,127,0,129,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,2,129,0,127,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,6,16, + 10,4,115,28,0,0,0,1,1,1,1,1,1,1,1,5, + 56,1,1,5,10,5,10,5,10,5,20,5,20,5,20,5, + 20,5,20,114,10,0,0,0,114,58,1,0,0,99,0,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, + 0,0,115,74,0,0,0,101,0,90,1,100,0,90,2,100, + 1,90,3,100,2,132,0,90,4,100,3,132,0,90,5,100, + 4,132,0,90,6,100,5,132,0,90,7,100,6,132,0,90, + 8,100,7,132,0,90,9,100,8,132,0,90,10,100,9,132, + 0,90,11,101,12,100,10,132,0,131,1,90,13,100,11,83, + 0,41,12,114,44,1,0,0,122,93,76,111,97,100,101,114, + 32,102,111,114,32,101,120,116,101,110,115,105,111,110,32,109, + 111,100,117,108,101,115,46,10,10,32,32,32,32,84,104,101, + 32,99,111,110,115,116,114,117,99,116,111,114,32,105,115,32, + 100,101,115,105,103,110,101,100,32,116,111,32,119,111,114,107, + 32,119,105,116,104,32,70,105,108,101,70,105,110,100,101,114, + 46,10,10,32,32,32,32,99,3,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,3,0,0,0,115,16,0,0, + 0,124,1,124,0,95,0,124,2,124,0,95,1,100,0,83, + 0,114,71,0,0,0,114,186,0,0,0,41,3,114,147,0, + 0,0,114,145,0,0,0,114,67,0,0,0,115,3,0,0, + 0,32,32,32,114,7,0,0,0,114,242,0,0,0,122,28, + 69,120,116,101,110,115,105,111,110,70,105,108,101,76,111,97, + 100,101,114,46,95,95,105,110,105,116,95,95,150,4,0,0, + 243,4,0,0,0,6,1,10,1,114,59,1,0,0,115,16, + 0,0,0,21,25,9,13,9,18,21,25,9,13,9,18,9, + 18,9,18,114,10,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,114,25,1, + 0,0,114,71,0,0,0,114,26,1,0,0,114,28,1,0, + 0,115,2,0,0,0,32,32,114,7,0,0,0,114,29,1, + 0,0,122,26,69,120,116,101,110,115,105,111,110,70,105,108, + 101,76,111,97,100,101,114,46,95,95,101,113,95,95,154,4, + 0,0,114,30,1,0,0,114,31,1,0,0,115,24,0,0, + 0,17,21,17,31,35,40,35,50,17,50,17,48,17,21,17, + 30,34,39,34,48,17,48,9,49,114,10,0,0,0,99,1, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,114,32,1,0,0,114,71,0,0,0,114,33,1, + 0,0,114,35,1,0,0,115,1,0,0,0,32,114,7,0, + 0,0,114,36,1,0,0,122,28,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,95,95,104, + 97,115,104,95,95,158,4,0,0,114,37,1,0,0,114,37, + 1,0,0,115,20,0,0,0,16,20,21,25,21,30,16,31, + 34,38,39,43,39,48,34,49,16,49,9,49,114,10,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,115,36,0,0,0,116,0,160,1,116, + 2,106,3,124,1,161,2,125,2,116,0,160,4,100,1,124, + 1,106,5,124,0,106,6,161,3,1,0,124,2,83,0,41, + 3,122,40,67,114,101,97,116,101,32,97,110,32,117,110,105, + 110,105,116,105,97,108,105,122,101,100,32,101,120,116,101,110, + 115,105,111,110,32,109,111,100,117,108,101,122,38,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,32,123,33, + 114,125,32,108,111,97,100,101,100,32,102,114,111,109,32,123, + 33,114,125,78,41,7,114,162,0,0,0,114,250,0,0,0, + 114,190,0,0,0,90,14,99,114,101,97,116,101,95,100,121, + 110,97,109,105,99,114,176,0,0,0,114,145,0,0,0,114, + 67,0,0,0,41,3,114,147,0,0,0,114,216,0,0,0, + 114,252,0,0,0,115,3,0,0,0,32,32,32,114,7,0, + 0,0,114,246,0,0,0,122,33,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,99,114,101, + 97,116,101,95,109,111,100,117,108,101,161,4,0,0,115,14, + 0,0,0,4,2,6,1,4,255,6,2,8,1,4,255,4, + 2,115,16,0,0,0,2,2,10,1,2,255,2,2,2,1, + 2,255,12,1,4,1,115,36,0,0,0,18,28,18,39,13, + 17,13,32,34,38,18,39,9,15,9,19,9,47,37,77,26, + 30,26,35,37,41,37,46,9,47,9,47,16,22,9,22,114, + 10,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, + 0,5,0,0,0,3,0,0,0,115,36,0,0,0,116,0, + 160,1,116,2,106,3,124,1,161,2,1,0,116,0,160,4, + 100,1,124,0,106,5,124,0,106,6,161,3,1,0,100,2, + 83,0,41,3,122,30,73,110,105,116,105,97,108,105,122,101, + 32,97,110,32,101,120,116,101,110,115,105,111,110,32,109,111, + 100,117,108,101,122,40,101,120,116,101,110,115,105,111,110,32, + 109,111,100,117,108,101,32,123,33,114,125,32,101,120,101,99, + 117,116,101,100,32,102,114,111,109,32,123,33,114,125,78,41, + 7,114,162,0,0,0,114,250,0,0,0,114,190,0,0,0, + 90,12,101,120,101,99,95,100,121,110,97,109,105,99,114,176, + 0,0,0,114,145,0,0,0,114,67,0,0,0,169,2,114, + 147,0,0,0,114,252,0,0,0,115,2,0,0,0,32,32, + 114,7,0,0,0,114,253,0,0,0,122,31,69,120,116,101, + 110,115,105,111,110,70,105,108,101,76,111,97,100,101,114,46, + 101,120,101,99,95,109,111,100,117,108,101,169,4,0,0,115, + 8,0,0,0,14,2,6,1,8,1,8,255,115,10,0,0, + 0,14,2,2,1,2,1,2,255,16,1,115,36,0,0,0, + 9,19,9,72,46,50,46,63,65,71,9,72,9,72,9,19, + 9,47,37,79,26,30,26,35,37,41,37,46,9,47,9,47, + 9,47,9,47,114,10,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,0,0,0,115,36, + 0,0,0,135,2,116,0,124,0,106,1,131,1,100,1,25, + 0,138,2,116,2,136,2,102,1,100,2,132,8,116,3,68, + 0,131,1,131,1,83,0,41,4,122,49,82,101,116,117,114, + 110,32,84,114,117,101,32,105,102,32,116,104,101,32,101,120, + 116,101,110,115,105,111,110,32,109,111,100,117,108,101,32,105, + 115,32,97,32,112,97,99,107,97,103,101,46,114,3,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,51,0,0,0,115,28,0,0,0,129,0,124,0,93, + 9,125,1,137,2,100,0,124,1,23,0,107,2,86,0,1, + 0,113,2,100,1,83,0,41,2,114,242,0,0,0,78,114, + 13,0,0,0,41,3,114,5,0,0,0,218,6,115,117,102, + 102,105,120,218,9,102,105,108,101,95,110,97,109,101,115,3, + 0,0,0,32,32,128,114,7,0,0,0,114,8,0,0,0, + 122,49,69,120,116,101,110,115,105,111,110,70,105,108,101,76, + 111,97,100,101,114,46,105,115,95,112,97,99,107,97,103,101, + 46,60,108,111,99,97,108,115,62,46,60,103,101,110,101,120, + 112,114,62,178,4,0,0,115,8,0,0,0,2,128,4,0, + 2,1,20,255,115,8,0,0,0,2,128,6,1,10,255,10, + 1,115,28,0,0,0,0,0,19,53,19,53,24,30,20,29, + 33,43,46,52,33,52,20,52,19,53,19,53,19,53,19,53, + 19,53,114,10,0,0,0,78,41,4,114,76,0,0,0,114, + 67,0,0,0,218,3,97,110,121,114,238,0,0,0,41,3, + 114,147,0,0,0,114,166,0,0,0,114,62,1,0,0,115, + 3,0,0,0,32,32,64,114,7,0,0,0,114,212,0,0, + 0,122,30,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,46,105,115,95,112,97,99,107,97,103, + 101,175,4,0,0,115,10,0,0,0,2,128,14,2,10,1, + 2,1,8,255,115,8,0,0,0,2,128,14,2,2,1,18, + 1,115,36,0,0,0,0,0,21,32,33,37,33,42,21,43, + 44,45,21,46,9,18,16,19,19,53,19,53,19,53,19,53, + 34,52,19,53,19,53,16,53,9,53,114,10,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 3,0,0,0,114,26,0,0,0,41,2,122,63,82,101,116, + 117,114,110,32,78,111,110,101,32,97,115,32,97,110,32,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, + 99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,32, + 99,111,100,101,32,111,98,106,101,99,116,46,78,114,13,0, + 0,0,114,255,0,0,0,115,2,0,0,0,32,32,114,7, + 0,0,0,114,249,0,0,0,122,28,69,120,116,101,110,115, + 105,111,110,70,105,108,101,76,111,97,100,101,114,46,103,101, + 116,95,99,111,100,101,181,4,0,0,114,27,0,0,0,114, + 27,0,0,0,115,4,0,0,0,16,20,16,20,114,10,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,114,26,0,0,0,41,2,122,53, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115, + 32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32, + 99,111,100,101,46,78,114,13,0,0,0,114,255,0,0,0, + 115,2,0,0,0,32,32,114,7,0,0,0,114,13,1,0, + 0,122,30,69,120,116,101,110,115,105,111,110,70,105,108,101, + 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, + 101,185,4,0,0,114,27,0,0,0,114,27,0,0,0,115, + 4,0,0,0,16,20,16,20,114,10,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, + 0,0,114,40,1,0,0,114,41,1,0,0,114,77,0,0, 0,114,255,0,0,0,115,2,0,0,0,32,32,114,7,0, - 0,0,114,13,1,0,0,122,30,69,120,116,101,110,115,105, + 0,0,114,209,0,0,0,122,32,69,120,116,101,110,115,105, 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116, - 95,115,111,117,114,99,101,185,4,0,0,114,27,0,0,0, - 114,27,0,0,0,115,4,0,0,0,16,20,16,20,114,10, - 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, - 1,0,0,0,3,0,0,0,114,40,1,0,0,114,41,1, - 0,0,114,77,0,0,0,114,255,0,0,0,115,2,0,0, - 0,32,32,114,7,0,0,0,114,209,0,0,0,122,32,69, - 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,103,101,116,95,102,105,108,101,110,97,109,101,189, - 4,0,0,114,42,1,0,0,114,42,1,0,0,115,6,0, - 0,0,16,20,16,25,9,25,114,10,0,0,0,78,41,14, - 114,153,0,0,0,114,152,0,0,0,114,154,0,0,0,114, - 155,0,0,0,114,242,0,0,0,114,29,1,0,0,114,36, - 1,0,0,114,246,0,0,0,114,253,0,0,0,114,212,0, - 0,0,114,249,0,0,0,114,13,1,0,0,114,163,0,0, - 0,114,209,0,0,0,114,13,0,0,0,114,10,0,0,0, - 114,7,0,0,0,114,44,1,0,0,114,44,1,0,0,142, - 4,0,0,115,24,0,0,0,8,0,4,2,6,6,6,4, - 6,4,6,3,6,8,6,6,6,6,6,4,2,4,12,1, - 115,98,0,0,0,0,129,0,129,0,129,0,129,0,129,0, - 129,0,129,0,129,0,129,8,233,0,127,0,127,0,127,0, - 127,0,127,0,127,0,127,0,127,0,127,2,29,0,129,0, - 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,2, - 227,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0, - 127,0,127,6,33,6,4,6,3,6,8,6,6,6,6,6, - 4,6,4,2,2,12,3,115,74,0,0,0,1,1,1,1, - 1,1,1,1,5,8,1,1,5,25,5,25,5,25,5,49, - 5,49,5,49,5,49,5,49,5,49,5,22,5,22,5,22, - 5,47,5,47,5,47,5,53,5,53,5,53,5,20,5,20, - 5,20,5,20,5,20,5,20,6,17,5,25,5,25,5,25, - 5,25,5,25,5,25,114,10,0,0,0,114,44,1,0,0, - 99,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,0,0,0,0,115,82,0,0,0,101,0,90,1,100,0, - 90,2,100,1,90,3,100,2,132,0,90,4,100,3,132,0, - 90,5,100,4,132,0,90,6,100,5,132,0,90,7,100,6, - 132,0,90,8,100,7,132,0,90,9,100,8,132,0,90,10, - 100,9,132,0,90,11,100,10,132,0,90,12,100,11,132,0, - 90,13,100,12,132,0,90,14,100,13,83,0,41,14,218,14, - 95,78,97,109,101,115,112,97,99,101,80,97,116,104,97,38, - 1,0,0,82,101,112,114,101,115,101,110,116,115,32,97,32, - 110,97,109,101,115,112,97,99,101,32,112,97,99,107,97,103, - 101,39,115,32,112,97,116,104,46,32,32,73,116,32,117,115, - 101,115,32,116,104,101,32,109,111,100,117,108,101,32,110,97, - 109,101,10,32,32,32,32,116,111,32,102,105,110,100,32,105, - 116,115,32,112,97,114,101,110,116,32,109,111,100,117,108,101, - 44,32,97,110,100,32,102,114,111,109,32,116,104,101,114,101, - 32,105,116,32,108,111,111,107,115,32,117,112,32,116,104,101, - 32,112,97,114,101,110,116,39,115,10,32,32,32,32,95,95, - 112,97,116,104,95,95,46,32,32,87,104,101,110,32,116,104, - 105,115,32,99,104,97,110,103,101,115,44,32,116,104,101,32, - 109,111,100,117,108,101,39,115,32,111,119,110,32,112,97,116, - 104,32,105,115,32,114,101,99,111,109,112,117,116,101,100,44, - 10,32,32,32,32,117,115,105,110,103,32,112,97,116,104,95, - 102,105,110,100,101,114,46,32,32,70,111,114,32,116,111,112, - 45,108,101,118,101,108,32,109,111,100,117,108,101,115,44,32, - 116,104,101,32,112,97,114,101,110,116,32,109,111,100,117,108, - 101,39,115,32,112,97,116,104,10,32,32,32,32,105,115,32, - 115,121,115,46,112,97,116,104,46,99,4,0,0,0,0,0, - 0,0,0,0,0,0,3,0,0,0,3,0,0,0,115,36, - 0,0,0,124,1,124,0,95,0,124,2,124,0,95,1,116, - 2,124,0,160,3,161,0,131,1,124,0,95,4,124,3,124, - 0,95,5,100,0,83,0,114,71,0,0,0,41,6,218,5, - 95,110,97,109,101,218,5,95,112,97,116,104,114,140,0,0, - 0,218,16,95,103,101,116,95,112,97,114,101,110,116,95,112, - 97,116,104,218,17,95,108,97,115,116,95,112,97,114,101,110, - 116,95,112,97,116,104,218,12,95,112,97,116,104,95,102,105, - 110,100,101,114,169,4,114,147,0,0,0,114,145,0,0,0, - 114,67,0,0,0,90,11,112,97,116,104,95,102,105,110,100, - 101,114,115,4,0,0,0,32,32,32,32,114,7,0,0,0, - 114,242,0,0,0,122,23,95,78,97,109,101,115,112,97,99, - 101,80,97,116,104,46,95,95,105,110,105,116,95,95,202,4, - 0,0,243,8,0,0,0,6,1,6,1,14,1,10,1,114, - 71,1,0,0,115,36,0,0,0,22,26,9,13,9,19,22, - 26,9,13,9,19,34,39,40,44,40,63,40,63,34,64,9, - 13,9,31,29,40,9,13,9,26,9,26,9,26,114,10,0, + 95,102,105,108,101,110,97,109,101,189,4,0,0,114,42,1, + 0,0,114,42,1,0,0,115,6,0,0,0,16,20,16,25, + 9,25,114,10,0,0,0,78,41,14,114,153,0,0,0,114, + 152,0,0,0,114,154,0,0,0,114,155,0,0,0,114,242, + 0,0,0,114,29,1,0,0,114,36,1,0,0,114,246,0, + 0,0,114,253,0,0,0,114,212,0,0,0,114,249,0,0, + 0,114,13,1,0,0,114,163,0,0,0,114,209,0,0,0, + 114,13,0,0,0,114,10,0,0,0,114,7,0,0,0,114, + 44,1,0,0,114,44,1,0,0,142,4,0,0,115,24,0, + 0,0,8,0,4,2,6,6,6,4,6,4,6,3,6,8, + 6,6,6,6,6,4,2,4,12,1,115,98,0,0,0,0, + 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0, + 129,8,233,0,127,0,127,0,127,0,127,0,127,0,127,0, + 127,0,127,0,127,2,29,0,129,0,129,0,129,0,129,0, + 129,0,129,0,129,0,129,0,129,2,227,0,127,0,127,0, + 127,0,127,0,127,0,127,0,127,0,127,0,127,6,33,6, + 4,6,3,6,8,6,6,6,6,6,4,6,4,2,2,12, + 3,115,74,0,0,0,1,1,1,1,1,1,1,1,5,8, + 1,1,5,25,5,25,5,25,5,49,5,49,5,49,5,49, + 5,49,5,49,5,22,5,22,5,22,5,47,5,47,5,47, + 5,53,5,53,5,53,5,20,5,20,5,20,5,20,5,20, + 5,20,6,17,5,25,5,25,5,25,5,25,5,25,5,25, + 114,10,0,0,0,114,44,1,0,0,99,0,0,0,0,0, + 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,115, + 82,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, + 100,2,132,0,90,4,100,3,132,0,90,5,100,4,132,0, + 90,6,100,5,132,0,90,7,100,6,132,0,90,8,100,7, + 132,0,90,9,100,8,132,0,90,10,100,9,132,0,90,11, + 100,10,132,0,90,12,100,11,132,0,90,13,100,12,132,0, + 90,14,100,13,83,0,41,14,218,14,95,78,97,109,101,115, + 112,97,99,101,80,97,116,104,97,38,1,0,0,82,101,112, + 114,101,115,101,110,116,115,32,97,32,110,97,109,101,115,112, + 97,99,101,32,112,97,99,107,97,103,101,39,115,32,112,97, + 116,104,46,32,32,73,116,32,117,115,101,115,32,116,104,101, + 32,109,111,100,117,108,101,32,110,97,109,101,10,32,32,32, + 32,116,111,32,102,105,110,100,32,105,116,115,32,112,97,114, + 101,110,116,32,109,111,100,117,108,101,44,32,97,110,100,32, + 102,114,111,109,32,116,104,101,114,101,32,105,116,32,108,111, + 111,107,115,32,117,112,32,116,104,101,32,112,97,114,101,110, + 116,39,115,10,32,32,32,32,95,95,112,97,116,104,95,95, + 46,32,32,87,104,101,110,32,116,104,105,115,32,99,104,97, + 110,103,101,115,44,32,116,104,101,32,109,111,100,117,108,101, + 39,115,32,111,119,110,32,112,97,116,104,32,105,115,32,114, + 101,99,111,109,112,117,116,101,100,44,10,32,32,32,32,117, + 115,105,110,103,32,112,97,116,104,95,102,105,110,100,101,114, + 46,32,32,70,111,114,32,116,111,112,45,108,101,118,101,108, + 32,109,111,100,117,108,101,115,44,32,116,104,101,32,112,97, + 114,101,110,116,32,109,111,100,117,108,101,39,115,32,112,97, + 116,104,10,32,32,32,32,105,115,32,115,121,115,46,112,97, + 116,104,46,99,4,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,115,36,0,0,0,124,1,124, + 0,95,0,124,2,124,0,95,1,116,2,124,0,160,3,161, + 0,131,1,124,0,95,4,124,3,124,0,95,5,100,0,83, + 0,114,71,0,0,0,41,6,218,5,95,110,97,109,101,218, + 5,95,112,97,116,104,114,140,0,0,0,218,16,95,103,101, + 116,95,112,97,114,101,110,116,95,112,97,116,104,218,17,95, + 108,97,115,116,95,112,97,114,101,110,116,95,112,97,116,104, + 218,12,95,112,97,116,104,95,102,105,110,100,101,114,169,4, + 114,147,0,0,0,114,145,0,0,0,114,67,0,0,0,90, + 11,112,97,116,104,95,102,105,110,100,101,114,115,4,0,0, + 0,32,32,32,32,114,7,0,0,0,114,242,0,0,0,122, + 23,95,78,97,109,101,115,112,97,99,101,80,97,116,104,46, + 95,95,105,110,105,116,95,95,202,4,0,0,243,8,0,0, + 0,6,1,6,1,14,1,10,1,114,71,1,0,0,115,36, + 0,0,0,22,26,9,13,9,19,22,26,9,13,9,19,34, + 39,40,44,40,63,40,63,34,64,9,13,9,31,29,40,9, + 13,9,26,9,26,9,26,114,10,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,115,38,0,0,0,124,0,106,0,160,1,100,1,161,1, + 92,3,125,1,125,2,125,3,124,2,100,2,107,2,114,15, + 100,3,83,0,124,1,100,4,102,2,83,0,41,6,122,62, + 82,101,116,117,114,110,115,32,97,32,116,117,112,108,101,32, + 111,102,32,40,112,97,114,101,110,116,45,109,111,100,117,108, + 101,45,110,97,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,101, + 0,0,0,114,11,0,0,0,41,2,114,18,0,0,0,114, + 67,0,0,0,90,8,95,95,112,97,116,104,95,95,78,41, + 2,114,65,1,0,0,114,108,0,0,0,41,4,114,147,0, + 0,0,114,57,1,0,0,218,3,100,111,116,90,2,109,101, + 115,4,0,0,0,32,32,32,32,114,7,0,0,0,218,23, + 95,102,105,110,100,95,112,97,114,101,110,116,95,112,97,116, + 104,95,110,97,109,101,115,122,38,95,78,97,109,101,115,112, + 97,99,101,80,97,116,104,46,95,102,105,110,100,95,112,97, + 114,101,110,116,95,112,97,116,104,95,110,97,109,101,115,208, + 4,0,0,115,8,0,0,0,18,2,8,1,4,2,8,3, + 115,8,0,0,0,18,2,6,1,6,2,8,3,115,38,0, + 0,0,27,31,27,37,27,53,49,52,27,53,9,24,9,15, + 17,20,22,24,12,15,19,21,12,21,9,33,20,33,20,33, + 16,22,24,34,16,34,9,34,114,10,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,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,71,0,0,0,41,4,114,73,1,0,0,114, + 158,0,0,0,114,18,0,0,0,218,7,109,111,100,117,108, + 101,115,41,3,114,147,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,115,3,0, + 0,0,32,32,32,114,7,0,0,0,114,67,1,0,0,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, + 218,4,0,0,243,4,0,0,0,12,1,16,1,114,75,1, + 0,0,115,28,0,0,0,46,50,46,76,46,76,9,43,9, + 27,29,43,16,23,24,27,24,35,36,54,24,55,57,71,16, + 72,9,72,114,10,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,115,80,0, + 0,0,116,0,124,0,160,1,161,0,131,1,125,1,124,1, + 124,0,106,2,107,3,114,37,124,0,160,3,124,0,106,4, + 124,1,161,2,125,2,124,2,100,0,117,1,114,34,124,2, + 106,5,100,0,117,0,114,34,124,2,106,6,114,34,124,2, + 106,6,124,0,95,7,124,1,124,0,95,2,124,0,106,7, + 83,0,114,71,0,0,0,41,8,114,140,0,0,0,114,67, + 1,0,0,114,68,1,0,0,114,69,1,0,0,114,65,1, + 0,0,114,167,0,0,0,114,208,0,0,0,114,66,1,0, + 0,41,3,114,147,0,0,0,90,11,112,97,114,101,110,116, + 95,112,97,116,104,114,216,0,0,0,115,3,0,0,0,32, + 32,32,114,7,0,0,0,218,12,95,114,101,99,97,108,99, + 117,108,97,116,101,122,27,95,78,97,109,101,115,112,97,99, + 101,80,97,116,104,46,95,114,101,99,97,108,99,117,108,97, + 116,101,222,4,0,0,115,16,0,0,0,12,2,10,1,14, + 1,18,3,6,1,8,1,6,1,6,1,115,24,0,0,0, + 12,2,8,1,2,7,14,250,6,3,2,2,8,254,2,2, + 4,255,10,1,6,1,6,1,115,80,0,0,0,23,28,29, + 33,29,52,29,52,23,53,9,20,12,23,27,31,27,49,12, + 49,9,49,20,24,20,62,38,42,38,48,50,61,20,62,13, + 17,16,20,28,32,16,32,13,65,37,41,37,48,52,56,37, + 56,13,65,20,24,20,51,17,65,34,38,34,65,21,25,21, + 31,38,49,13,17,13,35,16,20,16,26,9,26,114,10,0, 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,115,38,0,0,0,124,0,106,0, - 160,1,100,1,161,1,92,3,125,1,125,2,125,3,124,2, - 100,2,107,2,114,15,100,3,83,0,124,1,100,4,102,2, - 83,0,41,6,122,62,82,101,116,117,114,110,115,32,97,32, - 116,117,112,108,101,32,111,102,32,40,112,97,114,101,110,116, - 45,109,111,100,117,108,101,45,110,97,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,101,0,0,0,114,11,0,0,0,41,2, - 114,18,0,0,0,114,67,0,0,0,90,8,95,95,112,97, - 116,104,95,95,78,41,2,114,65,1,0,0,114,108,0,0, - 0,41,4,114,147,0,0,0,114,57,1,0,0,218,3,100, - 111,116,90,2,109,101,115,4,0,0,0,32,32,32,32,114, - 7,0,0,0,218,23,95,102,105,110,100,95,112,97,114,101, - 110,116,95,112,97,116,104,95,110,97,109,101,115,122,38,95, - 78,97,109,101,115,112,97,99,101,80,97,116,104,46,95,102, - 105,110,100,95,112,97,114,101,110,116,95,112,97,116,104,95, - 110,97,109,101,115,208,4,0,0,115,8,0,0,0,18,2, - 8,1,4,2,8,3,115,8,0,0,0,18,2,6,1,6, - 2,8,3,115,38,0,0,0,27,31,27,37,27,53,49,52, - 27,53,9,24,9,15,17,20,22,24,12,15,19,21,12,21, - 9,33,20,33,20,33,16,22,24,34,16,34,9,34,114,10, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,3,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,71,0,0,0,41,4, - 114,73,1,0,0,114,158,0,0,0,114,18,0,0,0,218, - 7,109,111,100,117,108,101,115,41,3,114,147,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,115,3,0,0,0,32,32,32,114,7,0,0,0, - 114,67,1,0,0,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,218,4,0,0,243,4,0,0,0,12, - 1,16,1,114,75,1,0,0,115,28,0,0,0,46,50,46, - 76,46,76,9,43,9,27,29,43,16,23,24,27,24,35,36, - 54,24,55,57,71,16,72,9,72,114,10,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,115,80,0,0,0,116,0,124,0,160,1,161,0, - 131,1,125,1,124,1,124,0,106,2,107,3,114,37,124,0, - 160,3,124,0,106,4,124,1,161,2,125,2,124,2,100,0, - 117,1,114,34,124,2,106,5,100,0,117,0,114,34,124,2, - 106,6,114,34,124,2,106,6,124,0,95,7,124,1,124,0, - 95,2,124,0,106,7,83,0,114,71,0,0,0,41,8,114, - 140,0,0,0,114,67,1,0,0,114,68,1,0,0,114,69, - 1,0,0,114,65,1,0,0,114,167,0,0,0,114,208,0, - 0,0,114,66,1,0,0,41,3,114,147,0,0,0,90,11, - 112,97,114,101,110,116,95,112,97,116,104,114,216,0,0,0, - 115,3,0,0,0,32,32,32,114,7,0,0,0,218,12,95, - 114,101,99,97,108,99,117,108,97,116,101,122,27,95,78,97, - 109,101,115,112,97,99,101,80,97,116,104,46,95,114,101,99, - 97,108,99,117,108,97,116,101,222,4,0,0,115,16,0,0, - 0,12,2,10,1,14,1,18,3,6,1,8,1,6,1,6, - 1,115,24,0,0,0,12,2,8,1,2,7,14,250,6,3, - 2,2,8,254,2,2,4,255,10,1,6,1,6,1,115,80, - 0,0,0,23,28,29,33,29,52,29,52,23,53,9,20,12, - 23,27,31,27,49,12,49,9,49,20,24,20,62,38,42,38, - 48,50,61,20,62,13,17,16,20,28,32,16,32,13,65,37, - 41,37,48,52,56,37,56,13,65,20,24,20,51,17,65,34, - 38,34,65,21,25,21,31,38,49,13,17,13,35,16,20,16, - 26,9,26,114,10,0,0,0,99,1,0,0,0,0,0,0, - 0,0,0,0,0,3,0,0,0,3,0,0,0,243,12,0, - 0,0,116,0,124,0,160,1,161,0,131,1,83,0,114,71, - 0,0,0,41,2,218,4,105,116,101,114,114,76,1,0,0, - 114,35,1,0,0,115,1,0,0,0,32,114,7,0,0,0, - 218,8,95,95,105,116,101,114,95,95,122,23,95,78,97,109, - 101,115,112,97,99,101,80,97,116,104,46,95,95,105,116,101, - 114,95,95,235,4,0,0,243,2,0,0,0,12,1,114,80, - 1,0,0,115,12,0,0,0,16,20,21,25,21,40,21,40, - 16,41,9,41,114,10,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,115,12, - 0,0,0,124,0,160,0,161,0,124,1,25,0,83,0,114, - 71,0,0,0,169,1,114,76,1,0,0,41,2,114,147,0, - 0,0,218,5,105,110,100,101,120,115,2,0,0,0,32,32, - 114,7,0,0,0,218,11,95,95,103,101,116,105,116,101,109, - 95,95,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,238,4, - 0,0,114,80,1,0,0,114,80,1,0,0,115,12,0,0, - 0,16,20,16,35,16,35,36,41,16,42,9,42,114,10,0, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,115,14,0,0,0,124,2,124,0, - 106,0,124,1,60,0,100,0,83,0,114,71,0,0,0,41, - 1,114,66,1,0,0,41,3,114,147,0,0,0,114,82,1, - 0,0,114,67,0,0,0,115,3,0,0,0,32,32,32,114, - 7,0,0,0,218,11,95,95,115,101,116,105,116,101,109,95, - 95,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,241,4,0, - 0,243,2,0,0,0,14,1,114,85,1,0,0,115,14,0, - 0,0,29,33,9,13,9,19,20,25,9,26,9,26,9,26, - 114,10,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,114,77,1,0,0,114, - 71,0,0,0,41,2,114,4,0,0,0,114,76,1,0,0, - 114,35,1,0,0,115,1,0,0,0,32,114,7,0,0,0, - 218,7,95,95,108,101,110,95,95,122,22,95,78,97,109,101, - 115,112,97,99,101,80,97,116,104,46,95,95,108,101,110,95, - 95,244,4,0,0,114,80,1,0,0,114,80,1,0,0,115, - 12,0,0,0,16,19,20,24,20,39,20,39,16,40,9,40, - 114,10,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,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,93,0,0,0,114,66,1,0,0, - 114,35,1,0,0,115,1,0,0,0,32,114,7,0,0,0, - 218,8,95,95,114,101,112,114,95,95,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,247,4,0,0,114,80,1,0,0,114,80,1,0, - 0,115,12,0,0,0,16,38,16,57,46,50,46,56,16,57, - 9,57,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,115,12,0,0, - 0,124,1,124,0,160,0,161,0,118,0,83,0,114,71,0, - 0,0,114,81,1,0,0,169,2,114,147,0,0,0,218,4, - 105,116,101,109,115,2,0,0,0,32,32,114,7,0,0,0, - 218,12,95,95,99,111,110,116,97,105,110,115,95,95,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,250,4,0,0,114, - 80,1,0,0,114,80,1,0,0,115,12,0,0,0,16,20, - 24,28,24,43,24,43,16,43,9,43,114,10,0,0,0,99, - 2,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 3,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,71,0,0,0,41,2, - 114,66,1,0,0,114,63,0,0,0,114,89,1,0,0,115, - 2,0,0,0,32,32,114,7,0,0,0,114,63,0,0,0, - 122,21,95,78,97,109,101,115,112,97,99,101,80,97,116,104, - 46,97,112,112,101,110,100,253,4,0,0,243,2,0,0,0, - 16,1,114,92,1,0,0,115,16,0,0,0,9,13,9,19, - 9,32,27,31,9,32,9,32,9,32,9,32,114,10,0,0, - 0,78,41,15,114,153,0,0,0,114,152,0,0,0,114,154, - 0,0,0,114,155,0,0,0,114,242,0,0,0,114,73,1, - 0,0,114,67,1,0,0,114,76,1,0,0,114,79,1,0, - 0,114,83,1,0,0,114,84,1,0,0,114,86,1,0,0, - 114,88,1,0,0,114,91,1,0,0,114,63,0,0,0,114, - 13,0,0,0,114,10,0,0,0,114,7,0,0,0,114,64, - 1,0,0,114,64,1,0,0,195,4,0,0,115,26,0,0, - 0,8,0,4,1,6,6,6,6,6,10,6,4,6,13,6, - 3,6,3,6,3,6,3,6,3,10,3,115,100,0,0,0, - 0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 0,129,8,180,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,127,2,81,0,129,0,129,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,2,175,0,127,0,127, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,6,87, - 6,10,6,4,6,13,6,3,6,3,6,3,6,3,6,3, - 6,3,10,3,115,82,0,0,0,1,1,1,1,1,1,1, - 1,5,20,1,1,5,40,5,40,5,40,5,34,5,34,5, - 34,5,72,5,72,5,72,5,26,5,26,5,26,5,41,5, - 41,5,41,5,42,5,42,5,42,5,33,5,33,5,33,5, - 40,5,40,5,40,5,57,5,57,5,57,5,43,5,43,5, - 43,5,32,5,32,5,32,5,32,5,32,114,10,0,0,0, - 114,64,1,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,0,0,0,0,115,70,0,0,0,101, - 0,90,1,100,0,90,2,100,1,132,0,90,3,101,4,100, - 2,132,0,131,1,90,5,100,3,132,0,90,6,100,4,132, - 0,90,7,100,5,132,0,90,8,100,6,132,0,90,9,100, - 7,132,0,90,10,100,8,132,0,90,11,100,9,132,0,90, - 12,100,10,83,0,41,11,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,3,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,71,0,0,0,41,2,114,64,1,0, - 0,114,66,1,0,0,114,70,1,0,0,115,4,0,0,0, - 32,32,32,32,114,7,0,0,0,114,242,0,0,0,122,25, + 0,0,0,3,0,0,0,243,12,0,0,0,116,0,124,0, + 160,1,161,0,131,1,83,0,114,71,0,0,0,41,2,218, + 4,105,116,101,114,114,76,1,0,0,114,35,1,0,0,115, + 1,0,0,0,32,114,7,0,0,0,218,8,95,95,105,116, + 101,114,95,95,122,23,95,78,97,109,101,115,112,97,99,101, + 80,97,116,104,46,95,95,105,116,101,114,95,95,235,4,0, + 0,243,2,0,0,0,12,1,114,80,1,0,0,115,12,0, + 0,0,16,20,21,25,21,40,21,40,16,41,9,41,114,10, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,3,0,0,0,115,12,0,0,0,124,0,160, + 0,161,0,124,1,25,0,83,0,114,71,0,0,0,169,1, + 114,76,1,0,0,41,2,114,147,0,0,0,218,5,105,110, + 100,101,120,115,2,0,0,0,32,32,114,7,0,0,0,218, + 11,95,95,103,101,116,105,116,101,109,95,95,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,238,4,0,0,114,80,1,0, + 0,114,80,1,0,0,115,12,0,0,0,16,20,16,35,16, + 35,36,41,16,42,9,42,114,10,0,0,0,99,3,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,115,14,0,0,0,124,2,124,0,106,0,124,1,60,0, + 100,0,83,0,114,71,0,0,0,41,1,114,66,1,0,0, + 41,3,114,147,0,0,0,114,82,1,0,0,114,67,0,0, + 0,115,3,0,0,0,32,32,32,114,7,0,0,0,218,11, + 95,95,115,101,116,105,116,101,109,95,95,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,241,4,0,0,243,2,0,0,0, + 14,1,114,85,1,0,0,115,14,0,0,0,29,33,9,13, + 9,19,20,25,9,26,9,26,9,26,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,114,77,1,0,0,114,71,0,0,0,41,2, + 114,4,0,0,0,114,76,1,0,0,114,35,1,0,0,115, + 1,0,0,0,32,114,7,0,0,0,218,7,95,95,108,101, + 110,95,95,122,22,95,78,97,109,101,115,112,97,99,101,80, + 97,116,104,46,95,95,108,101,110,95,95,244,4,0,0,114, + 80,1,0,0,114,80,1,0,0,115,12,0,0,0,16,19, + 20,24,20,39,20,39,16,40,9,40,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,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,93,0,0,0,114,66,1,0,0,114,35,1,0,0,115, + 1,0,0,0,32,114,7,0,0,0,218,8,95,95,114,101, + 112,114,95,95,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,247,4,0, + 0,114,80,1,0,0,114,80,1,0,0,115,12,0,0,0, + 16,38,16,57,46,50,46,56,16,57,9,57,114,10,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,3,0,0,0,115,12,0,0,0,124,1,124,0,160, + 0,161,0,118,0,83,0,114,71,0,0,0,114,81,1,0, + 0,169,2,114,147,0,0,0,218,4,105,116,101,109,115,2, + 0,0,0,32,32,114,7,0,0,0,218,12,95,95,99,111, + 110,116,97,105,110,115,95,95,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,250,4,0,0,114,80,1,0,0,114,80, + 1,0,0,115,12,0,0,0,16,20,24,28,24,43,24,43, + 16,43,9,43,114,10,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,3,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,71,0,0,0,41,2,114,66,1,0,0,114, + 63,0,0,0,114,89,1,0,0,115,2,0,0,0,32,32, + 114,7,0,0,0,114,63,0,0,0,122,21,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,46,97,112,112,101,110, + 100,253,4,0,0,243,2,0,0,0,16,1,114,92,1,0, + 0,115,16,0,0,0,9,13,9,19,9,32,27,31,9,32, + 9,32,9,32,9,32,114,10,0,0,0,78,41,15,114,153, + 0,0,0,114,152,0,0,0,114,154,0,0,0,114,155,0, + 0,0,114,242,0,0,0,114,73,1,0,0,114,67,1,0, + 0,114,76,1,0,0,114,79,1,0,0,114,83,1,0,0, + 114,84,1,0,0,114,86,1,0,0,114,88,1,0,0,114, + 91,1,0,0,114,63,0,0,0,114,13,0,0,0,114,10, + 0,0,0,114,7,0,0,0,114,64,1,0,0,114,64,1, + 0,0,195,4,0,0,115,26,0,0,0,8,0,4,1,6, + 6,6,6,6,10,6,4,6,13,6,3,6,3,6,3,6, + 3,6,3,10,3,115,100,0,0,0,0,129,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,0,129,8,180,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, + 2,81,0,129,0,129,0,129,0,129,0,129,0,129,0,129, + 0,129,0,129,2,175,0,127,0,127,0,127,0,127,0,127, + 0,127,0,127,0,127,0,127,6,87,6,10,6,4,6,13, + 6,3,6,3,6,3,6,3,6,3,6,3,10,3,115,82, + 0,0,0,1,1,1,1,1,1,1,1,5,20,1,1,5, + 40,5,40,5,40,5,34,5,34,5,34,5,72,5,72,5, + 72,5,26,5,26,5,26,5,41,5,41,5,41,5,42,5, + 42,5,42,5,33,5,33,5,33,5,40,5,40,5,40,5, + 57,5,57,5,57,5,43,5,43,5,43,5,32,5,32,5, + 32,5,32,5,32,114,10,0,0,0,114,64,1,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 0,0,0,0,115,70,0,0,0,101,0,90,1,100,0,90, + 2,100,1,132,0,90,3,101,4,100,2,132,0,131,1,90, + 5,100,3,132,0,90,6,100,4,132,0,90,7,100,5,132, + 0,90,8,100,6,132,0,90,9,100,7,132,0,90,10,100, + 8,132,0,90,11,100,9,132,0,90,12,100,10,83,0,41, + 11,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,3,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, + 71,0,0,0,41,2,114,64,1,0,0,114,66,1,0,0, + 114,70,1,0,0,115,4,0,0,0,32,32,32,32,114,7, + 0,0,0,114,242,0,0,0,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,3,5,0,0,243,2,0,0,0,18,1,114,94, + 1,0,0,115,18,0,0,0,22,36,37,41,43,47,49,60, + 22,61,9,13,9,19,9,19,9,19,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,115,24,0,0,0,116,0,106,1,100,1,116, + 2,131,2,1,0,100,2,160,3,124,0,106,4,161,1,83, + 0,41,4,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,82,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,40,41,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,101, + 100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,110, + 32,80,121,116,104,111,110,32,51,46,49,50,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,5,114,103,0,0,0,114, + 104,0,0,0,114,105,0,0,0,114,93,0,0,0,114,153, + 0,0,0,41,1,114,252,0,0,0,115,1,0,0,0,32, + 114,7,0,0,0,218,11,109,111,100,117,108,101,95,114,101, + 112,114,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, + 6,5,0,0,115,8,0,0,0,6,7,2,1,4,255,12, + 2,115,6,0,0,0,4,7,8,1,12,1,115,24,0,0, + 0,9,18,9,23,24,59,61,79,9,80,9,80,16,43,16, + 67,51,57,51,66,16,67,9,67,114,10,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3, + 0,0,0,114,26,0,0,0,41,2,78,84,114,13,0,0, + 0,114,255,0,0,0,115,2,0,0,0,32,32,114,7,0, + 0,0,114,212,0,0,0,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,17,5,0,0,243,2,0,0,0,4,1,114, + 96,1,0,0,115,4,0,0,0,16,20,16,20,114,10,0, + 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,1, + 0,0,0,3,0,0,0,114,26,0,0,0,41,2,78,114, + 11,0,0,0,114,13,0,0,0,114,255,0,0,0,115,2, + 0,0,0,32,32,114,7,0,0,0,114,13,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,20,5,0,0, + 114,96,1,0,0,114,96,1,0,0,115,4,0,0,0,16, + 18,16,18,114,10,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,6,0,0,0,3,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,11,0,0,0,122,8,60,115,116,114, + 105,110,103,62,114,251,0,0,0,84,41,1,114,15,1,0, + 0,41,1,114,16,1,0,0,114,255,0,0,0,115,2,0, + 0,0,32,32,114,7,0,0,0,114,249,0,0,0,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,3,5,0,0,243,2,0, - 0,0,18,1,114,94,1,0,0,115,18,0,0,0,22,36, - 37,41,43,47,49,60,22,61,9,13,9,19,9,19,9,19, - 114,10,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,3,0,0,0,3,0,0,0,115,24,0,0,0,116, - 0,106,1,100,1,116,2,131,2,1,0,100,2,160,3,124, - 0,106,4,161,1,83,0,41,4,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,82, + 46,103,101,116,95,99,111,100,101,23,5,0,0,114,92,1, + 0,0,114,92,1,0,0,115,16,0,0,0,16,23,24,26, + 28,38,40,46,61,65,16,66,16,66,9,66,114,10,0,0, + 0,99,2,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,114,26,0,0,0,114,244,0,0,0, + 114,13,0,0,0,114,245,0,0,0,115,2,0,0,0,32, + 32,114,7,0,0,0,114,246,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,26,5,0,0,114, + 247,0,0,0,114,248,0,0,0,115,4,0,0,0,0,0, + 0,0,114,10,0,0,0,99,2,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,3,0,0,0,115,4,0,0, + 0,100,0,83,0,114,71,0,0,0,114,13,0,0,0,114, + 60,1,0,0,115,2,0,0,0,32,32,114,7,0,0,0, + 114,253,0,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,29,5,0,0,114,96,1,0,0,114,96,1,0, + 0,115,4,0,0,0,9,13,9,13,114,10,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,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,162,0,0,0,114,176,0,0,0,114,66, + 1,0,0,114,254,0,0,0,114,255,0,0,0,115,2,0, + 0,0,32,32,114,7,0,0,0,114,0,1,0,0,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,40,41,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, - 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, - 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, - 49,50,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,5, - 114,103,0,0,0,114,104,0,0,0,114,105,0,0,0,114, - 93,0,0,0,114,153,0,0,0,41,1,114,252,0,0,0, - 115,1,0,0,0,32,114,7,0,0,0,218,11,109,111,100, - 117,108,101,95,114,101,112,114,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,6,5,0,0,115,8,0,0,0,6, - 7,2,1,4,255,12,2,115,6,0,0,0,4,7,8,1, - 12,1,115,24,0,0,0,9,18,9,23,24,59,61,79,9, - 80,9,80,16,43,16,67,51,57,51,66,16,67,9,67,114, - 10,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,1,0,0,0,3,0,0,0,114,26,0,0,0,41,2, - 78,84,114,13,0,0,0,114,255,0,0,0,115,2,0,0, - 0,32,32,114,7,0,0,0,114,212,0,0,0,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,17,5,0,0,243,2, - 0,0,0,4,1,114,96,1,0,0,115,4,0,0,0,16, - 20,16,20,114,10,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,1,0,0,0,3,0,0,0,114,26,0, - 0,0,41,2,78,114,11,0,0,0,114,13,0,0,0,114, - 255,0,0,0,115,2,0,0,0,32,32,114,7,0,0,0, - 114,13,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,20,5,0,0,114,96,1,0,0,114,96,1,0,0, - 115,4,0,0,0,16,18,16,18,114,10,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,3, - 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,11,0,0,0, - 122,8,60,115,116,114,105,110,103,62,114,251,0,0,0,84, - 41,1,114,15,1,0,0,41,1,114,16,1,0,0,114,255, - 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, - 249,0,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,23, - 5,0,0,114,92,1,0,0,114,92,1,0,0,115,16,0, - 0,0,16,23,24,26,28,38,40,46,61,65,16,66,16,66, - 9,66,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,1,0,0,0,3,0,0,0,114,26,0,0, - 0,114,244,0,0,0,114,13,0,0,0,114,245,0,0,0, - 115,2,0,0,0,32,32,114,7,0,0,0,114,246,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,26,5,0,0,114,247,0,0,0,114,248,0,0,0,115, - 4,0,0,0,0,0,0,0,114,10,0,0,0,99,2,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0, - 0,0,115,4,0,0,0,100,0,83,0,114,71,0,0,0, - 114,13,0,0,0,114,60,1,0,0,115,2,0,0,0,32, - 32,114,7,0,0,0,114,253,0,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,29,5,0,0,114,96,1, - 0,0,114,96,1,0,0,115,4,0,0,0,9,13,9,13, - 114,10,0,0,0,99,2,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,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,162,0,0,0,114, - 176,0,0,0,114,66,1,0,0,114,254,0,0,0,114,255, - 0,0,0,115,2,0,0,0,32,32,114,7,0,0,0,114, - 0,1,0,0,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,32,5,0,0,115,8,0,0,0,6,7,4,1,4, - 255,12,3,115,10,0,0,0,2,7,2,1,2,255,8,1, - 12,2,115,26,0,0,0,9,19,9,48,37,77,37,41,37, - 47,9,48,9,48,16,26,16,60,45,49,51,59,16,60,9, - 60,114,10,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,3,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,46,1,0,0,114,97,1,0,0,114,66,1, - 0,0,41,3,114,147,0,0,0,114,252,0,0,0,114,97, - 1,0,0,115,3,0,0,0,32,32,32,114,7,0,0,0, - 114,47,1,0,0,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,44,5,0,0,243, - 4,0,0,0,12,1,10,1,114,98,1,0,0,115,22,0, - 0,0,9,54,9,54,9,54,9,54,9,54,9,54,16,31, - 32,36,32,42,16,43,9,43,114,10,0,0,0,78,41,13, - 114,153,0,0,0,114,152,0,0,0,114,154,0,0,0,114, - 242,0,0,0,114,239,0,0,0,114,95,1,0,0,114,212, - 0,0,0,114,13,1,0,0,114,249,0,0,0,114,246,0, - 0,0,114,253,0,0,0,114,0,1,0,0,114,47,1,0, - 0,114,13,0,0,0,114,10,0,0,0,114,7,0,0,0, - 114,93,1,0,0,114,93,1,0,0,2,5,0,0,115,22, - 0,0,0,8,0,6,1,2,3,8,1,6,10,6,3,6, - 3,6,3,6,3,6,3,10,12,115,62,0,0,0,0,129, - 0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 0,129,8,244,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,127,0,127,6,14,2,2,8,9,6,3, - 6,3,6,3,6,3,6,3,6,12,10,4,115,70,0,0, - 0,1,1,1,1,1,1,1,1,5,61,5,61,5,61,6, - 18,5,67,5,67,5,67,5,67,5,20,5,20,5,20,5, - 18,5,18,5,18,5,66,5,66,5,66,5,57,5,57,5, - 57,5,13,5,13,5,13,5,60,5,60,5,60,5,43,5, - 43,5,43,5,43,5,43,114,10,0,0,0,114,93,1,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,0,0,0,0,115,102,0,0,0,101,0,90,1,100, - 0,90,2,100,1,90,3,101,4,100,2,132,0,131,1,90, - 5,101,4,100,3,132,0,131,1,90,6,101,7,100,4,132, - 0,131,1,90,8,101,7,100,5,132,0,131,1,90,9,101, - 7,100,11,100,7,132,1,131,1,90,10,101,7,100,12,100, - 8,132,1,131,1,90,11,101,7,100,11,100,9,132,1,131, - 1,90,12,101,4,100,10,132,0,131,1,90,13,100,6,83, - 0,41,13,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,4,0,0,0, - 3,0,0,0,115,64,0,0,0,116,0,116,1,106,2,160, - 3,161,0,131,1,68,0,93,22,92,2,125,0,125,1,124, - 1,100,1,117,0,114,20,116,1,106,2,124,0,61,0,113, - 7,116,4,124,1,100,2,131,2,114,29,124,1,160,5,161, - 0,1,0,113,7,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,18,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,156,0,0,0,114,100,1,0, - 0,41,2,114,145,0,0,0,218,6,102,105,110,100,101,114, - 115,2,0,0,0,32,32,114,7,0,0,0,114,100,1,0, - 0,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,55, - 5,0,0,115,14,0,0,0,22,4,8,1,10,1,10,1, - 8,1,2,128,4,252,115,20,0,0,0,12,4,4,4,6, - 252,6,1,2,3,10,254,8,1,10,1,2,128,4,0,115, - 64,0,0,0,29,33,34,37,34,57,34,65,34,65,29,66, - 9,43,9,43,13,25,13,17,19,25,16,22,26,30,16,30, - 13,43,21,24,21,44,45,49,21,50,21,50,18,25,26,32, - 34,53,18,54,13,43,17,23,17,43,17,43,17,43,0,0, - 9,43,9,43,114,10,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,9,0,0,0,3,0,0,0,115,78, - 0,0,0,116,0,106,1,100,1,117,1,114,14,116,0,106, - 1,115,14,116,2,106,3,100,2,116,4,131,2,1,0,116, - 0,106,1,68,0,93,18,125,1,9,0,124,1,124,0,131, - 1,2,0,1,0,83,0,35,0,4,0,116,5,121,38,1, - 0,1,0,1,0,89,0,113,17,37,0,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, - 18,0,0,0,218,10,112,97,116,104,95,104,111,111,107,115, - 114,103,0,0,0,114,104,0,0,0,114,165,0,0,0,114, - 146,0,0,0,41,2,114,67,0,0,0,90,4,104,111,111, - 107,115,2,0,0,0,32,32,114,7,0,0,0,218,11,95, - 112,97,116,104,95,104,111,111,107,115,122,22,80,97,116,104, - 70,105,110,100,101,114,46,95,112,97,116,104,95,104,111,111, - 107,115,65,5,0,0,115,22,0,0,0,16,3,12,1,10, - 1,2,1,12,1,2,128,12,1,4,1,2,128,4,2,2, - 253,115,32,0,0,0,8,3,2,1,4,255,14,1,4,1, - 4,6,2,250,2,4,12,254,2,128,2,2,2,255,12,1, - 2,128,4,2,2,254,115,78,0,0,0,12,15,12,26,34, - 38,12,38,9,69,47,50,47,61,9,69,13,22,13,27,28, - 53,55,68,13,69,13,69,21,24,21,35,9,24,9,24,13, - 17,13,25,24,28,29,33,24,34,17,34,17,34,17,34,0, - 0,13,25,20,31,13,25,13,25,13,25,13,25,17,25,17, - 25,0,0,20,24,20,24,13,25,115,12,0,0,0,148,3, - 26,2,154,7,35,9,166,1,35,9,99,2,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,115, - 104,0,0,0,124,1,100,1,107,2,114,21,9,0,116,0, - 106,1,131,0,125,1,110,11,35,0,4,0,116,2,121,51, - 1,0,1,0,1,0,89,0,100,2,83,0,37,0,9,0, - 116,3,106,4,124,1,25,0,125,2,124,2,83,0,35,0, - 4,0,116,5,121,50,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,37,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,11,0,0,0,78,41,7,114,21,0,0,0,114, - 86,0,0,0,218,17,70,105,108,101,78,111,116,70,111,117, - 110,100,69,114,114,111,114,114,18,0,0,0,114,102,1,0, - 0,218,8,75,101,121,69,114,114,111,114,114,106,1,0,0, - 41,3,114,227,0,0,0,114,67,0,0,0,114,104,1,0, - 0,115,3,0,0,0,32,32,32,114,7,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,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,78,5,0,0,115,36,0,0,0,8,8, - 2,1,10,1,2,128,12,1,6,3,2,128,2,1,10,1, - 4,4,2,128,12,253,10,1,12,1,4,1,2,128,2,253, - 2,250,115,42,0,0,0,6,8,4,6,10,252,2,128,2, - 4,2,253,14,3,2,128,2,5,10,253,4,4,2,128,2, - 255,2,254,8,2,10,255,12,1,4,1,2,128,2,255,2, - 251,115,104,0,0,0,12,16,20,22,12,22,9,28,13,28, - 24,27,24,34,24,36,17,21,17,21,0,0,13,28,20,37, - 13,28,13,28,13,28,13,28,24,28,24,28,24,28,0,0, - 9,51,22,25,22,45,46,50,22,51,13,19,16,22,9,22, - 0,0,9,51,16,24,9,51,9,51,9,51,9,51,22,25, - 22,43,38,42,22,43,13,19,45,51,13,16,13,36,37,41, - 13,42,13,42,16,22,9,22,0,0,9,51,13,28,115,24, - 0,0,0,133,4,10,0,138,7,20,7,150,5,29,0,157, - 17,49,7,178,1,49,7,179,1,20,7,99,3,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 115,138,0,0,0,116,0,124,2,100,1,131,2,114,27,116, - 1,160,2,124,2,161,1,155,0,100,2,157,2,125,3,116, - 3,106,4,124,3,116,5,131,2,1,0,124,2,160,6,124, - 1,161,1,92,2,125,4,125,5,110,21,116,1,160,2,124, - 2,161,1,155,0,100,3,157,2,125,3,116,3,106,4,124, - 3,116,5,131,2,1,0,124,2,160,7,124,1,161,1,125, - 4,103,0,125,5,124,4,100,0,117,1,114,58,116,1,160, - 8,124,1,124,4,161,2,83,0,116,1,160,9,124,1,100, - 0,161,2,125,6,124,5,124,6,95,10,124,6,83,0,41, - 4,78,114,164,0,0,0,122,53,46,102,105,110,100,95,115, - 112,101,99,40,41,32,110,111,116,32,102,111,117,110,100,59, - 32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111, - 32,102,105,110,100,95,108,111,97,100,101,114,40,41,122,53, - 46,102,105,110,100,95,115,112,101,99,40,41,32,110,111,116, - 32,102,111,117,110,100,59,32,102,97,108,108,105,110,103,32, - 98,97,99,107,32,116,111,32,102,105,110,100,95,109,111,100, - 117,108,101,40,41,41,11,114,156,0,0,0,114,162,0,0, - 0,90,12,95,111,98,106,101,99,116,95,110,97,109,101,114, - 103,0,0,0,114,104,0,0,0,114,165,0,0,0,114,164, - 0,0,0,114,235,0,0,0,114,230,0,0,0,114,213,0, - 0,0,114,208,0,0,0,41,7,114,227,0,0,0,114,166, - 0,0,0,114,104,1,0,0,114,169,0,0,0,114,167,0, - 0,0,114,168,0,0,0,114,216,0,0,0,115,7,0,0, - 0,32,32,32,32,32,32,32,114,7,0,0,0,218,16,95, - 108,101,103,97,99,121,95,103,101,116,95,115,112,101,99,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,100,5,0,0, - 115,26,0,0,0,10,4,16,1,12,2,16,1,16,2,12, - 2,10,1,4,1,8,1,12,1,12,1,6,1,4,1,115, - 36,0,0,0,8,4,2,10,8,247,6,1,2,255,12,2, - 16,1,8,2,6,1,2,255,12,2,10,1,4,1,6,1, - 14,1,12,1,6,1,4,1,115,138,0,0,0,12,19,20, - 26,28,41,12,42,9,26,23,33,23,54,47,53,23,54,20, - 52,20,52,20,52,13,16,13,22,13,27,28,31,33,46,13, - 47,13,47,32,38,32,60,51,59,32,60,13,29,13,19,21, - 29,21,29,23,33,23,54,47,53,23,54,20,52,20,52,20, - 52,13,16,13,22,13,27,28,31,33,46,13,47,13,47,22, - 28,22,50,41,49,22,50,13,19,24,26,13,21,12,18,26, - 30,12,30,9,65,20,30,20,65,48,56,58,64,20,65,13, - 65,16,26,16,53,38,46,48,52,16,53,9,13,43,51,9, - 13,9,40,16,20,9,20,114,10,0,0,0,78,99,4,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,3,0, - 0,0,115,166,0,0,0,103,0,125,4,124,2,68,0,93, - 67,125,5,116,0,124,5,116,1,116,2,102,2,131,2,115, - 14,113,4,124,0,160,3,124,5,161,1,125,6,124,6,100, - 1,117,1,114,71,116,4,124,6,100,2,131,2,114,35,124, - 6,160,5,124,1,124,3,161,2,125,7,110,6,124,0,160, - 6,124,1,124,6,161,2,125,7,124,7,100,1,117,0,114, - 46,113,4,124,7,106,7,100,1,117,1,114,55,124,7,2, - 0,1,0,83,0,124,7,106,8,125,8,124,8,100,1,117, - 0,114,66,116,9,100,3,131,1,130,1,124,4,160,10,124, - 8,161,1,1,0,113,4,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,232,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,188,0, - 0,0,114,113,0,0,0,218,5,98,121,116,101,115,114,109, - 1,0,0,114,156,0,0,0,114,232,0,0,0,114,110,1, - 0,0,114,167,0,0,0,114,208,0,0,0,114,146,0,0, - 0,114,194,0,0,0,114,162,0,0,0,114,213,0,0,0, - 41,9,114,227,0,0,0,114,166,0,0,0,114,67,0,0, - 0,114,231,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,104,1, - 0,0,114,216,0,0,0,114,168,0,0,0,115,9,0,0, - 0,32,32,32,32,32,32,32,32,32,114,7,0,0,0,218, - 9,95,103,101,116,95,115,112,101,99,122,20,80,97,116,104, - 70,105,110,100,101,114,46,95,103,101,116,95,115,112,101,99, - 121,5,0,0,115,42,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,115,50,0,0,0,4,5,2,1,4,24,2,232, - 12,1,4,1,10,1,6,1,2,16,8,241,2,3,14,254, - 12,2,6,1,4,1,8,1,10,1,6,1,6,1,10,1, - 10,5,2,128,12,2,6,1,4,1,115,166,0,0,0,26, - 28,9,23,22,26,9,24,9,24,13,18,20,30,31,36,39, - 42,44,49,38,50,20,51,13,25,17,25,22,25,22,53,47, - 52,22,53,13,19,16,22,30,34,16,34,13,48,20,27,28, - 34,36,47,20,48,17,66,28,34,28,62,45,53,55,61,28, - 62,21,25,21,25,28,31,28,66,49,57,59,65,28,66,21, - 25,20,24,28,32,20,32,17,29,21,29,20,24,20,31,39, - 43,20,43,17,32,28,32,21,32,21,32,21,32,28,32,28, - 59,17,25,20,28,32,36,20,36,17,61,27,38,39,60,27, - 61,21,61,17,31,17,48,39,47,17,48,17,48,0,0,20, - 30,20,57,42,50,52,56,20,57,13,17,47,61,13,17,13, - 44,20,24,13,24,114,10,0,0,0,99,4,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,115, - 94,0,0,0,124,2,100,1,117,0,114,7,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,20,100,1,83,0,124,4,106,3, - 100,1,117,0,114,45,124,4,106,4,125,5,124,5,114,43, - 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,18,0,0,0,114,67,0,0,0, - 114,113,1,0,0,114,167,0,0,0,114,208,0,0,0,114, - 211,0,0,0,114,64,1,0,0,41,6,114,227,0,0,0, - 114,166,0,0,0,114,67,0,0,0,114,231,0,0,0,114, - 216,0,0,0,114,112,1,0,0,115,6,0,0,0,32,32, - 32,32,32,32,114,7,0,0,0,114,232,0,0,0,122,20, - 80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95, - 115,112,101,99,153,5,0,0,115,26,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,115,32,0,0,0,6,6,8,1, - 14,1,6,1,2,13,4,244,8,1,2,11,6,246,2,1, - 2,7,6,252,16,1,4,1,4,2,4,2,115,94,0,0, - 0,12,16,20,24,12,24,9,28,20,23,20,28,13,17,16, - 19,16,53,30,38,40,44,46,52,16,53,9,13,12,16,20, - 24,12,24,9,24,20,24,20,24,14,18,14,25,29,33,14, - 33,9,24,30,34,30,61,13,27,16,30,13,28,31,35,17, - 21,17,28,51,65,66,74,76,90,92,95,92,105,51,106,17, - 21,17,48,24,28,17,28,24,28,24,28,20,24,13,24,114, - 10,0,0,0,99,3,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,115,42,0,0,0,116,0, - 106,1,100,1,116,2,131,2,1,0,124,0,160,3,124,1, - 124,2,161,2,125,3,124,3,100,2,117,0,114,18,100,2, - 83,0,124,3,106,4,83,0,41,3,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, + 46,108,111,97,100,95,109,111,100,117,108,101,32,5,0,0, + 115,8,0,0,0,6,7,4,1,4,255,12,3,115,10,0, + 0,0,2,7,2,1,2,255,8,1,12,2,115,26,0,0, + 0,9,19,9,48,37,77,37,41,37,47,9,48,9,48,16, + 26,16,60,45,49,51,59,16,60,9,60,114,10,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,3,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,46,1, + 0,0,114,97,1,0,0,114,66,1,0,0,41,3,114,147, + 0,0,0,114,252,0,0,0,114,97,1,0,0,115,3,0, + 0,0,32,32,32,114,7,0,0,0,114,47,1,0,0,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,44,5,0,0,243,4,0,0,0,12,1, + 10,1,114,98,1,0,0,115,22,0,0,0,9,54,9,54, + 9,54,9,54,9,54,9,54,16,31,32,36,32,42,16,43, + 9,43,114,10,0,0,0,78,41,13,114,153,0,0,0,114, + 152,0,0,0,114,154,0,0,0,114,242,0,0,0,114,239, + 0,0,0,114,95,1,0,0,114,212,0,0,0,114,13,1, + 0,0,114,249,0,0,0,114,246,0,0,0,114,253,0,0, + 0,114,0,1,0,0,114,47,1,0,0,114,13,0,0,0, + 114,10,0,0,0,114,7,0,0,0,114,93,1,0,0,114, + 93,1,0,0,2,5,0,0,115,22,0,0,0,8,0,6, + 1,2,3,8,1,6,10,6,3,6,3,6,3,6,3,6, + 3,10,12,115,62,0,0,0,0,129,0,129,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,0,129,8,244,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, + 0,127,6,14,2,2,8,9,6,3,6,3,6,3,6,3, + 6,3,6,12,10,4,115,70,0,0,0,1,1,1,1,1, + 1,1,1,5,61,5,61,5,61,6,18,5,67,5,67,5, + 67,5,67,5,20,5,20,5,20,5,18,5,18,5,18,5, + 66,5,66,5,66,5,57,5,57,5,57,5,13,5,13,5, + 13,5,60,5,60,5,60,5,43,5,43,5,43,5,43,5, + 43,114,10,0,0,0,114,93,1,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, + 115,102,0,0,0,101,0,90,1,100,0,90,2,100,1,90, + 3,101,4,100,2,132,0,131,1,90,5,101,4,100,3,132, + 0,131,1,90,6,101,7,100,4,132,0,131,1,90,8,101, + 7,100,5,132,0,131,1,90,9,101,7,100,11,100,7,132, + 1,131,1,90,10,101,7,100,12,100,8,132,1,131,1,90, + 11,101,7,100,11,100,9,132,1,131,1,90,12,101,4,100, + 10,132,0,131,1,90,13,100,6,83,0,41,13,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,4,0,0,0,3,0,0,0,115,64, + 0,0,0,116,0,116,1,106,2,160,3,161,0,131,1,68, + 0,93,22,92,2,125,0,125,1,124,1,100,1,117,0,114, + 20,116,1,106,2,124,0,61,0,113,7,116,4,124,1,100, + 2,131,2,114,29,124,1,160,5,161,0,1,0,113,7,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,18,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,156,0,0,0,114,100,1,0,0,41,2,114,145,0, + 0,0,218,6,102,105,110,100,101,114,115,2,0,0,0,32, + 32,114,7,0,0,0,114,100,1,0,0,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,55,5,0,0,115,14,0, + 0,0,22,4,8,1,10,1,10,1,8,1,2,128,4,252, + 115,20,0,0,0,12,4,4,4,6,252,6,1,2,3,10, + 254,8,1,10,1,2,128,4,0,115,64,0,0,0,29,33, + 34,37,34,57,34,65,34,65,29,66,9,43,9,43,13,25, + 13,17,19,25,16,22,26,30,16,30,13,43,21,24,21,44, + 45,49,21,50,21,50,18,25,26,32,34,53,18,54,13,43, + 17,23,17,43,17,43,17,43,0,0,9,43,9,43,114,10, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 9,0,0,0,3,0,0,0,115,78,0,0,0,116,0,106, + 1,100,1,117,1,114,14,116,0,106,1,115,14,116,2,106, + 3,100,2,116,4,131,2,1,0,116,0,106,1,68,0,93, + 19,125,1,9,0,124,1,124,0,131,1,2,0,1,0,83, + 0,35,0,4,0,116,5,121,35,1,0,1,0,1,0,89, + 0,113,17,119,0,37,0,100,1,83,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,18,0,0,0,218,10, + 112,97,116,104,95,104,111,111,107,115,114,103,0,0,0,114, + 104,0,0,0,114,165,0,0,0,114,146,0,0,0,41,2, + 114,67,0,0,0,90,4,104,111,111,107,115,2,0,0,0, + 32,32,114,7,0,0,0,218,11,95,112,97,116,104,95,104, + 111,111,107,115,122,22,80,97,116,104,70,105,110,100,101,114, + 46,95,112,97,116,104,95,104,111,111,107,115,65,5,0,0, + 115,22,0,0,0,16,3,12,1,10,1,2,1,12,1,2, + 128,12,1,4,1,2,255,2,128,4,3,115,30,0,0,0, + 8,3,2,1,4,255,14,1,4,1,4,6,2,250,2,4, + 12,254,2,128,2,2,2,255,14,1,2,128,4,2,115,78, + 0,0,0,12,15,12,26,34,38,12,38,9,69,47,50,47, + 61,9,69,13,22,13,27,28,53,55,68,13,69,13,69,21, + 24,21,35,9,24,9,24,13,17,13,25,24,28,29,33,24, + 34,17,34,17,34,17,34,0,0,13,25,20,31,13,25,13, + 25,13,25,13,25,17,25,17,25,13,25,0,0,20,24,20, + 24,115,12,0,0,0,148,3,26,2,154,7,36,9,163,1, + 36,9,99,2,0,0,0,0,0,0,0,0,0,0,0,8, + 0,0,0,3,0,0,0,115,104,0,0,0,124,1,100,1, + 107,2,114,22,9,0,116,0,106,1,131,0,125,1,110,12, + 35,0,4,0,116,2,121,20,1,0,1,0,1,0,89,0, + 100,2,83,0,119,0,37,0,9,0,116,3,106,4,124,1, + 25,0,125,2,124,2,83,0,35,0,4,0,116,5,121,50, + 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,37,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,11,0,0,0,78, + 41,7,114,21,0,0,0,114,86,0,0,0,218,17,70,105, + 108,101,78,111,116,70,111,117,110,100,69,114,114,111,114,114, + 18,0,0,0,114,102,1,0,0,218,8,75,101,121,69,114, + 114,111,114,114,106,1,0,0,41,3,114,227,0,0,0,114, + 67,0,0,0,114,104,1,0,0,115,3,0,0,0,32,32, + 32,114,7,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,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,78,5,0, + 0,115,36,0,0,0,8,8,2,1,10,1,2,128,12,1, + 6,3,2,253,2,128,2,4,10,1,4,4,2,128,12,253, + 10,1,12,1,4,1,2,253,2,128,115,40,0,0,0,6, + 8,4,6,10,252,2,128,2,4,2,253,16,3,2,128,2, + 5,10,253,4,4,2,128,2,255,2,254,8,2,10,255,12, + 1,4,1,2,255,2,128,115,104,0,0,0,12,16,20,22, + 12,22,9,28,13,28,24,27,24,34,24,36,17,21,17,21, + 0,0,13,28,20,37,13,28,13,28,13,28,13,28,24,28, + 24,28,24,28,13,28,0,0,9,51,22,25,22,45,46,50, + 22,51,13,19,16,22,9,22,0,0,9,51,16,24,9,51, + 9,51,9,51,9,51,22,25,22,43,38,42,22,43,13,19, + 45,51,13,16,13,36,37,41,13,42,13,42,16,22,9,22, + 9,51,0,0,115,24,0,0,0,133,4,10,0,138,7,21, + 7,148,1,21,7,151,5,30,0,158,17,51,7,178,1,51, + 7,99,3,0,0,0,0,0,0,0,0,0,0,0,4,0, + 0,0,3,0,0,0,115,138,0,0,0,116,0,124,2,100, + 1,131,2,114,27,116,1,160,2,124,2,161,1,155,0,100, + 2,157,2,125,3,116,3,106,4,124,3,116,5,131,2,1, + 0,124,2,160,6,124,1,161,1,92,2,125,4,125,5,110, + 21,116,1,160,2,124,2,161,1,155,0,100,3,157,2,125, + 3,116,3,106,4,124,3,116,5,131,2,1,0,124,2,160, + 7,124,1,161,1,125,4,103,0,125,5,124,4,100,0,117, + 1,114,58,116,1,160,8,124,1,124,4,161,2,83,0,116, + 1,160,9,124,1,100,0,161,2,125,6,124,5,124,6,95, + 10,124,6,83,0,41,4,78,114,164,0,0,0,122,53,46, + 102,105,110,100,95,115,112,101,99,40,41,32,110,111,116,32, + 102,111,117,110,100,59,32,102,97,108,108,105,110,103,32,98, + 97,99,107,32,116,111,32,102,105,110,100,95,108,111,97,100, + 101,114,40,41,122,53,46,102,105,110,100,95,115,112,101,99, + 40,41,32,110,111,116,32,102,111,117,110,100,59,32,102,97, + 108,108,105,110,103,32,98,97,99,107,32,116,111,32,102,105, + 110,100,95,109,111,100,117,108,101,40,41,41,11,114,156,0, + 0,0,114,162,0,0,0,90,12,95,111,98,106,101,99,116, + 95,110,97,109,101,114,103,0,0,0,114,104,0,0,0,114, + 165,0,0,0,114,164,0,0,0,114,235,0,0,0,114,230, + 0,0,0,114,213,0,0,0,114,208,0,0,0,41,7,114, + 227,0,0,0,114,166,0,0,0,114,104,1,0,0,114,169, + 0,0,0,114,167,0,0,0,114,168,0,0,0,114,216,0, + 0,0,115,7,0,0,0,32,32,32,32,32,32,32,114,7, + 0,0,0,218,16,95,108,101,103,97,99,121,95,103,101,116, + 95,115,112,101,99,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,100,5,0,0,115,26,0,0,0,10,4,16,1,12, + 2,16,1,16,2,12,2,10,1,4,1,8,1,12,1,12, + 1,6,1,4,1,115,36,0,0,0,8,4,2,10,8,247, + 6,1,2,255,12,2,16,1,8,2,6,1,2,255,12,2, + 10,1,4,1,6,1,14,1,12,1,6,1,4,1,115,138, + 0,0,0,12,19,20,26,28,41,12,42,9,26,23,33,23, + 54,47,53,23,54,20,52,20,52,20,52,13,16,13,22,13, + 27,28,31,33,46,13,47,13,47,32,38,32,60,51,59,32, + 60,13,29,13,19,21,29,21,29,23,33,23,54,47,53,23, + 54,20,52,20,52,20,52,13,16,13,22,13,27,28,31,33, + 46,13,47,13,47,22,28,22,50,41,49,22,50,13,19,24, + 26,13,21,12,18,26,30,12,30,9,65,20,30,20,65,48, + 56,58,64,20,65,13,65,16,26,16,53,38,46,48,52,16, + 53,9,13,43,51,9,13,9,40,16,20,9,20,114,10,0, + 0,0,78,99,4,0,0,0,0,0,0,0,0,0,0,0, + 5,0,0,0,3,0,0,0,115,166,0,0,0,103,0,125, + 4,124,2,68,0,93,67,125,5,116,0,124,5,116,1,116, + 2,102,2,131,2,115,14,113,4,124,0,160,3,124,5,161, + 1,125,6,124,6,100,1,117,1,114,71,116,4,124,6,100, + 2,131,2,114,35,124,6,160,5,124,1,124,3,161,2,125, + 7,110,6,124,0,160,6,124,1,124,6,161,2,125,7,124, + 7,100,1,117,0,114,46,113,4,124,7,106,7,100,1,117, + 1,114,55,124,7,2,0,1,0,83,0,124,7,106,8,125, + 8,124,8,100,1,117,0,114,66,116,9,100,3,131,1,130, + 1,124,4,160,10,124,8,161,1,1,0,113,4,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,232,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,188,0,0,0,114,113,0,0,0,218,5,98, + 121,116,101,115,114,109,1,0,0,114,156,0,0,0,114,232, + 0,0,0,114,110,1,0,0,114,167,0,0,0,114,208,0, + 0,0,114,146,0,0,0,114,194,0,0,0,114,162,0,0, + 0,114,213,0,0,0,41,9,114,227,0,0,0,114,166,0, + 0,0,114,67,0,0,0,114,231,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,104,1,0,0,114,216,0,0,0,114,168,0, + 0,0,115,9,0,0,0,32,32,32,32,32,32,32,32,32, + 114,7,0,0,0,218,9,95,103,101,116,95,115,112,101,99, + 122,20,80,97,116,104,70,105,110,100,101,114,46,95,103,101, + 116,95,115,112,101,99,121,5,0,0,115,42,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,115,50,0,0,0,4,5, + 2,1,4,24,2,232,12,1,4,1,10,1,6,1,2,16, + 8,241,2,3,14,254,12,2,6,1,4,1,8,1,10,1, + 6,1,6,1,10,1,10,5,2,128,12,2,6,1,4,1, + 115,166,0,0,0,26,28,9,23,22,26,9,24,9,24,13, + 18,20,30,31,36,39,42,44,49,38,50,20,51,13,25,17, + 25,22,25,22,53,47,52,22,53,13,19,16,22,30,34,16, + 34,13,48,20,27,28,34,36,47,20,48,17,66,28,34,28, + 62,45,53,55,61,28,62,21,25,21,25,28,31,28,66,49, + 57,59,65,28,66,21,25,20,24,28,32,20,32,17,29,21, + 29,20,24,20,31,39,43,20,43,17,32,28,32,21,32,21, + 32,21,32,28,32,28,59,17,25,20,28,32,36,20,36,17, + 61,27,38,39,60,27,61,21,61,17,31,17,48,39,47,17, + 48,17,48,0,0,20,30,20,57,42,50,52,56,20,57,13, + 17,47,61,13,17,13,44,20,24,13,24,114,10,0,0,0, + 99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,0, + 0,3,0,0,0,115,94,0,0,0,124,2,100,1,117,0, + 114,7,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,20,100,1, + 83,0,124,4,106,3,100,1,117,0,114,45,124,4,106,4, + 125,5,124,5,114,43,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,18,0,0, + 0,114,67,0,0,0,114,113,1,0,0,114,167,0,0,0, + 114,208,0,0,0,114,211,0,0,0,114,64,1,0,0,41, + 6,114,227,0,0,0,114,166,0,0,0,114,67,0,0,0, + 114,231,0,0,0,114,216,0,0,0,114,112,1,0,0,115, + 6,0,0,0,32,32,32,32,32,32,114,7,0,0,0,114, + 232,0,0,0,122,20,80,97,116,104,70,105,110,100,101,114, + 46,102,105,110,100,95,115,112,101,99,153,5,0,0,115,26, + 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,115,32,0, + 0,0,6,6,8,1,14,1,6,1,2,13,4,244,8,1, + 2,11,6,246,2,1,2,7,6,252,16,1,4,1,4,2, + 4,2,115,94,0,0,0,12,16,20,24,12,24,9,28,20, + 23,20,28,13,17,16,19,16,53,30,38,40,44,46,52,16, + 53,9,13,12,16,20,24,12,24,9,24,20,24,20,24,14, + 18,14,25,29,33,14,33,9,24,30,34,30,61,13,27,16, + 30,13,28,31,35,17,21,17,28,51,65,66,74,76,90,92, + 95,92,105,51,106,17,21,17,48,24,28,17,28,24,28,24, + 28,20,24,13,24,114,10,0,0,0,99,3,0,0,0,0, + 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,115, + 42,0,0,0,116,0,106,1,100,1,116,2,131,2,1,0, + 124,0,160,3,124,1,124,2,161,2,125,3,124,3,100,2, + 117,0,114,18,100,2,83,0,124,3,106,4,83,0,41,3, + 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,122,101,80,97, + 116,104,70,105,110,100,101,114,46,102,105,110,100,95,109,111, + 100,117,108,101,40,41,32,105,115,32,100,101,112,114,101,99, + 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32, + 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80, + 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32, + 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, + 101,97,100,78,114,233,0,0,0,114,234,0,0,0,115,4, + 0,0,0,32,32,32,32,114,7,0,0,0,114,235,0,0, + 0,122,22,80,97,116,104,70,105,110,100,101,114,46,102,105, + 110,100,95,109,111,100,117,108,101,177,5,0,0,115,14,0, + 0,0,6,8,2,2,4,254,12,3,8,1,4,1,6,1, + 115,14,0,0,0,4,8,2,1,6,1,12,1,6,1,6, + 1,6,1,115,42,0,0,0,9,18,9,23,24,84,24,42, + 9,43,9,43,16,19,16,45,30,38,40,44,16,45,9,13, + 12,16,20,24,12,24,9,24,20,24,20,24,16,20,16,27, + 9,27,114,10,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,4,0,0,0,15,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,114,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,148,0,0,0,114,149,0,0,0,114,114,1,0,0, + 115,3,0,0,0,32,32,32,114,7,0,0,0,114,115,1, + 0,0,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,193,5,0,0,243,4,0,0,0,12,10,16,1,114,116, + 1,0,0,115,28,0,0,0,9,58,9,58,9,58,9,58, + 9,58,9,58,16,34,16,53,55,59,16,70,63,69,16,70, + 16,70,9,70,114,10,0,0,0,114,71,0,0,0,114,236, + 0,0,0,41,14,114,153,0,0,0,114,152,0,0,0,114, + 154,0,0,0,114,155,0,0,0,114,239,0,0,0,114,100, + 1,0,0,114,106,1,0,0,114,240,0,0,0,114,109,1, + 0,0,114,110,1,0,0,114,113,1,0,0,114,232,0,0, + 0,114,235,0,0,0,114,115,1,0,0,114,13,0,0,0, + 114,10,0,0,0,114,7,0,0,0,114,99,1,0,0,114, + 99,1,0,0,51,5,0,0,115,36,0,0,0,8,0,4, + 2,2,2,8,1,2,9,8,1,2,12,8,1,2,21,8, + 1,2,20,10,1,2,31,10,1,2,23,10,1,2,15,12, + 1,115,124,0,0,0,0,129,0,129,0,129,0,129,0,129, + 0,129,0,129,0,129,0,129,0,129,8,195,0,127,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, + 2,63,0,129,0,129,0,129,0,129,0,129,0,129,0,129, + 0,129,0,129,0,129,2,193,0,127,0,127,0,127,0,127, + 0,127,0,127,0,127,0,127,0,127,0,127,2,65,8,8, + 2,2,8,11,2,2,8,20,2,2,8,19,2,2,2,1, + 8,29,2,2,2,1,8,21,2,2,2,1,8,13,2,2, + 12,11,115,102,0,0,0,1,1,1,1,1,1,1,1,5, + 73,1,1,6,18,5,43,5,43,5,43,5,43,6,18,5, + 24,5,24,5,24,5,24,6,17,5,22,5,22,5,22,5, + 22,6,17,5,20,5,20,5,20,5,20,6,17,47,51,5, + 24,5,24,5,24,5,24,6,17,39,43,5,24,5,24,5, + 24,5,24,6,17,41,45,5,27,5,27,5,27,5,27,6, + 18,5,70,5,70,5,70,5,70,5,70,5,70,114,10,0, + 0,0,114,99,1,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,0,0,0,0,115,74,0,0, + 0,101,0,90,1,100,0,90,2,100,1,90,3,100,2,132, + 0,90,4,100,3,132,0,90,5,101,6,90,7,100,4,132, + 0,90,8,100,5,132,0,90,9,100,11,100,7,132,1,90, + 10,100,8,132,0,90,11,101,12,100,9,132,0,131,1,90, + 13,100,10,132,0,90,14,100,6,83,0,41,12,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,7,0,0,0,115,112,0,0, + 0,135,5,103,0,125,3,124,2,68,0,93,15,92,2,138, + 5,125,4,124,3,160,0,136,5,102,1,100,1,132,8,124, + 4,68,0,131,1,161,1,1,0,113,5,124,3,124,0,95, + 1,124,1,112,27,100,2,124,0,95,2,116,3,124,0,106, + 2,131,1,115,43,116,4,116,5,106,6,131,0,124,0,106, + 2,131,2,124,0,95,2,100,3,124,0,95,7,116,8,131, + 0,124,0,95,9,116,8,131,0,124,0,95,10,100,4,83, + 0,41,5,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,3,0,0,0, + 51,0,0,0,115,24,0,0,0,129,0,124,0,93,7,125, + 1,124,1,137,2,102,2,86,0,1,0,113,2,100,0,83, + 0,114,71,0,0,0,114,13,0,0,0,41,3,114,5,0, + 0,0,114,61,1,0,0,114,167,0,0,0,115,3,0,0, + 0,32,32,128,114,7,0,0,0,114,8,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,222,5,0,0,243,4,0,0,0,2, + 128,22,0,114,118,1,0,0,115,24,0,0,0,0,0,27, + 68,27,68,49,55,29,35,37,43,28,44,27,68,27,68,27, + 68,27,68,27,68,114,10,0,0,0,114,101,0,0,0,114, + 134,0,0,0,78,41,11,114,194,0,0,0,218,8,95,108, + 111,97,100,101,114,115,114,67,0,0,0,114,90,0,0,0, + 114,69,0,0,0,114,21,0,0,0,114,86,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,6,114,147,0,0,0,114,67,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,218,0,0,0,114,167,0, + 0,0,115,6,0,0,0,32,32,32,32,32,64,114,7,0, + 0,0,114,242,0,0,0,122,19,70,105,108,101,70,105,110, + 100,101,114,46,95,95,105,110,105,116,95,95,216,5,0,0, + 115,22,0,0,0,2,128,4,4,12,1,24,1,6,1,10, + 2,10,1,18,1,6,1,8,1,12,1,115,26,0,0,0, + 2,128,4,4,2,1,4,1,6,255,24,1,6,1,10,2, + 8,1,20,1,6,1,8,1,12,1,115,112,0,0,0,0, + 0,19,21,9,16,33,47,9,68,9,68,13,29,13,19,21, + 29,13,20,13,68,27,68,27,68,27,68,27,68,59,67,27, + 68,27,68,13,68,13,68,13,68,25,32,9,13,9,22,21, + 25,21,32,29,32,9,13,9,18,16,27,28,32,28,37,16, + 38,9,60,25,35,36,39,36,46,36,48,50,54,50,59,25, + 60,13,17,13,22,28,30,9,13,9,25,28,31,28,33,9, + 13,9,25,36,39,36,41,9,13,9,33,9,33,9,33,114, + 10,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, + 0,2,0,0,0,3,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,134,0,0,0, + 78,41,1,114,120,1,0,0,114,35,1,0,0,115,1,0, + 0,0,32,114,7,0,0,0,114,100,1,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,232,5,0,0,114, + 85,0,0,0,114,85,0,0,0,115,10,0,0,0,28,30, + 9,13,9,25,9,25,9,25,114,10,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0, + 0,0,115,54,0,0,0,116,0,106,1,100,1,116,2,131, + 2,1,0,124,0,160,3,124,1,161,1,125,2,124,2,100, + 2,117,0,114,19,100,2,103,0,102,2,83,0,124,2,106, + 4,124,2,106,5,112,25,103,0,102,2,83,0,41,3,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,122,101,80,97,116,104,70,105,110,100, - 101,114,46,102,105,110,100,95,109,111,100,117,108,101,40,41, + 32,32,32,32,32,32,122,101,70,105,108,101,70,105,110,100, + 101,114,46,102,105,110,100,95,108,111,97,100,101,114,40,41, 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, 51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115, - 112,101,99,40,41,32,105,110,115,116,101,97,100,78,114,233, - 0,0,0,114,234,0,0,0,115,4,0,0,0,32,32,32, - 32,114,7,0,0,0,114,235,0,0,0,122,22,80,97,116, - 104,70,105,110,100,101,114,46,102,105,110,100,95,109,111,100, - 117,108,101,177,5,0,0,115,14,0,0,0,6,8,2,2, - 4,254,12,3,8,1,4,1,6,1,115,14,0,0,0,4, - 8,2,1,6,1,12,1,6,1,6,1,6,1,115,42,0, - 0,0,9,18,9,23,24,84,24,42,9,43,9,43,16,19, - 16,45,30,38,40,44,16,45,9,13,12,16,20,24,12,24, - 9,24,20,24,20,24,16,20,16,27,9,27,114,10,0,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,15,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,114,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,148,0,0,0, - 114,149,0,0,0,114,114,1,0,0,115,3,0,0,0,32, - 32,32,114,7,0,0,0,114,115,1,0,0,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,193,5,0,0,243, - 4,0,0,0,12,10,16,1,114,116,1,0,0,115,28,0, - 0,0,9,58,9,58,9,58,9,58,9,58,9,58,16,34, - 16,53,55,59,16,70,63,69,16,70,16,70,9,70,114,10, - 0,0,0,114,71,0,0,0,114,236,0,0,0,41,14,114, + 112,101,99,40,41,32,105,110,115,116,101,97,100,78,41,6, + 114,103,0,0,0,114,104,0,0,0,114,105,0,0,0,114, + 232,0,0,0,114,167,0,0,0,114,208,0,0,0,41,3, + 114,147,0,0,0,114,166,0,0,0,114,216,0,0,0,115, + 3,0,0,0,32,32,32,114,7,0,0,0,114,164,0,0, + 0,122,22,70,105,108,101,70,105,110,100,101,114,46,102,105, + 110,100,95,108,111,97,100,101,114,238,5,0,0,115,14,0, + 0,0,6,7,2,2,4,254,10,3,8,1,8,1,16,1, + 115,14,0,0,0,4,7,2,1,6,1,10,1,6,1,10, + 1,16,1,115,54,0,0,0,9,18,9,23,24,84,24,42, + 9,43,9,43,16,20,16,40,31,39,16,40,9,13,12,16, + 20,24,12,24,9,28,20,24,26,28,20,28,13,28,16,20, + 16,27,29,33,29,60,29,66,64,66,16,66,9,66,114,10, + 0,0,0,99,6,0,0,0,0,0,0,0,0,0,0,0, + 6,0,0,0,3,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,207,0,0,0,41, + 1,114,219,0,0,0,41,7,114,147,0,0,0,114,217,0, + 0,0,114,166,0,0,0,114,67,0,0,0,90,4,115,109, + 115,108,114,231,0,0,0,114,167,0,0,0,115,7,0,0, + 0,32,32,32,32,32,32,32,114,7,0,0,0,114,113,1, + 0,0,122,20,70,105,108,101,70,105,110,100,101,114,46,95, + 103,101,116,95,115,112,101,99,253,5,0,0,115,8,0,0, + 0,10,1,8,1,2,1,6,255,115,6,0,0,0,10,1, + 8,1,8,1,115,26,0,0,0,18,30,31,39,41,45,18, + 46,9,15,16,39,40,48,50,54,63,69,67,71,16,72,16, + 72,9,72,114,10,0,0,0,78,99,3,0,0,0,0,0, + 0,0,0,0,0,0,9,0,0,0,3,0,0,0,115,126, + 1,0,0,100,1,125,3,124,1,160,0,100,2,161,1,100, + 3,25,0,125,4,9,0,116,1,124,0,106,2,112,17,116, + 3,106,4,131,0,131,1,106,5,125,5,110,13,35,0,4, + 0,116,6,121,32,1,0,1,0,1,0,100,4,125,5,89, + 0,110,2,119,0,37,0,124,5,124,0,106,7,107,3,114, + 46,124,0,160,8,161,0,1,0,124,5,124,0,95,7,116, + 9,131,0,114,57,124,0,106,10,125,6,124,4,160,11,161, + 0,125,7,110,5,124,0,106,12,125,6,124,4,125,7,124, + 7,124,6,118,0,114,109,116,13,124,0,106,2,124,4,131, + 2,125,8,124,0,106,14,68,0,93,29,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,104,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,75,116,17,124,8,131,1,125,3,124,0,106, + 14,68,0,93,56,92,2,125,9,125,10,9,0,116,13,124, + 0,106,2,124,4,124,9,23,0,131,2,125,12,110,13,35, + 0,4,0,116,18,121,137,1,0,1,0,1,0,89,0,1, + 0,100,6,83,0,119,0,37,0,116,19,160,20,100,7,124, + 12,100,3,100,8,166,3,1,0,124,7,124,9,23,0,124, + 6,118,0,114,168,116,15,124,12,131,1,114,168,124,0,160, + 16,124,10,124,1,124,12,100,6,124,2,161,5,2,0,1, + 0,83,0,113,112,124,3,114,189,116,19,160,20,100,9,124, + 8,161,2,1,0,116,19,160,21,124,1,100,6,161,2,125, + 13,124,8,103,1,124,13,95,22,124,13,83,0,100,6,83, + 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,101,0,0,0,114,47,0,0,0,114, + 134,0,0,0,114,242,0,0,0,78,122,9,116,114,121,105, + 110,103,32,123,125,41,1,90,9,118,101,114,98,111,115,105, + 116,121,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,23,114, + 108,0,0,0,114,78,0,0,0,114,67,0,0,0,114,21, + 0,0,0,114,86,0,0,0,114,50,1,0,0,114,80,0, + 0,0,114,120,1,0,0,218,11,95,102,105,108,108,95,99, + 97,99,104,101,114,24,0,0,0,114,123,1,0,0,114,135, + 0,0,0,114,122,1,0,0,114,69,0,0,0,114,119,1, + 0,0,114,84,0,0,0,114,113,1,0,0,114,87,0,0, + 0,114,115,0,0,0,114,162,0,0,0,114,176,0,0,0, + 114,213,0,0,0,114,208,0,0,0,41,14,114,147,0,0, + 0,114,166,0,0,0,114,231,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,196,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,61,1,0,0, + 114,217,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, + 216,0,0,0,115,14,0,0,0,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,114,7,0,0,0,114,232,0,0, + 0,122,20,70,105,108,101,70,105,110,100,101,114,46,102,105, + 110,100,95,115,112,101,99,2,6,0,0,115,94,0,0,0, + 4,5,14,1,2,1,22,1,2,128,12,1,8,1,2,255, + 2,128,10,2,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,2,1,18,1,2,128,12,1,8,1, + 2,255,2,128,16,2,12,1,8,1,10,1,4,1,8,255, + 2,128,4,2,12,1,12,1,8,1,4,1,4,1,115,114, + 0,0,0,4,5,14,1,2,4,22,254,2,128,2,2,2, + 255,18,1,2,128,8,1,2,2,8,255,6,1,4,2,2, + 5,6,252,10,1,6,2,4,1,6,2,2,10,12,247,4, + 1,4,8,6,248,8,1,10,1,6,1,28,1,8,4,4, + 2,4,9,6,247,2,4,18,254,2,128,2,2,2,255,18, + 1,2,128,16,1,10,1,2,3,6,254,2,2,2,255,2, + 1,6,255,12,1,2,128,2,1,2,4,12,253,12,1,8, + 1,4,1,4,1,115,126,1,0,0,24,29,9,21,23,31, + 23,47,43,46,23,47,48,49,23,50,9,20,9,23,21,31, + 32,36,32,41,32,57,45,48,45,55,45,57,21,58,21,67, + 13,18,13,18,0,0,9,23,16,23,9,23,9,23,9,23, + 9,23,21,23,13,18,13,18,13,18,9,23,0,0,12,17, + 21,25,21,37,12,37,9,37,13,17,13,31,13,31,13,31, + 32,37,13,17,13,29,12,23,12,25,9,39,21,25,21,45, + 13,18,28,39,28,47,28,47,13,25,13,25,21,25,21,37, + 13,18,28,39,13,25,12,24,28,33,12,33,9,54,25,35, + 36,40,36,45,47,58,25,59,13,22,41,45,41,54,13,54, + 13,54,17,37,17,23,25,37,33,43,46,52,33,52,17,30, + 29,39,40,49,51,64,29,65,17,26,20,32,33,42,20,43, + 17,98,28,32,28,98,43,55,57,65,67,76,79,88,78,89, + 91,97,28,98,21,98,21,98,21,98,17,98,32,43,44,53, + 32,54,17,29,37,41,37,50,9,56,9,56,13,33,13,19, + 21,33,13,28,29,39,40,44,40,49,51,62,65,71,51,71, + 29,72,17,26,17,26,0,0,13,28,20,30,13,28,13,28, + 13,28,13,28,24,28,24,28,24,28,24,28,13,28,0,0, + 13,23,13,77,41,52,54,63,75,76,13,77,13,77,13,77, + 16,28,31,37,16,37,41,46,16,46,13,56,20,32,33,42, + 20,43,17,56,28,32,28,56,43,55,57,65,67,76,43,47, + 49,55,28,56,21,56,21,56,21,56,0,0,12,24,9,24, + 13,23,13,80,41,68,70,79,13,80,13,80,20,30,20,57, + 42,50,52,56,20,57,13,17,48,57,47,58,13,17,13,44, + 20,24,13,24,16,20,16,20,115,30,0,0,0,138,10,21, + 0,149,9,33,7,160,1,33,7,193,53,8,65,62,2,193, + 62,7,66,10,9,194,9,1,66,10,9,99,1,0,0,0, + 0,0,0,0,0,0,0,0,10,0,0,0,3,0,0,0, + 115,192,0,0,0,124,0,106,0,125,1,9,0,116,1,106, + 2,124,1,112,11,116,1,106,3,131,0,131,1,125,2,110, + 16,35,0,4,0,116,4,116,5,116,6,102,3,121,28,1, + 0,1,0,1,0,103,0,125,2,89,0,110,2,119,0,37, + 0,116,7,106,8,160,9,100,1,161,1,115,42,116,10,124, + 2,131,1,124,0,95,11,110,37,116,10,131,0,125,3,124, + 2,68,0,93,28,125,4,124,4,160,12,100,2,161,1,92, + 3,125,5,125,6,125,7,124,6,114,68,100,3,160,13,124, + 5,124,7,160,14,161,0,161,2,125,8,110,2,124,5,125, + 8,124,3,160,15,124,8,161,1,1,0,113,47,124,3,124, + 0,95,11,116,7,106,8,160,9,116,16,161,1,114,94,100, + 4,132,0,124,2,68,0,131,1,124,0,95,17,100,5,83, + 0,100,5,83,0,41,6,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,17,0, + 0,0,114,101,0,0,0,114,92,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,4,0,0,0,19,0,0, + 0,115,20,0,0,0,104,0,124,0,93,6,125,1,124,1, + 160,0,161,0,146,2,113,2,83,0,114,13,0,0,0,41, + 1,114,135,0,0,0,41,2,114,5,0,0,0,90,2,102, + 110,115,2,0,0,0,32,32,114,7,0,0,0,114,15,0, + 0,0,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,82,6,0, + 0,243,2,0,0,0,20,0,114,126,1,0,0,115,20,0, + 0,0,40,71,40,71,40,71,56,58,41,43,41,51,41,51, + 40,71,40,71,40,71,114,10,0,0,0,78,41,18,114,67, + 0,0,0,114,21,0,0,0,90,7,108,105,115,116,100,105, + 114,114,86,0,0,0,114,107,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,18,0,0,0,114,28,0,0,0,114,29,0,0,0,114, + 121,1,0,0,114,122,1,0,0,114,130,0,0,0,114,93, + 0,0,0,114,135,0,0,0,218,3,97,100,100,114,30,0, + 0,0,114,123,1,0,0,41,9,114,147,0,0,0,114,67, + 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,90,1,0,0,114,145,0,0,0,114,72, + 1,0,0,114,61,1,0,0,90,8,110,101,119,95,110,97, + 109,101,115,9,0,0,0,32,32,32,32,32,32,32,32,32, + 114,7,0,0,0,114,125,1,0,0,122,22,70,105,108,101, + 70,105,110,100,101,114,46,95,102,105,108,108,95,99,97,99, + 104,101,53,6,0,0,115,42,0,0,0,6,2,2,1,20, + 1,2,128,18,1,8,3,2,253,2,128,12,6,12,1,6, + 7,8,1,16,1,4,1,18,1,4,2,12,1,6,1,12, + 1,18,1,4,255,115,48,0,0,0,6,2,2,6,20,252, + 2,128,2,4,8,253,18,3,2,128,10,3,2,16,12,241, + 6,7,2,1,4,6,2,250,16,1,2,1,2,3,18,254, + 4,2,12,1,6,1,10,1,24,1,115,192,0,0,0,16, + 20,16,25,9,13,9,26,24,27,24,35,36,40,36,56,44, + 47,44,54,44,56,24,57,13,21,13,21,0,0,9,26,17, + 34,36,51,53,71,16,72,9,26,9,26,9,26,9,26,24, + 26,13,21,13,21,13,21,9,26,0,0,16,19,16,28,16, + 46,40,45,16,46,9,53,32,35,36,44,32,45,13,17,13, + 29,13,29,37,40,37,42,13,34,25,33,13,52,13,52,17, + 21,37,41,37,56,52,55,37,56,17,34,17,21,23,26,28, + 34,20,23,17,36,32,39,32,68,47,51,53,59,53,67,53, + 67,32,68,21,29,21,29,32,36,21,29,17,38,17,52,43, + 51,17,52,17,52,17,52,32,53,13,17,13,29,12,15,12, + 24,12,64,36,63,12,64,9,71,40,71,40,71,62,70,40, + 71,40,71,13,17,13,37,13,37,13,37,9,71,9,71,115, + 12,0,0,0,132,9,14,0,142,12,29,7,156,1,29,7, + 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, + 0,7,0,0,0,115,20,0,0,0,135,0,135,1,136,0, + 136,1,102,2,100,1,132,8,125,2,124,2,83,0,41,3, + 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,4,0,0,0,19,0,0,0,115,36, + 0,0,0,116,0,124,0,131,1,115,10,116,1,100,1,124, + 0,100,2,141,2,130,1,137,1,124,0,103,1,137,2,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,77,0,0,0,78,41,2, + 114,87,0,0,0,114,146,0,0,0,41,3,114,67,0,0, + 0,114,227,0,0,0,114,124,1,0,0,115,3,0,0,0, + 32,128,128,114,7,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,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,94,6,0,0,115,6, + 0,0,0,8,2,12,1,16,1,115,6,0,0,0,6,2, + 14,1,16,1,115,36,0,0,0,20,31,32,36,20,37,13, + 79,23,34,35,67,74,78,23,79,23,79,17,79,20,23,24, + 28,20,46,31,45,20,46,20,46,20,46,13,46,114,10,0, + 0,0,78,114,13,0,0,0,41,3,114,227,0,0,0,114, + 124,1,0,0,114,130,1,0,0,115,3,0,0,0,96,96, + 32,114,7,0,0,0,218,9,112,97,116,104,95,104,111,111, + 107,122,20,70,105,108,101,70,105,110,100,101,114,46,112,97, + 116,104,95,104,111,111,107,84,6,0,0,115,6,0,0,0, + 4,128,12,10,4,6,115,6,0,0,0,4,128,12,14,4, + 2,115,20,0,0,0,0,0,0,0,9,46,9,46,9,46, + 9,46,9,46,9,46,16,40,9,40,114,10,0,0,0,99, + 1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, + 3,0,0,0,114,87,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,93,0,0,0,114,67,0,0,0,114,35,1,0,0,115, + 1,0,0,0,32,114,7,0,0,0,114,88,1,0,0,122, + 19,70,105,108,101,70,105,110,100,101,114,46,95,95,114,101, + 112,114,95,95,102,6,0,0,114,80,1,0,0,114,80,1, + 0,0,115,12,0,0,0,16,34,16,52,42,46,42,51,16, + 52,9,52,114,10,0,0,0,114,71,0,0,0,41,15,114, 153,0,0,0,114,152,0,0,0,114,154,0,0,0,114,155, - 0,0,0,114,239,0,0,0,114,100,1,0,0,114,106,1, - 0,0,114,240,0,0,0,114,109,1,0,0,114,110,1,0, - 0,114,113,1,0,0,114,232,0,0,0,114,235,0,0,0, - 114,115,1,0,0,114,13,0,0,0,114,10,0,0,0,114, - 7,0,0,0,114,99,1,0,0,114,99,1,0,0,51,5, - 0,0,115,36,0,0,0,8,0,4,2,2,2,8,1,2, - 9,8,1,2,12,8,1,2,21,8,1,2,20,10,1,2, - 31,10,1,2,23,10,1,2,15,12,1,115,124,0,0,0, - 0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 0,129,0,129,8,195,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,127,0,127,0,127,2,63,0,129,0,129, - 0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129, - 2,193,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,127,2,65,8,8,2,2,8,11,2,2, - 8,20,2,2,8,19,2,2,2,1,8,29,2,2,2,1, - 8,21,2,2,2,1,8,13,2,2,12,11,115,102,0,0, - 0,1,1,1,1,1,1,1,1,5,73,1,1,6,18,5, - 43,5,43,5,43,5,43,6,18,5,24,5,24,5,24,5, - 24,6,17,5,22,5,22,5,22,5,22,6,17,5,20,5, - 20,5,20,5,20,6,17,47,51,5,24,5,24,5,24,5, - 24,6,17,39,43,5,24,5,24,5,24,5,24,6,17,41, - 45,5,27,5,27,5,27,5,27,6,18,5,70,5,70,5, - 70,5,70,5,70,5,70,114,10,0,0,0,114,99,1,0, - 0,99,0,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,0,0,0,0,115,74,0,0,0,101,0,90,1,100, - 0,90,2,100,1,90,3,100,2,132,0,90,4,100,3,132, - 0,90,5,101,6,90,7,100,4,132,0,90,8,100,5,132, - 0,90,9,100,11,100,7,132,1,90,10,100,8,132,0,90, - 11,101,12,100,9,132,0,131,1,90,13,100,10,132,0,90, - 14,100,6,83,0,41,12,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,7,0,0,0,115,112,0,0,0,135,5,103,0,125, - 3,124,2,68,0,93,15,92,2,138,5,125,4,124,3,160, - 0,136,5,102,1,100,1,132,8,124,4,68,0,131,1,161, - 1,1,0,113,5,124,3,124,0,95,1,124,1,112,27,100, - 2,124,0,95,2,116,3,124,0,106,2,131,1,115,43,116, - 4,116,5,106,6,131,0,124,0,106,2,131,2,124,0,95, - 2,100,3,124,0,95,7,116,8,131,0,124,0,95,9,116, - 8,131,0,124,0,95,10,100,4,83,0,41,5,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,3,0,0,0,51,0,0,0,115,24, - 0,0,0,129,0,124,0,93,7,125,1,124,1,137,2,102, - 2,86,0,1,0,113,2,100,0,83,0,114,71,0,0,0, - 114,13,0,0,0,41,3,114,5,0,0,0,114,61,1,0, - 0,114,167,0,0,0,115,3,0,0,0,32,32,128,114,7, - 0,0,0,114,8,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, - 222,5,0,0,243,4,0,0,0,2,128,22,0,114,118,1, - 0,0,115,24,0,0,0,0,0,27,68,27,68,49,55,29, - 35,37,43,28,44,27,68,27,68,27,68,27,68,27,68,114, - 10,0,0,0,114,101,0,0,0,114,134,0,0,0,78,41, - 11,114,194,0,0,0,218,8,95,108,111,97,100,101,114,115, - 114,67,0,0,0,114,90,0,0,0,114,69,0,0,0,114, - 21,0,0,0,114,86,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,6,114, - 147,0,0,0,114,67,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,218,0,0,0,114,167,0,0,0,115,6,0,0, - 0,32,32,32,32,32,64,114,7,0,0,0,114,242,0,0, - 0,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, - 105,110,105,116,95,95,216,5,0,0,115,22,0,0,0,2, - 128,4,4,12,1,24,1,6,1,10,2,10,1,18,1,6, - 1,8,1,12,1,115,26,0,0,0,2,128,4,4,2,1, - 4,1,6,255,24,1,6,1,10,2,8,1,20,1,6,1, - 8,1,12,1,115,112,0,0,0,0,0,19,21,9,16,33, - 47,9,68,9,68,13,29,13,19,21,29,13,20,13,68,27, - 68,27,68,27,68,27,68,59,67,27,68,27,68,13,68,13, - 68,13,68,25,32,9,13,9,22,21,25,21,32,29,32,9, - 13,9,18,16,27,28,32,28,37,16,38,9,60,25,35,36, - 39,36,46,36,48,50,54,50,59,25,60,13,17,13,22,28, - 30,9,13,9,25,28,31,28,33,9,13,9,25,36,39,36, - 41,9,13,9,33,9,33,9,33,114,10,0,0,0,99,1, - 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3, - 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,134,0,0,0,78,41,1,114,120,1, - 0,0,114,35,1,0,0,115,1,0,0,0,32,114,7,0, - 0,0,114,100,1,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,232,5,0,0,114,85,0,0,0,114,85, - 0,0,0,115,10,0,0,0,28,30,9,13,9,25,9,25, - 9,25,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,3,0,0,0,115,54,0,0, - 0,116,0,106,1,100,1,116,2,131,2,1,0,124,0,160, - 3,124,1,161,1,125,2,124,2,100,2,117,0,114,19,100, - 2,103,0,102,2,83,0,124,2,106,4,124,2,106,5,112, - 25,103,0,102,2,83,0,41,3,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, - 122,101,70,105,108,101,70,105,110,100,101,114,46,102,105,110, - 100,95,108,111,97,100,101,114,40,41,32,105,115,32,100,101, - 112,114,101,99,97,116,101,100,32,97,110,100,32,115,108,97, - 116,101,100,32,102,111,114,32,114,101,109,111,118,97,108,32, - 105,110,32,80,121,116,104,111,110,32,51,46,49,50,59,32, - 117,115,101,32,102,105,110,100,95,115,112,101,99,40,41,32, - 105,110,115,116,101,97,100,78,41,6,114,103,0,0,0,114, - 104,0,0,0,114,105,0,0,0,114,232,0,0,0,114,167, - 0,0,0,114,208,0,0,0,41,3,114,147,0,0,0,114, - 166,0,0,0,114,216,0,0,0,115,3,0,0,0,32,32, - 32,114,7,0,0,0,114,164,0,0,0,122,22,70,105,108, - 101,70,105,110,100,101,114,46,102,105,110,100,95,108,111,97, - 100,101,114,238,5,0,0,115,14,0,0,0,6,7,2,2, - 4,254,10,3,8,1,8,1,16,1,115,14,0,0,0,4, - 7,2,1,6,1,10,1,6,1,10,1,16,1,115,54,0, - 0,0,9,18,9,23,24,84,24,42,9,43,9,43,16,20, - 16,40,31,39,16,40,9,13,12,16,20,24,12,24,9,28, - 20,24,26,28,20,28,13,28,16,20,16,27,29,33,29,60, - 29,66,64,66,16,66,9,66,114,10,0,0,0,99,6,0, - 0,0,0,0,0,0,0,0,0,0,6,0,0,0,3,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,207,0,0,0,41,1,114,219,0,0,0, - 41,7,114,147,0,0,0,114,217,0,0,0,114,166,0,0, - 0,114,67,0,0,0,90,4,115,109,115,108,114,231,0,0, - 0,114,167,0,0,0,115,7,0,0,0,32,32,32,32,32, - 32,32,114,7,0,0,0,114,113,1,0,0,122,20,70,105, - 108,101,70,105,110,100,101,114,46,95,103,101,116,95,115,112, - 101,99,253,5,0,0,115,8,0,0,0,10,1,8,1,2, - 1,6,255,115,6,0,0,0,10,1,8,1,8,1,115,26, - 0,0,0,18,30,31,39,41,45,18,46,9,15,16,39,40, - 48,50,54,63,69,67,71,16,72,16,72,9,72,114,10,0, - 0,0,78,99,3,0,0,0,0,0,0,0,0,0,0,0, - 9,0,0,0,3,0,0,0,115,126,1,0,0,100,1,125, - 3,124,1,160,0,100,2,161,1,100,3,25,0,125,4,9, - 0,116,1,124,0,106,2,112,17,116,3,106,4,131,0,131, - 1,106,5,125,5,110,12,35,0,4,0,116,6,121,190,1, - 0,1,0,1,0,100,4,125,5,89,0,110,1,37,0,124, - 5,124,0,106,7,107,3,114,45,124,0,160,8,161,0,1, - 0,124,5,124,0,95,7,116,9,131,0,114,56,124,0,106, - 10,125,6,124,4,160,11,161,0,125,7,110,5,124,0,106, - 12,125,6,124,4,125,7,124,7,124,6,118,0,114,108,116, - 13,124,0,106,2,124,4,131,2,125,8,124,0,106,14,68, - 0,93,29,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,103,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,74,116,17,124, - 8,131,1,125,3,124,0,106,14,68,0,93,55,92,2,125, - 9,125,10,9,0,116,13,124,0,106,2,124,4,124,9,23, - 0,131,2,125,12,110,12,35,0,4,0,116,18,121,189,1, - 0,1,0,1,0,89,0,1,0,100,6,83,0,37,0,116, - 19,160,20,100,7,124,12,100,3,100,8,166,3,1,0,124, - 7,124,9,23,0,124,6,118,0,114,166,116,15,124,12,131, - 1,114,166,124,0,160,16,124,10,124,1,124,12,100,6,124, - 2,161,5,2,0,1,0,83,0,113,111,124,3,114,187,116, - 19,160,20,100,9,124,8,161,2,1,0,116,19,160,21,124, - 1,100,6,161,2,125,13,124,8,103,1,124,13,95,22,124, - 13,83,0,100,6,83,0,119,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, - 101,0,0,0,114,47,0,0,0,114,134,0,0,0,114,242, - 0,0,0,78,122,9,116,114,121,105,110,103,32,123,125,41, - 1,90,9,118,101,114,98,111,115,105,116,121,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,23,114,108,0,0,0,114,78, - 0,0,0,114,67,0,0,0,114,21,0,0,0,114,86,0, - 0,0,114,50,1,0,0,114,80,0,0,0,114,120,1,0, - 0,218,11,95,102,105,108,108,95,99,97,99,104,101,114,24, - 0,0,0,114,123,1,0,0,114,135,0,0,0,114,122,1, - 0,0,114,69,0,0,0,114,119,1,0,0,114,84,0,0, - 0,114,113,1,0,0,114,87,0,0,0,114,115,0,0,0, - 114,162,0,0,0,114,176,0,0,0,114,213,0,0,0,114, - 208,0,0,0,41,14,114,147,0,0,0,114,166,0,0,0, - 114,231,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,196,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,61,1,0,0,114,217,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,216,0,0,0,115,14, - 0,0,0,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,114,7,0,0,0,114,232,0,0,0,122,20,70,105,108, - 101,70,105,110,100,101,114,46,102,105,110,100,95,115,112,101, - 99,2,6,0,0,115,94,0,0,0,4,5,14,1,2,1, - 22,1,2,128,12,1,8,1,2,128,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,2,1, - 18,1,2,128,12,1,8,1,2,128,16,1,12,1,8,1, - 10,1,4,1,8,255,2,128,4,2,12,1,12,1,8,1, - 4,1,4,1,2,244,2,228,115,118,0,0,0,4,5,14, - 1,2,4,22,254,2,128,2,2,2,255,16,1,2,128,8, - 1,2,2,8,255,6,1,4,2,2,5,6,252,10,1,6, - 2,4,1,6,2,2,10,12,247,4,1,4,8,6,248,8, - 1,10,1,6,1,28,1,8,4,4,2,4,9,6,247,2, - 4,18,254,2,128,2,2,2,255,16,1,2,128,16,1,10, - 1,2,3,6,254,2,2,2,255,2,1,6,255,12,1,2, - 128,2,1,2,4,12,253,12,1,8,1,4,1,4,1,2, - 245,2,228,115,126,1,0,0,24,29,9,21,23,31,23,47, - 43,46,23,47,48,49,23,50,9,20,9,23,21,31,32,36, - 32,41,32,57,45,48,45,55,45,57,21,58,21,67,13,18, - 13,18,0,0,9,23,16,23,9,23,9,23,9,23,9,23, - 21,23,13,18,13,18,13,18,0,0,12,17,21,25,21,37, - 12,37,9,37,13,17,13,31,13,31,13,31,32,37,13,17, - 13,29,12,23,12,25,9,39,21,25,21,45,13,18,28,39, - 28,47,28,47,13,25,13,25,21,25,21,37,13,18,28,39, - 13,25,12,24,28,33,12,33,9,54,25,35,36,40,36,45, - 47,58,25,59,13,22,41,45,41,54,13,54,13,54,17,37, - 17,23,25,37,33,43,46,52,33,52,17,30,29,39,40,49, - 51,64,29,65,17,26,20,32,33,42,20,43,17,98,28,32, - 28,98,43,55,57,65,67,76,79,88,78,89,91,97,28,98, - 21,98,21,98,21,98,17,98,32,43,44,53,32,54,17,29, - 37,41,37,50,9,56,9,56,13,33,13,19,21,33,13,28, - 29,39,40,44,40,49,51,62,65,71,51,71,29,72,17,26, - 17,26,0,0,13,28,20,30,13,28,13,28,13,28,13,28, - 24,28,24,28,24,28,24,28,0,0,13,23,13,77,41,52, - 54,63,75,76,13,77,13,77,13,77,16,28,31,37,16,37, - 41,46,16,46,13,56,20,32,33,42,20,43,17,56,28,32, - 28,56,43,55,57,65,67,76,43,47,49,55,28,56,21,56, - 21,56,21,56,0,0,12,24,9,24,13,23,13,80,41,68, - 70,79,13,80,13,80,20,30,20,57,42,50,52,56,20,57, - 13,17,48,57,47,58,13,17,13,44,20,24,13,24,16,20, - 16,20,13,28,9,23,115,31,0,0,0,138,10,21,0,149, - 9,32,7,193,52,8,65,61,2,193,61,7,66,8,9,194, - 61,1,66,8,9,194,62,1,32,7,99,1,0,0,0,0, - 0,0,0,0,0,0,0,10,0,0,0,3,0,0,0,115, - 192,0,0,0,124,0,106,0,125,1,9,0,116,1,106,2, - 124,1,112,11,116,1,106,3,131,0,131,1,125,2,110,15, - 35,0,4,0,116,4,116,5,116,6,102,3,121,95,1,0, - 1,0,1,0,103,0,125,2,89,0,110,1,37,0,116,7, - 106,8,160,9,100,1,161,1,115,41,116,10,124,2,131,1, - 124,0,95,11,110,37,116,10,131,0,125,3,124,2,68,0, - 93,28,125,4,124,4,160,12,100,2,161,1,92,3,125,5, - 125,6,125,7,124,6,114,67,100,3,160,13,124,5,124,7, - 160,14,161,0,161,2,125,8,110,2,124,5,125,8,124,3, - 160,15,124,8,161,1,1,0,113,46,124,3,124,0,95,11, - 116,7,106,8,160,9,116,16,161,1,114,93,100,4,132,0, - 124,2,68,0,131,1,124,0,95,17,100,5,83,0,100,5, - 83,0,119,0,41,6,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,17,0,0, - 0,114,101,0,0,0,114,92,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,19,0,0,0, - 115,20,0,0,0,104,0,124,0,93,6,125,1,124,1,160, - 0,161,0,146,2,113,2,83,0,114,13,0,0,0,41,1, - 114,135,0,0,0,41,2,114,5,0,0,0,90,2,102,110, - 115,2,0,0,0,32,32,114,7,0,0,0,114,15,0,0, - 0,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,82,6,0,0, - 243,2,0,0,0,20,0,114,126,1,0,0,115,20,0,0, - 0,40,71,40,71,40,71,56,58,41,43,41,51,41,51,40, - 71,40,71,40,71,114,10,0,0,0,78,41,18,114,67,0, - 0,0,114,21,0,0,0,90,7,108,105,115,116,100,105,114, - 114,86,0,0,0,114,107,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, - 18,0,0,0,114,28,0,0,0,114,29,0,0,0,114,121, - 1,0,0,114,122,1,0,0,114,130,0,0,0,114,93,0, - 0,0,114,135,0,0,0,218,3,97,100,100,114,30,0,0, - 0,114,123,1,0,0,41,9,114,147,0,0,0,114,67,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,90,1,0,0,114,145,0,0,0,114,72,1, - 0,0,114,61,1,0,0,90,8,110,101,119,95,110,97,109, - 101,115,9,0,0,0,32,32,32,32,32,32,32,32,32,114, - 7,0,0,0,114,125,1,0,0,122,22,70,105,108,101,70, - 105,110,100,101,114,46,95,102,105,108,108,95,99,97,99,104, - 101,53,6,0,0,115,42,0,0,0,6,2,2,1,20,1, - 2,128,18,1,8,3,2,128,12,3,12,1,6,7,8,1, - 16,1,4,1,18,1,4,2,12,1,6,1,12,1,18,1, - 4,255,2,233,115,50,0,0,0,6,2,2,6,20,252,2, - 128,2,4,8,253,16,3,2,128,10,3,2,16,12,241,6, - 7,2,1,4,6,2,250,16,1,2,1,2,3,18,254,4, - 2,12,1,6,1,10,1,24,1,2,235,115,192,0,0,0, - 16,20,16,25,9,13,9,26,24,27,24,35,36,40,36,56, - 44,47,44,54,44,56,24,57,13,21,13,21,0,0,9,26, - 17,34,36,51,53,71,16,72,9,26,9,26,9,26,9,26, - 24,26,13,21,13,21,13,21,0,0,16,19,16,28,16,46, - 40,45,16,46,9,53,32,35,36,44,32,45,13,17,13,29, - 13,29,37,40,37,42,13,34,25,33,13,52,13,52,17,21, - 37,41,37,56,52,55,37,56,17,34,17,21,23,26,28,34, - 20,23,17,36,32,39,32,68,47,51,53,59,53,67,53,67, - 32,68,21,29,21,29,32,36,21,29,17,38,17,52,43,51, - 17,52,17,52,17,52,32,53,13,17,13,29,12,15,12,24, - 12,64,36,63,12,64,9,71,40,71,40,71,62,70,40,71, - 40,71,13,17,13,37,13,37,13,37,9,71,9,71,9,26, - 115,13,0,0,0,132,9,14,0,142,12,28,7,193,31,1, - 28,7,99,1,0,0,0,0,0,0,0,0,0,0,0,2, - 0,0,0,7,0,0,0,115,20,0,0,0,135,0,135,1, - 136,0,136,1,102,2,100,1,132,8,125,2,124,2,83,0, - 41,3,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,4,0,0,0,19,0,0,0, - 115,36,0,0,0,116,0,124,0,131,1,115,10,116,1,100, - 1,124,0,100,2,141,2,130,1,137,1,124,0,103,1,137, - 2,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,77,0,0,0,78, - 41,2,114,87,0,0,0,114,146,0,0,0,41,3,114,67, - 0,0,0,114,227,0,0,0,114,124,1,0,0,115,3,0, - 0,0,32,128,128,114,7,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,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,94,6,0,0, - 115,6,0,0,0,8,2,12,1,16,1,115,6,0,0,0, - 6,2,14,1,16,1,115,36,0,0,0,20,31,32,36,20, - 37,13,79,23,34,35,67,74,78,23,79,23,79,17,79,20, - 23,24,28,20,46,31,45,20,46,20,46,20,46,13,46,114, - 10,0,0,0,78,114,13,0,0,0,41,3,114,227,0,0, - 0,114,124,1,0,0,114,130,1,0,0,115,3,0,0,0, - 96,96,32,114,7,0,0,0,218,9,112,97,116,104,95,104, - 111,111,107,122,20,70,105,108,101,70,105,110,100,101,114,46, - 112,97,116,104,95,104,111,111,107,84,6,0,0,115,6,0, - 0,0,4,128,12,10,4,6,115,6,0,0,0,4,128,12, - 14,4,2,115,20,0,0,0,0,0,0,0,9,46,9,46, - 9,46,9,46,9,46,9,46,16,40,9,40,114,10,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,3,0,0,0,114,87,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,93,0,0,0,114,67,0,0,0,114,35,1,0, - 0,115,1,0,0,0,32,114,7,0,0,0,114,88,1,0, - 0,122,19,70,105,108,101,70,105,110,100,101,114,46,95,95, - 114,101,112,114,95,95,102,6,0,0,114,80,1,0,0,114, - 80,1,0,0,115,12,0,0,0,16,34,16,52,42,46,42, - 51,16,52,9,52,114,10,0,0,0,114,71,0,0,0,41, - 15,114,153,0,0,0,114,152,0,0,0,114,154,0,0,0, - 114,155,0,0,0,114,242,0,0,0,114,100,1,0,0,114, - 170,0,0,0,114,235,0,0,0,114,164,0,0,0,114,113, - 1,0,0,114,232,0,0,0,114,125,1,0,0,114,240,0, - 0,0,114,131,1,0,0,114,88,1,0,0,114,13,0,0, - 0,114,10,0,0,0,114,7,0,0,0,114,117,1,0,0, - 114,117,1,0,0,207,5,0,0,115,24,0,0,0,8,0, - 4,2,6,7,6,16,4,4,6,2,6,15,8,5,6,51, - 2,31,8,1,10,17,115,116,0,0,0,0,129,0,129,0, - 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0, - 129,8,166,0,127,0,127,0,127,0,127,0,127,0,127,0, - 127,0,127,0,127,0,127,0,127,2,97,0,129,0,129,0, - 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0, - 129,2,159,0,127,0,127,0,127,0,127,0,127,0,127,0, - 127,0,127,0,127,0,127,0,127,6,113,6,4,4,2,6, - 15,6,5,2,2,6,49,6,31,2,2,8,16,10,3,115, - 74,0,0,0,1,1,1,1,1,1,1,1,5,8,1,1, - 5,41,5,41,5,41,5,30,5,30,5,30,19,36,5,16, - 5,66,5,66,5,66,5,72,5,72,5,72,42,46,5,20, - 5,20,5,20,5,71,5,71,5,71,6,17,5,40,5,40, - 5,40,5,40,5,52,5,52,5,52,5,52,5,52,114,10, - 0,0,0,114,117,1,0,0,99,4,0,0,0,0,0,0, - 0,0,0,0,0,8,0,0,0,3,0,0,0,115,146,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,33,124,5,114,18,124,5, - 106,1,125,4,110,15,124,2,124,3,107,2,114,28,116,2, - 124,1,124,2,131,2,125,4,110,5,116,3,124,1,124,2, - 131,2,125,4,124,5,115,42,116,4,124,1,124,2,124,4, - 100,3,141,3,125,5,9,0,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,100,0,83,0,35,0,4,0, - 116,5,121,72,1,0,1,0,1,0,89,0,100,0,83,0, - 37,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,41,1,114, - 167,0,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,167,0,0,0,114,58,1,0,0,114,49,1,0,0, - 114,219,0,0,0,218,9,69,120,99,101,112,116,105,111,110, - 41,6,90,2,110,115,114,145,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,167,0,0,0,114,216,0,0,0,115,6,0,0,0,32, - 32,32,32,32,32,114,7,0,0,0,218,14,95,102,105,120, - 95,117,112,95,109,111,100,117,108,101,114,136,1,0,0,108, - 6,0,0,115,40,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,12,1,2,128,12,1,6,2,2,128,2,254, - 115,48,0,0,0,10,2,10,1,2,1,2,6,2,251,2, - 5,8,252,6,1,2,3,12,254,10,2,2,1,16,1,2, - 8,8,250,8,1,8,1,12,1,2,128,2,3,2,254,14, - 2,2,128,2,0,115,146,0,0,0,14,16,14,34,21,33, - 14,34,5,11,12,14,12,30,19,29,12,30,5,9,12,18, - 5,54,12,16,9,54,22,26,22,33,13,19,13,19,14,22, - 26,35,14,35,9,54,22,42,43,47,49,57,22,58,13,19, - 13,19,22,38,39,43,45,53,22,54,13,19,12,16,5,70, - 16,39,40,44,46,54,63,69,16,70,16,70,9,13,5,13, - 26,30,9,11,12,22,9,23,28,34,9,11,12,24,9,25, - 26,34,9,11,12,22,9,23,28,37,9,11,12,24,9,25, - 9,25,9,25,0,0,5,13,12,21,5,13,5,13,5,13, - 5,13,9,13,9,13,9,13,0,0,5,13,115,15,0,0, - 0,171,16,61,0,189,7,65,7,7,193,8,1,65,7,7, - 99,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,3,0,0,0,115,38,0,0,0,116,0,116,1,106,2, - 131,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,44,1,0,0,114,190,0,0,0, - 218,18,101,120,116,101,110,115,105,111,110,95,115,117,102,102, - 105,120,101,115,114,49,1,0,0,114,131,0,0,0,114,58, - 1,0,0,114,117,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,115,3,0,0,0,32,32,32, - 114,7,0,0,0,114,214,0,0,0,114,214,0,0,0,131, - 6,0,0,243,8,0,0,0,12,5,8,1,8,1,10,1, - 114,138,1,0,0,115,38,0,0,0,18,37,39,43,39,62, - 39,64,18,64,5,15,14,30,32,47,14,47,5,11,16,36, - 38,55,16,55,5,13,13,23,25,31,33,41,12,42,5,42, - 114,10,0,0,0,99,1,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,3,0,0,0,115,8,0,0,0,124, - 0,97,0,100,0,83,0,114,71,0,0,0,41,1,114,162, - 0,0,0,41,1,218,17,95,98,111,111,116,115,116,114,97, - 112,95,109,111,100,117,108,101,115,1,0,0,0,32,114,7, - 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,114,140,1,0,0,142, - 6,0,0,243,2,0,0,0,8,2,114,141,1,0,0,115, - 8,0,0,0,18,35,5,15,5,15,5,15,114,10,0,0, - 0,99,1,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,3,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,140,1, - 0,0,114,214,0,0,0,114,18,0,0,0,114,105,1,0, - 0,114,194,0,0,0,114,117,1,0,0,114,131,1,0,0, - 218,9,109,101,116,97,95,112,97,116,104,114,63,0,0,0, - 114,99,1,0,0,41,2,114,139,1,0,0,90,17,115,117, - 112,112,111,114,116,101,100,95,108,111,97,100,101,114,115,115, - 2,0,0,0,32,32,114,7,0,0,0,218,8,95,105,110, - 115,116,97,108,108,114,143,1,0,0,147,6,0,0,243,8, - 0,0,0,8,2,6,1,20,1,16,1,114,144,1,0,0, - 115,50,0,0,0,5,26,27,44,5,45,5,45,25,52,25, - 54,5,22,5,8,5,19,5,70,28,38,28,48,50,67,28, - 68,27,69,5,70,5,70,5,8,5,18,5,37,26,36,5, - 37,5,37,5,37,5,37,114,10,0,0,0,41,1,114,91, - 0,0,0,114,71,0,0,0,41,3,78,78,78,41,2,114, - 0,0,0,0,114,0,0,0,0,41,1,84,41,85,114,155, - 0,0,0,114,162,0,0,0,114,190,0,0,0,114,95,0, - 0,0,114,18,0,0,0,114,103,0,0,0,114,187,0,0, - 0,114,28,0,0,0,114,237,0,0,0,90,2,110,116,114, - 21,0,0,0,114,221,0,0,0,90,5,112,111,115,105,120, - 114,53,0,0,0,218,3,97,108,108,114,61,0,0,0,114, - 140,0,0,0,114,59,0,0,0,114,64,0,0,0,90,20, - 95,112,97,116,104,115,101,112,115,95,119,105,116,104,95,99, - 111,108,111,110,114,31,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,30,0,0,0,114,32,0,0,0,114,24,0,0,0,114, - 39,0,0,0,114,45,0,0,0,114,48,0,0,0,114,69, - 0,0,0,114,76,0,0,0,114,78,0,0,0,114,83,0, - 0,0,114,84,0,0,0,114,87,0,0,0,114,90,0,0, - 0,114,99,0,0,0,218,4,116,121,112,101,218,8,95,95, - 99,111,100,101,95,95,114,189,0,0,0,114,37,0,0,0, - 114,175,0,0,0,114,36,0,0,0,114,42,0,0,0,114, - 20,1,0,0,114,120,0,0,0,114,116,0,0,0,114,131, - 0,0,0,114,63,0,0,0,114,137,1,0,0,114,238,0, - 0,0,114,117,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,125,0, - 0,0,114,132,0,0,0,114,139,0,0,0,114,141,0,0, - 0,114,143,0,0,0,114,163,0,0,0,114,170,0,0,0, - 114,179,0,0,0,114,183,0,0,0,114,185,0,0,0,114, - 192,0,0,0,114,197,0,0,0,114,199,0,0,0,114,205, - 0,0,0,218,6,111,98,106,101,99,116,114,215,0,0,0, - 114,219,0,0,0,114,220,0,0,0,114,241,0,0,0,114, - 2,1,0,0,114,23,1,0,0,114,49,1,0,0,114,58, - 1,0,0,114,44,1,0,0,114,64,1,0,0,114,93,1, - 0,0,114,99,1,0,0,114,117,1,0,0,114,136,1,0, - 0,114,214,0,0,0,114,140,1,0,0,114,143,1,0,0, - 114,13,0,0,0,114,10,0,0,0,114,7,0,0,0,218, - 8,60,109,111,100,117,108,101,62,114,149,1,0,0,1,0, - 0,0,115,180,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,20,2,8,1,8,1,10,1,12,1,4, - 4,4,1,2,1,2,1,4,255,6,4,6,16,6,3,6, - 5,6,5,4,6,8,1,6,30,6,6,6,8,6,10,6, - 9,6,5,4,7,8,1,6,8,8,5,10,22,0,127,16, - 41,12,1,4,2,4,1,6,2,4,1,10,1,8,2,6, - 2,8,2,14,2,6,71,6,40,6,19,6,12,6,12,6, - 31,6,20,6,33,6,28,8,24,8,13,8,10,6,11,6, - 14,4,3,2,1,10,255,12,73,12,67,14,30,0,127,12, - 17,16,50,16,45,16,25,12,53,12,63,12,49,0,127,12, - 29,0,127,8,30,6,23,6,11,10,5,115,220,0,0,0, - 4,7,4,15,8,3,8,1,8,1,8,1,8,1,10,3, - 2,1,2,4,8,253,10,1,8,2,2,3,2,3,10,254, - 6,2,20,2,8,1,8,1,10,1,12,1,4,4,4,1, - 2,1,4,1,2,255,6,18,6,2,6,5,6,6,6,5, - 2,3,2,34,8,250,6,6,6,8,6,10,6,9,6,5, - 6,7,2,3,2,11,8,251,6,5,2,3,6,19,10,3, - 0,127,16,41,12,1,4,2,4,1,6,2,2,1,12,1, - 8,2,6,2,8,2,4,2,10,68,6,40,6,19,6,12, - 6,12,6,31,6,20,6,33,6,28,6,24,2,3,6,10, - 2,3,6,7,2,3,6,8,6,12,6,5,4,3,2,1, - 10,67,12,69,12,30,0,127,8,17,0,129,2,242,0,127, - 4,14,12,50,8,45,4,214,4,42,8,25,4,234,4,22, - 8,53,4,206,4,50,12,62,12,48,0,127,12,31,0,127, - 12,28,2,5,6,20,6,11,6,5,10,8,115,158,2,0, - 0,1,4,1,4,14,18,1,11,1,12,1,12,1,12,1, - 12,1,11,1,11,1,11,1,11,1,11,1,11,1,11,1, - 11,1,17,1,17,1,17,1,17,1,15,1,15,1,15,1, - 15,16,19,16,28,32,39,16,39,1,12,4,15,1,24,5, - 21,5,21,5,21,5,21,5,18,5,18,5,18,5,18,5, - 18,5,24,5,24,5,24,5,24,4,15,1,28,24,28,30, - 33,23,34,5,20,5,20,24,27,23,28,5,20,8,11,11, - 53,11,53,37,52,11,53,11,53,8,53,1,53,1,53,1, - 53,12,27,28,29,12,30,1,9,18,23,24,39,18,40,1, - 15,19,21,19,43,27,42,19,43,1,16,24,58,24,58,42, - 57,24,58,24,58,1,21,39,45,1,36,41,59,1,38,33, - 70,35,70,33,70,1,28,1,23,1,23,1,23,15,31,15, - 33,1,12,1,55,1,55,1,55,1,42,1,42,1,42,1, - 42,1,42,1,42,4,15,1,63,5,42,5,42,5,42,5, - 42,5,63,5,63,5,63,1,34,1,34,1,34,1,26,1, - 26,1,26,1,50,1,50,1,50,1,46,1,46,1,46,1, - 46,1,46,1,46,4,15,1,48,5,82,5,82,5,82,5, - 82,5,48,5,48,5,48,36,41,1,14,1,14,1,14,14, - 18,19,32,19,41,14,42,1,11,17,21,16,44,32,33,35, - 43,16,44,47,54,16,54,1,13,21,24,21,59,36,48,50, - 58,21,59,1,18,12,25,1,9,8,14,1,5,20,25,19, - 26,1,16,4,15,1,35,5,20,5,35,28,34,5,35,5, - 35,22,26,22,45,22,47,1,19,22,28,21,29,1,18,57, - 74,1,74,1,24,27,54,44,48,66,70,1,48,1,48,1, - 48,1,48,1,48,1,64,1,64,1,64,1,71,1,71,1, - 71,1,20,1,20,1,20,1,16,1,16,1,16,1,31,1, - 31,1,31,1,18,1,18,1,18,1,17,1,17,1,17,1, - 76,1,76,1,76,1,10,1,10,1,10,34,38,1,57,1, - 57,1,57,40,41,1,16,1,16,1,16,50,54,1,16,1, - 16,1,16,1,68,1,68,1,68,13,19,13,21,1,10,44, - 48,60,64,56,65,1,16,1,16,1,16,1,16,1,16,1, - 24,1,24,1,24,1,24,1,24,1,24,1,60,1,60,1, - 60,1,60,1,60,1,60,1,27,1,27,1,27,1,27,20, - 33,1,27,1,27,1,32,1,32,1,32,1,32,1,32,1, - 32,1,45,1,45,1,45,1,45,24,34,36,48,1,45,1, - 45,1,20,1,20,1,20,1,20,28,38,40,53,1,20,1, - 20,1,25,1,25,1,25,1,25,27,37,39,52,1,25,1, - 25,1,32,1,32,1,32,1,32,1,32,1,32,1,43,1, - 43,1,43,1,43,1,43,1,43,1,70,1,70,1,70,1, - 70,1,70,1,70,1,52,1,52,1,52,1,52,1,52,1, - 52,50,54,1,13,1,13,1,13,1,42,1,42,1,42,1, - 35,1,35,1,35,1,37,1,37,1,37,1,37,1,37,114, - 10,0,0,0, + 0,0,0,114,242,0,0,0,114,100,1,0,0,114,170,0, + 0,0,114,235,0,0,0,114,164,0,0,0,114,113,1,0, + 0,114,232,0,0,0,114,125,1,0,0,114,240,0,0,0, + 114,131,1,0,0,114,88,1,0,0,114,13,0,0,0,114, + 10,0,0,0,114,7,0,0,0,114,117,1,0,0,114,117, + 1,0,0,207,5,0,0,115,24,0,0,0,8,0,4,2, + 6,7,6,16,4,4,6,2,6,15,8,5,6,51,2,31, + 8,1,10,17,115,116,0,0,0,0,129,0,129,0,129,0, + 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,8, + 166,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0, + 127,0,127,0,127,0,127,2,97,0,129,0,129,0,129,0, + 129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,2, + 159,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0, + 127,0,127,0,127,0,127,6,113,6,4,4,2,6,15,6, + 5,2,2,6,49,6,31,2,2,8,16,10,3,115,74,0, + 0,0,1,1,1,1,1,1,1,1,5,8,1,1,5,41, + 5,41,5,41,5,30,5,30,5,30,19,36,5,16,5,66, + 5,66,5,66,5,72,5,72,5,72,42,46,5,20,5,20, + 5,20,5,71,5,71,5,71,6,17,5,40,5,40,5,40, + 5,40,5,52,5,52,5,52,5,52,5,52,114,10,0,0, + 0,114,117,1,0,0,99,4,0,0,0,0,0,0,0,0, + 0,0,0,8,0,0,0,3,0,0,0,115,146,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,33,124,5,114,18,124,5,106,1, + 125,4,110,15,124,2,124,3,107,2,114,28,116,2,124,1, + 124,2,131,2,125,4,110,5,116,3,124,1,124,2,131,2, + 125,4,124,5,115,42,116,4,124,1,124,2,124,4,100,3, + 141,3,125,5,9,0,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,100,0,83,0,35,0,4,0,116,5, + 121,71,1,0,1,0,1,0,89,0,100,0,83,0,119,0, + 37,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,41,1,114,167,0, + 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, + 167,0,0,0,114,58,1,0,0,114,49,1,0,0,114,219, + 0,0,0,218,9,69,120,99,101,112,116,105,111,110,41,6, + 90,2,110,115,114,145,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,167, + 0,0,0,114,216,0,0,0,115,6,0,0,0,32,32,32, + 32,32,32,114,7,0,0,0,218,14,95,102,105,120,95,117, + 112,95,109,111,100,117,108,101,114,136,1,0,0,108,6,0, + 0,115,40,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,12,1,2,128,12,1,6,2,2,254,2,128,115,46, + 0,0,0,10,2,10,1,2,1,2,6,2,251,2,5,8, + 252,6,1,2,3,12,254,10,2,2,1,16,1,2,8,8, + 250,8,1,8,1,12,1,2,128,2,3,2,254,16,2,2, + 128,115,146,0,0,0,14,16,14,34,21,33,14,34,5,11, + 12,14,12,30,19,29,12,30,5,9,12,18,5,54,12,16, + 9,54,22,26,22,33,13,19,13,19,14,22,26,35,14,35, + 9,54,22,42,43,47,49,57,22,58,13,19,13,19,22,38, + 39,43,45,53,22,54,13,19,12,16,5,70,16,39,40,44, + 46,54,63,69,16,70,16,70,9,13,5,13,26,30,9,11, + 12,22,9,23,28,34,9,11,12,24,9,25,26,34,9,11, + 12,22,9,23,28,37,9,11,12,24,9,25,9,25,9,25, + 0,0,5,13,12,21,5,13,5,13,5,13,5,13,9,13, + 9,13,9,13,5,13,0,0,115,15,0,0,0,171,16,61, + 0,189,7,65,8,7,193,7,1,65,8,7,99,0,0,0, + 0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,0, + 0,115,38,0,0,0,116,0,116,1,106,2,131,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,44,1,0,0,114,190,0,0,0,218,18,101,120, + 116,101,110,115,105,111,110,95,115,117,102,102,105,120,101,115, + 114,49,1,0,0,114,131,0,0,0,114,58,1,0,0,114, + 117,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,115,3,0,0,0,32,32,32,114,7,0,0, + 0,114,214,0,0,0,114,214,0,0,0,131,6,0,0,243, + 8,0,0,0,12,5,8,1,8,1,10,1,114,138,1,0, + 0,115,38,0,0,0,18,37,39,43,39,62,39,64,18,64, + 5,15,14,30,32,47,14,47,5,11,16,36,38,55,16,55, + 5,13,13,23,25,31,33,41,12,42,5,42,114,10,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,3,0,0,0,115,8,0,0,0,124,0,97,0,100, + 0,83,0,114,71,0,0,0,41,1,114,162,0,0,0,41, + 1,218,17,95,98,111,111,116,115,116,114,97,112,95,109,111, + 100,117,108,101,115,1,0,0,0,32,114,7,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,114,140,1,0,0,142,6,0,0,243, + 2,0,0,0,8,2,114,141,1,0,0,115,8,0,0,0, + 18,35,5,15,5,15,5,15,114,10,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,4,0,0,0,3,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,140,1,0,0,114,214, + 0,0,0,114,18,0,0,0,114,105,1,0,0,114,194,0, + 0,0,114,117,1,0,0,114,131,1,0,0,218,9,109,101, + 116,97,95,112,97,116,104,114,63,0,0,0,114,99,1,0, + 0,41,2,114,139,1,0,0,90,17,115,117,112,112,111,114, + 116,101,100,95,108,111,97,100,101,114,115,115,2,0,0,0, + 32,32,114,7,0,0,0,218,8,95,105,110,115,116,97,108, + 108,114,143,1,0,0,147,6,0,0,243,8,0,0,0,8, + 2,6,1,20,1,16,1,114,144,1,0,0,115,50,0,0, + 0,5,26,27,44,5,45,5,45,25,52,25,54,5,22,5, + 8,5,19,5,70,28,38,28,48,50,67,28,68,27,69,5, + 70,5,70,5,8,5,18,5,37,26,36,5,37,5,37,5, + 37,5,37,114,10,0,0,0,41,1,114,91,0,0,0,114, + 71,0,0,0,41,3,78,78,78,41,2,114,0,0,0,0, + 114,0,0,0,0,41,1,84,41,85,114,155,0,0,0,114, + 162,0,0,0,114,190,0,0,0,114,95,0,0,0,114,18, + 0,0,0,114,103,0,0,0,114,187,0,0,0,114,28,0, + 0,0,114,237,0,0,0,90,2,110,116,114,21,0,0,0, + 114,221,0,0,0,90,5,112,111,115,105,120,114,53,0,0, + 0,218,3,97,108,108,114,61,0,0,0,114,140,0,0,0, + 114,59,0,0,0,114,64,0,0,0,90,20,95,112,97,116, + 104,115,101,112,115,95,119,105,116,104,95,99,111,108,111,110, + 114,31,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,30,0,0, + 0,114,32,0,0,0,114,24,0,0,0,114,39,0,0,0, + 114,45,0,0,0,114,48,0,0,0,114,69,0,0,0,114, + 76,0,0,0,114,78,0,0,0,114,83,0,0,0,114,84, + 0,0,0,114,87,0,0,0,114,90,0,0,0,114,99,0, + 0,0,218,4,116,121,112,101,218,8,95,95,99,111,100,101, + 95,95,114,189,0,0,0,114,37,0,0,0,114,175,0,0, + 0,114,36,0,0,0,114,42,0,0,0,114,20,1,0,0, + 114,120,0,0,0,114,116,0,0,0,114,131,0,0,0,114, + 63,0,0,0,114,137,1,0,0,114,238,0,0,0,114,117, + 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,125,0,0,0,114,132, + 0,0,0,114,139,0,0,0,114,141,0,0,0,114,143,0, + 0,0,114,163,0,0,0,114,170,0,0,0,114,179,0,0, + 0,114,183,0,0,0,114,185,0,0,0,114,192,0,0,0, + 114,197,0,0,0,114,199,0,0,0,114,205,0,0,0,218, + 6,111,98,106,101,99,116,114,215,0,0,0,114,219,0,0, + 0,114,220,0,0,0,114,241,0,0,0,114,2,1,0,0, + 114,23,1,0,0,114,49,1,0,0,114,58,1,0,0,114, + 44,1,0,0,114,64,1,0,0,114,93,1,0,0,114,99, + 1,0,0,114,117,1,0,0,114,136,1,0,0,114,214,0, + 0,0,114,140,1,0,0,114,143,1,0,0,114,13,0,0, + 0,114,10,0,0,0,114,7,0,0,0,218,8,60,109,111, + 100,117,108,101,62,114,149,1,0,0,1,0,0,0,115,180, + 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,20,2,8,1,8,1,10,1,12,1,4,4,4,1,2, + 1,2,1,4,255,6,4,6,16,6,3,6,5,6,5,4, + 6,8,1,6,30,6,6,6,8,6,10,6,9,6,5,4, + 7,8,1,6,8,8,5,10,22,0,127,16,41,12,1,4, + 2,4,1,6,2,4,1,10,1,8,2,6,2,8,2,14, + 2,6,71,6,40,6,19,6,12,6,12,6,31,6,20,6, + 33,6,28,8,24,8,13,8,10,6,11,6,14,4,3,2, + 1,10,255,12,73,12,67,14,30,0,127,12,17,16,50,16, + 45,16,25,12,53,12,63,12,49,0,127,12,29,0,127,8, + 30,6,23,6,11,10,5,115,220,0,0,0,4,7,4,15, + 8,3,8,1,8,1,8,1,8,1,10,3,2,1,2,4, + 8,253,10,1,8,2,2,3,2,3,10,254,6,2,20,2, + 8,1,8,1,10,1,12,1,4,4,4,1,2,1,4,1, + 2,255,6,18,6,2,6,5,6,6,6,5,2,3,2,34, + 8,250,6,6,6,8,6,10,6,9,6,5,6,7,2,3, + 2,11,8,251,6,5,2,3,6,19,10,3,0,127,16,41, + 12,1,4,2,4,1,6,2,2,1,12,1,8,2,6,2, + 8,2,4,2,10,68,6,40,6,19,6,12,6,12,6,31, + 6,20,6,33,6,28,6,24,2,3,6,10,2,3,6,7, + 2,3,6,8,6,12,6,5,4,3,2,1,10,67,12,69, + 12,30,0,127,8,17,0,129,2,242,0,127,4,14,12,50, + 8,45,4,214,4,42,8,25,4,234,4,22,8,53,4,206, + 4,50,12,62,12,48,0,127,12,31,0,127,12,28,2,5, + 6,20,6,11,6,5,10,8,115,158,2,0,0,1,4,1, + 4,14,18,1,11,1,12,1,12,1,12,1,12,1,11,1, + 11,1,11,1,11,1,11,1,11,1,11,1,11,1,17,1, + 17,1,17,1,17,1,15,1,15,1,15,1,15,16,19,16, + 28,32,39,16,39,1,12,4,15,1,24,5,21,5,21,5, + 21,5,21,5,18,5,18,5,18,5,18,5,18,5,24,5, + 24,5,24,5,24,4,15,1,28,24,28,30,33,23,34,5, + 20,5,20,24,27,23,28,5,20,8,11,11,53,11,53,37, + 52,11,53,11,53,8,53,1,53,1,53,1,53,12,27,28, + 29,12,30,1,9,18,23,24,39,18,40,1,15,19,21,19, + 43,27,42,19,43,1,16,24,58,24,58,42,57,24,58,24, + 58,1,21,39,45,1,36,41,59,1,38,33,70,35,70,33, + 70,1,28,1,23,1,23,1,23,15,31,15,33,1,12,1, + 55,1,55,1,55,1,42,1,42,1,42,1,42,1,42,1, + 42,4,15,1,63,5,42,5,42,5,42,5,42,5,63,5, + 63,5,63,1,34,1,34,1,34,1,26,1,26,1,26,1, + 50,1,50,1,50,1,46,1,46,1,46,1,46,1,46,1, + 46,4,15,1,48,5,82,5,82,5,82,5,82,5,48,5, + 48,5,48,36,41,1,14,1,14,1,14,14,18,19,32,19, + 41,14,42,1,11,17,21,16,44,32,33,35,43,16,44,47, + 54,16,54,1,13,21,24,21,59,36,48,50,58,21,59,1, + 18,12,25,1,9,8,14,1,5,20,25,19,26,1,16,4, + 15,1,35,5,20,5,35,28,34,5,35,5,35,22,26,22, + 45,22,47,1,19,22,28,21,29,1,18,57,74,1,74,1, + 24,27,54,44,48,66,70,1,48,1,48,1,48,1,48,1, + 48,1,64,1,64,1,64,1,71,1,71,1,71,1,20,1, + 20,1,20,1,16,1,16,1,16,1,31,1,31,1,31,1, + 18,1,18,1,18,1,17,1,17,1,17,1,76,1,76,1, + 76,1,10,1,10,1,10,34,38,1,57,1,57,1,57,40, + 41,1,16,1,16,1,16,50,54,1,16,1,16,1,16,1, + 68,1,68,1,68,13,19,13,21,1,10,44,48,60,64,56, + 65,1,16,1,16,1,16,1,16,1,16,1,24,1,24,1, + 24,1,24,1,24,1,24,1,60,1,60,1,60,1,60,1, + 60,1,60,1,27,1,27,1,27,1,27,20,33,1,27,1, + 27,1,32,1,32,1,32,1,32,1,32,1,32,1,45,1, + 45,1,45,1,45,24,34,36,48,1,45,1,45,1,20,1, + 20,1,20,1,20,28,38,40,53,1,20,1,20,1,25,1, + 25,1,25,1,25,27,37,39,52,1,25,1,25,1,32,1, + 32,1,32,1,32,1,32,1,32,1,43,1,43,1,43,1, + 43,1,43,1,43,1,70,1,70,1,70,1,70,1,70,1, + 70,1,52,1,52,1,52,1,52,1,52,1,52,50,54,1, + 13,1,13,1,13,1,42,1,42,1,42,1,35,1,35,1, + 35,1,37,1,37,1,37,1,37,1,37,114,10,0,0,0, }; diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h index 15ad71f72b19d..370c980c8fe73 100644 --- a/Python/importlib_zipimport.h +++ b/Python/importlib_zipimport.h @@ -121,20 +121,20 @@ const unsigned char _Py_M__zipimport[] = { 125,1,124,1,115,22,116,4,100,2,124,1,100,3,141,2, 130,1,116,5,114,30,124,1,160,6,116,5,116,7,161,2, 125,1,103,0,125,3,9,0,9,0,116,8,106,9,124,1, - 131,1,125,4,110,36,35,0,4,0,116,10,116,11,102,2, - 121,147,1,0,1,0,1,0,116,8,106,12,124,1,131,1, + 131,1,125,4,110,37,35,0,4,0,116,10,116,11,102,2, + 121,75,1,0,1,0,1,0,116,8,106,12,124,1,131,1, 92,2,125,5,125,6,124,5,124,1,107,2,114,66,116,4, 100,5,124,1,100,3,141,2,130,1,124,5,125,1,124,3, - 160,13,124,6,161,1,1,0,89,0,110,15,37,0,124,4, - 106,14,100,6,64,0,100,7,107,3,114,89,116,4,100,5, - 124,1,100,3,141,2,130,1,113,91,113,33,9,0,116,15, - 124,1,25,0,125,7,110,18,35,0,4,0,116,16,121,146, - 1,0,1,0,1,0,116,17,124,1,131,1,125,7,124,7, - 116,15,124,1,60,0,89,0,110,1,37,0,124,7,124,0, - 95,18,124,1,124,0,95,19,116,8,106,20,124,3,100,0, - 100,0,100,8,133,3,25,0,142,0,124,0,95,21,124,0, - 106,21,114,144,124,0,4,0,106,21,116,7,55,0,2,0, - 95,21,100,0,83,0,100,0,83,0,119,0,119,0,41,9, + 160,13,124,6,161,1,1,0,89,0,110,16,119,0,37,0, + 124,4,106,14,100,6,64,0,100,7,107,3,114,90,116,4, + 100,5,124,1,100,3,141,2,130,1,113,92,113,33,9,0, + 116,15,124,1,25,0,125,7,110,19,35,0,4,0,116,16, + 121,115,1,0,1,0,1,0,116,17,124,1,131,1,125,7, + 124,7,116,15,124,1,60,0,89,0,110,2,119,0,37,0, + 124,7,124,0,95,18,124,1,124,0,95,19,116,8,106,20, + 124,3,100,0,100,0,100,8,133,3,25,0,142,0,124,0, + 95,21,124,0,106,21,114,146,124,0,4,0,106,21,116,7, + 55,0,2,0,95,21,100,0,83,0,100,0,83,0,41,9, 78,114,0,0,0,0,122,21,97,114,99,104,105,118,101,32, 112,97,116,104,32,105,115,32,101,109,112,116,121,169,1,218, 4,112,97,116,104,84,122,14,110,111,116,32,97,32,90,105, @@ -163,670 +163,668 @@ const unsigned char _Py_M__zipimport[] = { 114,116,101,114,46,95,95,105,110,105,116,95,95,64,0,0, 0,115,76,0,0,0,10,1,8,1,10,1,4,1,12,1, 4,1,12,1,4,2,2,1,2,1,12,1,2,128,16,1, - 14,3,8,1,12,1,4,1,14,1,2,128,14,3,12,2, - 2,1,2,240,2,18,10,1,2,128,12,1,8,1,12,1, - 2,128,6,1,6,1,22,2,6,1,18,1,4,255,2,249, - 2,239,115,84,0,0,0,8,1,2,2,8,255,10,1,2, + 14,3,8,1,12,1,4,1,14,1,2,249,2,128,14,10, + 12,2,2,1,2,240,2,18,10,1,2,128,12,1,8,1, + 12,1,2,254,2,128,6,3,6,1,22,2,6,1,18,1, + 4,255,115,80,0,0,0,8,1,2,2,8,255,10,1,2, 1,14,1,2,1,14,1,4,2,2,1,2,16,12,242,2, - 128,2,8,6,249,8,7,14,252,6,1,14,1,4,1,14, + 128,2,8,6,249,8,7,14,252,6,1,14,1,4,1,16, 1,2,128,12,3,14,2,2,1,2,240,2,22,10,253,2, - 128,2,3,2,254,8,2,8,255,12,1,2,128,6,1,6, - 1,22,2,4,1,24,1,2,250,2,244,115,40,1,0,0, - 16,26,27,31,33,36,16,37,9,37,13,22,13,22,13,22, - 13,22,20,22,20,37,32,36,20,37,13,17,16,20,9,69, - 19,33,34,57,64,68,19,69,19,69,13,69,12,24,9,56, - 20,24,20,56,33,45,47,55,20,56,13,17,18,20,9,15, - 15,19,13,22,22,41,22,52,53,57,22,58,17,19,17,19, - 0,0,13,40,21,28,30,40,20,41,13,40,13,40,13,40, - 13,40,37,56,37,68,69,73,37,74,17,34,17,24,26,34, - 20,27,31,35,20,35,17,70,27,41,42,58,65,69,27,70, - 27,70,21,70,24,31,17,21,17,23,17,40,31,39,17,40, - 17,40,17,40,17,40,0,0,21,23,21,31,34,42,21,42, - 47,55,20,55,17,70,27,41,42,58,65,69,27,70,27,70, - 21,70,17,22,15,19,9,47,21,41,42,46,21,47,13,18, - 13,18,0,0,9,47,16,24,9,47,9,47,9,47,9,47, - 21,36,37,41,21,42,13,18,42,47,13,33,34,38,13,39, - 13,39,13,39,0,0,23,28,9,13,9,20,24,28,9,13, + 128,2,3,2,254,8,2,8,255,14,1,2,128,6,1,6, + 1,22,2,4,1,24,1,115,40,1,0,0,16,26,27,31, + 33,36,16,37,9,37,13,22,13,22,13,22,13,22,20,22, + 20,37,32,36,20,37,13,17,16,20,9,69,19,33,34,57, + 64,68,19,69,19,69,13,69,12,24,9,56,20,24,20,56, + 33,45,47,55,20,56,13,17,18,20,9,15,15,19,13,22, + 22,41,22,52,53,57,22,58,17,19,17,19,0,0,13,40, + 21,28,30,40,20,41,13,40,13,40,13,40,13,40,37,56, + 37,68,69,73,37,74,17,34,17,24,26,34,20,27,31,35, + 20,35,17,70,27,41,42,58,65,69,27,70,27,70,21,70, + 24,31,17,21,17,23,17,40,31,39,17,40,17,40,17,40, + 17,40,13,40,0,0,21,23,21,31,34,42,21,42,47,55, + 20,55,17,70,27,41,42,58,65,69,27,70,27,70,21,70, + 17,22,15,19,9,47,21,41,42,46,21,47,13,18,13,18, + 0,0,9,47,16,24,9,47,9,47,9,47,9,47,21,36, + 37,41,21,42,13,18,42,47,13,33,34,38,13,39,13,39, + 13,39,9,47,0,0,23,28,9,13,9,20,24,28,9,13, 9,21,23,42,23,53,55,61,62,66,62,66,64,66,62,66, 55,67,23,68,9,13,9,20,12,16,12,23,9,36,13,17, 13,24,13,24,28,36,13,36,13,24,13,24,13,24,13,24, - 9,36,9,36,9,47,13,40,115,33,0,0,0,162,5,40, - 0,168,33,65,11,7,193,28,4,65,33,0,193,33,15,65, - 50,7,194,18,1,65,50,7,194,19,1,65,11,7,78,99, - 3,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, - 3,0,0,0,115,90,0,0,0,116,0,106,1,100,1,116, - 2,131,2,1,0,116,3,124,0,124,1,131,2,125,3,124, - 3,100,2,117,1,114,19,124,0,103,0,102,2,83,0,116, - 4,124,0,124,1,131,2,125,4,116,5,124,0,124,4,131, - 2,114,41,100,2,124,0,106,6,155,0,116,7,155,0,124, - 4,155,0,157,3,103,1,102,2,83,0,100,2,103,0,102, - 2,83,0,41,3,97,47,2,0,0,102,105,110,100,95,108, - 111,97,100,101,114,40,102,117,108,108,110,97,109,101,44,32, - 112,97,116,104,61,78,111,110,101,41,32,45,62,32,115,101, - 108,102,44,32,115,116,114,32,111,114,32,78,111,110,101,46, - 10,10,32,32,32,32,32,32,32,32,83,101,97,114,99,104, - 32,102,111,114,32,97,32,109,111,100,117,108,101,32,115,112, - 101,99,105,102,105,101,100,32,98,121,32,39,102,117,108,108, - 110,97,109,101,39,46,32,39,102,117,108,108,110,97,109,101, - 39,32,109,117,115,116,32,98,101,32,116,104,101,10,32,32, - 32,32,32,32,32,32,102,117,108,108,121,32,113,117,97,108, - 105,102,105,101,100,32,40,100,111,116,116,101,100,41,32,109, - 111,100,117,108,101,32,110,97,109,101,46,32,73,116,32,114, - 101,116,117,114,110,115,32,116,104,101,32,122,105,112,105,109, - 112,111,114,116,101,114,10,32,32,32,32,32,32,32,32,105, - 110,115,116,97,110,99,101,32,105,116,115,101,108,102,32,105, - 102,32,116,104,101,32,109,111,100,117,108,101,32,119,97,115, - 32,102,111,117,110,100,44,32,97,32,115,116,114,105,110,103, - 32,99,111,110,116,97,105,110,105,110,103,32,116,104,101,10, - 32,32,32,32,32,32,32,32,102,117,108,108,32,112,97,116, - 104,32,110,97,109,101,32,105,102,32,105,116,39,115,32,112, - 111,115,115,105,98,108,121,32,97,32,112,111,114,116,105,111, - 110,32,111,102,32,97,32,110,97,109,101,115,112,97,99,101, - 32,112,97,99,107,97,103,101,44,10,32,32,32,32,32,32, - 32,32,111,114,32,78,111,110,101,32,111,116,104,101,114,119, - 105,115,101,46,32,84,104,101,32,111,112,116,105,111,110,97, - 108,32,39,112,97,116,104,39,32,97,114,103,117,109,101,110, - 116,32,105,115,32,105,103,110,111,114,101,100,32,45,45,32, - 105,116,39,115,10,32,32,32,32,32,32,32,32,116,104,101, - 114,101,32,102,111,114,32,99,111,109,112,97,116,105,98,105, - 108,105,116,121,32,119,105,116,104,32,116,104,101,32,105,109, - 112,111,114,116,101,114,32,112,114,111,116,111,99,111,108,46, - 10,10,32,32,32,32,32,32,32,32,68,101,112,114,101,99, - 97,116,101,100,32,115,105,110,99,101,32,80,121,116,104,111, - 110,32,51,46,49,48,46,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,32,32,32,32,32,32,32,32,122,102,122,105,112,105,109, - 112,111,114,116,101,114,46,102,105,110,100,95,108,111,97,100, - 101,114,40,41,32,105,115,32,100,101,112,114,101,99,97,116, - 101,100,32,97,110,100,32,115,108,97,116,101,100,32,102,111, - 114,32,114,101,109,111,118,97,108,32,105,110,32,80,121,116, - 104,111,110,32,51,46,49,50,59,32,117,115,101,32,102,105, - 110,100,95,115,112,101,99,40,41,32,105,110,115,116,101,97, - 100,78,41,8,218,9,95,119,97,114,110,105,110,103,115,218, - 4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,105, - 111,110,87,97,114,110,105,110,103,218,16,95,103,101,116,95, - 109,111,100,117,108,101,95,105,110,102,111,218,16,95,103,101, - 116,95,109,111,100,117,108,101,95,112,97,116,104,218,7,95, - 105,115,95,100,105,114,114,30,0,0,0,114,21,0,0,0, - 41,5,114,33,0,0,0,218,8,102,117,108,108,110,97,109, - 101,114,14,0,0,0,218,2,109,105,218,7,109,111,100,112, - 97,116,104,115,5,0,0,0,32,32,32,32,32,114,11,0, - 0,0,218,11,102,105,110,100,95,108,111,97,100,101,114,122, - 23,122,105,112,105,109,112,111,114,116,101,114,46,102,105,110, - 100,95,108,111,97,100,101,114,110,0,0,0,115,20,0,0, - 0,6,12,2,2,4,254,10,3,8,1,8,2,10,7,10, - 1,24,4,8,2,115,20,0,0,0,4,12,2,1,6,1, - 10,1,6,1,10,2,10,7,8,1,26,4,8,2,115,90, - 0,0,0,9,18,9,23,24,73,24,42,9,43,9,43,14, - 30,31,35,37,45,14,46,9,11,12,14,22,26,12,26,9, - 28,20,24,26,28,20,28,13,28,19,35,36,40,42,50,19, - 51,9,16,12,19,20,24,26,33,12,34,9,64,20,24,30, - 34,30,42,27,63,44,52,27,63,54,61,27,63,27,63,26, - 64,20,64,13,64,16,20,22,24,16,24,9,24,114,10,0, - 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,4, - 0,0,0,3,0,0,0,115,28,0,0,0,116,0,106,1, - 100,1,116,2,131,2,1,0,124,0,160,3,124,1,124,2, - 161,2,100,2,25,0,83,0,41,4,97,203,1,0,0,102, - 105,110,100,95,109,111,100,117,108,101,40,102,117,108,108,110, - 97,109,101,44,32,112,97,116,104,61,78,111,110,101,41,32, - 45,62,32,115,101,108,102,32,111,114,32,78,111,110,101,46, - 10,10,32,32,32,32,32,32,32,32,83,101,97,114,99,104, - 32,102,111,114,32,97,32,109,111,100,117,108,101,32,115,112, - 101,99,105,102,105,101,100,32,98,121,32,39,102,117,108,108, - 110,97,109,101,39,46,32,39,102,117,108,108,110,97,109,101, - 39,32,109,117,115,116,32,98,101,32,116,104,101,10,32,32, - 32,32,32,32,32,32,102,117,108,108,121,32,113,117,97,108, - 105,102,105,101,100,32,40,100,111,116,116,101,100,41,32,109, - 111,100,117,108,101,32,110,97,109,101,46,32,73,116,32,114, - 101,116,117,114,110,115,32,116,104,101,32,122,105,112,105,109, - 112,111,114,116,101,114,10,32,32,32,32,32,32,32,32,105, - 110,115,116,97,110,99,101,32,105,116,115,101,108,102,32,105, - 102,32,116,104,101,32,109,111,100,117,108,101,32,119,97,115, - 32,102,111,117,110,100,44,32,111,114,32,78,111,110,101,32, - 105,102,32,105,116,32,119,97,115,110,39,116,46,10,32,32, - 32,32,32,32,32,32,84,104,101,32,111,112,116,105,111,110, - 97,108,32,39,112,97,116,104,39,32,97,114,103,117,109,101, - 110,116,32,105,115,32,105,103,110,111,114,101,100,32,45,45, - 32,105,116,39,115,32,116,104,101,114,101,32,102,111,114,32, - 99,111,109,112,97,116,105,98,105,108,105,116,121,10,32,32, - 32,32,32,32,32,32,119,105,116,104,32,116,104,101,32,105, - 109,112,111,114,116,101,114,32,112,114,111,116,111,99,111,108, - 46,10,10,32,32,32,32,32,32,32,32,68,101,112,114,101, - 99,97,116,101,100,32,115,105,110,99,101,32,80,121,116,104, - 111,110,32,51,46,49,48,46,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,32,32,32,32,32,32,32,32,122,102,122,105,112,105, - 109,112,111,114,116,101,114,46,102,105,110,100,95,109,111,100, - 117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, - 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, - 116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,102, - 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, - 97,100,114,0,0,0,0,78,41,4,114,36,0,0,0,114, - 37,0,0,0,114,38,0,0,0,114,45,0,0,0,41,3, - 114,33,0,0,0,114,42,0,0,0,114,14,0,0,0,115, - 3,0,0,0,32,32,32,114,11,0,0,0,218,11,102,105, - 110,100,95,109,111,100,117,108,101,122,23,122,105,112,105,109, - 112,111,114,116,101,114,46,102,105,110,100,95,109,111,100,117, - 108,101,147,0,0,0,115,8,0,0,0,6,11,2,2,4, - 254,16,3,115,8,0,0,0,4,11,2,1,6,1,16,1, - 115,28,0,0,0,9,18,9,23,24,73,24,42,9,43,9, - 43,16,20,16,48,33,41,43,47,16,48,49,50,16,51,9, - 51,114,10,0,0,0,99,3,0,0,0,0,0,0,0,0, - 0,0,0,5,0,0,0,3,0,0,0,115,108,0,0,0, - 116,0,124,0,124,1,131,2,125,3,124,3,100,1,117,1, - 114,17,116,1,106,2,124,1,124,0,124,3,100,2,141,3, - 83,0,116,3,124,0,124,1,131,2,125,4,116,4,124,0, - 124,4,131,2,114,52,124,0,106,5,155,0,116,6,155,0, - 124,4,155,0,157,3,125,5,116,1,106,7,124,1,100,1, - 100,3,100,4,141,3,125,6,124,6,106,8,160,9,124,5, - 161,1,1,0,124,6,83,0,100,1,83,0,41,5,122,107, - 67,114,101,97,116,101,32,97,32,77,111,100,117,108,101,83, - 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,78, - 111,110,101,32,105,102,32,116,104,101,32,109,111,100,117,108, - 101,32,99,97,110,110,111,116,32,98,101,32,102,111,117,110, - 100,46,10,32,32,32,32,32,32,32,32,78,41,1,218,10, - 105,115,95,112,97,99,107,97,103,101,84,41,3,218,4,110, - 97,109,101,90,6,108,111,97,100,101,114,114,47,0,0,0, - 41,10,114,39,0,0,0,218,10,95,98,111,111,116,115,116, - 114,97,112,90,16,115,112,101,99,95,102,114,111,109,95,108, - 111,97,100,101,114,114,40,0,0,0,114,41,0,0,0,114, - 30,0,0,0,114,21,0,0,0,90,10,77,111,100,117,108, - 101,83,112,101,99,90,26,115,117,98,109,111,100,117,108,101, - 95,115,101,97,114,99,104,95,108,111,99,97,116,105,111,110, - 115,114,25,0,0,0,41,7,114,33,0,0,0,114,42,0, - 0,0,90,6,116,97,114,103,101,116,90,11,109,111,100,117, - 108,101,95,105,110,102,111,114,44,0,0,0,114,14,0,0, - 0,90,4,115,112,101,99,115,7,0,0,0,32,32,32,32, - 32,32,32,114,11,0,0,0,218,9,102,105,110,100,95,115, - 112,101,99,122,21,122,105,112,105,109,112,111,114,116,101,114, - 46,102,105,110,100,95,115,112,101,99,163,0,0,0,115,24, - 0,0,0,10,5,8,1,16,1,10,7,10,1,18,4,8, - 1,2,1,6,255,12,2,4,1,4,2,115,28,0,0,0, - 10,5,6,1,2,19,16,238,10,7,8,1,2,10,18,250, - 8,1,6,1,2,255,12,2,4,1,4,2,115,108,0,0, - 0,23,39,40,44,46,54,23,55,9,20,12,23,31,35,12, - 35,9,28,20,30,20,47,48,56,58,62,75,86,20,87,20, - 87,13,87,23,39,40,44,46,54,23,55,13,20,16,23,24, - 28,30,37,16,38,13,28,27,31,27,39,24,60,41,49,24, - 60,51,58,24,60,24,60,17,21,24,34,24,45,51,59,68, - 72,57,61,24,62,24,62,17,21,17,21,17,48,17,61,56, - 60,17,61,17,61,24,28,17,28,24,28,24,28,114,10,0, - 0,0,99,2,0,0,0,0,0,0,0,0,0,0,0,3, - 0,0,0,3,0,0,0,115,20,0,0,0,116,0,124,0, - 124,1,131,2,92,3,125,2,125,3,125,4,124,2,83,0, - 41,2,122,166,103,101,116,95,99,111,100,101,40,102,117,108, - 108,110,97,109,101,41,32,45,62,32,99,111,100,101,32,111, - 98,106,101,99,116,46,10,10,32,32,32,32,32,32,32,32, - 82,101,116,117,114,110,32,116,104,101,32,99,111,100,101,32, - 111,98,106,101,99,116,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, - 32,82,97,105,115,101,32,90,105,112,73,109,112,111,114,116, - 69,114,114,111,114,10,32,32,32,32,32,32,32,32,105,102, - 32,116,104,101,32,109,111,100,117,108,101,32,99,111,117,108, - 100,110,39,116,32,98,101,32,105,109,112,111,114,116,101,100, - 46,10,32,32,32,32,32,32,32,32,78,169,1,218,16,95, - 103,101,116,95,109,111,100,117,108,101,95,99,111,100,101,169, - 5,114,33,0,0,0,114,42,0,0,0,218,4,99,111,100, - 101,218,9,105,115,112,97,99,107,97,103,101,114,44,0,0, - 0,115,5,0,0,0,32,32,32,32,32,114,11,0,0,0, - 218,8,103,101,116,95,99,111,100,101,122,20,122,105,112,105, - 109,112,111,114,116,101,114,46,103,101,116,95,99,111,100,101, - 190,0,0,0,243,4,0,0,0,16,6,4,1,114,57,0, - 0,0,115,20,0,0,0,36,52,53,57,59,67,36,68,9, - 33,9,13,15,24,26,33,16,20,9,20,114,10,0,0,0, - 99,2,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,3,0,0,0,115,114,0,0,0,116,0,114,8,124,1, - 160,1,116,0,116,2,161,2,125,1,124,1,125,2,124,1, - 160,3,124,0,106,4,116,2,23,0,161,1,114,29,124,1, - 116,5,124,0,106,4,116,2,23,0,131,1,100,1,133,2, - 25,0,125,2,9,0,124,0,106,6,124,2,25,0,125,3, - 110,14,35,0,4,0,116,7,121,56,1,0,1,0,1,0, - 116,8,100,2,100,3,124,2,131,3,130,1,37,0,116,9, - 124,0,106,4,124,3,131,2,83,0,119,0,41,4,122,154, - 103,101,116,95,100,97,116,97,40,112,97,116,104,110,97,109, - 101,41,32,45,62,32,115,116,114,105,110,103,32,119,105,116, - 104,32,102,105,108,101,32,100,97,116,97,46,10,10,32,32, - 32,32,32,32,32,32,82,101,116,117,114,110,32,116,104,101, - 32,100,97,116,97,32,97,115,115,111,99,105,97,116,101,100, - 32,119,105,116,104,32,39,112,97,116,104,110,97,109,101,39, - 46,32,82,97,105,115,101,32,79,83,69,114,114,111,114,32, - 105,102,10,32,32,32,32,32,32,32,32,116,104,101,32,102, - 105,108,101,32,119,97,115,110,39,116,32,102,111,117,110,100, - 46,10,32,32,32,32,32,32,32,32,78,114,0,0,0,0, - 218,0,41,10,114,19,0,0,0,114,20,0,0,0,114,21, - 0,0,0,218,10,115,116,97,114,116,115,119,105,116,104,114, - 30,0,0,0,218,3,108,101,110,114,29,0,0,0,114,27, - 0,0,0,114,23,0,0,0,218,9,95,103,101,116,95,100, - 97,116,97,41,4,114,33,0,0,0,218,8,112,97,116,104, - 110,97,109,101,90,3,107,101,121,218,9,116,111,99,95,101, - 110,116,114,121,115,4,0,0,0,32,32,32,32,114,11,0, - 0,0,218,8,103,101,116,95,100,97,116,97,122,20,122,105, - 112,105,109,112,111,114,116,101,114,46,103,101,116,95,100,97, - 116,97,200,0,0,0,115,26,0,0,0,4,6,12,1,4, - 2,16,1,22,1,2,2,12,1,2,128,12,1,12,1,2, - 128,12,1,2,254,115,28,0,0,0,2,6,14,1,4,2, - 14,1,24,1,2,5,12,254,2,128,2,2,2,255,20,1, - 2,128,12,1,2,255,115,114,0,0,0,12,24,9,64,24, - 32,24,64,41,53,55,63,24,64,13,21,15,23,9,12,12, - 20,12,56,32,36,32,44,47,55,32,55,12,56,9,58,19, - 27,28,31,32,36,32,44,47,55,32,55,28,56,28,57,28, - 57,19,58,13,16,9,38,25,29,25,36,37,40,25,41,13, - 22,13,22,0,0,9,38,16,24,9,38,9,38,9,38,9, - 38,19,26,27,28,30,32,34,37,19,38,13,38,0,0,16, - 25,26,30,26,38,40,49,16,50,9,50,9,38,115,12,0, - 0,0,158,5,36,0,164,13,49,7,184,1,49,7,99,2, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, - 0,0,0,115,20,0,0,0,116,0,124,0,124,1,131,2, - 92,3,125,2,125,3,125,4,124,4,83,0,41,2,122,165, - 103,101,116,95,102,105,108,101,110,97,109,101,40,102,117,108, - 108,110,97,109,101,41,32,45,62,32,102,105,108,101,110,97, - 109,101,32,115,116,114,105,110,103,46,10,10,32,32,32,32, - 32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,102, - 105,108,101,110,97,109,101,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, - 32,111,114,32,114,97,105,115,101,32,90,105,112,73,109,112, - 111,114,116,69,114,114,111,114,10,32,32,32,32,32,32,32, - 32,105,102,32,105,116,32,99,111,117,108,100,110,39,116,32, - 98,101,32,105,109,112,111,114,116,101,100,46,10,32,32,32, - 32,32,32,32,32,78,114,51,0,0,0,114,53,0,0,0, - 115,5,0,0,0,32,32,32,32,32,114,11,0,0,0,218, - 12,103,101,116,95,102,105,108,101,110,97,109,101,122,24,122, - 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,102, - 105,108,101,110,97,109,101,221,0,0,0,243,4,0,0,0, - 16,8,4,1,114,66,0,0,0,115,20,0,0,0,36,52, - 53,57,59,67,36,68,9,33,9,13,15,24,26,33,16,23, - 9,23,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,8,0,0,0,3,0,0,0,115,128,0,0, - 0,116,0,124,0,124,1,131,2,125,2,124,2,100,1,117, - 0,114,18,116,1,100,2,124,1,155,2,157,2,124,1,100, - 3,141,2,130,1,116,2,124,0,124,1,131,2,125,3,124, - 2,114,32,116,3,106,4,124,3,100,4,131,2,125,4,110, - 5,124,3,155,0,100,5,157,2,125,4,9,0,124,0,106, - 5,124,4,25,0,125,5,110,11,35,0,4,0,116,6,121, - 63,1,0,1,0,1,0,89,0,100,1,83,0,37,0,116, - 7,124,0,106,8,124,5,131,2,160,9,161,0,83,0,119, - 0,41,6,122,253,103,101,116,95,115,111,117,114,99,101,40, - 102,117,108,108,110,97,109,101,41,32,45,62,32,115,111,117, - 114,99,101,32,115,116,114,105,110,103,46,10,10,32,32,32, - 32,32,32,32,32,82,101,116,117,114,110,32,116,104,101,32, - 115,111,117,114,99,101,32,99,111,100,101,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,32,82,97,105,115,101,32,90,105,112,73, - 109,112,111,114,116,69,114,114,111,114,10,32,32,32,32,32, - 32,32,32,105,102,32,116,104,101,32,109,111,100,117,108,101, - 32,99,111,117,108,100,110,39,116,32,98,101,32,102,111,117, - 110,100,44,32,114,101,116,117,114,110,32,78,111,110,101,32, - 105,102,32,116,104,101,32,97,114,99,104,105,118,101,32,100, - 111,101,115,10,32,32,32,32,32,32,32,32,99,111,110,116, - 97,105,110,32,116,104,101,32,109,111,100,117,108,101,44,32, - 98,117,116,32,104,97,115,32,110,111,32,115,111,117,114,99, - 101,32,102,111,114,32,105,116,46,10,32,32,32,32,32,32, - 32,32,78,250,18,99,97,110,39,116,32,102,105,110,100,32, - 109,111,100,117,108,101,32,169,1,114,48,0,0,0,250,11, - 95,95,105,110,105,116,95,95,46,112,121,250,3,46,112,121, - 41,10,114,39,0,0,0,114,3,0,0,0,114,40,0,0, - 0,114,22,0,0,0,114,31,0,0,0,114,29,0,0,0, - 114,27,0,0,0,114,61,0,0,0,114,30,0,0,0,218, - 6,100,101,99,111,100,101,41,6,114,33,0,0,0,114,42, - 0,0,0,114,43,0,0,0,114,14,0,0,0,218,8,102, - 117,108,108,112,97,116,104,114,63,0,0,0,115,6,0,0, - 0,32,32,32,32,32,32,114,11,0,0,0,218,10,103,101, - 116,95,115,111,117,114,99,101,122,22,122,105,112,105,109,112, - 111,114,116,101,114,46,103,101,116,95,115,111,117,114,99,101, - 233,0,0,0,115,30,0,0,0,10,7,8,1,18,1,10, - 2,4,1,14,1,10,2,2,2,12,1,2,128,12,1,6, - 2,2,128,16,1,2,253,115,34,0,0,0,10,7,6,1, - 20,1,10,2,2,1,2,3,14,254,10,2,2,6,12,253, - 2,128,2,3,2,254,14,2,2,128,16,1,2,255,115,128, - 0,0,0,14,30,31,35,37,45,14,46,9,11,12,14,18, - 22,12,22,9,83,19,33,34,67,35,43,34,67,34,67,74, - 82,19,83,19,83,13,83,16,32,33,37,39,47,16,48,9, - 13,12,14,9,36,24,43,24,54,55,59,61,74,24,75,13, - 21,13,21,27,31,24,36,24,36,24,36,13,21,9,24,25, - 29,25,36,37,45,25,46,13,22,13,22,0,0,9,24,16, - 24,9,24,9,24,9,24,9,24,20,24,20,24,20,24,0, - 0,16,25,26,30,26,38,40,49,16,50,16,59,16,59,9, - 59,9,24,115,12,0,0,0,166,5,44,0,172,7,54,7, - 191,1,54,7,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,3,0,0,0,115,40,0,0,0,116,0, - 124,0,124,1,131,2,125,2,124,2,100,1,117,0,114,18, - 116,1,100,2,124,1,155,2,157,2,124,1,100,3,141,2, - 130,1,124,2,83,0,41,4,122,171,105,115,95,112,97,99, - 107,97,103,101,40,102,117,108,108,110,97,109,101,41,32,45, - 62,32,98,111,111,108,46,10,10,32,32,32,32,32,32,32, - 32,82,101,116,117,114,110,32,84,114,117,101,32,105,102,32, - 116,104,101,32,109,111,100,117,108,101,32,115,112,101,99,105, - 102,105,101,100,32,98,121,32,102,117,108,108,110,97,109,101, - 32,105,115,32,97,32,112,97,99,107,97,103,101,46,10,32, - 32,32,32,32,32,32,32,82,97,105,115,101,32,90,105,112, - 73,109,112,111,114,116,69,114,114,111,114,32,105,102,32,116, - 104,101,32,109,111,100,117,108,101,32,99,111,117,108,100,110, - 39,116,32,98,101,32,102,111,117,110,100,46,10,32,32,32, - 32,32,32,32,32,78,114,67,0,0,0,114,68,0,0,0, - 41,2,114,39,0,0,0,114,3,0,0,0,41,3,114,33, - 0,0,0,114,42,0,0,0,114,43,0,0,0,115,3,0, - 0,0,32,32,32,114,11,0,0,0,114,47,0,0,0,122, - 22,122,105,112,105,109,112,111,114,116,101,114,46,105,115,95, - 112,97,99,107,97,103,101,3,1,0,0,115,8,0,0,0, - 10,6,8,1,18,1,4,1,115,8,0,0,0,10,6,6, - 1,20,1,4,1,115,40,0,0,0,14,30,31,35,37,45, - 14,46,9,11,12,14,18,22,12,22,9,83,19,33,34,67, - 35,43,34,67,34,67,74,82,19,83,19,83,13,83,16,18, - 9,18,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,8,0,0,0,3,0,0,0,115,0,1,0, - 0,100,1,125,2,116,0,106,1,124,2,116,2,131,2,1, - 0,116,3,124,0,124,1,131,2,92,3,125,3,125,4,125, - 5,116,4,106,5,160,6,124,1,161,1,125,6,124,6,100, - 2,117,0,115,31,116,7,124,6,116,8,131,2,115,40,116, - 8,124,1,131,1,125,6,124,6,116,4,106,5,124,1,60, - 0,124,0,124,6,95,9,9,0,124,4,114,62,116,10,124, - 0,124,1,131,2,125,7,116,11,106,12,124,0,106,13,124, - 7,131,2,125,8,124,8,103,1,124,6,95,14,116,15,124, - 6,100,3,131,2,115,70,116,16,124,6,95,16,116,11,106, - 17,124,6,106,18,124,1,124,5,131,3,1,0,116,19,124, - 3,124,6,106,18,131,2,1,0,110,10,35,0,1,0,1, - 0,1,0,116,4,106,5,124,1,61,0,130,0,37,0,9, - 0,116,4,106,5,124,1,25,0,125,6,110,16,35,0,4, - 0,116,20,121,127,1,0,1,0,1,0,116,21,100,4,124, - 1,155,2,100,5,157,3,131,1,130,1,37,0,116,22,106, - 23,100,6,124,1,124,5,131,3,1,0,124,6,83,0,119, - 0,41,7,97,64,1,0,0,108,111,97,100,95,109,111,100, - 117,108,101,40,102,117,108,108,110,97,109,101,41,32,45,62, - 32,109,111,100,117,108,101,46,10,10,32,32,32,32,32,32, - 32,32,76,111,97,100,32,116,104,101,32,109,111,100,117,108, - 101,32,115,112,101,99,105,102,105,101,100,32,98,121,32,39, - 102,117,108,108,110,97,109,101,39,46,32,39,102,117,108,108, - 110,97,109,101,39,32,109,117,115,116,32,98,101,32,116,104, - 101,10,32,32,32,32,32,32,32,32,102,117,108,108,121,32, - 113,117,97,108,105,102,105,101,100,32,40,100,111,116,116,101, - 100,41,32,109,111,100,117,108,101,32,110,97,109,101,46,32, - 73,116,32,114,101,116,117,114,110,115,32,116,104,101,32,105, - 109,112,111,114,116,101,100,10,32,32,32,32,32,32,32,32, - 109,111,100,117,108,101,44,32,111,114,32,114,97,105,115,101, - 115,32,90,105,112,73,109,112,111,114,116,69,114,114,111,114, - 32,105,102,32,105,116,32,99,111,117,108,100,32,110,111,116, - 32,98,101,32,105,109,112,111,114,116,101,100,46,10,10,32, + 9,36,9,36,115,33,0,0,0,162,5,40,0,168,33,65, + 12,7,193,11,1,65,12,7,193,29,4,65,34,0,193,34, + 15,65,52,7,193,51,1,65,52,7,78,99,3,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, + 115,90,0,0,0,116,0,106,1,100,1,116,2,131,2,1, + 0,116,3,124,0,124,1,131,2,125,3,124,3,100,2,117, + 1,114,19,124,0,103,0,102,2,83,0,116,4,124,0,124, + 1,131,2,125,4,116,5,124,0,124,4,131,2,114,41,100, + 2,124,0,106,6,155,0,116,7,155,0,124,4,155,0,157, + 3,103,1,102,2,83,0,100,2,103,0,102,2,83,0,41, + 3,97,47,2,0,0,102,105,110,100,95,108,111,97,100,101, + 114,40,102,117,108,108,110,97,109,101,44,32,112,97,116,104, + 61,78,111,110,101,41,32,45,62,32,115,101,108,102,44,32, + 115,116,114,32,111,114,32,78,111,110,101,46,10,10,32,32, + 32,32,32,32,32,32,83,101,97,114,99,104,32,102,111,114, + 32,97,32,109,111,100,117,108,101,32,115,112,101,99,105,102, + 105,101,100,32,98,121,32,39,102,117,108,108,110,97,109,101, + 39,46,32,39,102,117,108,108,110,97,109,101,39,32,109,117, + 115,116,32,98,101,32,116,104,101,10,32,32,32,32,32,32, + 32,32,102,117,108,108,121,32,113,117,97,108,105,102,105,101, + 100,32,40,100,111,116,116,101,100,41,32,109,111,100,117,108, + 101,32,110,97,109,101,46,32,73,116,32,114,101,116,117,114, + 110,115,32,116,104,101,32,122,105,112,105,109,112,111,114,116, + 101,114,10,32,32,32,32,32,32,32,32,105,110,115,116,97, + 110,99,101,32,105,116,115,101,108,102,32,105,102,32,116,104, + 101,32,109,111,100,117,108,101,32,119,97,115,32,102,111,117, + 110,100,44,32,97,32,115,116,114,105,110,103,32,99,111,110, + 116,97,105,110,105,110,103,32,116,104,101,10,32,32,32,32, + 32,32,32,32,102,117,108,108,32,112,97,116,104,32,110,97, + 109,101,32,105,102,32,105,116,39,115,32,112,111,115,115,105, + 98,108,121,32,97,32,112,111,114,116,105,111,110,32,111,102, + 32,97,32,110,97,109,101,115,112,97,99,101,32,112,97,99, + 107,97,103,101,44,10,32,32,32,32,32,32,32,32,111,114, + 32,78,111,110,101,32,111,116,104,101,114,119,105,115,101,46, + 32,84,104,101,32,111,112,116,105,111,110,97,108,32,39,112, + 97,116,104,39,32,97,114,103,117,109,101,110,116,32,105,115, + 32,105,103,110,111,114,101,100,32,45,45,32,105,116,39,115, + 10,32,32,32,32,32,32,32,32,116,104,101,114,101,32,102, + 111,114,32,99,111,109,112,97,116,105,98,105,108,105,116,121, + 32,119,105,116,104,32,116,104,101,32,105,109,112,111,114,116, + 101,114,32,112,114,111,116,111,99,111,108,46,10,10,32,32, + 32,32,32,32,32,32,68,101,112,114,101,99,97,116,101,100, + 32,115,105,110,99,101,32,80,121,116,104,111,110,32,51,46, + 49,48,46,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,32,32,32, + 32,32,32,32,32,122,102,122,105,112,105,109,112,111,114,116, + 101,114,46,102,105,110,100,95,108,111,97,100,101,114,40,41, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, + 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, + 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, + 51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115, + 112,101,99,40,41,32,105,110,115,116,101,97,100,78,41,8, + 218,9,95,119,97,114,110,105,110,103,115,218,4,119,97,114, + 110,218,18,68,101,112,114,101,99,97,116,105,111,110,87,97, + 114,110,105,110,103,218,16,95,103,101,116,95,109,111,100,117, + 108,101,95,105,110,102,111,218,16,95,103,101,116,95,109,111, + 100,117,108,101,95,112,97,116,104,218,7,95,105,115,95,100, + 105,114,114,30,0,0,0,114,21,0,0,0,41,5,114,33, + 0,0,0,218,8,102,117,108,108,110,97,109,101,114,14,0, + 0,0,218,2,109,105,218,7,109,111,100,112,97,116,104,115, + 5,0,0,0,32,32,32,32,32,114,11,0,0,0,218,11, + 102,105,110,100,95,108,111,97,100,101,114,122,23,122,105,112, + 105,109,112,111,114,116,101,114,46,102,105,110,100,95,108,111, + 97,100,101,114,110,0,0,0,115,20,0,0,0,6,12,2, + 2,4,254,10,3,8,1,8,2,10,7,10,1,24,4,8, + 2,115,20,0,0,0,4,12,2,1,6,1,10,1,6,1, + 10,2,10,7,8,1,26,4,8,2,115,90,0,0,0,9, + 18,9,23,24,73,24,42,9,43,9,43,14,30,31,35,37, + 45,14,46,9,11,12,14,22,26,12,26,9,28,20,24,26, + 28,20,28,13,28,19,35,36,40,42,50,19,51,9,16,12, + 19,20,24,26,33,12,34,9,64,20,24,30,34,30,42,27, + 63,44,52,27,63,54,61,27,63,27,63,26,64,20,64,13, + 64,16,20,22,24,16,24,9,24,114,10,0,0,0,99,3, + 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, + 0,0,0,115,28,0,0,0,116,0,106,1,100,1,116,2, + 131,2,1,0,124,0,160,3,124,1,124,2,161,2,100,2, + 25,0,83,0,41,4,97,203,1,0,0,102,105,110,100,95, + 109,111,100,117,108,101,40,102,117,108,108,110,97,109,101,44, + 32,112,97,116,104,61,78,111,110,101,41,32,45,62,32,115, + 101,108,102,32,111,114,32,78,111,110,101,46,10,10,32,32, + 32,32,32,32,32,32,83,101,97,114,99,104,32,102,111,114, + 32,97,32,109,111,100,117,108,101,32,115,112,101,99,105,102, + 105,101,100,32,98,121,32,39,102,117,108,108,110,97,109,101, + 39,46,32,39,102,117,108,108,110,97,109,101,39,32,109,117, + 115,116,32,98,101,32,116,104,101,10,32,32,32,32,32,32, + 32,32,102,117,108,108,121,32,113,117,97,108,105,102,105,101, + 100,32,40,100,111,116,116,101,100,41,32,109,111,100,117,108, + 101,32,110,97,109,101,46,32,73,116,32,114,101,116,117,114, + 110,115,32,116,104,101,32,122,105,112,105,109,112,111,114,116, + 101,114,10,32,32,32,32,32,32,32,32,105,110,115,116,97, + 110,99,101,32,105,116,115,101,108,102,32,105,102,32,116,104, + 101,32,109,111,100,117,108,101,32,119,97,115,32,102,111,117, + 110,100,44,32,111,114,32,78,111,110,101,32,105,102,32,105, + 116,32,119,97,115,110,39,116,46,10,32,32,32,32,32,32, + 32,32,84,104,101,32,111,112,116,105,111,110,97,108,32,39, + 112,97,116,104,39,32,97,114,103,117,109,101,110,116,32,105, + 115,32,105,103,110,111,114,101,100,32,45,45,32,105,116,39, + 115,32,116,104,101,114,101,32,102,111,114,32,99,111,109,112, + 97,116,105,98,105,108,105,116,121,10,32,32,32,32,32,32, + 32,32,119,105,116,104,32,116,104,101,32,105,109,112,111,114, + 116,101,114,32,112,114,111,116,111,99,111,108,46,10,10,32, 32,32,32,32,32,32,32,68,101,112,114,101,99,97,116,101, 100,32,115,105,110,99,101,32,80,121,116,104,111,110,32,51, - 46,49,48,46,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, - 32,32,32,32,32,32,32,32,122,114,122,105,112,105,109,112, - 111,114,116,46,122,105,112,105,109,112,111,114,116,101,114,46, - 108,111,97,100,95,109,111,100,117,108,101,40,41,32,105,115, - 32,100,101,112,114,101,99,97,116,101,100,32,97,110,100,32, - 115,108,97,116,101,100,32,102,111,114,32,114,101,109,111,118, - 97,108,32,105,110,32,80,121,116,104,111,110,32,51,46,49, - 50,59,32,117,115,101,32,101,120,101,99,95,109,111,100,117, - 108,101,40,41,32,105,110,115,116,101,97,100,78,218,12,95, - 95,98,117,105,108,116,105,110,115,95,95,122,14,76,111,97, - 100,101,100,32,109,111,100,117,108,101,32,122,25,32,110,111, - 116,32,102,111,117,110,100,32,105,110,32,115,121,115,46,109, - 111,100,117,108,101,115,122,30,105,109,112,111,114,116,32,123, - 125,32,35,32,108,111,97,100,101,100,32,102,114,111,109,32, - 90,105,112,32,123,125,41,24,114,36,0,0,0,114,37,0, - 0,0,114,38,0,0,0,114,52,0,0,0,218,3,115,121, - 115,218,7,109,111,100,117,108,101,115,218,3,103,101,116,114, - 16,0,0,0,218,12,95,109,111,100,117,108,101,95,116,121, - 112,101,218,10,95,95,108,111,97,100,101,114,95,95,114,40, - 0,0,0,114,22,0,0,0,114,31,0,0,0,114,30,0, - 0,0,90,8,95,95,112,97,116,104,95,95,218,7,104,97, - 115,97,116,116,114,114,74,0,0,0,90,14,95,102,105,120, - 95,117,112,95,109,111,100,117,108,101,218,8,95,95,100,105, - 99,116,95,95,218,4,101,120,101,99,114,27,0,0,0,218, - 11,73,109,112,111,114,116,69,114,114,111,114,114,49,0,0, - 0,218,16,95,118,101,114,98,111,115,101,95,109,101,115,115, - 97,103,101,41,9,114,33,0,0,0,114,42,0,0,0,218, - 3,109,115,103,114,54,0,0,0,114,55,0,0,0,114,44, - 0,0,0,90,3,109,111,100,114,14,0,0,0,114,72,0, - 0,0,115,9,0,0,0,32,32,32,32,32,32,32,32,32, - 114,11,0,0,0,218,11,108,111,97,100,95,109,111,100,117, - 108,101,122,23,122,105,112,105,109,112,111,114,116,101,114,46, - 108,111,97,100,95,109,111,100,117,108,101,16,1,0,0,115, - 62,0,0,0,4,9,12,2,16,1,12,1,18,1,8,1, - 10,1,6,1,2,2,4,1,10,3,14,1,8,1,10,2, - 6,1,16,1,14,1,2,128,6,1,8,1,2,1,2,128, - 2,2,12,1,2,128,12,1,16,1,2,128,14,1,4,1, - 2,253,115,74,0,0,0,2,10,2,255,12,2,16,1,12, - 1,6,1,2,2,8,254,2,2,8,255,10,1,6,1,2, - 16,2,243,2,5,10,254,14,1,8,1,8,2,8,1,16, - 1,14,1,2,128,6,3,8,255,2,1,2,128,2,5,12, - 254,2,128,2,2,2,255,24,1,2,128,14,1,4,1,2, - 254,115,0,1,0,0,16,67,9,12,9,18,9,23,24,27, - 29,47,9,48,9,48,36,52,53,57,59,67,36,68,9,33, - 9,13,15,24,26,33,15,18,15,26,15,40,31,39,15,40, - 9,12,12,15,19,23,12,23,9,40,31,41,42,45,47,59, - 31,60,9,40,19,31,32,40,19,41,13,16,37,40,13,16, - 13,24,25,33,13,34,26,30,9,12,9,23,9,18,16,25, - 13,42,24,40,41,45,47,55,24,56,17,21,28,47,28,58, - 59,63,59,71,73,77,28,78,17,25,33,41,32,42,17,20, - 17,29,20,27,28,31,33,47,20,48,13,48,36,48,17,20, - 17,33,13,32,13,47,48,51,48,60,62,70,72,79,13,80, - 13,80,13,17,18,22,24,27,24,36,13,37,13,37,13,37, - 0,0,9,18,9,18,9,18,17,20,17,28,29,37,17,38, - 13,18,0,0,9,86,19,22,19,30,31,39,19,40,13,16, - 13,16,0,0,9,86,16,24,9,86,9,86,9,86,9,86, - 19,30,31,85,32,40,31,85,31,85,31,85,19,86,13,86, - 0,0,9,19,9,36,37,69,71,79,81,88,9,89,9,89, - 16,19,9,19,9,86,115,29,0,0,0,172,40,65,21,0, - 193,21,9,65,30,7,193,32,5,65,38,0,193,38,15,65, - 53,7,193,63,1,65,53,7,99,2,0,0,0,0,0,0, - 0,0,0,0,0,8,0,0,0,3,0,0,0,115,64,0, - 0,0,9,0,124,0,160,0,124,1,161,1,115,8,100,1, - 83,0,110,11,35,0,4,0,116,1,121,31,1,0,1,0, - 1,0,89,0,100,1,83,0,37,0,100,2,100,3,108,2, - 109,3,125,2,1,0,124,2,124,0,124,1,131,2,83,0, - 119,0,41,4,122,204,82,101,116,117,114,110,32,116,104,101, - 32,82,101,115,111,117,114,99,101,82,101,97,100,101,114,32, - 102,111,114,32,97,32,112,97,99,107,97,103,101,32,105,110, - 32,97,32,122,105,112,32,102,105,108,101,46,10,10,32,32, - 32,32,32,32,32,32,73,102,32,39,102,117,108,108,110,97, - 109,101,39,32,105,115,32,97,32,112,97,99,107,97,103,101, - 32,119,105,116,104,105,110,32,116,104,101,32,122,105,112,32, - 102,105,108,101,44,32,114,101,116,117,114,110,32,116,104,101, - 10,32,32,32,32,32,32,32,32,39,82,101,115,111,117,114, - 99,101,82,101,97,100,101,114,39,32,111,98,106,101,99,116, - 32,102,111,114,32,116,104,101,32,112,97,99,107,97,103,101, - 46,32,32,79,116,104,101,114,119,105,115,101,32,114,101,116, - 117,114,110,32,78,111,110,101,46,10,32,32,32,32,32,32, - 32,32,78,114,0,0,0,0,41,1,218,9,90,105,112,82, - 101,97,100,101,114,41,4,114,47,0,0,0,114,3,0,0, - 0,90,17,105,109,112,111,114,116,108,105,98,46,114,101,97, - 100,101,114,115,114,87,0,0,0,41,3,114,33,0,0,0, - 114,42,0,0,0,114,87,0,0,0,115,3,0,0,0,32, - 32,32,114,11,0,0,0,218,19,103,101,116,95,114,101,115, - 111,117,114,99,101,95,114,101,97,100,101,114,122,31,122,105, - 112,105,109,112,111,114,116,101,114,46,103,101,116,95,114,101, - 115,111,117,114,99,101,95,114,101,97,100,101,114,59,1,0, - 0,115,22,0,0,0,2,6,10,1,4,1,2,255,2,128, - 12,2,6,1,2,128,12,1,10,1,2,253,115,22,0,0, - 0,2,10,8,253,8,1,2,128,2,2,2,255,14,1,2, - 128,12,1,10,1,2,254,115,64,0,0,0,9,24,20,24, - 20,45,36,44,20,45,13,28,24,28,24,28,13,28,0,0, - 9,24,16,30,9,24,9,24,9,24,9,24,20,24,20,24, - 20,24,0,0,9,48,9,48,9,48,9,48,9,48,9,48, - 16,25,26,30,32,40,16,41,9,41,9,24,115,12,0,0, - 0,129,5,9,0,137,7,19,7,159,1,19,7,99,1,0, + 46,49,48,46,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,32,32, + 32,32,32,32,32,32,122,102,122,105,112,105,109,112,111,114, + 116,101,114,46,102,105,110,100,95,109,111,100,117,108,101,40, + 41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32, + 97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114, + 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110, + 32,51,46,49,50,59,32,117,115,101,32,102,105,110,100,95, + 115,112,101,99,40,41,32,105,110,115,116,101,97,100,114,0, + 0,0,0,78,41,4,114,36,0,0,0,114,37,0,0,0, + 114,38,0,0,0,114,45,0,0,0,41,3,114,33,0,0, + 0,114,42,0,0,0,114,14,0,0,0,115,3,0,0,0, + 32,32,32,114,11,0,0,0,218,11,102,105,110,100,95,109, + 111,100,117,108,101,122,23,122,105,112,105,109,112,111,114,116, + 101,114,46,102,105,110,100,95,109,111,100,117,108,101,147,0, + 0,0,115,8,0,0,0,6,11,2,2,4,254,16,3,115, + 8,0,0,0,4,11,2,1,6,1,16,1,115,28,0,0, + 0,9,18,9,23,24,73,24,42,9,43,9,43,16,20,16, + 48,33,41,43,47,16,48,49,50,16,51,9,51,114,10,0, + 0,0,99,3,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,3,0,0,0,115,108,0,0,0,116,0,124,0, + 124,1,131,2,125,3,124,3,100,1,117,1,114,17,116,1, + 106,2,124,1,124,0,124,3,100,2,141,3,83,0,116,3, + 124,0,124,1,131,2,125,4,116,4,124,0,124,4,131,2, + 114,52,124,0,106,5,155,0,116,6,155,0,124,4,155,0, + 157,3,125,5,116,1,106,7,124,1,100,1,100,3,100,4, + 141,3,125,6,124,6,106,8,160,9,124,5,161,1,1,0, + 124,6,83,0,100,1,83,0,41,5,122,107,67,114,101,97, + 116,101,32,97,32,77,111,100,117,108,101,83,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,78,111,110,101,32, + 105,102,32,116,104,101,32,109,111,100,117,108,101,32,99,97, + 110,110,111,116,32,98,101,32,102,111,117,110,100,46,10,32, + 32,32,32,32,32,32,32,78,41,1,218,10,105,115,95,112, + 97,99,107,97,103,101,84,41,3,218,4,110,97,109,101,90, + 6,108,111,97,100,101,114,114,47,0,0,0,41,10,114,39, + 0,0,0,218,10,95,98,111,111,116,115,116,114,97,112,90, + 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101, + 114,114,40,0,0,0,114,41,0,0,0,114,30,0,0,0, + 114,21,0,0,0,90,10,77,111,100,117,108,101,83,112,101, + 99,90,26,115,117,98,109,111,100,117,108,101,95,115,101,97, + 114,99,104,95,108,111,99,97,116,105,111,110,115,114,25,0, + 0,0,41,7,114,33,0,0,0,114,42,0,0,0,90,6, + 116,97,114,103,101,116,90,11,109,111,100,117,108,101,95,105, + 110,102,111,114,44,0,0,0,114,14,0,0,0,90,4,115, + 112,101,99,115,7,0,0,0,32,32,32,32,32,32,32,114, + 11,0,0,0,218,9,102,105,110,100,95,115,112,101,99,122, + 21,122,105,112,105,109,112,111,114,116,101,114,46,102,105,110, + 100,95,115,112,101,99,163,0,0,0,115,24,0,0,0,10, + 5,8,1,16,1,10,7,10,1,18,4,8,1,2,1,6, + 255,12,2,4,1,4,2,115,28,0,0,0,10,5,6,1, + 2,19,16,238,10,7,8,1,2,10,18,250,8,1,6,1, + 2,255,12,2,4,1,4,2,115,108,0,0,0,23,39,40, + 44,46,54,23,55,9,20,12,23,31,35,12,35,9,28,20, + 30,20,47,48,56,58,62,75,86,20,87,20,87,13,87,23, + 39,40,44,46,54,23,55,13,20,16,23,24,28,30,37,16, + 38,13,28,27,31,27,39,24,60,41,49,24,60,51,58,24, + 60,24,60,17,21,24,34,24,45,51,59,68,72,57,61,24, + 62,24,62,17,21,17,21,17,48,17,61,56,60,17,61,17, + 61,24,28,17,28,24,28,24,28,114,10,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3, + 0,0,0,115,20,0,0,0,116,0,124,0,124,1,131,2, + 92,3,125,2,125,3,125,4,124,2,83,0,41,2,122,166, + 103,101,116,95,99,111,100,101,40,102,117,108,108,110,97,109, + 101,41,32,45,62,32,99,111,100,101,32,111,98,106,101,99, + 116,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, + 114,110,32,116,104,101,32,99,111,100,101,32,111,98,106,101, + 99,116,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,32,82,97,105, + 115,101,32,90,105,112,73,109,112,111,114,116,69,114,114,111, + 114,10,32,32,32,32,32,32,32,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,99,111,117,108,100,110,39,116, + 32,98,101,32,105,109,112,111,114,116,101,100,46,10,32,32, + 32,32,32,32,32,32,78,169,1,218,16,95,103,101,116,95, + 109,111,100,117,108,101,95,99,111,100,101,169,5,114,33,0, + 0,0,114,42,0,0,0,218,4,99,111,100,101,218,9,105, + 115,112,97,99,107,97,103,101,114,44,0,0,0,115,5,0, + 0,0,32,32,32,32,32,114,11,0,0,0,218,8,103,101, + 116,95,99,111,100,101,122,20,122,105,112,105,109,112,111,114, + 116,101,114,46,103,101,116,95,99,111,100,101,190,0,0,0, + 243,4,0,0,0,16,6,4,1,114,57,0,0,0,115,20, + 0,0,0,36,52,53,57,59,67,36,68,9,33,9,13,15, + 24,26,33,16,20,9,20,114,10,0,0,0,99,2,0,0, + 0,0,0,0,0,0,0,0,0,8,0,0,0,3,0,0, + 0,115,114,0,0,0,116,0,114,8,124,1,160,1,116,0, + 116,2,161,2,125,1,124,1,125,2,124,1,160,3,124,0, + 106,4,116,2,23,0,161,1,114,29,124,1,116,5,124,0, + 106,4,116,2,23,0,131,1,100,1,133,2,25,0,125,2, + 9,0,124,0,106,6,124,2,25,0,125,3,110,15,35,0, + 4,0,116,7,121,49,1,0,1,0,1,0,116,8,100,2, + 100,3,124,2,131,3,130,1,119,0,37,0,116,9,124,0, + 106,4,124,3,131,2,83,0,41,4,122,154,103,101,116,95, + 100,97,116,97,40,112,97,116,104,110,97,109,101,41,32,45, + 62,32,115,116,114,105,110,103,32,119,105,116,104,32,102,105, + 108,101,32,100,97,116,97,46,10,10,32,32,32,32,32,32, + 32,32,82,101,116,117,114,110,32,116,104,101,32,100,97,116, + 97,32,97,115,115,111,99,105,97,116,101,100,32,119,105,116, + 104,32,39,112,97,116,104,110,97,109,101,39,46,32,82,97, + 105,115,101,32,79,83,69,114,114,111,114,32,105,102,10,32, + 32,32,32,32,32,32,32,116,104,101,32,102,105,108,101,32, + 119,97,115,110,39,116,32,102,111,117,110,100,46,10,32,32, + 32,32,32,32,32,32,78,114,0,0,0,0,218,0,41,10, + 114,19,0,0,0,114,20,0,0,0,114,21,0,0,0,218, + 10,115,116,97,114,116,115,119,105,116,104,114,30,0,0,0, + 218,3,108,101,110,114,29,0,0,0,114,27,0,0,0,114, + 23,0,0,0,218,9,95,103,101,116,95,100,97,116,97,41, + 4,114,33,0,0,0,218,8,112,97,116,104,110,97,109,101, + 90,3,107,101,121,218,9,116,111,99,95,101,110,116,114,121, + 115,4,0,0,0,32,32,32,32,114,11,0,0,0,218,8, + 103,101,116,95,100,97,116,97,122,20,122,105,112,105,109,112, + 111,114,116,101,114,46,103,101,116,95,100,97,116,97,200,0, + 0,0,115,26,0,0,0,4,6,12,1,4,2,16,1,22, + 1,2,2,12,1,2,128,12,1,12,1,2,255,2,128,12, + 2,115,26,0,0,0,2,6,14,1,4,2,14,1,24,1, + 2,5,12,254,2,128,2,2,2,255,22,1,2,128,12,1, + 115,114,0,0,0,12,24,9,64,24,32,24,64,41,53,55, + 63,24,64,13,21,15,23,9,12,12,20,12,56,32,36,32, + 44,47,55,32,55,12,56,9,58,19,27,28,31,32,36,32, + 44,47,55,32,55,28,56,28,57,28,57,19,58,13,16,9, + 38,25,29,25,36,37,40,25,41,13,22,13,22,0,0,9, + 38,16,24,9,38,9,38,9,38,9,38,19,26,27,28,30, + 32,34,37,19,38,13,38,9,38,0,0,16,25,26,30,26, + 38,40,49,16,50,9,50,115,8,0,0,0,158,5,36,0, + 164,14,50,7,99,2,0,0,0,0,0,0,0,0,0,0, + 0,3,0,0,0,3,0,0,0,115,20,0,0,0,116,0, + 124,0,124,1,131,2,92,3,125,2,125,3,125,4,124,4, + 83,0,41,2,122,165,103,101,116,95,102,105,108,101,110,97, + 109,101,40,102,117,108,108,110,97,109,101,41,32,45,62,32, + 102,105,108,101,110,97,109,101,32,115,116,114,105,110,103,46, + 10,10,32,32,32,32,32,32,32,32,82,101,116,117,114,110, + 32,116,104,101,32,102,105,108,101,110,97,109,101,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,32,111,114,32,114,97,105,115,101,32, + 90,105,112,73,109,112,111,114,116,69,114,114,111,114,10,32, + 32,32,32,32,32,32,32,105,102,32,105,116,32,99,111,117, + 108,100,110,39,116,32,98,101,32,105,109,112,111,114,116,101, + 100,46,10,32,32,32,32,32,32,32,32,78,114,51,0,0, + 0,114,53,0,0,0,115,5,0,0,0,32,32,32,32,32, + 114,11,0,0,0,218,12,103,101,116,95,102,105,108,101,110, + 97,109,101,122,24,122,105,112,105,109,112,111,114,116,101,114, + 46,103,101,116,95,102,105,108,101,110,97,109,101,221,0,0, + 0,243,4,0,0,0,16,8,4,1,114,66,0,0,0,115, + 20,0,0,0,36,52,53,57,59,67,36,68,9,33,9,13, + 15,24,26,33,16,23,9,23,114,10,0,0,0,99,2,0, 0,0,0,0,0,0,0,0,0,0,8,0,0,0,3,0, - 0,0,115,74,0,0,0,9,0,116,0,124,0,106,1,131, - 1,124,0,95,2,124,0,106,2,116,3,124,0,106,1,60, - 0,100,1,83,0,35,0,4,0,116,4,121,36,1,0,1, - 0,1,0,116,3,160,5,124,0,106,1,100,1,161,2,1, - 0,100,1,124,0,95,2,89,0,100,1,83,0,37,0,119, - 0,41,2,122,41,82,101,108,111,97,100,32,116,104,101,32, - 102,105,108,101,32,100,97,116,97,32,111,102,32,116,104,101, - 32,97,114,99,104,105,118,101,32,112,97,116,104,46,78,41, - 6,114,28,0,0,0,114,30,0,0,0,114,29,0,0,0, - 114,26,0,0,0,114,3,0,0,0,218,3,112,111,112,169, - 1,114,33,0,0,0,115,1,0,0,0,32,114,11,0,0, - 0,218,17,105,110,118,97,108,105,100,97,116,101,95,99,97, - 99,104,101,115,122,29,122,105,112,105,109,112,111,114,116,101, - 114,46,105,110,118,97,108,105,100,97,116,101,95,99,97,99, - 104,101,115,74,1,0,0,115,18,0,0,0,2,2,12,1, - 16,1,2,128,12,1,14,1,12,1,2,128,2,254,115,22, - 0,0,0,2,7,12,252,16,1,2,128,2,3,2,254,8, - 2,14,255,12,1,2,128,2,0,115,74,0,0,0,9,31, - 27,42,43,47,43,55,27,56,13,17,13,24,50,54,50,61, - 13,33,34,38,34,46,13,47,13,47,13,47,0,0,9,31, - 16,30,9,31,9,31,9,31,9,31,13,33,13,57,38,42, - 38,50,52,56,13,57,13,57,27,31,13,17,13,24,13,24, - 13,24,13,24,0,0,9,31,115,12,0,0,0,129,12,15, - 0,143,17,35,7,164,1,35,7,99,1,0,0,0,0,0, - 0,0,0,0,0,0,5,0,0,0,3,0,0,0,115,24, - 0,0,0,100,1,124,0,106,0,155,0,116,1,155,0,124, - 0,106,2,155,0,100,2,157,5,83,0,41,3,78,122,21, - 60,122,105,112,105,109,112,111,114,116,101,114,32,111,98,106, - 101,99,116,32,34,122,2,34,62,41,3,114,30,0,0,0, - 114,21,0,0,0,114,32,0,0,0,114,90,0,0,0,115, - 1,0,0,0,32,114,11,0,0,0,218,8,95,95,114,101, - 112,114,95,95,122,20,122,105,112,105,109,112,111,114,116,101, - 114,46,95,95,114,101,112,114,95,95,84,1,0,0,243,2, - 0,0,0,24,1,114,93,0,0,0,115,24,0,0,0,16, - 79,40,44,40,52,16,79,54,62,16,79,64,68,64,75,16, - 79,16,79,16,79,9,79,114,10,0,0,0,169,1,78,41, - 17,114,6,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,7,95,95,100,111,99,95,95,114,35,0,0,0,114,45, - 0,0,0,114,46,0,0,0,114,50,0,0,0,114,56,0, - 0,0,114,64,0,0,0,114,65,0,0,0,114,73,0,0, - 0,114,47,0,0,0,114,86,0,0,0,114,88,0,0,0, - 114,91,0,0,0,114,92,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,11,0,0,0,114,4,0,0,0,114,4, - 0,0,0,46,0,0,0,115,30,0,0,0,8,0,4,1, - 6,17,8,46,8,37,8,16,6,27,6,10,6,21,6,12, - 6,26,6,13,6,43,6,15,10,10,115,38,0,0,0,8, - 210,2,59,2,197,6,102,2,8,6,32,2,5,6,14,2, - 2,6,25,6,9,6,20,6,13,6,25,6,13,6,44,6, - 15,6,10,10,4,115,100,0,0,0,1,1,1,1,1,1, - 1,1,5,8,1,1,5,36,5,36,5,36,42,46,5,24, - 5,24,5,24,42,46,5,51,5,51,5,51,42,46,5,28, - 5,28,5,28,5,20,5,20,5,20,5,50,5,50,5,50, - 5,23,5,23,5,23,5,59,5,59,5,59,5,18,5,18, - 5,18,5,19,5,19,5,19,5,41,5,41,5,41,5,31, - 5,31,5,31,5,79,5,79,5,79,5,79,5,79,114,10, - 0,0,0,122,12,95,95,105,110,105,116,95,95,46,112,121, - 99,84,114,69,0,0,0,70,41,3,122,4,46,112,121,99, - 84,70,41,3,114,70,0,0,0,70,70,99,2,0,0,0, - 0,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0, - 115,20,0,0,0,124,0,106,0,124,1,160,1,100,1,161, - 1,100,2,25,0,23,0,83,0,41,3,78,218,1,46,233, - 2,0,0,0,41,2,114,32,0,0,0,218,10,114,112,97, - 114,116,105,116,105,111,110,41,2,114,33,0,0,0,114,42, - 0,0,0,115,2,0,0,0,32,32,114,11,0,0,0,114, - 40,0,0,0,114,40,0,0,0,102,1,0,0,243,2,0, - 0,0,20,1,114,99,0,0,0,115,20,0,0,0,12,16, - 12,23,26,34,26,50,46,49,26,50,51,52,26,53,12,53, - 5,53,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,3,0,0,0,115,18,0,0, - 0,124,1,116,0,23,0,125,2,124,2,124,0,106,1,118, - 0,83,0,114,94,0,0,0,41,2,114,21,0,0,0,114, - 29,0,0,0,41,3,114,33,0,0,0,114,14,0,0,0, - 90,7,100,105,114,112,97,116,104,115,3,0,0,0,32,32, - 32,114,11,0,0,0,114,41,0,0,0,114,41,0,0,0, - 106,1,0,0,243,4,0,0,0,8,4,10,2,114,100,0, - 0,0,115,18,0,0,0,15,19,22,30,15,30,5,12,12, - 19,23,27,23,34,12,34,5,34,114,10,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,3, - 0,0,0,115,56,0,0,0,116,0,124,0,124,1,131,2, - 125,2,116,1,68,0,93,18,92,3,125,3,125,4,125,5, - 124,2,124,3,23,0,125,6,124,6,124,0,106,2,118,0, - 114,25,124,5,2,0,1,0,83,0,113,7,100,0,83,0, - 114,94,0,0,0,41,3,114,40,0,0,0,218,16,95,122, - 105,112,95,115,101,97,114,99,104,111,114,100,101,114,114,29, - 0,0,0,41,7,114,33,0,0,0,114,42,0,0,0,114, - 14,0,0,0,218,6,115,117,102,102,105,120,218,10,105,115, - 98,121,116,101,99,111,100,101,114,55,0,0,0,114,72,0, - 0,0,115,7,0,0,0,32,32,32,32,32,32,32,114,11, - 0,0,0,114,39,0,0,0,114,39,0,0,0,115,1,0, - 0,115,14,0,0,0,10,1,14,1,8,1,10,1,8,1, - 2,255,4,2,115,16,0,0,0,10,1,2,1,4,3,8, - 253,8,1,8,1,12,1,4,1,115,56,0,0,0,12,28, - 29,33,35,43,12,44,5,9,42,58,5,29,5,29,9,38, - 9,15,17,27,29,38,20,24,27,33,20,33,9,17,12,20, - 24,28,24,35,12,35,9,29,20,29,13,29,13,29,13,29, - 9,29,12,16,12,16,114,10,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,9,0,0,0,3,0,0,0, - 115,248,4,0,0,9,0,116,0,106,1,124,0,131,1,125, - 1,110,18,35,0,4,0,116,2,144,2,121,123,1,0,1, - 0,1,0,116,3,100,1,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,37,0,124,1,53,0,1,0,9,0,124, - 1,160,4,116,5,11,0,100,3,161,2,1,0,124,1,160, - 6,161,0,125,2,124,1,160,7,116,5,161,1,125,3,110, - 18,35,0,4,0,116,2,144,2,121,122,1,0,1,0,1, + 0,0,115,128,0,0,0,116,0,124,0,124,1,131,2,125, + 2,124,2,100,1,117,0,114,18,116,1,100,2,124,1,155, + 2,157,2,124,1,100,3,141,2,130,1,116,2,124,0,124, + 1,131,2,125,3,124,2,114,32,116,3,106,4,124,3,100, + 4,131,2,125,4,110,5,124,3,155,0,100,5,157,2,125, + 4,9,0,124,0,106,5,124,4,25,0,125,5,110,12,35, + 0,4,0,116,6,121,54,1,0,1,0,1,0,89,0,100, + 1,83,0,119,0,37,0,116,7,124,0,106,8,124,5,131, + 2,160,9,161,0,83,0,41,6,122,253,103,101,116,95,115, + 111,117,114,99,101,40,102,117,108,108,110,97,109,101,41,32, + 45,62,32,115,111,117,114,99,101,32,115,116,114,105,110,103, + 46,10,10,32,32,32,32,32,32,32,32,82,101,116,117,114, + 110,32,116,104,101,32,115,111,117,114,99,101,32,99,111,100, + 101,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,32,82,97,105,115, + 101,32,90,105,112,73,109,112,111,114,116,69,114,114,111,114, + 10,32,32,32,32,32,32,32,32,105,102,32,116,104,101,32, + 109,111,100,117,108,101,32,99,111,117,108,100,110,39,116,32, + 98,101,32,102,111,117,110,100,44,32,114,101,116,117,114,110, + 32,78,111,110,101,32,105,102,32,116,104,101,32,97,114,99, + 104,105,118,101,32,100,111,101,115,10,32,32,32,32,32,32, + 32,32,99,111,110,116,97,105,110,32,116,104,101,32,109,111, + 100,117,108,101,44,32,98,117,116,32,104,97,115,32,110,111, + 32,115,111,117,114,99,101,32,102,111,114,32,105,116,46,10, + 32,32,32,32,32,32,32,32,78,250,18,99,97,110,39,116, + 32,102,105,110,100,32,109,111,100,117,108,101,32,169,1,114, + 48,0,0,0,250,11,95,95,105,110,105,116,95,95,46,112, + 121,250,3,46,112,121,41,10,114,39,0,0,0,114,3,0, + 0,0,114,40,0,0,0,114,22,0,0,0,114,31,0,0, + 0,114,29,0,0,0,114,27,0,0,0,114,61,0,0,0, + 114,30,0,0,0,218,6,100,101,99,111,100,101,41,6,114, + 33,0,0,0,114,42,0,0,0,114,43,0,0,0,114,14, + 0,0,0,218,8,102,117,108,108,112,97,116,104,114,63,0, + 0,0,115,6,0,0,0,32,32,32,32,32,32,114,11,0, + 0,0,218,10,103,101,116,95,115,111,117,114,99,101,122,22, + 122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95, + 115,111,117,114,99,101,233,0,0,0,115,30,0,0,0,10, + 7,8,1,18,1,10,2,4,1,14,1,10,2,2,2,12, + 1,2,128,12,1,6,2,2,254,2,128,16,3,115,32,0, + 0,0,10,7,6,1,20,1,10,2,2,1,2,3,14,254, + 10,2,2,6,12,253,2,128,2,3,2,254,16,2,2,128, + 16,1,115,128,0,0,0,14,30,31,35,37,45,14,46,9, + 11,12,14,18,22,12,22,9,83,19,33,34,67,35,43,34, + 67,34,67,74,82,19,83,19,83,13,83,16,32,33,37,39, + 47,16,48,9,13,12,14,9,36,24,43,24,54,55,59,61, + 74,24,75,13,21,13,21,27,31,24,36,24,36,24,36,13, + 21,9,24,25,29,25,36,37,45,25,46,13,22,13,22,0, + 0,9,24,16,24,9,24,9,24,9,24,9,24,20,24,20, + 24,20,24,9,24,0,0,16,25,26,30,26,38,40,49,16, + 50,16,59,16,59,9,59,115,12,0,0,0,166,5,44,0, + 172,7,55,7,182,1,55,7,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,3,0,0,0,115,40,0, + 0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,1, + 117,0,114,18,116,1,100,2,124,1,155,2,157,2,124,1, + 100,3,141,2,130,1,124,2,83,0,41,4,122,171,105,115, + 95,112,97,99,107,97,103,101,40,102,117,108,108,110,97,109, + 101,41,32,45,62,32,98,111,111,108,46,10,10,32,32,32, + 32,32,32,32,32,82,101,116,117,114,110,32,84,114,117,101, + 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,115, + 112,101,99,105,102,105,101,100,32,98,121,32,102,117,108,108, + 110,97,109,101,32,105,115,32,97,32,112,97,99,107,97,103, + 101,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101, + 32,90,105,112,73,109,112,111,114,116,69,114,114,111,114,32, + 105,102,32,116,104,101,32,109,111,100,117,108,101,32,99,111, + 117,108,100,110,39,116,32,98,101,32,102,111,117,110,100,46, + 10,32,32,32,32,32,32,32,32,78,114,67,0,0,0,114, + 68,0,0,0,41,2,114,39,0,0,0,114,3,0,0,0, + 41,3,114,33,0,0,0,114,42,0,0,0,114,43,0,0, + 0,115,3,0,0,0,32,32,32,114,11,0,0,0,114,47, + 0,0,0,122,22,122,105,112,105,109,112,111,114,116,101,114, + 46,105,115,95,112,97,99,107,97,103,101,3,1,0,0,115, + 8,0,0,0,10,6,8,1,18,1,4,1,115,8,0,0, + 0,10,6,6,1,20,1,4,1,115,40,0,0,0,14,30, + 31,35,37,45,14,46,9,11,12,14,18,22,12,22,9,83, + 19,33,34,67,35,43,34,67,34,67,74,82,19,83,19,83, + 13,83,16,18,9,18,114,10,0,0,0,99,2,0,0,0, + 0,0,0,0,0,0,0,0,8,0,0,0,3,0,0,0, + 115,0,1,0,0,100,1,125,2,116,0,106,1,124,2,116, + 2,131,2,1,0,116,3,124,0,124,1,131,2,92,3,125, + 3,125,4,125,5,116,4,106,5,160,6,124,1,161,1,125, + 6,124,6,100,2,117,0,115,31,116,7,124,6,116,8,131, + 2,115,40,116,8,124,1,131,1,125,6,124,6,116,4,106, + 5,124,1,60,0,124,0,124,6,95,9,9,0,124,4,114, + 62,116,10,124,0,124,1,131,2,125,7,116,11,106,12,124, + 0,106,13,124,7,131,2,125,8,124,8,103,1,124,6,95, + 14,116,15,124,6,100,3,131,2,115,70,116,16,124,6,95, + 16,116,11,106,17,124,6,106,18,124,1,124,5,131,3,1, + 0,116,19,124,3,124,6,106,18,131,2,1,0,110,10,35, + 0,1,0,1,0,1,0,116,4,106,5,124,1,61,0,130, + 0,37,0,9,0,116,4,106,5,124,1,25,0,125,6,110, + 17,35,0,4,0,116,20,121,117,1,0,1,0,1,0,116, + 21,100,4,124,1,155,2,100,5,157,3,131,1,130,1,119, + 0,37,0,116,22,106,23,100,6,124,1,124,5,131,3,1, + 0,124,6,83,0,41,7,97,64,1,0,0,108,111,97,100, + 95,109,111,100,117,108,101,40,102,117,108,108,110,97,109,101, + 41,32,45,62,32,109,111,100,117,108,101,46,10,10,32,32, + 32,32,32,32,32,32,76,111,97,100,32,116,104,101,32,109, + 111,100,117,108,101,32,115,112,101,99,105,102,105,101,100,32, + 98,121,32,39,102,117,108,108,110,97,109,101,39,46,32,39, + 102,117,108,108,110,97,109,101,39,32,109,117,115,116,32,98, + 101,32,116,104,101,10,32,32,32,32,32,32,32,32,102,117, + 108,108,121,32,113,117,97,108,105,102,105,101,100,32,40,100, + 111,116,116,101,100,41,32,109,111,100,117,108,101,32,110,97, + 109,101,46,32,73,116,32,114,101,116,117,114,110,115,32,116, + 104,101,32,105,109,112,111,114,116,101,100,10,32,32,32,32, + 32,32,32,32,109,111,100,117,108,101,44,32,111,114,32,114, + 97,105,115,101,115,32,90,105,112,73,109,112,111,114,116,69, + 114,114,111,114,32,105,102,32,105,116,32,99,111,117,108,100, + 32,110,111,116,32,98,101,32,105,109,112,111,114,116,101,100, + 46,10,10,32,32,32,32,32,32,32,32,68,101,112,114,101, + 99,97,116,101,100,32,115,105,110,99,101,32,80,121,116,104, + 111,110,32,51,46,49,48,46,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,32,32,32,32,32,32,32,32,122,114,122,105, + 112,105,109,112,111,114,116,46,122,105,112,105,109,112,111,114, + 116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,40, + 41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32, + 97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114, + 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110, + 32,51,46,49,50,59,32,117,115,101,32,101,120,101,99,95, + 109,111,100,117,108,101,40,41,32,105,110,115,116,101,97,100, + 78,218,12,95,95,98,117,105,108,116,105,110,115,95,95,122, + 14,76,111,97,100,101,100,32,109,111,100,117,108,101,32,122, + 25,32,110,111,116,32,102,111,117,110,100,32,105,110,32,115, + 121,115,46,109,111,100,117,108,101,115,122,30,105,109,112,111, + 114,116,32,123,125,32,35,32,108,111,97,100,101,100,32,102, + 114,111,109,32,90,105,112,32,123,125,41,24,114,36,0,0, + 0,114,37,0,0,0,114,38,0,0,0,114,52,0,0,0, + 218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3, + 103,101,116,114,16,0,0,0,218,12,95,109,111,100,117,108, + 101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114, + 95,95,114,40,0,0,0,114,22,0,0,0,114,31,0,0, + 0,114,30,0,0,0,90,8,95,95,112,97,116,104,95,95, + 218,7,104,97,115,97,116,116,114,114,74,0,0,0,90,14, + 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8, + 95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,27, + 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114, + 114,49,0,0,0,218,16,95,118,101,114,98,111,115,101,95, + 109,101,115,115,97,103,101,41,9,114,33,0,0,0,114,42, + 0,0,0,218,3,109,115,103,114,54,0,0,0,114,55,0, + 0,0,114,44,0,0,0,90,3,109,111,100,114,14,0,0, + 0,114,72,0,0,0,115,9,0,0,0,32,32,32,32,32, + 32,32,32,32,114,11,0,0,0,218,11,108,111,97,100,95, + 109,111,100,117,108,101,122,23,122,105,112,105,109,112,111,114, + 116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,16, + 1,0,0,115,62,0,0,0,4,9,12,2,16,1,12,1, + 18,1,8,1,10,1,6,1,2,2,4,1,10,3,14,1, + 8,1,10,2,6,1,16,1,14,1,2,128,6,1,8,1, + 2,1,2,128,2,2,12,1,2,128,12,1,16,1,2,255, + 2,128,14,2,4,1,115,72,0,0,0,2,10,2,255,12, + 2,16,1,12,1,6,1,2,2,8,254,2,2,8,255,10, + 1,6,1,2,16,2,243,2,5,10,254,14,1,8,1,8, + 2,8,1,16,1,14,1,2,128,6,3,8,255,2,1,2, + 128,2,5,12,254,2,128,2,2,2,255,26,1,2,128,14, + 1,4,1,115,0,1,0,0,16,67,9,12,9,18,9,23, + 24,27,29,47,9,48,9,48,36,52,53,57,59,67,36,68, + 9,33,9,13,15,24,26,33,15,18,15,26,15,40,31,39, + 15,40,9,12,12,15,19,23,12,23,9,40,31,41,42,45, + 47,59,31,60,9,40,19,31,32,40,19,41,13,16,37,40, + 13,16,13,24,25,33,13,34,26,30,9,12,9,23,9,18, + 16,25,13,42,24,40,41,45,47,55,24,56,17,21,28,47, + 28,58,59,63,59,71,73,77,28,78,17,25,33,41,32,42, + 17,20,17,29,20,27,28,31,33,47,20,48,13,48,36,48, + 17,20,17,33,13,32,13,47,48,51,48,60,62,70,72,79, + 13,80,13,80,13,17,18,22,24,27,24,36,13,37,13,37, + 13,37,0,0,9,18,9,18,9,18,17,20,17,28,29,37, + 17,38,13,18,0,0,9,86,19,22,19,30,31,39,19,40, + 13,16,13,16,0,0,9,86,16,24,9,86,9,86,9,86, + 9,86,19,30,31,85,32,40,31,85,31,85,31,85,19,86, + 13,86,9,86,0,0,9,19,9,36,37,69,71,79,81,88, + 9,89,9,89,16,19,9,19,115,23,0,0,0,172,40,65, + 21,0,193,21,9,65,30,7,193,32,5,65,38,0,193,38, + 16,65,54,7,99,2,0,0,0,0,0,0,0,0,0,0, + 0,8,0,0,0,3,0,0,0,115,64,0,0,0,9,0, + 124,0,160,0,124,1,161,1,115,8,100,1,83,0,110,12, + 35,0,4,0,116,1,121,19,1,0,1,0,1,0,89,0, + 100,1,83,0,119,0,37,0,100,2,100,3,108,2,109,3, + 125,2,1,0,124,2,124,0,124,1,131,2,83,0,41,4, + 122,204,82,101,116,117,114,110,32,116,104,101,32,82,101,115, + 111,117,114,99,101,82,101,97,100,101,114,32,102,111,114,32, + 97,32,112,97,99,107,97,103,101,32,105,110,32,97,32,122, + 105,112,32,102,105,108,101,46,10,10,32,32,32,32,32,32, + 32,32,73,102,32,39,102,117,108,108,110,97,109,101,39,32, + 105,115,32,97,32,112,97,99,107,97,103,101,32,119,105,116, + 104,105,110,32,116,104,101,32,122,105,112,32,102,105,108,101, + 44,32,114,101,116,117,114,110,32,116,104,101,10,32,32,32, + 32,32,32,32,32,39,82,101,115,111,117,114,99,101,82,101, + 97,100,101,114,39,32,111,98,106,101,99,116,32,102,111,114, + 32,116,104,101,32,112,97,99,107,97,103,101,46,32,32,79, + 116,104,101,114,119,105,115,101,32,114,101,116,117,114,110,32, + 78,111,110,101,46,10,32,32,32,32,32,32,32,32,78,114, + 0,0,0,0,41,1,218,9,90,105,112,82,101,97,100,101, + 114,41,4,114,47,0,0,0,114,3,0,0,0,90,17,105, + 109,112,111,114,116,108,105,98,46,114,101,97,100,101,114,115, + 114,87,0,0,0,41,3,114,33,0,0,0,114,42,0,0, + 0,114,87,0,0,0,115,3,0,0,0,32,32,32,114,11, + 0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,99, + 101,95,114,101,97,100,101,114,122,31,122,105,112,105,109,112, + 111,114,116,101,114,46,103,101,116,95,114,101,115,111,117,114, + 99,101,95,114,101,97,100,101,114,59,1,0,0,115,22,0, + 0,0,2,6,10,1,4,1,2,255,2,128,12,2,6,1, + 2,255,2,128,12,2,10,1,115,20,0,0,0,2,10,8, + 253,8,1,2,128,2,2,2,255,16,1,2,128,12,1,10, + 1,115,64,0,0,0,9,24,20,24,20,45,36,44,20,45, + 13,28,24,28,24,28,13,28,0,0,9,24,16,30,9,24, + 9,24,9,24,9,24,20,24,20,24,20,24,9,24,0,0, + 9,48,9,48,9,48,9,48,9,48,9,48,16,25,26,30, + 32,40,16,41,9,41,115,12,0,0,0,129,5,9,0,137, + 7,20,7,147,1,20,7,99,1,0,0,0,0,0,0,0, + 0,0,0,0,8,0,0,0,3,0,0,0,115,74,0,0, + 0,9,0,116,0,124,0,106,1,131,1,124,0,95,2,124, + 0,106,2,116,3,124,0,106,1,60,0,100,1,83,0,35, + 0,4,0,116,4,121,35,1,0,1,0,1,0,116,3,160, + 5,124,0,106,1,100,1,161,2,1,0,100,1,124,0,95, + 2,89,0,100,1,83,0,119,0,37,0,41,2,122,41,82, + 101,108,111,97,100,32,116,104,101,32,102,105,108,101,32,100, + 97,116,97,32,111,102,32,116,104,101,32,97,114,99,104,105, + 118,101,32,112,97,116,104,46,78,41,6,114,28,0,0,0, + 114,30,0,0,0,114,29,0,0,0,114,26,0,0,0,114, + 3,0,0,0,218,3,112,111,112,169,1,114,33,0,0,0, + 115,1,0,0,0,32,114,11,0,0,0,218,17,105,110,118, + 97,108,105,100,97,116,101,95,99,97,99,104,101,115,122,29, + 122,105,112,105,109,112,111,114,116,101,114,46,105,110,118,97, + 108,105,100,97,116,101,95,99,97,99,104,101,115,74,1,0, + 0,115,18,0,0,0,2,2,12,1,16,1,2,128,12,1, + 14,1,12,1,2,254,2,128,115,20,0,0,0,2,7,12, + 252,16,1,2,128,2,3,2,254,8,2,14,255,14,1,2, + 128,115,74,0,0,0,9,31,27,42,43,47,43,55,27,56, + 13,17,13,24,50,54,50,61,13,33,34,38,34,46,13,47, + 13,47,13,47,0,0,9,31,16,30,9,31,9,31,9,31, + 9,31,13,33,13,57,38,42,38,50,52,56,13,57,13,57, + 27,31,13,17,13,24,13,24,13,24,13,24,9,31,0,0, + 115,12,0,0,0,129,12,15,0,143,17,36,7,163,1,36, + 7,99,1,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,3,0,0,0,115,24,0,0,0,100,1,124,0,106, + 0,155,0,116,1,155,0,124,0,106,2,155,0,100,2,157, + 5,83,0,41,3,78,122,21,60,122,105,112,105,109,112,111, + 114,116,101,114,32,111,98,106,101,99,116,32,34,122,2,34, + 62,41,3,114,30,0,0,0,114,21,0,0,0,114,32,0, + 0,0,114,90,0,0,0,115,1,0,0,0,32,114,11,0, + 0,0,218,8,95,95,114,101,112,114,95,95,122,20,122,105, + 112,105,109,112,111,114,116,101,114,46,95,95,114,101,112,114, + 95,95,84,1,0,0,243,2,0,0,0,24,1,114,93,0, + 0,0,115,24,0,0,0,16,79,40,44,40,52,16,79,54, + 62,16,79,64,68,64,75,16,79,16,79,16,79,9,79,114, + 10,0,0,0,169,1,78,41,17,114,6,0,0,0,114,7, + 0,0,0,114,8,0,0,0,218,7,95,95,100,111,99,95, + 95,114,35,0,0,0,114,45,0,0,0,114,46,0,0,0, + 114,50,0,0,0,114,56,0,0,0,114,64,0,0,0,114, + 65,0,0,0,114,73,0,0,0,114,47,0,0,0,114,86, + 0,0,0,114,88,0,0,0,114,91,0,0,0,114,92,0, + 0,0,114,9,0,0,0,114,10,0,0,0,114,11,0,0, + 0,114,4,0,0,0,114,4,0,0,0,46,0,0,0,115, + 30,0,0,0,8,0,4,1,6,17,8,46,8,37,8,16, + 6,27,6,10,6,21,6,12,6,26,6,13,6,43,6,15, + 10,10,115,38,0,0,0,8,210,2,59,2,197,6,102,2, + 8,6,32,2,5,6,14,2,2,6,25,6,9,6,20,6, + 13,6,25,6,13,6,44,6,15,6,10,10,4,115,100,0, + 0,0,1,1,1,1,1,1,1,1,5,8,1,1,5,36, + 5,36,5,36,42,46,5,24,5,24,5,24,42,46,5,51, + 5,51,5,51,42,46,5,28,5,28,5,28,5,20,5,20, + 5,20,5,50,5,50,5,50,5,23,5,23,5,23,5,59, + 5,59,5,59,5,18,5,18,5,18,5,19,5,19,5,19, + 5,41,5,41,5,41,5,31,5,31,5,31,5,79,5,79, + 5,79,5,79,5,79,114,10,0,0,0,122,12,95,95,105, + 110,105,116,95,95,46,112,121,99,84,114,69,0,0,0,70, + 41,3,122,4,46,112,121,99,84,70,41,3,114,70,0,0, + 0,70,70,99,2,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,3,0,0,0,115,20,0,0,0,124,0,106, + 0,124,1,160,1,100,1,161,1,100,2,25,0,23,0,83, + 0,41,3,78,218,1,46,233,2,0,0,0,41,2,114,32, + 0,0,0,218,10,114,112,97,114,116,105,116,105,111,110,41, + 2,114,33,0,0,0,114,42,0,0,0,115,2,0,0,0, + 32,32,114,11,0,0,0,114,40,0,0,0,114,40,0,0, + 0,102,1,0,0,243,2,0,0,0,20,1,114,99,0,0, + 0,115,20,0,0,0,12,16,12,23,26,34,26,50,46,49, + 26,50,51,52,26,53,12,53,5,53,114,10,0,0,0,99, + 2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, + 3,0,0,0,115,18,0,0,0,124,1,116,0,23,0,125, + 2,124,2,124,0,106,1,118,0,83,0,114,94,0,0,0, + 41,2,114,21,0,0,0,114,29,0,0,0,41,3,114,33, + 0,0,0,114,14,0,0,0,90,7,100,105,114,112,97,116, + 104,115,3,0,0,0,32,32,32,114,11,0,0,0,114,41, + 0,0,0,114,41,0,0,0,106,1,0,0,243,4,0,0, + 0,8,4,10,2,114,100,0,0,0,115,18,0,0,0,15, + 19,22,30,15,30,5,12,12,19,23,27,23,34,12,34,5, + 34,114,10,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,3,0,0,0,115,56,0,0,0, + 116,0,124,0,124,1,131,2,125,2,116,1,68,0,93,18, + 92,3,125,3,125,4,125,5,124,2,124,3,23,0,125,6, + 124,6,124,0,106,2,118,0,114,25,124,5,2,0,1,0, + 83,0,113,7,100,0,83,0,114,94,0,0,0,41,3,114, + 40,0,0,0,218,16,95,122,105,112,95,115,101,97,114,99, + 104,111,114,100,101,114,114,29,0,0,0,41,7,114,33,0, + 0,0,114,42,0,0,0,114,14,0,0,0,218,6,115,117, + 102,102,105,120,218,10,105,115,98,121,116,101,99,111,100,101, + 114,55,0,0,0,114,72,0,0,0,115,7,0,0,0,32, + 32,32,32,32,32,32,114,11,0,0,0,114,39,0,0,0, + 114,39,0,0,0,115,1,0,0,115,14,0,0,0,10,1, + 14,1,8,1,10,1,8,1,2,255,4,2,115,16,0,0, + 0,10,1,2,1,4,3,8,253,8,1,8,1,12,1,4, + 1,115,56,0,0,0,12,28,29,33,35,43,12,44,5,9, + 42,58,5,29,5,29,9,38,9,15,17,27,29,38,20,24, + 27,33,20,33,9,17,12,20,24,28,24,35,12,35,9,29, + 20,29,13,29,13,29,13,29,9,29,12,16,12,16,114,10, + 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, + 9,0,0,0,3,0,0,0,115,240,4,0,0,9,0,116, + 0,106,1,124,0,131,1,125,1,110,18,35,0,4,0,116, + 2,121,23,1,0,1,0,1,0,116,3,100,1,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,119,0,37,0,124, + 1,53,0,1,0,9,0,124,1,160,4,116,5,11,0,100, + 3,161,2,1,0,124,1,160,6,161,0,125,2,124,1,160, + 7,116,5,161,1,125,3,110,18,35,0,4,0,116,2,121, + 62,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, + 2,124,0,100,2,141,2,130,1,119,0,37,0,116,8,124, + 3,131,1,116,5,107,3,114,79,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,124,3,100,0,100, + 5,133,2,25,0,116,9,107,3,114,204,9,0,124,1,160, + 4,100,6,100,3,161,2,1,0,124,1,160,6,161,0,125, + 4,110,18,35,0,4,0,116,2,121,115,1,0,1,0,1, 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,37,0,116,8,124,3,131,1,116,5,107,3,114, - 79,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,124,3,100,0,100,5,133,2,25,0,116,9,107, - 3,114,204,9,0,124,1,160,4,100,6,100,3,161,2,1, - 0,124,1,160,6,161,0,125,4,110,18,35,0,4,0,116, - 2,144,2,121,121,1,0,1,0,1,0,116,3,100,4,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,37,0,116, - 10,124,4,116,11,24,0,116,5,24,0,100,6,131,2,125, - 5,9,0,124,1,160,4,124,5,161,1,1,0,124,1,160, - 7,161,0,125,6,110,18,35,0,4,0,116,2,144,2,121, - 120,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, - 2,124,0,100,2,141,2,130,1,37,0,124,6,160,12,116, - 9,161,1,125,7,124,7,100,6,107,0,114,173,116,3,100, - 7,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, - 6,124,7,124,7,116,5,23,0,133,2,25,0,125,3,116, - 8,124,3,131,1,116,5,107,3,114,196,116,3,100,8,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,4,116, - 8,124,6,131,1,24,0,124,7,23,0,125,2,116,13,124, - 3,100,9,100,10,133,2,25,0,131,1,125,8,116,13,124, - 3,100,10,100,11,133,2,25,0,131,1,125,9,124,2,124, - 8,107,0,114,233,116,3,100,12,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,124,2,124,9,107,0,114,246,116, - 3,100,13,124,0,155,2,157,2,124,0,100,2,141,2,130, - 1,124,2,124,8,56,0,125,2,124,2,124,9,24,0,125, - 10,124,10,100,6,107,0,144,1,114,12,116,3,100,14,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,105,0,125, - 11,100,6,125,12,9,0,124,1,160,4,124,2,161,1,1, - 0,110,18,35,0,4,0,116,2,144,2,121,119,1,0,1, - 0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,37,0,9,0,124,1,160,7,100,16,161, - 1,125,3,116,8,124,3,131,1,100,5,107,0,144,1,114, - 58,116,14,100,17,131,1,130,1,124,3,100,0,100,5,133, - 2,25,0,100,18,107,3,144,1,114,69,144,2,113,88,116, - 8,124,3,131,1,100,16,107,3,144,1,114,80,116,14,100, - 17,131,1,130,1,116,15,124,3,100,19,100,20,133,2,25, - 0,131,1,125,13,116,15,124,3,100,20,100,9,133,2,25, - 0,131,1,125,14,116,15,124,3,100,9,100,21,133,2,25, - 0,131,1,125,15,116,15,124,3,100,21,100,10,133,2,25, - 0,131,1,125,16,116,13,124,3,100,10,100,11,133,2,25, - 0,131,1,125,17,116,13,124,3,100,11,100,22,133,2,25, - 0,131,1,125,18,116,13,124,3,100,22,100,23,133,2,25, - 0,131,1,125,4,116,15,124,3,100,23,100,24,133,2,25, - 0,131,1,125,19,116,15,124,3,100,24,100,25,133,2,25, - 0,131,1,125,20,116,15,124,3,100,25,100,26,133,2,25, - 0,131,1,125,21,116,13,124,3,100,27,100,16,133,2,25, - 0,131,1,125,22,124,19,124,20,23,0,124,21,23,0,125, - 8,124,22,124,9,107,4,144,1,114,188,116,3,100,28,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,22,124, - 10,55,0,125,22,9,0,124,1,160,7,124,19,161,1,125, - 23,110,18,35,0,4,0,116,2,144,2,121,118,1,0,1, - 0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,37,0,116,8,124,23,131,1,124,19,107, - 3,144,1,114,233,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,9,0,116,8,124,1,160,7,124, - 8,124,19,24,0,161,1,131,1,124,8,124,19,24,0,107, - 3,144,2,114,1,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,110,18,35,0,4,0,116,2,144, - 2,121,117,1,0,1,0,1,0,116,3,100,4,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,37,0,124,13,100, - 29,64,0,144,2,114,30,124,23,160,16,161,0,125,23,110, - 26,9,0,124,23,160,16,100,30,161,1,125,23,110,19,35, - 0,4,0,116,17,144,2,121,116,1,0,1,0,1,0,124, - 23,160,16,100,31,161,1,160,18,116,19,161,1,125,23,89, - 0,110,1,37,0,124,23,160,20,100,32,116,21,161,2,125, + 2,130,1,119,0,37,0,116,10,124,4,116,11,24,0,116, + 5,24,0,100,6,131,2,125,5,9,0,124,1,160,4,124, + 5,161,1,1,0,124,1,160,7,161,0,125,6,110,18,35, + 0,4,0,116,2,121,153,1,0,1,0,1,0,116,3,100, + 4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,119, + 0,37,0,124,6,160,12,116,9,161,1,125,7,124,7,100, + 6,107,0,114,173,116,3,100,7,124,0,155,2,157,2,124, + 0,100,2,141,2,130,1,124,6,124,7,124,7,116,5,23, + 0,133,2,25,0,125,3,116,8,124,3,131,1,116,5,107, + 3,114,196,116,3,100,8,124,0,155,2,157,2,124,0,100, + 2,141,2,130,1,124,4,116,8,124,6,131,1,24,0,124, + 7,23,0,125,2,116,13,124,3,100,9,100,10,133,2,25, + 0,131,1,125,8,116,13,124,3,100,10,100,11,133,2,25, + 0,131,1,125,9,124,2,124,8,107,0,114,233,116,3,100, + 12,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, + 2,124,9,107,0,114,246,116,3,100,13,124,0,155,2,157, + 2,124,0,100,2,141,2,130,1,124,2,124,8,56,0,125, + 2,124,2,124,9,24,0,125,10,124,10,100,6,107,0,144, + 1,114,12,116,3,100,14,124,0,155,2,157,2,124,0,100, + 2,141,2,130,1,105,0,125,11,100,6,125,12,9,0,124, + 1,160,4,124,2,161,1,1,0,110,19,35,0,4,0,116, + 2,144,1,121,40,1,0,1,0,1,0,116,3,100,4,124, + 0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,37, + 0,9,0,124,1,160,7,100,16,161,1,125,3,116,8,124, + 3,131,1,100,5,107,0,144,1,114,59,116,14,100,17,131, + 1,130,1,124,3,100,0,100,5,133,2,25,0,100,18,107, + 3,144,1,114,70,144,2,113,92,116,8,124,3,131,1,100, + 16,107,3,144,1,114,81,116,14,100,17,131,1,130,1,116, + 15,124,3,100,19,100,20,133,2,25,0,131,1,125,13,116, + 15,124,3,100,20,100,9,133,2,25,0,131,1,125,14,116, + 15,124,3,100,9,100,21,133,2,25,0,131,1,125,15,116, + 15,124,3,100,21,100,10,133,2,25,0,131,1,125,16,116, + 13,124,3,100,10,100,11,133,2,25,0,131,1,125,17,116, + 13,124,3,100,11,100,22,133,2,25,0,131,1,125,18,116, + 13,124,3,100,22,100,23,133,2,25,0,131,1,125,4,116, + 15,124,3,100,23,100,24,133,2,25,0,131,1,125,19,116, + 15,124,3,100,24,100,25,133,2,25,0,131,1,125,20,116, + 15,124,3,100,25,100,26,133,2,25,0,131,1,125,21,116, + 13,124,3,100,27,100,16,133,2,25,0,131,1,125,22,124, + 19,124,20,23,0,124,21,23,0,125,8,124,22,124,9,107, + 4,144,1,114,189,116,3,100,28,124,0,155,2,157,2,124, + 0,100,2,141,2,130,1,124,22,124,10,55,0,125,22,9, + 0,124,1,160,7,124,19,161,1,125,23,110,19,35,0,4, + 0,116,2,144,1,121,217,1,0,1,0,1,0,116,3,100, + 4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,119, + 0,37,0,116,8,124,23,131,1,124,19,107,3,144,1,114, + 235,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, + 2,130,1,9,0,116,8,124,1,160,7,124,8,124,19,24, + 0,161,1,131,1,124,8,124,19,24,0,107,3,144,2,114, + 3,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, + 2,130,1,110,19,35,0,4,0,116,2,144,2,121,21,1, + 0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,124, + 0,100,2,141,2,130,1,119,0,37,0,124,13,100,29,64, + 0,144,2,114,33,124,23,160,16,161,0,125,23,110,27,9, + 0,124,23,160,16,100,30,161,1,125,23,110,20,35,0,4, + 0,116,17,144,2,121,58,1,0,1,0,1,0,124,23,160, + 16,100,31,161,1,160,18,116,19,161,1,125,23,89,0,110, + 2,119,0,37,0,124,23,160,20,100,32,116,21,161,2,125, 23,116,22,106,23,124,0,124,23,131,2,125,24,124,24,124, 14,124,18,124,4,124,22,124,15,124,16,124,17,102,8,125, 25,124,25,124,11,124,23,60,0,124,12,100,33,55,0,125, - 12,144,1,113,42,9,0,100,0,4,0,4,0,131,3,1, - 0,110,12,35,0,49,0,144,2,115,101,119,4,37,0,1, + 12,144,1,113,43,9,0,100,0,4,0,4,0,131,3,1, + 0,110,12,35,0,49,0,144,2,115,105,119,4,37,0,1, 0,1,0,1,0,89,0,1,0,1,0,116,24,106,25,100, - 34,124,12,124,0,131,3,1,0,124,11,83,0,119,0,119, - 0,119,0,119,0,119,0,119,0,119,0,119,0,41,35,78, + 34,124,12,124,0,131,3,1,0,124,11,83,0,41,35,78, 122,21,99,97,110,39,116,32,111,112,101,110,32,90,105,112, 32,102,105,108,101,58,32,114,13,0,0,0,114,97,0,0, 0,250,21,99,97,110,39,116,32,114,101,97,100,32,90,105, @@ -884,62 +882,61 @@ const unsigned char _Py_M__zipimport[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,32,32,32,32,32,32,32,32,114,11,0,0,0,114,28, 0,0,0,114,28,0,0,0,146,1,0,0,115,18,1,0, - 0,2,1,12,1,2,128,14,1,18,1,2,128,6,2,2, - 1,14,1,8,1,12,1,2,128,14,1,18,1,2,128,12, - 1,18,1,16,1,2,3,12,1,10,1,2,128,14,1,10, - 1,2,1,6,255,2,128,8,2,2,1,2,255,2,1,4, - 255,2,2,10,1,10,1,2,128,14,1,10,1,2,1,6, - 255,2,128,10,2,8,1,10,1,2,1,6,255,16,2,12, - 1,10,1,2,1,6,255,16,2,16,2,16,1,8,1,18, - 1,8,1,18,1,8,1,8,1,10,1,18,1,4,2,4, - 2,2,1,12,1,2,128,14,1,18,1,2,128,2,1,10, - 1,14,1,8,1,18,2,4,1,14,1,8,1,16,1,16, - 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, - 1,16,1,12,1,10,1,18,1,8,1,2,2,12,1,2, - 128,14,1,18,1,2,128,14,1,18,1,2,4,28,1,18, - 1,2,255,2,128,14,2,18,1,2,128,10,2,10,2,2, - 3,12,1,2,128,14,1,20,1,2,128,12,2,12,1,20, + 0,2,1,12,1,2,128,12,1,18,1,2,255,2,128,6, + 3,2,1,14,1,8,1,12,1,2,128,12,1,18,1,2, + 255,2,128,12,2,18,1,16,1,2,3,12,1,10,1,2, + 128,12,1,10,1,2,1,6,255,2,255,2,128,8,3,2, + 1,2,255,2,1,4,255,2,2,10,1,10,1,2,128,12, + 1,10,1,2,1,6,255,2,255,2,128,10,3,8,1,10, + 1,2,1,6,255,16,2,12,1,10,1,2,1,6,255,16, + 2,16,2,16,1,8,1,18,1,8,1,18,1,8,1,8, + 1,10,1,18,1,4,2,4,2,2,1,12,1,2,128,14, + 1,18,1,2,255,2,128,2,2,10,1,14,1,8,1,18, + 2,4,1,14,1,8,1,16,1,16,1,16,1,16,1,16, + 1,16,1,16,1,16,1,16,1,16,1,16,1,12,1,10, + 1,18,1,8,1,2,2,12,1,2,128,14,1,18,1,2, + 255,2,128,14,2,18,1,2,4,28,1,18,1,2,255,2, + 128,14,2,18,1,2,255,2,128,10,3,10,2,2,3,12, + 1,2,128,14,1,20,1,2,255,2,128,12,3,12,1,20, 1,8,1,8,1,4,202,2,6,22,196,2,128,12,0,14, - 109,4,1,2,247,2,246,2,246,2,227,2,227,2,248,2, - 246,2,248,115,34,1,0,0,2,4,12,254,2,128,2,2, + 109,4,1,115,18,1,0,0,2,4,12,254,2,128,2,2, 2,255,28,1,2,128,2,2,4,108,2,154,14,252,8,1, 12,1,2,128,2,2,2,255,28,1,2,128,10,1,20,1, 14,1,2,25,2,239,12,252,10,1,2,128,2,3,2,254, - 10,2,10,255,8,1,2,128,8,1,8,1,2,255,2,7, - 10,252,10,1,2,128,2,3,2,254,10,2,10,255,8,1, + 8,2,10,255,10,1,2,128,8,1,8,1,2,255,2,7, + 10,252,10,1,2,128,2,3,2,254,8,2,10,255,10,1, 2,128,10,1,6,1,2,2,10,255,8,1,16,1,10,1, 2,2,10,255,8,1,16,1,16,2,16,1,6,1,20,1, 6,1,20,1,8,1,8,1,6,1,22,1,4,2,4,2, - 2,4,12,254,2,128,2,2,2,255,28,1,2,128,2,1, + 2,4,12,254,2,128,2,2,2,255,30,1,2,128,2,1, 10,1,10,1,12,1,14,2,8,1,10,1,12,1,16,1, 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, 16,1,16,1,12,1,6,1,22,1,8,1,2,5,12,254, - 2,128,2,2,2,255,28,1,2,128,10,1,22,1,2,8, - 24,253,24,1,2,128,2,2,2,255,28,1,2,128,6,2, - 4,8,10,250,2,6,12,254,2,128,2,2,2,255,30,1, + 2,128,2,2,2,255,30,1,2,128,10,1,22,1,2,8, + 24,253,24,1,2,128,2,2,2,255,30,1,2,128,6,2, + 4,8,10,250,2,6,12,254,2,128,2,2,2,255,32,1, 2,128,12,2,12,1,20,1,8,1,8,1,4,202,2,6, - 22,48,2,128,12,0,14,1,4,1,2,248,2,246,2,246, - 2,227,2,228,2,248,2,245,2,248,115,248,4,0,0,5, + 22,48,2,128,12,0,14,1,4,1,115,240,4,0,0,5, 80,14,17,14,27,28,35,14,36,9,11,9,11,0,0,5, - 80,12,19,5,80,5,80,5,80,5,80,5,80,15,29,30, - 65,31,38,30,65,30,65,72,79,15,80,15,80,9,80,0, + 80,12,19,5,80,5,80,5,80,5,80,15,29,30,65,31, + 38,30,65,30,65,72,79,15,80,15,80,9,80,5,80,0, 0,10,12,5,23,5,23,9,84,13,15,13,46,22,42,21, 42,44,45,13,46,13,46,31,33,31,40,31,40,13,28,22, 24,22,51,30,50,22,51,13,19,13,19,0,0,9,84,16, - 23,9,84,9,84,9,84,9,84,9,84,19,33,34,69,35, - 42,34,69,34,69,76,83,19,84,19,84,13,84,0,0,12, + 23,9,84,9,84,9,84,9,84,19,33,34,69,35,42,34, + 69,34,69,76,83,19,84,19,84,13,84,9,84,0,0,12, 15,16,22,12,23,27,47,12,47,9,84,19,33,34,69,35, 42,34,69,34,69,76,83,19,84,19,84,13,84,12,18,19, 21,20,21,19,21,12,22,26,44,12,44,9,58,13,51,17, 19,17,30,25,26,28,29,17,30,17,30,29,31,29,38,29, 38,17,26,17,26,0,0,13,51,20,27,13,51,13,51,13, - 51,13,51,13,51,23,37,38,73,39,46,38,73,38,73,43, - 50,23,51,23,51,17,51,0,0,33,36,37,46,49,64,37, + 51,13,51,23,37,38,73,39,46,38,73,38,73,43,50,23, + 51,23,51,17,51,13,51,0,0,33,36,37,46,49,64,37, 64,37,57,37,57,59,60,33,61,13,30,13,51,17,19,17, 43,25,42,17,43,17,43,24,26,24,33,24,33,17,21,17, - 21,0,0,13,51,20,27,13,51,13,51,13,51,13,51,13, - 51,23,37,38,73,39,46,38,73,38,73,43,50,23,51,23, - 51,17,51,0,0,19,23,19,49,30,48,19,49,13,16,16, + 21,0,0,13,51,20,27,13,51,13,51,13,51,13,51,23, + 37,38,73,39,46,38,73,38,73,43,50,23,51,23,51,17, + 51,13,51,0,0,19,23,19,49,30,48,19,49,13,16,16, 19,22,23,16,23,13,51,23,37,38,68,39,46,38,68,38, 68,43,50,23,51,23,51,17,51,22,26,27,30,31,34,35, 55,31,55,27,55,22,56,13,19,16,19,20,26,16,27,31, @@ -956,156 +953,153 @@ const unsigned char _Py_M__zipimport[] = { 100,19,101,19,101,13,101,17,19,9,14,17,18,9,14,9, 84,13,15,13,37,21,36,13,37,13,37,13,37,0,0,9, 84,16,23,9,84,9,84,9,84,9,84,9,84,19,33,34, - 69,35,42,34,69,34,69,76,83,19,84,19,84,13,84,0, - 0,15,19,22,24,22,33,30,32,22,33,13,19,16,19,20, - 26,16,27,30,31,16,31,13,62,13,62,23,31,32,61,23, - 62,17,62,16,22,23,25,24,25,23,25,16,26,30,43,16, - 43,13,22,13,22,17,22,17,22,16,19,20,26,16,27,31, - 33,16,33,13,62,13,62,23,31,32,61,23,62,17,62,21, - 35,36,42,43,44,45,47,43,47,36,48,21,49,13,18,24, - 38,39,45,46,48,49,51,46,51,39,52,24,53,13,21,20, - 34,35,41,42,44,45,47,42,47,35,48,20,49,13,17,20, - 34,35,41,42,44,45,47,42,47,35,48,20,49,13,17,19, - 33,34,40,41,43,44,46,41,46,34,47,19,48,13,16,25, - 39,40,46,47,49,50,52,47,52,40,53,25,54,13,22,25, - 39,40,46,47,49,50,52,47,52,40,53,25,54,13,22,25, - 39,40,46,47,49,50,52,47,52,40,53,25,54,13,22,26, - 40,41,47,48,50,51,53,48,53,41,54,26,55,13,23,28, - 42,43,49,50,52,53,55,50,55,43,56,28,57,13,25,27, - 41,42,48,49,51,52,54,49,54,42,55,27,56,13,24,27, - 36,39,49,27,49,52,64,27,64,13,24,16,27,30,43,16, - 43,13,92,13,92,23,37,38,77,39,46,38,77,38,77,84, - 91,23,92,23,92,17,92,13,24,28,38,13,38,13,24,13, - 88,24,26,24,42,32,41,24,42,17,21,17,21,0,0,13, - 88,20,27,13,88,13,88,13,88,13,88,13,88,23,37,38, - 73,39,46,38,73,38,73,80,87,23,88,23,88,17,88,0, - 0,16,19,20,24,16,25,29,38,16,38,13,88,13,88,23, + 69,35,42,34,69,34,69,76,83,19,84,19,84,13,84,9, + 84,0,0,15,19,22,24,22,33,30,32,22,33,13,19,16, + 19,20,26,16,27,30,31,16,31,13,62,13,62,23,31,32, + 61,23,62,17,62,16,22,23,25,24,25,23,25,16,26,30, + 43,16,43,13,22,13,22,17,22,17,22,16,19,20,26,16, + 27,31,33,16,33,13,62,13,62,23,31,32,61,23,62,17, + 62,21,35,36,42,43,44,45,47,43,47,36,48,21,49,13, + 18,24,38,39,45,46,48,49,51,46,51,39,52,24,53,13, + 21,20,34,35,41,42,44,45,47,42,47,35,48,20,49,13, + 17,20,34,35,41,42,44,45,47,42,47,35,48,20,49,13, + 17,19,33,34,40,41,43,44,46,41,46,34,47,19,48,13, + 16,25,39,40,46,47,49,50,52,47,52,40,53,25,54,13, + 22,25,39,40,46,47,49,50,52,47,52,40,53,25,54,13, + 22,25,39,40,46,47,49,50,52,47,52,40,53,25,54,13, + 22,26,40,41,47,48,50,51,53,48,53,41,54,26,55,13, + 23,28,42,43,49,50,52,53,55,50,55,43,56,28,57,13, + 25,27,41,42,48,49,51,52,54,49,54,42,55,27,56,13, + 24,27,36,39,49,27,49,52,64,27,64,13,24,16,27,30, + 43,16,43,13,92,13,92,23,37,38,77,39,46,38,77,38, + 77,84,91,23,92,23,92,17,92,13,24,28,38,13,38,13, + 24,13,88,24,26,24,42,32,41,24,42,17,21,17,21,0, + 0,13,88,20,27,13,88,13,88,13,88,13,88,13,88,23, 37,38,73,39,46,38,73,38,73,80,87,23,88,23,88,17, - 88,13,88,20,23,24,26,24,56,32,43,46,55,32,55,24, - 56,20,57,61,72,75,84,61,84,20,84,17,92,17,92,27, - 41,42,77,43,50,42,77,42,77,84,91,27,92,27,92,21, - 92,17,92,0,0,13,88,20,27,13,88,13,88,13,88,13, + 88,13,88,0,0,16,19,20,24,16,25,29,38,16,38,13, 88,13,88,23,37,38,73,39,46,38,73,38,73,80,87,23, - 88,23,88,17,88,0,0,16,21,24,29,16,29,13,72,13, - 72,24,28,24,37,24,37,17,21,17,21,17,72,28,32,28, - 48,40,47,28,48,21,25,21,25,0,0,17,72,24,42,17, - 72,17,72,17,72,17,72,17,72,28,32,28,49,40,48,28, - 49,28,72,60,71,28,72,21,25,21,25,21,25,0,0,20, - 24,20,47,33,36,38,46,20,47,13,17,20,39,20,50,51, - 58,60,64,20,65,13,17,18,22,24,32,34,43,45,54,56, - 67,69,73,75,79,81,84,17,85,13,14,27,28,13,18,19, - 23,13,24,13,18,22,23,13,23,13,18,15,19,15,19,17, - 22,5,23,5,23,5,23,5,23,5,23,5,23,5,23,5, - 23,5,23,5,23,5,23,0,0,5,23,5,23,5,23,5, - 23,5,23,5,23,5,15,5,32,33,68,70,75,77,84,5, - 85,5,85,12,17,5,17,17,72,13,88,13,88,9,84,13, - 51,13,51,9,84,5,80,115,235,0,0,0,129,5,7,0, - 135,17,24,7,155,1,73,31,3,157,16,46,2,173,1,73, - 31,3,174,17,63,9,191,24,73,31,3,193,24,10,65,35, - 2,193,34,1,73,31,3,193,35,17,65,52,9,193,52,10, - 73,31,3,193,63,9,66,9,2,194,8,1,73,31,3,194, - 9,17,66,26,9,194,26,65,54,73,31,3,196,17,5,68, - 23,2,196,22,1,73,31,3,196,23,17,68,40,9,196,40, - 66,24,73,31,3,199,1,5,71,7,2,199,6,1,73,31, - 3,199,7,17,71,24,9,199,24,17,73,31,3,199,42,23, - 72,2,2,200,1,1,73,31,3,200,2,17,72,19,9,200, - 19,11,73,31,3,200,31,5,72,37,2,200,36,1,73,31, - 3,200,37,16,72,55,9,200,53,35,73,31,3,201,31,5, - 73,36,11,201,37,3,73,36,11,201,52,1,72,55,9,201, - 53,1,72,19,9,201,54,1,71,24,9,201,55,1,68,40, - 9,201,56,1,66,26,9,201,57,1,65,52,9,201,58,1, - 63,9,201,59,1,24,7,117,190,1,0,0,0,1,2,3, - 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, - 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35, - 36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51, - 52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67, - 68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83, - 84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, - 100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115, - 116,117,118,119,120,121,122,123,124,125,126,127,195,135,195,188, - 195,169,195,162,195,164,195,160,195,165,195,167,195,170,195,171, - 195,168,195,175,195,174,195,172,195,132,195,133,195,137,195,166, - 195,134,195,180,195,182,195,178,195,187,195,185,195,191,195,150, - 195,156,194,162,194,163,194,165,226,130,167,198,146,195,161,195, - 173,195,179,195,186,195,177,195,145,194,170,194,186,194,191,226, - 140,144,194,172,194,189,194,188,194,161,194,171,194,187,226,150, - 145,226,150,146,226,150,147,226,148,130,226,148,164,226,149,161, - 226,149,162,226,149,150,226,149,149,226,149,163,226,149,145,226, - 149,151,226,149,157,226,149,156,226,149,155,226,148,144,226,148, - 148,226,148,180,226,148,172,226,148,156,226,148,128,226,148,188, - 226,149,158,226,149,159,226,149,154,226,149,148,226,149,169,226, - 149,166,226,149,160,226,149,144,226,149,172,226,149,167,226,149, - 168,226,149,164,226,149,165,226,149,153,226,149,152,226,149,146, - 226,149,147,226,149,171,226,149,170,226,148,152,226,148,140,226, - 150,136,226,150,132,226,150,140,226,150,144,226,150,128,206,177, - 195,159,206,147,207,128,206,163,207,131,194,181,207,132,206,166, - 206,152,206,169,206,180,226,136,158,207,134,206,181,226,136,169, - 226,137,161,194,177,226,137,165,226,137,164,226,140,160,226,140, - 161,195,183,226,137,136,194,176,226,136,153,194,183,226,136,154, - 226,129,191,194,178,226,150,160,194,160,99,0,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,115, - 110,0,0,0,116,0,114,11,116,1,106,2,100,1,131,1, - 1,0,116,3,100,2,131,1,130,1,100,3,97,0,9,0, - 100,4,100,5,108,4,109,5,125,0,1,0,110,17,35,0, - 4,0,116,6,121,54,1,0,1,0,1,0,116,1,106,2, - 100,1,131,1,1,0,116,3,100,2,131,1,130,1,37,0, - 9,0,100,6,97,0,110,5,35,0,100,6,97,0,119,0, - 37,0,116,1,106,2,100,7,131,1,1,0,124,0,83,0, - 119,0,41,8,78,122,27,122,105,112,105,109,112,111,114,116, - 58,32,122,108,105,98,32,85,78,65,86,65,73,76,65,66, - 76,69,250,41,99,97,110,39,116,32,100,101,99,111,109,112, - 114,101,115,115,32,100,97,116,97,59,32,122,108,105,98,32, - 110,111,116,32,97,118,97,105,108,97,98,108,101,84,114,0, - 0,0,0,169,1,218,10,100,101,99,111,109,112,114,101,115, - 115,70,122,25,122,105,112,105,109,112,111,114,116,58,32,122, - 108,105,98,32,97,118,97,105,108,97,98,108,101,41,7,218, - 15,95,105,109,112,111,114,116,105,110,103,95,122,108,105,98, - 114,49,0,0,0,114,84,0,0,0,114,3,0,0,0,90, - 4,122,108,105,98,114,153,0,0,0,218,9,69,120,99,101, - 112,116,105,111,110,114,152,0,0,0,115,1,0,0,0,32, - 114,11,0,0,0,218,20,95,103,101,116,95,100,101,99,111, - 109,112,114,101,115,115,95,102,117,110,99,114,156,0,0,0, - 48,2,0,0,115,36,0,0,0,4,2,10,3,8,1,4, - 2,2,1,14,1,2,128,12,1,10,1,8,1,2,128,2, - 253,6,5,2,128,8,0,10,2,4,1,2,249,115,42,0, - 0,0,2,2,2,4,10,255,8,1,4,2,2,7,14,251, - 2,128,2,3,2,254,8,2,10,255,8,1,2,128,2,253, - 6,5,2,128,8,0,10,2,4,1,2,251,115,110,0,0, - 0,8,23,5,74,9,19,9,36,37,66,9,67,9,67,15, - 29,30,73,15,74,9,74,23,27,5,20,5,32,9,36,9, - 36,9,36,9,36,9,36,9,36,9,36,0,0,5,74,12, - 21,5,74,5,74,5,74,5,74,9,19,9,36,37,66,9, - 67,9,67,15,29,30,73,15,74,9,74,0,0,9,36,27, - 32,9,24,9,24,0,0,27,32,9,24,9,32,9,32,5, - 15,5,32,33,60,5,61,5,61,12,22,5,22,5,74,115, - 24,0,0,0,142,6,21,0,148,1,42,0,149,16,37,7, - 165,1,42,0,170,4,46,7,182,1,37,7,99,2,0,0, + 88,23,88,17,88,13,88,20,23,24,26,24,56,32,43,46, + 55,32,55,24,56,20,57,61,72,75,84,61,84,20,84,17, + 92,17,92,27,41,42,77,43,50,42,77,42,77,84,91,27, + 92,27,92,21,92,17,92,0,0,13,88,20,27,13,88,13, + 88,13,88,13,88,13,88,23,37,38,73,39,46,38,73,38, + 73,80,87,23,88,23,88,17,88,13,88,0,0,16,21,24, + 29,16,29,13,72,13,72,24,28,24,37,24,37,17,21,17, + 21,17,72,28,32,28,48,40,47,28,48,21,25,21,25,0, + 0,17,72,24,42,17,72,17,72,17,72,17,72,17,72,28, + 32,28,49,40,48,28,49,28,72,60,71,28,72,21,25,21, + 25,21,25,17,72,0,0,20,24,20,47,33,36,38,46,20, + 47,13,17,20,39,20,50,51,58,60,64,20,65,13,17,18, + 22,24,32,34,43,45,54,56,67,69,73,75,79,81,84,17, + 85,13,14,27,28,13,18,19,23,13,24,13,18,22,23,13, + 23,13,18,15,19,15,19,17,22,5,23,5,23,5,23,5, + 23,5,23,5,23,5,23,5,23,5,23,5,23,5,23,0, + 0,5,23,5,23,5,23,5,23,5,23,5,23,5,15,5, + 32,33,68,70,75,77,84,5,85,5,85,12,17,5,17,115, + 201,0,0,0,129,5,7,0,135,17,24,7,155,1,73,35, + 3,157,16,46,2,173,1,73,35,3,174,17,63,9,191,24, + 73,35,3,193,24,10,65,35,2,193,34,1,73,35,3,193, + 35,17,65,52,9,193,52,10,73,35,3,193,63,9,66,9, + 2,194,8,1,73,35,3,194,9,17,66,26,9,194,26,65, + 54,73,35,3,196,17,5,68,23,2,196,22,1,73,35,3, + 196,23,18,68,41,9,196,41,66,24,73,35,3,199,2,5, + 71,8,2,199,7,1,73,35,3,199,8,18,71,26,9,199, + 26,17,73,35,3,199,44,23,72,4,2,200,3,1,73,35, + 3,200,4,18,72,22,9,200,22,11,73,35,3,200,34,5, + 72,40,2,200,39,1,73,35,3,200,40,16,72,59,9,200, + 56,2,73,35,3,200,58,1,72,59,9,200,59,33,73,35, + 3,201,35,5,73,40,11,201,41,3,73,40,11,117,190,1, + 0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13, + 14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29, + 30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45, + 46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61, + 62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77, + 78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93, + 94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109, + 110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125, + 126,127,195,135,195,188,195,169,195,162,195,164,195,160,195,165, + 195,167,195,170,195,171,195,168,195,175,195,174,195,172,195,132, + 195,133,195,137,195,166,195,134,195,180,195,182,195,178,195,187, + 195,185,195,191,195,150,195,156,194,162,194,163,194,165,226,130, + 167,198,146,195,161,195,173,195,179,195,186,195,177,195,145,194, + 170,194,186,194,191,226,140,144,194,172,194,189,194,188,194,161, + 194,171,194,187,226,150,145,226,150,146,226,150,147,226,148,130, + 226,148,164,226,149,161,226,149,162,226,149,150,226,149,149,226, + 149,163,226,149,145,226,149,151,226,149,157,226,149,156,226,149, + 155,226,148,144,226,148,148,226,148,180,226,148,172,226,148,156, + 226,148,128,226,148,188,226,149,158,226,149,159,226,149,154,226, + 149,148,226,149,169,226,149,166,226,149,160,226,149,144,226,149, + 172,226,149,167,226,149,168,226,149,164,226,149,165,226,149,153, + 226,149,152,226,149,146,226,149,147,226,149,171,226,149,170,226, + 148,152,226,148,140,226,150,136,226,150,132,226,150,140,226,150, + 144,226,150,128,206,177,195,159,206,147,207,128,206,163,207,131, + 194,181,207,132,206,166,206,152,206,169,206,180,226,136,158,207, + 134,206,181,226,136,169,226,137,161,194,177,226,137,165,226,137, + 164,226,140,160,226,140,161,195,183,226,137,136,194,176,226,136, + 153,194,183,226,136,154,226,129,191,194,178,226,150,160,194,160, + 99,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0, + 0,3,0,0,0,115,110,0,0,0,116,0,114,11,116,1, + 106,2,100,1,131,1,1,0,116,3,100,2,131,1,130,1, + 100,3,97,0,9,0,100,4,100,5,108,4,109,5,125,0, + 1,0,110,18,35,0,4,0,116,6,121,37,1,0,1,0, + 1,0,116,1,106,2,100,1,131,1,1,0,116,3,100,2, + 131,1,130,1,119,0,37,0,9,0,100,6,97,0,110,5, + 35,0,100,6,97,0,119,0,37,0,116,1,106,2,100,7, + 131,1,1,0,124,0,83,0,41,8,78,122,27,122,105,112, + 105,109,112,111,114,116,58,32,122,108,105,98,32,85,78,65, + 86,65,73,76,65,66,76,69,250,41,99,97,110,39,116,32, + 100,101,99,111,109,112,114,101,115,115,32,100,97,116,97,59, + 32,122,108,105,98,32,110,111,116,32,97,118,97,105,108,97, + 98,108,101,84,114,0,0,0,0,169,1,218,10,100,101,99, + 111,109,112,114,101,115,115,70,122,25,122,105,112,105,109,112, + 111,114,116,58,32,122,108,105,98,32,97,118,97,105,108,97, + 98,108,101,41,7,218,15,95,105,109,112,111,114,116,105,110, + 103,95,122,108,105,98,114,49,0,0,0,114,84,0,0,0, + 114,3,0,0,0,90,4,122,108,105,98,114,153,0,0,0, + 218,9,69,120,99,101,112,116,105,111,110,114,152,0,0,0, + 115,1,0,0,0,32,114,11,0,0,0,218,20,95,103,101, + 116,95,100,101,99,111,109,112,114,101,115,115,95,102,117,110, + 99,114,156,0,0,0,48,2,0,0,115,36,0,0,0,4, + 2,10,3,8,1,4,2,2,1,14,1,2,128,12,1,10, + 1,8,1,2,254,2,128,2,255,6,5,2,128,8,0,10, + 2,4,1,115,40,0,0,0,2,2,2,4,10,255,8,1, + 4,2,2,7,14,251,2,128,2,3,2,254,8,2,10,255, + 10,1,2,128,2,253,6,5,2,128,8,0,10,2,4,1, + 115,110,0,0,0,8,23,5,74,9,19,9,36,37,66,9, + 67,9,67,15,29,30,73,15,74,9,74,23,27,5,20,5, + 32,9,36,9,36,9,36,9,36,9,36,9,36,9,36,0, + 0,5,74,12,21,5,74,5,74,5,74,5,74,9,19,9, + 36,37,66,9,67,9,67,15,29,30,73,15,74,9,74,5, + 74,0,0,9,36,27,32,9,24,9,24,0,0,27,32,9, + 24,9,32,9,32,5,15,5,32,33,60,5,61,5,61,12, + 22,5,22,115,20,0,0,0,142,6,21,0,148,1,43,0, + 149,17,38,7,166,1,43,0,171,4,47,7,99,2,0,0, 0,0,0,0,0,0,0,0,0,9,0,0,0,3,0,0, 0,115,132,1,0,0,124,1,92,8,125,2,125,3,125,4, 125,5,125,6,125,7,125,8,125,9,124,4,100,1,107,0, 114,18,116,0,100,2,131,1,130,1,116,1,106,2,124,0, 131,1,53,0,125,10,9,0,124,10,160,3,124,6,161,1, - 1,0,110,17,35,0,4,0,116,4,121,193,1,0,1,0, + 1,0,110,18,35,0,4,0,116,4,121,47,1,0,1,0, 1,0,116,0,100,3,124,0,155,2,157,2,124,0,100,4, - 141,2,130,1,37,0,124,10,160,5,100,5,161,1,125,11, - 116,6,124,11,131,1,100,5,107,3,114,63,116,7,100,6, - 131,1,130,1,124,11,100,0,100,7,133,2,25,0,100,8, - 107,3,114,80,116,0,100,9,124,0,155,2,157,2,124,0, - 100,4,141,2,130,1,116,8,124,11,100,10,100,11,133,2, - 25,0,131,1,125,12,116,8,124,11,100,11,100,5,133,2, - 25,0,131,1,125,13,100,5,124,12,23,0,124,13,23,0, - 125,14,124,6,124,14,55,0,125,6,9,0,124,10,160,3, - 124,6,161,1,1,0,110,17,35,0,4,0,116,4,121,192, - 1,0,1,0,1,0,116,0,100,3,124,0,155,2,157,2, - 124,0,100,4,141,2,130,1,37,0,124,10,160,5,124,4, - 161,1,125,15,116,6,124,15,131,1,124,4,107,3,114,145, - 116,4,100,12,131,1,130,1,9,0,100,0,4,0,4,0, - 131,3,1,0,110,11,35,0,49,0,115,157,119,4,37,0, - 1,0,1,0,1,0,89,0,1,0,1,0,124,3,100,1, - 107,2,114,169,124,15,83,0,9,0,116,9,131,0,125,16, - 110,12,35,0,4,0,116,10,121,191,1,0,1,0,1,0, - 116,0,100,13,131,1,130,1,37,0,124,16,124,15,100,14, - 131,2,83,0,119,0,119,0,119,0,41,15,78,114,0,0, + 141,2,130,1,119,0,37,0,124,10,160,5,100,5,161,1, + 125,11,116,6,124,11,131,1,100,5,107,3,114,64,116,7, + 100,6,131,1,130,1,124,11,100,0,100,7,133,2,25,0, + 100,8,107,3,114,81,116,0,100,9,124,0,155,2,157,2, + 124,0,100,4,141,2,130,1,116,8,124,11,100,10,100,11, + 133,2,25,0,131,1,125,12,116,8,124,11,100,11,100,5, + 133,2,25,0,131,1,125,13,100,5,124,12,23,0,124,13, + 23,0,125,14,124,6,124,14,55,0,125,6,9,0,124,10, + 160,3,124,6,161,1,1,0,110,18,35,0,4,0,116,4, + 121,130,1,0,1,0,1,0,116,0,100,3,124,0,155,2, + 157,2,124,0,100,4,141,2,130,1,119,0,37,0,124,10, + 160,5,124,4,161,1,125,15,116,6,124,15,131,1,124,4, + 107,3,114,147,116,4,100,12,131,1,130,1,9,0,100,0, + 4,0,4,0,131,3,1,0,110,11,35,0,49,0,115,159, + 119,4,37,0,1,0,1,0,1,0,89,0,1,0,1,0, + 124,3,100,1,107,2,114,171,124,15,83,0,9,0,116,9, + 131,0,125,16,110,13,35,0,4,0,116,10,121,187,1,0, + 1,0,1,0,116,0,100,13,131,1,130,1,119,0,37,0, + 124,16,124,15,100,14,131,2,83,0,41,15,78,114,0,0, 0,0,122,18,110,101,103,97,116,105,118,101,32,100,97,116, 97,32,115,105,122,101,114,104,0,0,0,114,13,0,0,0, 114,116,0,0,0,114,110,0,0,0,114,105,0,0,0,115, @@ -1127,293 +1121,291 @@ const unsigned char _Py_M__zipimport[] = { 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, 32,114,11,0,0,0,114,61,0,0,0,114,61,0,0,0, 69,2,0,0,115,88,0,0,0,20,1,8,1,8,1,12, - 2,2,2,12,1,2,128,12,1,18,1,2,128,10,1,12, - 1,8,1,16,2,18,2,16,2,16,1,12,1,8,1,2, - 1,12,1,2,128,12,1,18,1,2,128,10,1,12,1,8, - 1,2,255,20,233,2,128,12,0,8,26,4,2,2,3,8, - 1,2,128,12,1,8,1,2,128,10,1,2,254,2,243,2, - 240,115,94,0,0,0,20,1,6,1,10,1,8,2,2,24, - 2,232,2,5,12,254,2,128,2,2,2,255,26,1,2,128, + 2,2,2,12,1,2,128,12,1,18,1,2,255,2,128,10, + 2,12,1,8,1,16,2,18,2,16,2,16,1,12,1,8, + 1,2,1,12,1,2,128,12,1,18,1,2,255,2,128,10, + 2,12,1,8,1,2,255,20,233,2,128,12,0,8,26,4, + 2,2,3,8,1,2,128,12,1,8,1,2,255,2,128,10, + 2,115,88,0,0,0,20,1,6,1,10,1,8,2,2,24, + 2,232,2,5,12,254,2,128,2,2,2,255,28,1,2,128, 10,1,10,1,10,1,14,2,20,2,16,2,16,1,12,1, - 8,1,2,4,12,254,2,128,2,2,2,255,26,1,2,128, + 8,1,2,4,12,254,2,128,2,2,2,255,28,1,2,128, 10,1,10,1,32,1,2,128,12,0,6,2,6,2,2,6, - 8,254,2,128,2,2,2,255,16,1,2,128,10,1,2,255, - 2,243,2,240,115,132,1,0,0,78,87,5,75,5,13,15, - 23,25,34,36,45,47,58,60,64,66,70,72,75,8,17,20, - 21,8,21,5,51,15,29,30,50,15,51,9,51,10,13,10, - 23,24,31,10,32,5,56,36,38,9,84,13,15,13,33,21, + 8,254,2,128,2,2,2,255,18,1,2,128,10,1,115,132, + 1,0,0,78,87,5,75,5,13,15,23,25,34,36,45,47, + 58,60,64,66,70,72,75,8,17,20,21,8,21,5,51,15, + 29,30,50,15,51,9,51,10,13,10,23,24,31,10,32,5, + 56,36,38,9,84,13,15,13,33,21,32,13,33,13,33,13, + 33,0,0,9,84,16,23,9,84,9,84,9,84,9,84,19, + 33,34,69,35,42,34,69,34,69,76,83,19,84,19,84,13, + 84,9,84,0,0,18,20,18,29,26,28,18,29,9,15,12, + 15,16,22,12,23,27,29,12,29,9,58,19,27,28,57,19, + 58,13,58,12,18,19,21,20,21,19,21,12,22,26,39,12, + 39,9,86,19,33,34,71,35,42,34,71,34,71,78,85,19, + 86,19,86,13,86,21,35,36,42,43,45,46,48,43,48,36, + 49,21,50,9,18,22,36,37,43,44,46,47,49,44,49,37, + 50,22,51,9,19,23,25,28,37,23,37,40,50,23,50,9, + 20,9,20,24,35,9,35,9,20,9,84,13,15,13,33,21, 32,13,33,13,33,13,33,0,0,9,84,16,23,9,84,9, 84,9,84,9,84,19,33,34,69,35,42,34,69,34,69,76, - 83,19,84,19,84,13,84,0,0,18,20,18,29,26,28,18, - 29,9,15,12,15,16,22,12,23,27,29,12,29,9,58,19, - 27,28,57,19,58,13,58,12,18,19,21,20,21,19,21,12, - 22,26,39,12,39,9,86,19,33,34,71,35,42,34,71,34, - 71,78,85,19,86,19,86,13,86,21,35,36,42,43,45,46, - 48,43,48,36,49,21,50,9,18,22,36,37,43,44,46,47, - 49,44,49,37,50,22,51,9,19,23,25,28,37,23,37,40, - 50,23,50,9,20,9,20,24,35,9,35,9,20,9,84,13, - 15,13,33,21,32,13,33,13,33,13,33,0,0,9,84,16, - 23,9,84,9,84,9,84,9,84,19,33,34,69,35,42,34, - 69,34,69,76,83,19,84,19,84,13,84,0,0,20,22,20, - 38,28,37,20,38,9,17,12,15,16,24,12,25,29,38,12, - 38,9,56,19,26,27,55,19,56,13,56,9,56,5,56,5, - 56,5,56,5,56,5,56,5,56,5,56,5,56,5,56,5, - 56,0,0,5,56,5,56,5,56,5,56,5,56,5,56,8, - 16,20,21,8,21,5,24,16,24,9,24,5,74,22,42,22, - 44,9,19,9,19,0,0,5,74,12,21,5,74,5,74,5, - 74,5,74,15,29,30,73,15,74,9,74,0,0,12,22,23, - 31,33,36,12,37,5,37,5,74,9,84,9,84,115,88,0, - 0,0,151,1,66,24,3,153,5,31,2,158,1,66,24,3, - 159,16,47,9,175,59,66,24,3,193,43,5,65,49,2,193, - 48,1,66,24,3,193,49,16,66,1,9,194,1,16,66,24, - 3,194,24,4,66,28,11,194,29,3,66,28,11,194,42,3, - 66,46,0,194,46,11,66,57,7,194,63,1,66,57,7,195, - 0,1,66,1,9,195,1,1,47,9,99,2,0,0,0,0, - 0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,115, - 16,0,0,0,116,0,124,0,124,1,24,0,131,1,100,1, - 107,1,83,0,41,2,78,114,5,0,0,0,41,1,218,3, - 97,98,115,41,2,90,2,116,49,90,2,116,50,115,2,0, - 0,0,32,32,114,11,0,0,0,218,9,95,101,113,95,109, - 116,105,109,101,114,159,0,0,0,115,2,0,0,243,2,0, - 0,0,16,2,114,160,0,0,0,115,16,0,0,0,12,15, - 16,18,21,23,16,23,12,24,28,29,12,29,5,29,114,10, - 0,0,0,99,5,0,0,0,0,0,0,0,0,0,0,0, - 5,0,0,0,3,0,0,0,115,254,0,0,0,124,3,124, - 2,100,1,156,2,125,5,116,0,106,1,124,4,124,3,124, - 5,131,3,125,6,124,6,100,2,64,0,100,3,107,3,125, - 7,124,7,114,63,124,6,100,4,64,0,100,3,107,3,125, - 8,116,2,106,3,100,5,107,3,114,62,124,8,115,38,116, - 2,106,3,100,6,107,2,114,62,116,4,124,0,124,2,131, - 2,125,9,124,9,100,0,117,1,114,62,116,2,106,5,116, - 0,106,6,124,9,131,2,125,10,116,0,106,7,124,4,124, - 10,124,3,124,5,131,4,1,0,110,40,116,8,124,0,124, - 2,131,2,92,2,125,11,125,12,124,11,114,103,116,9,116, - 10,124,4,100,7,100,8,133,2,25,0,131,1,124,11,131, - 2,114,93,116,10,124,4,100,8,100,9,133,2,25,0,131, - 1,124,12,107,3,114,103,116,11,106,12,100,10,124,3,155, - 2,157,2,131,1,1,0,100,0,83,0,116,13,106,14,124, - 4,100,9,100,0,133,2,25,0,131,1,125,13,116,15,124, - 13,116,16,131,2,115,125,116,17,100,11,124,1,155,2,100, - 12,157,3,131,1,130,1,124,13,83,0,41,13,78,41,2, - 114,48,0,0,0,114,14,0,0,0,114,5,0,0,0,114, - 0,0,0,0,114,97,0,0,0,90,5,110,101,118,101,114, - 90,6,97,108,119,97,121,115,114,111,0,0,0,114,106,0, - 0,0,114,107,0,0,0,122,22,98,121,116,101,99,111,100, - 101,32,105,115,32,115,116,97,108,101,32,102,111,114,32,122, - 16,99,111,109,112,105,108,101,100,32,109,111,100,117,108,101, - 32,122,21,32,105,115,32,110,111,116,32,97,32,99,111,100, - 101,32,111,98,106,101,99,116,41,18,114,22,0,0,0,90, - 13,95,99,108,97,115,115,105,102,121,95,112,121,99,218,4, - 95,105,109,112,90,21,99,104,101,99,107,95,104,97,115,104, - 95,98,97,115,101,100,95,112,121,99,115,218,15,95,103,101, - 116,95,112,121,99,95,115,111,117,114,99,101,218,11,115,111, - 117,114,99,101,95,104,97,115,104,90,17,95,82,65,87,95, - 77,65,71,73,67,95,78,85,77,66,69,82,90,18,95,118, - 97,108,105,100,97,116,101,95,104,97,115,104,95,112,121,99, - 218,29,95,103,101,116,95,109,116,105,109,101,95,97,110,100, - 95,115,105,122,101,95,111,102,95,115,111,117,114,99,101,114, - 159,0,0,0,114,2,0,0,0,114,49,0,0,0,114,84, - 0,0,0,218,7,109,97,114,115,104,97,108,90,5,108,111, - 97,100,115,114,16,0,0,0,218,10,95,99,111,100,101,95, - 116,121,112,101,218,9,84,121,112,101,69,114,114,111,114,41, - 14,114,33,0,0,0,114,62,0,0,0,114,72,0,0,0, - 114,42,0,0,0,114,138,0,0,0,90,11,101,120,99,95, - 100,101,116,97,105,108,115,114,141,0,0,0,90,10,104,97, - 115,104,95,98,97,115,101,100,90,12,99,104,101,99,107,95, - 115,111,117,114,99,101,90,12,115,111,117,114,99,101,95,98, - 121,116,101,115,114,163,0,0,0,90,12,115,111,117,114,99, - 101,95,109,116,105,109,101,90,11,115,111,117,114,99,101,95, - 115,105,122,101,114,54,0,0,0,115,14,0,0,0,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,11,0,0, - 0,218,15,95,117,110,109,97,114,115,104,97,108,95,99,111, - 100,101,114,168,0,0,0,123,2,0,0,115,72,0,0,0, - 2,2,2,1,6,254,14,5,12,2,4,1,12,1,10,1, - 2,1,2,255,8,1,2,255,10,2,8,1,4,1,4,1, - 2,1,4,254,4,5,8,1,4,255,2,128,8,4,6,255, - 4,3,22,3,18,1,2,255,4,2,8,1,4,255,4,2, - 18,2,10,1,16,1,4,1,115,82,0,0,0,2,2,2, - 1,4,1,2,253,14,5,12,2,2,1,2,24,12,233,8, - 1,2,10,2,247,2,9,8,247,2,9,10,248,6,1,2, - 7,4,250,4,1,2,1,2,1,2,253,4,5,12,1,2, - 128,8,3,6,255,2,3,2,7,20,252,2,4,18,253,2, - 3,4,254,12,1,4,1,18,2,8,1,18,1,4,1,115, - 254,0,0,0,17,25,17,25,19,6,19,6,5,16,13,32, - 13,46,47,51,53,61,63,74,13,75,5,10,18,23,26,29, - 18,29,33,34,18,34,5,15,8,18,5,28,24,29,32,36, - 24,36,40,41,24,41,9,21,13,17,13,39,43,50,13,50, - 9,62,18,30,9,62,34,38,34,60,64,72,34,72,9,62, - 28,43,44,48,50,58,28,59,13,25,16,28,36,40,16,40, - 13,62,31,35,31,47,21,40,21,58,21,33,31,18,17,28, - 17,36,17,55,21,25,27,38,40,48,50,61,17,62,17,62, - 0,0,13,42,43,47,49,57,13,58,9,34,9,21,23,34, - 12,24,9,28,21,30,31,45,46,50,51,52,53,55,51,55, - 46,56,31,57,59,71,21,72,13,28,21,35,36,40,41,43, - 44,46,41,46,36,47,21,48,52,63,21,63,13,28,17,27, - 17,44,21,58,22,30,21,58,21,58,17,59,17,59,24,28, - 24,28,12,19,12,25,26,30,31,33,31,34,31,34,26,35, - 12,36,5,9,12,22,23,27,29,39,12,40,5,78,15,24, - 25,77,26,34,25,77,25,77,25,77,15,78,9,78,12,16, - 5,16,114,10,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,4,0,0,0,3,0,0,0,115,28,0,0, - 0,124,0,160,0,100,1,100,2,161,2,125,0,124,0,160, - 0,100,3,100,2,161,2,125,0,124,0,83,0,41,4,78, - 115,2,0,0,0,13,10,243,1,0,0,0,10,243,1,0, - 0,0,13,41,1,114,20,0,0,0,41,1,218,6,115,111, - 117,114,99,101,115,1,0,0,0,32,114,11,0,0,0,218, - 23,95,110,111,114,109,97,108,105,122,101,95,108,105,110,101, - 95,101,110,100,105,110,103,115,114,172,0,0,0,168,2,0, - 0,243,6,0,0,0,12,1,12,1,4,1,114,173,0,0, - 0,115,28,0,0,0,14,20,14,44,29,36,38,43,14,44, - 5,11,14,20,14,42,29,34,36,41,14,42,5,11,12,18, - 5,18,114,10,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,6,0,0,0,3,0,0,0,115,24,0,0, - 0,116,0,124,1,131,1,125,1,116,1,124,1,124,0,100, - 1,100,2,100,3,141,4,83,0,41,4,78,114,82,0,0, - 0,84,41,1,90,12,100,111,110,116,95,105,110,104,101,114, - 105,116,41,2,114,172,0,0,0,218,7,99,111,109,112,105, - 108,101,41,2,114,62,0,0,0,114,171,0,0,0,115,2, - 0,0,0,32,32,114,11,0,0,0,218,15,95,99,111,109, - 112,105,108,101,95,115,111,117,114,99,101,114,175,0,0,0, - 175,2,0,0,243,4,0,0,0,8,1,16,1,114,176,0, - 0,0,115,24,0,0,0,14,37,38,44,14,45,5,11,12, - 19,20,26,28,36,38,44,59,63,12,64,12,64,5,64,114, - 10,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,10,0,0,0,3,0,0,0,115,68,0,0,0,116,0, - 106,1,124,0,100,1,63,0,100,2,23,0,124,0,100,3, - 63,0,100,4,64,0,124,0,100,5,64,0,124,1,100,6, - 63,0,124,1,100,3,63,0,100,7,64,0,124,1,100,5, - 64,0,100,8,20,0,100,9,100,9,100,9,102,9,131,1, - 83,0,41,10,78,233,9,0,0,0,105,188,7,0,0,233, - 5,0,0,0,233,15,0,0,0,233,31,0,0,0,233,11, - 0,0,0,233,63,0,0,0,114,97,0,0,0,114,15,0, - 0,0,41,2,114,143,0,0,0,90,6,109,107,116,105,109, - 101,41,2,218,1,100,114,150,0,0,0,115,2,0,0,0, - 32,32,114,11,0,0,0,218,14,95,112,97,114,115,101,95, - 100,111,115,116,105,109,101,114,184,0,0,0,181,2,0,0, - 115,18,0,0,0,4,1,10,1,10,1,6,1,6,1,10, - 1,10,1,6,1,6,249,115,16,0,0,0,4,1,10,1, - 10,1,6,1,6,1,10,1,10,1,12,1,115,68,0,0, - 0,12,16,12,23,10,11,15,16,10,16,20,24,9,24,10, - 11,15,16,10,16,20,23,9,23,9,10,13,17,9,17,9, - 10,14,16,9,16,10,11,15,16,10,16,20,24,9,24,10, - 11,14,18,10,18,22,23,9,23,9,11,13,15,17,19,24, - 20,12,21,5,21,114,10,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,10,0,0,0,3,0,0,0,115, - 112,0,0,0,9,0,124,1,100,1,100,0,133,2,25,0, - 100,2,118,0,115,11,74,0,130,1,124,1,100,0,100,1, - 133,2,25,0,125,1,124,0,106,0,124,1,25,0,125,2, - 124,2,100,3,25,0,125,3,124,2,100,4,25,0,125,4, - 124,2,100,5,25,0,125,5,116,1,124,4,124,3,131,2, - 124,5,102,2,83,0,35,0,4,0,116,2,116,3,116,4, - 102,3,121,55,1,0,1,0,1,0,89,0,100,6,83,0, - 37,0,119,0,41,7,78,114,15,0,0,0,169,2,218,1, - 99,218,1,111,114,178,0,0,0,233,6,0,0,0,233,3, - 0,0,0,41,2,114,0,0,0,0,114,0,0,0,0,41, - 5,114,29,0,0,0,114,184,0,0,0,114,27,0,0,0, - 218,10,73,110,100,101,120,69,114,114,111,114,114,167,0,0, - 0,41,6,114,33,0,0,0,114,14,0,0,0,114,63,0, - 0,0,114,143,0,0,0,114,144,0,0,0,90,17,117,110, - 99,111,109,112,114,101,115,115,101,100,95,115,105,122,101,115, - 6,0,0,0,32,32,32,32,32,32,114,11,0,0,0,114, - 164,0,0,0,114,164,0,0,0,194,2,0,0,115,26,0, - 0,0,2,1,20,2,12,1,10,1,8,3,8,1,8,1, - 14,1,2,128,18,1,6,1,2,128,2,255,115,28,0,0, - 0,2,13,20,246,12,1,10,1,8,3,8,1,8,1,14, - 1,2,128,2,2,8,255,14,1,2,128,2,0,115,112,0, - 0,0,5,20,16,20,21,23,21,24,21,24,16,25,29,39, - 16,39,9,39,9,39,9,39,16,20,21,24,22,24,21,24, - 16,25,9,13,21,25,21,32,33,37,21,38,9,18,16,25, - 26,27,16,28,9,13,16,25,26,27,16,28,9,13,29,38, - 39,40,29,41,9,26,16,30,31,35,37,41,16,42,44,61, - 16,61,9,61,0,0,5,20,13,21,23,33,35,44,12,45, - 5,20,5,20,5,20,5,20,16,20,16,20,16,20,0,0, - 5,20,115,12,0,0,0,129,39,41,0,169,10,54,7,183, - 1,54,7,99,2,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,3,0,0,0,115,82,0,0,0,124,1,100, - 1,100,0,133,2,25,0,100,2,118,0,115,10,74,0,130, - 1,124,1,100,0,100,1,133,2,25,0,125,1,9,0,124, - 0,106,0,124,1,25,0,125,2,110,11,35,0,4,0,116, - 1,121,40,1,0,1,0,1,0,89,0,100,0,83,0,37, - 0,116,2,124,0,106,3,124,2,131,2,83,0,119,0,41, - 3,78,114,15,0,0,0,114,185,0,0,0,41,4,114,29, - 0,0,0,114,27,0,0,0,114,61,0,0,0,114,30,0, - 0,0,41,3,114,33,0,0,0,114,14,0,0,0,114,63, - 0,0,0,115,3,0,0,0,32,32,32,114,11,0,0,0, - 114,162,0,0,0,114,162,0,0,0,213,2,0,0,115,20, - 0,0,0,20,2,12,1,2,2,12,1,2,128,12,1,6, - 1,2,128,12,2,2,253,115,22,0,0,0,20,2,12,1, - 2,7,12,252,2,128,2,2,2,255,14,1,2,128,12,2, - 2,254,115,82,0,0,0,12,16,17,19,17,20,17,20,12, - 21,25,35,12,35,5,35,5,35,5,35,12,16,17,20,18, - 20,17,20,12,21,5,9,5,50,21,25,21,32,33,37,21, - 38,9,18,9,18,0,0,5,20,12,20,5,20,5,20,5, - 20,5,20,16,20,16,20,16,20,0,0,16,25,26,30,26, - 38,40,49,16,50,9,50,5,20,115,12,0,0,0,145,5, - 23,0,151,7,33,7,168,1,33,7,99,2,0,0,0,0, - 0,0,0,0,0,0,0,9,0,0,0,3,0,0,0,115, - 14,1,0,0,116,0,124,0,124,1,131,2,125,2,100,0, - 125,3,116,1,68,0,93,100,92,3,125,4,125,5,125,6, - 124,2,124,4,23,0,125,7,116,2,106,3,100,1,124,0, - 106,4,116,5,124,7,100,2,100,3,141,5,1,0,9,0, - 124,0,106,6,124,7,25,0,125,8,110,10,35,0,4,0, - 116,7,121,134,1,0,1,0,1,0,89,0,113,9,37,0, - 124,8,100,4,25,0,125,9,116,8,124,0,106,4,124,8, - 131,2,125,10,100,0,125,11,124,5,114,89,9,0,116,9, - 124,0,124,9,124,7,124,1,124,10,131,5,125,11,110,24, - 35,0,4,0,116,10,121,133,1,0,125,12,1,0,124,12, - 125,3,89,0,100,0,125,12,126,12,110,10,100,0,125,12, - 126,12,119,1,37,0,116,11,124,9,124,10,131,2,125,11, - 124,11,100,0,117,0,114,99,113,9,124,8,100,4,25,0, - 125,9,124,11,124,6,124,9,102,3,2,0,1,0,83,0, - 124,3,114,124,100,5,124,3,155,0,157,2,125,13,116,12, - 124,13,124,1,100,6,141,2,124,3,130,2,116,12,100,7, - 124,1,155,2,157,2,124,1,100,6,141,2,130,1,119,0, - 119,0,41,8,78,122,13,116,114,121,105,110,103,32,123,125, - 123,125,123,125,114,97,0,0,0,41,1,90,9,118,101,114, - 98,111,115,105,116,121,114,0,0,0,0,122,20,109,111,100, - 117,108,101,32,108,111,97,100,32,102,97,105,108,101,100,58, - 32,114,68,0,0,0,114,67,0,0,0,41,13,114,40,0, - 0,0,114,101,0,0,0,114,49,0,0,0,114,84,0,0, - 0,114,30,0,0,0,114,21,0,0,0,114,29,0,0,0, - 114,27,0,0,0,114,61,0,0,0,114,168,0,0,0,114, - 83,0,0,0,114,175,0,0,0,114,3,0,0,0,41,14, - 114,33,0,0,0,114,42,0,0,0,114,14,0,0,0,90, - 12,105,109,112,111,114,116,95,101,114,114,111,114,114,102,0, - 0,0,114,103,0,0,0,114,55,0,0,0,114,72,0,0, - 0,114,63,0,0,0,114,44,0,0,0,114,138,0,0,0, - 114,54,0,0,0,90,3,101,120,99,114,85,0,0,0,115, - 14,0,0,0,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,114,11,0,0,0,114,52,0,0,0,114,52,0,0, - 0,228,2,0,0,115,64,0,0,0,10,1,4,1,14,1, - 8,1,22,1,2,1,12,1,2,128,12,1,4,1,2,128, - 8,2,12,1,4,1,4,1,2,1,18,1,2,128,12,1, - 14,1,10,128,10,2,8,1,2,3,8,1,14,1,4,2, - 10,1,14,1,18,2,2,241,2,247,115,76,0,0,0,10, - 1,4,1,2,1,4,29,8,227,8,1,22,1,2,21,12, - 237,2,128,2,2,2,255,12,1,2,128,8,2,12,1,4, - 1,2,1,2,6,2,254,18,254,2,128,2,2,2,255,22, - 1,10,128,10,2,6,1,4,3,8,1,14,1,2,2,2, - 4,10,253,14,1,18,2,2,242,2,247,115,14,1,0,0, - 12,28,29,33,35,43,12,44,5,9,20,24,5,17,42,58, - 5,83,5,83,9,38,9,15,17,27,29,38,20,24,27,33, - 20,33,9,17,9,19,9,36,37,52,54,58,54,66,68,76, - 78,86,98,99,9,100,9,100,9,100,9,44,25,29,25,36, - 37,45,25,46,13,22,13,22,0,0,9,17,16,24,9,17, - 9,17,9,17,9,17,13,17,13,17,0,0,23,32,33,34, - 23,35,13,20,20,29,30,34,30,42,44,53,20,54,13,17, - 20,24,13,17,16,26,13,54,17,39,28,43,44,48,50,57, - 59,67,69,77,79,83,28,84,21,25,21,25,0,0,17,39, - 24,35,17,39,17,39,17,39,17,39,36,39,21,33,21,33, - 21,33,21,33,21,33,21,33,0,0,0,0,0,0,0,0, - 0,0,24,39,40,47,49,53,24,54,17,21,16,20,24,28, - 16,28,13,25,17,25,23,32,33,34,23,35,13,20,20,24, - 26,35,37,44,20,44,13,44,13,44,13,44,12,24,9,83, - 19,56,42,54,19,56,19,56,13,16,19,33,34,37,44,52, - 19,53,19,53,59,71,13,71,19,33,34,67,35,43,34,67, - 34,67,74,82,19,83,19,83,13,83,17,39,9,17,115,42, - 0,0,0,158,5,36,2,164,7,45,9,189,8,65,6,2, - 193,6,7,65,24,9,193,13,2,65,20,9,193,20,4,65, - 24,9,194,5,1,65,24,9,194,6,1,45,9,41,46,114, + 83,19,84,19,84,13,84,9,84,0,0,20,22,20,38,28, + 37,20,38,9,17,12,15,16,24,12,25,29,38,12,38,9, + 56,19,26,27,55,19,56,13,56,9,56,5,56,5,56,5, + 56,5,56,5,56,5,56,5,56,5,56,5,56,5,56,0, + 0,5,56,5,56,5,56,5,56,5,56,5,56,8,16,20, + 21,8,21,5,24,16,24,9,24,5,74,22,42,22,44,9, + 19,9,19,0,0,5,74,12,21,5,74,5,74,5,74,5, + 74,15,29,30,73,15,74,9,74,5,74,0,0,12,22,23, + 31,33,36,12,37,5,37,115,71,0,0,0,151,1,66,26, + 3,153,5,31,2,158,1,66,26,3,159,17,48,9,176,59, + 66,26,3,193,44,5,65,50,2,193,49,1,66,26,3,193, + 50,17,66,3,9,194,3,16,66,26,3,194,26,4,66,30, + 11,194,31,3,66,30,11,194,44,3,66,48,0,194,48,12, + 66,60,7,99,2,0,0,0,0,0,0,0,0,0,0,0, + 3,0,0,0,3,0,0,0,115,16,0,0,0,116,0,124, + 0,124,1,24,0,131,1,100,1,107,1,83,0,41,2,78, + 114,5,0,0,0,41,1,218,3,97,98,115,41,2,90,2, + 116,49,90,2,116,50,115,2,0,0,0,32,32,114,11,0, + 0,0,218,9,95,101,113,95,109,116,105,109,101,114,159,0, + 0,0,115,2,0,0,243,2,0,0,0,16,2,114,160,0, + 0,0,115,16,0,0,0,12,15,16,18,21,23,16,23,12, + 24,28,29,12,29,5,29,114,10,0,0,0,99,5,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,3,0,0, + 0,115,254,0,0,0,124,3,124,2,100,1,156,2,125,5, + 116,0,106,1,124,4,124,3,124,5,131,3,125,6,124,6, + 100,2,64,0,100,3,107,3,125,7,124,7,114,63,124,6, + 100,4,64,0,100,3,107,3,125,8,116,2,106,3,100,5, + 107,3,114,62,124,8,115,38,116,2,106,3,100,6,107,2, + 114,62,116,4,124,0,124,2,131,2,125,9,124,9,100,0, + 117,1,114,62,116,2,106,5,116,0,106,6,124,9,131,2, + 125,10,116,0,106,7,124,4,124,10,124,3,124,5,131,4, + 1,0,110,40,116,8,124,0,124,2,131,2,92,2,125,11, + 125,12,124,11,114,103,116,9,116,10,124,4,100,7,100,8, + 133,2,25,0,131,1,124,11,131,2,114,93,116,10,124,4, + 100,8,100,9,133,2,25,0,131,1,124,12,107,3,114,103, + 116,11,106,12,100,10,124,3,155,2,157,2,131,1,1,0, + 100,0,83,0,116,13,106,14,124,4,100,9,100,0,133,2, + 25,0,131,1,125,13,116,15,124,13,116,16,131,2,115,125, + 116,17,100,11,124,1,155,2,100,12,157,3,131,1,130,1, + 124,13,83,0,41,13,78,41,2,114,48,0,0,0,114,14, + 0,0,0,114,5,0,0,0,114,0,0,0,0,114,97,0, + 0,0,90,5,110,101,118,101,114,90,6,97,108,119,97,121, + 115,114,111,0,0,0,114,106,0,0,0,114,107,0,0,0, + 122,22,98,121,116,101,99,111,100,101,32,105,115,32,115,116, + 97,108,101,32,102,111,114,32,122,16,99,111,109,112,105,108, + 101,100,32,109,111,100,117,108,101,32,122,21,32,105,115,32, + 110,111,116,32,97,32,99,111,100,101,32,111,98,106,101,99, + 116,41,18,114,22,0,0,0,90,13,95,99,108,97,115,115, + 105,102,121,95,112,121,99,218,4,95,105,109,112,90,21,99, + 104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,95, + 112,121,99,115,218,15,95,103,101,116,95,112,121,99,95,115, + 111,117,114,99,101,218,11,115,111,117,114,99,101,95,104,97, + 115,104,90,17,95,82,65,87,95,77,65,71,73,67,95,78, + 85,77,66,69,82,90,18,95,118,97,108,105,100,97,116,101, + 95,104,97,115,104,95,112,121,99,218,29,95,103,101,116,95, + 109,116,105,109,101,95,97,110,100,95,115,105,122,101,95,111, + 102,95,115,111,117,114,99,101,114,159,0,0,0,114,2,0, + 0,0,114,49,0,0,0,114,84,0,0,0,218,7,109,97, + 114,115,104,97,108,90,5,108,111,97,100,115,114,16,0,0, + 0,218,10,95,99,111,100,101,95,116,121,112,101,218,9,84, + 121,112,101,69,114,114,111,114,41,14,114,33,0,0,0,114, + 62,0,0,0,114,72,0,0,0,114,42,0,0,0,114,138, + 0,0,0,90,11,101,120,99,95,100,101,116,97,105,108,115, + 114,141,0,0,0,90,10,104,97,115,104,95,98,97,115,101, + 100,90,12,99,104,101,99,107,95,115,111,117,114,99,101,90, + 12,115,111,117,114,99,101,95,98,121,116,101,115,114,163,0, + 0,0,90,12,115,111,117,114,99,101,95,109,116,105,109,101, + 90,11,115,111,117,114,99,101,95,115,105,122,101,114,54,0, + 0,0,115,14,0,0,0,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,114,11,0,0,0,218,15,95,117,110,109, + 97,114,115,104,97,108,95,99,111,100,101,114,168,0,0,0, + 123,2,0,0,115,72,0,0,0,2,2,2,1,6,254,14, + 5,12,2,4,1,12,1,10,1,2,1,2,255,8,1,2, + 255,10,2,8,1,4,1,4,1,2,1,4,254,4,5,8, + 1,4,255,2,128,8,4,6,255,4,3,22,3,18,1,2, + 255,4,2,8,1,4,255,4,2,18,2,10,1,16,1,4, + 1,115,82,0,0,0,2,2,2,1,4,1,2,253,14,5, + 12,2,2,1,2,24,12,233,8,1,2,10,2,247,2,9, + 8,247,2,9,10,248,6,1,2,7,4,250,4,1,2,1, + 2,1,2,253,4,5,12,1,2,128,8,3,6,255,2,3, + 2,7,20,252,2,4,18,253,2,3,4,254,12,1,4,1, + 18,2,8,1,18,1,4,1,115,254,0,0,0,17,25,17, + 25,19,6,19,6,5,16,13,32,13,46,47,51,53,61,63, + 74,13,75,5,10,18,23,26,29,18,29,33,34,18,34,5, + 15,8,18,5,28,24,29,32,36,24,36,40,41,24,41,9, + 21,13,17,13,39,43,50,13,50,9,62,18,30,9,62,34, + 38,34,60,64,72,34,72,9,62,28,43,44,48,50,58,28, + 59,13,25,16,28,36,40,16,40,13,62,31,35,31,47,21, + 40,21,58,21,33,31,18,17,28,17,36,17,55,21,25,27, + 38,40,48,50,61,17,62,17,62,0,0,13,42,43,47,49, + 57,13,58,9,34,9,21,23,34,12,24,9,28,21,30,31, + 45,46,50,51,52,53,55,51,55,46,56,31,57,59,71,21, + 72,13,28,21,35,36,40,41,43,44,46,41,46,36,47,21, + 48,52,63,21,63,13,28,17,27,17,44,21,58,22,30,21, + 58,21,58,17,59,17,59,24,28,24,28,12,19,12,25,26, + 30,31,33,31,34,31,34,26,35,12,36,5,9,12,22,23, + 27,29,39,12,40,5,78,15,24,25,77,26,34,25,77,25, + 77,25,77,15,78,9,78,12,16,5,16,114,10,0,0,0, + 99,1,0,0,0,0,0,0,0,0,0,0,0,4,0,0, + 0,3,0,0,0,115,28,0,0,0,124,0,160,0,100,1, + 100,2,161,2,125,0,124,0,160,0,100,3,100,2,161,2, + 125,0,124,0,83,0,41,4,78,115,2,0,0,0,13,10, + 243,1,0,0,0,10,243,1,0,0,0,13,41,1,114,20, + 0,0,0,41,1,218,6,115,111,117,114,99,101,115,1,0, + 0,0,32,114,11,0,0,0,218,23,95,110,111,114,109,97, + 108,105,122,101,95,108,105,110,101,95,101,110,100,105,110,103, + 115,114,172,0,0,0,168,2,0,0,243,6,0,0,0,12, + 1,12,1,4,1,114,173,0,0,0,115,28,0,0,0,14, + 20,14,44,29,36,38,43,14,44,5,11,14,20,14,42,29, + 34,36,41,14,42,5,11,12,18,5,18,114,10,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,3,0,0,0,115,24,0,0,0,116,0,124,1,131,1, + 125,1,116,1,124,1,124,0,100,1,100,2,100,3,141,4, + 83,0,41,4,78,114,82,0,0,0,84,41,1,90,12,100, + 111,110,116,95,105,110,104,101,114,105,116,41,2,114,172,0, + 0,0,218,7,99,111,109,112,105,108,101,41,2,114,62,0, + 0,0,114,171,0,0,0,115,2,0,0,0,32,32,114,11, + 0,0,0,218,15,95,99,111,109,112,105,108,101,95,115,111, + 117,114,99,101,114,175,0,0,0,175,2,0,0,243,4,0, + 0,0,8,1,16,1,114,176,0,0,0,115,24,0,0,0, + 14,37,38,44,14,45,5,11,12,19,20,26,28,36,38,44, + 59,63,12,64,12,64,5,64,114,10,0,0,0,99,2,0, + 0,0,0,0,0,0,0,0,0,0,10,0,0,0,3,0, + 0,0,115,68,0,0,0,116,0,106,1,124,0,100,1,63, + 0,100,2,23,0,124,0,100,3,63,0,100,4,64,0,124, + 0,100,5,64,0,124,1,100,6,63,0,124,1,100,3,63, + 0,100,7,64,0,124,1,100,5,64,0,100,8,20,0,100, + 9,100,9,100,9,102,9,131,1,83,0,41,10,78,233,9, + 0,0,0,105,188,7,0,0,233,5,0,0,0,233,15,0, + 0,0,233,31,0,0,0,233,11,0,0,0,233,63,0,0, + 0,114,97,0,0,0,114,15,0,0,0,41,2,114,143,0, + 0,0,90,6,109,107,116,105,109,101,41,2,218,1,100,114, + 150,0,0,0,115,2,0,0,0,32,32,114,11,0,0,0, + 218,14,95,112,97,114,115,101,95,100,111,115,116,105,109,101, + 114,184,0,0,0,181,2,0,0,115,18,0,0,0,4,1, + 10,1,10,1,6,1,6,1,10,1,10,1,6,1,6,249, + 115,16,0,0,0,4,1,10,1,10,1,6,1,6,1,10, + 1,10,1,12,1,115,68,0,0,0,12,16,12,23,10,11, + 15,16,10,16,20,24,9,24,10,11,15,16,10,16,20,23, + 9,23,9,10,13,17,9,17,9,10,14,16,9,16,10,11, + 15,16,10,16,20,24,9,24,10,11,14,18,10,18,22,23, + 9,23,9,11,13,15,17,19,24,20,12,21,5,21,114,10, + 0,0,0,99,2,0,0,0,0,0,0,0,0,0,0,0, + 10,0,0,0,3,0,0,0,115,112,0,0,0,9,0,124, + 1,100,1,100,0,133,2,25,0,100,2,118,0,115,11,74, + 0,130,1,124,1,100,0,100,1,133,2,25,0,125,1,124, + 0,106,0,124,1,25,0,125,2,124,2,100,3,25,0,125, + 3,124,2,100,4,25,0,125,4,124,2,100,5,25,0,125, + 5,116,1,124,4,124,3,131,2,124,5,102,2,83,0,35, + 0,4,0,116,2,116,3,116,4,102,3,121,54,1,0,1, + 0,1,0,89,0,100,6,83,0,119,0,37,0,41,7,78, + 114,15,0,0,0,169,2,218,1,99,218,1,111,114,178,0, + 0,0,233,6,0,0,0,233,3,0,0,0,41,2,114,0, + 0,0,0,114,0,0,0,0,41,5,114,29,0,0,0,114, + 184,0,0,0,114,27,0,0,0,218,10,73,110,100,101,120, + 69,114,114,111,114,114,167,0,0,0,41,6,114,33,0,0, + 0,114,14,0,0,0,114,63,0,0,0,114,143,0,0,0, + 114,144,0,0,0,90,17,117,110,99,111,109,112,114,101,115, + 115,101,100,95,115,105,122,101,115,6,0,0,0,32,32,32, + 32,32,32,114,11,0,0,0,114,164,0,0,0,114,164,0, + 0,0,194,2,0,0,115,26,0,0,0,2,1,20,2,12, + 1,10,1,8,3,8,1,8,1,14,1,2,128,18,1,6, + 1,2,255,2,128,115,26,0,0,0,2,13,20,246,12,1, + 10,1,8,3,8,1,8,1,14,1,2,128,2,2,8,255, + 16,1,2,128,115,112,0,0,0,5,20,16,20,21,23,21, + 24,21,24,16,25,29,39,16,39,9,39,9,39,9,39,16, + 20,21,24,22,24,21,24,16,25,9,13,21,25,21,32,33, + 37,21,38,9,18,16,25,26,27,16,28,9,13,16,25,26, + 27,16,28,9,13,29,38,39,40,29,41,9,26,16,30,31, + 35,37,41,16,42,44,61,16,61,9,61,0,0,5,20,13, + 21,23,33,35,44,12,45,5,20,5,20,5,20,5,20,16, + 20,16,20,16,20,5,20,0,0,115,12,0,0,0,129,39, + 41,0,169,10,55,7,182,1,55,7,99,2,0,0,0,0, + 0,0,0,0,0,0,0,8,0,0,0,3,0,0,0,115, + 82,0,0,0,124,1,100,1,100,0,133,2,25,0,100,2, + 118,0,115,10,74,0,130,1,124,1,100,0,100,1,133,2, + 25,0,125,1,9,0,124,0,106,0,124,1,25,0,125,2, + 110,12,35,0,4,0,116,1,121,33,1,0,1,0,1,0, + 89,0,100,0,83,0,119,0,37,0,116,2,124,0,106,3, + 124,2,131,2,83,0,41,3,78,114,15,0,0,0,114,185, + 0,0,0,41,4,114,29,0,0,0,114,27,0,0,0,114, + 61,0,0,0,114,30,0,0,0,41,3,114,33,0,0,0, + 114,14,0,0,0,114,63,0,0,0,115,3,0,0,0,32, + 32,32,114,11,0,0,0,114,162,0,0,0,114,162,0,0, + 0,213,2,0,0,115,20,0,0,0,20,2,12,1,2,2, + 12,1,2,128,12,1,6,1,2,255,2,128,12,3,115,20, + 0,0,0,20,2,12,1,2,7,12,252,2,128,2,2,2, + 255,16,1,2,128,12,2,115,82,0,0,0,12,16,17,19, + 17,20,17,20,12,21,25,35,12,35,5,35,5,35,5,35, + 12,16,17,20,18,20,17,20,12,21,5,9,5,50,21,25, + 21,32,33,37,21,38,9,18,9,18,0,0,5,20,12,20, + 5,20,5,20,5,20,5,20,16,20,16,20,16,20,5,20, + 0,0,16,25,26,30,26,38,40,49,16,50,9,50,115,12, + 0,0,0,145,5,23,0,151,7,34,7,161,1,34,7,99, + 2,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, + 3,0,0,0,115,14,1,0,0,116,0,124,0,124,1,131, + 2,125,2,100,0,125,3,116,1,68,0,93,102,92,3,125, + 4,125,5,125,6,124,2,124,4,23,0,125,7,116,2,106, + 3,100,1,124,0,106,4,116,5,124,7,100,2,100,3,141, + 5,1,0,9,0,124,0,106,6,124,7,25,0,125,8,110, + 11,35,0,4,0,116,7,121,45,1,0,1,0,1,0,89, + 0,113,9,119,0,37,0,124,8,100,4,25,0,125,9,116, + 8,124,0,106,4,124,8,131,2,125,10,100,0,125,11,124, + 5,114,91,9,0,116,9,124,0,124,9,124,7,124,1,124, + 10,131,5,125,11,110,25,35,0,4,0,116,10,121,89,1, + 0,125,12,1,0,124,12,125,3,89,0,100,0,125,12,126, + 12,110,11,100,0,125,12,126,12,119,1,119,0,37,0,116, + 11,124,9,124,10,131,2,125,11,124,11,100,0,117,0,114, + 101,113,9,124,8,100,4,25,0,125,9,124,11,124,6,124, + 9,102,3,2,0,1,0,83,0,124,3,114,126,100,5,124, + 3,155,0,157,2,125,13,116,12,124,13,124,1,100,6,141, + 2,124,3,130,2,116,12,100,7,124,1,155,2,157,2,124, + 1,100,6,141,2,130,1,41,8,78,122,13,116,114,121,105, + 110,103,32,123,125,123,125,123,125,114,97,0,0,0,41,1, + 90,9,118,101,114,98,111,115,105,116,121,114,0,0,0,0, + 122,20,109,111,100,117,108,101,32,108,111,97,100,32,102,97, + 105,108,101,100,58,32,114,68,0,0,0,114,67,0,0,0, + 41,13,114,40,0,0,0,114,101,0,0,0,114,49,0,0, + 0,114,84,0,0,0,114,30,0,0,0,114,21,0,0,0, + 114,29,0,0,0,114,27,0,0,0,114,61,0,0,0,114, + 168,0,0,0,114,83,0,0,0,114,175,0,0,0,114,3, + 0,0,0,41,14,114,33,0,0,0,114,42,0,0,0,114, + 14,0,0,0,90,12,105,109,112,111,114,116,95,101,114,114, + 111,114,114,102,0,0,0,114,103,0,0,0,114,55,0,0, + 0,114,72,0,0,0,114,63,0,0,0,114,44,0,0,0, + 114,138,0,0,0,114,54,0,0,0,90,3,101,120,99,114, + 85,0,0,0,115,14,0,0,0,32,32,32,32,32,32,32, + 32,32,32,32,32,32,32,114,11,0,0,0,114,52,0,0, + 0,114,52,0,0,0,228,2,0,0,115,66,0,0,0,10, + 1,4,1,14,1,8,1,22,1,2,1,12,1,2,128,12, + 1,4,1,2,255,2,128,8,3,12,1,4,1,4,1,2, + 1,18,1,2,128,12,1,14,1,8,128,2,255,2,128,10, + 3,8,1,2,3,8,1,14,1,4,2,10,1,14,1,18, + 2,115,76,0,0,0,10,1,4,1,2,1,4,29,8,227, + 8,1,22,1,2,21,12,237,2,128,2,2,2,255,14,1, + 2,128,8,2,12,1,4,1,2,1,2,6,2,254,18,254, + 2,128,2,2,2,255,22,1,8,128,2,0,2,128,10,2, + 6,1,4,3,8,1,14,1,2,2,2,4,10,253,14,1, + 18,2,115,14,1,0,0,12,28,29,33,35,43,12,44,5, + 9,20,24,5,17,42,58,5,83,5,83,9,38,9,15,17, + 27,29,38,20,24,27,33,20,33,9,17,9,19,9,36,37, + 52,54,58,54,66,68,76,78,86,98,99,9,100,9,100,9, + 100,9,44,25,29,25,36,37,45,25,46,13,22,13,22,0, + 0,9,17,16,24,9,17,9,17,9,17,9,17,13,17,13, + 17,9,17,0,0,23,32,33,34,23,35,13,20,20,29,30, + 34,30,42,44,53,20,54,13,17,20,24,13,17,16,26,13, + 54,17,39,28,43,44,48,50,57,59,67,69,77,79,83,28, + 84,21,25,21,25,0,0,17,39,24,35,17,39,17,39,17, + 39,17,39,36,39,21,33,21,33,21,33,21,33,21,33,21, + 33,0,0,0,0,0,0,0,0,17,39,0,0,24,39,40, + 47,49,53,24,54,17,21,16,20,24,28,16,28,13,25,17, + 25,23,32,33,34,23,35,13,20,20,24,26,35,37,44,20, + 44,13,44,13,44,13,44,12,24,9,83,19,56,42,54,19, + 56,19,56,13,16,19,33,34,37,44,52,19,53,19,53,59, + 71,13,71,19,33,34,67,35,43,34,67,34,67,74,82,19, + 83,19,83,13,83,115,35,0,0,0,158,5,36,2,164,7, + 46,9,173,1,46,9,190,8,65,7,2,193,7,7,65,26, + 9,193,14,2,65,21,9,193,21,5,65,26,9,41,46,114, 95,0,0,0,90,26,95,102,114,111,122,101,110,95,105,109, 112,111,114,116,108,105,98,95,101,120,116,101,114,110,97,108, 114,22,0,0,0,114,1,0,0,0,114,2,0,0,0,90, From webhook-mailer at python.org Mon Aug 9 05:40:30 2021 From: webhook-mailer at python.org (markshannon) Date: Mon, 09 Aug 2021 09:40:30 -0000 Subject: [Python-checkins] bpo-44826: Specialize STORE_ATTR (GH-27590) Message-ID: https://github.com/python/cpython/commit/ac75f6bdd4748b3378dd321f862d13aa1898f77a commit: ac75f6bdd4748b3378dd321f862d13aa1898f77a branch: main author: Mark Shannon committer: markshannon date: 2021-08-09T10:40:21+01:00 summary: bpo-44826: Specialize STORE_ATTR (GH-27590) * Generalize cache names for LOAD_ATTR to allow store and delete specializations. * Factor out specialization of attribute dictionary access. * Specialize STORE_ATTR. files: A Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-49-55.bpo-44826.zQsyK5.rst M Include/internal/pycore_code.h M Include/internal/pycore_dict.h M Include/opcode.h M Lib/opcode.py M Objects/dictobject.c M Python/ceval.c M Python/opcode_targets.h M Python/specialize.c diff --git a/Include/internal/pycore_code.h b/Include/internal/pycore_code.h index 312939ee1d26e6..3d8f9c2d228e7f 100644 --- a/Include/internal/pycore_code.h +++ b/Include/internal/pycore_code.h @@ -23,7 +23,7 @@ typedef struct { typedef struct { uint32_t tp_version; uint32_t dk_version_or_hint; -} _PyLoadAttrCache; +} _PyAttrCache; typedef struct { uint32_t module_keys_version; @@ -43,7 +43,7 @@ typedef struct { typedef union { _PyEntryZero zero; _PyAdaptiveEntry adaptive; - _PyLoadAttrCache load_attr; + _PyAttrCache attr; _PyLoadGlobalCache load_global; } SpecializedCacheEntry; @@ -297,6 +297,7 @@ cache_backoff(_PyAdaptiveEntry *entry) { /* Specialization functions */ int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); +int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache); int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); diff --git a/Include/internal/pycore_dict.h b/Include/internal/pycore_dict.h index b2c64b2168cdcf..2becc30beb4d8d 100644 --- a/Include/internal/pycore_dict.h +++ b/Include/internal/pycore_dict.h @@ -89,6 +89,9 @@ struct _dictkeysobject { #define DK_ENTRIES(dk) \ ((PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[DK_SIZE(dk) * DK_IXSIZE(dk)])) +extern uint64_t _pydict_global_version; + +#define DICT_NEXT_VERSION() (++_pydict_global_version) #ifdef __cplusplus } diff --git a/Include/opcode.h b/Include/opcode.h index 7bebb871edb444..50b783289590da 100644 --- a/Include/opcode.h +++ b/Include/opcode.h @@ -149,6 +149,10 @@ extern "C" { #define LOAD_GLOBAL_ADAPTIVE 41 #define LOAD_GLOBAL_MODULE 42 #define LOAD_GLOBAL_BUILTIN 43 +#define STORE_ATTR_ADAPTIVE 44 +#define STORE_ATTR_SPLIT_KEYS 45 +#define STORE_ATTR_SLOT 46 +#define STORE_ATTR_WITH_HINT 47 #ifdef NEED_OPCODE_JUMP_TABLES static uint32_t _PyOpcode_RelativeJump[8] = { 0U, diff --git a/Lib/opcode.py b/Lib/opcode.py index 7735848db0958d..061506d0b88bd9 100644 --- a/Lib/opcode.py +++ b/Lib/opcode.py @@ -233,6 +233,10 @@ def jabs_op(name, op): "LOAD_GLOBAL_ADAPTIVE", "LOAD_GLOBAL_MODULE", "LOAD_GLOBAL_BUILTIN", + "STORE_ATTR_ADAPTIVE", + "STORE_ATTR_SPLIT_KEYS", + "STORE_ATTR_SLOT", + "STORE_ATTR_WITH_HINT", ] _specialization_stats = [ diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-49-55.bpo-44826.zQsyK5.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-49-55.bpo-44826.zQsyK5.rst new file mode 100644 index 00000000000000..ccdb5e0c606c0f --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-05-17-49-55.bpo-44826.zQsyK5.rst @@ -0,0 +1,9 @@ +Initial implementation of adaptive specialization of STORE_ATTR + +Three specialized forms of STORE_ATTR are added: + +* STORE_ATTR_SLOT + +* STORE_ATTR_SPLIT_KEYS + +* STORE_ATTR_WITH_HINT diff --git a/Objects/dictobject.c b/Objects/dictobject.c index 5ad630feaf1e86..c78cbafe583bdc 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -234,9 +234,7 @@ static PyObject* dict_iter(PyDictObject *dict); /*Global counter used to set ma_version_tag field of dictionary. * It is incremented each time that a dictionary is created and each * time that a dictionary is modified. */ -static uint64_t pydict_global_version = 0; - -#define DICT_NEXT_VERSION() (++pydict_global_version) +uint64_t _pydict_global_version = 0; #include "clinic/dictobject.c.h" diff --git a/Python/ceval.c b/Python/ceval.c index e3658b81388321..b7b63856c61c80 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -2766,6 +2766,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr } case TARGET(STORE_ATTR): { + PREDICTED(STORE_ATTR); PyObject *name = GETITEM(names, oparg); PyObject *owner = TOP(); PyObject *v = SECOND(); @@ -3394,7 +3395,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr PyTypeObject *tp = Py_TYPE(owner); SpecializedCacheEntry *caches = GET_CACHE(); _PyAdaptiveEntry *cache0 = &caches[0].adaptive; - _PyLoadAttrCache *cache1 = &caches[-1].load_attr; + _PyAttrCache *cache1 = &caches[-1].attr; assert(cache1->tp_version != 0); DEOPT_IF(tp->tp_version_tag != cache1->tp_version, LOAD_ATTR); assert(tp->tp_dictoffset > 0); @@ -3418,7 +3419,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr PyObject *res; SpecializedCacheEntry *caches = GET_CACHE(); _PyAdaptiveEntry *cache0 = &caches[0].adaptive; - _PyLoadAttrCache *cache1 = &caches[-1].load_attr; + _PyAttrCache *cache1 = &caches[-1].attr; DEOPT_IF(!PyModule_CheckExact(owner), LOAD_ATTR); PyDictObject *dict = (PyDictObject *)((PyModuleObject *)owner)->md_dict; assert(dict != NULL); @@ -3443,7 +3444,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr PyTypeObject *tp = Py_TYPE(owner); SpecializedCacheEntry *caches = GET_CACHE(); _PyAdaptiveEntry *cache0 = &caches[0].adaptive; - _PyLoadAttrCache *cache1 = &caches[-1].load_attr; + _PyAttrCache *cache1 = &caches[-1].attr; assert(cache1->tp_version != 0); DEOPT_IF(tp->tp_version_tag != cache1->tp_version, LOAD_ATTR); assert(tp->tp_dictoffset > 0); @@ -3472,7 +3473,7 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr PyTypeObject *tp = Py_TYPE(owner); SpecializedCacheEntry *caches = GET_CACHE(); _PyAdaptiveEntry *cache0 = &caches[0].adaptive; - _PyLoadAttrCache *cache1 = &caches[-1].load_attr; + _PyAttrCache *cache1 = &caches[-1].attr; assert(cache1->tp_version != 0); DEOPT_IF(tp->tp_version_tag != cache1->tp_version, LOAD_ATTR); char *addr = (char *)owner + cache0->index; @@ -3486,6 +3487,121 @@ _PyEval_EvalFrameDefault(PyThreadState *tstate, InterpreterFrame *frame, int thr DISPATCH(); } + case TARGET(STORE_ATTR_ADAPTIVE): { + assert(cframe.use_tracing == 0); + SpecializedCacheEntry *cache = GET_CACHE(); + if (cache->adaptive.counter == 0) { + PyObject *owner = TOP(); + PyObject *name = GETITEM(names, cache->adaptive.original_oparg); + next_instr--; + if (_Py_Specialize_StoreAttr(owner, next_instr, name, cache) < 0) { + goto error; + } + DISPATCH(); + } + else { + STAT_INC(STORE_ATTR, deferred); + cache->adaptive.counter--; + oparg = cache->adaptive.original_oparg; + JUMP_TO_INSTRUCTION(STORE_ATTR); + } + } + + case TARGET(STORE_ATTR_SPLIT_KEYS): { + assert(cframe.use_tracing == 0); + PyObject *owner = TOP(); + PyTypeObject *tp = Py_TYPE(owner); + SpecializedCacheEntry *caches = GET_CACHE(); + _PyAdaptiveEntry *cache0 = &caches[0].adaptive; + _PyAttrCache *cache1 = &caches[-1].attr; + assert(cache1->tp_version != 0); + DEOPT_IF(tp->tp_version_tag != cache1->tp_version, STORE_ATTR); + assert(tp->tp_dictoffset > 0); + PyDictObject *dict = *(PyDictObject **)(((char *)owner) + tp->tp_dictoffset); + DEOPT_IF(dict == NULL, STORE_ATTR); + assert(PyDict_CheckExact((PyObject *)dict)); + DEOPT_IF(dict->ma_keys->dk_version != cache1->dk_version_or_hint, STORE_ATTR); + /* Need to maintain ordering of dicts */ + DEOPT_IF(cache0->index > 0 && dict->ma_values[cache0->index-1] == NULL, STORE_ATTR); + STAT_INC(STORE_ATTR, hit); + record_cache_hit(cache0); + STACK_SHRINK(1); + PyObject *value = POP(); + PyObject *old_value = dict->ma_values[cache0->index]; + dict->ma_values[cache0->index] = value; + if (old_value == NULL) { + dict->ma_used++; + } + else { + Py_DECREF(old_value); + } + /* Ensure dict is GC tracked if it needs to be */ + if (!_PyObject_GC_IS_TRACKED(dict) && _PyObject_GC_MAY_BE_TRACKED(value)) { + _PyObject_GC_TRACK(dict); + } + /* PEP 509 */ + dict->ma_version_tag = DICT_NEXT_VERSION(); + Py_DECREF(owner); + DISPATCH(); + } + + case TARGET(STORE_ATTR_WITH_HINT): { + assert(cframe.use_tracing == 0); + PyObject *owner = TOP(); + PyTypeObject *tp = Py_TYPE(owner); + SpecializedCacheEntry *caches = GET_CACHE(); + _PyAdaptiveEntry *cache0 = &caches[0].adaptive; + _PyAttrCache *cache1 = &caches[-1].attr; + assert(cache1->tp_version != 0); + DEOPT_IF(tp->tp_version_tag != cache1->tp_version, STORE_ATTR); + assert(tp->tp_dictoffset > 0); + PyDictObject *dict = *(PyDictObject **)(((char *)owner) + tp->tp_dictoffset); + DEOPT_IF(dict == NULL, STORE_ATTR); + assert(PyDict_CheckExact((PyObject *)dict)); + PyObject *name = GETITEM(names, cache0->original_oparg); + uint32_t hint = cache1->dk_version_or_hint; + DEOPT_IF(hint >= dict->ma_keys->dk_nentries, STORE_ATTR); + PyDictKeyEntry *ep = DK_ENTRIES(dict->ma_keys) + hint; + DEOPT_IF(ep->me_key != name, STORE_ATTR); + PyObject *old_value = ep->me_value; + DEOPT_IF(old_value == NULL, STORE_ATTR); + STAT_INC(STORE_ATTR, hit); + record_cache_hit(cache0); + STACK_SHRINK(1); + PyObject *value = POP(); + ep->me_value = value; + Py_DECREF(old_value); + /* Ensure dict is GC tracked if it needs to be */ + if (!_PyObject_GC_IS_TRACKED(dict) && _PyObject_GC_MAY_BE_TRACKED(value)) { + _PyObject_GC_TRACK(dict); + } + /* PEP 509 */ + dict->ma_version_tag = DICT_NEXT_VERSION(); + Py_DECREF(owner); + DISPATCH(); + } + + case TARGET(STORE_ATTR_SLOT): { + assert(cframe.use_tracing == 0); + PyObject *owner = TOP(); + PyTypeObject *tp = Py_TYPE(owner); + SpecializedCacheEntry *caches = GET_CACHE(); + _PyAdaptiveEntry *cache0 = &caches[0].adaptive; + _PyAttrCache *cache1 = &caches[-1].attr; + assert(cache1->tp_version != 0); + DEOPT_IF(tp->tp_version_tag != cache1->tp_version, STORE_ATTR); + char *addr = (char *)owner + cache0->index; + STAT_INC(STORE_ATTR, hit); + record_cache_hit(cache0); + STACK_SHRINK(1); + PyObject *value = POP(); + PyObject *old_value = *(PyObject **)addr; + *(PyObject **)addr = value; + Py_XDECREF(old_value); + Py_DECREF(owner); + DISPATCH(); + } + case TARGET(COMPARE_OP): { assert(oparg <= Py_GE); PyObject *right = POP(); @@ -4429,6 +4545,7 @@ opname ## _miss: \ } MISS_WITH_CACHE(LOAD_ATTR) +MISS_WITH_CACHE(STORE_ATTR) MISS_WITH_CACHE(LOAD_GLOBAL) MISS_WITH_OPARG_COUNTER(BINARY_SUBSCR) diff --git a/Python/opcode_targets.h b/Python/opcode_targets.h index d88c766c07ab46..24ee44f2d08c07 100644 --- a/Python/opcode_targets.h +++ b/Python/opcode_targets.h @@ -43,10 +43,10 @@ static void *opcode_targets[256] = { &&TARGET_LOAD_GLOBAL_ADAPTIVE, &&TARGET_LOAD_GLOBAL_MODULE, &&TARGET_LOAD_GLOBAL_BUILTIN, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, - &&_unknown_opcode, + &&TARGET_STORE_ATTR_ADAPTIVE, + &&TARGET_STORE_ATTR_SPLIT_KEYS, + &&TARGET_STORE_ATTR_SLOT, + &&TARGET_STORE_ATTR_WITH_HINT, &&_unknown_opcode, &&TARGET_WITH_EXCEPT_START, &&TARGET_GET_AITER, diff --git a/Python/specialize.c b/Python/specialize.c index 1ca49d244a87b0..effbca269bff1b 100644 --- a/Python/specialize.c +++ b/Python/specialize.c @@ -173,6 +173,7 @@ _Py_PrintSpecializationStats(void) print_stats(out, &_specialization_stats[LOAD_ATTR], "load_attr"); print_stats(out, &_specialization_stats[LOAD_GLOBAL], "load_global"); print_stats(out, &_specialization_stats[BINARY_SUBSCR], "binary_subscr"); + print_stats(out, &_specialization_stats[STORE_ATTR], "store_attr"); if (out != stderr) { fclose(out); } @@ -262,13 +263,15 @@ static uint8_t adaptive_opcodes[256] = { [LOAD_ATTR] = LOAD_ATTR_ADAPTIVE, [LOAD_GLOBAL] = LOAD_GLOBAL_ADAPTIVE, [BINARY_SUBSCR] = BINARY_SUBSCR_ADAPTIVE, + [STORE_ATTR] = STORE_ATTR_ADAPTIVE, }; /* The number of cache entries required for a "family" of instructions. */ static uint8_t cache_requirements[256] = { - [LOAD_ATTR] = 2, /* _PyAdaptiveEntry and _PyLoadAttrCache */ + [LOAD_ATTR] = 2, /* _PyAdaptiveEntry and _PyAttrCache */ [LOAD_GLOBAL] = 2, /* _PyAdaptiveEntry and _PyLoadGlobalCache */ [BINARY_SUBSCR] = 0, + [STORE_ATTR] = 2, /* _PyAdaptiveEntry and _PyAttrCache */ }; /* Return the oparg for the cache_offset and instruction index. @@ -416,7 +419,7 @@ _Py_Quicken(PyCodeObject *code) { static int specialize_module_load_attr( PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, - _PyAdaptiveEntry *cache0, _PyLoadAttrCache *cache1) + _PyAdaptiveEntry *cache0, _PyAttrCache *cache1) { PyModuleObject *m = (PyModuleObject *)owner; PyObject *value = NULL; @@ -475,15 +478,24 @@ typedef enum { MUTABLE, /* Instance of a mutable class; might, or might not, be a descriptor */ ABSENT, /* Attribute is not present on the class */ DUNDER_CLASS, /* __class__ attribute */ - GETATTRIBUTE_OVERRIDDEN /* __getattribute__ has been overridden */ + GETSET_OVERRIDDEN /* __getattribute__ or __setattr__ has been overridden */ } DesciptorClassification; + static DesciptorClassification -analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr) +analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr, int store) { - if (type->tp_getattro != PyObject_GenericGetAttr) { - *descr = NULL; - return GETATTRIBUTE_OVERRIDDEN; + if (store) { + if (type->tp_setattro != PyObject_GenericSetAttr) { + *descr = NULL; + return GETSET_OVERRIDDEN; + } + } + else { + if (type->tp_getattro != PyObject_GenericGetAttr) { + *descr = NULL; + return GETSET_OVERRIDDEN; + } } PyObject *descriptor = _PyType_Lookup(type, name); *descr = descriptor; @@ -522,11 +534,92 @@ analyze_descriptor(PyTypeObject *type, PyObject *name, PyObject **descr) return NON_DESCRIPTOR; } +static int +specialize_dict_access( + PyObject *owner, _Py_CODEUNIT *instr, PyTypeObject *type, + DesciptorClassification kind, PyObject *name, + _PyAdaptiveEntry *cache0, _PyAttrCache *cache1, + int base_op, int split_op, int hint_op) +{ + assert(kind == NON_OVERRIDING || kind == NON_DESCRIPTOR || kind == ABSENT); + // No desciptor, or non overriding. + if (type->tp_dictoffset < 0) { + SPECIALIZATION_FAIL(base_op, type, name, "negative offset"); + return 0; + } + if (type->tp_dictoffset > 0) { + PyObject **dictptr = (PyObject **) ((char *)owner + type->tp_dictoffset); + if (*dictptr == NULL || !PyDict_CheckExact(*dictptr)) { + SPECIALIZATION_FAIL(base_op, type, name, "no dict or not a dict"); + return 0; + } + // We found an instance with a __dict__. + PyDictObject *dict = (PyDictObject *)*dictptr; + if ((type->tp_flags & Py_TPFLAGS_HEAPTYPE) + && dict->ma_keys == ((PyHeapTypeObject*)type)->ht_cached_keys + ) { + // Keys are shared + assert(PyUnicode_CheckExact(name)); + Py_hash_t hash = PyObject_Hash(name); + if (hash == -1) { + return -1; + } + PyObject *value; + Py_ssize_t index = _Py_dict_lookup(dict, name, hash, &value); + assert (index != DKIX_ERROR); + if (index != (uint16_t)index) { + SPECIALIZATION_FAIL(base_op, type, name, + index < 0 ? "attribute not in dict" : "index out of range"); + return 0; + } + uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(dict); + if (keys_version == 0) { + SPECIALIZATION_FAIL(base_op, type, name, "no more key versions"); + return 0; + } + cache1->dk_version_or_hint = keys_version; + cache1->tp_version = type->tp_version_tag; + cache0->index = (uint16_t)index; + *instr = _Py_MAKECODEUNIT(split_op, _Py_OPARG(*instr)); + return 0; + } + else { + PyObject *value = NULL; + Py_ssize_t hint = + _PyDict_GetItemHint(dict, name, -1, &value); + if (hint != (uint32_t)hint) { + SPECIALIZATION_FAIL(base_op, type, name, "hint out of range"); + return 0; + } + cache1->dk_version_or_hint = (uint32_t)hint; + cache1->tp_version = type->tp_version_tag; + *instr = _Py_MAKECODEUNIT(hint_op, _Py_OPARG(*instr)); + return 1; + } + } + assert(type->tp_dictoffset == 0); + /* No attribute in instance dictionary */ + switch(kind) { + case NON_OVERRIDING: + SPECIALIZATION_FAIL(base_op, type, name, "non-overriding descriptor"); + return 0; + case NON_DESCRIPTOR: + /* To do -- Optimize this case */ + SPECIALIZATION_FAIL(base_op, type, name, "non descriptor"); + return 0; + case ABSENT: + SPECIALIZATION_FAIL(base_op, type, name, "no attribute"); + return 0; + default: + Py_UNREACHABLE(); + } +} + int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache) { _PyAdaptiveEntry *cache0 = &cache->adaptive; - _PyLoadAttrCache *cache1 = &cache[-1].load_attr; + _PyAttrCache *cache1 = &cache[-1].attr; if (PyModule_CheckExact(owner)) { int err = specialize_module_load_attr(owner, instr, name, cache0, cache1); if (err) { @@ -541,7 +634,7 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, Sp } } PyObject *descr; - DesciptorClassification kind = analyze_descriptor(type, name, &descr); + DesciptorClassification kind = analyze_descriptor(type, name, &descr, 0); switch(kind) { case OVERRIDING: SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "overriding descriptor"); @@ -557,6 +650,10 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, Sp PyMemberDescrObject *member = (PyMemberDescrObject *)descr; struct PyMemberDef *dmem = member->d_member; Py_ssize_t offset = dmem->offset; + if (dmem->flags & PY_AUDIT_READ) { + SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "audit read"); + goto fail; + } if (offset != (uint16_t)offset) { SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "offset out of range"); goto fail; @@ -583,7 +680,7 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, Sp case MUTABLE: SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "mutable class attribute"); goto fail; - case GETATTRIBUTE_OVERRIDDEN: + case GETSET_OVERRIDDEN: SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "__getattribute__ overridden"); goto fail; case NON_OVERRIDING: @@ -591,90 +688,109 @@ _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, Sp case ABSENT: break; } - assert(kind == NON_OVERRIDING || kind == NON_DESCRIPTOR || kind == ABSENT); - // No desciptor, or non overriding. - if (type->tp_dictoffset < 0) { - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "negative offset"); + int err = specialize_dict_access( + owner, instr, type, kind, name, cache0, cache1, + LOAD_ATTR, LOAD_ATTR_SPLIT_KEYS, LOAD_ATTR_WITH_HINT + ); + if (err < 0) { + return -1; + } + if (err) { + goto success; + } +fail: + STAT_INC(LOAD_ATTR, specialization_failure); + assert(!PyErr_Occurred()); + cache_backoff(cache0); + return 0; +success: + STAT_INC(LOAD_ATTR, specialization_success); + assert(!PyErr_Occurred()); + cache0->counter = saturating_start(); + return 0; +} + +int +_Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name, SpecializedCacheEntry *cache) +{ + _PyAdaptiveEntry *cache0 = &cache->adaptive; + _PyAttrCache *cache1 = &cache[-1].attr; + PyTypeObject *type = Py_TYPE(owner); + if (PyModule_CheckExact(owner)) { + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "module attribute"); goto fail; } - if (type->tp_dictoffset > 0) { - PyObject **dictptr = (PyObject **) ((char *)owner + type->tp_dictoffset); - if (*dictptr == NULL || !PyDict_CheckExact(*dictptr)) { - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "no dict or not a dict"); + PyObject *descr; + DesciptorClassification kind = analyze_descriptor(type, name, &descr, 1); + switch(kind) { + case OVERRIDING: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "overriding descriptor"); goto fail; - } - // We found an instance with a __dict__. - PyDictObject *dict = (PyDictObject *)*dictptr; - if ((type->tp_flags & Py_TPFLAGS_HEAPTYPE) - && dict->ma_keys == ((PyHeapTypeObject*)type)->ht_cached_keys - ) { - // Keys are shared - assert(PyUnicode_CheckExact(name)); - Py_hash_t hash = PyObject_Hash(name); - if (hash == -1) { - return -1; - } - PyObject *value; - Py_ssize_t index = _Py_dict_lookup(dict, name, hash, &value); - assert (index != DKIX_ERROR); - if (index != (uint16_t)index) { - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, - index < 0 ? "attribute not in dict" : "index out of range"); - goto fail; - } - uint32_t keys_version = _PyDictKeys_GetVersionForCurrentState(dict); - if (keys_version == 0) { - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "no more key versions"); + case METHOD: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "method"); + goto fail; + case PROPERTY: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "property"); + goto fail; + case OBJECT_SLOT: + { + PyMemberDescrObject *member = (PyMemberDescrObject *)descr; + struct PyMemberDef *dmem = member->d_member; + Py_ssize_t offset = dmem->offset; + if (dmem->flags & READONLY) { + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "read only"); goto fail; } - cache1->dk_version_or_hint = keys_version; - cache1->tp_version = type->tp_version_tag; - cache0->index = (uint16_t)index; - *instr = _Py_MAKECODEUNIT(LOAD_ATTR_SPLIT_KEYS, _Py_OPARG(*instr)); - goto success; - } - else { - PyObject *value = NULL; - Py_ssize_t hint = - _PyDict_GetItemHint(dict, name, -1, &value); - if (hint != (uint32_t)hint) { - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "hint out of range"); + if (offset != (uint16_t)offset) { + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "offset out of range"); goto fail; } - cache1->dk_version_or_hint = (uint32_t)hint; + assert(dmem->type == T_OBJECT_EX); + assert(offset > 0); + cache0->index = (uint16_t)offset; cache1->tp_version = type->tp_version_tag; - *instr = _Py_MAKECODEUNIT(LOAD_ATTR_WITH_HINT, _Py_OPARG(*instr)); + *instr = _Py_MAKECODEUNIT(STORE_ATTR_SLOT, _Py_OPARG(*instr)); goto success; } - } - assert(type->tp_dictoffset == 0); - /* No attribute in instance dictionary */ - switch(kind) { - case NON_OVERRIDING: - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "non-overriding descriptor"); + case DUNDER_CLASS: + case OTHER_SLOT: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "other slot"); goto fail; - case NON_DESCRIPTOR: - /* To do -- Optimize this case */ - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "non descriptor"); + case MUTABLE: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "mutable class attribute"); goto fail; - case ABSENT: - SPECIALIZATION_FAIL(LOAD_ATTR, type, name, "no attribute"); + case GETSET_OVERRIDDEN: + SPECIALIZATION_FAIL(STORE_ATTR, type, name, "__setattr__ overridden"); goto fail; - default: - Py_UNREACHABLE(); + case NON_OVERRIDING: + case NON_DESCRIPTOR: + case ABSENT: + break; + } + + int err = specialize_dict_access( + owner, instr, type, kind, name, cache0, cache1, + STORE_ATTR, STORE_ATTR_SPLIT_KEYS, STORE_ATTR_WITH_HINT + ); + if (err < 0) { + return -1; + } + if (err) { + goto success; } fail: - STAT_INC(LOAD_ATTR, specialization_failure); + STAT_INC(STORE_ATTR, specialization_failure); assert(!PyErr_Occurred()); cache_backoff(cache0); return 0; success: - STAT_INC(LOAD_ATTR, specialization_success); + STAT_INC(STORE_ATTR, specialization_success); assert(!PyErr_Occurred()); cache0->counter = saturating_start(); return 0; } + int _Py_Specialize_LoadGlobal( PyObject *globals, PyObject *builtins, From webhook-mailer at python.org Mon Aug 9 05:54:53 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 09 Aug 2021 09:54:53 -0000 Subject: [Python-checkins] bpo-44840: Compiler: Move duplication of exit blocks with no line numbers to after CFG optimization. (GH-27656) (#27673) Message-ID: https://github.com/python/cpython/commit/762ef85f441cdec002cb4e812b9e77ae5033e571 commit: 762ef85f441cdec002cb4e812b9e77ae5033e571 branch: 3.10 author: Mark Shannon committer: pablogsal date: 2021-08-09T10:54:48+01:00 summary: bpo-44840: Compiler: Move duplication of exit blocks with no line numbers to after CFG optimization. (GH-27656) (#27673) (cherry picked from commit b854557b49083d8625a433eb36aacb0c87d67c52) files: M Lib/test/test_dis.py M Lib/test/test_sys_settrace.py M Python/compile.c M Python/importlib.h M Python/importlib_external.h M Python/importlib_zipimport.h diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index a8c2e4d153b8f..d03aa75a6a9a0 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -1059,17 +1059,17 @@ def jumpy(): Instruction(opname='LOAD_CONST', opcode=100, arg=6, argval='Who let lolcatz into this test suite?', argrepr="'Who let lolcatz into this test suite?'", offset=98, starts_line=None, is_jump_target=False), Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=100, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=102, starts_line=None, is_jump_target=False), - Instruction(opname='SETUP_FINALLY', opcode=122, arg=48, argval=202, argrepr='to 202', offset=104, starts_line=20, is_jump_target=True), + Instruction(opname='SETUP_FINALLY', opcode=122, arg=63, argval=232, argrepr='to 232', offset=104, starts_line=20, is_jump_target=True), Instruction(opname='SETUP_FINALLY', opcode=122, arg=6, argval=120, argrepr='to 120', offset=106, starts_line=None, is_jump_target=False), Instruction(opname='LOAD_CONST', opcode=100, arg=5, argval=1, argrepr='1', offset=108, starts_line=21, is_jump_target=False), Instruction(opname='LOAD_CONST', opcode=100, arg=7, argval=0, argrepr='0', offset=110, starts_line=None, is_jump_target=False), Instruction(opname='BINARY_TRUE_DIVIDE', opcode=27, arg=None, argval=None, argrepr='', offset=112, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=114, starts_line=None, is_jump_target=False), Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=116, starts_line=None, is_jump_target=False), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=12, argval=144, argrepr='to 144', offset=118, starts_line=None, is_jump_target=False), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=13, argval=146, argrepr='to 146', offset=118, starts_line=None, is_jump_target=False), Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=120, starts_line=22, is_jump_target=True), Instruction(opname='LOAD_GLOBAL', opcode=116, arg=2, argval='ZeroDivisionError', argrepr='ZeroDivisionError', offset=122, starts_line=None, is_jump_target=False), - Instruction(opname='JUMP_IF_NOT_EXC_MATCH', opcode=121, arg=120, argval=240, argrepr='to 240', offset=124, starts_line=None, is_jump_target=False), + Instruction(opname='JUMP_IF_NOT_EXC_MATCH', opcode=121, arg=72, argval=144, argrepr='to 144', offset=124, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=126, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=128, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=130, starts_line=None, is_jump_target=False), @@ -1078,56 +1078,56 @@ def jumpy(): Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=136, starts_line=None, is_jump_target=False), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=138, starts_line=None, is_jump_target=False), Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=140, starts_line=None, is_jump_target=False), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=41, argval=226, argrepr='to 226', offset=142, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=144, starts_line=25, is_jump_target=True), - Instruction(opname='SETUP_WITH', opcode=143, arg=12, argval=172, argrepr='to 172', offset=146, starts_line=None, is_jump_target=False), - Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=148, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=150, starts_line=26, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=152, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=154, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=156, starts_line=None, is_jump_target=False), - Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=158, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=160, starts_line=25, is_jump_target=False), - Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=162, starts_line=None, is_jump_target=False), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=30, argval=204, argrepr='to 204', offset=142, starts_line=None, is_jump_target=False), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=144, starts_line=22, is_jump_target=True), + Instruction(opname='LOAD_FAST', opcode=124, arg=0, argval='i', argrepr='i', offset=146, starts_line=25, is_jump_target=True), + Instruction(opname='SETUP_WITH', opcode=143, arg=12, argval=174, argrepr='to 174', offset=148, starts_line=None, is_jump_target=False), + Instruction(opname='STORE_FAST', opcode=125, arg=1, argval='dodgy', argrepr='dodgy', offset=150, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=152, starts_line=26, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=9, argval='Never reach this', argrepr="'Never reach this'", offset=154, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=156, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=158, starts_line=None, is_jump_target=False), + Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=160, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=162, starts_line=25, is_jump_target=False), Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=164, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=166, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=168, starts_line=None, is_jump_target=False), - Instruction(opname='JUMP_FORWARD', opcode=110, arg=20, argval=212, argrepr='to 212', offset=170, starts_line=None, is_jump_target=False), - Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=172, starts_line=None, is_jump_target=True), - Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=89, argval=178, argrepr='to 178', offset=174, starts_line=None, is_jump_target=False), - Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=176, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=178, starts_line=None, is_jump_target=True), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=False), + Instruction(opname='DUP_TOP', opcode=4, arg=None, argval=None, argrepr='', offset=166, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=3, argval=3, argrepr='', offset=168, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=170, starts_line=None, is_jump_target=False), + Instruction(opname='JUMP_FORWARD', opcode=110, arg=22, argval=218, argrepr='to 218', offset=172, starts_line=None, is_jump_target=False), + Instruction(opname='WITH_EXCEPT_START', opcode=49, arg=None, argval=None, argrepr='', offset=174, starts_line=None, is_jump_target=True), + Instruction(opname='POP_JUMP_IF_TRUE', opcode=115, arg=90, argval=180, argrepr='to 180', offset=176, starts_line=None, is_jump_target=False), + Instruction(opname='RERAISE', opcode=119, arg=1, argval=1, argrepr='', offset=178, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=180, starts_line=None, is_jump_target=True), Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=182, starts_line=None, is_jump_target=False), - Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=184, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False), - Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=190, starts_line=28, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=192, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=194, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=196, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=198, starts_line=None, is_jump_target=False), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=200, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=202, starts_line=None, is_jump_target=True), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=204, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=206, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=208, starts_line=None, is_jump_target=False), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=210, starts_line=None, is_jump_target=False), - Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=212, starts_line=25, is_jump_target=True), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=214, starts_line=28, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=216, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=218, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=220, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=222, starts_line=None, is_jump_target=False), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=224, starts_line=None, is_jump_target=False), - Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=226, starts_line=23, is_jump_target=True), - Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=228, starts_line=28, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=230, starts_line=None, is_jump_target=False), - Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=232, starts_line=None, is_jump_target=False), - Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=234, starts_line=None, is_jump_target=False), - Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=236, starts_line=None, is_jump_target=False), - Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=238, starts_line=None, is_jump_target=False), - Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=240, starts_line=22, is_jump_target=True), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=184, starts_line=None, is_jump_target=False), + Instruction(opname='POP_EXCEPT', opcode=89, arg=None, argval=None, argrepr='', offset=186, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=188, starts_line=None, is_jump_target=False), + Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=190, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=192, starts_line=28, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=194, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=196, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=198, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=200, starts_line=None, is_jump_target=False), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=202, starts_line=None, is_jump_target=False), + Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=204, starts_line=23, is_jump_target=True), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=206, starts_line=28, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=208, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=210, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=212, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=214, starts_line=None, is_jump_target=False), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=216, starts_line=None, is_jump_target=False), + Instruction(opname='POP_BLOCK', opcode=87, arg=None, argval=None, argrepr='', offset=218, starts_line=25, is_jump_target=True), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=220, starts_line=28, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=222, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=224, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=226, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_CONST', opcode=100, arg=0, argval=None, argrepr='None', offset=228, starts_line=None, is_jump_target=False), + Instruction(opname='RETURN_VALUE', opcode=83, arg=None, argval=None, argrepr='', offset=230, starts_line=None, is_jump_target=False), + Instruction(opname='LOAD_GLOBAL', opcode=116, arg=1, argval='print', argrepr='print', offset=232, starts_line=None, is_jump_target=True), + Instruction(opname='LOAD_CONST', opcode=100, arg=10, argval="OK, now we're done", argrepr='"OK, now we\'re done"', offset=234, starts_line=None, is_jump_target=False), + Instruction(opname='CALL_FUNCTION', opcode=131, arg=1, argval=1, argrepr='', offset=236, starts_line=None, is_jump_target=False), + Instruction(opname='POP_TOP', opcode=1, arg=None, argval=None, argrepr='', offset=238, starts_line=None, is_jump_target=False), + Instruction(opname='RERAISE', opcode=119, arg=0, argval=0, argrepr='', offset=240, starts_line=None, is_jump_target=False), ] # One last piece of inspect fodder to check the default line number handling diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py index 213c88b404010..4f13bbd6bfda2 100644 --- a/Lib/test/test_sys_settrace.py +++ b/Lib/test/test_sys_settrace.py @@ -894,6 +894,29 @@ def func(): (4, 'line'), (4, 'return')]) + def test_nested_ifs_with_and(self): + + def func(): + if A: + if B: + if C: + if D: + return False + else: + return False + elif E and F: + return True + + A = B = True + C = False + + self.run_and_compare(func, + [(0, 'call'), + (1, 'line'), + (2, 'line'), + (3, 'line'), + (3, 'return')]) + def test_nested_try_if(self): def func(): diff --git a/Python/compile.c b/Python/compile.c index de2a6bf296a4e..edc77e50c9b6c 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -862,7 +862,7 @@ compiler_copy_block(struct compiler *c, basicblock *block) * a block can only have one fallthrough predecessor. */ assert(block->b_nofallthrough); - basicblock *result = compiler_next_block(c); + basicblock *result = compiler_new_block(c); if (result == NULL) { return NULL; } @@ -6980,8 +6980,9 @@ normalize_basic_block(basicblock *bb); static int optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts); +/* Duplicates exit BBs, so that line numbers can be propagated to them */ static int -ensure_exits_have_lineno(struct compiler *c); +duplicate_exits_without_lineno(struct compiler *c); static int extend_block(basicblock *bb); @@ -7035,10 +7036,10 @@ guarantee_lineno_for_exits(struct assembler *a, int firstlineno) { } struct instr *last = &b->b_instr[b->b_iused-1]; if (last->i_lineno < 0) { - if (last->i_opcode == RETURN_VALUE) - { + if (last->i_opcode == RETURN_VALUE) { for (int i = 0; i < b->b_iused; i++) { assert(b->b_instr[i].i_lineno < 0); + b->b_instr[i].i_lineno = lineno; } } @@ -7049,6 +7050,9 @@ guarantee_lineno_for_exits(struct assembler *a, int firstlineno) { } } +static void +propagate_line_numbers(struct assembler *a); + static PyCodeObject * assemble(struct compiler *c, int addNone) { @@ -7081,10 +7085,6 @@ assemble(struct compiler *c, int addNone) } } - if (ensure_exits_have_lineno(c)) { - return NULL; - } - nblocks = 0; entryblock = NULL; for (b = c->u->u_blocks; b != NULL; b = b->b_list) { @@ -7118,8 +7118,11 @@ assemble(struct compiler *c, int addNone) if (optimize_cfg(c, &a, consts)) { goto error; } + if (duplicate_exits_without_lineno(c)) { + return NULL; + } + propagate_line_numbers(&a); guarantee_lineno_for_exits(&a, c->u->u_firstlineno); - /* Can't modify the bytecode after computing jump offsets. */ assemble_jump_offsets(&a, c); @@ -7691,7 +7694,7 @@ eliminate_empty_basic_blocks(basicblock *entry) { * but has no impact on the generated line number events. */ static void -propogate_line_numbers(struct assembler *a) { +propagate_line_numbers(struct assembler *a) { for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { if (b->b_iused == 0) { continue; @@ -7748,6 +7751,11 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) clean_basic_block(b, -1); assert(b->b_predecessors == 0); } + for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { + if (extend_block(b)) { + return -1; + } + } if (mark_reachable(a)) { return -1; } @@ -7792,7 +7800,6 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) if (maybe_empty_blocks) { eliminate_empty_basic_blocks(a->a_entry); } - propogate_line_numbers(a); return 0; } @@ -7811,7 +7818,7 @@ is_exit_without_lineno(basicblock *b) { * copy the line number from the sole predecessor block. */ static int -ensure_exits_have_lineno(struct compiler *c) +duplicate_exits_without_lineno(struct compiler *c) { basicblock *entry = NULL; /* Copy all exit blocks without line number that are targets of a jump. @@ -7826,21 +7833,22 @@ ensure_exits_have_lineno(struct compiler *c) continue; } basicblock *target = b->b_instr[b->b_iused-1].i_target; - if (is_exit_without_lineno(target)) { + if (is_exit_without_lineno(target) && target->b_predecessors > 1) { basicblock *new_target = compiler_copy_block(c, target); if (new_target == NULL) { return -1; } new_target->b_instr[0].i_lineno = b->b_instr[b->b_iused-1].i_lineno; b->b_instr[b->b_iused-1].i_target = new_target; + target->b_predecessors--; + new_target->b_predecessors = 1; + new_target->b_next = target->b_next; + target->b_next = new_target; } } entry = b; } assert(entry != NULL); - if (is_exit_without_lineno(entry)) { - entry->b_instr[0].i_lineno = c->u->u_firstlineno; - } /* Eliminate empty blocks */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { while (b->b_next && b->b_next->b_iused == 0) { diff --git a/Python/importlib.h b/Python/importlib.h index a992340ddb8f2..ef2870596e793 100644 --- a/Python/importlib.h +++ b/Python/importlib.h @@ -189,17 +189,17 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 117,108,101,76,111,99,107,46,97,99,113,117,105,114,101,99, 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, 8,0,0,0,67,0,0,0,115,176,0,0,0,116,0,160, - 1,161,0,125,1,124,0,106,2,143,55,1,0,124,0,106, + 1,161,0,125,1,124,0,106,2,143,71,1,0,124,0,106, 3,124,1,107,3,114,17,116,4,100,1,131,1,130,1,124, 0,106,5,100,2,107,4,115,24,74,0,130,1,124,0,4, 0,106,5,100,3,56,0,2,0,95,5,124,0,106,5,100, - 2,107,2,114,80,100,0,124,0,95,3,124,0,106,6,114, - 72,124,0,4,0,106,6,100,3,56,0,2,0,95,6,124, + 2,107,2,114,62,100,0,124,0,95,3,124,0,106,6,114, + 70,124,0,4,0,106,6,100,3,56,0,2,0,95,6,124, 0,106,7,160,8,161,0,1,0,87,0,100,0,4,0,4, - 0,131,3,1,0,100,0,83,0,49,0,115,65,119,1,1, - 0,1,0,1,0,89,0,1,0,100,0,83,0,87,0,100, - 0,4,0,4,0,131,3,1,0,100,0,83,0,87,0,100, - 0,4,0,4,0,131,3,1,0,100,0,83,0,41,4,78, + 0,131,3,1,0,100,0,83,0,87,0,100,0,4,0,4, + 0,131,3,1,0,100,0,83,0,87,0,100,0,4,0,4, + 0,131,3,1,0,100,0,83,0,49,0,115,81,119,1,1, + 0,1,0,1,0,89,0,1,0,100,0,83,0,41,4,78, 250,31,99,97,110,110,111,116,32,114,101,108,101,97,115,101, 32,117,110,45,97,99,113,117,105,114,101,100,32,108,111,99, 107,114,25,0,0,0,114,42,0,0,0,41,9,114,26,0, @@ -209,8 +209,8 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,0,114,45,0,0,0,114,5,0,0,0,114,5,0, 0,0,114,6,0,0,0,114,44,0,0,0,125,0,0,0, 115,32,0,0,0,8,1,8,1,10,1,8,1,14,1,14, - 1,10,1,6,1,6,1,14,1,12,1,34,247,2,7,14, - 249,2,5,14,251,122,19,95,77,111,100,117,108,101,76,111, + 1,10,1,6,1,6,1,14,1,12,1,14,247,2,5,14, + 251,2,7,34,249,122,19,95,77,111,100,117,108,101,76,111, 99,107,46,114,101,108,101,97,115,101,99,1,0,0,0,0, 0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,67, 0,0,0,243,18,0,0,0,100,1,160,0,124,0,106,1, @@ -319,715 +319,717 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,114,6,0,0,0,114,57,0,0,0,163,0,0,0,115, 8,0,0,0,8,0,8,2,8,4,12,4,114,57,0,0, 0,99,1,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,8,0,0,0,67,0,0,0,115,146,0,0,0,116, - 0,160,1,161,0,1,0,122,55,122,7,116,2,124,0,25, - 0,131,0,125,1,87,0,110,9,4,0,116,3,121,72,1, - 0,1,0,1,0,100,1,125,1,89,0,124,1,100,1,117, - 0,114,65,116,4,100,1,117,0,114,35,116,5,124,0,131, - 1,125,1,110,4,116,6,124,0,131,1,125,1,124,0,102, - 1,100,2,100,3,132,1,125,2,116,7,160,8,124,1,124, - 2,161,2,116,2,124,0,60,0,87,0,116,0,160,9,161, - 0,1,0,124,1,83,0,116,0,160,9,161,0,1,0,119, - 0,87,0,116,0,160,9,161,0,1,0,124,1,83,0,119, - 0,41,4,122,139,71,101,116,32,111,114,32,99,114,101,97, - 116,101,32,116,104,101,32,109,111,100,117,108,101,32,108,111, - 99,107,32,102,111,114,32,97,32,103,105,118,101,110,32,109, - 111,100,117,108,101,32,110,97,109,101,46,10,10,32,32,32, - 32,65,99,113,117,105,114,101,47,114,101,108,101,97,115,101, - 32,105,110,116,101,114,110,97,108,108,121,32,116,104,101,32, - 103,108,111,98,97,108,32,105,109,112,111,114,116,32,108,111, - 99,107,32,116,111,32,112,114,111,116,101,99,116,10,32,32, - 32,32,95,109,111,100,117,108,101,95,108,111,99,107,115,46, - 78,99,2,0,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,8,0,0,0,83,0,0,0,115,68,0,0,0,116, - 0,160,1,161,0,1,0,122,17,116,2,160,3,124,1,161, - 1,124,0,117,0,114,27,116,2,124,1,61,0,87,0,116, + 0,0,8,0,0,0,67,0,0,0,115,148,0,0,0,116, + 0,160,1,161,0,1,0,122,64,122,7,116,2,124,0,25, + 0,131,0,125,1,87,0,110,11,4,0,116,3,121,23,1, + 0,1,0,1,0,100,1,125,1,89,0,110,1,119,0,124, + 1,100,1,117,0,114,62,116,4,100,1,117,0,114,37,116, + 5,124,0,131,1,125,1,110,4,116,6,124,0,131,1,125, + 1,124,0,102,1,100,2,100,3,132,1,125,2,116,7,160, + 8,124,1,124,2,161,2,116,2,124,0,60,0,87,0,116, + 0,160,9,161,0,1,0,124,1,83,0,87,0,116,0,160, + 9,161,0,1,0,124,1,83,0,116,0,160,9,161,0,1, + 0,119,0,41,4,122,139,71,101,116,32,111,114,32,99,114, + 101,97,116,101,32,116,104,101,32,109,111,100,117,108,101,32, + 108,111,99,107,32,102,111,114,32,97,32,103,105,118,101,110, + 32,109,111,100,117,108,101,32,110,97,109,101,46,10,10,32, + 32,32,32,65,99,113,117,105,114,101,47,114,101,108,101,97, + 115,101,32,105,110,116,101,114,110,97,108,108,121,32,116,104, + 101,32,103,108,111,98,97,108,32,105,109,112,111,114,116,32, + 108,111,99,107,32,116,111,32,112,114,111,116,101,99,116,10, + 32,32,32,32,95,109,111,100,117,108,101,95,108,111,99,107, + 115,46,78,99,2,0,0,0,0,0,0,0,0,0,0,0, + 2,0,0,0,8,0,0,0,83,0,0,0,115,68,0,0, + 0,116,0,160,1,161,0,1,0,122,24,116,2,160,3,124, + 1,161,1,124,0,117,0,114,22,116,2,124,1,61,0,87, + 0,116,0,160,4,161,0,1,0,100,0,83,0,87,0,116, 0,160,4,161,0,1,0,100,0,83,0,116,0,160,4,161, - 0,1,0,119,0,87,0,116,0,160,4,161,0,1,0,100, - 0,83,0,114,0,0,0,0,41,5,218,4,95,105,109,112, - 218,12,97,99,113,117,105,114,101,95,108,111,99,107,218,13, - 95,109,111,100,117,108,101,95,108,111,99,107,115,114,38,0, - 0,0,218,12,114,101,108,101,97,115,101,95,108,111,99,107, - 41,2,218,3,114,101,102,114,20,0,0,0,114,5,0,0, - 0,114,5,0,0,0,114,6,0,0,0,218,2,99,98,198, - 0,0,0,115,14,0,0,0,8,1,2,1,14,4,8,1, - 22,2,2,253,12,3,122,28,95,103,101,116,95,109,111,100, - 117,108,101,95,108,111,99,107,46,60,108,111,99,97,108,115, - 62,46,99,98,41,10,114,64,0,0,0,114,65,0,0,0, - 114,66,0,0,0,218,8,75,101,121,69,114,114,111,114,114, - 26,0,0,0,114,55,0,0,0,114,23,0,0,0,218,8, - 95,119,101,97,107,114,101,102,114,68,0,0,0,114,67,0, - 0,0,41,3,114,20,0,0,0,114,27,0,0,0,114,69, + 0,1,0,119,0,114,0,0,0,0,41,5,218,4,95,105, + 109,112,218,12,97,99,113,117,105,114,101,95,108,111,99,107, + 218,13,95,109,111,100,117,108,101,95,108,111,99,107,115,114, + 38,0,0,0,218,12,114,101,108,101,97,115,101,95,108,111, + 99,107,41,2,218,3,114,101,102,114,20,0,0,0,114,5, + 0,0,0,114,5,0,0,0,114,6,0,0,0,218,2,99, + 98,198,0,0,0,115,14,0,0,0,8,1,2,1,14,4, + 8,1,12,2,2,253,22,3,122,28,95,103,101,116,95,109, + 111,100,117,108,101,95,108,111,99,107,46,60,108,111,99,97, + 108,115,62,46,99,98,41,10,114,64,0,0,0,114,65,0, + 0,0,114,66,0,0,0,218,8,75,101,121,69,114,114,111, + 114,114,26,0,0,0,114,55,0,0,0,114,23,0,0,0, + 218,8,95,119,101,97,107,114,101,102,114,68,0,0,0,114, + 67,0,0,0,41,3,114,20,0,0,0,114,27,0,0,0, + 114,69,0,0,0,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,114,60,0,0,0,179,0,0,0,115,38,0, + 0,0,8,6,2,1,2,1,14,1,12,1,8,1,2,255, + 8,3,8,1,10,1,8,2,12,2,18,11,8,2,4,2, + 2,235,8,19,4,2,10,254,114,60,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0, + 0,0,67,0,0,0,115,54,0,0,0,116,0,124,0,131, + 1,125,1,122,6,124,1,160,1,161,0,1,0,87,0,110, + 10,4,0,116,2,121,20,1,0,1,0,1,0,89,0,100, + 1,83,0,119,0,124,1,160,3,161,0,1,0,100,1,83, + 0,41,2,122,189,65,99,113,117,105,114,101,115,32,116,104, + 101,110,32,114,101,108,101,97,115,101,115,32,116,104,101,32, + 109,111,100,117,108,101,32,108,111,99,107,32,102,111,114,32, + 97,32,103,105,118,101,110,32,109,111,100,117,108,101,32,110, + 97,109,101,46,10,10,32,32,32,32,84,104,105,115,32,105, + 115,32,117,115,101,100,32,116,111,32,101,110,115,117,114,101, + 32,97,32,109,111,100,117,108,101,32,105,115,32,99,111,109, + 112,108,101,116,101,108,121,32,105,110,105,116,105,97,108,105, + 122,101,100,44,32,105,110,32,116,104,101,10,32,32,32,32, + 101,118,101,110,116,32,105,116,32,105,115,32,98,101,105,110, + 103,32,105,109,112,111,114,116,101,100,32,98,121,32,97,110, + 111,116,104,101,114,32,116,104,114,101,97,100,46,10,32,32, + 32,32,78,41,4,114,60,0,0,0,114,43,0,0,0,114, + 22,0,0,0,114,44,0,0,0,41,2,114,20,0,0,0, + 114,27,0,0,0,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,218,19,95,108,111,99,107,95,117,110,108,111, + 99,107,95,109,111,100,117,108,101,216,0,0,0,115,14,0, + 0,0,8,6,2,1,12,1,12,1,6,3,2,253,12,5, + 114,72,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,3,0,0,0,4,0,0,0,79,0,0,0,115,14, + 0,0,0,124,0,124,1,105,0,124,2,164,1,142,1,83, + 0,41,2,97,46,1,0,0,114,101,109,111,118,101,95,105, + 109,112,111,114,116,108,105,98,95,102,114,97,109,101,115,32, + 105,110,32,105,109,112,111,114,116,46,99,32,119,105,108,108, + 32,97,108,119,97,121,115,32,114,101,109,111,118,101,32,115, + 101,113,117,101,110,99,101,115,10,32,32,32,32,111,102,32, + 105,109,112,111,114,116,108,105,98,32,102,114,97,109,101,115, + 32,116,104,97,116,32,101,110,100,32,119,105,116,104,32,97, + 32,99,97,108,108,32,116,111,32,116,104,105,115,32,102,117, + 110,99,116,105,111,110,10,10,32,32,32,32,85,115,101,32, + 105,116,32,105,110,115,116,101,97,100,32,111,102,32,97,32, + 110,111,114,109,97,108,32,99,97,108,108,32,105,110,32,112, + 108,97,99,101,115,32,119,104,101,114,101,32,105,110,99,108, + 117,100,105,110,103,32,116,104,101,32,105,109,112,111,114,116, + 108,105,98,10,32,32,32,32,102,114,97,109,101,115,32,105, + 110,116,114,111,100,117,99,101,115,32,117,110,119,97,110,116, + 101,100,32,110,111,105,115,101,32,105,110,116,111,32,116,104, + 101,32,116,114,97,99,101,98,97,99,107,32,40,101,46,103, + 46,32,119,104,101,110,32,101,120,101,99,117,116,105,110,103, + 10,32,32,32,32,109,111,100,117,108,101,32,99,111,100,101, + 41,10,32,32,32,32,78,114,5,0,0,0,41,3,218,1, + 102,114,62,0,0,0,90,4,107,119,100,115,114,5,0,0, + 0,114,5,0,0,0,114,6,0,0,0,218,25,95,99,97, + 108,108,95,119,105,116,104,95,102,114,97,109,101,115,95,114, + 101,109,111,118,101,100,233,0,0,0,115,2,0,0,0,14, + 8,114,74,0,0,0,114,42,0,0,0,41,1,218,9,118, + 101,114,98,111,115,105,116,121,99,1,0,0,0,0,0,0, + 0,1,0,0,0,3,0,0,0,4,0,0,0,71,0,0, + 0,115,58,0,0,0,116,0,106,1,106,2,124,1,107,5, + 114,27,124,0,160,3,100,1,161,1,115,15,100,2,124,0, + 23,0,125,0,116,4,124,0,106,5,124,2,142,0,116,0, + 106,6,100,3,141,2,1,0,100,4,83,0,100,4,83,0, + 41,5,122,61,80,114,105,110,116,32,116,104,101,32,109,101, + 115,115,97,103,101,32,116,111,32,115,116,100,101,114,114,32, + 105,102,32,45,118,47,80,89,84,72,79,78,86,69,82,66, + 79,83,69,32,105,115,32,116,117,114,110,101,100,32,111,110, + 46,41,2,250,1,35,122,7,105,109,112,111,114,116,32,122, + 2,35,32,41,1,90,4,102,105,108,101,78,41,7,114,18, + 0,0,0,218,5,102,108,97,103,115,218,7,118,101,114,98, + 111,115,101,218,10,115,116,97,114,116,115,119,105,116,104,218, + 5,112,114,105,110,116,114,50,0,0,0,218,6,115,116,100, + 101,114,114,41,3,218,7,109,101,115,115,97,103,101,114,75, + 0,0,0,114,62,0,0,0,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,218,16,95,118,101,114,98,111,115, + 101,95,109,101,115,115,97,103,101,244,0,0,0,115,10,0, + 0,0,12,2,10,1,8,1,24,1,4,253,114,83,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,3,0,0,0,243,26,0,0,0,135, + 0,102,1,100,1,100,2,132,8,125,1,116,0,124,1,136, + 0,131,2,1,0,124,1,83,0,41,4,122,49,68,101,99, + 111,114,97,116,111,114,32,116,111,32,118,101,114,105,102,121, + 32,116,104,101,32,110,97,109,101,100,32,109,111,100,117,108, + 101,32,105,115,32,98,117,105,108,116,45,105,110,46,99,2, + 0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,4, + 0,0,0,19,0,0,0,115,38,0,0,0,124,1,116,0, + 106,1,118,1,114,14,116,2,100,1,160,3,124,1,161,1, + 124,1,100,2,141,2,130,1,136,0,124,0,124,1,131,2, + 83,0,41,3,78,250,29,123,33,114,125,32,105,115,32,110, + 111,116,32,97,32,98,117,105,108,116,45,105,110,32,109,111, + 100,117,108,101,114,19,0,0,0,41,4,114,18,0,0,0, + 218,20,98,117,105,108,116,105,110,95,109,111,100,117,108,101, + 95,110,97,109,101,115,218,11,73,109,112,111,114,116,69,114, + 114,111,114,114,50,0,0,0,169,2,114,33,0,0,0,218, + 8,102,117,108,108,110,97,109,101,169,1,218,3,102,120,110, + 114,5,0,0,0,114,6,0,0,0,218,25,95,114,101,113, + 117,105,114,101,115,95,98,117,105,108,116,105,110,95,119,114, + 97,112,112,101,114,254,0,0,0,243,10,0,0,0,10,1, + 10,1,2,1,6,255,10,2,122,52,95,114,101,113,117,105, + 114,101,115,95,98,117,105,108,116,105,110,46,60,108,111,99, + 97,108,115,62,46,95,114,101,113,117,105,114,101,115,95,98, + 117,105,108,116,105,110,95,119,114,97,112,112,101,114,78,169, + 1,114,17,0,0,0,41,2,114,91,0,0,0,114,92,0, + 0,0,114,5,0,0,0,114,90,0,0,0,114,6,0,0, + 0,218,17,95,114,101,113,117,105,114,101,115,95,98,117,105, + 108,116,105,110,252,0,0,0,243,6,0,0,0,12,2,10, + 5,4,1,114,95,0,0,0,99,1,0,0,0,0,0,0, + 0,0,0,0,0,2,0,0,0,3,0,0,0,3,0,0, + 0,114,84,0,0,0,41,4,122,47,68,101,99,111,114,97, + 116,111,114,32,116,111,32,118,101,114,105,102,121,32,116,104, + 101,32,110,97,109,101,100,32,109,111,100,117,108,101,32,105, + 115,32,102,114,111,122,101,110,46,99,2,0,0,0,0,0, + 0,0,0,0,0,0,2,0,0,0,4,0,0,0,19,0, + 0,0,115,38,0,0,0,116,0,160,1,124,1,161,1,115, + 14,116,2,100,1,160,3,124,1,161,1,124,1,100,2,141, + 2,130,1,136,0,124,0,124,1,131,2,83,0,169,3,78, + 122,27,123,33,114,125,32,105,115,32,110,111,116,32,97,32, + 102,114,111,122,101,110,32,109,111,100,117,108,101,114,19,0, + 0,0,41,4,114,64,0,0,0,218,9,105,115,95,102,114, + 111,122,101,110,114,87,0,0,0,114,50,0,0,0,114,88, + 0,0,0,114,90,0,0,0,114,5,0,0,0,114,6,0, + 0,0,218,24,95,114,101,113,117,105,114,101,115,95,102,114, + 111,122,101,110,95,119,114,97,112,112,101,114,9,1,0,0, + 114,93,0,0,0,122,50,95,114,101,113,117,105,114,101,115, + 95,102,114,111,122,101,110,46,60,108,111,99,97,108,115,62, + 46,95,114,101,113,117,105,114,101,115,95,102,114,111,122,101, + 110,95,119,114,97,112,112,101,114,78,114,94,0,0,0,41, + 2,114,91,0,0,0,114,99,0,0,0,114,5,0,0,0, + 114,90,0,0,0,114,6,0,0,0,218,16,95,114,101,113, + 117,105,114,101,115,95,102,114,111,122,101,110,7,1,0,0, + 114,96,0,0,0,114,100,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,4,0,0,0,67, + 0,0,0,115,74,0,0,0,100,1,125,2,116,0,160,1, + 124,2,116,2,161,2,1,0,116,3,124,1,124,0,131,2, + 125,3,124,1,116,4,106,5,118,0,114,33,116,4,106,5, + 124,1,25,0,125,4,116,6,124,3,124,4,131,2,1,0, + 116,4,106,5,124,1,25,0,83,0,116,7,124,3,131,1, + 83,0,41,3,122,130,76,111,97,100,32,116,104,101,32,115, + 112,101,99,105,102,105,101,100,32,109,111,100,117,108,101,32, + 105,110,116,111,32,115,121,115,46,109,111,100,117,108,101,115, + 32,97,110,100,32,114,101,116,117,114,110,32,105,116,46,10, + 10,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,108,111,97,100,101,114,46,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,122,103,116,104,101,32,108,111, + 97,100,95,109,111,100,117,108,101,40,41,32,109,101,116,104, + 111,100,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32, + 114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111, + 110,32,51,46,49,50,59,32,117,115,101,32,101,120,101,99, + 95,109,111,100,117,108,101,40,41,32,105,110,115,116,101,97, + 100,78,41,8,218,9,95,119,97,114,110,105,110,103,115,218, + 4,119,97,114,110,218,18,68,101,112,114,101,99,97,116,105, + 111,110,87,97,114,110,105,110,103,218,16,115,112,101,99,95, + 102,114,111,109,95,108,111,97,100,101,114,114,18,0,0,0, + 218,7,109,111,100,117,108,101,115,218,5,95,101,120,101,99, + 218,5,95,108,111,97,100,41,5,114,33,0,0,0,114,89, + 0,0,0,218,3,109,115,103,218,4,115,112,101,99,218,6, + 109,111,100,117,108,101,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,218,17,95,108,111,97,100,95,109,111,100, + 117,108,101,95,115,104,105,109,19,1,0,0,115,16,0,0, + 0,4,6,12,2,10,1,10,1,10,1,10,1,10,1,8, + 2,114,111,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,115, + 188,0,0,0,116,0,124,0,100,1,100,2,131,3,125,1, + 116,0,124,0,100,3,100,2,131,3,4,0,125,2,114,18, + 116,1,124,2,131,1,83,0,116,2,124,1,100,4,131,2, + 114,39,122,6,124,1,160,3,124,0,161,1,87,0,83,0, + 4,0,116,4,121,38,1,0,1,0,1,0,89,0,110,1, + 119,0,122,5,124,0,106,5,125,3,87,0,110,11,4,0, + 116,6,121,55,1,0,1,0,1,0,100,5,125,3,89,0, + 110,1,119,0,122,5,124,0,106,7,125,4,87,0,110,26, + 4,0,116,6,121,87,1,0,1,0,1,0,124,1,100,2, + 117,0,114,79,100,6,160,8,124,3,161,1,6,0,89,0, + 83,0,100,7,160,8,124,3,124,1,161,2,6,0,89,0, + 83,0,119,0,100,8,160,8,124,3,124,4,161,2,83,0, + 41,9,122,44,84,104,101,32,105,109,112,108,101,109,101,110, + 116,97,116,105,111,110,32,111,102,32,77,111,100,117,108,101, + 84,121,112,101,46,95,95,114,101,112,114,95,95,40,41,46, + 218,10,95,95,108,111,97,100,101,114,95,95,78,218,8,95, + 95,115,112,101,99,95,95,218,11,109,111,100,117,108,101,95, + 114,101,112,114,250,1,63,250,13,60,109,111,100,117,108,101, + 32,123,33,114,125,62,250,20,60,109,111,100,117,108,101,32, + 123,33,114,125,32,40,123,33,114,125,41,62,250,23,60,109, + 111,100,117,108,101,32,123,33,114,125,32,102,114,111,109,32, + 123,33,114,125,62,41,9,114,13,0,0,0,218,22,95,109, + 111,100,117,108,101,95,114,101,112,114,95,102,114,111,109,95, + 115,112,101,99,114,11,0,0,0,114,114,0,0,0,218,9, + 69,120,99,101,112,116,105,111,110,114,9,0,0,0,114,2, + 0,0,0,218,8,95,95,102,105,108,101,95,95,114,50,0, + 0,0,41,5,114,110,0,0,0,218,6,108,111,97,100,101, + 114,114,109,0,0,0,114,20,0,0,0,218,8,102,105,108, + 101,110,97,109,101,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,218,12,95,109,111,100,117,108,101,95,114,101, + 112,114,38,1,0,0,115,44,0,0,0,12,2,16,1,8, + 1,10,1,2,1,12,1,12,1,4,1,2,255,2,3,10, + 1,12,1,8,1,2,255,2,2,10,1,12,1,8,1,14, + 1,16,2,2,252,12,6,114,124,0,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,114,0,0,0,101,0,90,1,100,0, + 90,2,100,1,90,3,100,2,100,2,100,2,100,3,156,3, + 100,4,100,5,132,2,90,4,100,6,100,7,132,0,90,5, + 100,8,100,9,132,0,90,6,101,7,100,10,100,11,132,0, + 131,1,90,8,101,8,106,9,100,12,100,11,132,0,131,1, + 90,8,101,7,100,13,100,14,132,0,131,1,90,10,101,7, + 100,15,100,16,132,0,131,1,90,11,101,11,106,9,100,17, + 100,16,132,0,131,1,90,11,100,2,83,0,41,18,218,10, + 77,111,100,117,108,101,83,112,101,99,97,208,5,0,0,84, + 104,101,32,115,112,101,99,105,102,105,99,97,116,105,111,110, + 32,102,111,114,32,97,32,109,111,100,117,108,101,44,32,117, + 115,101,100,32,102,111,114,32,108,111,97,100,105,110,103,46, + 10,10,32,32,32,32,65,32,109,111,100,117,108,101,39,115, + 32,115,112,101,99,32,105,115,32,116,104,101,32,115,111,117, + 114,99,101,32,102,111,114,32,105,110,102,111,114,109,97,116, + 105,111,110,32,97,98,111,117,116,32,116,104,101,32,109,111, + 100,117,108,101,46,32,32,70,111,114,10,32,32,32,32,100, + 97,116,97,32,97,115,115,111,99,105,97,116,101,100,32,119, + 105,116,104,32,116,104,101,32,109,111,100,117,108,101,44,32, + 105,110,99,108,117,100,105,110,103,32,115,111,117,114,99,101, + 44,32,117,115,101,32,116,104,101,32,115,112,101,99,39,115, + 10,32,32,32,32,108,111,97,100,101,114,46,10,10,32,32, + 32,32,96,110,97,109,101,96,32,105,115,32,116,104,101,32, + 97,98,115,111,108,117,116,101,32,110,97,109,101,32,111,102, + 32,116,104,101,32,109,111,100,117,108,101,46,32,32,96,108, + 111,97,100,101,114,96,32,105,115,32,116,104,101,32,108,111, + 97,100,101,114,10,32,32,32,32,116,111,32,117,115,101,32, + 119,104,101,110,32,108,111,97,100,105,110,103,32,116,104,101, + 32,109,111,100,117,108,101,46,32,32,96,112,97,114,101,110, + 116,96,32,105,115,32,116,104,101,32,110,97,109,101,32,111, + 102,32,116,104,101,10,32,32,32,32,112,97,99,107,97,103, + 101,32,116,104,101,32,109,111,100,117,108,101,32,105,115,32, + 105,110,46,32,32,84,104,101,32,112,97,114,101,110,116,32, + 105,115,32,100,101,114,105,118,101,100,32,102,114,111,109,32, + 116,104,101,32,110,97,109,101,46,10,10,32,32,32,32,96, + 105,115,95,112,97,99,107,97,103,101,96,32,100,101,116,101, + 114,109,105,110,101,115,32,105,102,32,116,104,101,32,109,111, + 100,117,108,101,32,105,115,32,99,111,110,115,105,100,101,114, + 101,100,32,97,32,112,97,99,107,97,103,101,32,111,114,10, + 32,32,32,32,110,111,116,46,32,32,79,110,32,109,111,100, + 117,108,101,115,32,116,104,105,115,32,105,115,32,114,101,102, + 108,101,99,116,101,100,32,98,121,32,116,104,101,32,96,95, + 95,112,97,116,104,95,95,96,32,97,116,116,114,105,98,117, + 116,101,46,10,10,32,32,32,32,96,111,114,105,103,105,110, + 96,32,105,115,32,116,104,101,32,115,112,101,99,105,102,105, + 99,32,108,111,99,97,116,105,111,110,32,117,115,101,100,32, + 98,121,32,116,104,101,32,108,111,97,100,101,114,32,102,114, + 111,109,32,119,104,105,99,104,32,116,111,10,32,32,32,32, + 108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,44, + 32,105,102,32,116,104,97,116,32,105,110,102,111,114,109,97, + 116,105,111,110,32,105,115,32,97,118,97,105,108,97,98,108, + 101,46,32,32,87,104,101,110,32,102,105,108,101,110,97,109, + 101,32,105,115,10,32,32,32,32,115,101,116,44,32,111,114, + 105,103,105,110,32,119,105,108,108,32,109,97,116,99,104,46, + 10,10,32,32,32,32,96,104,97,115,95,108,111,99,97,116, + 105,111,110,96,32,105,110,100,105,99,97,116,101,115,32,116, + 104,97,116,32,97,32,115,112,101,99,39,115,32,34,111,114, + 105,103,105,110,34,32,114,101,102,108,101,99,116,115,32,97, + 32,108,111,99,97,116,105,111,110,46,10,32,32,32,32,87, + 104,101,110,32,116,104,105,115,32,105,115,32,84,114,117,101, + 44,32,96,95,95,102,105,108,101,95,95,96,32,97,116,116, + 114,105,98,117,116,101,32,111,102,32,116,104,101,32,109,111, + 100,117,108,101,32,105,115,32,115,101,116,46,10,10,32,32, + 32,32,96,99,97,99,104,101,100,96,32,105,115,32,116,104, + 101,32,108,111,99,97,116,105,111,110,32,111,102,32,116,104, + 101,32,99,97,99,104,101,100,32,98,121,116,101,99,111,100, + 101,32,102,105,108,101,44,32,105,102,32,97,110,121,46,32, + 32,73,116,10,32,32,32,32,99,111,114,114,101,115,112,111, + 110,100,115,32,116,111,32,116,104,101,32,96,95,95,99,97, + 99,104,101,100,95,95,96,32,97,116,116,114,105,98,117,116, + 101,46,10,10,32,32,32,32,96,115,117,98,109,111,100,117, + 108,101,95,115,101,97,114,99,104,95,108,111,99,97,116,105, + 111,110,115,96,32,105,115,32,116,104,101,32,115,101,113,117, + 101,110,99,101,32,111,102,32,112,97,116,104,32,101,110,116, + 114,105,101,115,32,116,111,10,32,32,32,32,115,101,97,114, + 99,104,32,119,104,101,110,32,105,109,112,111,114,116,105,110, + 103,32,115,117,98,109,111,100,117,108,101,115,46,32,32,73, + 102,32,115,101,116,44,32,105,115,95,112,97,99,107,97,103, + 101,32,115,104,111,117,108,100,32,98,101,10,32,32,32,32, + 84,114,117,101,45,45,97,110,100,32,70,97,108,115,101,32, + 111,116,104,101,114,119,105,115,101,46,10,10,32,32,32,32, + 80,97,99,107,97,103,101,115,32,97,114,101,32,115,105,109, + 112,108,121,32,109,111,100,117,108,101,115,32,116,104,97,116, + 32,40,109,97,121,41,32,104,97,118,101,32,115,117,98,109, + 111,100,117,108,101,115,46,32,32,73,102,32,97,32,115,112, + 101,99,10,32,32,32,32,104,97,115,32,97,32,110,111,110, + 45,78,111,110,101,32,118,97,108,117,101,32,105,110,32,96, + 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104, + 95,108,111,99,97,116,105,111,110,115,96,44,32,116,104,101, + 32,105,109,112,111,114,116,10,32,32,32,32,115,121,115,116, + 101,109,32,119,105,108,108,32,99,111,110,115,105,100,101,114, + 32,109,111,100,117,108,101,115,32,108,111,97,100,101,100,32, + 102,114,111,109,32,116,104,101,32,115,112,101,99,32,97,115, + 32,112,97,99,107,97,103,101,115,46,10,10,32,32,32,32, + 79,110,108,121,32,102,105,110,100,101,114,115,32,40,115,101, + 101,32,105,109,112,111,114,116,108,105,98,46,97,98,99,46, + 77,101,116,97,80,97,116,104,70,105,110,100,101,114,32,97, + 110,100,10,32,32,32,32,105,109,112,111,114,116,108,105,98, + 46,97,98,99,46,80,97,116,104,69,110,116,114,121,70,105, + 110,100,101,114,41,32,115,104,111,117,108,100,32,109,111,100, + 105,102,121,32,77,111,100,117,108,101,83,112,101,99,32,105, + 110,115,116,97,110,99,101,115,46,10,10,32,32,32,32,78, + 41,3,218,6,111,114,105,103,105,110,218,12,108,111,97,100, + 101,114,95,115,116,97,116,101,218,10,105,115,95,112,97,99, + 107,97,103,101,99,3,0,0,0,0,0,0,0,3,0,0, + 0,6,0,0,0,2,0,0,0,67,0,0,0,115,54,0, + 0,0,124,1,124,0,95,0,124,2,124,0,95,1,124,3, + 124,0,95,2,124,4,124,0,95,3,124,5,114,16,103,0, + 110,1,100,0,124,0,95,4,100,1,124,0,95,5,100,0, + 124,0,95,6,100,0,83,0,41,2,78,70,41,7,114,20, + 0,0,0,114,122,0,0,0,114,126,0,0,0,114,127,0, + 0,0,218,26,115,117,98,109,111,100,117,108,101,95,115,101, + 97,114,99,104,95,108,111,99,97,116,105,111,110,115,218,13, + 95,115,101,116,95,102,105,108,101,97,116,116,114,218,7,95, + 99,97,99,104,101,100,41,6,114,33,0,0,0,114,20,0, + 0,0,114,122,0,0,0,114,126,0,0,0,114,127,0,0, + 0,114,128,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,114,34,0,0,0,101,1,0,0,115,14, + 0,0,0,6,2,6,1,6,1,6,1,14,1,6,3,10, + 1,122,19,77,111,100,117,108,101,83,112,101,99,46,95,95, + 105,110,105,116,95,95,99,1,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,6,0,0,0,67,0,0,0,115, + 102,0,0,0,100,1,160,0,124,0,106,1,161,1,100,2, + 160,0,124,0,106,2,161,1,103,2,125,1,124,0,106,3, + 100,0,117,1,114,26,124,1,160,4,100,3,160,0,124,0, + 106,3,161,1,161,1,1,0,124,0,106,5,100,0,117,1, + 114,40,124,1,160,4,100,4,160,0,124,0,106,5,161,1, + 161,1,1,0,100,5,160,0,124,0,106,6,106,7,100,6, + 160,8,124,1,161,1,161,2,83,0,41,7,78,122,9,110, + 97,109,101,61,123,33,114,125,122,11,108,111,97,100,101,114, + 61,123,33,114,125,122,11,111,114,105,103,105,110,61,123,33, + 114,125,122,29,115,117,98,109,111,100,117,108,101,95,115,101, + 97,114,99,104,95,108,111,99,97,116,105,111,110,115,61,123, + 125,122,6,123,125,40,123,125,41,122,2,44,32,41,9,114, + 50,0,0,0,114,20,0,0,0,114,122,0,0,0,114,126, + 0,0,0,218,6,97,112,112,101,110,100,114,129,0,0,0, + 218,9,95,95,99,108,97,115,115,95,95,114,9,0,0,0, + 218,4,106,111,105,110,41,2,114,33,0,0,0,114,62,0, + 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, + 0,114,53,0,0,0,113,1,0,0,115,20,0,0,0,10, + 1,10,1,4,255,10,2,18,1,10,1,6,1,8,1,4, + 255,22,2,122,19,77,111,100,117,108,101,83,112,101,99,46, + 95,95,114,101,112,114,95,95,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,102,0,0,0,124,0,106,0,125,2,122,36,124,0, + 106,1,124,1,106,1,107,2,111,38,124,0,106,2,124,1, + 106,2,107,2,111,38,124,0,106,3,124,1,106,3,107,2, + 111,38,124,2,124,1,106,0,107,2,111,38,124,0,106,4, + 124,1,106,4,107,2,111,38,124,0,106,5,124,1,106,5, + 107,2,87,0,83,0,4,0,116,6,121,50,1,0,1,0, + 1,0,116,7,6,0,89,0,83,0,119,0,114,0,0,0, + 0,41,8,114,129,0,0,0,114,20,0,0,0,114,122,0, + 0,0,114,126,0,0,0,218,6,99,97,99,104,101,100,218, + 12,104,97,115,95,108,111,99,97,116,105,111,110,114,2,0, + 0,0,218,14,78,111,116,73,109,112,108,101,109,101,110,116, + 101,100,41,3,114,33,0,0,0,90,5,111,116,104,101,114, + 90,4,115,109,115,108,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,218,6,95,95,101,113,95,95,123,1,0, + 0,115,32,0,0,0,6,1,2,1,12,1,10,1,2,255, + 10,2,2,254,8,3,2,253,10,4,2,252,10,5,4,251, + 12,6,8,1,2,255,122,17,77,111,100,117,108,101,83,112, + 101,99,46,95,95,101,113,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,115,58,0,0,0,124,0,106,0,100,0,117,0,114, + 26,124,0,106,1,100,0,117,1,114,26,124,0,106,2,114, + 26,116,3,100,0,117,0,114,19,116,4,130,1,116,3,160, + 5,124,0,106,1,161,1,124,0,95,0,124,0,106,0,83, + 0,114,0,0,0,0,41,6,114,131,0,0,0,114,126,0, + 0,0,114,130,0,0,0,218,19,95,98,111,111,116,115,116, + 114,97,112,95,101,120,116,101,114,110,97,108,218,19,78,111, + 116,73,109,112,108,101,109,101,110,116,101,100,69,114,114,111, + 114,90,11,95,103,101,116,95,99,97,99,104,101,100,114,52, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,114,60,0,0,0,179,0,0,0,115,38,0,0,0, - 8,6,2,1,2,1,14,1,12,1,6,1,8,2,8,1, - 10,1,8,2,12,2,18,11,8,2,4,2,10,254,2,237, - 8,19,4,2,2,232,114,60,0,0,0,99,1,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,8,0,0,0, - 67,0,0,0,115,54,0,0,0,116,0,124,0,131,1,125, - 1,122,6,124,1,160,1,161,0,1,0,87,0,110,9,4, - 0,116,2,121,26,1,0,1,0,1,0,89,0,100,1,83, - 0,124,1,160,3,161,0,1,0,100,1,83,0,119,0,41, - 2,122,189,65,99,113,117,105,114,101,115,32,116,104,101,110, - 32,114,101,108,101,97,115,101,115,32,116,104,101,32,109,111, - 100,117,108,101,32,108,111,99,107,32,102,111,114,32,97,32, - 103,105,118,101,110,32,109,111,100,117,108,101,32,110,97,109, - 101,46,10,10,32,32,32,32,84,104,105,115,32,105,115,32, - 117,115,101,100,32,116,111,32,101,110,115,117,114,101,32,97, - 32,109,111,100,117,108,101,32,105,115,32,99,111,109,112,108, - 101,116,101,108,121,32,105,110,105,116,105,97,108,105,122,101, - 100,44,32,105,110,32,116,104,101,10,32,32,32,32,101,118, - 101,110,116,32,105,116,32,105,115,32,98,101,105,110,103,32, - 105,109,112,111,114,116,101,100,32,98,121,32,97,110,111,116, - 104,101,114,32,116,104,114,101,97,100,46,10,32,32,32,32, - 78,41,4,114,60,0,0,0,114,43,0,0,0,114,22,0, - 0,0,114,44,0,0,0,41,2,114,20,0,0,0,114,27, + 0,0,114,135,0,0,0,135,1,0,0,115,12,0,0,0, + 10,2,16,1,8,1,4,1,14,1,6,1,122,17,77,111, + 100,117,108,101,83,112,101,99,46,99,97,99,104,101,100,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,10,0,0,0,124,1,124, + 0,95,0,100,0,83,0,114,0,0,0,0,41,1,114,131, + 0,0,0,41,2,114,33,0,0,0,114,135,0,0,0,114, + 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,135, + 0,0,0,144,1,0,0,115,2,0,0,0,10,2,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,115,32,0,0,0,124,0,106,0, + 100,1,117,0,114,13,124,0,106,1,160,2,100,2,161,1, + 100,3,25,0,83,0,124,0,106,1,83,0,41,4,122,32, + 84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32, + 109,111,100,117,108,101,39,115,32,112,97,114,101,110,116,46, + 78,218,1,46,114,25,0,0,0,41,3,114,129,0,0,0, + 114,20,0,0,0,218,10,114,112,97,114,116,105,116,105,111, + 110,114,52,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,218,6,112,97,114,101,110,116,148,1,0, + 0,115,6,0,0,0,10,3,16,1,6,2,122,17,77,111, + 100,117,108,101,83,112,101,99,46,112,97,114,101,110,116,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,6,0,0,0,124,0,106, + 0,83,0,114,0,0,0,0,41,1,114,130,0,0,0,114, + 52,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, + 0,0,0,114,136,0,0,0,156,1,0,0,115,2,0,0, + 0,6,2,122,23,77,111,100,117,108,101,83,112,101,99,46, + 104,97,115,95,108,111,99,97,116,105,111,110,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,14,0,0,0,116,0,124,1,131,1, + 124,0,95,1,100,0,83,0,114,0,0,0,0,41,2,218, + 4,98,111,111,108,114,130,0,0,0,41,2,114,33,0,0, + 0,218,5,118,97,108,117,101,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,136,0,0,0,160,1,0,0, + 115,2,0,0,0,14,2,41,12,114,9,0,0,0,114,8, + 0,0,0,114,1,0,0,0,114,10,0,0,0,114,34,0, + 0,0,114,53,0,0,0,114,138,0,0,0,218,8,112,114, + 111,112,101,114,116,121,114,135,0,0,0,218,6,115,101,116, + 116,101,114,114,143,0,0,0,114,136,0,0,0,114,5,0, + 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, + 0,114,125,0,0,0,64,1,0,0,115,34,0,0,0,8, + 0,4,1,4,36,2,1,12,255,8,12,8,10,2,12,10, + 1,4,8,10,1,2,3,10,1,2,7,10,1,4,3,14, + 1,114,125,0,0,0,169,2,114,126,0,0,0,114,128,0, + 0,0,99,2,0,0,0,0,0,0,0,2,0,0,0,6, + 0,0,0,8,0,0,0,67,0,0,0,115,150,0,0,0, + 116,0,124,1,100,1,131,2,114,37,116,1,100,2,117,0, + 114,11,116,2,130,1,116,1,106,3,125,4,124,3,100,2, + 117,0,114,24,124,4,124,0,124,1,100,3,141,2,83,0, + 124,3,114,28,103,0,110,1,100,2,125,5,124,4,124,0, + 124,1,124,5,100,4,141,3,83,0,124,3,100,2,117,0, + 114,67,116,0,124,1,100,5,131,2,114,65,122,7,124,1, + 160,4,124,0,161,1,125,3,87,0,110,13,4,0,116,5, + 121,64,1,0,1,0,1,0,100,2,125,3,89,0,110,3, + 119,0,100,6,125,3,116,6,124,0,124,1,124,2,124,3, + 100,7,141,4,83,0,41,8,122,53,82,101,116,117,114,110, + 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98, + 97,115,101,100,32,111,110,32,118,97,114,105,111,117,115,32, + 108,111,97,100,101,114,32,109,101,116,104,111,100,115,46,90, + 12,103,101,116,95,102,105,108,101,110,97,109,101,78,41,1, + 114,122,0,0,0,41,2,114,122,0,0,0,114,129,0,0, + 0,114,128,0,0,0,70,114,148,0,0,0,41,7,114,11, + 0,0,0,114,139,0,0,0,114,140,0,0,0,218,23,115, + 112,101,99,95,102,114,111,109,95,102,105,108,101,95,108,111, + 99,97,116,105,111,110,114,128,0,0,0,114,87,0,0,0, + 114,125,0,0,0,41,6,114,20,0,0,0,114,122,0,0, + 0,114,126,0,0,0,114,128,0,0,0,114,149,0,0,0, + 90,6,115,101,97,114,99,104,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,114,104,0,0,0,165,1,0,0, + 115,38,0,0,0,10,2,8,1,4,1,6,1,8,2,12, + 1,12,1,6,1,2,1,6,255,8,3,10,1,2,1,14, + 1,12,1,8,1,2,255,4,4,16,2,114,104,0,0,0, + 99,3,0,0,0,0,0,0,0,0,0,0,0,8,0,0, + 0,8,0,0,0,67,0,0,0,115,38,1,0,0,122,5, + 124,0,106,0,125,3,87,0,110,9,4,0,116,1,121,14, + 1,0,1,0,1,0,89,0,110,7,119,0,124,3,100,0, + 117,1,114,21,124,3,83,0,124,0,106,2,125,4,124,1, + 100,0,117,0,114,43,122,5,124,0,106,3,125,1,87,0, + 110,9,4,0,116,1,121,42,1,0,1,0,1,0,89,0, + 110,1,119,0,122,5,124,0,106,4,125,5,87,0,110,11, + 4,0,116,1,121,59,1,0,1,0,1,0,100,0,125,5, + 89,0,110,1,119,0,124,2,100,0,117,0,114,87,124,5, + 100,0,117,0,114,85,122,5,124,1,106,5,125,2,87,0, + 110,13,4,0,116,1,121,84,1,0,1,0,1,0,100,0, + 125,2,89,0,110,3,119,0,124,5,125,2,122,5,124,0, + 106,6,125,6,87,0,110,11,4,0,116,1,121,103,1,0, + 1,0,1,0,100,0,125,6,89,0,110,1,119,0,122,7, + 116,7,124,0,106,8,131,1,125,7,87,0,110,11,4,0, + 116,1,121,122,1,0,1,0,1,0,100,0,125,7,89,0, + 110,1,119,0,116,9,124,4,124,1,124,2,100,1,141,3, + 125,3,124,5,100,0,117,0,114,136,100,2,110,1,100,3, + 124,3,95,10,124,6,124,3,95,11,124,7,124,3,95,12, + 124,3,83,0,41,4,78,169,1,114,126,0,0,0,70,84, + 41,13,114,113,0,0,0,114,2,0,0,0,114,9,0,0, + 0,114,112,0,0,0,114,121,0,0,0,218,7,95,79,82, + 73,71,73,78,218,10,95,95,99,97,99,104,101,100,95,95, + 218,4,108,105,115,116,218,8,95,95,112,97,116,104,95,95, + 114,125,0,0,0,114,130,0,0,0,114,135,0,0,0,114, + 129,0,0,0,41,8,114,110,0,0,0,114,122,0,0,0, + 114,126,0,0,0,114,109,0,0,0,114,20,0,0,0,90, + 8,108,111,99,97,116,105,111,110,114,135,0,0,0,114,129, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,218,19,95,108,111,99,107,95,117,110,108,111,99,107, - 95,109,111,100,117,108,101,216,0,0,0,115,14,0,0,0, - 8,6,2,1,12,1,12,1,6,3,12,2,2,251,114,72, - 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, - 3,0,0,0,4,0,0,0,79,0,0,0,115,14,0,0, - 0,124,0,124,1,105,0,124,2,164,1,142,1,83,0,41, - 2,97,46,1,0,0,114,101,109,111,118,101,95,105,109,112, - 111,114,116,108,105,98,95,102,114,97,109,101,115,32,105,110, - 32,105,109,112,111,114,116,46,99,32,119,105,108,108,32,97, - 108,119,97,121,115,32,114,101,109,111,118,101,32,115,101,113, - 117,101,110,99,101,115,10,32,32,32,32,111,102,32,105,109, - 112,111,114,116,108,105,98,32,102,114,97,109,101,115,32,116, - 104,97,116,32,101,110,100,32,119,105,116,104,32,97,32,99, - 97,108,108,32,116,111,32,116,104,105,115,32,102,117,110,99, - 116,105,111,110,10,10,32,32,32,32,85,115,101,32,105,116, - 32,105,110,115,116,101,97,100,32,111,102,32,97,32,110,111, - 114,109,97,108,32,99,97,108,108,32,105,110,32,112,108,97, - 99,101,115,32,119,104,101,114,101,32,105,110,99,108,117,100, - 105,110,103,32,116,104,101,32,105,109,112,111,114,116,108,105, - 98,10,32,32,32,32,102,114,97,109,101,115,32,105,110,116, - 114,111,100,117,99,101,115,32,117,110,119,97,110,116,101,100, - 32,110,111,105,115,101,32,105,110,116,111,32,116,104,101,32, - 116,114,97,99,101,98,97,99,107,32,40,101,46,103,46,32, - 119,104,101,110,32,101,120,101,99,117,116,105,110,103,10,32, - 32,32,32,109,111,100,117,108,101,32,99,111,100,101,41,10, - 32,32,32,32,78,114,5,0,0,0,41,3,218,1,102,114, - 62,0,0,0,90,4,107,119,100,115,114,5,0,0,0,114, - 5,0,0,0,114,6,0,0,0,218,25,95,99,97,108,108, - 95,119,105,116,104,95,102,114,97,109,101,115,95,114,101,109, - 111,118,101,100,233,0,0,0,115,2,0,0,0,14,8,114, - 74,0,0,0,114,42,0,0,0,41,1,218,9,118,101,114, - 98,111,115,105,116,121,99,1,0,0,0,0,0,0,0,1, - 0,0,0,3,0,0,0,4,0,0,0,71,0,0,0,115, - 58,0,0,0,116,0,106,1,106,2,124,1,107,5,114,27, - 124,0,160,3,100,1,161,1,115,15,100,2,124,0,23,0, - 125,0,116,4,124,0,106,5,124,2,142,0,116,0,106,6, - 100,3,141,2,1,0,100,4,83,0,100,4,83,0,41,5, - 122,61,80,114,105,110,116,32,116,104,101,32,109,101,115,115, - 97,103,101,32,116,111,32,115,116,100,101,114,114,32,105,102, - 32,45,118,47,80,89,84,72,79,78,86,69,82,66,79,83, - 69,32,105,115,32,116,117,114,110,101,100,32,111,110,46,41, - 2,250,1,35,122,7,105,109,112,111,114,116,32,122,2,35, - 32,41,1,90,4,102,105,108,101,78,41,7,114,18,0,0, - 0,218,5,102,108,97,103,115,218,7,118,101,114,98,111,115, - 101,218,10,115,116,97,114,116,115,119,105,116,104,218,5,112, - 114,105,110,116,114,50,0,0,0,218,6,115,116,100,101,114, - 114,41,3,218,7,109,101,115,115,97,103,101,114,75,0,0, - 0,114,62,0,0,0,114,5,0,0,0,114,5,0,0,0, - 114,6,0,0,0,218,16,95,118,101,114,98,111,115,101,95, - 109,101,115,115,97,103,101,244,0,0,0,115,10,0,0,0, - 12,2,10,1,8,1,24,1,4,253,114,83,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,3,0,0,0,243,26,0,0,0,135,0,102, - 1,100,1,100,2,132,8,125,1,116,0,124,1,136,0,131, - 2,1,0,124,1,83,0,41,4,122,49,68,101,99,111,114, - 97,116,111,114,32,116,111,32,118,101,114,105,102,121,32,116, - 104,101,32,110,97,109,101,100,32,109,111,100,117,108,101,32, - 105,115,32,98,117,105,108,116,45,105,110,46,99,2,0,0, - 0,0,0,0,0,0,0,0,0,2,0,0,0,4,0,0, - 0,19,0,0,0,115,38,0,0,0,124,1,116,0,106,1, - 118,1,114,14,116,2,100,1,160,3,124,1,161,1,124,1, - 100,2,141,2,130,1,136,0,124,0,124,1,131,2,83,0, - 41,3,78,250,29,123,33,114,125,32,105,115,32,110,111,116, - 32,97,32,98,117,105,108,116,45,105,110,32,109,111,100,117, - 108,101,114,19,0,0,0,41,4,114,18,0,0,0,218,20, - 98,117,105,108,116,105,110,95,109,111,100,117,108,101,95,110, - 97,109,101,115,218,11,73,109,112,111,114,116,69,114,114,111, - 114,114,50,0,0,0,169,2,114,33,0,0,0,218,8,102, - 117,108,108,110,97,109,101,169,1,218,3,102,120,110,114,5, - 0,0,0,114,6,0,0,0,218,25,95,114,101,113,117,105, - 114,101,115,95,98,117,105,108,116,105,110,95,119,114,97,112, - 112,101,114,254,0,0,0,243,10,0,0,0,10,1,10,1, - 2,1,6,255,10,2,122,52,95,114,101,113,117,105,114,101, - 115,95,98,117,105,108,116,105,110,46,60,108,111,99,97,108, - 115,62,46,95,114,101,113,117,105,114,101,115,95,98,117,105, - 108,116,105,110,95,119,114,97,112,112,101,114,78,169,1,114, - 17,0,0,0,41,2,114,91,0,0,0,114,92,0,0,0, - 114,5,0,0,0,114,90,0,0,0,114,6,0,0,0,218, - 17,95,114,101,113,117,105,114,101,115,95,98,117,105,108,116, - 105,110,252,0,0,0,243,6,0,0,0,12,2,10,5,4, - 1,114,95,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,3,0,0,0,3,0,0,0,114, - 84,0,0,0,41,4,122,47,68,101,99,111,114,97,116,111, - 114,32,116,111,32,118,101,114,105,102,121,32,116,104,101,32, - 110,97,109,101,100,32,109,111,100,117,108,101,32,105,115,32, - 102,114,111,122,101,110,46,99,2,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,4,0,0,0,19,0,0,0, - 115,38,0,0,0,116,0,160,1,124,1,161,1,115,14,116, - 2,100,1,160,3,124,1,161,1,124,1,100,2,141,2,130, - 1,136,0,124,0,124,1,131,2,83,0,169,3,78,122,27, - 123,33,114,125,32,105,115,32,110,111,116,32,97,32,102,114, - 111,122,101,110,32,109,111,100,117,108,101,114,19,0,0,0, - 41,4,114,64,0,0,0,218,9,105,115,95,102,114,111,122, - 101,110,114,87,0,0,0,114,50,0,0,0,114,88,0,0, - 0,114,90,0,0,0,114,5,0,0,0,114,6,0,0,0, - 218,24,95,114,101,113,117,105,114,101,115,95,102,114,111,122, - 101,110,95,119,114,97,112,112,101,114,9,1,0,0,114,93, - 0,0,0,122,50,95,114,101,113,117,105,114,101,115,95,102, - 114,111,122,101,110,46,60,108,111,99,97,108,115,62,46,95, - 114,101,113,117,105,114,101,115,95,102,114,111,122,101,110,95, - 119,114,97,112,112,101,114,78,114,94,0,0,0,41,2,114, - 91,0,0,0,114,99,0,0,0,114,5,0,0,0,114,90, - 0,0,0,114,6,0,0,0,218,16,95,114,101,113,117,105, - 114,101,115,95,102,114,111,122,101,110,7,1,0,0,114,96, - 0,0,0,114,100,0,0,0,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,4,0,0,0,67,0,0, - 0,115,74,0,0,0,100,1,125,2,116,0,160,1,124,2, - 116,2,161,2,1,0,116,3,124,1,124,0,131,2,125,3, - 124,1,116,4,106,5,118,0,114,33,116,4,106,5,124,1, - 25,0,125,4,116,6,124,3,124,4,131,2,1,0,116,4, - 106,5,124,1,25,0,83,0,116,7,124,3,131,1,83,0, - 41,3,122,130,76,111,97,100,32,116,104,101,32,115,112,101, - 99,105,102,105,101,100,32,109,111,100,117,108,101,32,105,110, - 116,111,32,115,121,115,46,109,111,100,117,108,101,115,32,97, - 110,100,32,114,101,116,117,114,110,32,105,116,46,10,10,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,108,111,97,100,101,114,46,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,122,103,116,104,101,32,108,111,97,100, - 95,109,111,100,117,108,101,40,41,32,109,101,116,104,111,100, - 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, - 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, - 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, - 51,46,49,50,59,32,117,115,101,32,101,120,101,99,95,109, - 111,100,117,108,101,40,41,32,105,110,115,116,101,97,100,78, - 41,8,218,9,95,119,97,114,110,105,110,103,115,218,4,119, - 97,114,110,218,18,68,101,112,114,101,99,97,116,105,111,110, - 87,97,114,110,105,110,103,218,16,115,112,101,99,95,102,114, - 111,109,95,108,111,97,100,101,114,114,18,0,0,0,218,7, - 109,111,100,117,108,101,115,218,5,95,101,120,101,99,218,5, - 95,108,111,97,100,41,5,114,33,0,0,0,114,89,0,0, - 0,218,3,109,115,103,218,4,115,112,101,99,218,6,109,111, - 100,117,108,101,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,218,17,95,108,111,97,100,95,109,111,100,117,108, - 101,95,115,104,105,109,19,1,0,0,115,16,0,0,0,4, - 6,12,2,10,1,10,1,10,1,10,1,10,1,8,2,114, - 111,0,0,0,99,1,0,0,0,0,0,0,0,0,0,0, - 0,5,0,0,0,8,0,0,0,67,0,0,0,115,184,0, - 0,0,116,0,124,0,100,1,100,2,131,3,125,1,116,0, - 124,0,100,3,100,2,131,3,4,0,125,2,114,18,116,1, - 124,2,131,1,83,0,116,2,124,1,100,4,131,2,114,37, - 122,6,124,1,160,3,124,0,161,1,87,0,83,0,4,0, - 116,4,121,91,1,0,1,0,1,0,89,0,122,5,124,0, - 106,5,125,3,87,0,110,9,4,0,116,6,121,90,1,0, - 1,0,1,0,100,5,125,3,89,0,122,5,124,0,106,7, - 125,4,87,0,110,25,4,0,116,6,121,89,1,0,1,0, - 1,0,124,1,100,2,117,0,114,75,100,6,160,8,124,3, - 161,1,6,0,89,0,83,0,100,7,160,8,124,3,124,1, - 161,2,6,0,89,0,83,0,100,8,160,8,124,3,124,4, - 161,2,83,0,119,0,119,0,119,0,41,9,122,44,84,104, - 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, - 32,111,102,32,77,111,100,117,108,101,84,121,112,101,46,95, - 95,114,101,112,114,95,95,40,41,46,218,10,95,95,108,111, - 97,100,101,114,95,95,78,218,8,95,95,115,112,101,99,95, - 95,218,11,109,111,100,117,108,101,95,114,101,112,114,250,1, - 63,250,13,60,109,111,100,117,108,101,32,123,33,114,125,62, - 250,20,60,109,111,100,117,108,101,32,123,33,114,125,32,40, - 123,33,114,125,41,62,250,23,60,109,111,100,117,108,101,32, - 123,33,114,125,32,102,114,111,109,32,123,33,114,125,62,41, - 9,114,13,0,0,0,218,22,95,109,111,100,117,108,101,95, - 114,101,112,114,95,102,114,111,109,95,115,112,101,99,114,11, - 0,0,0,114,114,0,0,0,218,9,69,120,99,101,112,116, - 105,111,110,114,9,0,0,0,114,2,0,0,0,218,8,95, - 95,102,105,108,101,95,95,114,50,0,0,0,41,5,114,110, - 0,0,0,218,6,108,111,97,100,101,114,114,109,0,0,0, - 114,20,0,0,0,218,8,102,105,108,101,110,97,109,101,114, - 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,12, - 95,109,111,100,117,108,101,95,114,101,112,114,38,1,0,0, - 115,44,0,0,0,12,2,16,1,8,1,10,1,2,1,12, - 1,12,1,2,1,2,2,10,1,12,1,6,1,2,1,10, - 1,12,1,8,1,14,1,16,2,12,2,2,250,2,252,2, - 251,114,124,0,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, - 114,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,100,2,100,2,100,3,156,3,100,4,100,5,132,2, - 90,4,100,6,100,7,132,0,90,5,100,8,100,9,132,0, - 90,6,101,7,100,10,100,11,132,0,131,1,90,8,101,8, - 106,9,100,12,100,11,132,0,131,1,90,8,101,7,100,13, - 100,14,132,0,131,1,90,10,101,7,100,15,100,16,132,0, - 131,1,90,11,101,11,106,9,100,17,100,16,132,0,131,1, - 90,11,100,2,83,0,41,18,218,10,77,111,100,117,108,101, - 83,112,101,99,97,208,5,0,0,84,104,101,32,115,112,101, - 99,105,102,105,99,97,116,105,111,110,32,102,111,114,32,97, - 32,109,111,100,117,108,101,44,32,117,115,101,100,32,102,111, - 114,32,108,111,97,100,105,110,103,46,10,10,32,32,32,32, - 65,32,109,111,100,117,108,101,39,115,32,115,112,101,99,32, - 105,115,32,116,104,101,32,115,111,117,114,99,101,32,102,111, - 114,32,105,110,102,111,114,109,97,116,105,111,110,32,97,98, - 111,117,116,32,116,104,101,32,109,111,100,117,108,101,46,32, - 32,70,111,114,10,32,32,32,32,100,97,116,97,32,97,115, - 115,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104, - 101,32,109,111,100,117,108,101,44,32,105,110,99,108,117,100, - 105,110,103,32,115,111,117,114,99,101,44,32,117,115,101,32, - 116,104,101,32,115,112,101,99,39,115,10,32,32,32,32,108, - 111,97,100,101,114,46,10,10,32,32,32,32,96,110,97,109, - 101,96,32,105,115,32,116,104,101,32,97,98,115,111,108,117, - 116,101,32,110,97,109,101,32,111,102,32,116,104,101,32,109, - 111,100,117,108,101,46,32,32,96,108,111,97,100,101,114,96, - 32,105,115,32,116,104,101,32,108,111,97,100,101,114,10,32, - 32,32,32,116,111,32,117,115,101,32,119,104,101,110,32,108, - 111,97,100,105,110,103,32,116,104,101,32,109,111,100,117,108, - 101,46,32,32,96,112,97,114,101,110,116,96,32,105,115,32, - 116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,10, - 32,32,32,32,112,97,99,107,97,103,101,32,116,104,101,32, - 109,111,100,117,108,101,32,105,115,32,105,110,46,32,32,84, - 104,101,32,112,97,114,101,110,116,32,105,115,32,100,101,114, - 105,118,101,100,32,102,114,111,109,32,116,104,101,32,110,97, - 109,101,46,10,10,32,32,32,32,96,105,115,95,112,97,99, - 107,97,103,101,96,32,100,101,116,101,114,109,105,110,101,115, - 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,105, - 115,32,99,111,110,115,105,100,101,114,101,100,32,97,32,112, - 97,99,107,97,103,101,32,111,114,10,32,32,32,32,110,111, - 116,46,32,32,79,110,32,109,111,100,117,108,101,115,32,116, - 104,105,115,32,105,115,32,114,101,102,108,101,99,116,101,100, - 32,98,121,32,116,104,101,32,96,95,95,112,97,116,104,95, - 95,96,32,97,116,116,114,105,98,117,116,101,46,10,10,32, - 32,32,32,96,111,114,105,103,105,110,96,32,105,115,32,116, - 104,101,32,115,112,101,99,105,102,105,99,32,108,111,99,97, - 116,105,111,110,32,117,115,101,100,32,98,121,32,116,104,101, - 32,108,111,97,100,101,114,32,102,114,111,109,32,119,104,105, - 99,104,32,116,111,10,32,32,32,32,108,111,97,100,32,116, - 104,101,32,109,111,100,117,108,101,44,32,105,102,32,116,104, - 97,116,32,105,110,102,111,114,109,97,116,105,111,110,32,105, - 115,32,97,118,97,105,108,97,98,108,101,46,32,32,87,104, - 101,110,32,102,105,108,101,110,97,109,101,32,105,115,10,32, - 32,32,32,115,101,116,44,32,111,114,105,103,105,110,32,119, - 105,108,108,32,109,97,116,99,104,46,10,10,32,32,32,32, - 96,104,97,115,95,108,111,99,97,116,105,111,110,96,32,105, - 110,100,105,99,97,116,101,115,32,116,104,97,116,32,97,32, - 115,112,101,99,39,115,32,34,111,114,105,103,105,110,34,32, - 114,101,102,108,101,99,116,115,32,97,32,108,111,99,97,116, - 105,111,110,46,10,32,32,32,32,87,104,101,110,32,116,104, - 105,115,32,105,115,32,84,114,117,101,44,32,96,95,95,102, - 105,108,101,95,95,96,32,97,116,116,114,105,98,117,116,101, - 32,111,102,32,116,104,101,32,109,111,100,117,108,101,32,105, - 115,32,115,101,116,46,10,10,32,32,32,32,96,99,97,99, - 104,101,100,96,32,105,115,32,116,104,101,32,108,111,99,97, - 116,105,111,110,32,111,102,32,116,104,101,32,99,97,99,104, - 101,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, - 44,32,105,102,32,97,110,121,46,32,32,73,116,10,32,32, - 32,32,99,111,114,114,101,115,112,111,110,100,115,32,116,111, - 32,116,104,101,32,96,95,95,99,97,99,104,101,100,95,95, - 96,32,97,116,116,114,105,98,117,116,101,46,10,10,32,32, - 32,32,96,115,117,98,109,111,100,117,108,101,95,115,101,97, - 114,99,104,95,108,111,99,97,116,105,111,110,115,96,32,105, - 115,32,116,104,101,32,115,101,113,117,101,110,99,101,32,111, - 102,32,112,97,116,104,32,101,110,116,114,105,101,115,32,116, - 111,10,32,32,32,32,115,101,97,114,99,104,32,119,104,101, - 110,32,105,109,112,111,114,116,105,110,103,32,115,117,98,109, - 111,100,117,108,101,115,46,32,32,73,102,32,115,101,116,44, - 32,105,115,95,112,97,99,107,97,103,101,32,115,104,111,117, - 108,100,32,98,101,10,32,32,32,32,84,114,117,101,45,45, - 97,110,100,32,70,97,108,115,101,32,111,116,104,101,114,119, - 105,115,101,46,10,10,32,32,32,32,80,97,99,107,97,103, - 101,115,32,97,114,101,32,115,105,109,112,108,121,32,109,111, - 100,117,108,101,115,32,116,104,97,116,32,40,109,97,121,41, - 32,104,97,118,101,32,115,117,98,109,111,100,117,108,101,115, - 46,32,32,73,102,32,97,32,115,112,101,99,10,32,32,32, - 32,104,97,115,32,97,32,110,111,110,45,78,111,110,101,32, - 118,97,108,117,101,32,105,110,32,96,115,117,98,109,111,100, - 117,108,101,95,115,101,97,114,99,104,95,108,111,99,97,116, - 105,111,110,115,96,44,32,116,104,101,32,105,109,112,111,114, - 116,10,32,32,32,32,115,121,115,116,101,109,32,119,105,108, - 108,32,99,111,110,115,105,100,101,114,32,109,111,100,117,108, - 101,115,32,108,111,97,100,101,100,32,102,114,111,109,32,116, - 104,101,32,115,112,101,99,32,97,115,32,112,97,99,107,97, - 103,101,115,46,10,10,32,32,32,32,79,110,108,121,32,102, - 105,110,100,101,114,115,32,40,115,101,101,32,105,109,112,111, - 114,116,108,105,98,46,97,98,99,46,77,101,116,97,80,97, - 116,104,70,105,110,100,101,114,32,97,110,100,10,32,32,32, - 32,105,109,112,111,114,116,108,105,98,46,97,98,99,46,80, - 97,116,104,69,110,116,114,121,70,105,110,100,101,114,41,32, - 115,104,111,117,108,100,32,109,111,100,105,102,121,32,77,111, - 100,117,108,101,83,112,101,99,32,105,110,115,116,97,110,99, - 101,115,46,10,10,32,32,32,32,78,41,3,218,6,111,114, - 105,103,105,110,218,12,108,111,97,100,101,114,95,115,116,97, - 116,101,218,10,105,115,95,112,97,99,107,97,103,101,99,3, - 0,0,0,0,0,0,0,3,0,0,0,6,0,0,0,2, - 0,0,0,67,0,0,0,115,54,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,124,3,124,0,95,2,124,4, - 124,0,95,3,124,5,114,16,103,0,110,1,100,0,124,0, - 95,4,100,1,124,0,95,5,100,0,124,0,95,6,100,0, - 83,0,41,2,78,70,41,7,114,20,0,0,0,114,122,0, - 0,0,114,126,0,0,0,114,127,0,0,0,218,26,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,218,13,95,115,101,116,95,102, - 105,108,101,97,116,116,114,218,7,95,99,97,99,104,101,100, - 41,6,114,33,0,0,0,114,20,0,0,0,114,122,0,0, - 0,114,126,0,0,0,114,127,0,0,0,114,128,0,0,0, - 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,114, - 34,0,0,0,101,1,0,0,115,14,0,0,0,6,2,6, - 1,6,1,6,1,14,1,6,3,10,1,122,19,77,111,100, - 117,108,101,83,112,101,99,46,95,95,105,110,105,116,95,95, - 99,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0, - 0,6,0,0,0,67,0,0,0,115,102,0,0,0,100,1, - 160,0,124,0,106,1,161,1,100,2,160,0,124,0,106,2, - 161,1,103,2,125,1,124,0,106,3,100,0,117,1,114,26, - 124,1,160,4,100,3,160,0,124,0,106,3,161,1,161,1, - 1,0,124,0,106,5,100,0,117,1,114,40,124,1,160,4, - 100,4,160,0,124,0,106,5,161,1,161,1,1,0,100,5, - 160,0,124,0,106,6,106,7,100,6,160,8,124,1,161,1, - 161,2,83,0,41,7,78,122,9,110,97,109,101,61,123,33, - 114,125,122,11,108,111,97,100,101,114,61,123,33,114,125,122, - 11,111,114,105,103,105,110,61,123,33,114,125,122,29,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,61,123,125,122,6,123,125,40, - 123,125,41,122,2,44,32,41,9,114,50,0,0,0,114,20, - 0,0,0,114,122,0,0,0,114,126,0,0,0,218,6,97, - 112,112,101,110,100,114,129,0,0,0,218,9,95,95,99,108, - 97,115,115,95,95,114,9,0,0,0,218,4,106,111,105,110, - 41,2,114,33,0,0,0,114,62,0,0,0,114,5,0,0, - 0,114,5,0,0,0,114,6,0,0,0,114,53,0,0,0, - 113,1,0,0,115,20,0,0,0,10,1,10,1,4,255,10, - 2,18,1,10,1,6,1,8,1,4,255,22,2,122,19,77, - 111,100,117,108,101,83,112,101,99,46,95,95,114,101,112,114, - 95,95,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,102,0,0,0, - 124,0,106,0,125,2,122,36,124,0,106,1,124,1,106,1, - 107,2,111,38,124,0,106,2,124,1,106,2,107,2,111,38, - 124,0,106,3,124,1,106,3,107,2,111,38,124,2,124,1, - 106,0,107,2,111,38,124,0,106,4,124,1,106,4,107,2, - 111,38,124,0,106,5,124,1,106,5,107,2,87,0,83,0, - 4,0,116,6,121,50,1,0,1,0,1,0,116,7,6,0, - 89,0,83,0,119,0,114,0,0,0,0,41,8,114,129,0, - 0,0,114,20,0,0,0,114,122,0,0,0,114,126,0,0, - 0,218,6,99,97,99,104,101,100,218,12,104,97,115,95,108, - 111,99,97,116,105,111,110,114,2,0,0,0,218,14,78,111, - 116,73,109,112,108,101,109,101,110,116,101,100,41,3,114,33, - 0,0,0,90,5,111,116,104,101,114,90,4,115,109,115,108, - 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, - 6,95,95,101,113,95,95,123,1,0,0,115,32,0,0,0, - 6,1,2,1,12,1,10,1,2,255,10,2,2,254,8,3, - 2,253,10,4,2,252,10,5,4,251,12,6,8,1,2,255, - 122,17,77,111,100,117,108,101,83,112,101,99,46,95,95,101, - 113,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,115,58,0,0, - 0,124,0,106,0,100,0,117,0,114,26,124,0,106,1,100, - 0,117,1,114,26,124,0,106,2,114,26,116,3,100,0,117, - 0,114,19,116,4,130,1,116,3,160,5,124,0,106,1,161, - 1,124,0,95,0,124,0,106,0,83,0,114,0,0,0,0, - 41,6,114,131,0,0,0,114,126,0,0,0,114,130,0,0, - 0,218,19,95,98,111,111,116,115,116,114,97,112,95,101,120, - 116,101,114,110,97,108,218,19,78,111,116,73,109,112,108,101, - 109,101,110,116,101,100,69,114,114,111,114,90,11,95,103,101, - 116,95,99,97,99,104,101,100,114,52,0,0,0,114,5,0, - 0,0,114,5,0,0,0,114,6,0,0,0,114,135,0,0, - 0,135,1,0,0,115,12,0,0,0,10,2,16,1,8,1, - 4,1,14,1,6,1,122,17,77,111,100,117,108,101,83,112, - 101,99,46,99,97,99,104,101,100,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,10,0,0,0,124,1,124,0,95,0,100,0,83, - 0,114,0,0,0,0,41,1,114,131,0,0,0,41,2,114, - 33,0,0,0,114,135,0,0,0,114,5,0,0,0,114,5, - 0,0,0,114,6,0,0,0,114,135,0,0,0,144,1,0, - 0,115,2,0,0,0,10,2,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,115,32,0,0,0,124,0,106,0,100,1,117,0,114,13, - 124,0,106,1,160,2,100,2,161,1,100,3,25,0,83,0, - 124,0,106,1,83,0,41,4,122,32,84,104,101,32,110,97, - 109,101,32,111,102,32,116,104,101,32,109,111,100,117,108,101, - 39,115,32,112,97,114,101,110,116,46,78,218,1,46,114,25, - 0,0,0,41,3,114,129,0,0,0,114,20,0,0,0,218, - 10,114,112,97,114,116,105,116,105,111,110,114,52,0,0,0, - 114,5,0,0,0,114,5,0,0,0,114,6,0,0,0,218, - 6,112,97,114,101,110,116,148,1,0,0,115,6,0,0,0, - 10,3,16,1,6,2,122,17,77,111,100,117,108,101,83,112, - 101,99,46,112,97,114,101,110,116,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,6,0,0,0,124,0,106,0,83,0,114,0,0, - 0,0,41,1,114,130,0,0,0,114,52,0,0,0,114,5, - 0,0,0,114,5,0,0,0,114,6,0,0,0,114,136,0, - 0,0,156,1,0,0,115,2,0,0,0,6,2,122,23,77, - 111,100,117,108,101,83,112,101,99,46,104,97,115,95,108,111, - 99,97,116,105,111,110,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, - 14,0,0,0,116,0,124,1,131,1,124,0,95,1,100,0, - 83,0,114,0,0,0,0,41,2,218,4,98,111,111,108,114, - 130,0,0,0,41,2,114,33,0,0,0,218,5,118,97,108, - 117,101,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,136,0,0,0,160,1,0,0,115,2,0,0,0,14, - 2,41,12,114,9,0,0,0,114,8,0,0,0,114,1,0, - 0,0,114,10,0,0,0,114,34,0,0,0,114,53,0,0, - 0,114,138,0,0,0,218,8,112,114,111,112,101,114,116,121, - 114,135,0,0,0,218,6,115,101,116,116,101,114,114,143,0, - 0,0,114,136,0,0,0,114,5,0,0,0,114,5,0,0, - 0,114,5,0,0,0,114,6,0,0,0,114,125,0,0,0, - 64,1,0,0,115,34,0,0,0,8,0,4,1,4,36,2, - 1,12,255,8,12,8,10,2,12,10,1,4,8,10,1,2, - 3,10,1,2,7,10,1,4,3,14,1,114,125,0,0,0, - 169,2,114,126,0,0,0,114,128,0,0,0,99,2,0,0, - 0,0,0,0,0,2,0,0,0,6,0,0,0,8,0,0, - 0,67,0,0,0,115,150,0,0,0,116,0,124,1,100,1, - 131,2,114,37,116,1,100,2,117,0,114,11,116,2,130,1, - 116,1,106,3,125,4,124,3,100,2,117,0,114,24,124,4, - 124,0,124,1,100,3,141,2,83,0,124,3,114,28,103,0, - 110,1,100,2,125,5,124,4,124,0,124,1,124,5,100,4, - 141,3,83,0,124,3,100,2,117,0,114,66,116,0,124,1, - 100,5,131,2,114,64,122,7,124,1,160,4,124,0,161,1, - 125,3,87,0,110,12,4,0,116,5,121,74,1,0,1,0, - 1,0,100,2,125,3,89,0,110,2,100,6,125,3,116,6, - 124,0,124,1,124,2,124,3,100,7,141,4,83,0,119,0, - 41,8,122,53,82,101,116,117,114,110,32,97,32,109,111,100, - 117,108,101,32,115,112,101,99,32,98,97,115,101,100,32,111, - 110,32,118,97,114,105,111,117,115,32,108,111,97,100,101,114, - 32,109,101,116,104,111,100,115,46,90,12,103,101,116,95,102, - 105,108,101,110,97,109,101,78,41,1,114,122,0,0,0,41, - 2,114,122,0,0,0,114,129,0,0,0,114,128,0,0,0, - 70,114,148,0,0,0,41,7,114,11,0,0,0,114,139,0, - 0,0,114,140,0,0,0,218,23,115,112,101,99,95,102,114, - 111,109,95,102,105,108,101,95,108,111,99,97,116,105,111,110, - 114,128,0,0,0,114,87,0,0,0,114,125,0,0,0,41, - 6,114,20,0,0,0,114,122,0,0,0,114,126,0,0,0, - 114,128,0,0,0,114,149,0,0,0,90,6,115,101,97,114, - 99,104,114,5,0,0,0,114,5,0,0,0,114,6,0,0, - 0,114,104,0,0,0,165,1,0,0,115,38,0,0,0,10, - 2,8,1,4,1,6,1,8,2,12,1,12,1,6,1,2, - 1,6,255,8,3,10,1,2,1,14,1,12,1,8,1,4, - 3,16,2,2,250,114,104,0,0,0,99,3,0,0,0,0, - 0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,67, - 0,0,0,115,30,1,0,0,122,5,124,0,106,0,125,3, - 87,0,110,8,4,0,116,1,121,142,1,0,1,0,1,0, - 89,0,110,6,124,3,100,0,117,1,114,20,124,3,83,0, - 124,0,106,2,125,4,124,1,100,0,117,0,114,40,122,5, - 124,0,106,3,125,1,87,0,110,7,4,0,116,1,121,141, - 1,0,1,0,1,0,89,0,122,5,124,0,106,4,125,5, - 87,0,110,9,4,0,116,1,121,140,1,0,1,0,1,0, - 100,0,125,5,89,0,124,2,100,0,117,0,114,81,124,5, - 100,0,117,0,114,79,122,5,124,1,106,5,125,2,87,0, - 110,12,4,0,116,1,121,139,1,0,1,0,1,0,100,0, - 125,2,89,0,110,2,124,5,125,2,122,5,124,0,106,6, - 125,6,87,0,110,9,4,0,116,1,121,138,1,0,1,0, - 1,0,100,0,125,6,89,0,122,7,116,7,124,0,106,8, - 131,1,125,7,87,0,110,9,4,0,116,1,121,137,1,0, - 1,0,1,0,100,0,125,7,89,0,116,9,124,4,124,1, - 124,2,100,1,141,3,125,3,124,5,100,0,117,0,114,126, - 100,2,110,1,100,3,124,3,95,10,124,6,124,3,95,11, - 124,7,124,3,95,12,124,3,83,0,119,0,119,0,119,0, - 119,0,119,0,119,0,41,4,78,169,1,114,126,0,0,0, - 70,84,41,13,114,113,0,0,0,114,2,0,0,0,114,9, - 0,0,0,114,112,0,0,0,114,121,0,0,0,218,7,95, - 79,82,73,71,73,78,218,10,95,95,99,97,99,104,101,100, - 95,95,218,4,108,105,115,116,218,8,95,95,112,97,116,104, - 95,95,114,125,0,0,0,114,130,0,0,0,114,135,0,0, - 0,114,129,0,0,0,41,8,114,110,0,0,0,114,122,0, - 0,0,114,126,0,0,0,114,109,0,0,0,114,20,0,0, - 0,90,8,108,111,99,97,116,105,111,110,114,135,0,0,0, - 114,129,0,0,0,114,5,0,0,0,114,5,0,0,0,114, - 6,0,0,0,218,17,95,115,112,101,99,95,102,114,111,109, - 95,109,111,100,117,108,101,191,1,0,0,115,84,0,0,0, - 2,2,10,1,12,1,4,1,8,2,4,1,6,2,8,1, - 2,1,10,1,12,1,2,2,2,1,10,1,12,1,6,1, - 8,1,8,1,2,1,10,1,12,1,8,1,4,2,2,1, - 10,1,12,1,6,1,2,1,14,1,12,1,6,1,14,2, - 18,1,6,1,6,1,4,1,2,249,2,252,2,250,2,250, - 2,251,2,246,114,155,0,0,0,70,169,1,218,8,111,118, - 101,114,114,105,100,101,99,2,0,0,0,0,0,0,0,1, - 0,0,0,5,0,0,0,8,0,0,0,67,0,0,0,115, - 178,1,0,0,124,2,115,10,116,0,124,1,100,1,100,0, - 131,3,100,0,117,0,114,24,122,6,124,0,106,1,124,1, - 95,2,87,0,110,7,4,0,116,3,121,216,1,0,1,0, - 1,0,89,0,124,2,115,34,116,0,124,1,100,2,100,0, - 131,3,100,0,117,0,114,83,124,0,106,4,125,3,124,3, - 100,0,117,0,114,70,124,0,106,5,100,0,117,1,114,70, - 116,6,100,0,117,0,114,52,116,7,130,1,116,6,106,8, - 125,4,124,4,160,9,124,4,161,1,125,3,124,0,106,5, - 124,3,95,10,124,3,124,0,95,4,100,0,124,1,95,11, - 122,5,124,3,124,1,95,12,87,0,110,7,4,0,116,3, - 121,215,1,0,1,0,1,0,89,0,124,2,115,93,116,0, - 124,1,100,3,100,0,131,3,100,0,117,0,114,107,122,6, - 124,0,106,13,124,1,95,14,87,0,110,7,4,0,116,3, - 121,214,1,0,1,0,1,0,89,0,122,5,124,0,124,1, - 95,15,87,0,110,7,4,0,116,3,121,213,1,0,1,0, - 1,0,89,0,124,2,115,130,116,0,124,1,100,4,100,0, - 131,3,100,0,117,0,114,149,124,0,106,5,100,0,117,1, - 114,149,122,6,124,0,106,5,124,1,95,16,87,0,110,7, - 4,0,116,3,121,212,1,0,1,0,1,0,89,0,124,0, - 106,17,114,208,124,2,115,162,116,0,124,1,100,5,100,0, - 131,3,100,0,117,0,114,176,122,6,124,0,106,18,124,1, - 95,11,87,0,110,7,4,0,116,3,121,211,1,0,1,0, - 1,0,89,0,124,2,115,186,116,0,124,1,100,6,100,0, - 131,3,100,0,117,0,114,208,124,0,106,19,100,0,117,1, - 114,208,122,7,124,0,106,19,124,1,95,20,87,0,124,1, - 83,0,4,0,116,3,121,210,1,0,1,0,1,0,89,0, - 124,1,83,0,124,1,83,0,119,0,119,0,119,0,119,0, - 119,0,119,0,119,0,41,7,78,114,9,0,0,0,114,112, - 0,0,0,218,11,95,95,112,97,99,107,97,103,101,95,95, - 114,154,0,0,0,114,121,0,0,0,114,152,0,0,0,41, - 21,114,13,0,0,0,114,20,0,0,0,114,9,0,0,0, - 114,2,0,0,0,114,122,0,0,0,114,129,0,0,0,114, - 139,0,0,0,114,140,0,0,0,218,16,95,78,97,109,101, - 115,112,97,99,101,76,111,97,100,101,114,218,7,95,95,110, - 101,119,95,95,90,5,95,112,97,116,104,114,121,0,0,0, - 114,112,0,0,0,114,143,0,0,0,114,158,0,0,0,114, - 113,0,0,0,114,154,0,0,0,114,136,0,0,0,114,126, - 0,0,0,114,135,0,0,0,114,152,0,0,0,41,5,114, - 109,0,0,0,114,110,0,0,0,114,157,0,0,0,114,122, - 0,0,0,114,159,0,0,0,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,218,18,95,105,110,105,116,95,109, - 111,100,117,108,101,95,97,116,116,114,115,236,1,0,0,115, - 112,0,0,0,20,4,2,1,12,1,12,1,2,1,20,2, - 6,1,8,1,10,2,8,1,4,1,6,1,10,2,8,1, - 6,1,6,11,2,1,10,1,12,1,2,1,20,2,2,1, - 12,1,12,1,2,1,2,2,10,1,12,1,2,1,20,2, - 10,1,2,1,12,1,12,1,2,1,6,2,20,1,2,1, - 12,1,12,1,2,1,20,2,10,1,2,1,10,1,4,3, - 12,254,2,1,8,1,2,254,2,249,2,249,2,249,2,251, - 2,250,2,228,114,161,0,0,0,99,1,0,0,0,0,0, - 0,0,0,0,0,0,2,0,0,0,3,0,0,0,67,0, - 0,0,115,82,0,0,0,100,1,125,1,116,0,124,0,106, - 1,100,2,131,2,114,15,124,0,106,1,160,2,124,0,161, - 1,125,1,110,10,116,0,124,0,106,1,100,3,131,2,114, - 25,116,3,100,4,131,1,130,1,124,1,100,1,117,0,114, - 34,116,4,124,0,106,5,131,1,125,1,116,6,124,0,124, - 1,131,2,1,0,124,1,83,0,41,5,122,43,67,114,101, - 97,116,101,32,97,32,109,111,100,117,108,101,32,98,97,115, - 101,100,32,111,110,32,116,104,101,32,112,114,111,118,105,100, - 101,100,32,115,112,101,99,46,78,218,13,99,114,101,97,116, - 101,95,109,111,100,117,108,101,218,11,101,120,101,99,95,109, - 111,100,117,108,101,122,66,108,111,97,100,101,114,115,32,116, - 104,97,116,32,100,101,102,105,110,101,32,101,120,101,99,95, - 109,111,100,117,108,101,40,41,32,109,117,115,116,32,97,108, - 115,111,32,100,101,102,105,110,101,32,99,114,101,97,116,101, - 95,109,111,100,117,108,101,40,41,41,7,114,11,0,0,0, - 114,122,0,0,0,114,162,0,0,0,114,87,0,0,0,114, - 21,0,0,0,114,20,0,0,0,114,161,0,0,0,169,2, - 114,109,0,0,0,114,110,0,0,0,114,5,0,0,0,114, - 5,0,0,0,114,6,0,0,0,218,16,109,111,100,117,108, - 101,95,102,114,111,109,95,115,112,101,99,52,2,0,0,115, - 18,0,0,0,4,3,12,1,14,3,12,1,8,1,8,2, - 10,1,10,1,4,1,114,165,0,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,100,0,0,0,124,0,106,0,100,1,117, - 0,114,7,100,2,110,2,124,0,106,0,125,1,124,0,106, - 1,100,1,117,0,114,32,124,0,106,2,100,1,117,0,114, - 25,100,3,160,3,124,1,161,1,83,0,100,4,160,3,124, - 1,124,0,106,2,161,2,83,0,124,0,106,4,114,42,100, - 5,160,3,124,1,124,0,106,1,161,2,83,0,100,6,160, - 3,124,0,106,0,124,0,106,1,161,2,83,0,41,7,122, - 38,82,101,116,117,114,110,32,116,104,101,32,114,101,112,114, - 32,116,111,32,117,115,101,32,102,111,114,32,116,104,101,32, - 109,111,100,117,108,101,46,78,114,115,0,0,0,114,116,0, - 0,0,114,117,0,0,0,114,118,0,0,0,250,18,60,109, - 111,100,117,108,101,32,123,33,114,125,32,40,123,125,41,62, - 41,5,114,20,0,0,0,114,126,0,0,0,114,122,0,0, - 0,114,50,0,0,0,114,136,0,0,0,41,2,114,109,0, - 0,0,114,20,0,0,0,114,5,0,0,0,114,5,0,0, - 0,114,6,0,0,0,114,119,0,0,0,69,2,0,0,115, - 16,0,0,0,20,3,10,1,10,1,10,1,14,2,6,2, - 14,1,16,2,114,119,0,0,0,99,2,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,10,0,0,0,67,0, - 0,0,115,24,1,0,0,124,0,106,0,125,2,116,1,124, - 2,131,1,143,115,1,0,116,2,106,3,160,4,124,2,161, - 1,124,1,117,1,114,27,100,1,160,5,124,2,161,1,125, - 3,116,6,124,3,124,2,100,2,141,2,130,1,122,80,124, - 0,106,7,100,3,117,0,114,53,124,0,106,8,100,3,117, - 0,114,45,116,6,100,4,124,0,106,0,100,2,141,2,130, - 1,116,9,124,0,124,1,100,5,100,6,141,3,1,0,110, - 40,116,9,124,0,124,1,100,5,100,6,141,3,1,0,116, - 10,124,0,106,7,100,7,131,2,115,87,116,11,124,0,106, - 7,131,1,155,0,100,8,157,2,125,3,116,12,160,13,124, - 3,116,14,161,2,1,0,124,0,106,7,160,15,124,2,161, - 1,1,0,110,6,124,0,106,7,160,16,124,1,161,1,1, - 0,87,0,116,2,106,3,160,17,124,0,106,0,161,1,125, - 1,124,1,116,2,106,3,124,0,106,0,60,0,110,24,116, + 0,0,218,17,95,115,112,101,99,95,102,114,111,109,95,109, + 111,100,117,108,101,191,1,0,0,115,84,0,0,0,2,2, + 10,1,12,1,4,1,2,255,8,3,4,1,6,2,8,1, + 2,1,10,1,12,1,4,2,2,254,2,3,10,1,12,1, + 8,1,2,255,8,2,8,1,2,1,10,1,12,1,8,1, + 2,255,4,3,2,1,10,1,12,1,8,1,2,255,2,2, + 14,1,12,1,8,1,2,255,14,3,18,1,6,1,6,1, + 4,1,114,155,0,0,0,70,169,1,218,8,111,118,101,114, + 114,105,100,101,99,2,0,0,0,0,0,0,0,1,0,0, + 0,5,0,0,0,8,0,0,0,67,0,0,0,115,190,1, + 0,0,124,2,115,10,116,0,124,1,100,1,100,0,131,3, + 100,0,117,0,114,26,122,6,124,0,106,1,124,1,95,2, + 87,0,110,9,4,0,116,3,121,25,1,0,1,0,1,0, + 89,0,110,1,119,0,124,2,115,36,116,0,124,1,100,2, + 100,0,131,3,100,0,117,0,114,87,124,0,106,4,125,3, + 124,3,100,0,117,0,114,72,124,0,106,5,100,0,117,1, + 114,72,116,6,100,0,117,0,114,54,116,7,130,1,116,6, + 106,8,125,4,124,4,160,9,124,4,161,1,125,3,124,0, + 106,5,124,3,95,10,124,3,124,0,95,4,100,0,124,1, + 95,11,122,5,124,3,124,1,95,12,87,0,110,9,4,0, + 116,3,121,86,1,0,1,0,1,0,89,0,110,1,119,0, + 124,2,115,97,116,0,124,1,100,3,100,0,131,3,100,0, + 117,0,114,113,122,6,124,0,106,13,124,1,95,14,87,0, + 110,9,4,0,116,3,121,112,1,0,1,0,1,0,89,0, + 110,1,119,0,122,5,124,0,124,1,95,15,87,0,110,9, + 4,0,116,3,121,127,1,0,1,0,1,0,89,0,110,1, + 119,0,124,2,115,138,116,0,124,1,100,4,100,0,131,3, + 100,0,117,0,114,159,124,0,106,5,100,0,117,1,114,159, + 122,6,124,0,106,5,124,1,95,16,87,0,110,9,4,0, + 116,3,121,158,1,0,1,0,1,0,89,0,110,1,119,0, + 124,0,106,17,114,221,124,2,115,172,116,0,124,1,100,5, + 100,0,131,3,100,0,117,0,114,188,122,6,124,0,106,18, + 124,1,95,11,87,0,110,9,4,0,116,3,121,187,1,0, + 1,0,1,0,89,0,110,1,119,0,124,2,115,198,116,0, + 124,1,100,6,100,0,131,3,100,0,117,0,114,221,124,0, + 106,19,100,0,117,1,114,221,122,7,124,0,106,19,124,1, + 95,20,87,0,124,1,83,0,4,0,116,3,121,220,1,0, + 1,0,1,0,89,0,124,1,83,0,119,0,124,1,83,0, + 41,7,78,114,9,0,0,0,114,112,0,0,0,218,11,95, + 95,112,97,99,107,97,103,101,95,95,114,154,0,0,0,114, + 121,0,0,0,114,152,0,0,0,41,21,114,13,0,0,0, + 114,20,0,0,0,114,9,0,0,0,114,2,0,0,0,114, + 122,0,0,0,114,129,0,0,0,114,139,0,0,0,114,140, + 0,0,0,218,16,95,78,97,109,101,115,112,97,99,101,76, + 111,97,100,101,114,218,7,95,95,110,101,119,95,95,90,5, + 95,112,97,116,104,114,121,0,0,0,114,112,0,0,0,114, + 143,0,0,0,114,158,0,0,0,114,113,0,0,0,114,154, + 0,0,0,114,136,0,0,0,114,126,0,0,0,114,135,0, + 0,0,114,152,0,0,0,41,5,114,109,0,0,0,114,110, + 0,0,0,114,157,0,0,0,114,122,0,0,0,114,159,0, + 0,0,114,5,0,0,0,114,5,0,0,0,114,6,0,0, + 0,218,18,95,105,110,105,116,95,109,111,100,117,108,101,95, + 97,116,116,114,115,236,1,0,0,115,114,0,0,0,20,4, + 2,1,12,1,12,1,4,1,2,255,20,3,6,1,8,1, + 10,2,8,1,4,1,6,1,10,2,8,1,6,1,6,11, + 2,1,10,1,12,1,4,1,2,255,20,3,2,1,12,1, + 12,1,4,1,2,255,2,3,10,1,12,1,4,1,2,255, + 20,3,10,1,2,1,12,1,12,1,4,1,2,255,6,3, + 20,1,2,1,12,1,12,1,4,1,2,255,20,3,10,1, + 2,1,10,1,4,3,12,254,2,1,4,1,2,254,4,2, + 114,161,0,0,0,99,1,0,0,0,0,0,0,0,0,0, + 0,0,2,0,0,0,3,0,0,0,67,0,0,0,115,82, + 0,0,0,100,1,125,1,116,0,124,0,106,1,100,2,131, + 2,114,15,124,0,106,1,160,2,124,0,161,1,125,1,110, + 10,116,0,124,0,106,1,100,3,131,2,114,25,116,3,100, + 4,131,1,130,1,124,1,100,1,117,0,114,34,116,4,124, + 0,106,5,131,1,125,1,116,6,124,0,124,1,131,2,1, + 0,124,1,83,0,41,5,122,43,67,114,101,97,116,101,32, + 97,32,109,111,100,117,108,101,32,98,97,115,101,100,32,111, + 110,32,116,104,101,32,112,114,111,118,105,100,101,100,32,115, + 112,101,99,46,78,218,13,99,114,101,97,116,101,95,109,111, + 100,117,108,101,218,11,101,120,101,99,95,109,111,100,117,108, + 101,122,66,108,111,97,100,101,114,115,32,116,104,97,116,32, + 100,101,102,105,110,101,32,101,120,101,99,95,109,111,100,117, + 108,101,40,41,32,109,117,115,116,32,97,108,115,111,32,100, + 101,102,105,110,101,32,99,114,101,97,116,101,95,109,111,100, + 117,108,101,40,41,41,7,114,11,0,0,0,114,122,0,0, + 0,114,162,0,0,0,114,87,0,0,0,114,21,0,0,0, + 114,20,0,0,0,114,161,0,0,0,169,2,114,109,0,0, + 0,114,110,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,218,16,109,111,100,117,108,101,95,102,114, + 111,109,95,115,112,101,99,52,2,0,0,115,18,0,0,0, + 4,3,12,1,14,3,12,1,8,1,8,2,10,1,10,1, + 4,1,114,165,0,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,100,0,0,0,124,0,106,0,100,1,117,0,114,7,100, + 2,110,2,124,0,106,0,125,1,124,0,106,1,100,1,117, + 0,114,32,124,0,106,2,100,1,117,0,114,25,100,3,160, + 3,124,1,161,1,83,0,100,4,160,3,124,1,124,0,106, + 2,161,2,83,0,124,0,106,4,114,42,100,5,160,3,124, + 1,124,0,106,1,161,2,83,0,100,6,160,3,124,0,106, + 0,124,0,106,1,161,2,83,0,41,7,122,38,82,101,116, + 117,114,110,32,116,104,101,32,114,101,112,114,32,116,111,32, + 117,115,101,32,102,111,114,32,116,104,101,32,109,111,100,117, + 108,101,46,78,114,115,0,0,0,114,116,0,0,0,114,117, + 0,0,0,114,118,0,0,0,250,18,60,109,111,100,117,108, + 101,32,123,33,114,125,32,40,123,125,41,62,41,5,114,20, + 0,0,0,114,126,0,0,0,114,122,0,0,0,114,50,0, + 0,0,114,136,0,0,0,41,2,114,109,0,0,0,114,20, + 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, + 0,0,114,119,0,0,0,69,2,0,0,115,16,0,0,0, + 20,3,10,1,10,1,10,1,14,2,6,2,14,1,16,2, + 114,119,0,0,0,99,2,0,0,0,0,0,0,0,0,0, + 0,0,4,0,0,0,10,0,0,0,67,0,0,0,115,24, + 1,0,0,124,0,106,0,125,2,116,1,124,2,131,1,143, + 123,1,0,116,2,106,3,160,4,124,2,161,1,124,1,117, + 1,114,27,100,1,160,5,124,2,161,1,125,3,116,6,124, + 3,124,2,100,2,141,2,130,1,122,80,124,0,106,7,100, + 3,117,0,114,53,124,0,106,8,100,3,117,0,114,45,116, + 6,100,4,124,0,106,0,100,2,141,2,130,1,116,9,124, + 0,124,1,100,5,100,6,141,3,1,0,110,40,116,9,124, + 0,124,1,100,5,100,6,141,3,1,0,116,10,124,0,106, + 7,100,7,131,2,115,87,116,11,124,0,106,7,131,1,155, + 0,100,8,157,2,125,3,116,12,160,13,124,3,116,14,161, + 2,1,0,124,0,106,7,160,15,124,2,161,1,1,0,110, + 6,124,0,106,7,160,16,124,1,161,1,1,0,87,0,116, 2,106,3,160,17,124,0,106,0,161,1,125,1,124,1,116, - 2,106,3,124,0,106,0,60,0,119,0,49,0,115,125,119, - 1,1,0,1,0,1,0,89,0,1,0,124,1,83,0,87, - 0,100,3,4,0,4,0,131,3,1,0,124,1,83,0,41, - 9,122,70,69,120,101,99,117,116,101,32,116,104,101,32,115, - 112,101,99,39,115,32,115,112,101,99,105,102,105,101,100,32, - 109,111,100,117,108,101,32,105,110,32,97,110,32,101,120,105, - 115,116,105,110,103,32,109,111,100,117,108,101,39,115,32,110, - 97,109,101,115,112,97,99,101,46,122,30,109,111,100,117,108, - 101,32,123,33,114,125,32,110,111,116,32,105,110,32,115,121, - 115,46,109,111,100,117,108,101,115,114,19,0,0,0,78,250, - 14,109,105,115,115,105,110,103,32,108,111,97,100,101,114,84, - 114,156,0,0,0,114,163,0,0,0,250,55,46,101,120,101, - 99,95,109,111,100,117,108,101,40,41,32,110,111,116,32,102, - 111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97, - 99,107,32,116,111,32,108,111,97,100,95,109,111,100,117,108, - 101,40,41,41,18,114,20,0,0,0,114,57,0,0,0,114, - 18,0,0,0,114,105,0,0,0,114,38,0,0,0,114,50, - 0,0,0,114,87,0,0,0,114,122,0,0,0,114,129,0, - 0,0,114,161,0,0,0,114,11,0,0,0,114,7,0,0, - 0,114,101,0,0,0,114,102,0,0,0,218,13,73,109,112, - 111,114,116,87,97,114,110,105,110,103,218,11,108,111,97,100, - 95,109,111,100,117,108,101,114,163,0,0,0,218,3,112,111, - 112,41,4,114,109,0,0,0,114,110,0,0,0,114,20,0, - 0,0,114,108,0,0,0,114,5,0,0,0,114,5,0,0, - 0,114,6,0,0,0,114,106,0,0,0,86,2,0,0,115, - 52,0,0,0,6,2,10,1,16,1,10,1,12,1,2,1, - 10,1,10,1,14,1,16,2,14,2,12,1,16,1,12,2, - 14,1,12,2,2,128,14,4,14,1,14,255,14,1,16,233, - 4,24,2,255,10,233,4,24,114,106,0,0,0,99,1,0, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0, - 0,0,67,0,0,0,115,10,1,0,0,122,9,124,0,106, - 0,160,1,124,0,106,2,161,1,1,0,87,0,110,23,1, - 0,1,0,1,0,124,0,106,2,116,3,106,4,118,0,114, - 32,116,3,106,4,160,5,124,0,106,2,161,1,125,1,124, - 1,116,3,106,4,124,0,106,2,60,0,130,0,116,3,106, - 4,160,5,124,0,106,2,161,1,125,1,124,1,116,3,106, - 4,124,0,106,2,60,0,116,6,124,1,100,1,100,0,131, - 3,100,0,117,0,114,68,122,6,124,0,106,0,124,1,95, - 7,87,0,110,7,4,0,116,8,121,132,1,0,1,0,1, - 0,89,0,116,6,124,1,100,2,100,0,131,3,100,0,117, - 0,114,104,122,20,124,1,106,9,124,1,95,10,116,11,124, - 1,100,3,131,2,115,95,124,0,106,2,160,12,100,4,161, - 1,100,5,25,0,124,1,95,10,87,0,110,7,4,0,116, - 8,121,131,1,0,1,0,1,0,89,0,116,6,124,1,100, - 6,100,0,131,3,100,0,117,0,114,128,122,6,124,0,124, - 1,95,13,87,0,124,1,83,0,4,0,116,8,121,130,1, - 0,1,0,1,0,89,0,124,1,83,0,124,1,83,0,119, - 0,119,0,119,0,41,7,78,114,112,0,0,0,114,158,0, - 0,0,114,154,0,0,0,114,141,0,0,0,114,25,0,0, - 0,114,113,0,0,0,41,14,114,122,0,0,0,114,170,0, - 0,0,114,20,0,0,0,114,18,0,0,0,114,105,0,0, - 0,114,171,0,0,0,114,13,0,0,0,114,112,0,0,0, - 114,2,0,0,0,114,9,0,0,0,114,158,0,0,0,114, - 11,0,0,0,114,142,0,0,0,114,113,0,0,0,114,164, + 2,106,3,124,0,106,0,60,0,110,14,116,2,106,3,160, + 17,124,0,106,0,161,1,125,1,124,1,116,2,106,3,124, + 0,106,0,60,0,119,0,87,0,100,3,4,0,4,0,131, + 3,1,0,124,1,83,0,49,0,115,133,119,1,1,0,1, + 0,1,0,89,0,1,0,124,1,83,0,41,9,122,70,69, + 120,101,99,117,116,101,32,116,104,101,32,115,112,101,99,39, + 115,32,115,112,101,99,105,102,105,101,100,32,109,111,100,117, + 108,101,32,105,110,32,97,110,32,101,120,105,115,116,105,110, + 103,32,109,111,100,117,108,101,39,115,32,110,97,109,101,115, + 112,97,99,101,46,122,30,109,111,100,117,108,101,32,123,33, + 114,125,32,110,111,116,32,105,110,32,115,121,115,46,109,111, + 100,117,108,101,115,114,19,0,0,0,78,250,14,109,105,115, + 115,105,110,103,32,108,111,97,100,101,114,84,114,156,0,0, + 0,114,163,0,0,0,250,55,46,101,120,101,99,95,109,111, + 100,117,108,101,40,41,32,110,111,116,32,102,111,117,110,100, + 59,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116, + 111,32,108,111,97,100,95,109,111,100,117,108,101,40,41,41, + 18,114,20,0,0,0,114,57,0,0,0,114,18,0,0,0, + 114,105,0,0,0,114,38,0,0,0,114,50,0,0,0,114, + 87,0,0,0,114,122,0,0,0,114,129,0,0,0,114,161, + 0,0,0,114,11,0,0,0,114,7,0,0,0,114,101,0, + 0,0,114,102,0,0,0,218,13,73,109,112,111,114,116,87, + 97,114,110,105,110,103,218,11,108,111,97,100,95,109,111,100, + 117,108,101,114,163,0,0,0,218,3,112,111,112,41,4,114, + 109,0,0,0,114,110,0,0,0,114,20,0,0,0,114,108, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,218,25,95,108,111,97,100,95,98,97,99,107,119,97, - 114,100,95,99,111,109,112,97,116,105,98,108,101,116,2,0, - 0,115,64,0,0,0,2,3,18,1,6,1,12,1,14,1, - 12,1,2,1,14,3,12,1,16,1,2,1,12,1,12,1, - 2,1,16,1,2,1,8,4,10,1,18,1,4,128,12,1, - 2,1,16,1,2,1,8,1,4,3,12,254,2,1,8,1, - 2,254,2,251,2,246,114,172,0,0,0,99,1,0,0,0, + 0,0,114,106,0,0,0,86,2,0,0,115,50,0,0,0, + 6,2,10,1,16,1,10,1,12,1,2,1,10,1,10,1, + 14,1,16,2,14,2,12,1,16,1,12,2,14,1,12,2, + 2,128,14,4,14,1,14,255,16,1,10,233,4,24,16,232, + 4,24,114,106,0,0,0,99,1,0,0,0,0,0,0,0, + 0,0,0,0,2,0,0,0,8,0,0,0,67,0,0,0, + 115,14,1,0,0,122,9,124,0,106,0,160,1,124,0,106, + 2,161,1,1,0,87,0,110,23,1,0,1,0,1,0,124, + 0,106,2,116,3,106,4,118,0,114,32,116,3,106,4,160, + 5,124,0,106,2,161,1,125,1,124,1,116,3,106,4,124, + 0,106,2,60,0,130,0,116,3,106,4,160,5,124,0,106, + 2,161,1,125,1,124,1,116,3,106,4,124,0,106,2,60, + 0,116,6,124,1,100,1,100,0,131,3,100,0,117,0,114, + 70,122,6,124,0,106,0,124,1,95,7,87,0,110,9,4, + 0,116,8,121,69,1,0,1,0,1,0,89,0,110,1,119, + 0,116,6,124,1,100,2,100,0,131,3,100,0,117,0,114, + 108,122,20,124,1,106,9,124,1,95,10,116,11,124,1,100, + 3,131,2,115,97,124,0,106,2,160,12,100,4,161,1,100, + 5,25,0,124,1,95,10,87,0,110,9,4,0,116,8,121, + 107,1,0,1,0,1,0,89,0,110,1,119,0,116,6,124, + 1,100,6,100,0,131,3,100,0,117,0,114,133,122,6,124, + 0,124,1,95,13,87,0,124,1,83,0,4,0,116,8,121, + 132,1,0,1,0,1,0,89,0,124,1,83,0,119,0,124, + 1,83,0,41,7,78,114,112,0,0,0,114,158,0,0,0, + 114,154,0,0,0,114,141,0,0,0,114,25,0,0,0,114, + 113,0,0,0,41,14,114,122,0,0,0,114,170,0,0,0, + 114,20,0,0,0,114,18,0,0,0,114,105,0,0,0,114, + 171,0,0,0,114,13,0,0,0,114,112,0,0,0,114,2, + 0,0,0,114,9,0,0,0,114,158,0,0,0,114,11,0, + 0,0,114,142,0,0,0,114,113,0,0,0,114,164,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 218,25,95,108,111,97,100,95,98,97,99,107,119,97,114,100, + 95,99,111,109,112,97,116,105,98,108,101,116,2,0,0,115, + 66,0,0,0,2,3,18,1,6,1,12,1,14,1,12,1, + 2,1,14,3,12,1,16,1,2,1,12,1,12,1,4,1, + 2,255,16,2,2,1,8,4,10,1,18,1,4,128,12,1, + 4,1,2,255,16,2,2,1,8,1,4,3,12,254,2,1, + 4,1,2,254,4,2,114,172,0,0,0,99,1,0,0,0, 0,0,0,0,0,0,0,0,3,0,0,0,11,0,0,0, 67,0,0,0,115,242,0,0,0,124,0,106,0,100,0,117, 1,114,29,116,1,124,0,106,0,100,1,131,2,115,29,116, 2,124,0,106,0,131,1,155,0,100,2,157,2,125,1,116, 3,160,4,124,1,116,5,161,2,1,0,116,6,124,0,131, 1,83,0,116,7,124,0,131,1,125,2,100,3,124,0,95, - 8,122,79,124,2,116,9,106,10,124,0,106,11,60,0,122, + 8,122,80,124,2,116,9,106,10,124,0,106,11,60,0,122, 26,124,0,106,0,100,0,117,0,114,62,124,0,106,12,100, 0,117,0,114,61,116,13,100,4,124,0,106,11,100,5,141, 2,130,1,110,6,124,0,106,0,160,14,124,2,161,1,1, - 0,87,0,110,19,1,0,1,0,1,0,122,7,116,9,106, + 0,87,0,110,20,1,0,1,0,1,0,122,7,116,9,106, 10,124,0,106,11,61,0,87,0,130,0,4,0,116,15,121, - 120,1,0,1,0,1,0,89,0,130,0,116,9,106,10,160, - 16,124,0,106,11,161,1,125,2,124,2,116,9,106,10,124, - 0,106,11,60,0,116,17,100,6,124,0,106,11,124,0,106, - 0,131,3,1,0,87,0,100,7,124,0,95,8,124,2,83, - 0,100,7,124,0,95,8,119,0,119,0,41,8,78,114,163, + 89,1,0,1,0,1,0,89,0,130,0,119,0,116,9,106, + 10,160,16,124,0,106,11,161,1,125,2,124,2,116,9,106, + 10,124,0,106,11,60,0,116,17,100,6,124,0,106,11,124, + 0,106,0,131,3,1,0,87,0,100,7,124,0,95,8,124, + 2,83,0,100,7,124,0,95,8,119,0,41,8,78,114,163, 0,0,0,114,168,0,0,0,84,114,167,0,0,0,114,19, 0,0,0,122,18,105,109,112,111,114,116,32,123,33,114,125, 32,35,32,123,33,114,125,70,41,18,114,122,0,0,0,114, @@ -1043,8 +1045,8 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,0,115,60,0,0,0,10,2,12,2,16,1,12,2,8, 1,8,2,6,5,2,1,12,1,2,1,10,1,10,1,14, 1,2,255,12,4,4,128,6,1,2,1,12,1,2,3,12, - 254,2,1,2,1,14,5,12,1,18,1,6,2,4,2,8, - 254,2,245,114,173,0,0,0,99,1,0,0,0,0,0,0, + 254,2,1,2,1,2,254,14,7,12,1,18,1,6,2,4, + 2,8,254,114,173,0,0,0,99,1,0,0,0,0,0,0, 0,0,0,0,0,1,0,0,0,8,0,0,0,67,0,0, 0,115,54,0,0,0,116,0,124,0,106,1,131,1,143,12, 1,0,116,2,124,0,131,1,87,0,2,0,100,1,4,0, @@ -1453,21 +1455,21 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 0,116,0,106,1,125,3,124,3,100,1,117,0,114,11,116, 2,100,2,131,1,130,1,124,3,115,19,116,3,160,4,100, 3,116,5,161,2,1,0,124,0,116,0,106,6,118,0,125, - 4,124,3,68,0,93,109,125,5,116,7,131,0,143,46,1, - 0,122,5,124,5,106,8,125,6,87,0,110,26,4,0,116, - 9,121,139,1,0,1,0,1,0,116,10,124,5,124,0,124, + 4,124,3,68,0,93,111,125,5,116,7,131,0,143,47,1, + 0,122,5,124,5,106,8,125,6,87,0,110,27,4,0,116, + 9,121,64,1,0,1,0,1,0,116,10,124,5,124,0,124, 1,131,3,125,7,124,7,100,1,117,0,114,62,89,0,87, 0,100,1,4,0,4,0,131,3,1,0,113,26,89,0,110, - 6,124,6,124,0,124,1,124,2,131,3,125,7,87,0,100, - 1,4,0,4,0,131,3,1,0,110,8,49,0,115,80,119, - 1,1,0,1,0,1,0,89,0,1,0,124,7,100,1,117, - 1,114,135,124,4,115,131,124,0,116,0,106,6,118,0,114, - 131,116,0,106,6,124,0,25,0,125,8,122,5,124,8,106, - 11,125,9,87,0,110,12,4,0,116,9,121,138,1,0,1, - 0,1,0,124,7,6,0,89,0,2,0,1,0,83,0,124, - 9,100,1,117,0,114,127,124,7,2,0,1,0,83,0,124, - 9,2,0,1,0,83,0,124,7,2,0,1,0,83,0,113, - 26,100,1,83,0,119,0,119,0,41,4,122,21,70,105,110, + 7,119,0,124,6,124,0,124,1,124,2,131,3,125,7,87, + 0,100,1,4,0,4,0,131,3,1,0,110,8,49,0,115, + 81,119,1,1,0,1,0,1,0,89,0,1,0,124,7,100, + 1,117,1,114,137,124,4,115,133,124,0,116,0,106,6,118, + 0,114,133,116,0,106,6,124,0,25,0,125,8,122,5,124, + 8,106,11,125,9,87,0,110,13,4,0,116,9,121,120,1, + 0,1,0,1,0,124,7,6,0,89,0,2,0,1,0,83, + 0,119,0,124,9,100,1,117,0,114,129,124,7,2,0,1, + 0,83,0,124,9,2,0,1,0,83,0,124,7,2,0,1, + 0,83,0,113,26,100,1,83,0,41,4,122,21,70,105,110, 100,32,97,32,109,111,100,117,108,101,39,115,32,115,112,101, 99,46,78,122,53,115,121,115,46,109,101,116,97,95,112,97, 116,104,32,105,115,32,78,111,110,101,44,32,80,121,116,104, @@ -1486,9 +1488,9 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 10,95,102,105,110,100,95,115,112,101,99,153,3,0,0,115, 68,0,0,0,6,2,8,1,8,2,4,3,12,1,10,5, 8,1,8,1,2,1,10,1,12,1,12,1,8,1,2,1, - 14,250,4,5,12,3,2,128,28,248,8,9,14,2,10,1, - 2,1,10,1,12,1,12,4,8,2,8,1,8,2,8,2, - 2,239,4,19,2,243,2,244,114,215,0,0,0,99,3,0, + 14,250,4,5,2,254,12,5,2,128,28,248,8,9,14,2, + 10,1,2,1,10,1,12,1,12,4,2,252,8,6,8,1, + 8,2,8,2,2,239,4,19,114,215,0,0,0,99,3,0, 0,0,0,0,0,0,0,0,0,0,3,0,0,0,5,0, 0,0,67,0,0,0,115,110,0,0,0,116,0,124,0,116, 1,131,2,115,14,116,2,100,1,160,3,116,4,124,0,131, @@ -1496,7 +1498,7 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 5,100,3,131,1,130,1,124,2,100,2,107,4,114,41,116, 0,124,1,116,1,131,2,115,35,116,2,100,4,131,1,130, 1,124,1,115,41,116,6,100,5,131,1,130,1,124,0,115, - 53,124,2,100,2,107,2,114,51,116,5,100,6,131,1,130, + 51,124,2,100,2,107,2,114,53,116,5,100,6,131,1,130, 1,100,7,83,0,100,7,83,0,41,8,122,28,86,101,114, 105,102,121,32,97,114,103,117,109,101,110,116,115,32,97,114, 101,32,34,115,97,110,101,34,46,122,31,109,111,100,117,108, @@ -1523,23 +1525,23 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 122,4,123,33,114,125,99,2,0,0,0,0,0,0,0,0, 0,0,0,9,0,0,0,8,0,0,0,67,0,0,0,115, 16,1,0,0,100,0,125,2,124,0,160,0,100,1,161,1, - 100,2,25,0,125,3,124,3,114,63,124,3,116,1,106,2, + 100,2,25,0,125,3,124,3,114,64,124,3,116,1,106,2, 118,1,114,21,116,3,124,1,124,3,131,2,1,0,124,0, 116,1,106,2,118,0,114,31,116,1,106,2,124,0,25,0, 83,0,116,1,106,2,124,3,25,0,125,4,122,5,124,4, - 106,4,125,2,87,0,110,21,4,0,116,5,121,135,1,0, + 106,4,125,2,87,0,110,22,4,0,116,5,121,63,1,0, 1,0,1,0,116,6,100,3,23,0,160,7,124,0,124,3, 161,2,125,5,116,8,124,5,124,0,100,4,141,2,100,0, - 130,2,116,9,124,0,124,2,131,2,125,6,124,6,100,0, - 117,0,114,81,116,8,116,6,160,7,124,0,161,1,124,0, - 100,4,141,2,130,1,116,10,124,6,131,1,125,7,124,3, - 114,132,116,1,106,2,124,3,25,0,125,4,124,0,160,0, - 100,1,161,1,100,5,25,0,125,8,122,9,116,11,124,4, - 124,8,124,7,131,3,1,0,87,0,124,7,83,0,4,0, - 116,5,121,134,1,0,1,0,1,0,100,6,124,3,155,2, - 100,7,124,8,155,2,157,4,125,5,116,12,160,13,124,5, - 116,14,161,2,1,0,89,0,124,7,83,0,124,7,83,0, - 119,0,119,0,41,8,78,114,141,0,0,0,114,25,0,0, + 130,2,119,0,116,9,124,0,124,2,131,2,125,6,124,6, + 100,0,117,0,114,82,116,8,116,6,160,7,124,0,161,1, + 124,0,100,4,141,2,130,1,116,10,124,6,131,1,125,7, + 124,3,114,134,116,1,106,2,124,3,25,0,125,4,124,0, + 160,0,100,1,161,1,100,5,25,0,125,8,122,9,116,11, + 124,4,124,8,124,7,131,3,1,0,87,0,124,7,83,0, + 4,0,116,5,121,133,1,0,1,0,1,0,100,6,124,3, + 155,2,100,7,124,8,155,2,157,4,125,5,116,12,160,13, + 124,5,116,14,161,2,1,0,89,0,124,7,83,0,119,0, + 124,7,83,0,41,8,78,114,141,0,0,0,114,25,0,0, 0,122,23,59,32,123,33,114,125,32,105,115,32,110,111,116, 32,97,32,112,97,99,107,97,103,101,114,19,0,0,0,233, 2,0,0,0,122,27,67,97,110,110,111,116,32,115,101,116, @@ -1558,326 +1560,327 @@ const unsigned char _Py_M__importlib_bootstrap[] = { 5,99,104,105,108,100,114,5,0,0,0,114,5,0,0,0, 114,6,0,0,0,218,23,95,102,105,110,100,95,97,110,100, 95,108,111,97,100,95,117,110,108,111,99,107,101,100,219,3, - 0,0,115,58,0,0,0,4,1,14,1,4,1,10,1,10, + 0,0,115,60,0,0,0,4,1,14,1,4,1,10,1,10, 1,10,2,10,1,10,1,2,1,10,1,12,1,16,1,14, - 1,10,1,8,1,18,1,8,2,4,1,10,2,14,1,2, - 1,14,1,4,4,12,253,16,1,14,1,8,1,2,253,2, - 242,114,226,0,0,0,99,2,0,0,0,0,0,0,0,0, - 0,0,0,4,0,0,0,8,0,0,0,67,0,0,0,115, - 128,0,0,0,116,0,124,0,131,1,143,31,1,0,116,1, - 106,2,160,3,124,0,116,4,161,2,125,2,124,2,116,4, - 117,0,114,28,116,5,124,0,124,1,131,2,87,0,2,0, - 100,1,4,0,4,0,131,3,1,0,83,0,87,0,100,1, - 4,0,4,0,131,3,1,0,110,8,49,0,115,38,119,1, - 1,0,1,0,1,0,89,0,1,0,124,2,100,1,117,0, - 114,58,100,2,160,6,124,0,161,1,125,3,116,7,124,3, - 124,0,100,3,141,2,130,1,116,8,124,0,131,1,1,0, - 124,2,83,0,41,4,122,25,70,105,110,100,32,97,110,100, - 32,108,111,97,100,32,116,104,101,32,109,111,100,117,108,101, - 46,78,122,40,105,109,112,111,114,116,32,111,102,32,123,125, - 32,104,97,108,116,101,100,59,32,78,111,110,101,32,105,110, - 32,115,121,115,46,109,111,100,117,108,101,115,114,19,0,0, - 0,41,9,114,57,0,0,0,114,18,0,0,0,114,105,0, - 0,0,114,38,0,0,0,218,14,95,78,69,69,68,83,95, - 76,79,65,68,73,78,71,114,226,0,0,0,114,50,0,0, - 0,114,224,0,0,0,114,72,0,0,0,41,4,114,20,0, - 0,0,114,225,0,0,0,114,110,0,0,0,114,82,0,0, - 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, - 218,14,95,102,105,110,100,95,97,110,100,95,108,111,97,100, - 254,3,0,0,115,28,0,0,0,10,2,14,1,8,1,8, - 1,16,253,2,2,28,254,8,5,2,1,6,1,2,255,12, - 2,8,2,4,1,114,228,0,0,0,114,25,0,0,0,99, - 3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0, - 4,0,0,0,67,0,0,0,115,42,0,0,0,116,0,124, - 0,124,1,124,2,131,3,1,0,124,2,100,1,107,4,114, - 16,116,1,124,0,124,1,124,2,131,3,125,0,116,2,124, - 0,116,3,131,2,83,0,41,3,97,50,1,0,0,73,109, - 112,111,114,116,32,97,110,100,32,114,101,116,117,114,110,32, - 116,104,101,32,109,111,100,117,108,101,32,98,97,115,101,100, - 32,111,110,32,105,116,115,32,110,97,109,101,44,32,116,104, - 101,32,112,97,99,107,97,103,101,32,116,104,101,32,99,97, - 108,108,32,105,115,10,32,32,32,32,98,101,105,110,103,32, - 109,97,100,101,32,102,114,111,109,44,32,97,110,100,32,116, - 104,101,32,108,101,118,101,108,32,97,100,106,117,115,116,109, - 101,110,116,46,10,10,32,32,32,32,84,104,105,115,32,102, - 117,110,99,116,105,111,110,32,114,101,112,114,101,115,101,110, - 116,115,32,116,104,101,32,103,114,101,97,116,101,115,116,32, - 99,111,109,109,111,110,32,100,101,110,111,109,105,110,97,116, - 111,114,32,111,102,32,102,117,110,99,116,105,111,110,97,108, - 105,116,121,10,32,32,32,32,98,101,116,119,101,101,110,32, - 105,109,112,111,114,116,95,109,111,100,117,108,101,32,97,110, - 100,32,95,95,105,109,112,111,114,116,95,95,46,32,84,104, - 105,115,32,105,110,99,108,117,100,101,115,32,115,101,116,116, - 105,110,103,32,95,95,112,97,99,107,97,103,101,95,95,32, - 105,102,10,32,32,32,32,116,104,101,32,108,111,97,100,101, - 114,32,100,105,100,32,110,111,116,46,10,10,32,32,32,32, - 114,25,0,0,0,78,41,4,114,221,0,0,0,114,211,0, - 0,0,114,228,0,0,0,218,11,95,103,99,100,95,105,109, - 112,111,114,116,114,220,0,0,0,114,5,0,0,0,114,5, - 0,0,0,114,6,0,0,0,114,229,0,0,0,14,4,0, - 0,115,8,0,0,0,12,9,8,1,12,1,10,1,114,229, - 0,0,0,169,1,218,9,114,101,99,117,114,115,105,118,101, - 99,3,0,0,0,0,0,0,0,1,0,0,0,8,0,0, - 0,11,0,0,0,67,0,0,0,115,218,0,0,0,124,1, - 68,0,93,103,125,4,116,0,124,4,116,1,131,2,115,32, - 124,3,114,17,124,0,106,2,100,1,23,0,125,5,110,2, - 100,2,125,5,116,3,100,3,124,5,155,0,100,4,116,4, - 124,4,131,1,106,2,155,0,157,4,131,1,130,1,124,4, - 100,5,107,2,114,53,124,3,115,52,116,5,124,0,100,6, - 131,2,114,52,116,6,124,0,124,0,106,7,124,2,100,7, - 100,8,141,4,1,0,113,2,116,5,124,0,124,4,131,2, - 115,105,100,9,160,8,124,0,106,2,124,4,161,2,125,6, - 122,7,116,9,124,2,124,6,131,2,1,0,87,0,113,2, - 4,0,116,10,121,108,1,0,125,7,1,0,122,21,124,7, - 106,11,124,6,107,2,114,100,116,12,106,13,160,14,124,6, - 116,15,161,2,100,10,117,1,114,100,87,0,89,0,100,10, - 125,7,126,7,113,2,130,0,100,10,125,7,126,7,119,1, - 113,2,124,0,83,0,119,0,41,11,122,238,70,105,103,117, - 114,101,32,111,117,116,32,119,104,97,116,32,95,95,105,109, - 112,111,114,116,95,95,32,115,104,111,117,108,100,32,114,101, - 116,117,114,110,46,10,10,32,32,32,32,84,104,101,32,105, - 109,112,111,114,116,95,32,112,97,114,97,109,101,116,101,114, - 32,105,115,32,97,32,99,97,108,108,97,98,108,101,32,119, - 104,105,99,104,32,116,97,107,101,115,32,116,104,101,32,110, - 97,109,101,32,111,102,32,109,111,100,117,108,101,32,116,111, - 10,32,32,32,32,105,109,112,111,114,116,46,32,73,116,32, - 105,115,32,114,101,113,117,105,114,101,100,32,116,111,32,100, - 101,99,111,117,112,108,101,32,116,104,101,32,102,117,110,99, - 116,105,111,110,32,102,114,111,109,32,97,115,115,117,109,105, - 110,103,32,105,109,112,111,114,116,108,105,98,39,115,10,32, - 32,32,32,105,109,112,111,114,116,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,105,115,32,100,101,115,105, - 114,101,100,46,10,10,32,32,32,32,122,8,46,95,95,97, - 108,108,95,95,122,13,96,96,102,114,111,109,32,108,105,115, - 116,39,39,122,8,73,116,101,109,32,105,110,32,122,18,32, - 109,117,115,116,32,98,101,32,115,116,114,44,32,110,111,116, - 32,250,1,42,218,7,95,95,97,108,108,95,95,84,114,230, - 0,0,0,114,206,0,0,0,78,41,16,114,216,0,0,0, - 114,217,0,0,0,114,9,0,0,0,114,218,0,0,0,114, - 3,0,0,0,114,11,0,0,0,218,16,95,104,97,110,100, - 108,101,95,102,114,111,109,108,105,115,116,114,233,0,0,0, - 114,50,0,0,0,114,74,0,0,0,114,224,0,0,0,114, - 20,0,0,0,114,18,0,0,0,114,105,0,0,0,114,38, - 0,0,0,114,227,0,0,0,41,8,114,110,0,0,0,218, - 8,102,114,111,109,108,105,115,116,114,225,0,0,0,114,231, - 0,0,0,218,1,120,90,5,119,104,101,114,101,90,9,102, - 114,111,109,95,110,97,109,101,90,3,101,120,99,114,5,0, - 0,0,114,5,0,0,0,114,6,0,0,0,114,234,0,0, - 0,29,4,0,0,115,56,0,0,0,8,10,10,1,4,1, - 12,1,4,2,10,1,8,1,8,255,8,2,14,1,10,1, - 2,1,6,255,2,128,10,2,14,1,2,1,14,1,14,1, - 10,4,16,1,2,255,12,2,2,1,8,128,2,245,4,12, - 2,248,114,234,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,6,0,0,0,67,0,0,0, - 115,146,0,0,0,124,0,160,0,100,1,161,1,125,1,124, - 0,160,0,100,2,161,1,125,2,124,1,100,3,117,1,114, - 41,124,2,100,3,117,1,114,39,124,1,124,2,106,1,107, - 3,114,39,116,2,106,3,100,4,124,1,155,2,100,5,124, - 2,106,1,155,2,100,6,157,5,116,4,100,7,100,8,141, - 3,1,0,124,1,83,0,124,2,100,3,117,1,114,48,124, - 2,106,1,83,0,116,2,106,3,100,9,116,4,100,7,100, - 8,141,3,1,0,124,0,100,10,25,0,125,1,100,11,124, - 0,118,1,114,71,124,1,160,5,100,12,161,1,100,13,25, - 0,125,1,124,1,83,0,41,14,122,167,67,97,108,99,117, - 108,97,116,101,32,119,104,97,116,32,95,95,112,97,99,107, - 97,103,101,95,95,32,115,104,111,117,108,100,32,98,101,46, - 10,10,32,32,32,32,95,95,112,97,99,107,97,103,101,95, - 95,32,105,115,32,110,111,116,32,103,117,97,114,97,110,116, - 101,101,100,32,116,111,32,98,101,32,100,101,102,105,110,101, - 100,32,111,114,32,99,111,117,108,100,32,98,101,32,115,101, - 116,32,116,111,32,78,111,110,101,10,32,32,32,32,116,111, - 32,114,101,112,114,101,115,101,110,116,32,116,104,97,116,32, - 105,116,115,32,112,114,111,112,101,114,32,118,97,108,117,101, - 32,105,115,32,117,110,107,110,111,119,110,46,10,10,32,32, - 32,32,114,158,0,0,0,114,113,0,0,0,78,122,32,95, - 95,112,97,99,107,97,103,101,95,95,32,33,61,32,95,95, - 115,112,101,99,95,95,46,112,97,114,101,110,116,32,40,122, - 4,32,33,61,32,250,1,41,233,3,0,0,0,41,1,90, - 10,115,116,97,99,107,108,101,118,101,108,122,89,99,97,110, - 39,116,32,114,101,115,111,108,118,101,32,112,97,99,107,97, - 103,101,32,102,114,111,109,32,95,95,115,112,101,99,95,95, - 32,111,114,32,95,95,112,97,99,107,97,103,101,95,95,44, - 32,102,97,108,108,105,110,103,32,98,97,99,107,32,111,110, - 32,95,95,110,97,109,101,95,95,32,97,110,100,32,95,95, - 112,97,116,104,95,95,114,9,0,0,0,114,154,0,0,0, - 114,141,0,0,0,114,25,0,0,0,41,6,114,38,0,0, - 0,114,143,0,0,0,114,101,0,0,0,114,102,0,0,0, - 114,169,0,0,0,114,142,0,0,0,41,3,218,7,103,108, - 111,98,97,108,115,114,209,0,0,0,114,109,0,0,0,114, - 5,0,0,0,114,5,0,0,0,114,6,0,0,0,218,17, - 95,99,97,108,99,95,95,95,112,97,99,107,97,103,101,95, - 95,66,4,0,0,115,42,0,0,0,10,7,10,1,8,1, - 18,1,6,1,2,1,4,255,4,1,6,255,4,2,6,254, - 4,3,8,1,6,1,6,2,4,2,6,254,8,3,8,1, - 14,1,4,1,114,240,0,0,0,114,5,0,0,0,99,5, - 0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,5, - 0,0,0,67,0,0,0,115,174,0,0,0,124,4,100,1, - 107,2,114,9,116,0,124,0,131,1,125,5,110,18,124,1, - 100,2,117,1,114,15,124,1,110,1,105,0,125,6,116,1, - 124,6,131,1,125,7,116,0,124,0,124,7,124,4,131,3, - 125,5,124,3,115,74,124,4,100,1,107,2,114,42,116,0, - 124,0,160,2,100,3,161,1,100,1,25,0,131,1,83,0, - 124,0,115,46,124,5,83,0,116,3,124,0,131,1,116,3, - 124,0,160,2,100,3,161,1,100,1,25,0,131,1,24,0, - 125,8,116,4,106,5,124,5,106,6,100,2,116,3,124,5, - 106,6,131,1,124,8,24,0,133,2,25,0,25,0,83,0, - 116,7,124,5,100,4,131,2,114,85,116,8,124,5,124,3, - 116,0,131,3,83,0,124,5,83,0,41,5,97,215,1,0, - 0,73,109,112,111,114,116,32,97,32,109,111,100,117,108,101, - 46,10,10,32,32,32,32,84,104,101,32,39,103,108,111,98, - 97,108,115,39,32,97,114,103,117,109,101,110,116,32,105,115, - 32,117,115,101,100,32,116,111,32,105,110,102,101,114,32,119, - 104,101,114,101,32,116,104,101,32,105,109,112,111,114,116,32, - 105,115,32,111,99,99,117,114,114,105,110,103,32,102,114,111, - 109,10,32,32,32,32,116,111,32,104,97,110,100,108,101,32, - 114,101,108,97,116,105,118,101,32,105,109,112,111,114,116,115, - 46,32,84,104,101,32,39,108,111,99,97,108,115,39,32,97, - 114,103,117,109,101,110,116,32,105,115,32,105,103,110,111,114, - 101,100,46,32,84,104,101,10,32,32,32,32,39,102,114,111, - 109,108,105,115,116,39,32,97,114,103,117,109,101,110,116,32, - 115,112,101,99,105,102,105,101,115,32,119,104,97,116,32,115, - 104,111,117,108,100,32,101,120,105,115,116,32,97,115,32,97, - 116,116,114,105,98,117,116,101,115,32,111,110,32,116,104,101, - 32,109,111,100,117,108,101,10,32,32,32,32,98,101,105,110, - 103,32,105,109,112,111,114,116,101,100,32,40,101,46,103,46, - 32,96,96,102,114,111,109,32,109,111,100,117,108,101,32,105, - 109,112,111,114,116,32,60,102,114,111,109,108,105,115,116,62, - 96,96,41,46,32,32,84,104,101,32,39,108,101,118,101,108, - 39,10,32,32,32,32,97,114,103,117,109,101,110,116,32,114, - 101,112,114,101,115,101,110,116,115,32,116,104,101,32,112,97, - 99,107,97,103,101,32,108,111,99,97,116,105,111,110,32,116, - 111,32,105,109,112,111,114,116,32,102,114,111,109,32,105,110, - 32,97,32,114,101,108,97,116,105,118,101,10,32,32,32,32, - 105,109,112,111,114,116,32,40,101,46,103,46,32,96,96,102, - 114,111,109,32,46,46,112,107,103,32,105,109,112,111,114,116, - 32,109,111,100,96,96,32,119,111,117,108,100,32,104,97,118, - 101,32,97,32,39,108,101,118,101,108,39,32,111,102,32,50, - 41,46,10,10,32,32,32,32,114,25,0,0,0,78,114,141, - 0,0,0,114,154,0,0,0,41,9,114,229,0,0,0,114, - 240,0,0,0,218,9,112,97,114,116,105,116,105,111,110,114, - 208,0,0,0,114,18,0,0,0,114,105,0,0,0,114,9, - 0,0,0,114,11,0,0,0,114,234,0,0,0,41,9,114, - 20,0,0,0,114,239,0,0,0,218,6,108,111,99,97,108, - 115,114,235,0,0,0,114,210,0,0,0,114,110,0,0,0, - 90,8,103,108,111,98,97,108,115,95,114,209,0,0,0,90, - 7,99,117,116,95,111,102,102,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,218,10,95,95,105,109,112,111,114, - 116,95,95,93,4,0,0,115,30,0,0,0,8,11,10,1, - 16,2,8,1,12,1,4,1,8,3,18,1,4,1,4,1, - 26,4,30,3,10,1,12,1,4,2,114,243,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 3,0,0,0,67,0,0,0,115,38,0,0,0,116,0,160, - 1,124,0,161,1,125,1,124,1,100,0,117,0,114,15,116, - 2,100,1,124,0,23,0,131,1,130,1,116,3,124,1,131, - 1,83,0,41,2,78,122,25,110,111,32,98,117,105,108,116, - 45,105,110,32,109,111,100,117,108,101,32,110,97,109,101,100, - 32,41,4,114,175,0,0,0,114,183,0,0,0,114,87,0, - 0,0,114,173,0,0,0,41,2,114,20,0,0,0,114,109, + 1,2,254,10,3,8,1,18,1,8,2,4,1,10,2,14, + 1,2,1,14,1,4,4,12,253,16,1,14,1,4,1,2, + 253,4,3,114,226,0,0,0,99,2,0,0,0,0,0,0, + 0,0,0,0,0,4,0,0,0,8,0,0,0,67,0,0, + 0,115,128,0,0,0,116,0,124,0,131,1,143,31,1,0, + 116,1,106,2,160,3,124,0,116,4,161,2,125,2,124,2, + 116,4,117,0,114,28,116,5,124,0,124,1,131,2,87,0, + 2,0,100,1,4,0,4,0,131,3,1,0,83,0,87,0, + 100,1,4,0,4,0,131,3,1,0,110,8,49,0,115,38, + 119,1,1,0,1,0,1,0,89,0,1,0,124,2,100,1, + 117,0,114,58,100,2,160,6,124,0,161,1,125,3,116,7, + 124,3,124,0,100,3,141,2,130,1,116,8,124,0,131,1, + 1,0,124,2,83,0,41,4,122,25,70,105,110,100,32,97, + 110,100,32,108,111,97,100,32,116,104,101,32,109,111,100,117, + 108,101,46,78,122,40,105,109,112,111,114,116,32,111,102,32, + 123,125,32,104,97,108,116,101,100,59,32,78,111,110,101,32, + 105,110,32,115,121,115,46,109,111,100,117,108,101,115,114,19, + 0,0,0,41,9,114,57,0,0,0,114,18,0,0,0,114, + 105,0,0,0,114,38,0,0,0,218,14,95,78,69,69,68, + 83,95,76,79,65,68,73,78,71,114,226,0,0,0,114,50, + 0,0,0,114,224,0,0,0,114,72,0,0,0,41,4,114, + 20,0,0,0,114,225,0,0,0,114,110,0,0,0,114,82, 0,0,0,114,5,0,0,0,114,5,0,0,0,114,6,0, - 0,0,218,18,95,98,117,105,108,116,105,110,95,102,114,111, - 109,95,110,97,109,101,130,4,0,0,115,8,0,0,0,10, - 1,8,1,12,1,8,1,114,244,0,0,0,99,2,0,0, - 0,0,0,0,0,0,0,0,0,10,0,0,0,5,0,0, - 0,67,0,0,0,115,166,0,0,0,124,1,97,0,124,0, - 97,1,116,2,116,1,131,1,125,2,116,1,106,3,160,4, - 161,0,68,0,93,36,92,2,125,3,125,4,116,5,124,4, - 124,2,131,2,114,49,124,3,116,1,106,6,118,0,114,30, - 116,7,125,5,110,9,116,0,160,8,124,3,161,1,114,38, - 116,9,125,5,110,1,113,13,116,10,124,4,124,5,131,2, - 125,6,116,11,124,6,124,4,131,2,1,0,113,13,116,1, - 106,3,116,12,25,0,125,7,100,1,68,0,93,23,125,8, - 124,8,116,1,106,3,118,1,114,69,116,13,124,8,131,1, - 125,9,110,5,116,1,106,3,124,8,25,0,125,9,116,14, - 124,7,124,8,124,9,131,3,1,0,113,57,100,2,83,0, - 41,3,122,250,83,101,116,117,112,32,105,109,112,111,114,116, - 108,105,98,32,98,121,32,105,109,112,111,114,116,105,110,103, - 32,110,101,101,100,101,100,32,98,117,105,108,116,45,105,110, - 32,109,111,100,117,108,101,115,32,97,110,100,32,105,110,106, - 101,99,116,105,110,103,32,116,104,101,109,10,32,32,32,32, - 105,110,116,111,32,116,104,101,32,103,108,111,98,97,108,32, - 110,97,109,101,115,112,97,99,101,46,10,10,32,32,32,32, - 65,115,32,115,121,115,32,105,115,32,110,101,101,100,101,100, - 32,102,111,114,32,115,121,115,46,109,111,100,117,108,101,115, - 32,97,99,99,101,115,115,32,97,110,100,32,95,105,109,112, - 32,105,115,32,110,101,101,100,101,100,32,116,111,32,108,111, - 97,100,32,98,117,105,108,116,45,105,110,10,32,32,32,32, - 109,111,100,117,108,101,115,44,32,116,104,111,115,101,32,116, - 119,111,32,109,111,100,117,108,101,115,32,109,117,115,116,32, - 98,101,32,101,120,112,108,105,99,105,116,108,121,32,112,97, - 115,115,101,100,32,105,110,46,10,10,32,32,32,32,41,3, - 114,26,0,0,0,114,101,0,0,0,114,71,0,0,0,78, - 41,15,114,64,0,0,0,114,18,0,0,0,114,3,0,0, - 0,114,105,0,0,0,218,5,105,116,101,109,115,114,216,0, - 0,0,114,86,0,0,0,114,175,0,0,0,114,98,0,0, - 0,114,193,0,0,0,114,155,0,0,0,114,161,0,0,0, - 114,9,0,0,0,114,244,0,0,0,114,12,0,0,0,41, - 10,218,10,115,121,115,95,109,111,100,117,108,101,218,11,95, - 105,109,112,95,109,111,100,117,108,101,90,11,109,111,100,117, - 108,101,95,116,121,112,101,114,20,0,0,0,114,110,0,0, - 0,114,122,0,0,0,114,109,0,0,0,90,11,115,101,108, - 102,95,109,111,100,117,108,101,90,12,98,117,105,108,116,105, - 110,95,110,97,109,101,90,14,98,117,105,108,116,105,110,95, - 109,111,100,117,108,101,114,5,0,0,0,114,5,0,0,0, - 114,6,0,0,0,218,6,95,115,101,116,117,112,137,4,0, - 0,115,40,0,0,0,4,9,4,1,8,3,18,1,10,1, - 10,1,6,1,10,1,6,1,2,2,10,1,10,1,2,128, - 10,3,8,1,10,1,10,1,10,2,14,1,4,251,114,248, - 0,0,0,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,38,0,0, - 0,116,0,124,0,124,1,131,2,1,0,116,1,106,2,160, - 3,116,4,161,1,1,0,116,1,106,2,160,3,116,5,161, - 1,1,0,100,1,83,0,41,2,122,48,73,110,115,116,97, - 108,108,32,105,109,112,111,114,116,101,114,115,32,102,111,114, - 32,98,117,105,108,116,105,110,32,97,110,100,32,102,114,111, - 122,101,110,32,109,111,100,117,108,101,115,78,41,6,114,248, - 0,0,0,114,18,0,0,0,114,214,0,0,0,114,132,0, - 0,0,114,175,0,0,0,114,193,0,0,0,41,2,114,246, - 0,0,0,114,247,0,0,0,114,5,0,0,0,114,5,0, - 0,0,114,6,0,0,0,218,8,95,105,110,115,116,97,108, - 108,172,4,0,0,115,6,0,0,0,10,2,12,2,16,1, - 114,249,0,0,0,99,0,0,0,0,0,0,0,0,0,0, - 0,0,1,0,0,0,4,0,0,0,67,0,0,0,115,32, - 0,0,0,100,1,100,2,108,0,125,0,124,0,97,1,124, - 0,160,2,116,3,106,4,116,5,25,0,161,1,1,0,100, - 2,83,0,41,3,122,57,73,110,115,116,97,108,108,32,105, - 109,112,111,114,116,101,114,115,32,116,104,97,116,32,114,101, - 113,117,105,114,101,32,101,120,116,101,114,110,97,108,32,102, - 105,108,101,115,121,115,116,101,109,32,97,99,99,101,115,115, - 114,25,0,0,0,78,41,6,218,26,95,102,114,111,122,101, - 110,95,105,109,112,111,114,116,108,105,98,95,101,120,116,101, - 114,110,97,108,114,139,0,0,0,114,249,0,0,0,114,18, - 0,0,0,114,105,0,0,0,114,9,0,0,0,41,1,114, - 250,0,0,0,114,5,0,0,0,114,5,0,0,0,114,6, - 0,0,0,218,27,95,105,110,115,116,97,108,108,95,101,120, - 116,101,114,110,97,108,95,105,109,112,111,114,116,101,114,115, - 180,4,0,0,115,6,0,0,0,8,3,4,1,20,1,114, - 251,0,0,0,114,190,0,0,0,114,0,0,0,0,114,24, - 0,0,0,41,4,78,78,114,5,0,0,0,114,25,0,0, - 0,41,54,114,10,0,0,0,114,7,0,0,0,114,26,0, - 0,0,114,101,0,0,0,114,71,0,0,0,114,139,0,0, - 0,114,17,0,0,0,114,21,0,0,0,114,66,0,0,0, - 114,37,0,0,0,114,47,0,0,0,114,22,0,0,0,114, - 23,0,0,0,114,55,0,0,0,114,57,0,0,0,114,60, - 0,0,0,114,72,0,0,0,114,74,0,0,0,114,83,0, - 0,0,114,95,0,0,0,114,100,0,0,0,114,111,0,0, - 0,114,124,0,0,0,114,125,0,0,0,114,104,0,0,0, - 114,155,0,0,0,114,161,0,0,0,114,165,0,0,0,114, - 119,0,0,0,114,106,0,0,0,114,172,0,0,0,114,173, - 0,0,0,114,107,0,0,0,114,175,0,0,0,114,193,0, - 0,0,114,200,0,0,0,114,211,0,0,0,114,213,0,0, - 0,114,215,0,0,0,114,221,0,0,0,90,15,95,69,82, - 82,95,77,83,71,95,80,82,69,70,73,88,114,223,0,0, - 0,114,226,0,0,0,218,6,111,98,106,101,99,116,114,227, - 0,0,0,114,228,0,0,0,114,229,0,0,0,114,234,0, - 0,0,114,240,0,0,0,114,243,0,0,0,114,244,0,0, - 0,114,248,0,0,0,114,249,0,0,0,114,251,0,0,0, - 114,5,0,0,0,114,5,0,0,0,114,5,0,0,0,114, - 6,0,0,0,218,8,60,109,111,100,117,108,101,62,1,0, - 0,0,115,104,0,0,0,4,0,8,22,4,9,4,1,4, - 1,4,3,8,3,8,8,4,8,4,2,16,3,14,4,14, - 77,14,21,8,16,8,37,8,17,14,11,8,8,8,11,8, - 12,8,19,14,26,16,101,10,26,14,45,8,72,8,17,8, - 17,8,30,8,36,8,45,14,15,14,80,14,85,8,13,8, - 9,10,10,8,47,4,16,8,1,8,2,6,32,8,3,10, - 16,14,15,8,37,10,27,8,37,8,7,8,35,12,8, + 0,0,218,14,95,102,105,110,100,95,97,110,100,95,108,111, + 97,100,254,3,0,0,115,28,0,0,0,10,2,14,1,8, + 1,8,1,16,253,2,2,28,254,8,5,2,1,6,1,2, + 255,12,2,8,2,4,1,114,228,0,0,0,114,25,0,0, + 0,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,4,0,0,0,67,0,0,0,115,42,0,0,0,116, + 0,124,0,124,1,124,2,131,3,1,0,124,2,100,1,107, + 4,114,16,116,1,124,0,124,1,124,2,131,3,125,0,116, + 2,124,0,116,3,131,2,83,0,41,3,97,50,1,0,0, + 73,109,112,111,114,116,32,97,110,100,32,114,101,116,117,114, + 110,32,116,104,101,32,109,111,100,117,108,101,32,98,97,115, + 101,100,32,111,110,32,105,116,115,32,110,97,109,101,44,32, + 116,104,101,32,112,97,99,107,97,103,101,32,116,104,101,32, + 99,97,108,108,32,105,115,10,32,32,32,32,98,101,105,110, + 103,32,109,97,100,101,32,102,114,111,109,44,32,97,110,100, + 32,116,104,101,32,108,101,118,101,108,32,97,100,106,117,115, + 116,109,101,110,116,46,10,10,32,32,32,32,84,104,105,115, + 32,102,117,110,99,116,105,111,110,32,114,101,112,114,101,115, + 101,110,116,115,32,116,104,101,32,103,114,101,97,116,101,115, + 116,32,99,111,109,109,111,110,32,100,101,110,111,109,105,110, + 97,116,111,114,32,111,102,32,102,117,110,99,116,105,111,110, + 97,108,105,116,121,10,32,32,32,32,98,101,116,119,101,101, + 110,32,105,109,112,111,114,116,95,109,111,100,117,108,101,32, + 97,110,100,32,95,95,105,109,112,111,114,116,95,95,46,32, + 84,104,105,115,32,105,110,99,108,117,100,101,115,32,115,101, + 116,116,105,110,103,32,95,95,112,97,99,107,97,103,101,95, + 95,32,105,102,10,32,32,32,32,116,104,101,32,108,111,97, + 100,101,114,32,100,105,100,32,110,111,116,46,10,10,32,32, + 32,32,114,25,0,0,0,78,41,4,114,221,0,0,0,114, + 211,0,0,0,114,228,0,0,0,218,11,95,103,99,100,95, + 105,109,112,111,114,116,114,220,0,0,0,114,5,0,0,0, + 114,5,0,0,0,114,6,0,0,0,114,229,0,0,0,14, + 4,0,0,115,8,0,0,0,12,9,8,1,12,1,10,1, + 114,229,0,0,0,169,1,218,9,114,101,99,117,114,115,105, + 118,101,99,3,0,0,0,0,0,0,0,1,0,0,0,8, + 0,0,0,11,0,0,0,67,0,0,0,115,218,0,0,0, + 124,1,68,0,93,104,125,4,116,0,124,4,116,1,131,2, + 115,32,124,3,114,17,124,0,106,2,100,1,23,0,125,5, + 110,2,100,2,125,5,116,3,100,3,124,5,155,0,100,4, + 116,4,124,4,131,1,106,2,155,0,157,4,131,1,130,1, + 124,4,100,5,107,2,114,53,124,3,115,52,116,5,124,0, + 100,6,131,2,114,52,116,6,124,0,124,0,106,7,124,2, + 100,7,100,8,141,4,1,0,113,2,116,5,124,0,124,4, + 131,2,115,106,100,9,160,8,124,0,106,2,124,4,161,2, + 125,6,122,7,116,9,124,2,124,6,131,2,1,0,87,0, + 113,2,4,0,116,10,121,105,1,0,125,7,1,0,122,21, + 124,7,106,11,124,6,107,2,114,100,116,12,106,13,160,14, + 124,6,116,15,161,2,100,10,117,1,114,100,87,0,89,0, + 100,10,125,7,126,7,113,2,130,0,100,10,125,7,126,7, + 119,1,119,0,113,2,124,0,83,0,41,11,122,238,70,105, + 103,117,114,101,32,111,117,116,32,119,104,97,116,32,95,95, + 105,109,112,111,114,116,95,95,32,115,104,111,117,108,100,32, + 114,101,116,117,114,110,46,10,10,32,32,32,32,84,104,101, + 32,105,109,112,111,114,116,95,32,112,97,114,97,109,101,116, + 101,114,32,105,115,32,97,32,99,97,108,108,97,98,108,101, + 32,119,104,105,99,104,32,116,97,107,101,115,32,116,104,101, + 32,110,97,109,101,32,111,102,32,109,111,100,117,108,101,32, + 116,111,10,32,32,32,32,105,109,112,111,114,116,46,32,73, + 116,32,105,115,32,114,101,113,117,105,114,101,100,32,116,111, + 32,100,101,99,111,117,112,108,101,32,116,104,101,32,102,117, + 110,99,116,105,111,110,32,102,114,111,109,32,97,115,115,117, + 109,105,110,103,32,105,109,112,111,114,116,108,105,98,39,115, + 10,32,32,32,32,105,109,112,111,114,116,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,105,115,32,100,101, + 115,105,114,101,100,46,10,10,32,32,32,32,122,8,46,95, + 95,97,108,108,95,95,122,13,96,96,102,114,111,109,32,108, + 105,115,116,39,39,122,8,73,116,101,109,32,105,110,32,122, + 18,32,109,117,115,116,32,98,101,32,115,116,114,44,32,110, + 111,116,32,250,1,42,218,7,95,95,97,108,108,95,95,84, + 114,230,0,0,0,114,206,0,0,0,78,41,16,114,216,0, + 0,0,114,217,0,0,0,114,9,0,0,0,114,218,0,0, + 0,114,3,0,0,0,114,11,0,0,0,218,16,95,104,97, + 110,100,108,101,95,102,114,111,109,108,105,115,116,114,233,0, + 0,0,114,50,0,0,0,114,74,0,0,0,114,224,0,0, + 0,114,20,0,0,0,114,18,0,0,0,114,105,0,0,0, + 114,38,0,0,0,114,227,0,0,0,41,8,114,110,0,0, + 0,218,8,102,114,111,109,108,105,115,116,114,225,0,0,0, + 114,231,0,0,0,218,1,120,90,5,119,104,101,114,101,90, + 9,102,114,111,109,95,110,97,109,101,90,3,101,120,99,114, + 5,0,0,0,114,5,0,0,0,114,6,0,0,0,114,234, + 0,0,0,29,4,0,0,115,56,0,0,0,8,10,10,1, + 4,1,12,1,4,2,10,1,8,1,8,255,8,2,14,1, + 10,1,2,1,6,255,2,128,10,2,14,1,2,1,14,1, + 14,1,10,4,16,1,2,255,12,2,2,1,8,128,2,249, + 2,252,4,12,114,234,0,0,0,99,1,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,6,0,0,0,67,0, + 0,0,115,146,0,0,0,124,0,160,0,100,1,161,1,125, + 1,124,0,160,0,100,2,161,1,125,2,124,1,100,3,117, + 1,114,41,124,2,100,3,117,1,114,39,124,1,124,2,106, + 1,107,3,114,39,116,2,106,3,100,4,124,1,155,2,100, + 5,124,2,106,1,155,2,100,6,157,5,116,4,100,7,100, + 8,141,3,1,0,124,1,83,0,124,2,100,3,117,1,114, + 48,124,2,106,1,83,0,116,2,106,3,100,9,116,4,100, + 7,100,8,141,3,1,0,124,0,100,10,25,0,125,1,100, + 11,124,0,118,1,114,71,124,1,160,5,100,12,161,1,100, + 13,25,0,125,1,124,1,83,0,41,14,122,167,67,97,108, + 99,117,108,97,116,101,32,119,104,97,116,32,95,95,112,97, + 99,107,97,103,101,95,95,32,115,104,111,117,108,100,32,98, + 101,46,10,10,32,32,32,32,95,95,112,97,99,107,97,103, + 101,95,95,32,105,115,32,110,111,116,32,103,117,97,114,97, + 110,116,101,101,100,32,116,111,32,98,101,32,100,101,102,105, + 110,101,100,32,111,114,32,99,111,117,108,100,32,98,101,32, + 115,101,116,32,116,111,32,78,111,110,101,10,32,32,32,32, + 116,111,32,114,101,112,114,101,115,101,110,116,32,116,104,97, + 116,32,105,116,115,32,112,114,111,112,101,114,32,118,97,108, + 117,101,32,105,115,32,117,110,107,110,111,119,110,46,10,10, + 32,32,32,32,114,158,0,0,0,114,113,0,0,0,78,122, + 32,95,95,112,97,99,107,97,103,101,95,95,32,33,61,32, + 95,95,115,112,101,99,95,95,46,112,97,114,101,110,116,32, + 40,122,4,32,33,61,32,250,1,41,233,3,0,0,0,41, + 1,90,10,115,116,97,99,107,108,101,118,101,108,122,89,99, + 97,110,39,116,32,114,101,115,111,108,118,101,32,112,97,99, + 107,97,103,101,32,102,114,111,109,32,95,95,115,112,101,99, + 95,95,32,111,114,32,95,95,112,97,99,107,97,103,101,95, + 95,44,32,102,97,108,108,105,110,103,32,98,97,99,107,32, + 111,110,32,95,95,110,97,109,101,95,95,32,97,110,100,32, + 95,95,112,97,116,104,95,95,114,9,0,0,0,114,154,0, + 0,0,114,141,0,0,0,114,25,0,0,0,41,6,114,38, + 0,0,0,114,143,0,0,0,114,101,0,0,0,114,102,0, + 0,0,114,169,0,0,0,114,142,0,0,0,41,3,218,7, + 103,108,111,98,97,108,115,114,209,0,0,0,114,109,0,0, + 0,114,5,0,0,0,114,5,0,0,0,114,6,0,0,0, + 218,17,95,99,97,108,99,95,95,95,112,97,99,107,97,103, + 101,95,95,66,4,0,0,115,42,0,0,0,10,7,10,1, + 8,1,18,1,6,1,2,1,4,255,4,1,6,255,4,2, + 6,254,4,3,8,1,6,1,6,2,4,2,6,254,8,3, + 8,1,14,1,4,1,114,240,0,0,0,114,5,0,0,0, + 99,5,0,0,0,0,0,0,0,0,0,0,0,9,0,0, + 0,5,0,0,0,67,0,0,0,115,174,0,0,0,124,4, + 100,1,107,2,114,9,116,0,124,0,131,1,125,5,110,18, + 124,1,100,2,117,1,114,15,124,1,110,1,105,0,125,6, + 116,1,124,6,131,1,125,7,116,0,124,0,124,7,124,4, + 131,3,125,5,124,3,115,74,124,4,100,1,107,2,114,42, + 116,0,124,0,160,2,100,3,161,1,100,1,25,0,131,1, + 83,0,124,0,115,46,124,5,83,0,116,3,124,0,131,1, + 116,3,124,0,160,2,100,3,161,1,100,1,25,0,131,1, + 24,0,125,8,116,4,106,5,124,5,106,6,100,2,116,3, + 124,5,106,6,131,1,124,8,24,0,133,2,25,0,25,0, + 83,0,116,7,124,5,100,4,131,2,114,85,116,8,124,5, + 124,3,116,0,131,3,83,0,124,5,83,0,41,5,97,215, + 1,0,0,73,109,112,111,114,116,32,97,32,109,111,100,117, + 108,101,46,10,10,32,32,32,32,84,104,101,32,39,103,108, + 111,98,97,108,115,39,32,97,114,103,117,109,101,110,116,32, + 105,115,32,117,115,101,100,32,116,111,32,105,110,102,101,114, + 32,119,104,101,114,101,32,116,104,101,32,105,109,112,111,114, + 116,32,105,115,32,111,99,99,117,114,114,105,110,103,32,102, + 114,111,109,10,32,32,32,32,116,111,32,104,97,110,100,108, + 101,32,114,101,108,97,116,105,118,101,32,105,109,112,111,114, + 116,115,46,32,84,104,101,32,39,108,111,99,97,108,115,39, + 32,97,114,103,117,109,101,110,116,32,105,115,32,105,103,110, + 111,114,101,100,46,32,84,104,101,10,32,32,32,32,39,102, + 114,111,109,108,105,115,116,39,32,97,114,103,117,109,101,110, + 116,32,115,112,101,99,105,102,105,101,115,32,119,104,97,116, + 32,115,104,111,117,108,100,32,101,120,105,115,116,32,97,115, + 32,97,116,116,114,105,98,117,116,101,115,32,111,110,32,116, + 104,101,32,109,111,100,117,108,101,10,32,32,32,32,98,101, + 105,110,103,32,105,109,112,111,114,116,101,100,32,40,101,46, + 103,46,32,96,96,102,114,111,109,32,109,111,100,117,108,101, + 32,105,109,112,111,114,116,32,60,102,114,111,109,108,105,115, + 116,62,96,96,41,46,32,32,84,104,101,32,39,108,101,118, + 101,108,39,10,32,32,32,32,97,114,103,117,109,101,110,116, + 32,114,101,112,114,101,115,101,110,116,115,32,116,104,101,32, + 112,97,99,107,97,103,101,32,108,111,99,97,116,105,111,110, + 32,116,111,32,105,109,112,111,114,116,32,102,114,111,109,32, + 105,110,32,97,32,114,101,108,97,116,105,118,101,10,32,32, + 32,32,105,109,112,111,114,116,32,40,101,46,103,46,32,96, + 96,102,114,111,109,32,46,46,112,107,103,32,105,109,112,111, + 114,116,32,109,111,100,96,96,32,119,111,117,108,100,32,104, + 97,118,101,32,97,32,39,108,101,118,101,108,39,32,111,102, + 32,50,41,46,10,10,32,32,32,32,114,25,0,0,0,78, + 114,141,0,0,0,114,154,0,0,0,41,9,114,229,0,0, + 0,114,240,0,0,0,218,9,112,97,114,116,105,116,105,111, + 110,114,208,0,0,0,114,18,0,0,0,114,105,0,0,0, + 114,9,0,0,0,114,11,0,0,0,114,234,0,0,0,41, + 9,114,20,0,0,0,114,239,0,0,0,218,6,108,111,99, + 97,108,115,114,235,0,0,0,114,210,0,0,0,114,110,0, + 0,0,90,8,103,108,111,98,97,108,115,95,114,209,0,0, + 0,90,7,99,117,116,95,111,102,102,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,218,10,95,95,105,109,112, + 111,114,116,95,95,93,4,0,0,115,30,0,0,0,8,11, + 10,1,16,2,8,1,12,1,4,1,8,3,18,1,4,1, + 4,1,26,4,30,3,10,1,12,1,4,2,114,243,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,2,0, + 0,0,3,0,0,0,67,0,0,0,115,38,0,0,0,116, + 0,160,1,124,0,161,1,125,1,124,1,100,0,117,0,114, + 15,116,2,100,1,124,0,23,0,131,1,130,1,116,3,124, + 1,131,1,83,0,41,2,78,122,25,110,111,32,98,117,105, + 108,116,45,105,110,32,109,111,100,117,108,101,32,110,97,109, + 101,100,32,41,4,114,175,0,0,0,114,183,0,0,0,114, + 87,0,0,0,114,173,0,0,0,41,2,114,20,0,0,0, + 114,109,0,0,0,114,5,0,0,0,114,5,0,0,0,114, + 6,0,0,0,218,18,95,98,117,105,108,116,105,110,95,102, + 114,111,109,95,110,97,109,101,130,4,0,0,115,8,0,0, + 0,10,1,8,1,12,1,8,1,114,244,0,0,0,99,2, + 0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,5, + 0,0,0,67,0,0,0,115,166,0,0,0,124,1,97,0, + 124,0,97,1,116,2,116,1,131,1,125,2,116,1,106,3, + 160,4,161,0,68,0,93,36,92,2,125,3,125,4,116,5, + 124,4,124,2,131,2,114,49,124,3,116,1,106,6,118,0, + 114,30,116,7,125,5,110,9,116,0,160,8,124,3,161,1, + 114,38,116,9,125,5,110,1,113,13,116,10,124,4,124,5, + 131,2,125,6,116,11,124,6,124,4,131,2,1,0,113,13, + 116,1,106,3,116,12,25,0,125,7,100,1,68,0,93,23, + 125,8,124,8,116,1,106,3,118,1,114,69,116,13,124,8, + 131,1,125,9,110,5,116,1,106,3,124,8,25,0,125,9, + 116,14,124,7,124,8,124,9,131,3,1,0,113,57,100,2, + 83,0,41,3,122,250,83,101,116,117,112,32,105,109,112,111, + 114,116,108,105,98,32,98,121,32,105,109,112,111,114,116,105, + 110,103,32,110,101,101,100,101,100,32,98,117,105,108,116,45, + 105,110,32,109,111,100,117,108,101,115,32,97,110,100,32,105, + 110,106,101,99,116,105,110,103,32,116,104,101,109,10,32,32, + 32,32,105,110,116,111,32,116,104,101,32,103,108,111,98,97, + 108,32,110,97,109,101,115,112,97,99,101,46,10,10,32,32, + 32,32,65,115,32,115,121,115,32,105,115,32,110,101,101,100, + 101,100,32,102,111,114,32,115,121,115,46,109,111,100,117,108, + 101,115,32,97,99,99,101,115,115,32,97,110,100,32,95,105, + 109,112,32,105,115,32,110,101,101,100,101,100,32,116,111,32, + 108,111,97,100,32,98,117,105,108,116,45,105,110,10,32,32, + 32,32,109,111,100,117,108,101,115,44,32,116,104,111,115,101, + 32,116,119,111,32,109,111,100,117,108,101,115,32,109,117,115, + 116,32,98,101,32,101,120,112,108,105,99,105,116,108,121,32, + 112,97,115,115,101,100,32,105,110,46,10,10,32,32,32,32, + 41,3,114,26,0,0,0,114,101,0,0,0,114,71,0,0, + 0,78,41,15,114,64,0,0,0,114,18,0,0,0,114,3, + 0,0,0,114,105,0,0,0,218,5,105,116,101,109,115,114, + 216,0,0,0,114,86,0,0,0,114,175,0,0,0,114,98, + 0,0,0,114,193,0,0,0,114,155,0,0,0,114,161,0, + 0,0,114,9,0,0,0,114,244,0,0,0,114,12,0,0, + 0,41,10,218,10,115,121,115,95,109,111,100,117,108,101,218, + 11,95,105,109,112,95,109,111,100,117,108,101,90,11,109,111, + 100,117,108,101,95,116,121,112,101,114,20,0,0,0,114,110, + 0,0,0,114,122,0,0,0,114,109,0,0,0,90,11,115, + 101,108,102,95,109,111,100,117,108,101,90,12,98,117,105,108, + 116,105,110,95,110,97,109,101,90,14,98,117,105,108,116,105, + 110,95,109,111,100,117,108,101,114,5,0,0,0,114,5,0, + 0,0,114,6,0,0,0,218,6,95,115,101,116,117,112,137, + 4,0,0,115,40,0,0,0,4,9,4,1,8,3,18,1, + 10,1,10,1,6,1,10,1,6,1,2,2,10,1,10,1, + 2,128,10,3,8,1,10,1,10,1,10,2,14,1,4,251, + 114,248,0,0,0,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,38, + 0,0,0,116,0,124,0,124,1,131,2,1,0,116,1,106, + 2,160,3,116,4,161,1,1,0,116,1,106,2,160,3,116, + 5,161,1,1,0,100,1,83,0,41,2,122,48,73,110,115, + 116,97,108,108,32,105,109,112,111,114,116,101,114,115,32,102, + 111,114,32,98,117,105,108,116,105,110,32,97,110,100,32,102, + 114,111,122,101,110,32,109,111,100,117,108,101,115,78,41,6, + 114,248,0,0,0,114,18,0,0,0,114,214,0,0,0,114, + 132,0,0,0,114,175,0,0,0,114,193,0,0,0,41,2, + 114,246,0,0,0,114,247,0,0,0,114,5,0,0,0,114, + 5,0,0,0,114,6,0,0,0,218,8,95,105,110,115,116, + 97,108,108,172,4,0,0,115,6,0,0,0,10,2,12,2, + 16,1,114,249,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,1,0,0,0,4,0,0,0,67,0,0,0, + 115,32,0,0,0,100,1,100,2,108,0,125,0,124,0,97, + 1,124,0,160,2,116,3,106,4,116,5,25,0,161,1,1, + 0,100,2,83,0,41,3,122,57,73,110,115,116,97,108,108, + 32,105,109,112,111,114,116,101,114,115,32,116,104,97,116,32, + 114,101,113,117,105,114,101,32,101,120,116,101,114,110,97,108, + 32,102,105,108,101,115,121,115,116,101,109,32,97,99,99,101, + 115,115,114,25,0,0,0,78,41,6,218,26,95,102,114,111, + 122,101,110,95,105,109,112,111,114,116,108,105,98,95,101,120, + 116,101,114,110,97,108,114,139,0,0,0,114,249,0,0,0, + 114,18,0,0,0,114,105,0,0,0,114,9,0,0,0,41, + 1,114,250,0,0,0,114,5,0,0,0,114,5,0,0,0, + 114,6,0,0,0,218,27,95,105,110,115,116,97,108,108,95, + 101,120,116,101,114,110,97,108,95,105,109,112,111,114,116,101, + 114,115,180,4,0,0,115,6,0,0,0,8,3,4,1,20, + 1,114,251,0,0,0,114,190,0,0,0,114,0,0,0,0, + 114,24,0,0,0,41,4,78,78,114,5,0,0,0,114,25, + 0,0,0,41,54,114,10,0,0,0,114,7,0,0,0,114, + 26,0,0,0,114,101,0,0,0,114,71,0,0,0,114,139, + 0,0,0,114,17,0,0,0,114,21,0,0,0,114,66,0, + 0,0,114,37,0,0,0,114,47,0,0,0,114,22,0,0, + 0,114,23,0,0,0,114,55,0,0,0,114,57,0,0,0, + 114,60,0,0,0,114,72,0,0,0,114,74,0,0,0,114, + 83,0,0,0,114,95,0,0,0,114,100,0,0,0,114,111, + 0,0,0,114,124,0,0,0,114,125,0,0,0,114,104,0, + 0,0,114,155,0,0,0,114,161,0,0,0,114,165,0,0, + 0,114,119,0,0,0,114,106,0,0,0,114,172,0,0,0, + 114,173,0,0,0,114,107,0,0,0,114,175,0,0,0,114, + 193,0,0,0,114,200,0,0,0,114,211,0,0,0,114,213, + 0,0,0,114,215,0,0,0,114,221,0,0,0,90,15,95, + 69,82,82,95,77,83,71,95,80,82,69,70,73,88,114,223, + 0,0,0,114,226,0,0,0,218,6,111,98,106,101,99,116, + 114,227,0,0,0,114,228,0,0,0,114,229,0,0,0,114, + 234,0,0,0,114,240,0,0,0,114,243,0,0,0,114,244, + 0,0,0,114,248,0,0,0,114,249,0,0,0,114,251,0, + 0,0,114,5,0,0,0,114,5,0,0,0,114,5,0,0, + 0,114,6,0,0,0,218,8,60,109,111,100,117,108,101,62, + 1,0,0,0,115,104,0,0,0,4,0,8,22,4,9,4, + 1,4,1,4,3,8,3,8,8,4,8,4,2,16,3,14, + 4,14,77,14,21,8,16,8,37,8,17,14,11,8,8,8, + 11,8,12,8,19,14,26,16,101,10,26,14,45,8,72,8, + 17,8,17,8,30,8,36,8,45,14,15,14,80,14,85,8, + 13,8,9,10,10,8,47,4,16,8,1,8,2,6,32,8, + 3,10,16,14,15,8,37,10,27,8,37,8,7,8,35,12, + 8, }; diff --git a/Python/importlib_external.h b/Python/importlib_external.h index 4b4831b4cf6a1..01fdef7cc8955 100644 --- a/Python/importlib_external.h +++ b/Python/importlib_external.h @@ -266,9 +266,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,115,2,0,0,0,10,7,114,75,0,0,0,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,48,0,0,0,122,6,116, - 0,124,0,131,1,125,2,87,0,110,9,4,0,116,1,121, - 23,1,0,1,0,1,0,89,0,100,1,83,0,124,2,106, - 2,100,2,64,0,124,1,107,2,83,0,119,0,41,4,122, + 0,124,0,131,1,125,2,87,0,110,10,4,0,116,1,121, + 16,1,0,1,0,1,0,89,0,100,1,83,0,119,0,124, + 2,106,2,100,2,64,0,124,1,107,2,83,0,41,4,122, 49,84,101,115,116,32,119,104,101,116,104,101,114,32,116,104, 101,32,112,97,116,104,32,105,115,32,116,104,101,32,115,112, 101,99,105,102,105,101,100,32,109,111,100,101,32,116,121,112, @@ -278,8 +278,8 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 9,115,116,97,116,95,105,110,102,111,114,7,0,0,0,114, 7,0,0,0,114,8,0,0,0,218,18,95,112,97,116,104, 95,105,115,95,109,111,100,101,95,116,121,112,101,150,0,0, - 0,115,12,0,0,0,2,2,12,1,12,1,6,1,14,1, - 2,254,114,79,0,0,0,99,1,0,0,0,0,0,0,0, + 0,115,12,0,0,0,2,2,12,1,12,1,6,1,2,255, + 14,2,114,79,0,0,0,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, 115,10,0,0,0,116,0,124,0,100,1,131,2,83,0,41, 3,122,31,82,101,112,108,97,99,101,109,101,110,116,32,102, @@ -558,56 +558,56 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 255,10,2,8,1,14,1,8,1,16,1,10,1,4,1,2, 1,8,255,16,2,8,1,16,1,14,2,18,1,114,128,0, 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5, - 0,0,0,9,0,0,0,67,0,0,0,115,122,0,0,0, + 0,0,0,9,0,0,0,67,0,0,0,115,124,0,0,0, 116,0,124,0,131,1,100,1,107,2,114,8,100,2,83,0, 124,0,160,1,100,3,161,1,92,3,125,1,125,2,125,3, 124,1,114,28,124,3,160,2,161,0,100,4,100,5,133,2, 25,0,100,6,107,3,114,30,124,0,83,0,122,6,116,3, - 124,0,131,1,125,4,87,0,110,15,4,0,116,4,116,5, - 102,2,121,60,1,0,1,0,1,0,124,0,100,2,100,5, - 133,2,25,0,125,4,89,0,116,6,124,4,131,1,114,58, - 124,4,83,0,124,0,83,0,119,0,41,7,122,188,67,111, - 110,118,101,114,116,32,97,32,98,121,116,101,99,111,100,101, - 32,102,105,108,101,32,112,97,116,104,32,116,111,32,97,32, - 115,111,117,114,99,101,32,112,97,116,104,32,40,105,102,32, - 112,111,115,115,105,98,108,101,41,46,10,10,32,32,32,32, - 84,104,105,115,32,102,117,110,99,116,105,111,110,32,101,120, - 105,115,116,115,32,112,117,114,101,108,121,32,102,111,114,32, - 98,97,99,107,119,97,114,100,115,45,99,111,109,112,97,116, - 105,98,105,108,105,116,121,32,102,111,114,10,32,32,32,32, - 80,121,73,109,112,111,114,116,95,69,120,101,99,67,111,100, - 101,77,111,100,117,108,101,87,105,116,104,70,105,108,101,110, - 97,109,101,115,40,41,32,105,110,32,116,104,101,32,67,32, - 65,80,73,46,10,10,32,32,32,32,114,0,0,0,0,78, - 114,97,0,0,0,233,253,255,255,255,233,255,255,255,255,90, - 2,112,121,41,7,114,4,0,0,0,114,104,0,0,0,218, - 5,108,111,119,101,114,114,128,0,0,0,114,107,0,0,0, - 114,111,0,0,0,114,80,0,0,0,41,5,218,13,98,121, - 116,101,99,111,100,101,95,112,97,116,104,114,119,0,0,0, - 218,1,95,90,9,101,120,116,101,110,115,105,111,110,218,11, - 115,111,117,114,99,101,95,112,97,116,104,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,15,95,103,101,116, - 95,115,111,117,114,99,101,102,105,108,101,235,1,0,0,115, - 22,0,0,0,12,7,4,1,16,1,24,1,4,1,2,1, - 12,1,16,1,14,1,16,1,2,254,114,135,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 8,0,0,0,67,0,0,0,115,70,0,0,0,124,0,160, - 0,116,1,116,2,131,1,161,1,114,21,122,5,116,3,124, - 0,131,1,87,0,83,0,4,0,116,4,121,34,1,0,1, - 0,1,0,89,0,110,11,124,0,160,0,116,1,116,5,131, - 1,161,1,114,30,124,0,83,0,100,0,83,0,100,0,83, - 0,119,0,114,69,0,0,0,41,6,114,58,0,0,0,218, + 124,0,131,1,125,4,87,0,110,17,4,0,116,4,116,5, + 102,2,121,53,1,0,1,0,1,0,124,0,100,2,100,5, + 133,2,25,0,125,4,89,0,110,1,119,0,116,6,124,4, + 131,1,114,60,124,4,83,0,124,0,83,0,41,7,122,188, + 67,111,110,118,101,114,116,32,97,32,98,121,116,101,99,111, + 100,101,32,102,105,108,101,32,112,97,116,104,32,116,111,32, + 97,32,115,111,117,114,99,101,32,112,97,116,104,32,40,105, + 102,32,112,111,115,115,105,98,108,101,41,46,10,10,32,32, + 32,32,84,104,105,115,32,102,117,110,99,116,105,111,110,32, + 101,120,105,115,116,115,32,112,117,114,101,108,121,32,102,111, + 114,32,98,97,99,107,119,97,114,100,115,45,99,111,109,112, + 97,116,105,98,105,108,105,116,121,32,102,111,114,10,32,32, + 32,32,80,121,73,109,112,111,114,116,95,69,120,101,99,67, + 111,100,101,77,111,100,117,108,101,87,105,116,104,70,105,108, + 101,110,97,109,101,115,40,41,32,105,110,32,116,104,101,32, + 67,32,65,80,73,46,10,10,32,32,32,32,114,0,0,0, + 0,78,114,97,0,0,0,233,253,255,255,255,233,255,255,255, + 255,90,2,112,121,41,7,114,4,0,0,0,114,104,0,0, + 0,218,5,108,111,119,101,114,114,128,0,0,0,114,107,0, + 0,0,114,111,0,0,0,114,80,0,0,0,41,5,218,13, + 98,121,116,101,99,111,100,101,95,112,97,116,104,114,119,0, + 0,0,218,1,95,90,9,101,120,116,101,110,115,105,111,110, + 218,11,115,111,117,114,99,101,95,112,97,116,104,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,15,95,103, + 101,116,95,115,111,117,114,99,101,102,105,108,101,235,1,0, + 0,115,22,0,0,0,12,7,4,1,16,1,24,1,4,1, + 2,1,12,1,16,1,16,1,2,255,16,2,114,135,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,1,0, + 0,0,8,0,0,0,67,0,0,0,115,68,0,0,0,124, + 0,160,0,116,1,116,2,131,1,161,1,114,23,122,5,116, + 3,124,0,131,1,87,0,83,0,4,0,116,4,121,22,1, + 0,1,0,1,0,89,0,100,0,83,0,119,0,124,0,160, + 0,116,1,116,5,131,1,161,1,114,32,124,0,83,0,100, + 0,83,0,114,69,0,0,0,41,6,114,58,0,0,0,218, 5,116,117,112,108,101,114,127,0,0,0,114,121,0,0,0, 114,107,0,0,0,114,113,0,0,0,41,1,114,120,0,0, 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, 218,11,95,103,101,116,95,99,97,99,104,101,100,254,1,0, - 0,115,20,0,0,0,14,1,2,1,10,1,12,1,4,1, - 14,1,4,1,4,2,4,252,2,255,114,137,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 8,0,0,0,67,0,0,0,115,48,0,0,0,122,7,116, - 0,124,0,131,1,106,1,125,1,87,0,110,9,4,0,116, - 2,121,23,1,0,1,0,1,0,100,1,125,1,89,0,124, - 1,100,2,79,0,125,1,124,1,83,0,119,0,41,4,122, + 0,115,18,0,0,0,14,1,2,1,10,1,12,1,6,1, + 2,255,14,2,4,1,4,2,114,137,0,0,0,99,1,0, + 0,0,0,0,0,0,0,0,0,0,2,0,0,0,8,0, + 0,0,67,0,0,0,115,50,0,0,0,122,7,116,0,124, + 0,131,1,106,1,125,1,87,0,110,11,4,0,116,2,121, + 18,1,0,1,0,1,0,100,1,125,1,89,0,110,1,119, + 0,124,1,100,2,79,0,125,1,124,1,83,0,41,4,122, 51,67,97,108,99,117,108,97,116,101,32,116,104,101,32,109, 111,100,101,32,112,101,114,109,105,115,115,105,111,110,115,32, 102,111,114,32,97,32,98,121,116,101,99,111,100,101,32,102, @@ -616,7 +616,7 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 41,2,114,65,0,0,0,114,78,0,0,0,114,7,0,0, 0,114,7,0,0,0,114,8,0,0,0,218,10,95,99,97, 108,99,95,109,111,100,101,10,2,0,0,115,14,0,0,0, - 2,2,14,1,12,1,6,1,8,3,4,1,2,251,114,139, + 2,2,14,1,12,1,8,1,2,255,8,4,4,1,114,139, 0,0,0,99,1,0,0,0,0,0,0,0,0,0,0,0, 3,0,0,0,4,0,0,0,3,0,0,0,115,52,0,0, 0,100,6,135,0,102,1,100,2,100,3,132,9,125,1,116, @@ -789,9 +789,9 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 25,0,131,1,124,1,100,3,64,0,107,3,114,31,100,4, 124,3,155,2,157,2,125,5,116,1,160,2,100,5,124,5, 161,2,1,0,116,3,124,5,102,1,105,0,124,4,164,1, - 142,1,130,1,124,2,100,6,117,1,114,60,116,0,124,0, + 142,1,130,1,124,2,100,6,117,1,114,58,116,0,124,0, 100,2,100,7,133,2,25,0,131,1,124,2,100,3,64,0, - 107,3,114,58,116,3,100,4,124,3,155,2,157,2,102,1, + 107,3,114,60,116,3,100,4,124,3,155,2,157,2,102,1, 105,0,124,4,164,1,142,1,130,1,100,6,83,0,100,6, 83,0,41,8,97,7,2,0,0,86,97,108,105,100,97,116, 101,32,97,32,112,121,99,32,97,103,97,105,110,115,116,32, @@ -975,1793 +975,1793 @@ const unsigned char _Py_M__importlib_bootstrap_external[] = { 0,0,0,218,26,115,117,98,109,111,100,117,108,101,95,115, 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,99, 2,0,0,0,0,0,0,0,2,0,0,0,9,0,0,0, - 8,0,0,0,67,0,0,0,115,52,1,0,0,124,1,100, - 1,117,0,114,28,100,2,125,1,116,0,124,2,100,3,131, - 2,114,27,122,7,124,2,160,1,124,0,161,1,125,1,87, - 0,110,35,4,0,116,2,121,153,1,0,1,0,1,0,89, - 0,110,27,110,26,116,3,160,4,124,1,161,1,125,1,116, - 5,124,1,131,1,115,54,122,9,116,6,116,3,160,7,161, - 0,124,1,131,2,125,1,87,0,110,7,4,0,116,8,121, - 152,1,0,1,0,1,0,89,0,116,9,106,10,124,0,124, - 2,124,1,100,4,141,3,125,4,100,5,124,4,95,11,124, - 2,100,1,117,0,114,96,116,12,131,0,68,0,93,21,92, - 2,125,5,125,6,124,1,160,13,116,14,124,6,131,1,161, - 1,114,93,124,5,124,0,124,1,131,2,125,2,124,2,124, - 4,95,15,1,0,113,96,113,72,100,1,83,0,124,3,116, - 16,117,0,114,127,116,0,124,2,100,6,131,2,114,126,122, - 7,124,2,160,17,124,0,161,1,125,7,87,0,110,8,4, - 0,116,2,121,151,1,0,1,0,1,0,89,0,110,9,124, - 7,114,126,103,0,124,4,95,18,110,3,124,3,124,4,95, - 18,124,4,106,18,103,0,107,2,114,149,124,1,114,149,116, - 19,124,1,131,1,100,7,25,0,125,8,124,4,106,18,160, - 20,124,8,161,1,1,0,124,4,83,0,119,0,119,0,119, - 0,41,8,97,61,1,0,0,82,101,116,117,114,110,32,97, - 32,109,111,100,117,108,101,32,115,112,101,99,32,98,97,115, - 101,100,32,111,110,32,97,32,102,105,108,101,32,108,111,99, - 97,116,105,111,110,46,10,10,32,32,32,32,84,111,32,105, - 110,100,105,99,97,116,101,32,116,104,97,116,32,116,104,101, - 32,109,111,100,117,108,101,32,105,115,32,97,32,112,97,99, - 107,97,103,101,44,32,115,101,116,10,32,32,32,32,115,117, - 98,109,111,100,117,108,101,95,115,101,97,114,99,104,95,108, - 111,99,97,116,105,111,110,115,32,116,111,32,97,32,108,105, - 115,116,32,111,102,32,100,105,114,101,99,116,111,114,121,32, - 112,97,116,104,115,46,32,32,65,110,10,32,32,32,32,101, - 109,112,116,121,32,108,105,115,116,32,105,115,32,115,117,102, - 102,105,99,105,101,110,116,44,32,116,104,111,117,103,104,32, - 105,116,115,32,110,111,116,32,111,116,104,101,114,119,105,115, - 101,32,117,115,101,102,117,108,32,116,111,32,116,104,101,10, - 32,32,32,32,105,109,112,111,114,116,32,115,121,115,116,101, - 109,46,10,10,32,32,32,32,84,104,101,32,108,111,97,100, - 101,114,32,109,117,115,116,32,116,97,107,101,32,97,32,115, - 112,101,99,32,97,115,32,105,116,115,32,111,110,108,121,32, - 95,95,105,110,105,116,95,95,40,41,32,97,114,103,46,10, - 10,32,32,32,32,78,122,9,60,117,110,107,110,111,119,110, - 62,218,12,103,101,116,95,102,105,108,101,110,97,109,101,169, - 1,218,6,111,114,105,103,105,110,84,218,10,105,115,95,112, - 97,99,107,97,103,101,114,0,0,0,0,41,21,114,153,0, - 0,0,114,203,0,0,0,114,142,0,0,0,114,18,0,0, - 0,114,103,0,0,0,114,86,0,0,0,114,67,0,0,0, - 114,82,0,0,0,114,76,0,0,0,114,159,0,0,0,218, - 10,77,111,100,117,108,101,83,112,101,99,90,13,95,115,101, - 116,95,102,105,108,101,97,116,116,114,218,27,95,103,101,116, - 95,115,117,112,112,111,114,116,101,100,95,102,105,108,101,95, - 108,111,97,100,101,114,115,114,58,0,0,0,114,136,0,0, - 0,114,164,0,0,0,218,9,95,80,79,80,85,76,65,84, - 69,114,206,0,0,0,114,202,0,0,0,114,74,0,0,0, - 114,61,0,0,0,41,9,114,141,0,0,0,90,8,108,111, - 99,97,116,105,111,110,114,164,0,0,0,114,202,0,0,0, - 218,4,115,112,101,99,218,12,108,111,97,100,101,114,95,99, - 108,97,115,115,218,8,115,117,102,102,105,120,101,115,114,206, - 0,0,0,90,7,100,105,114,110,97,109,101,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,23,115,112,101, - 99,95,102,114,111,109,95,102,105,108,101,95,108,111,99,97, - 116,105,111,110,209,2,0,0,115,84,0,0,0,8,12,4, - 4,10,1,2,2,14,1,12,1,4,1,2,251,10,7,8, - 1,2,1,18,1,12,1,2,1,16,8,6,1,8,3,14, - 1,14,1,10,1,6,1,4,1,2,253,4,5,8,3,10, - 2,2,1,14,1,12,1,4,1,4,2,6,1,2,128,6, - 2,10,1,4,1,12,1,12,1,4,2,2,244,2,228,2, - 249,114,213,0,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, - 88,0,0,0,101,0,90,1,100,0,90,2,100,1,90,3, - 100,2,90,4,100,3,90,5,101,6,111,15,100,4,101,7, - 118,0,90,8,101,9,100,5,100,6,132,0,131,1,90,10, - 101,11,100,7,100,8,132,0,131,1,90,12,101,11,100,14, - 100,10,100,11,132,1,131,1,90,13,101,11,100,15,100,12, - 100,13,132,1,131,1,90,14,100,9,83,0,41,16,218,21, - 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,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,109,111,100,117, - 108,101,115,32,100,101,99,108,97,114,101,100,32,105,110,32, - 116,104,101,32,87,105,110,100,111,119,115,32,114,101,103,105, - 115,116,114,121,46,122,59,83,111,102,116,119,97,114,101,92, - 80,121,116,104,111,110,92,80,121,116,104,111,110,67,111,114, - 101,92,123,115,121,115,95,118,101,114,115,105,111,110,125,92, - 77,111,100,117,108,101,115,92,123,102,117,108,108,110,97,109, - 101,125,122,65,83,111,102,116,119,97,114,101,92,80,121,116, - 104,111,110,92,80,121,116,104,111,110,67,111,114,101,92,123, - 115,121,115,95,118,101,114,115,105,111,110,125,92,77,111,100, - 117,108,101,115,92,123,102,117,108,108,110,97,109,101,125,92, - 68,101,98,117,103,122,6,95,100,46,112,121,100,99,1,0, - 0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0, - 0,0,67,0,0,0,115,50,0,0,0,122,8,116,0,160, - 1,116,0,106,2,124,0,161,2,87,0,83,0,4,0,116, - 3,121,24,1,0,1,0,1,0,116,0,160,1,116,0,106, - 4,124,0,161,2,6,0,89,0,83,0,119,0,114,69,0, - 0,0,41,5,218,6,119,105,110,114,101,103,90,7,79,112, - 101,110,75,101,121,90,17,72,75,69,89,95,67,85,82,82, - 69,78,84,95,85,83,69,82,114,76,0,0,0,90,18,72, - 75,69,89,95,76,79,67,65,76,95,77,65,67,72,73,78, - 69,114,19,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,218,14,95,111,112,101,110,95,114,101,103, - 105,115,116,114,121,38,3,0,0,115,10,0,0,0,2,2, - 16,1,12,1,18,1,2,255,122,36,87,105,110,100,111,119, - 115,82,101,103,105,115,116,114,121,70,105,110,100,101,114,46, - 95,111,112,101,110,95,114,101,103,105,115,116,114,121,99,2, - 0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,8, - 0,0,0,67,0,0,0,115,134,0,0,0,124,0,106,0, - 114,7,124,0,106,1,125,2,110,3,124,0,106,2,125,2, - 124,2,106,3,124,1,100,1,116,4,106,5,100,0,100,2, - 133,2,25,0,22,0,100,3,141,2,125,3,122,32,124,0, - 160,6,124,3,161,1,143,16,125,4,116,7,160,8,124,4, - 100,4,161,2,125,5,87,0,100,0,4,0,4,0,131,3, - 1,0,87,0,124,5,83,0,49,0,115,49,119,1,1,0, - 1,0,1,0,89,0,1,0,87,0,124,5,83,0,4,0, - 116,9,121,66,1,0,1,0,1,0,89,0,100,0,83,0, - 119,0,41,5,78,122,5,37,100,46,37,100,114,44,0,0, - 0,41,2,114,163,0,0,0,90,11,115,121,115,95,118,101, - 114,115,105,111,110,114,10,0,0,0,41,10,218,11,68,69, - 66,85,71,95,66,85,73,76,68,218,18,82,69,71,73,83, - 84,82,89,95,75,69,89,95,68,69,66,85,71,218,12,82, - 69,71,73,83,84,82,89,95,75,69,89,114,89,0,0,0, - 114,15,0,0,0,218,12,118,101,114,115,105,111,110,95,105, - 110,102,111,114,216,0,0,0,114,215,0,0,0,90,10,81, - 117,101,114,121,86,97,108,117,101,114,76,0,0,0,41,6, - 218,3,99,108,115,114,163,0,0,0,90,12,114,101,103,105, - 115,116,114,121,95,107,101,121,114,20,0,0,0,90,4,104, - 107,101,121,218,8,102,105,108,101,112,97,116,104,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,218,16,95,115, - 101,97,114,99,104,95,114,101,103,105,115,116,114,121,45,3, - 0,0,115,32,0,0,0,6,2,8,1,6,2,6,1,16, - 1,6,255,2,2,12,1,14,1,12,255,4,4,18,252,4, - 4,12,254,6,1,2,255,122,38,87,105,110,100,111,119,115, - 82,101,103,105,115,116,114,121,70,105,110,100,101,114,46,95, - 115,101,97,114,99,104,95,114,101,103,105,115,116,114,121,78, - 99,4,0,0,0,0,0,0,0,0,0,0,0,8,0,0, - 0,8,0,0,0,67,0,0,0,115,120,0,0,0,124,0, - 160,0,124,1,161,1,125,4,124,4,100,0,117,0,114,11, - 100,0,83,0,122,6,116,1,124,4,131,1,1,0,87,0, - 110,9,4,0,116,2,121,59,1,0,1,0,1,0,89,0, - 100,0,83,0,116,3,131,0,68,0,93,26,92,2,125,5, - 125,6,124,4,160,4,116,5,124,6,131,1,161,1,114,56, - 116,6,106,7,124,1,124,5,124,1,124,4,131,2,124,4, - 100,1,141,3,125,7,124,7,2,0,1,0,83,0,113,30, - 100,0,83,0,119,0,41,2,78,114,204,0,0,0,41,8, - 114,223,0,0,0,114,75,0,0,0,114,76,0,0,0,114, - 208,0,0,0,114,58,0,0,0,114,136,0,0,0,114,159, - 0,0,0,218,16,115,112,101,99,95,102,114,111,109,95,108, - 111,97,100,101,114,41,8,114,221,0,0,0,114,163,0,0, - 0,114,65,0,0,0,218,6,116,97,114,103,101,116,114,222, - 0,0,0,114,164,0,0,0,114,212,0,0,0,114,210,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,9,102,105,110,100,95,115,112,101,99,60,3,0,0, - 115,34,0,0,0,10,2,8,1,4,1,2,1,12,1,12, - 1,6,1,14,1,14,1,6,1,8,1,2,1,6,254,8, - 3,2,252,4,255,2,254,122,31,87,105,110,100,111,119,115, + 8,0,0,0,67,0,0,0,115,54,1,0,0,124,1,100, + 1,117,0,114,29,100,2,125,1,116,0,124,2,100,3,131, + 2,114,28,122,7,124,2,160,1,124,0,161,1,125,1,87, + 0,110,38,4,0,116,2,121,27,1,0,1,0,1,0,89, + 0,110,30,119,0,110,28,116,3,160,4,124,1,161,1,125, + 1,116,5,124,1,131,1,115,57,122,9,116,6,116,3,160, + 7,161,0,124,1,131,2,125,1,87,0,110,9,4,0,116, + 8,121,56,1,0,1,0,1,0,89,0,110,1,119,0,116, + 9,106,10,124,0,124,2,124,1,100,4,141,3,125,4,100, + 5,124,4,95,11,124,2,100,1,117,0,114,99,116,12,131, + 0,68,0,93,21,92,2,125,5,125,6,124,1,160,13,116, + 14,124,6,131,1,161,1,114,96,124,5,124,0,124,1,131, + 2,125,2,124,2,124,4,95,15,1,0,113,99,113,75,100, + 1,83,0,124,3,116,16,117,0,114,131,116,0,124,2,100, + 6,131,2,114,130,122,7,124,2,160,17,124,0,161,1,125, + 7,87,0,110,9,4,0,116,2,121,124,1,0,1,0,1, + 0,89,0,110,10,119,0,124,7,114,130,103,0,124,4,95, + 18,110,3,124,3,124,4,95,18,124,4,106,18,103,0,107, + 2,114,153,124,1,114,153,116,19,124,1,131,1,100,7,25, + 0,125,8,124,4,106,18,160,20,124,8,161,1,1,0,124, + 4,83,0,41,8,97,61,1,0,0,82,101,116,117,114,110, + 32,97,32,109,111,100,117,108,101,32,115,112,101,99,32,98, + 97,115,101,100,32,111,110,32,97,32,102,105,108,101,32,108, + 111,99,97,116,105,111,110,46,10,10,32,32,32,32,84,111, + 32,105,110,100,105,99,97,116,101,32,116,104,97,116,32,116, + 104,101,32,109,111,100,117,108,101,32,105,115,32,97,32,112, + 97,99,107,97,103,101,44,32,115,101,116,10,32,32,32,32, + 115,117,98,109,111,100,117,108,101,95,115,101,97,114,99,104, + 95,108,111,99,97,116,105,111,110,115,32,116,111,32,97,32, + 108,105,115,116,32,111,102,32,100,105,114,101,99,116,111,114, + 121,32,112,97,116,104,115,46,32,32,65,110,10,32,32,32, + 32,101,109,112,116,121,32,108,105,115,116,32,105,115,32,115, + 117,102,102,105,99,105,101,110,116,44,32,116,104,111,117,103, + 104,32,105,116,115,32,110,111,116,32,111,116,104,101,114,119, + 105,115,101,32,117,115,101,102,117,108,32,116,111,32,116,104, + 101,10,32,32,32,32,105,109,112,111,114,116,32,115,121,115, + 116,101,109,46,10,10,32,32,32,32,84,104,101,32,108,111, + 97,100,101,114,32,109,117,115,116,32,116,97,107,101,32,97, + 32,115,112,101,99,32,97,115,32,105,116,115,32,111,110,108, + 121,32,95,95,105,110,105,116,95,95,40,41,32,97,114,103, + 46,10,10,32,32,32,32,78,122,9,60,117,110,107,110,111, + 119,110,62,218,12,103,101,116,95,102,105,108,101,110,97,109, + 101,169,1,218,6,111,114,105,103,105,110,84,218,10,105,115, + 95,112,97,99,107,97,103,101,114,0,0,0,0,41,21,114, + 153,0,0,0,114,203,0,0,0,114,142,0,0,0,114,18, + 0,0,0,114,103,0,0,0,114,86,0,0,0,114,67,0, + 0,0,114,82,0,0,0,114,76,0,0,0,114,159,0,0, + 0,218,10,77,111,100,117,108,101,83,112,101,99,90,13,95, + 115,101,116,95,102,105,108,101,97,116,116,114,218,27,95,103, + 101,116,95,115,117,112,112,111,114,116,101,100,95,102,105,108, + 101,95,108,111,97,100,101,114,115,114,58,0,0,0,114,136, + 0,0,0,114,164,0,0,0,218,9,95,80,79,80,85,76, + 65,84,69,114,206,0,0,0,114,202,0,0,0,114,74,0, + 0,0,114,61,0,0,0,41,9,114,141,0,0,0,90,8, + 108,111,99,97,116,105,111,110,114,164,0,0,0,114,202,0, + 0,0,218,4,115,112,101,99,218,12,108,111,97,100,101,114, + 95,99,108,97,115,115,218,8,115,117,102,102,105,120,101,115, + 114,206,0,0,0,90,7,100,105,114,110,97,109,101,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,23,115, + 112,101,99,95,102,114,111,109,95,102,105,108,101,95,108,111, + 99,97,116,105,111,110,209,2,0,0,115,84,0,0,0,8, + 12,4,4,10,1,2,2,14,1,12,1,4,1,2,255,2, + 252,10,7,8,1,2,1,18,1,12,1,4,1,2,255,16, + 9,6,1,8,3,14,1,14,1,10,1,6,1,4,1,2, + 253,4,5,8,3,10,2,2,1,14,1,12,1,4,1,2, + 255,4,3,6,1,2,128,6,2,10,1,4,1,12,1,12, + 1,4,2,114,213,0,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,88,0,0,0,101,0,90,1,100,0,90,2,100,1, + 90,3,100,2,90,4,100,3,90,5,101,6,111,15,100,4, + 101,7,118,0,90,8,101,9,100,5,100,6,132,0,131,1, + 90,10,101,11,100,7,100,8,132,0,131,1,90,12,101,11, + 100,14,100,10,100,11,132,1,131,1,90,13,101,11,100,15, + 100,12,100,13,132,1,131,1,90,14,100,9,83,0,41,16, + 218,21,87,105,110,100,111,119,115,82,101,103,105,115,116,114, + 121,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,109,111, + 100,117,108,101,115,32,100,101,99,108,97,114,101,100,32,105, + 110,32,116,104,101,32,87,105,110,100,111,119,115,32,114,101, + 103,105,115,116,114,121,46,122,59,83,111,102,116,119,97,114, + 101,92,80,121,116,104,111,110,92,80,121,116,104,111,110,67, + 111,114,101,92,123,115,121,115,95,118,101,114,115,105,111,110, + 125,92,77,111,100,117,108,101,115,92,123,102,117,108,108,110, + 97,109,101,125,122,65,83,111,102,116,119,97,114,101,92,80, + 121,116,104,111,110,92,80,121,116,104,111,110,67,111,114,101, + 92,123,115,121,115,95,118,101,114,115,105,111,110,125,92,77, + 111,100,117,108,101,115,92,123,102,117,108,108,110,97,109,101, + 125,92,68,101,98,117,103,122,6,95,100,46,112,121,100,99, + 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, + 8,0,0,0,67,0,0,0,115,50,0,0,0,122,8,116, + 0,160,1,116,0,106,2,124,0,161,2,87,0,83,0,4, + 0,116,3,121,24,1,0,1,0,1,0,116,0,160,1,116, + 0,106,4,124,0,161,2,6,0,89,0,83,0,119,0,114, + 69,0,0,0,41,5,218,6,119,105,110,114,101,103,90,7, + 79,112,101,110,75,101,121,90,17,72,75,69,89,95,67,85, + 82,82,69,78,84,95,85,83,69,82,114,76,0,0,0,90, + 18,72,75,69,89,95,76,79,67,65,76,95,77,65,67,72, + 73,78,69,114,19,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,218,14,95,111,112,101,110,95,114, + 101,103,105,115,116,114,121,38,3,0,0,115,10,0,0,0, + 2,2,16,1,12,1,18,1,2,255,122,36,87,105,110,100, + 111,119,115,82,101,103,105,115,116,114,121,70,105,110,100,101, + 114,46,95,111,112,101,110,95,114,101,103,105,115,116,114,121, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,8,0,0,0,67,0,0,0,115,134,0,0,0,124,0, + 106,0,114,7,124,0,106,1,125,2,110,3,124,0,106,2, + 125,2,124,2,106,3,124,1,100,1,116,4,106,5,100,0, + 100,2,133,2,25,0,22,0,100,3,141,2,125,3,122,32, + 124,0,160,6,124,3,161,1,143,16,125,4,116,7,160,8, + 124,4,100,4,161,2,125,5,87,0,100,0,4,0,4,0, + 131,3,1,0,87,0,124,5,83,0,49,0,115,49,119,1, + 1,0,1,0,1,0,89,0,1,0,87,0,124,5,83,0, + 4,0,116,9,121,66,1,0,1,0,1,0,89,0,100,0, + 83,0,119,0,41,5,78,122,5,37,100,46,37,100,114,44, + 0,0,0,41,2,114,163,0,0,0,90,11,115,121,115,95, + 118,101,114,115,105,111,110,114,10,0,0,0,41,10,218,11, + 68,69,66,85,71,95,66,85,73,76,68,218,18,82,69,71, + 73,83,84,82,89,95,75,69,89,95,68,69,66,85,71,218, + 12,82,69,71,73,83,84,82,89,95,75,69,89,114,89,0, + 0,0,114,15,0,0,0,218,12,118,101,114,115,105,111,110, + 95,105,110,102,111,114,216,0,0,0,114,215,0,0,0,90, + 10,81,117,101,114,121,86,97,108,117,101,114,76,0,0,0, + 41,6,218,3,99,108,115,114,163,0,0,0,90,12,114,101, + 103,105,115,116,114,121,95,107,101,121,114,20,0,0,0,90, + 4,104,107,101,121,218,8,102,105,108,101,112,97,116,104,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,16, + 95,115,101,97,114,99,104,95,114,101,103,105,115,116,114,121, + 45,3,0,0,115,32,0,0,0,6,2,8,1,6,2,6, + 1,16,1,6,255,2,2,12,1,14,1,12,255,4,4,18, + 252,4,4,12,254,6,1,2,255,122,38,87,105,110,100,111, + 119,115,82,101,103,105,115,116,114,121,70,105,110,100,101,114, + 46,95,115,101,97,114,99,104,95,114,101,103,105,115,116,114, + 121,78,99,4,0,0,0,0,0,0,0,0,0,0,0,8, + 0,0,0,8,0,0,0,67,0,0,0,115,120,0,0,0, + 124,0,160,0,124,1,161,1,125,4,124,4,100,0,117,0, + 114,11,100,0,83,0,122,6,116,1,124,4,131,1,1,0, + 87,0,110,10,4,0,116,2,121,27,1,0,1,0,1,0, + 89,0,100,0,83,0,119,0,116,3,131,0,68,0,93,26, + 92,2,125,5,125,6,124,4,160,4,116,5,124,6,131,1, + 161,1,114,57,116,6,106,7,124,1,124,5,124,1,124,4, + 131,2,124,4,100,1,141,3,125,7,124,7,2,0,1,0, + 83,0,113,31,100,0,83,0,41,2,78,114,204,0,0,0, + 41,8,114,223,0,0,0,114,75,0,0,0,114,76,0,0, + 0,114,208,0,0,0,114,58,0,0,0,114,136,0,0,0, + 114,159,0,0,0,218,16,115,112,101,99,95,102,114,111,109, + 95,108,111,97,100,101,114,41,8,114,221,0,0,0,114,163, + 0,0,0,114,65,0,0,0,218,6,116,97,114,103,101,116, + 114,222,0,0,0,114,164,0,0,0,114,212,0,0,0,114, + 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,9,102,105,110,100,95,115,112,101,99,60,3, + 0,0,115,34,0,0,0,10,2,8,1,4,1,2,1,12, + 1,12,1,6,1,2,255,14,2,14,1,6,1,8,1,2, + 1,6,254,8,3,2,252,4,255,122,31,87,105,110,100,111, + 119,115,82,101,103,105,115,116,114,121,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,42,0,0,0,116,0,160,1,100,1,116,2, + 161,2,1,0,124,0,160,3,124,1,124,2,161,2,125,3, + 124,3,100,2,117,1,114,19,124,3,106,4,83,0,100,2, + 83,0,41,3,122,106,70,105,110,100,32,109,111,100,117,108, + 101,32,110,97,109,101,100,32,105,110,32,116,104,101,32,114, + 101,103,105,115,116,114,121,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, + 122,112,87,105,110,100,111,119,115,82,101,103,105,115,116,114, + 121,70,105,110,100,101,114,46,102,105,110,100,95,109,111,100, + 117,108,101,40,41,32,105,115,32,100,101,112,114,101,99,97, + 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, + 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, + 116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,102, + 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, + 97,100,78,169,5,114,99,0,0,0,114,100,0,0,0,114, + 101,0,0,0,114,226,0,0,0,114,164,0,0,0,169,4, + 114,221,0,0,0,114,163,0,0,0,114,65,0,0,0,114, + 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,218,11,102,105,110,100,95,109,111,100,117,108,101, + 76,3,0,0,115,14,0,0,0,6,7,2,2,4,254,12, + 3,8,1,6,1,4,2,122,33,87,105,110,100,111,119,115, 82,101,103,105,115,116,114,121,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,42,0,0,0,116,0,160,1,100,1,116,2,161,2, - 1,0,124,0,160,3,124,1,124,2,161,2,125,3,124,3, - 100,2,117,1,114,19,124,3,106,4,83,0,100,2,83,0, - 41,3,122,106,70,105,110,100,32,109,111,100,117,108,101,32, - 110,97,109,101,100,32,105,110,32,116,104,101,32,114,101,103, - 105,115,116,114,121,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,122,112, - 87,105,110,100,111,119,115,82,101,103,105,115,116,114,121,70, - 105,110,100,101,114,46,102,105,110,100,95,109,111,100,117,108, - 101,40,41,32,105,115,32,100,101,112,114,101,99,97,116,101, - 100,32,97,110,100,32,115,108,97,116,101,100,32,102,111,114, - 32,114,101,109,111,118,97,108,32,105,110,32,80,121,116,104, - 111,110,32,51,46,49,50,59,32,117,115,101,32,102,105,110, - 100,95,115,112,101,99,40,41,32,105,110,115,116,101,97,100, - 78,169,5,114,99,0,0,0,114,100,0,0,0,114,101,0, - 0,0,114,226,0,0,0,114,164,0,0,0,169,4,114,221, - 0,0,0,114,163,0,0,0,114,65,0,0,0,114,210,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,218,11,102,105,110,100,95,109,111,100,117,108,101,76,3, - 0,0,115,14,0,0,0,6,7,2,2,4,254,12,3,8, - 1,6,1,4,2,122,33,87,105,110,100,111,119,115,82,101, - 103,105,115,116,114,121,70,105,110,100,101,114,46,102,105,110, - 100,95,109,111,100,117,108,101,169,2,78,78,114,69,0,0, - 0,41,15,114,150,0,0,0,114,149,0,0,0,114,151,0, - 0,0,114,152,0,0,0,114,219,0,0,0,114,218,0,0, - 0,218,11,95,77,83,95,87,73,78,68,79,87,83,218,18, - 69,88,84,69,78,83,73,79,78,95,83,85,70,70,73,88, - 69,83,114,217,0,0,0,218,12,115,116,97,116,105,99,109, - 101,116,104,111,100,114,216,0,0,0,218,11,99,108,97,115, - 115,109,101,116,104,111,100,114,223,0,0,0,114,226,0,0, - 0,114,229,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,214,0,0,0,26, - 3,0,0,115,30,0,0,0,8,0,4,2,2,3,2,255, - 2,4,2,255,12,3,2,2,10,1,2,6,10,1,2,14, - 12,1,2,15,16,1,114,214,0,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,48,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,100,6,100,7,132,0,90,6,100,8,100, - 9,132,0,90,7,100,10,83,0,41,11,218,13,95,76,111, - 97,100,101,114,66,97,115,105,99,115,122,83,66,97,115,101, - 32,99,108,97,115,115,32,111,102,32,99,111,109,109,111,110, - 32,99,111,100,101,32,110,101,101,100,101,100,32,98,121,32, - 98,111,116,104,32,83,111,117,114,99,101,76,111,97,100,101, - 114,32,97,110,100,10,32,32,32,32,83,111,117,114,99,101, - 108,101,115,115,70,105,108,101,76,111,97,100,101,114,46,99, - 2,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, - 4,0,0,0,67,0,0,0,115,64,0,0,0,116,0,124, - 0,160,1,124,1,161,1,131,1,100,1,25,0,125,2,124, - 2,160,2,100,2,100,1,161,2,100,3,25,0,125,3,124, - 1,160,3,100,2,161,1,100,4,25,0,125,4,124,3,100, - 5,107,2,111,31,124,4,100,5,107,3,83,0,41,7,122, - 141,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, - 101,99,116,76,111,97,100,101,114,46,105,115,95,112,97,99, - 107,97,103,101,32,98,121,32,99,104,101,99,107,105,110,103, - 32,105,102,10,32,32,32,32,32,32,32,32,116,104,101,32, - 112,97,116,104,32,114,101,116,117,114,110,101,100,32,98,121, - 32,103,101,116,95,102,105,108,101,110,97,109,101,32,104,97, - 115,32,97,32,102,105,108,101,110,97,109,101,32,111,102,32, - 39,95,95,105,110,105,116,95,95,46,112,121,39,46,114,3, - 0,0,0,114,97,0,0,0,114,0,0,0,0,114,44,0, - 0,0,218,8,95,95,105,110,105,116,95,95,78,41,4,114, - 74,0,0,0,114,203,0,0,0,114,125,0,0,0,114,104, - 0,0,0,41,5,114,143,0,0,0,114,163,0,0,0,114, - 120,0,0,0,90,13,102,105,108,101,110,97,109,101,95,98, - 97,115,101,90,9,116,97,105,108,95,110,97,109,101,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,206,0, - 0,0,98,3,0,0,115,8,0,0,0,18,3,16,1,14, - 1,16,1,122,24,95,76,111,97,100,101,114,66,97,115,105, - 99,115,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,23,0,0,0,169,2,122,42,85, - 115,101,32,100,101,102,97,117,108,116,32,115,101,109,97,110, - 116,105,99,115,32,102,111,114,32,109,111,100,117,108,101,32, - 99,114,101,97,116,105,111,110,46,78,114,7,0,0,0,169, - 2,114,143,0,0,0,114,210,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,218,13,99,114,101,97, - 116,101,95,109,111,100,117,108,101,106,3,0,0,243,2,0, - 0,0,4,0,122,27,95,76,111,97,100,101,114,66,97,115, - 105,99,115,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,3,0, - 0,0,5,0,0,0,67,0,0,0,115,56,0,0,0,124, - 0,160,0,124,1,106,1,161,1,125,2,124,2,100,1,117, - 0,114,18,116,2,100,2,160,3,124,1,106,1,161,1,131, - 1,130,1,116,4,160,5,116,6,124,2,124,1,106,7,161, - 3,1,0,100,1,83,0,41,3,122,19,69,120,101,99,117, - 116,101,32,116,104,101,32,109,111,100,117,108,101,46,78,122, - 52,99,97,110,110,111,116,32,108,111,97,100,32,109,111,100, - 117,108,101,32,123,33,114,125,32,119,104,101,110,32,103,101, - 116,95,99,111,100,101,40,41,32,114,101,116,117,114,110,115, - 32,78,111,110,101,41,8,218,8,103,101,116,95,99,111,100, - 101,114,150,0,0,0,114,142,0,0,0,114,89,0,0,0, - 114,159,0,0,0,218,25,95,99,97,108,108,95,119,105,116, - 104,95,102,114,97,109,101,115,95,114,101,109,111,118,101,100, - 218,4,101,120,101,99,114,156,0,0,0,41,3,114,143,0, - 0,0,218,6,109,111,100,117,108,101,114,188,0,0,0,114, - 7,0,0,0,114,7,0,0,0,114,8,0,0,0,218,11, - 101,120,101,99,95,109,111,100,117,108,101,109,3,0,0,115, - 12,0,0,0,12,2,8,1,4,1,8,1,4,255,20,2, - 122,25,95,76,111,97,100,101,114,66,97,115,105,99,115,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,12,0,0,0,116,0,160,1,124,0,124, - 1,161,2,83,0,41,2,122,26,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,78,41,2,114,159,0,0,0,218,17,95,108,111, - 97,100,95,109,111,100,117,108,101,95,115,104,105,109,169,2, - 114,143,0,0,0,114,163,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,11,108,111,97,100,95, - 109,111,100,117,108,101,117,3,0,0,115,2,0,0,0,12, - 3,122,25,95,76,111,97,100,101,114,66,97,115,105,99,115, - 46,108,111,97,100,95,109,111,100,117,108,101,78,41,8,114, - 150,0,0,0,114,149,0,0,0,114,151,0,0,0,114,152, - 0,0,0,114,206,0,0,0,114,239,0,0,0,114,245,0, - 0,0,114,248,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,235,0,0,0, - 93,3,0,0,115,12,0,0,0,8,0,4,2,8,3,8, - 8,8,3,12,8,114,235,0,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,74,0,0,0,101,0,90,1,100,0,90,2, - 100,1,100,2,132,0,90,3,100,3,100,4,132,0,90,4, - 100,5,100,6,132,0,90,5,100,7,100,8,132,0,90,6, - 100,9,100,10,132,0,90,7,100,11,100,12,156,1,100,13, - 100,14,132,2,90,8,100,15,100,16,132,0,90,9,100,17, - 83,0,41,18,218,12,83,111,117,114,99,101,76,111,97,100, - 101,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,115,4,0,0,0, - 116,0,130,1,41,2,122,165,79,112,116,105,111,110,97,108, - 32,109,101,116,104,111,100,32,116,104,97,116,32,114,101,116, - 117,114,110,115,32,116,104,101,32,109,111,100,105,102,105,99, - 97,116,105,111,110,32,116,105,109,101,32,40,97,110,32,105, - 110,116,41,32,102,111,114,32,116,104,101,10,32,32,32,32, - 32,32,32,32,115,112,101,99,105,102,105,101,100,32,112,97, - 116,104,32,40,97,32,115,116,114,41,46,10,10,32,32,32, - 32,32,32,32,32,82,97,105,115,101,115,32,79,83,69,114, - 114,111,114,32,119,104,101,110,32,116,104,101,32,112,97,116, - 104,32,99,97,110,110,111,116,32,98,101,32,104,97,110,100, - 108,101,100,46,10,32,32,32,32,32,32,32,32,78,41,1, - 114,76,0,0,0,169,2,114,143,0,0,0,114,65,0,0, + 105,110,100,95,109,111,100,117,108,101,169,2,78,78,114,69, + 0,0,0,41,15,114,150,0,0,0,114,149,0,0,0,114, + 151,0,0,0,114,152,0,0,0,114,219,0,0,0,114,218, + 0,0,0,218,11,95,77,83,95,87,73,78,68,79,87,83, + 218,18,69,88,84,69,78,83,73,79,78,95,83,85,70,70, + 73,88,69,83,114,217,0,0,0,218,12,115,116,97,116,105, + 99,109,101,116,104,111,100,114,216,0,0,0,218,11,99,108, + 97,115,115,109,101,116,104,111,100,114,223,0,0,0,114,226, + 0,0,0,114,229,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,214,0,0, + 0,26,3,0,0,115,30,0,0,0,8,0,4,2,2,3, + 2,255,2,4,2,255,12,3,2,2,10,1,2,6,10,1, + 2,14,12,1,2,15,16,1,114,214,0,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,48,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,100,6,100,7,132,0,90,6,100, + 8,100,9,132,0,90,7,100,10,83,0,41,11,218,13,95, + 76,111,97,100,101,114,66,97,115,105,99,115,122,83,66,97, + 115,101,32,99,108,97,115,115,32,111,102,32,99,111,109,109, + 111,110,32,99,111,100,101,32,110,101,101,100,101,100,32,98, + 121,32,98,111,116,104,32,83,111,117,114,99,101,76,111,97, + 100,101,114,32,97,110,100,10,32,32,32,32,83,111,117,114, + 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, + 46,99,2,0,0,0,0,0,0,0,0,0,0,0,5,0, + 0,0,4,0,0,0,67,0,0,0,115,64,0,0,0,116, + 0,124,0,160,1,124,1,161,1,131,1,100,1,25,0,125, + 2,124,2,160,2,100,2,100,1,161,2,100,3,25,0,125, + 3,124,1,160,3,100,2,161,1,100,4,25,0,125,4,124, + 3,100,5,107,2,111,31,124,4,100,5,107,3,83,0,41, + 7,122,141,67,111,110,99,114,101,116,101,32,105,109,112,108, + 101,109,101,110,116,97,116,105,111,110,32,111,102,32,73,110, + 115,112,101,99,116,76,111,97,100,101,114,46,105,115,95,112, + 97,99,107,97,103,101,32,98,121,32,99,104,101,99,107,105, + 110,103,32,105,102,10,32,32,32,32,32,32,32,32,116,104, + 101,32,112,97,116,104,32,114,101,116,117,114,110,101,100,32, + 98,121,32,103,101,116,95,102,105,108,101,110,97,109,101,32, + 104,97,115,32,97,32,102,105,108,101,110,97,109,101,32,111, + 102,32,39,95,95,105,110,105,116,95,95,46,112,121,39,46, + 114,3,0,0,0,114,97,0,0,0,114,0,0,0,0,114, + 44,0,0,0,218,8,95,95,105,110,105,116,95,95,78,41, + 4,114,74,0,0,0,114,203,0,0,0,114,125,0,0,0, + 114,104,0,0,0,41,5,114,143,0,0,0,114,163,0,0, + 0,114,120,0,0,0,90,13,102,105,108,101,110,97,109,101, + 95,98,97,115,101,90,9,116,97,105,108,95,110,97,109,101, + 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, + 206,0,0,0,98,3,0,0,115,8,0,0,0,18,3,16, + 1,14,1,16,1,122,24,95,76,111,97,100,101,114,66,97, + 115,105,99,115,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,23,0,0,0,169,2,122, + 42,85,115,101,32,100,101,102,97,117,108,116,32,115,101,109, + 97,110,116,105,99,115,32,102,111,114,32,109,111,100,117,108, + 101,32,99,114,101,97,116,105,111,110,46,78,114,7,0,0, + 0,169,2,114,143,0,0,0,114,210,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,13,99,114, + 101,97,116,101,95,109,111,100,117,108,101,106,3,0,0,243, + 2,0,0,0,4,0,122,27,95,76,111,97,100,101,114,66, + 97,115,105,99,115,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, + 3,0,0,0,5,0,0,0,67,0,0,0,115,56,0,0, + 0,124,0,160,0,124,1,106,1,161,1,125,2,124,2,100, + 1,117,0,114,18,116,2,100,2,160,3,124,1,106,1,161, + 1,131,1,130,1,116,4,160,5,116,6,124,2,124,1,106, + 7,161,3,1,0,100,1,83,0,41,3,122,19,69,120,101, + 99,117,116,101,32,116,104,101,32,109,111,100,117,108,101,46, + 78,122,52,99,97,110,110,111,116,32,108,111,97,100,32,109, + 111,100,117,108,101,32,123,33,114,125,32,119,104,101,110,32, + 103,101,116,95,99,111,100,101,40,41,32,114,101,116,117,114, + 110,115,32,78,111,110,101,41,8,218,8,103,101,116,95,99, + 111,100,101,114,150,0,0,0,114,142,0,0,0,114,89,0, + 0,0,114,159,0,0,0,218,25,95,99,97,108,108,95,119, + 105,116,104,95,102,114,97,109,101,115,95,114,101,109,111,118, + 101,100,218,4,101,120,101,99,114,156,0,0,0,41,3,114, + 143,0,0,0,218,6,109,111,100,117,108,101,114,188,0,0, 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 218,10,112,97,116,104,95,109,116,105,109,101,125,3,0,0, - 115,2,0,0,0,4,6,122,23,83,111,117,114,99,101,76, - 111,97,100,101,114,46,112,97,116,104,95,109,116,105,109,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,14,0,0,0,100,1, - 124,0,160,0,124,1,161,1,105,1,83,0,41,3,97,158, - 1,0,0,79,112,116,105,111,110,97,108,32,109,101,116,104, - 111,100,32,114,101,116,117,114,110,105,110,103,32,97,32,109, - 101,116,97,100,97,116,97,32,100,105,99,116,32,102,111,114, - 32,116,104,101,32,115,112,101,99,105,102,105,101,100,10,32, - 32,32,32,32,32,32,32,112,97,116,104,32,40,97,32,115, - 116,114,41,46,10,10,32,32,32,32,32,32,32,32,80,111, - 115,115,105,98,108,101,32,107,101,121,115,58,10,32,32,32, - 32,32,32,32,32,45,32,39,109,116,105,109,101,39,32,40, - 109,97,110,100,97,116,111,114,121,41,32,105,115,32,116,104, - 101,32,110,117,109,101,114,105,99,32,116,105,109,101,115,116, - 97,109,112,32,111,102,32,108,97,115,116,32,115,111,117,114, - 99,101,10,32,32,32,32,32,32,32,32,32,32,99,111,100, - 101,32,109,111,100,105,102,105,99,97,116,105,111,110,59,10, - 32,32,32,32,32,32,32,32,45,32,39,115,105,122,101,39, - 32,40,111,112,116,105,111,110,97,108,41,32,105,115,32,116, - 104,101,32,115,105,122,101,32,105,110,32,98,121,116,101,115, - 32,111,102,32,116,104,101,32,115,111,117,114,99,101,32,99, - 111,100,101,46,10,10,32,32,32,32,32,32,32,32,73,109, - 112,108,101,109,101,110,116,105,110,103,32,116,104,105,115,32, - 109,101,116,104,111,100,32,97,108,108,111,119,115,32,116,104, - 101,32,108,111,97,100,101,114,32,116,111,32,114,101,97,100, - 32,98,121,116,101,99,111,100,101,32,102,105,108,101,115,46, - 10,32,32,32,32,32,32,32,32,82,97,105,115,101,115,32, - 79,83,69,114,114,111,114,32,119,104,101,110,32,116,104,101, - 32,112,97,116,104,32,99,97,110,110,111,116,32,98,101,32, - 104,97,110,100,108,101,100,46,10,32,32,32,32,32,32,32, - 32,114,193,0,0,0,78,41,1,114,251,0,0,0,114,250, + 218,11,101,120,101,99,95,109,111,100,117,108,101,109,3,0, + 0,115,12,0,0,0,12,2,8,1,4,1,8,1,4,255, + 20,2,122,25,95,76,111,97,100,101,114,66,97,115,105,99, + 115,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,12,0,0,0,116,0,160,1,124, + 0,124,1,161,2,83,0,41,2,122,26,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,78,41,2,114,159,0,0,0,218,17,95, + 108,111,97,100,95,109,111,100,117,108,101,95,115,104,105,109, + 169,2,114,143,0,0,0,114,163,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,11,108,111,97, + 100,95,109,111,100,117,108,101,117,3,0,0,115,2,0,0, + 0,12,3,122,25,95,76,111,97,100,101,114,66,97,115,105, + 99,115,46,108,111,97,100,95,109,111,100,117,108,101,78,41, + 8,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0, + 114,152,0,0,0,114,206,0,0,0,114,239,0,0,0,114, + 245,0,0,0,114,248,0,0,0,114,7,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,235,0, + 0,0,93,3,0,0,115,12,0,0,0,8,0,4,2,8, + 3,8,8,8,3,12,8,114,235,0,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,74,0,0,0,101,0,90,1,100,0, + 90,2,100,1,100,2,132,0,90,3,100,3,100,4,132,0, + 90,4,100,5,100,6,132,0,90,5,100,7,100,8,132,0, + 90,6,100,9,100,10,132,0,90,7,100,11,100,12,156,1, + 100,13,100,14,132,2,90,8,100,15,100,16,132,0,90,9, + 100,17,83,0,41,18,218,12,83,111,117,114,99,101,76,111, + 97,100,101,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,115,4,0, + 0,0,116,0,130,1,41,2,122,165,79,112,116,105,111,110, + 97,108,32,109,101,116,104,111,100,32,116,104,97,116,32,114, + 101,116,117,114,110,115,32,116,104,101,32,109,111,100,105,102, + 105,99,97,116,105,111,110,32,116,105,109,101,32,40,97,110, + 32,105,110,116,41,32,102,111,114,32,116,104,101,10,32,32, + 32,32,32,32,32,32,115,112,101,99,105,102,105,101,100,32, + 112,97,116,104,32,40,97,32,115,116,114,41,46,10,10,32, + 32,32,32,32,32,32,32,82,97,105,115,101,115,32,79,83, + 69,114,114,111,114,32,119,104,101,110,32,116,104,101,32,112, + 97,116,104,32,99,97,110,110,111,116,32,98,101,32,104,97, + 110,100,108,101,100,46,10,32,32,32,32,32,32,32,32,78, + 41,1,114,76,0,0,0,169,2,114,143,0,0,0,114,65, 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,10,112,97,116,104,95,115,116,97,116,115,133,3, - 0,0,115,2,0,0,0,14,12,122,23,83,111,117,114,99, - 101,76,111,97,100,101,114,46,112,97,116,104,95,115,116,97, - 116,115,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,12,0,0,0, - 124,0,160,0,124,2,124,3,161,2,83,0,41,2,122,228, - 79,112,116,105,111,110,97,108,32,109,101,116,104,111,100,32, - 119,104,105,99,104,32,119,114,105,116,101,115,32,100,97,116, - 97,32,40,98,121,116,101,115,41,32,116,111,32,97,32,102, - 105,108,101,32,112,97,116,104,32,40,97,32,115,116,114,41, - 46,10,10,32,32,32,32,32,32,32,32,73,109,112,108,101, - 109,101,110,116,105,110,103,32,116,104,105,115,32,109,101,116, - 104,111,100,32,97,108,108,111,119,115,32,102,111,114,32,116, - 104,101,32,119,114,105,116,105,110,103,32,111,102,32,98,121, - 116,101,99,111,100,101,32,102,105,108,101,115,46,10,10,32, - 32,32,32,32,32,32,32,84,104,101,32,115,111,117,114,99, - 101,32,112,97,116,104,32,105,115,32,110,101,101,100,101,100, - 32,105,110,32,111,114,100,101,114,32,116,111,32,99,111,114, - 114,101,99,116,108,121,32,116,114,97,110,115,102,101,114,32, - 112,101,114,109,105,115,115,105,111,110,115,10,32,32,32,32, - 32,32,32,32,78,41,1,218,8,115,101,116,95,100,97,116, - 97,41,4,114,143,0,0,0,114,134,0,0,0,90,10,99, - 97,99,104,101,95,112,97,116,104,114,41,0,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,218,15,95, - 99,97,99,104,101,95,98,121,116,101,99,111,100,101,147,3, - 0,0,115,2,0,0,0,12,8,122,28,83,111,117,114,99, - 101,76,111,97,100,101,114,46,95,99,97,99,104,101,95,98, - 121,116,101,99,111,100,101,99,3,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,1,0,0,0,67,0,0,0, - 114,23,0,0,0,41,2,122,150,79,112,116,105,111,110,97, - 108,32,109,101,116,104,111,100,32,119,104,105,99,104,32,119, - 114,105,116,101,115,32,100,97,116,97,32,40,98,121,116,101, - 115,41,32,116,111,32,97,32,102,105,108,101,32,112,97,116, - 104,32,40,97,32,115,116,114,41,46,10,10,32,32,32,32, - 32,32,32,32,73,109,112,108,101,109,101,110,116,105,110,103, - 32,116,104,105,115,32,109,101,116,104,111,100,32,97,108,108, - 111,119,115,32,102,111,114,32,116,104,101,32,119,114,105,116, - 105,110,103,32,111,102,32,98,121,116,101,99,111,100,101,32, - 102,105,108,101,115,46,10,32,32,32,32,32,32,32,32,78, - 114,7,0,0,0,41,3,114,143,0,0,0,114,65,0,0, - 0,114,41,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,253,0,0,0,157,3,0,0,114,240, - 0,0,0,122,21,83,111,117,114,99,101,76,111,97,100,101, - 114,46,115,101,116,95,100,97,116,97,99,2,0,0,0,0, - 0,0,0,0,0,0,0,5,0,0,0,10,0,0,0,67, - 0,0,0,115,70,0,0,0,124,0,160,0,124,1,161,1, - 125,2,122,10,124,0,160,1,124,2,161,1,125,3,87,0, - 116,4,124,3,131,1,83,0,4,0,116,2,121,34,1,0, - 125,4,1,0,122,7,116,3,100,1,124,1,100,2,141,2, - 124,4,130,2,100,3,125,4,126,4,119,1,119,0,41,4, - 122,52,67,111,110,99,114,101,116,101,32,105,109,112,108,101, - 109,101,110,116,97,116,105,111,110,32,111,102,32,73,110,115, - 112,101,99,116,76,111,97,100,101,114,46,103,101,116,95,115, - 111,117,114,99,101,46,122,39,115,111,117,114,99,101,32,110, - 111,116,32,97,118,97,105,108,97,98,108,101,32,116,104,114, - 111,117,103,104,32,103,101,116,95,100,97,116,97,40,41,114, - 140,0,0,0,78,41,5,114,203,0,0,0,218,8,103,101, - 116,95,100,97,116,97,114,76,0,0,0,114,142,0,0,0, - 114,200,0,0,0,41,5,114,143,0,0,0,114,163,0,0, - 0,114,65,0,0,0,114,198,0,0,0,218,3,101,120,99, + 0,0,218,10,112,97,116,104,95,109,116,105,109,101,125,3, + 0,0,115,2,0,0,0,4,6,122,23,83,111,117,114,99, + 101,76,111,97,100,101,114,46,112,97,116,104,95,109,116,105, + 109,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,14,0,0,0, + 100,1,124,0,160,0,124,1,161,1,105,1,83,0,41,3, + 97,158,1,0,0,79,112,116,105,111,110,97,108,32,109,101, + 116,104,111,100,32,114,101,116,117,114,110,105,110,103,32,97, + 32,109,101,116,97,100,97,116,97,32,100,105,99,116,32,102, + 111,114,32,116,104,101,32,115,112,101,99,105,102,105,101,100, + 10,32,32,32,32,32,32,32,32,112,97,116,104,32,40,97, + 32,115,116,114,41,46,10,10,32,32,32,32,32,32,32,32, + 80,111,115,115,105,98,108,101,32,107,101,121,115,58,10,32, + 32,32,32,32,32,32,32,45,32,39,109,116,105,109,101,39, + 32,40,109,97,110,100,97,116,111,114,121,41,32,105,115,32, + 116,104,101,32,110,117,109,101,114,105,99,32,116,105,109,101, + 115,116,97,109,112,32,111,102,32,108,97,115,116,32,115,111, + 117,114,99,101,10,32,32,32,32,32,32,32,32,32,32,99, + 111,100,101,32,109,111,100,105,102,105,99,97,116,105,111,110, + 59,10,32,32,32,32,32,32,32,32,45,32,39,115,105,122, + 101,39,32,40,111,112,116,105,111,110,97,108,41,32,105,115, + 32,116,104,101,32,115,105,122,101,32,105,110,32,98,121,116, + 101,115,32,111,102,32,116,104,101,32,115,111,117,114,99,101, + 32,99,111,100,101,46,10,10,32,32,32,32,32,32,32,32, + 73,109,112,108,101,109,101,110,116,105,110,103,32,116,104,105, + 115,32,109,101,116,104,111,100,32,97,108,108,111,119,115,32, + 116,104,101,32,108,111,97,100,101,114,32,116,111,32,114,101, + 97,100,32,98,121,116,101,99,111,100,101,32,102,105,108,101, + 115,46,10,32,32,32,32,32,32,32,32,82,97,105,115,101, + 115,32,79,83,69,114,114,111,114,32,119,104,101,110,32,116, + 104,101,32,112,97,116,104,32,99,97,110,110,111,116,32,98, + 101,32,104,97,110,100,108,101,100,46,10,32,32,32,32,32, + 32,32,32,114,193,0,0,0,78,41,1,114,251,0,0,0, + 114,250,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,218,10,112,97,116,104,95,115,116,97,116,115, + 133,3,0,0,115,2,0,0,0,14,12,122,23,83,111,117, + 114,99,101,76,111,97,100,101,114,46,112,97,116,104,95,115, + 116,97,116,115,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,12,0, + 0,0,124,0,160,0,124,2,124,3,161,2,83,0,41,2, + 122,228,79,112,116,105,111,110,97,108,32,109,101,116,104,111, + 100,32,119,104,105,99,104,32,119,114,105,116,101,115,32,100, + 97,116,97,32,40,98,121,116,101,115,41,32,116,111,32,97, + 32,102,105,108,101,32,112,97,116,104,32,40,97,32,115,116, + 114,41,46,10,10,32,32,32,32,32,32,32,32,73,109,112, + 108,101,109,101,110,116,105,110,103,32,116,104,105,115,32,109, + 101,116,104,111,100,32,97,108,108,111,119,115,32,102,111,114, + 32,116,104,101,32,119,114,105,116,105,110,103,32,111,102,32, + 98,121,116,101,99,111,100,101,32,102,105,108,101,115,46,10, + 10,32,32,32,32,32,32,32,32,84,104,101,32,115,111,117, + 114,99,101,32,112,97,116,104,32,105,115,32,110,101,101,100, + 101,100,32,105,110,32,111,114,100,101,114,32,116,111,32,99, + 111,114,114,101,99,116,108,121,32,116,114,97,110,115,102,101, + 114,32,112,101,114,109,105,115,115,105,111,110,115,10,32,32, + 32,32,32,32,32,32,78,41,1,218,8,115,101,116,95,100, + 97,116,97,41,4,114,143,0,0,0,114,134,0,0,0,90, + 10,99,97,99,104,101,95,112,97,116,104,114,41,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,218, - 10,103,101,116,95,115,111,117,114,99,101,164,3,0,0,115, - 24,0,0,0,10,2,2,1,12,1,8,4,14,253,4,1, - 2,1,4,255,2,1,2,255,8,128,2,255,122,23,83,111, - 117,114,99,101,76,111,97,100,101,114,46,103,101,116,95,115, - 111,117,114,99,101,114,130,0,0,0,41,1,218,9,95,111, - 112,116,105,109,105,122,101,99,3,0,0,0,0,0,0,0, - 1,0,0,0,4,0,0,0,8,0,0,0,67,0,0,0, - 115,22,0,0,0,116,0,106,1,116,2,124,1,124,2,100, - 1,100,2,124,3,100,3,141,6,83,0,41,5,122,130,82, - 101,116,117,114,110,32,116,104,101,32,99,111,100,101,32,111, - 98,106,101,99,116,32,99,111,109,112,105,108,101,100,32,102, - 114,111,109,32,115,111,117,114,99,101,46,10,10,32,32,32, - 32,32,32,32,32,84,104,101,32,39,100,97,116,97,39,32, - 97,114,103,117,109,101,110,116,32,99,97,110,32,98,101,32, - 97,110,121,32,111,98,106,101,99,116,32,116,121,112,101,32, - 116,104,97,116,32,99,111,109,112,105,108,101,40,41,32,115, - 117,112,112,111,114,116,115,46,10,32,32,32,32,32,32,32, - 32,114,243,0,0,0,84,41,2,218,12,100,111,110,116,95, - 105,110,104,101,114,105,116,114,108,0,0,0,78,41,3,114, - 159,0,0,0,114,242,0,0,0,218,7,99,111,109,112,105, - 108,101,41,4,114,143,0,0,0,114,41,0,0,0,114,65, - 0,0,0,114,2,1,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,218,14,115,111,117,114,99,101,95, - 116,111,95,99,111,100,101,174,3,0,0,115,6,0,0,0, - 12,5,4,1,6,255,122,27,83,111,117,114,99,101,76,111, - 97,100,101,114,46,115,111,117,114,99,101,95,116,111,95,99, - 111,100,101,99,2,0,0,0,0,0,0,0,0,0,0,0, - 15,0,0,0,9,0,0,0,67,0,0,0,115,12,2,0, - 0,124,0,160,0,124,1,161,1,125,2,100,1,125,3,100, - 1,125,4,100,1,125,5,100,2,125,6,100,3,125,7,122, - 6,116,1,124,2,131,1,125,8,87,0,110,11,4,0,116, - 2,144,1,121,5,1,0,1,0,1,0,100,1,125,8,89, - 0,110,143,122,7,124,0,160,3,124,2,161,1,125,9,87, - 0,110,9,4,0,116,4,144,1,121,4,1,0,1,0,1, - 0,89,0,110,126,116,5,124,9,100,4,25,0,131,1,125, - 3,122,7,124,0,160,6,124,8,161,1,125,10,87,0,110, - 9,4,0,116,4,144,1,121,3,1,0,1,0,1,0,89, - 0,110,103,124,1,124,8,100,5,156,2,125,11,122,71,116, - 7,124,10,124,1,124,11,131,3,125,12,116,8,124,10,131, - 1,100,6,100,1,133,2,25,0,125,13,124,12,100,7,64, - 0,100,8,107,3,125,6,124,6,114,138,124,12,100,9,64, - 0,100,8,107,3,125,7,116,9,106,10,100,10,107,3,114, - 137,124,7,115,119,116,9,106,10,100,11,107,2,114,137,124, - 0,160,6,124,2,161,1,125,4,116,9,160,11,116,12,124, - 4,161,2,125,5,116,13,124,10,124,5,124,1,124,11,131, - 4,1,0,110,10,116,14,124,10,124,3,124,9,100,12,25, - 0,124,1,124,11,131,5,1,0,87,0,110,11,4,0,116, - 15,116,16,102,2,144,1,121,2,1,0,1,0,1,0,89, - 0,110,15,116,17,160,18,100,13,124,8,124,2,161,3,1, - 0,116,19,124,13,124,1,124,8,124,2,100,14,141,4,83, - 0,124,4,100,1,117,0,114,185,124,0,160,6,124,2,161, - 1,125,4,124,0,160,20,124,4,124,2,161,2,125,14,116, - 17,160,18,100,15,124,2,161,2,1,0,116,21,106,22,115, - 255,124,8,100,1,117,1,114,255,124,3,100,1,117,1,114, - 255,124,6,114,226,124,5,100,1,117,0,114,219,116,9,160, - 11,124,4,161,1,125,5,116,23,124,14,124,5,124,7,131, - 3,125,10,110,8,116,24,124,14,124,3,116,25,124,4,131, - 1,131,3,125,10,122,10,124,0,160,26,124,2,124,8,124, - 10,161,3,1,0,87,0,124,14,83,0,4,0,116,2,144, - 1,121,1,1,0,1,0,1,0,89,0,124,14,83,0,124, - 14,83,0,119,0,119,0,119,0,119,0,119,0,41,16,122, - 190,67,111,110,99,114,101,116,101,32,105,109,112,108,101,109, - 101,110,116,97,116,105,111,110,32,111,102,32,73,110,115,112, - 101,99,116,76,111,97,100,101,114,46,103,101,116,95,99,111, - 100,101,46,10,10,32,32,32,32,32,32,32,32,82,101,97, - 100,105,110,103,32,111,102,32,98,121,116,101,99,111,100,101, - 32,114,101,113,117,105,114,101,115,32,112,97,116,104,95,115, - 116,97,116,115,32,116,111,32,98,101,32,105,109,112,108,101, - 109,101,110,116,101,100,46,32,84,111,32,119,114,105,116,101, - 10,32,32,32,32,32,32,32,32,98,121,116,101,99,111,100, - 101,44,32,115,101,116,95,100,97,116,97,32,109,117,115,116, - 32,97,108,115,111,32,98,101,32,105,109,112,108,101,109,101, - 110,116,101,100,46,10,10,32,32,32,32,32,32,32,32,78, - 70,84,114,193,0,0,0,114,183,0,0,0,114,169,0,0, - 0,114,3,0,0,0,114,0,0,0,0,114,44,0,0,0, - 90,5,110,101,118,101,114,90,6,97,108,119,97,121,115,218, - 4,115,105,122,101,122,13,123,125,32,109,97,116,99,104,101, - 115,32,123,125,41,3,114,141,0,0,0,114,132,0,0,0, - 114,134,0,0,0,122,19,99,111,100,101,32,111,98,106,101, - 99,116,32,102,114,111,109,32,123,125,41,27,114,203,0,0, - 0,114,121,0,0,0,114,107,0,0,0,114,252,0,0,0, - 114,76,0,0,0,114,33,0,0,0,114,255,0,0,0,114, - 176,0,0,0,218,10,109,101,109,111,114,121,118,105,101,119, - 114,187,0,0,0,90,21,99,104,101,99,107,95,104,97,115, - 104,95,98,97,115,101,100,95,112,121,99,115,114,181,0,0, - 0,218,17,95,82,65,87,95,77,65,71,73,67,95,78,85, - 77,66,69,82,114,182,0,0,0,114,180,0,0,0,114,142, - 0,0,0,114,174,0,0,0,114,159,0,0,0,114,173,0, - 0,0,114,189,0,0,0,114,5,1,0,0,114,15,0,0, - 0,218,19,100,111,110,116,95,119,114,105,116,101,95,98,121, - 116,101,99,111,100,101,114,195,0,0,0,114,194,0,0,0, - 114,4,0,0,0,114,254,0,0,0,41,15,114,143,0,0, - 0,114,163,0,0,0,114,134,0,0,0,114,178,0,0,0, - 114,198,0,0,0,114,181,0,0,0,90,10,104,97,115,104, - 95,98,97,115,101,100,90,12,99,104,101,99,107,95,115,111, - 117,114,99,101,114,132,0,0,0,218,2,115,116,114,41,0, - 0,0,114,175,0,0,0,114,16,0,0,0,90,10,98,121, - 116,101,115,95,100,97,116,97,90,11,99,111,100,101,95,111, - 98,106,101,99,116,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,241,0,0,0,182,3,0,0,115,168,0, - 0,0,10,7,4,1,4,1,4,1,4,1,4,1,2,1, - 12,1,14,1,8,1,2,2,14,1,14,1,4,1,12,2, - 2,1,14,1,14,1,4,1,2,3,2,1,6,254,2,4, - 12,1,16,1,12,1,4,1,12,1,10,1,2,1,2,255, - 8,2,2,254,10,3,4,1,2,1,2,1,4,254,8,4, - 2,1,4,255,2,128,2,3,2,1,2,1,6,1,2,1, - 2,1,4,251,4,128,18,7,4,1,8,2,2,1,4,255, + 15,95,99,97,99,104,101,95,98,121,116,101,99,111,100,101, + 147,3,0,0,115,2,0,0,0,12,8,122,28,83,111,117, + 114,99,101,76,111,97,100,101,114,46,95,99,97,99,104,101, + 95,98,121,116,101,99,111,100,101,99,3,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,1,0,0,0,67,0, + 0,0,114,23,0,0,0,41,2,122,150,79,112,116,105,111, + 110,97,108,32,109,101,116,104,111,100,32,119,104,105,99,104, + 32,119,114,105,116,101,115,32,100,97,116,97,32,40,98,121, + 116,101,115,41,32,116,111,32,97,32,102,105,108,101,32,112, + 97,116,104,32,40,97,32,115,116,114,41,46,10,10,32,32, + 32,32,32,32,32,32,73,109,112,108,101,109,101,110,116,105, + 110,103,32,116,104,105,115,32,109,101,116,104,111,100,32,97, + 108,108,111,119,115,32,102,111,114,32,116,104,101,32,119,114, + 105,116,105,110,103,32,111,102,32,98,121,116,101,99,111,100, + 101,32,102,105,108,101,115,46,10,32,32,32,32,32,32,32, + 32,78,114,7,0,0,0,41,3,114,143,0,0,0,114,65, + 0,0,0,114,41,0,0,0,114,7,0,0,0,114,7,0, + 0,0,114,8,0,0,0,114,253,0,0,0,157,3,0,0, + 114,240,0,0,0,122,21,83,111,117,114,99,101,76,111,97, + 100,101,114,46,115,101,116,95,100,97,116,97,99,2,0,0, + 0,0,0,0,0,0,0,0,0,5,0,0,0,10,0,0, + 0,67,0,0,0,115,70,0,0,0,124,0,160,0,124,1, + 161,1,125,2,122,10,124,0,160,1,124,2,161,1,125,3, + 87,0,116,4,124,3,131,1,83,0,4,0,116,2,121,34, + 1,0,125,4,1,0,122,7,116,3,100,1,124,1,100,2, + 141,2,124,4,130,2,100,3,125,4,126,4,119,1,119,0, + 41,4,122,52,67,111,110,99,114,101,116,101,32,105,109,112, + 108,101,109,101,110,116,97,116,105,111,110,32,111,102,32,73, + 110,115,112,101,99,116,76,111,97,100,101,114,46,103,101,116, + 95,115,111,117,114,99,101,46,122,39,115,111,117,114,99,101, + 32,110,111,116,32,97,118,97,105,108,97,98,108,101,32,116, + 104,114,111,117,103,104,32,103,101,116,95,100,97,116,97,40, + 41,114,140,0,0,0,78,41,5,114,203,0,0,0,218,8, + 103,101,116,95,100,97,116,97,114,76,0,0,0,114,142,0, + 0,0,114,200,0,0,0,41,5,114,143,0,0,0,114,163, + 0,0,0,114,65,0,0,0,114,198,0,0,0,218,3,101, + 120,99,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,218,10,103,101,116,95,115,111,117,114,99,101,164,3,0, + 0,115,24,0,0,0,10,2,2,1,12,1,8,4,14,253, + 4,1,2,1,4,255,2,1,2,255,8,128,2,255,122,23, + 83,111,117,114,99,101,76,111,97,100,101,114,46,103,101,116, + 95,115,111,117,114,99,101,114,130,0,0,0,41,1,218,9, + 95,111,112,116,105,109,105,122,101,99,3,0,0,0,0,0, + 0,0,1,0,0,0,4,0,0,0,8,0,0,0,67,0, + 0,0,115,22,0,0,0,116,0,106,1,116,2,124,1,124, + 2,100,1,100,2,124,3,100,3,141,6,83,0,41,5,122, + 130,82,101,116,117,114,110,32,116,104,101,32,99,111,100,101, + 32,111,98,106,101,99,116,32,99,111,109,112,105,108,101,100, + 32,102,114,111,109,32,115,111,117,114,99,101,46,10,10,32, + 32,32,32,32,32,32,32,84,104,101,32,39,100,97,116,97, + 39,32,97,114,103,117,109,101,110,116,32,99,97,110,32,98, + 101,32,97,110,121,32,111,98,106,101,99,116,32,116,121,112, + 101,32,116,104,97,116,32,99,111,109,112,105,108,101,40,41, + 32,115,117,112,112,111,114,116,115,46,10,32,32,32,32,32, + 32,32,32,114,243,0,0,0,84,41,2,218,12,100,111,110, + 116,95,105,110,104,101,114,105,116,114,108,0,0,0,78,41, + 3,114,159,0,0,0,114,242,0,0,0,218,7,99,111,109, + 112,105,108,101,41,4,114,143,0,0,0,114,41,0,0,0, + 114,65,0,0,0,114,2,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,218,14,115,111,117,114,99, + 101,95,116,111,95,99,111,100,101,174,3,0,0,115,6,0, + 0,0,12,5,4,1,6,255,122,27,83,111,117,114,99,101, + 76,111,97,100,101,114,46,115,111,117,114,99,101,95,116,111, + 95,99,111,100,101,99,2,0,0,0,0,0,0,0,0,0, + 0,0,15,0,0,0,9,0,0,0,67,0,0,0,115,2, + 2,0,0,124,0,160,0,124,1,161,1,125,2,100,1,125, + 3,100,1,125,4,100,1,125,5,100,2,125,6,100,3,125, + 7,122,6,116,1,124,2,131,1,125,8,87,0,110,11,4, + 0,116,2,121,32,1,0,1,0,1,0,100,1,125,8,89, + 0,110,144,119,0,122,7,124,0,160,3,124,2,161,1,125, + 9,87,0,110,9,4,0,116,4,121,49,1,0,1,0,1, + 0,89,0,110,127,119,0,116,5,124,9,100,4,25,0,131, + 1,125,3,122,7,124,0,160,6,124,8,161,1,125,10,87, + 0,110,9,4,0,116,4,121,72,1,0,1,0,1,0,89, + 0,110,104,119,0,124,1,124,8,100,5,156,2,125,11,122, + 71,116,7,124,10,124,1,124,11,131,3,125,12,116,8,124, + 10,131,1,100,6,100,1,133,2,25,0,125,13,124,12,100, + 7,64,0,100,8,107,3,125,6,124,6,114,138,124,12,100, + 9,64,0,100,8,107,3,125,7,116,9,106,10,100,10,107, + 3,114,137,124,7,115,119,116,9,106,10,100,11,107,2,114, + 137,124,0,160,6,124,2,161,1,125,4,116,9,160,11,116, + 12,124,4,161,2,125,5,116,13,124,10,124,5,124,1,124, + 11,131,4,1,0,110,10,116,14,124,10,124,3,124,9,100, + 12,25,0,124,1,124,11,131,5,1,0,87,0,110,11,4, + 0,116,15,116,16,102,2,121,160,1,0,1,0,1,0,89, + 0,110,16,119,0,116,17,160,18,100,13,124,8,124,2,161, + 3,1,0,116,19,124,13,124,1,124,8,124,2,100,14,141, + 4,83,0,124,4,100,1,117,0,114,185,124,0,160,6,124, + 2,161,1,125,4,124,0,160,20,124,4,124,2,161,2,125, + 14,116,17,160,18,100,15,124,2,161,2,1,0,116,21,106, + 22,115,255,124,8,100,1,117,1,114,255,124,3,100,1,117, + 1,114,255,124,6,114,226,124,5,100,1,117,0,114,219,116, + 9,160,11,124,4,161,1,125,5,116,23,124,14,124,5,124, + 7,131,3,125,10,110,8,116,24,124,14,124,3,116,25,124, + 4,131,1,131,3,125,10,122,10,124,0,160,26,124,2,124, + 8,124,10,161,3,1,0,87,0,124,14,83,0,4,0,116, + 2,121,254,1,0,1,0,1,0,89,0,124,14,83,0,119, + 0,124,14,83,0,41,16,122,190,67,111,110,99,114,101,116, + 101,32,105,109,112,108,101,109,101,110,116,97,116,105,111,110, + 32,111,102,32,73,110,115,112,101,99,116,76,111,97,100,101, + 114,46,103,101,116,95,99,111,100,101,46,10,10,32,32,32, + 32,32,32,32,32,82,101,97,100,105,110,103,32,111,102,32, + 98,121,116,101,99,111,100,101,32,114,101,113,117,105,114,101, + 115,32,112,97,116,104,95,115,116,97,116,115,32,116,111,32, + 98,101,32,105,109,112,108,101,109,101,110,116,101,100,46,32, + 84,111,32,119,114,105,116,101,10,32,32,32,32,32,32,32, + 32,98,121,116,101,99,111,100,101,44,32,115,101,116,95,100, + 97,116,97,32,109,117,115,116,32,97,108,115,111,32,98,101, + 32,105,109,112,108,101,109,101,110,116,101,100,46,10,10,32, + 32,32,32,32,32,32,32,78,70,84,114,193,0,0,0,114, + 183,0,0,0,114,169,0,0,0,114,3,0,0,0,114,0, + 0,0,0,114,44,0,0,0,90,5,110,101,118,101,114,90, + 6,97,108,119,97,121,115,218,4,115,105,122,101,122,13,123, + 125,32,109,97,116,99,104,101,115,32,123,125,41,3,114,141, + 0,0,0,114,132,0,0,0,114,134,0,0,0,122,19,99, + 111,100,101,32,111,98,106,101,99,116,32,102,114,111,109,32, + 123,125,41,27,114,203,0,0,0,114,121,0,0,0,114,107, + 0,0,0,114,252,0,0,0,114,76,0,0,0,114,33,0, + 0,0,114,255,0,0,0,114,176,0,0,0,218,10,109,101, + 109,111,114,121,118,105,101,119,114,187,0,0,0,90,21,99, + 104,101,99,107,95,104,97,115,104,95,98,97,115,101,100,95, + 112,121,99,115,114,181,0,0,0,218,17,95,82,65,87,95, + 77,65,71,73,67,95,78,85,77,66,69,82,114,182,0,0, + 0,114,180,0,0,0,114,142,0,0,0,114,174,0,0,0, + 114,159,0,0,0,114,173,0,0,0,114,189,0,0,0,114, + 5,1,0,0,114,15,0,0,0,218,19,100,111,110,116,95, + 119,114,105,116,101,95,98,121,116,101,99,111,100,101,114,195, + 0,0,0,114,194,0,0,0,114,4,0,0,0,114,254,0, + 0,0,41,15,114,143,0,0,0,114,163,0,0,0,114,134, + 0,0,0,114,178,0,0,0,114,198,0,0,0,114,181,0, + 0,0,90,10,104,97,115,104,95,98,97,115,101,100,90,12, + 99,104,101,99,107,95,115,111,117,114,99,101,114,132,0,0, + 0,218,2,115,116,114,41,0,0,0,114,175,0,0,0,114, + 16,0,0,0,90,10,98,121,116,101,115,95,100,97,116,97, + 90,11,99,111,100,101,95,111,98,106,101,99,116,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,0, + 0,182,3,0,0,115,170,0,0,0,10,7,4,1,4,1, + 4,1,4,1,4,1,2,1,12,1,12,1,8,1,2,255, + 2,3,14,1,12,1,4,1,2,255,12,3,2,1,14,1, + 12,1,4,1,2,255,2,4,2,1,6,254,2,4,12,1, + 16,1,12,1,4,1,12,1,10,1,2,1,2,255,8,2, + 2,254,10,3,4,1,2,1,2,1,4,254,8,4,2,1, + 4,255,2,128,2,3,2,1,2,1,6,1,2,1,2,1, + 4,251,4,128,16,7,4,1,2,255,8,3,2,1,4,255, 6,2,2,1,2,1,6,254,8,3,10,1,12,1,12,1, 14,1,6,1,2,255,4,2,8,1,10,1,14,1,6,2, - 6,1,4,255,2,2,16,1,4,3,14,254,2,1,8,1, - 2,254,2,233,2,225,2,250,2,251,122,21,83,111,117,114, - 99,101,76,111,97,100,101,114,46,103,101,116,95,99,111,100, - 101,78,41,10,114,150,0,0,0,114,149,0,0,0,114,151, - 0,0,0,114,251,0,0,0,114,252,0,0,0,114,254,0, - 0,0,114,253,0,0,0,114,1,1,0,0,114,5,1,0, - 0,114,241,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,249,0,0,0,123, - 3,0,0,115,16,0,0,0,8,0,8,2,8,8,8,14, - 8,10,8,7,14,10,12,8,114,249,0,0,0,99,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, - 0,0,0,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,100,6,100,7,132,0,90,6,101, - 7,135,0,102,1,100,8,100,9,132,8,131,1,90,8,101, - 7,100,10,100,11,132,0,131,1,90,9,100,12,100,13,132, - 0,90,10,101,7,100,14,100,15,132,0,131,1,90,11,135, - 0,4,0,90,12,83,0,41,16,218,10,70,105,108,101,76, - 111,97,100,101,114,122,103,66,97,115,101,32,102,105,108,101, - 32,108,111,97,100,101,114,32,99,108,97,115,115,32,119,104, - 105,99,104,32,105,109,112,108,101,109,101,110,116,115,32,116, - 104,101,32,108,111,97,100,101,114,32,112,114,111,116,111,99, - 111,108,32,109,101,116,104,111,100,115,32,116,104,97,116,10, - 32,32,32,32,114,101,113,117,105,114,101,32,102,105,108,101, - 32,115,121,115,116,101,109,32,117,115,97,103,101,46,99,3, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2, - 0,0,0,67,0,0,0,115,16,0,0,0,124,1,124,0, - 95,0,124,2,124,0,95,1,100,1,83,0,41,2,122,75, - 67,97,99,104,101,32,116,104,101,32,109,111,100,117,108,101, - 32,110,97,109,101,32,97,110,100,32,116,104,101,32,112,97, - 116,104,32,116,111,32,116,104,101,32,102,105,108,101,32,102, - 111,117,110,100,32,98,121,32,116,104,101,10,32,32,32,32, - 32,32,32,32,102,105,110,100,101,114,46,78,114,183,0,0, - 0,41,3,114,143,0,0,0,114,163,0,0,0,114,65,0, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,236,0,0,0,16,4,0,0,115,4,0,0,0,6, - 3,10,1,122,19,70,105,108,101,76,111,97,100,101,114,46, - 95,95,105,110,105,116,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,243,24,0,0,0,124,0,106,0,124,1,106,0,107,2, - 111,11,124,0,106,1,124,1,106,1,107,2,83,0,114,69, - 0,0,0,169,2,218,9,95,95,99,108,97,115,115,95,95, - 114,156,0,0,0,169,2,114,143,0,0,0,90,5,111,116, - 104,101,114,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,218,6,95,95,101,113,95,95,22,4,0,0,243,6, - 0,0,0,12,1,10,1,2,255,122,17,70,105,108,101,76, - 111,97,100,101,114,46,95,95,101,113,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,20,0,0,0,116,0,124,0,106,1, - 131,1,116,0,124,0,106,2,131,1,65,0,83,0,114,69, - 0,0,0,169,3,218,4,104,97,115,104,114,141,0,0,0, - 114,65,0,0,0,169,1,114,143,0,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,218,8,95,95,104, - 97,115,104,95,95,26,4,0,0,243,2,0,0,0,20,1, - 122,19,70,105,108,101,76,111,97,100,101,114,46,95,95,104, - 97,115,104,95,95,99,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,3,0,0,0,3,0,0,0,115,16, - 0,0,0,116,0,116,1,124,0,131,2,160,2,124,1,161, - 1,83,0,41,2,122,100,76,111,97,100,32,97,32,109,111, - 100,117,108,101,32,102,114,111,109,32,97,32,102,105,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,78,41,3,218,5, - 115,117,112,101,114,114,11,1,0,0,114,248,0,0,0,114, - 247,0,0,0,169,1,114,14,1,0,0,114,7,0,0,0, - 114,8,0,0,0,114,248,0,0,0,29,4,0,0,115,2, - 0,0,0,16,10,122,22,70,105,108,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,2,0,0,0,1,0, - 0,0,67,0,0,0,243,6,0,0,0,124,0,106,0,83, - 0,169,2,122,58,82,101,116,117,114,110,32,116,104,101,32, - 112,97,116,104,32,116,111,32,116,104,101,32,115,111,117,114, - 99,101,32,102,105,108,101,32,97,115,32,102,111,117,110,100, - 32,98,121,32,116,104,101,32,102,105,110,100,101,114,46,78, - 114,71,0,0,0,114,247,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,203,0,0,0,41,4, - 0,0,243,2,0,0,0,6,3,122,23,70,105,108,101,76, - 111,97,100,101,114,46,103,101,116,95,102,105,108,101,110,97, - 109,101,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,128,0,0,0, - 116,0,124,0,116,1,116,2,102,2,131,2,114,36,116,3, - 160,4,116,5,124,1,131,1,161,1,143,12,125,2,124,2, - 160,6,161,0,87,0,2,0,100,1,4,0,4,0,131,3, - 1,0,83,0,49,0,115,29,119,1,1,0,1,0,1,0, - 89,0,1,0,100,1,83,0,116,3,160,7,124,1,100,2, - 161,2,143,12,125,2,124,2,160,6,161,0,87,0,2,0, - 100,1,4,0,4,0,131,3,1,0,83,0,49,0,115,57, - 119,1,1,0,1,0,1,0,89,0,1,0,100,1,83,0, - 41,3,122,39,82,101,116,117,114,110,32,116,104,101,32,100, - 97,116,97,32,102,114,111,109,32,112,97,116,104,32,97,115, - 32,114,97,119,32,98,121,116,101,115,46,78,218,1,114,41, - 8,114,185,0,0,0,114,249,0,0,0,218,19,69,120,116, - 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, - 114,91,0,0,0,90,9,111,112,101,110,95,99,111,100,101, - 114,109,0,0,0,90,4,114,101,97,100,114,92,0,0,0, - 41,3,114,143,0,0,0,114,65,0,0,0,114,94,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,255,0,0,0,46,4,0,0,115,14,0,0,0,14,2, - 16,1,6,1,36,255,14,3,6,1,36,255,122,19,70,105, - 108,101,76,111,97,100,101,114,46,103,101,116,95,100,97,116, - 97,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,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,218,17,105,109,112, - 111,114,116,108,105,98,46,114,101,97,100,101,114,115,114,31, - 1,0,0,41,3,114,143,0,0,0,114,244,0,0,0,114, - 31,1,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,218,19,103,101,116,95,114,101,115,111,117,114,99, - 101,95,114,101,97,100,101,114,55,4,0,0,115,4,0,0, - 0,12,2,8,1,122,30,70,105,108,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,41,13,114,150,0,0,0,114,149,0,0, - 0,114,151,0,0,0,114,152,0,0,0,114,236,0,0,0, - 114,16,1,0,0,114,22,1,0,0,114,160,0,0,0,114, - 248,0,0,0,114,203,0,0,0,114,255,0,0,0,114,33, - 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,25,1,0, - 0,114,8,0,0,0,114,11,1,0,0,11,4,0,0,115, - 24,0,0,0,8,0,4,2,8,3,8,6,8,4,2,3, - 14,1,2,11,10,1,8,4,2,9,18,1,114,11,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,46,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,100,6,100,7,156, - 1,100,8,100,9,132,2,90,6,100,10,83,0,41,11,218, - 16,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101, - 114,122,62,67,111,110,99,114,101,116,101,32,105,109,112,108, - 101,109,101,110,116,97,116,105,111,110,32,111,102,32,83,111, - 117,114,99,101,76,111,97,100,101,114,32,117,115,105,110,103, - 32,116,104,101,32,102,105,108,101,32,115,121,115,116,101,109, - 46,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,22,0,0,0,116, - 0,124,1,131,1,125,2,124,2,106,1,124,2,106,2,100, - 1,156,2,83,0,41,3,122,33,82,101,116,117,114,110,32, - 116,104,101,32,109,101,116,97,100,97,116,97,32,102,111,114, - 32,116,104,101,32,112,97,116,104,46,41,2,114,193,0,0, - 0,114,6,1,0,0,78,41,3,114,75,0,0,0,218,8, - 115,116,95,109,116,105,109,101,90,7,115,116,95,115,105,122, - 101,41,3,114,143,0,0,0,114,65,0,0,0,114,10,1, - 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, - 0,114,252,0,0,0,65,4,0,0,115,4,0,0,0,8, - 2,14,1,122,27,83,111,117,114,99,101,70,105,108,101,76, - 111,97,100,101,114,46,112,97,116,104,95,115,116,97,116,115, - 99,4,0,0,0,0,0,0,0,0,0,0,0,5,0,0, - 0,5,0,0,0,67,0,0,0,115,24,0,0,0,116,0, - 124,1,131,1,125,4,124,0,106,1,124,2,124,3,124,4, - 100,1,141,3,83,0,41,2,78,169,1,218,5,95,109,111, - 100,101,41,2,114,139,0,0,0,114,253,0,0,0,41,5, - 114,143,0,0,0,114,134,0,0,0,114,132,0,0,0,114, - 41,0,0,0,114,78,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,254,0,0,0,70,4,0, - 0,115,4,0,0,0,8,2,16,1,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,87,0,0, - 0,114,36,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,31,116,1,124,4,131,1,115,31, - 116,0,124,4,131,1,92,2,125,4,125,7,124,6,160,2, - 124,7,161,1,1,0,124,4,114,31,116,1,124,4,131,1, - 114,14,116,3,124,6,131,1,68,0,93,48,125,7,116,4, - 124,4,124,7,131,2,125,4,122,7,116,5,160,6,124,4, - 161,1,1,0,87,0,113,35,4,0,116,7,121,58,1,0, - 1,0,1,0,89,0,113,35,4,0,116,8,121,126,1,0, - 125,8,1,0,122,15,116,9,160,10,100,1,124,4,124,8, - 161,3,1,0,87,0,89,0,100,2,125,8,126,8,1,0, - 100,2,83,0,100,2,125,8,126,8,119,1,122,15,116,11, - 124,1,124,2,124,3,131,3,1,0,116,9,160,10,100,3, - 124,1,161,2,1,0,87,0,100,2,83,0,4,0,116,8, - 121,125,1,0,125,8,1,0,122,14,116,9,160,10,100,1, - 124,1,124,8,161,3,1,0,87,0,89,0,100,2,125,8, - 126,8,100,2,83,0,100,2,125,8,126,8,119,1,119,0, - 119,0,41,4,122,27,87,114,105,116,101,32,98,121,116,101, - 115,32,100,97,116,97,32,116,111,32,97,32,102,105,108,101, - 46,122,27,99,111,117,108,100,32,110,111,116,32,99,114,101, - 97,116,101,32,123,33,114,125,58,32,123,33,114,125,78,122, - 12,99,114,101,97,116,101,100,32,123,33,114,125,41,12,114, - 74,0,0,0,114,83,0,0,0,114,61,0,0,0,218,8, - 114,101,118,101,114,115,101,100,114,67,0,0,0,114,18,0, - 0,0,90,5,109,107,100,105,114,218,15,70,105,108,101,69, - 120,105,115,116,115,69,114,114,111,114,114,76,0,0,0,114, - 159,0,0,0,114,173,0,0,0,114,95,0,0,0,41,9, - 114,143,0,0,0,114,65,0,0,0,114,41,0,0,0,114, - 37,1,0,0,218,6,112,97,114,101,110,116,114,120,0,0, - 0,114,63,0,0,0,114,68,0,0,0,114,0,1,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 253,0,0,0,75,4,0,0,115,56,0,0,0,12,2,4, - 1,12,2,12,1,10,1,12,254,12,4,10,1,2,1,14, - 1,12,1,4,2,14,1,6,3,4,1,4,255,16,2,8, - 128,2,1,12,1,18,1,14,1,8,2,2,1,18,255,8, - 128,2,254,2,247,122,25,83,111,117,114,99,101,70,105,108, - 101,76,111,97,100,101,114,46,115,101,116,95,100,97,116,97, - 78,41,7,114,150,0,0,0,114,149,0,0,0,114,151,0, - 0,0,114,152,0,0,0,114,252,0,0,0,114,254,0,0, - 0,114,253,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,34,1,0,0,61, - 4,0,0,115,10,0,0,0,8,0,4,2,8,2,8,5, - 18,5,114,34,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, + 6,1,4,255,2,2,16,1,4,3,12,254,2,1,4,1, + 2,254,4,2,122,21,83,111,117,114,99,101,76,111,97,100, + 101,114,46,103,101,116,95,99,111,100,101,78,41,10,114,150, + 0,0,0,114,149,0,0,0,114,151,0,0,0,114,251,0, + 0,0,114,252,0,0,0,114,254,0,0,0,114,253,0,0, + 0,114,1,1,0,0,114,5,1,0,0,114,241,0,0,0, + 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,249,0,0,0,123,3,0,0,115,16,0, + 0,0,8,0,8,2,8,8,8,14,8,10,8,7,14,10, + 12,8,114,249,0,0,0,99,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,0,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,100,6,83,0,41,7,218,20,83,111,117,114,99,101,108, - 101,115,115,70,105,108,101,76,111,97,100,101,114,122,45,76, - 111,97,100,101,114,32,119,104,105,99,104,32,104,97,110,100, - 108,101,115,32,115,111,117,114,99,101,108,101,115,115,32,102, - 105,108,101,32,105,109,112,111,114,116,115,46,99,2,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,5,0,0, - 0,67,0,0,0,115,68,0,0,0,124,0,160,0,124,1, - 161,1,125,2,124,0,160,1,124,2,161,1,125,3,124,1, - 124,2,100,1,156,2,125,4,116,2,124,3,124,1,124,4, - 131,3,1,0,116,3,116,4,124,3,131,1,100,2,100,0, - 133,2,25,0,124,1,124,2,100,3,141,3,83,0,41,4, - 78,114,183,0,0,0,114,169,0,0,0,41,2,114,141,0, - 0,0,114,132,0,0,0,41,5,114,203,0,0,0,114,255, - 0,0,0,114,176,0,0,0,114,189,0,0,0,114,7,1, - 0,0,41,5,114,143,0,0,0,114,163,0,0,0,114,65, - 0,0,0,114,41,0,0,0,114,175,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,241,0,0, - 0,110,4,0,0,115,22,0,0,0,10,1,10,1,2,4, - 2,1,6,254,12,4,2,1,14,1,2,1,2,1,6,253, - 122,29,83,111,117,114,99,101,108,101,115,115,70,105,108,101, - 76,111,97,100,101,114,46,103,101,116,95,99,111,100,101,99, + 5,100,6,100,7,132,0,90,6,101,7,135,0,102,1,100, + 8,100,9,132,8,131,1,90,8,101,7,100,10,100,11,132, + 0,131,1,90,9,100,12,100,13,132,0,90,10,101,7,100, + 14,100,15,132,0,131,1,90,11,135,0,4,0,90,12,83, + 0,41,16,218,10,70,105,108,101,76,111,97,100,101,114,122, + 103,66,97,115,101,32,102,105,108,101,32,108,111,97,100,101, + 114,32,99,108,97,115,115,32,119,104,105,99,104,32,105,109, + 112,108,101,109,101,110,116,115,32,116,104,101,32,108,111,97, + 100,101,114,32,112,114,111,116,111,99,111,108,32,109,101,116, + 104,111,100,115,32,116,104,97,116,10,32,32,32,32,114,101, + 113,117,105,114,101,32,102,105,108,101,32,115,121,115,116,101, + 109,32,117,115,97,103,101,46,99,3,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,2,0,0,0,67,0,0, + 0,115,16,0,0,0,124,1,124,0,95,0,124,2,124,0, + 95,1,100,1,83,0,41,2,122,75,67,97,99,104,101,32, + 116,104,101,32,109,111,100,117,108,101,32,110,97,109,101,32, + 97,110,100,32,116,104,101,32,112,97,116,104,32,116,111,32, + 116,104,101,32,102,105,108,101,32,102,111,117,110,100,32,98, + 121,32,116,104,101,10,32,32,32,32,32,32,32,32,102,105, + 110,100,101,114,46,78,114,183,0,0,0,41,3,114,143,0, + 0,0,114,163,0,0,0,114,65,0,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,236,0,0,0, + 16,4,0,0,115,4,0,0,0,6,3,10,1,122,19,70, + 105,108,101,76,111,97,100,101,114,46,95,95,105,110,105,116, + 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,243,24,0,0,0, + 124,0,106,0,124,1,106,0,107,2,111,11,124,0,106,1, + 124,1,106,1,107,2,83,0,114,69,0,0,0,169,2,218, + 9,95,95,99,108,97,115,115,95,95,114,156,0,0,0,169, + 2,114,143,0,0,0,90,5,111,116,104,101,114,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,218,6,95,95, + 101,113,95,95,22,4,0,0,243,6,0,0,0,12,1,10, + 1,2,255,122,17,70,105,108,101,76,111,97,100,101,114,46, + 95,95,101,113,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, + 20,0,0,0,116,0,124,0,106,1,131,1,116,0,124,0, + 106,2,131,1,65,0,83,0,114,69,0,0,0,169,3,218, + 4,104,97,115,104,114,141,0,0,0,114,65,0,0,0,169, + 1,114,143,0,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,218,8,95,95,104,97,115,104,95,95,26, + 4,0,0,243,2,0,0,0,20,1,122,19,70,105,108,101, + 76,111,97,100,101,114,46,95,95,104,97,115,104,95,95,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,23,0,0,0,41,2,122, - 39,82,101,116,117,114,110,32,78,111,110,101,32,97,115,32, - 116,104,101,114,101,32,105,115,32,110,111,32,115,111,117,114, - 99,101,32,99,111,100,101,46,78,114,7,0,0,0,114,247, + 3,0,0,0,3,0,0,0,115,16,0,0,0,116,0,116, + 1,124,0,131,2,160,2,124,1,161,1,83,0,41,2,122, + 100,76,111,97,100,32,97,32,109,111,100,117,108,101,32,102, + 114,111,109,32,97,32,102,105,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,78,41,3,218,5,115,117,112,101,114,114, + 11,1,0,0,114,248,0,0,0,114,247,0,0,0,169,1, + 114,14,1,0,0,114,7,0,0,0,114,8,0,0,0,114, + 248,0,0,0,29,4,0,0,115,2,0,0,0,16,10,122, + 22,70,105,108,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,2,0,0,0,1,0,0,0,67,0,0,0, + 243,6,0,0,0,124,0,106,0,83,0,169,2,122,58,82, + 101,116,117,114,110,32,116,104,101,32,112,97,116,104,32,116, + 111,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108, + 101,32,97,115,32,102,111,117,110,100,32,98,121,32,116,104, + 101,32,102,105,110,100,101,114,46,78,114,71,0,0,0,114, + 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,203,0,0,0,41,4,0,0,243,2,0,0, + 0,6,3,122,23,70,105,108,101,76,111,97,100,101,114,46, + 103,101,116,95,102,105,108,101,110,97,109,101,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,128,0,0,0,116,0,124,0,116,1, + 116,2,102,2,131,2,114,36,116,3,160,4,116,5,124,1, + 131,1,161,1,143,12,125,2,124,2,160,6,161,0,87,0, + 2,0,100,1,4,0,4,0,131,3,1,0,83,0,49,0, + 115,29,119,1,1,0,1,0,1,0,89,0,1,0,100,1, + 83,0,116,3,160,7,124,1,100,2,161,2,143,12,125,2, + 124,2,160,6,161,0,87,0,2,0,100,1,4,0,4,0, + 131,3,1,0,83,0,49,0,115,57,119,1,1,0,1,0, + 1,0,89,0,1,0,100,1,83,0,41,3,122,39,82,101, + 116,117,114,110,32,116,104,101,32,100,97,116,97,32,102,114, + 111,109,32,112,97,116,104,32,97,115,32,114,97,119,32,98, + 121,116,101,115,46,78,218,1,114,41,8,114,185,0,0,0, + 114,249,0,0,0,218,19,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,114,91,0,0,0,90, + 9,111,112,101,110,95,99,111,100,101,114,109,0,0,0,90, + 4,114,101,97,100,114,92,0,0,0,41,3,114,143,0,0, + 0,114,65,0,0,0,114,94,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,255,0,0,0,46, + 4,0,0,115,14,0,0,0,14,2,16,1,6,1,36,255, + 14,3,6,1,36,255,122,19,70,105,108,101,76,111,97,100, + 101,114,46,103,101,116,95,100,97,116,97,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,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,218,17,105,109,112,111,114,116,108,105,98, + 46,114,101,97,100,101,114,115,114,31,1,0,0,41,3,114, + 143,0,0,0,114,244,0,0,0,114,31,1,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,218,19,103, + 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, + 101,114,55,4,0,0,115,4,0,0,0,12,2,8,1,122, + 30,70,105,108,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,41, + 13,114,150,0,0,0,114,149,0,0,0,114,151,0,0,0, + 114,152,0,0,0,114,236,0,0,0,114,16,1,0,0,114, + 22,1,0,0,114,160,0,0,0,114,248,0,0,0,114,203, + 0,0,0,114,255,0,0,0,114,33,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,25,1,0,0,114,8,0,0,0, + 114,11,1,0,0,11,4,0,0,115,24,0,0,0,8,0, + 4,2,8,3,8,6,8,4,2,3,14,1,2,11,10,1, + 8,4,2,9,18,1,114,11,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,46,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,100,6,100,7,156,1,100,8,100,9,132, + 2,90,6,100,10,83,0,41,11,218,16,83,111,117,114,99, + 101,70,105,108,101,76,111,97,100,101,114,122,62,67,111,110, + 99,114,101,116,101,32,105,109,112,108,101,109,101,110,116,97, + 116,105,111,110,32,111,102,32,83,111,117,114,99,101,76,111, + 97,100,101,114,32,117,115,105,110,103,32,116,104,101,32,102, + 105,108,101,32,115,121,115,116,101,109,46,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,22,0,0,0,116,0,124,1,131,1,125, + 2,124,2,106,1,124,2,106,2,100,1,156,2,83,0,41, + 3,122,33,82,101,116,117,114,110,32,116,104,101,32,109,101, + 116,97,100,97,116,97,32,102,111,114,32,116,104,101,32,112, + 97,116,104,46,41,2,114,193,0,0,0,114,6,1,0,0, + 78,41,3,114,75,0,0,0,218,8,115,116,95,109,116,105, + 109,101,90,7,115,116,95,115,105,122,101,41,3,114,143,0, + 0,0,114,65,0,0,0,114,10,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,252,0,0,0, + 65,4,0,0,115,4,0,0,0,8,2,14,1,122,27,83, + 111,117,114,99,101,70,105,108,101,76,111,97,100,101,114,46, + 112,97,116,104,95,115,116,97,116,115,99,4,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,5,0,0,0,67, + 0,0,0,115,24,0,0,0,116,0,124,1,131,1,125,4, + 124,0,106,1,124,2,124,3,124,4,100,1,141,3,83,0, + 41,2,78,169,1,218,5,95,109,111,100,101,41,2,114,139, + 0,0,0,114,253,0,0,0,41,5,114,143,0,0,0,114, + 134,0,0,0,114,132,0,0,0,114,41,0,0,0,114,78, 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,1,1,0,0,126,4,0,0,114,24,0,0,0, - 122,31,83,111,117,114,99,101,108,101,115,115,70,105,108,101, - 76,111,97,100,101,114,46,103,101,116,95,115,111,117,114,99, - 101,78,41,6,114,150,0,0,0,114,149,0,0,0,114,151, - 0,0,0,114,152,0,0,0,114,241,0,0,0,114,1,1, - 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,41,1,0,0,106,4,0,0,115, - 8,0,0,0,8,0,4,2,8,2,12,16,114,41,1,0, + 0,0,114,254,0,0,0,70,4,0,0,115,4,0,0,0, + 8,2,16,1,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,87,0,0,0,114,36,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,31,116,1,124,4,131,1,115,31,116,0,124,4,131,1, + 92,2,125,4,125,7,124,6,160,2,124,7,161,1,1,0, + 124,4,114,31,116,1,124,4,131,1,114,14,116,3,124,6, + 131,1,68,0,93,49,125,7,116,4,124,4,124,7,131,2, + 125,4,122,7,116,5,160,6,124,4,161,1,1,0,87,0, + 113,35,4,0,116,7,121,58,1,0,1,0,1,0,89,0, + 113,35,4,0,116,8,121,84,1,0,125,8,1,0,122,15, + 116,9,160,10,100,1,124,4,124,8,161,3,1,0,87,0, + 89,0,100,2,125,8,126,8,1,0,100,2,83,0,100,2, + 125,8,126,8,119,1,119,0,122,15,116,11,124,1,124,2, + 124,3,131,3,1,0,116,9,160,10,100,3,124,1,161,2, + 1,0,87,0,100,2,83,0,4,0,116,8,121,126,1,0, + 125,8,1,0,122,14,116,9,160,10,100,1,124,1,124,8, + 161,3,1,0,87,0,89,0,100,2,125,8,126,8,100,2, + 83,0,100,2,125,8,126,8,119,1,119,0,41,4,122,27, + 87,114,105,116,101,32,98,121,116,101,115,32,100,97,116,97, + 32,116,111,32,97,32,102,105,108,101,46,122,27,99,111,117, + 108,100,32,110,111,116,32,99,114,101,97,116,101,32,123,33, + 114,125,58,32,123,33,114,125,78,122,12,99,114,101,97,116, + 101,100,32,123,33,114,125,41,12,114,74,0,0,0,114,83, + 0,0,0,114,61,0,0,0,218,8,114,101,118,101,114,115, + 101,100,114,67,0,0,0,114,18,0,0,0,90,5,109,107, + 100,105,114,218,15,70,105,108,101,69,120,105,115,116,115,69, + 114,114,111,114,114,76,0,0,0,114,159,0,0,0,114,173, + 0,0,0,114,95,0,0,0,41,9,114,143,0,0,0,114, + 65,0,0,0,114,41,0,0,0,114,37,1,0,0,218,6, + 112,97,114,101,110,116,114,120,0,0,0,114,63,0,0,0, + 114,68,0,0,0,114,0,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,253,0,0,0,75,4, + 0,0,115,56,0,0,0,12,2,4,1,12,2,12,1,10, + 1,12,254,12,4,10,1,2,1,14,1,12,1,4,2,14, + 1,6,3,4,1,4,255,16,2,8,128,2,251,2,6,12, + 1,18,1,14,1,8,2,2,1,18,255,8,128,2,254,122, + 25,83,111,117,114,99,101,70,105,108,101,76,111,97,100,101, + 114,46,115,101,116,95,100,97,116,97,78,41,7,114,150,0, + 0,0,114,149,0,0,0,114,151,0,0,0,114,152,0,0, + 0,114,252,0,0,0,114,254,0,0,0,114,253,0,0,0, + 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,34,1,0,0,61,4,0,0,115,10,0, + 0,0,8,0,4,2,8,2,8,5,18,5,114,34,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,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,90,5,100,6,100,7,132, - 0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,132, - 0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,132, - 0,90,10,100,16,100,17,132,0,90,11,101,12,100,18,100, - 19,132,0,131,1,90,13,100,20,83,0,41,21,114,30,1, - 0,0,122,93,76,111,97,100,101,114,32,102,111,114,32,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115, - 46,10,10,32,32,32,32,84,104,101,32,99,111,110,115,116, - 114,117,99,116,111,114,32,105,115,32,100,101,115,105,103,110, - 101,100,32,116,111,32,119,111,114,107,32,119,105,116,104,32, - 70,105,108,101,70,105,110,100,101,114,46,10,10,32,32,32, - 32,99,3,0,0,0,0,0,0,0,0,0,0,0,3,0, - 0,0,2,0,0,0,67,0,0,0,115,16,0,0,0,124, - 1,124,0,95,0,124,2,124,0,95,1,100,0,83,0,114, - 69,0,0,0,114,183,0,0,0,41,3,114,143,0,0,0, - 114,141,0,0,0,114,65,0,0,0,114,7,0,0,0,114, - 7,0,0,0,114,8,0,0,0,114,236,0,0,0,139,4, - 0,0,115,4,0,0,0,6,1,10,1,122,28,69,120,116, - 101,110,115,105,111,110,70,105,108,101,76,111,97,100,101,114, - 46,95,95,105,110,105,116,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,114,12,1,0,0,114,69,0,0,0,114,13,1,0, - 0,114,15,1,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,16,1,0,0,143,4,0,0,114,17, - 1,0,0,122,26,69,120,116,101,110,115,105,111,110,70,105, - 108,101,76,111,97,100,101,114,46,95,95,101,113,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,18,1,0,0,114,69,0, - 0,0,114,19,1,0,0,114,21,1,0,0,114,7,0,0, - 0,114,7,0,0,0,114,8,0,0,0,114,22,1,0,0, - 147,4,0,0,114,23,1,0,0,122,28,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,95, - 95,104,97,115,104,95,95,99,2,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,5,0,0,0,67,0,0,0, - 115,36,0,0,0,116,0,160,1,116,2,106,3,124,1,161, - 2,125,2,116,0,160,4,100,1,124,1,106,5,124,0,106, - 6,161,3,1,0,124,2,83,0,41,3,122,38,67,114,101, - 97,116,101,32,97,110,32,117,110,105,116,105,97,108,105,122, - 101,100,32,101,120,116,101,110,115,105,111,110,32,109,111,100, - 117,108,101,122,38,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,32,123,33,114,125,32,108,111,97,100,101, - 100,32,102,114,111,109,32,123,33,114,125,78,41,7,114,159, - 0,0,0,114,242,0,0,0,114,187,0,0,0,90,14,99, - 114,101,97,116,101,95,100,121,110,97,109,105,99,114,173,0, - 0,0,114,141,0,0,0,114,65,0,0,0,41,3,114,143, - 0,0,0,114,210,0,0,0,114,244,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,239,0,0, - 0,150,4,0,0,115,14,0,0,0,4,2,6,1,4,255, - 6,2,8,1,4,255,4,2,122,33,69,120,116,101,110,115, - 105,111,110,70,105,108,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,5,0,0,0, - 67,0,0,0,115,36,0,0,0,116,0,160,1,116,2,106, - 3,124,1,161,2,1,0,116,0,160,4,100,1,124,0,106, - 5,124,0,106,6,161,3,1,0,100,2,83,0,41,3,122, - 30,73,110,105,116,105,97,108,105,122,101,32,97,110,32,101, - 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,122, - 40,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, - 101,32,123,33,114,125,32,101,120,101,99,117,116,101,100,32, - 102,114,111,109,32,123,33,114,125,78,41,7,114,159,0,0, - 0,114,242,0,0,0,114,187,0,0,0,90,12,101,120,101, - 99,95,100,121,110,97,109,105,99,114,173,0,0,0,114,141, - 0,0,0,114,65,0,0,0,169,2,114,143,0,0,0,114, - 244,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,245,0,0,0,158,4,0,0,115,8,0,0, - 0,14,2,6,1,8,1,8,255,122,31,69,120,116,101,110, - 115,105,111,110,70,105,108,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,3, - 0,0,0,115,36,0,0,0,116,0,124,0,106,1,131,1, - 100,1,25,0,137,0,116,2,135,0,102,1,100,2,100,3, - 132,8,116,3,68,0,131,1,131,1,83,0,41,5,122,49, - 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,116, - 104,101,32,101,120,116,101,110,115,105,111,110,32,109,111,100, - 117,108,101,32,105,115,32,97,32,112,97,99,107,97,103,101, - 46,114,3,0,0,0,99,1,0,0,0,0,0,0,0,0, - 0,0,0,2,0,0,0,4,0,0,0,51,0,0,0,115, - 28,0,0,0,129,0,124,0,93,9,125,1,136,0,100,0, - 124,1,23,0,107,2,86,0,1,0,113,2,100,1,83,0, - 41,2,114,236,0,0,0,78,114,7,0,0,0,169,2,114, - 5,0,0,0,218,6,115,117,102,102,105,120,169,1,90,9, - 102,105,108,101,95,110,97,109,101,114,7,0,0,0,114,8, - 0,0,0,114,9,0,0,0,167,4,0,0,115,8,0,0, - 0,2,128,4,0,2,1,20,255,122,49,69,120,116,101,110, - 115,105,111,110,70,105,108,101,76,111,97,100,101,114,46,105, - 115,95,112,97,99,107,97,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, - 74,0,0,0,114,65,0,0,0,218,3,97,110,121,114,232, - 0,0,0,114,247,0,0,0,114,7,0,0,0,114,45,1, - 0,0,114,8,0,0,0,114,206,0,0,0,164,4,0,0, - 115,8,0,0,0,14,2,12,1,2,1,8,255,122,30,69, - 120,116,101,110,115,105,111,110,70,105,108,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,23,0,0,0,41,2,122,63,82, - 101,116,117,114,110,32,78,111,110,101,32,97,115,32,97,110, - 32,101,120,116,101,110,115,105,111,110,32,109,111,100,117,108, - 101,32,99,97,110,110,111,116,32,99,114,101,97,116,101,32, - 97,32,99,111,100,101,32,111,98,106,101,99,116,46,78,114, - 7,0,0,0,114,247,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,241,0,0,0,170,4,0, - 0,114,24,0,0,0,122,28,69,120,116,101,110,115,105,111, - 110,70,105,108,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,23,0, - 0,0,41,2,122,53,82,101,116,117,114,110,32,78,111,110, - 101,32,97,115,32,101,120,116,101,110,115,105,111,110,32,109, - 111,100,117,108,101,115,32,104,97,118,101,32,110,111,32,115, - 111,117,114,99,101,32,99,111,100,101,46,78,114,7,0,0, - 0,114,247,0,0,0,114,7,0,0,0,114,7,0,0,0, - 114,8,0,0,0,114,1,1,0,0,174,4,0,0,114,24, - 0,0,0,122,30,69,120,116,101,110,115,105,111,110,70,105, - 108,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,1,0,0,0,67,0,0,0,114,26,1,0, - 0,114,27,1,0,0,114,71,0,0,0,114,247,0,0,0, + 0,90,4,100,4,100,5,132,0,90,5,100,6,83,0,41, + 7,218,20,83,111,117,114,99,101,108,101,115,115,70,105,108, + 101,76,111,97,100,101,114,122,45,76,111,97,100,101,114,32, + 119,104,105,99,104,32,104,97,110,100,108,101,115,32,115,111, + 117,114,99,101,108,101,115,115,32,102,105,108,101,32,105,109, + 112,111,114,116,115,46,99,2,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,5,0,0,0,67,0,0,0,115, + 68,0,0,0,124,0,160,0,124,1,161,1,125,2,124,0, + 160,1,124,2,161,1,125,3,124,1,124,2,100,1,156,2, + 125,4,116,2,124,3,124,1,124,4,131,3,1,0,116,3, + 116,4,124,3,131,1,100,2,100,0,133,2,25,0,124,1, + 124,2,100,3,141,3,83,0,41,4,78,114,183,0,0,0, + 114,169,0,0,0,41,2,114,141,0,0,0,114,132,0,0, + 0,41,5,114,203,0,0,0,114,255,0,0,0,114,176,0, + 0,0,114,189,0,0,0,114,7,1,0,0,41,5,114,143, + 0,0,0,114,163,0,0,0,114,65,0,0,0,114,41,0, + 0,0,114,175,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,241,0,0,0,110,4,0,0,115, + 22,0,0,0,10,1,10,1,2,4,2,1,6,254,12,4, + 2,1,14,1,2,1,2,1,6,253,122,29,83,111,117,114, + 99,101,108,101,115,115,70,105,108,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,23,0,0,0,41,2,122,39,82,101,116,117,114, + 110,32,78,111,110,101,32,97,115,32,116,104,101,114,101,32, + 105,115,32,110,111,32,115,111,117,114,99,101,32,99,111,100, + 101,46,78,114,7,0,0,0,114,247,0,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,1,1,0, + 0,126,4,0,0,114,24,0,0,0,122,31,83,111,117,114, + 99,101,108,101,115,115,70,105,108,101,76,111,97,100,101,114, + 46,103,101,116,95,115,111,117,114,99,101,78,41,6,114,150, + 0,0,0,114,149,0,0,0,114,151,0,0,0,114,152,0, + 0,0,114,241,0,0,0,114,1,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,41,1,0,0,106,4,0,0,115,8,0,0,0,8,0, + 4,2,8,2,12,16,114,41,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,100,6,100,7,132,0,90,6,100,8,100, + 9,132,0,90,7,100,10,100,11,132,0,90,8,100,12,100, + 13,132,0,90,9,100,14,100,15,132,0,90,10,100,16,100, + 17,132,0,90,11,101,12,100,18,100,19,132,0,131,1,90, + 13,100,20,83,0,41,21,114,30,1,0,0,122,93,76,111, + 97,100,101,114,32,102,111,114,32,101,120,116,101,110,115,105, + 111,110,32,109,111,100,117,108,101,115,46,10,10,32,32,32, + 32,84,104,101,32,99,111,110,115,116,114,117,99,116,111,114, + 32,105,115,32,100,101,115,105,103,110,101,100,32,116,111,32, + 119,111,114,107,32,119,105,116,104,32,70,105,108,101,70,105, + 110,100,101,114,46,10,10,32,32,32,32,99,3,0,0,0, + 0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0, + 67,0,0,0,115,16,0,0,0,124,1,124,0,95,0,124, + 2,124,0,95,1,100,0,83,0,114,69,0,0,0,114,183, + 0,0,0,41,3,114,143,0,0,0,114,141,0,0,0,114, + 65,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, + 0,0,0,114,236,0,0,0,139,4,0,0,115,4,0,0, + 0,6,1,10,1,122,28,69,120,116,101,110,115,105,111,110, + 70,105,108,101,76,111,97,100,101,114,46,95,95,105,110,105, + 116,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,114,12,1,0, + 0,114,69,0,0,0,114,13,1,0,0,114,15,1,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 203,0,0,0,178,4,0,0,114,28,1,0,0,122,32,69, + 16,1,0,0,143,4,0,0,114,17,1,0,0,122,26,69, 120,116,101,110,115,105,111,110,70,105,108,101,76,111,97,100, - 101,114,46,103,101,116,95,102,105,108,101,110,97,109,101,78, - 41,14,114,150,0,0,0,114,149,0,0,0,114,151,0,0, - 0,114,152,0,0,0,114,236,0,0,0,114,16,1,0,0, - 114,22,1,0,0,114,239,0,0,0,114,245,0,0,0,114, - 206,0,0,0,114,241,0,0,0,114,1,1,0,0,114,160, - 0,0,0,114,203,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,7,0,0,0,114,8,0,0,0,114,30,1,0, - 0,131,4,0,0,115,24,0,0,0,8,0,4,2,8,6, - 8,4,8,4,8,3,8,8,8,6,8,6,8,4,2,4, - 14,1,114,30,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,104,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,100,6,100,7,132,0,90,6,100,8,100,9,132,0,90, - 7,100,10,100,11,132,0,90,8,100,12,100,13,132,0,90, - 9,100,14,100,15,132,0,90,10,100,16,100,17,132,0,90, - 11,100,18,100,19,132,0,90,12,100,20,100,21,132,0,90, - 13,100,22,100,23,132,0,90,14,100,24,83,0,41,25,218, - 14,95,78,97,109,101,115,112,97,99,101,80,97,116,104,97, - 38,1,0,0,82,101,112,114,101,115,101,110,116,115,32,97, - 32,110,97,109,101,115,112,97,99,101,32,112,97,99,107,97, - 103,101,39,115,32,112,97,116,104,46,32,32,73,116,32,117, - 115,101,115,32,116,104,101,32,109,111,100,117,108,101,32,110, - 97,109,101,10,32,32,32,32,116,111,32,102,105,110,100,32, - 105,116,115,32,112,97,114,101,110,116,32,109,111,100,117,108, - 101,44,32,97,110,100,32,102,114,111,109,32,116,104,101,114, - 101,32,105,116,32,108,111,111,107,115,32,117,112,32,116,104, - 101,32,112,97,114,101,110,116,39,115,10,32,32,32,32,95, - 95,112,97,116,104,95,95,46,32,32,87,104,101,110,32,116, - 104,105,115,32,99,104,97,110,103,101,115,44,32,116,104,101, - 32,109,111,100,117,108,101,39,115,32,111,119,110,32,112,97, - 116,104,32,105,115,32,114,101,99,111,109,112,117,116,101,100, - 44,10,32,32,32,32,117,115,105,110,103,32,112,97,116,104, - 95,102,105,110,100,101,114,46,32,32,70,111,114,32,116,111, - 112,45,108,101,118,101,108,32,109,111,100,117,108,101,115,44, - 32,116,104,101,32,112,97,114,101,110,116,32,109,111,100,117, - 108,101,39,115,32,112,97,116,104,10,32,32,32,32,105,115, - 32,115,121,115,46,112,97,116,104,46,99,4,0,0,0,0, - 0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,67, - 0,0,0,115,36,0,0,0,124,1,124,0,95,0,124,2, - 124,0,95,1,116,2,124,0,160,3,161,0,131,1,124,0, - 95,4,124,3,124,0,95,5,100,0,83,0,114,69,0,0, - 0,41,6,218,5,95,110,97,109,101,218,5,95,112,97,116, - 104,114,136,0,0,0,218,16,95,103,101,116,95,112,97,114, - 101,110,116,95,112,97,116,104,218,17,95,108,97,115,116,95, - 112,97,114,101,110,116,95,112,97,116,104,218,12,95,112,97, - 116,104,95,102,105,110,100,101,114,169,4,114,143,0,0,0, - 114,141,0,0,0,114,65,0,0,0,90,11,112,97,116,104, - 95,102,105,110,100,101,114,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,236,0,0,0,191,4,0,0,115, - 8,0,0,0,6,1,6,1,14,1,10,1,122,23,95,78, - 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105, - 110,105,116,95,95,99,1,0,0,0,0,0,0,0,0,0, - 0,0,4,0,0,0,3,0,0,0,67,0,0,0,115,38, - 0,0,0,124,0,106,0,160,1,100,1,161,1,92,3,125, - 1,125,2,125,3,124,2,100,2,107,2,114,15,100,3,83, - 0,124,1,100,4,102,2,83,0,41,6,122,62,82,101,116, - 117,114,110,115,32,97,32,116,117,112,108,101,32,111,102,32, - 40,112,97,114,101,110,116,45,109,111,100,117,108,101,45,110, - 97,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,97,0,0,0, - 114,10,0,0,0,41,2,114,15,0,0,0,114,65,0,0, - 0,90,8,95,95,112,97,116,104,95,95,78,41,2,114,48, - 1,0,0,114,104,0,0,0,41,4,114,143,0,0,0,114, - 40,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,97,109,101,115,197,4,0,0,115,8,0,0,0,18,2, - 8,1,4,2,8,3,122,38,95,78,97,109,101,115,112,97, - 99,101,80,97,116,104,46,95,102,105,110,100,95,112,97,114, - 101,110,116,95,112,97,116,104,95,110,97,109,101,115,99,1, - 0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,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,69,0,0,0,41,4,114, - 55,1,0,0,114,155,0,0,0,114,15,0,0,0,218,7, - 109,111,100,117,108,101,115,41,3,114,143,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,50,1,0,0,207,4,0,0,115,4,0,0,0,12, - 1,16,1,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,0,0,0, - 0,3,0,0,0,4,0,0,0,67,0,0,0,115,80,0, - 0,0,116,0,124,0,160,1,161,0,131,1,125,1,124,1, - 124,0,106,2,107,3,114,37,124,0,160,3,124,0,106,4, - 124,1,161,2,125,2,124,2,100,0,117,1,114,34,124,2, - 106,5,100,0,117,0,114,34,124,2,106,6,114,34,124,2, - 106,6,124,0,95,7,124,1,124,0,95,2,124,0,106,7, - 83,0,114,69,0,0,0,41,8,114,136,0,0,0,114,50, - 1,0,0,114,51,1,0,0,114,52,1,0,0,114,48,1, - 0,0,114,164,0,0,0,114,202,0,0,0,114,49,1,0, - 0,41,3,114,143,0,0,0,90,11,112,97,114,101,110,116, - 95,112,97,116,104,114,210,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,211,4,0,0,115,16,0,0,0, - 12,2,10,1,14,1,18,3,6,1,8,1,6,1,6,1, - 122,27,95,78,97,109,101,115,112,97,99,101,80,97,116,104, - 46,95,114,101,99,97,108,99,117,108,97,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,69,0,0,0,41,2,218,4, - 105,116,101,114,114,57,1,0,0,114,21,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,224,4,0,0,243,2,0,0,0, - 12,1,122,23,95,78,97,109,101,115,112,97,99,101,80,97, - 116,104,46,95,95,105,116,101,114,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,69,0,0,0,169,1,114,57,1,0, - 0,41,2,114,143,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,227,4,0,0,114, - 61,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,69,0,0, - 0,41,1,114,49,1,0,0,41,3,114,143,0,0,0,114, - 63,1,0,0,114,65,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,230,4,0,0,115,2,0,0,0,14,1, - 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,58,1,0,0,114,69,0,0,0,41, - 2,114,4,0,0,0,114,57,1,0,0,114,21,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,233,4,0,0,114,61,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, + 101,114,46,95,95,101,113,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,89, - 0,0,0,114,49,1,0,0,114,21,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,236,4,0,0,114,61,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,69,0,0,0,114,62,1,0,0,169,2,114,143, - 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,239,4,0,0,114,61,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,69,0,0,0,41, - 2,114,49,1,0,0,114,61,0,0,0,114,69,1,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 61,0,0,0,242,4,0,0,243,2,0,0,0,16,1,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,150,0,0,0,114,149, - 0,0,0,114,151,0,0,0,114,152,0,0,0,114,236,0, - 0,0,114,55,1,0,0,114,50,1,0,0,114,57,1,0, - 0,114,60,1,0,0,114,64,1,0,0,114,65,1,0,0, - 114,66,1,0,0,114,68,1,0,0,114,71,1,0,0,114, - 61,0,0,0,114,7,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,47,1,0,0,184,4,0, - 0,115,26,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, - 114,47,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,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,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, - 69,0,0,0,41,2,114,47,1,0,0,114,49,1,0,0, - 114,53,1,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,236,0,0,0,248,4,0,0,115,2,0, - 0,0,18,1,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, - 4,0,0,0,67,0,0,0,115,24,0,0,0,116,0,160, - 1,100,1,116,2,161,2,1,0,100,2,160,3,124,0,106, - 4,161,1,83,0,41,4,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,82,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,40,41,32,105,115,32, - 100,101,112,114,101,99,97,116,101,100,32,97,110,100,32,115, - 108,97,116,101,100,32,102,111,114,32,114,101,109,111,118,97, - 108,32,105,110,32,80,121,116,104,111,110,32,51,46,49,50, - 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,5,114,99, - 0,0,0,114,100,0,0,0,114,101,0,0,0,114,89,0, - 0,0,114,150,0,0,0,41,1,114,244,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,251,4,0,0,115,8, - 0,0,0,6,7,2,1,4,255,12,2,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,23,0,0,0,41,2,78,84,114,7,0,0,0, - 114,247,0,0,0,114,7,0,0,0,114,7,0,0,0,114, - 8,0,0,0,114,206,0,0,0,6,5,0,0,243,2,0, - 0,0,4,1,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,23,0,0,0,41, - 2,78,114,10,0,0,0,114,7,0,0,0,114,247,0,0, - 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, - 114,1,1,0,0,9,5,0,0,114,75,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,243,0,0,0, - 84,41,1,114,3,1,0,0,41,1,114,4,1,0,0,114, - 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,241,0,0,0,12,5,0,0,114,72,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,23,0,0,0,114,237,0,0,0,114, - 7,0,0,0,114,238,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,239,0,0,0,15,5,0, - 0,114,240,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,69,0,0,0,114,7,0, - 0,0,114,42,1,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,245,0,0,0,18,5,0,0,114, - 75,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,159,0,0,0, - 114,173,0,0,0,114,49,1,0,0,114,246,0,0,0,114, - 247,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,248,0,0,0,21,5,0,0,115,8,0,0, - 0,6,7,4,1,4,255,12,3,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,32,1,0,0,114,76,1, - 0,0,114,49,1,0,0,41,3,114,143,0,0,0,114,244, - 0,0,0,114,76,1,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,33,1,0,0,33,5,0,0, - 115,4,0,0,0,12,1,10,1,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,150,0,0,0,114,149,0,0,0,114,151,0,0, - 0,114,236,0,0,0,114,233,0,0,0,114,74,1,0,0, - 114,206,0,0,0,114,1,1,0,0,114,241,0,0,0,114, - 239,0,0,0,114,245,0,0,0,114,248,0,0,0,114,33, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,7,0, - 0,0,114,8,0,0,0,114,73,1,0,0,247,4,0,0, - 115,22,0,0,0,8,0,8,1,2,3,10,1,8,10,8, - 3,8,3,8,3,8,3,8,3,12,12,114,73,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,19,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,21,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,22, - 92,2,125,0,125,1,124,1,100,1,117,0,114,20,116,1, - 106,2,124,0,61,0,113,7,116,4,124,1,100,2,131,2, - 114,29,124,1,160,5,161,0,1,0,113,7,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,15,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,153, - 0,0,0,114,78,1,0,0,41,2,114,141,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,78,1,0,0,44,5,0,0,115, - 14,0,0,0,22,4,8,1,10,1,10,1,8,1,2,128, - 4,252,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, + 0,0,114,18,1,0,0,114,69,0,0,0,114,19,1,0, + 0,114,21,1,0,0,114,7,0,0,0,114,7,0,0,0, + 114,8,0,0,0,114,22,1,0,0,147,4,0,0,114,23, + 1,0,0,122,28,69,120,116,101,110,115,105,111,110,70,105, + 108,101,76,111,97,100,101,114,46,95,95,104,97,115,104,95, + 95,99,2,0,0,0,0,0,0,0,0,0,0,0,3,0, + 0,0,5,0,0,0,67,0,0,0,115,36,0,0,0,116, + 0,160,1,116,2,106,3,124,1,161,2,125,2,116,0,160, + 4,100,1,124,1,106,5,124,0,106,6,161,3,1,0,124, + 2,83,0,41,3,122,38,67,114,101,97,116,101,32,97,110, + 32,117,110,105,116,105,97,108,105,122,101,100,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,122,38,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,32, + 123,33,114,125,32,108,111,97,100,101,100,32,102,114,111,109, + 32,123,33,114,125,78,41,7,114,159,0,0,0,114,242,0, + 0,0,114,187,0,0,0,90,14,99,114,101,97,116,101,95, + 100,121,110,97,109,105,99,114,173,0,0,0,114,141,0,0, + 0,114,65,0,0,0,41,3,114,143,0,0,0,114,210,0, + 0,0,114,244,0,0,0,114,7,0,0,0,114,7,0,0, + 0,114,8,0,0,0,114,239,0,0,0,150,4,0,0,115, + 14,0,0,0,4,2,6,1,4,255,6,2,8,1,4,255, + 4,2,122,33,69,120,116,101,110,115,105,111,110,70,105,108, + 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,5,0,0,0,67,0,0,0,115,36, + 0,0,0,116,0,160,1,116,2,106,3,124,1,161,2,1, + 0,116,0,160,4,100,1,124,0,106,5,124,0,106,6,161, + 3,1,0,100,2,83,0,41,3,122,30,73,110,105,116,105, + 97,108,105,122,101,32,97,110,32,101,120,116,101,110,115,105, + 111,110,32,109,111,100,117,108,101,122,40,101,120,116,101,110, + 115,105,111,110,32,109,111,100,117,108,101,32,123,33,114,125, + 32,101,120,101,99,117,116,101,100,32,102,114,111,109,32,123, + 33,114,125,78,41,7,114,159,0,0,0,114,242,0,0,0, + 114,187,0,0,0,90,12,101,120,101,99,95,100,121,110,97, + 109,105,99,114,173,0,0,0,114,141,0,0,0,114,65,0, + 0,0,169,2,114,143,0,0,0,114,244,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,245,0, + 0,0,158,4,0,0,115,8,0,0,0,14,2,6,1,8, + 1,8,255,122,31,69,120,116,101,110,115,105,111,110,70,105, + 108,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,3,0,0,0,115,36,0, + 0,0,116,0,124,0,106,1,131,1,100,1,25,0,137,0, + 116,2,135,0,102,1,100,2,100,3,132,8,116,3,68,0, + 131,1,131,1,83,0,41,5,122,49,82,101,116,117,114,110, + 32,84,114,117,101,32,105,102,32,116,104,101,32,101,120,116, + 101,110,115,105,111,110,32,109,111,100,117,108,101,32,105,115, + 32,97,32,112,97,99,107,97,103,101,46,114,3,0,0,0, 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,14,116,0,106,1,115,14,116,2, - 160,3,100,2,116,4,161,2,1,0,116,0,106,1,68,0, - 93,17,125,1,122,7,124,1,124,0,131,1,87,0,2,0, - 1,0,83,0,4,0,116,5,121,37,1,0,1,0,1,0, - 89,0,113,17,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,15,0,0,0,218,10,112, - 97,116,104,95,104,111,111,107,115,114,99,0,0,0,114,100, - 0,0,0,114,162,0,0,0,114,142,0,0,0,41,2,114, - 65,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,54,5,0,0,115,18,0,0,0,16, - 3,12,1,10,1,2,1,14,1,12,1,4,1,4,2,2, - 253,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,20,122, - 6,116,0,160,1,161,0,125,1,87,0,110,9,4,0,116, - 2,121,49,1,0,1,0,1,0,89,0,100,2,83,0,122, - 8,116,3,106,4,124,1,25,0,125,2,87,0,124,2,83, - 0,4,0,116,5,121,48,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,18,0,0,0,114,82, - 0,0,0,218,17,70,105,108,101,78,111,116,70,111,117,110, - 100,69,114,114,111,114,114,15,0,0,0,114,80,1,0,0, - 218,8,75,101,121,69,114,114,111,114,114,84,1,0,0,41, - 3,114,221,0,0,0,114,65,0,0,0,114,82,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,67,5,0,0,115,28,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,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,7,0,0,0,4,0,0,0, - 67,0,0,0,115,138,0,0,0,116,0,124,2,100,1,131, - 2,114,27,116,1,160,2,124,2,161,1,155,0,100,2,157, - 2,125,3,116,3,160,4,124,3,116,5,161,2,1,0,124, - 2,160,6,124,1,161,1,92,2,125,4,125,5,110,21,116, - 1,160,2,124,2,161,1,155,0,100,3,157,2,125,3,116, - 3,160,4,124,3,116,5,161,2,1,0,124,2,160,7,124, - 1,161,1,125,4,103,0,125,5,124,4,100,0,117,1,114, - 58,116,1,160,8,124,1,124,4,161,2,83,0,116,1,160, - 9,124,1,100,0,161,2,125,6,124,5,124,6,95,10,124, - 6,83,0,41,4,78,114,161,0,0,0,122,53,46,102,105, - 110,100,95,115,112,101,99,40,41,32,110,111,116,32,102,111, - 117,110,100,59,32,102,97,108,108,105,110,103,32,98,97,99, - 107,32,116,111,32,102,105,110,100,95,108,111,97,100,101,114, - 40,41,122,53,46,102,105,110,100,95,115,112,101,99,40,41, - 32,110,111,116,32,102,111,117,110,100,59,32,102,97,108,108, - 105,110,103,32,98,97,99,107,32,116,111,32,102,105,110,100, - 95,109,111,100,117,108,101,40,41,41,11,114,153,0,0,0, - 114,159,0,0,0,90,12,95,111,98,106,101,99,116,95,110, - 97,109,101,114,99,0,0,0,114,100,0,0,0,114,162,0, - 0,0,114,161,0,0,0,114,229,0,0,0,114,224,0,0, - 0,114,207,0,0,0,114,202,0,0,0,41,7,114,221,0, - 0,0,114,163,0,0,0,114,82,1,0,0,114,166,0,0, - 0,114,164,0,0,0,114,165,0,0,0,114,210,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,89,5,0,0,115,26,0,0,0,10,4,16,1,12,2, - 16,1,16,2,12,2,10,1,4,1,8,1,12,1,12,1, - 6,1,4,1,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,67,125,5,116,0,124,5, - 116,1,116,2,102,2,131,2,115,14,113,4,124,0,160,3, - 124,5,161,1,125,6,124,6,100,1,117,1,114,71,116,4, - 124,6,100,2,131,2,114,35,124,6,160,5,124,1,124,3, - 161,2,125,7,110,6,124,0,160,6,124,1,124,6,161,2, - 125,7,124,7,100,1,117,0,114,46,113,4,124,7,106,7, - 100,1,117,1,114,55,124,7,2,0,1,0,83,0,124,7, - 106,8,125,8,124,8,100,1,117,0,114,66,116,9,100,3, - 131,1,130,1,124,4,160,10,124,8,161,1,1,0,113,4, - 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,226,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,185,0,0,0,114,109,0,0,0, - 218,5,98,121,116,101,115,114,87,1,0,0,114,153,0,0, - 0,114,226,0,0,0,114,88,1,0,0,114,164,0,0,0, - 114,202,0,0,0,114,142,0,0,0,114,191,0,0,0,114, - 159,0,0,0,114,207,0,0,0,41,9,114,221,0,0,0, - 114,163,0,0,0,114,65,0,0,0,114,225,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,82,1,0,0,114,210,0,0,0, - 114,165,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,110, - 5,0,0,115,42,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,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,7,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,20,100,1,83,0,124,4, - 106,3,100,1,117,0,114,45,124,4,106,4,125,5,124,5, - 114,43,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,15,0,0,0,114,65,0, - 0,0,114,91,1,0,0,114,164,0,0,0,114,202,0,0, - 0,114,205,0,0,0,114,47,1,0,0,41,6,114,221,0, - 0,0,114,163,0,0,0,114,65,0,0,0,114,225,0,0, - 0,114,210,0,0,0,114,90,1,0,0,114,7,0,0,0, - 114,7,0,0,0,114,8,0,0,0,114,226,0,0,0,142, - 5,0,0,115,26,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,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,42,0,0,0,116,0,160,1,100,1,116,2,161,2, - 1,0,124,0,160,3,124,1,124,2,161,2,125,3,124,3, - 100,2,117,0,114,18,100,2,83,0,124,3,106,4,83,0, - 41,3,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,122,101, - 80,97,116,104,70,105,110,100,101,114,46,102,105,110,100,95, - 109,111,100,117,108,101,40,41,32,105,115,32,100,101,112,114, - 101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,101, - 100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,110, - 32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,115, - 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110, - 115,116,101,97,100,78,114,227,0,0,0,114,228,0,0,0, - 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 229,0,0,0,166,5,0,0,115,14,0,0,0,6,8,2, - 2,4,254,12,3,8,1,4,1,6,1,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,92,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,144,0,0,0,114,145,0,0,0,114,92,1,0,0, + 0,4,0,0,0,51,0,0,0,115,28,0,0,0,129,0, + 124,0,93,9,125,1,136,0,100,0,124,1,23,0,107,2, + 86,0,1,0,113,2,100,1,83,0,41,2,114,236,0,0, + 0,78,114,7,0,0,0,169,2,114,5,0,0,0,218,6, + 115,117,102,102,105,120,169,1,90,9,102,105,108,101,95,110, + 97,109,101,114,7,0,0,0,114,8,0,0,0,114,9,0, + 0,0,167,4,0,0,115,8,0,0,0,2,128,4,0,2, + 1,20,255,122,49,69,120,116,101,110,115,105,111,110,70,105, + 108,101,76,111,97,100,101,114,46,105,115,95,112,97,99,107, + 97,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,74,0,0,0,114,65, + 0,0,0,218,3,97,110,121,114,232,0,0,0,114,247,0, + 0,0,114,7,0,0,0,114,45,1,0,0,114,8,0,0, + 0,114,206,0,0,0,164,4,0,0,115,8,0,0,0,14, + 2,12,1,2,1,8,255,122,30,69,120,116,101,110,115,105, + 111,110,70,105,108,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,23,0,0,0,41,2,122,63,82,101,116,117,114,110,32, + 78,111,110,101,32,97,115,32,97,110,32,101,120,116,101,110, + 115,105,111,110,32,109,111,100,117,108,101,32,99,97,110,110, + 111,116,32,99,114,101,97,116,101,32,97,32,99,111,100,101, + 32,111,98,106,101,99,116,46,78,114,7,0,0,0,114,247, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,241,0,0,0,170,4,0,0,114,24,0,0,0, + 122,28,69,120,116,101,110,115,105,111,110,70,105,108,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,23,0,0,0,41,2,122,53, + 82,101,116,117,114,110,32,78,111,110,101,32,97,115,32,101, + 120,116,101,110,115,105,111,110,32,109,111,100,117,108,101,115, + 32,104,97,118,101,32,110,111,32,115,111,117,114,99,101,32, + 99,111,100,101,46,78,114,7,0,0,0,114,247,0,0,0, 114,7,0,0,0,114,7,0,0,0,114,8,0,0,0,114, - 93,1,0,0,182,5,0,0,115,4,0,0,0,12,10,16, - 1,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, - 114,69,0,0,0,114,230,0,0,0,41,14,114,150,0,0, + 1,1,0,0,174,4,0,0,114,24,0,0,0,122,30,69, + 120,116,101,110,115,105,111,110,70,105,108,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,1,0, + 0,0,67,0,0,0,114,26,1,0,0,114,27,1,0,0, + 114,71,0,0,0,114,247,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,203,0,0,0,178,4, + 0,0,114,28,1,0,0,122,32,69,120,116,101,110,115,105, + 111,110,70,105,108,101,76,111,97,100,101,114,46,103,101,116, + 95,102,105,108,101,110,97,109,101,78,41,14,114,150,0,0, 0,114,149,0,0,0,114,151,0,0,0,114,152,0,0,0, - 114,233,0,0,0,114,78,1,0,0,114,84,1,0,0,114, - 234,0,0,0,114,87,1,0,0,114,88,1,0,0,114,91, - 1,0,0,114,226,0,0,0,114,229,0,0,0,114,93,1, + 114,236,0,0,0,114,16,1,0,0,114,22,1,0,0,114, + 239,0,0,0,114,245,0,0,0,114,206,0,0,0,114,241, + 0,0,0,114,1,1,0,0,114,160,0,0,0,114,203,0, 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,77,1,0,0,40,5,0,0,115, - 36,0,0,0,8,0,4,2,2,2,10,1,2,9,10,1, - 2,12,10,1,2,21,10,1,2,20,12,1,2,31,12,1, - 2,23,12,1,2,15,14,1,114,77,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,112,0,0,0,103, - 0,125,3,124,2,68,0,93,16,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,4,124,3,124,0,95,1,124, - 1,112,27,100,3,124,0,95,2,116,3,124,0,106,2,131, - 1,115,43,116,4,116,5,160,6,161,0,124,0,106,2,131, - 2,124,0,95,2,100,4,124,0,95,7,116,8,131,0,124, - 0,95,9,116,8,131,0,124,0,95,10,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,24,0,0,0,129,0,124,0,93, - 7,125,1,124,1,136,0,102,2,86,0,1,0,113,2,100, - 0,83,0,114,69,0,0,0,114,7,0,0,0,114,43,1, - 0,0,169,1,114,164,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,9,0,0,0,211,5,0,0,115,4,0,0, - 0,2,128,22,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,97,0, - 0,0,114,130,0,0,0,78,41,11,114,191,0,0,0,218, - 8,95,108,111,97,100,101,114,115,114,65,0,0,0,114,86, - 0,0,0,114,67,0,0,0,114,18,0,0,0,114,82,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,143,0,0,0,114,65,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,212,0,0,0, - 114,7,0,0,0,114,95,1,0,0,114,8,0,0,0,114, - 236,0,0,0,205,5,0,0,115,20,0,0,0,4,4,12, - 1,26,1,6,1,10,2,10,1,18,1,6,1,8,1,12, - 1,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,130,0,0,0,78,41,1,114,97,1,0,0,114,21, - 1,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, - 0,0,114,78,1,0,0,221,5,0,0,114,81,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,114,8,0,0,0,114,30,1,0,0,131,4,0,0,115, + 24,0,0,0,8,0,4,2,8,6,8,4,8,4,8,3, + 8,8,8,6,8,6,8,4,2,4,14,1,114,30,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,104,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,100,6,100,7,132, + 0,90,6,100,8,100,9,132,0,90,7,100,10,100,11,132, + 0,90,8,100,12,100,13,132,0,90,9,100,14,100,15,132, + 0,90,10,100,16,100,17,132,0,90,11,100,18,100,19,132, + 0,90,12,100,20,100,21,132,0,90,13,100,22,100,23,132, + 0,90,14,100,24,83,0,41,25,218,14,95,78,97,109,101, + 115,112,97,99,101,80,97,116,104,97,38,1,0,0,82,101, + 112,114,101,115,101,110,116,115,32,97,32,110,97,109,101,115, + 112,97,99,101,32,112,97,99,107,97,103,101,39,115,32,112, + 97,116,104,46,32,32,73,116,32,117,115,101,115,32,116,104, + 101,32,109,111,100,117,108,101,32,110,97,109,101,10,32,32, + 32,32,116,111,32,102,105,110,100,32,105,116,115,32,112,97, + 114,101,110,116,32,109,111,100,117,108,101,44,32,97,110,100, + 32,102,114,111,109,32,116,104,101,114,101,32,105,116,32,108, + 111,111,107,115,32,117,112,32,116,104,101,32,112,97,114,101, + 110,116,39,115,10,32,32,32,32,95,95,112,97,116,104,95, + 95,46,32,32,87,104,101,110,32,116,104,105,115,32,99,104, + 97,110,103,101,115,44,32,116,104,101,32,109,111,100,117,108, + 101,39,115,32,111,119,110,32,112,97,116,104,32,105,115,32, + 114,101,99,111,109,112,117,116,101,100,44,10,32,32,32,32, + 117,115,105,110,103,32,112,97,116,104,95,102,105,110,100,101, + 114,46,32,32,70,111,114,32,116,111,112,45,108,101,118,101, + 108,32,109,111,100,117,108,101,115,44,32,116,104,101,32,112, + 97,114,101,110,116,32,109,111,100,117,108,101,39,115,32,112, + 97,116,104,10,32,32,32,32,105,115,32,115,121,115,46,112, + 97,116,104,46,99,4,0,0,0,0,0,0,0,0,0,0, + 0,4,0,0,0,3,0,0,0,67,0,0,0,115,36,0, + 0,0,124,1,124,0,95,0,124,2,124,0,95,1,116,2, + 124,0,160,3,161,0,131,1,124,0,95,4,124,3,124,0, + 95,5,100,0,83,0,114,69,0,0,0,41,6,218,5,95, + 110,97,109,101,218,5,95,112,97,116,104,114,136,0,0,0, + 218,16,95,103,101,116,95,112,97,114,101,110,116,95,112,97, + 116,104,218,17,95,108,97,115,116,95,112,97,114,101,110,116, + 95,112,97,116,104,218,12,95,112,97,116,104,95,102,105,110, + 100,101,114,169,4,114,143,0,0,0,114,141,0,0,0,114, + 65,0,0,0,90,11,112,97,116,104,95,102,105,110,100,101, + 114,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,236,0,0,0,191,4,0,0,115,8,0,0,0,6,1, + 6,1,14,1,10,1,122,23,95,78,97,109,101,115,112,97, + 99,101,80,97,116,104,46,95,95,105,110,105,116,95,95,99, + 1,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 3,0,0,0,67,0,0,0,115,38,0,0,0,124,0,106, + 0,160,1,100,1,161,1,92,3,125,1,125,2,125,3,124, + 2,100,2,107,2,114,15,100,3,83,0,124,1,100,4,102, + 2,83,0,41,6,122,62,82,101,116,117,114,110,115,32,97, + 32,116,117,112,108,101,32,111,102,32,40,112,97,114,101,110, + 116,45,109,111,100,117,108,101,45,110,97,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,97,0,0,0,114,10,0,0,0,41, + 2,114,15,0,0,0,114,65,0,0,0,90,8,95,95,112, + 97,116,104,95,95,78,41,2,114,48,1,0,0,114,104,0, + 0,0,41,4,114,143,0,0,0,114,40,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,97,109,101,115,197, + 4,0,0,115,8,0,0,0,18,2,8,1,4,2,8,3, + 122,38,95,78,97,109,101,115,112,97,99,101,80,97,116,104, + 46,95,102,105,110,100,95,112,97,114,101,110,116,95,112,97, + 116,104,95,110,97,109,101,115,99,1,0,0,0,0,0,0, + 0,0,0,0,0,3,0,0,0,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,69,0,0,0,41,4,114,55,1,0,0,114,155, + 0,0,0,114,15,0,0,0,218,7,109,111,100,117,108,101, + 115,41,3,114,143,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,50,1,0,0, + 207,4,0,0,115,4,0,0,0,12,1,16,1,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,0,0,0,0,3,0,0,0,4, - 0,0,0,67,0,0,0,115,54,0,0,0,116,0,160,1, - 100,1,116,2,161,2,1,0,124,0,160,3,124,1,161,1, - 125,2,124,2,100,2,117,0,114,19,100,2,103,0,102,2, - 83,0,124,2,106,4,124,2,106,5,112,25,103,0,102,2, - 83,0,41,3,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,122,101,70,105,108, - 101,70,105,110,100,101,114,46,102,105,110,100,95,108,111,97, - 100,101,114,40,41,32,105,115,32,100,101,112,114,101,99,97, - 116,101,100,32,97,110,100,32,115,108,97,116,101,100,32,102, - 111,114,32,114,101,109,111,118,97,108,32,105,110,32,80,121, - 116,104,111,110,32,51,46,49,50,59,32,117,115,101,32,102, - 105,110,100,95,115,112,101,99,40,41,32,105,110,115,116,101, - 97,100,78,41,6,114,99,0,0,0,114,100,0,0,0,114, - 101,0,0,0,114,226,0,0,0,114,164,0,0,0,114,202, - 0,0,0,41,3,114,143,0,0,0,114,163,0,0,0,114, + 0,0,0,67,0,0,0,115,80,0,0,0,116,0,124,0, + 160,1,161,0,131,1,125,1,124,1,124,0,106,2,107,3, + 114,37,124,0,160,3,124,0,106,4,124,1,161,2,125,2, + 124,2,100,0,117,1,114,34,124,2,106,5,100,0,117,0, + 114,34,124,2,106,6,114,34,124,2,106,6,124,0,95,7, + 124,1,124,0,95,2,124,0,106,7,83,0,114,69,0,0, + 0,41,8,114,136,0,0,0,114,50,1,0,0,114,51,1, + 0,0,114,52,1,0,0,114,48,1,0,0,114,164,0,0, + 0,114,202,0,0,0,114,49,1,0,0,41,3,114,143,0, + 0,0,90,11,112,97,114,101,110,116,95,112,97,116,104,114, 210,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,161,0,0,0,227,5,0,0,115,14,0,0, - 0,6,7,2,2,4,254,10,3,8,1,8,1,16,1,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,201,0,0,0,41,1,114,213,0,0,0,41,7, - 114,143,0,0,0,114,211,0,0,0,114,163,0,0,0,114, - 65,0,0,0,90,4,115,109,115,108,114,225,0,0,0,114, - 164,0,0,0,114,7,0,0,0,114,7,0,0,0,114,8, - 0,0,0,114,91,1,0,0,242,5,0,0,115,8,0,0, - 0,10,1,8,1,2,1,6,255,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,9,0,0,0,67,0,0,0,115,120,1,0,0,100,1, - 125,3,124,1,160,0,100,2,161,1,100,3,25,0,125,4, - 122,12,116,1,124,0,106,2,112,17,116,3,160,4,161,0, - 131,1,106,5,125,5,87,0,110,9,4,0,116,6,121,187, - 1,0,1,0,1,0,100,4,125,5,89,0,124,5,124,0, - 106,7,107,3,114,43,124,0,160,8,161,0,1,0,124,5, - 124,0,95,7,116,9,131,0,114,54,124,0,106,10,125,6, - 124,4,160,11,161,0,125,7,110,5,124,0,106,12,125,6, - 124,4,125,7,124,7,124,6,118,0,114,106,116,13,124,0, - 106,2,124,4,131,2,125,8,124,0,106,14,68,0,93,29, - 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,101, - 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,72,116,17,124,8,131,1, - 125,3,124,0,106,14,68,0,93,54,92,2,125,9,125,10, - 122,10,116,13,124,0,106,2,124,4,124,9,23,0,131,2, - 125,12,87,0,110,10,4,0,116,18,121,186,1,0,1,0, - 1,0,89,0,1,0,100,6,83,0,116,19,106,20,100,7, + 0,0,0,218,12,95,114,101,99,97,108,99,117,108,97,116, + 101,211,4,0,0,115,16,0,0,0,12,2,10,1,14,1, + 18,3,6,1,8,1,6,1,6,1,122,27,95,78,97,109, + 101,115,112,97,99,101,80,97,116,104,46,95,114,101,99,97, + 108,99,117,108,97,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,69,0,0,0,41,2,218,4,105,116,101,114,114,57, + 1,0,0,114,21,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,224,4,0,0,243,2,0,0,0,12,1,122,23,95,78, + 97,109,101,115,112,97,99,101,80,97,116,104,46,95,95,105, + 116,101,114,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, + 69,0,0,0,169,1,114,57,1,0,0,41,2,114,143,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,227,4,0,0,114,61,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,69,0,0,0,41,1,114,49,1, + 0,0,41,3,114,143,0,0,0,114,63,1,0,0,114,65, + 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,230, + 4,0,0,115,2,0,0,0,14,1,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, + 58,1,0,0,114,69,0,0,0,41,2,114,4,0,0,0, + 114,57,1,0,0,114,21,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,233,4,0,0,114,61,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,89,0,0,0,114,49,1, + 0,0,114,21,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, + 236,4,0,0,114,61,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,69,0,0, + 0,114,62,1,0,0,169,2,114,143,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, + 239,4,0,0,114,61,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,69,0,0,0,41,2,114,49,1,0,0, + 114,61,0,0,0,114,69,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,61,0,0,0,242,4, + 0,0,243,2,0,0,0,16,1,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,150,0,0,0,114,149,0,0,0,114,151,0, + 0,0,114,152,0,0,0,114,236,0,0,0,114,55,1,0, + 0,114,50,1,0,0,114,57,1,0,0,114,60,1,0,0, + 114,64,1,0,0,114,65,1,0,0,114,66,1,0,0,114, + 68,1,0,0,114,71,1,0,0,114,61,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,47,1,0,0,184,4,0,0,115,26,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,114,47,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,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,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,69,0,0,0,41,2, + 114,47,1,0,0,114,49,1,0,0,114,53,1,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,236, + 0,0,0,248,4,0,0,115,2,0,0,0,18,1,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,4,0,0,0,67,0, + 0,0,115,24,0,0,0,116,0,160,1,100,1,116,2,161, + 2,1,0,100,2,160,3,124,0,106,4,161,1,83,0,41, + 4,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,82,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,40,41,32,105,115,32,100,101,112,114,101,99, + 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32, + 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80, + 121,116,104,111,110,32,51,46,49,50,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,5,114,99,0,0,0,114,100,0, + 0,0,114,101,0,0,0,114,89,0,0,0,114,150,0,0, + 0,41,1,114,244,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,251,4,0,0,115,8,0,0,0,6,7,2, + 1,4,255,12,2,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,23,0,0, + 0,41,2,78,84,114,7,0,0,0,114,247,0,0,0,114, + 7,0,0,0,114,7,0,0,0,114,8,0,0,0,114,206, + 0,0,0,6,5,0,0,243,2,0,0,0,4,1,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,23,0,0,0,41,2,78,114,10,0,0, + 0,114,7,0,0,0,114,247,0,0,0,114,7,0,0,0, + 114,7,0,0,0,114,8,0,0,0,114,1,1,0,0,9, + 5,0,0,114,75,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,243,0,0,0,84,41,1,114,3,1, + 0,0,41,1,114,4,1,0,0,114,247,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,241,0, + 0,0,12,5,0,0,114,72,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, + 23,0,0,0,114,237,0,0,0,114,7,0,0,0,114,238, + 0,0,0,114,7,0,0,0,114,7,0,0,0,114,8,0, + 0,0,114,239,0,0,0,15,5,0,0,114,240,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,69,0,0,0,114,7,0,0,0,114,42,1,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,245,0,0,0,18,5,0,0,114,75,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,159,0,0,0,114,173,0,0,0,114, + 49,1,0,0,114,246,0,0,0,114,247,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,248,0, + 0,0,21,5,0,0,115,8,0,0,0,6,7,4,1,4, + 255,12,3,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,32,1,0,0,114,76,1,0,0,114,49,1,0, + 0,41,3,114,143,0,0,0,114,244,0,0,0,114,76,1, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,33,1,0,0,33,5,0,0,115,4,0,0,0,12, + 1,10,1,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,150,0,0, + 0,114,149,0,0,0,114,151,0,0,0,114,236,0,0,0, + 114,233,0,0,0,114,74,1,0,0,114,206,0,0,0,114, + 1,1,0,0,114,241,0,0,0,114,239,0,0,0,114,245, + 0,0,0,114,248,0,0,0,114,33,1,0,0,114,7,0, + 0,0,114,7,0,0,0,114,7,0,0,0,114,8,0,0, + 0,114,73,1,0,0,247,4,0,0,115,22,0,0,0,8, + 0,8,1,2,3,10,1,8,10,8,3,8,3,8,3,8, + 3,8,3,12,12,114,73,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,19,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,21, + 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,22,92,2,125,0,125,1, + 124,1,100,1,117,0,114,20,116,1,106,2,124,0,61,0, + 113,7,116,4,124,1,100,2,131,2,114,29,124,1,160,5, + 161,0,1,0,113,7,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,15,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,153,0,0,0,114,78,1, + 0,0,41,2,114,141,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,78,1,0,0,44,5,0,0,115,14,0,0,0,22,4, + 8,1,10,1,10,1,8,1,2,128,4,252,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,14,116,0,106,1,115,14,116,2,160,3,100,2,116,4, + 161,2,1,0,116,0,106,1,68,0,93,18,125,1,122,7, + 124,1,124,0,131,1,87,0,2,0,1,0,83,0,4,0, + 116,5,121,35,1,0,1,0,1,0,89,0,113,17,119,0, + 100,1,83,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,15,0,0,0,218,10,112,97,116,104,95,104,111, + 111,107,115,114,99,0,0,0,114,100,0,0,0,114,162,0, + 0,0,114,142,0,0,0,41,2,114,65,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, + 54,5,0,0,115,18,0,0,0,16,3,12,1,10,1,2, + 1,14,1,12,1,4,1,2,255,4,3,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,21,122,6,116,0,160,1,161, + 0,125,1,87,0,110,10,4,0,116,2,121,20,1,0,1, + 0,1,0,89,0,100,2,83,0,119,0,122,8,116,3,106, + 4,124,1,25,0,125,2,87,0,124,2,83,0,4,0,116, + 5,121,49,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,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,18,0,0,0,114,82,0,0,0,218,17,70, + 105,108,101,78,111,116,70,111,117,110,100,69,114,114,111,114, + 114,15,0,0,0,114,80,1,0,0,218,8,75,101,121,69, + 114,114,111,114,114,84,1,0,0,41,3,114,221,0,0,0, + 114,65,0,0,0,114,82,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,67, + 5,0,0,115,28,0,0,0,8,8,2,1,12,1,12,1, + 6,3,2,253,2,4,12,1,4,4,12,253,10,1,12,1, + 4,1,2,253,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,7,0,0,0,4,0,0,0,67,0,0,0,115,138, + 0,0,0,116,0,124,2,100,1,131,2,114,27,116,1,160, + 2,124,2,161,1,155,0,100,2,157,2,125,3,116,3,160, + 4,124,3,116,5,161,2,1,0,124,2,160,6,124,1,161, + 1,92,2,125,4,125,5,110,21,116,1,160,2,124,2,161, + 1,155,0,100,3,157,2,125,3,116,3,160,4,124,3,116, + 5,161,2,1,0,124,2,160,7,124,1,161,1,125,4,103, + 0,125,5,124,4,100,0,117,1,114,58,116,1,160,8,124, + 1,124,4,161,2,83,0,116,1,160,9,124,1,100,0,161, + 2,125,6,124,5,124,6,95,10,124,6,83,0,41,4,78, + 114,161,0,0,0,122,53,46,102,105,110,100,95,115,112,101, + 99,40,41,32,110,111,116,32,102,111,117,110,100,59,32,102, + 97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,102, + 105,110,100,95,108,111,97,100,101,114,40,41,122,53,46,102, + 105,110,100,95,115,112,101,99,40,41,32,110,111,116,32,102, + 111,117,110,100,59,32,102,97,108,108,105,110,103,32,98,97, + 99,107,32,116,111,32,102,105,110,100,95,109,111,100,117,108, + 101,40,41,41,11,114,153,0,0,0,114,159,0,0,0,90, + 12,95,111,98,106,101,99,116,95,110,97,109,101,114,99,0, + 0,0,114,100,0,0,0,114,162,0,0,0,114,161,0,0, + 0,114,229,0,0,0,114,224,0,0,0,114,207,0,0,0, + 114,202,0,0,0,41,7,114,221,0,0,0,114,163,0,0, + 0,114,82,1,0,0,114,166,0,0,0,114,164,0,0,0, + 114,165,0,0,0,114,210,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,89,5,0,0,115, + 26,0,0,0,10,4,16,1,12,2,16,1,16,2,12,2, + 10,1,4,1,8,1,12,1,12,1,6,1,4,1,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,67,125,5,116,0,124,5,116,1,116,2,102,2, + 131,2,115,14,113,4,124,0,160,3,124,5,161,1,125,6, + 124,6,100,1,117,1,114,71,116,4,124,6,100,2,131,2, + 114,35,124,6,160,5,124,1,124,3,161,2,125,7,110,6, + 124,0,160,6,124,1,124,6,161,2,125,7,124,7,100,1, + 117,0,114,46,113,4,124,7,106,7,100,1,117,1,114,55, + 124,7,2,0,1,0,83,0,124,7,106,8,125,8,124,8, + 100,1,117,0,114,66,116,9,100,3,131,1,130,1,124,4, + 160,10,124,8,161,1,1,0,113,4,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,226,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,185,0,0,0,114,109,0,0,0,218,5,98,121,116,101, + 115,114,87,1,0,0,114,153,0,0,0,114,226,0,0,0, + 114,88,1,0,0,114,164,0,0,0,114,202,0,0,0,114, + 142,0,0,0,114,191,0,0,0,114,159,0,0,0,114,207, + 0,0,0,41,9,114,221,0,0,0,114,163,0,0,0,114, + 65,0,0,0,114,225,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,82,1,0,0,114,210,0,0,0,114,165,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,110,5,0,0,115,42,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,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,7,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,20,100,1,83,0,124,4,106,3,100,1,117,0, + 114,45,124,4,106,4,125,5,124,5,114,43,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,15,0,0,0,114,65,0,0,0,114,91,1,0, + 0,114,164,0,0,0,114,202,0,0,0,114,205,0,0,0, + 114,47,1,0,0,41,6,114,221,0,0,0,114,163,0,0, + 0,114,65,0,0,0,114,225,0,0,0,114,210,0,0,0, + 114,90,1,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,226,0,0,0,142,5,0,0,115,26,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,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,42,0,0,0, + 116,0,160,1,100,1,116,2,161,2,1,0,124,0,160,3, + 124,1,124,2,161,2,125,3,124,3,100,2,117,0,114,18, + 100,2,83,0,124,3,106,4,83,0,41,3,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,122,101,80,97,116,104,70,105, + 110,100,101,114,46,102,105,110,100,95,109,111,100,117,108,101, + 40,41,32,105,115,32,100,101,112,114,101,99,97,116,101,100, + 32,97,110,100,32,115,108,97,116,101,100,32,102,111,114,32, + 114,101,109,111,118,97,108,32,105,110,32,80,121,116,104,111, + 110,32,51,46,49,50,59,32,117,115,101,32,102,105,110,100, + 95,115,112,101,99,40,41,32,105,110,115,116,101,97,100,78, + 114,227,0,0,0,114,228,0,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,229,0,0,0,166,5, + 0,0,115,14,0,0,0,6,8,2,2,4,254,12,3,8, + 1,4,1,6,1,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,92,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,144,0,0,0, + 114,145,0,0,0,114,92,1,0,0,114,7,0,0,0,114, + 7,0,0,0,114,8,0,0,0,114,93,1,0,0,182,5, + 0,0,115,4,0,0,0,12,10,16,1,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,114,69,0,0,0,114, + 230,0,0,0,41,14,114,150,0,0,0,114,149,0,0,0, + 114,151,0,0,0,114,152,0,0,0,114,233,0,0,0,114, + 78,1,0,0,114,84,1,0,0,114,234,0,0,0,114,87, + 1,0,0,114,88,1,0,0,114,91,1,0,0,114,226,0, + 0,0,114,229,0,0,0,114,93,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,7,0,0,0,114,8,0,0,0, + 114,77,1,0,0,40,5,0,0,115,36,0,0,0,8,0, + 4,2,2,2,10,1,2,9,10,1,2,12,10,1,2,21, + 10,1,2,20,12,1,2,31,12,1,2,23,12,1,2,15, + 14,1,114,77,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,112,0,0,0,103,0,125,3,124,2,68, + 0,93,16,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,4,124,3,124,0,95,1,124,1,112,27,100,3,124, + 0,95,2,116,3,124,0,106,2,131,1,115,43,116,4,116, + 5,160,6,161,0,124,0,106,2,131,2,124,0,95,2,100, + 4,124,0,95,7,116,8,131,0,124,0,95,9,116,8,131, + 0,124,0,95,10,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,24,0,0,0,129,0,124,0,93,7,125,1,124,1,136, + 0,102,2,86,0,1,0,113,2,100,0,83,0,114,69,0, + 0,0,114,7,0,0,0,114,43,1,0,0,169,1,114,164, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,9,0, + 0,0,211,5,0,0,115,4,0,0,0,2,128,22,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,97,0,0,0,114,130,0,0, + 0,78,41,11,114,191,0,0,0,218,8,95,108,111,97,100, + 101,114,115,114,65,0,0,0,114,86,0,0,0,114,67,0, + 0,0,114,18,0,0,0,114,82,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,143,0,0,0,114,65,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,212,0,0,0,114,7,0,0,0,114, + 95,1,0,0,114,8,0,0,0,114,236,0,0,0,205,5, + 0,0,115,20,0,0,0,4,4,12,1,26,1,6,1,10, + 2,10,1,18,1,6,1,8,1,12,1,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,130,0,0,0, + 78,41,1,114,97,1,0,0,114,21,1,0,0,114,7,0, + 0,0,114,7,0,0,0,114,8,0,0,0,114,78,1,0, + 0,221,5,0,0,114,81,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,4,0,0,0,67,0,0, + 0,115,54,0,0,0,116,0,160,1,100,1,116,2,161,2, + 1,0,124,0,160,3,124,1,161,1,125,2,124,2,100,2, + 117,0,114,19,100,2,103,0,102,2,83,0,124,2,106,4, + 124,2,106,5,112,25,103,0,102,2,83,0,41,3,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,122,101,70,105,108,101,70,105,110,100,101, + 114,46,102,105,110,100,95,108,111,97,100,101,114,40,41,32, + 105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110, + 100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109, + 111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51, + 46,49,50,59,32,117,115,101,32,102,105,110,100,95,115,112, + 101,99,40,41,32,105,110,115,116,101,97,100,78,41,6,114, + 99,0,0,0,114,100,0,0,0,114,101,0,0,0,114,226, + 0,0,0,114,164,0,0,0,114,202,0,0,0,41,3,114, + 143,0,0,0,114,163,0,0,0,114,210,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,161,0, + 0,0,227,5,0,0,115,14,0,0,0,6,7,2,2,4, + 254,10,3,8,1,8,1,16,1,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,201,0,0, + 0,41,1,114,213,0,0,0,41,7,114,143,0,0,0,114, + 211,0,0,0,114,163,0,0,0,114,65,0,0,0,90,4, + 115,109,115,108,114,225,0,0,0,114,164,0,0,0,114,7, + 0,0,0,114,7,0,0,0,114,8,0,0,0,114,91,1, + 0,0,242,5,0,0,115,8,0,0,0,10,1,8,1,2, + 1,6,255,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,9,0,0,0,67, + 0,0,0,115,122,1,0,0,100,1,125,3,124,1,160,0, + 100,2,161,1,100,3,25,0,125,4,122,12,116,1,124,0, + 106,2,112,17,116,3,160,4,161,0,131,1,106,5,125,5, + 87,0,110,11,4,0,116,6,121,32,1,0,1,0,1,0, + 100,4,125,5,89,0,110,1,119,0,124,5,124,0,106,7, + 107,3,114,45,124,0,160,8,161,0,1,0,124,5,124,0, + 95,7,116,9,131,0,114,56,124,0,106,10,125,6,124,4, + 160,11,161,0,125,7,110,5,124,0,106,12,125,6,124,4, + 125,7,124,7,124,6,118,0,114,108,116,13,124,0,106,2, + 124,4,131,2,125,8,124,0,106,14,68,0,93,29,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,103,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,74,116,17,124,8,131,1,125,3, + 124,0,106,14,68,0,93,55,92,2,125,9,125,10,122,10, + 116,13,124,0,106,2,124,4,124,9,23,0,131,2,125,12, + 87,0,110,11,4,0,116,18,121,136,1,0,1,0,1,0, + 89,0,1,0,100,6,83,0,119,0,116,19,106,20,100,7, 124,12,100,3,100,8,141,3,1,0,124,7,124,9,23,0, - 124,6,118,0,114,163,116,15,124,12,131,1,114,163,124,0, + 124,6,118,0,114,166,116,15,124,12,131,1,114,166,124,0, 160,16,124,10,124,1,124,12,100,6,124,2,161,5,2,0, - 1,0,83,0,113,109,124,3,114,184,116,19,160,20,100,9, + 1,0,83,0,113,111,124,3,114,187,116,19,160,20,100,9, 124,8,161,2,1,0,116,19,160,21,124,1,100,6,161,2, 125,13,124,8,103,1,124,13,95,22,124,13,83,0,100,6, - 83,0,119,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,97,0,0,0,114, - 44,0,0,0,114,130,0,0,0,114,236,0,0,0,78,122, - 9,116,114,121,105,110,103,32,123,125,41,1,90,9,118,101, - 114,98,111,115,105,116,121,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,23,114,104,0,0,0,114,75,0,0,0,114,65, - 0,0,0,114,18,0,0,0,114,82,0,0,0,114,35,1, - 0,0,114,76,0,0,0,114,97,1,0,0,218,11,95,102, - 105,108,108,95,99,97,99,104,101,114,21,0,0,0,114,100, - 1,0,0,114,131,0,0,0,114,99,1,0,0,114,67,0, - 0,0,114,96,1,0,0,114,80,0,0,0,114,91,1,0, - 0,114,83,0,0,0,114,111,0,0,0,114,159,0,0,0, - 114,173,0,0,0,114,207,0,0,0,114,202,0,0,0,41, - 14,114,143,0,0,0,114,163,0,0,0,114,225,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,193,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,44,1,0,0,114,211,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,210,0,0,0,114,7,0,0,0,114,7, - 0,0,0,114,8,0,0,0,114,226,0,0,0,247,5,0, - 0,115,86,0,0,0,4,5,14,1,2,1,24,1,12,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,2,1,20,1,12,1,8,1,16,1, + 83,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,97,0,0,0,114,44,0,0,0, + 114,130,0,0,0,114,236,0,0,0,78,122,9,116,114,121, + 105,110,103,32,123,125,41,1,90,9,118,101,114,98,111,115, + 105,116,121,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,23, + 114,104,0,0,0,114,75,0,0,0,114,65,0,0,0,114, + 18,0,0,0,114,82,0,0,0,114,35,1,0,0,114,76, + 0,0,0,114,97,1,0,0,218,11,95,102,105,108,108,95, + 99,97,99,104,101,114,21,0,0,0,114,100,1,0,0,114, + 131,0,0,0,114,99,1,0,0,114,67,0,0,0,114,96, + 1,0,0,114,80,0,0,0,114,91,1,0,0,114,83,0, + 0,0,114,111,0,0,0,114,159,0,0,0,114,173,0,0, + 0,114,207,0,0,0,114,202,0,0,0,41,14,114,143,0, + 0,0,114,163,0,0,0,114,225,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,193,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,44,1,0, + 0,114,211,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,210,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,226,0,0,0,247,5,0,0,115,86,0, + 0,0,4,5,14,1,2,1,24,1,12,1,8,1,2,255, + 10,2,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,2,1,20,1,12,1,8,1,2,255,16,2, 12,1,8,1,10,1,4,1,8,255,2,128,4,2,12,1, - 12,1,8,1,4,1,4,1,2,244,2,228,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,11,116,1,160,2,124,1,112,11, - 116,1,160,3,161,0,161,1,125,2,87,0,110,12,4,0, - 116,4,116,5,116,6,102,3,121,94,1,0,1,0,1,0, - 103,0,125,2,89,0,116,7,106,8,160,9,100,1,161,1, - 115,39,116,10,124,2,131,1,124,0,95,11,110,37,116,10, + 12,1,8,1,4,1,4,1,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,192,0,0,0,124,0,106,0, + 125,1,122,11,116,1,160,2,124,1,112,11,116,1,160,3, + 161,0,161,1,125,2,87,0,110,14,4,0,116,4,116,5, + 116,6,102,3,121,28,1,0,1,0,1,0,103,0,125,2, + 89,0,110,1,119,0,116,7,106,8,160,9,100,1,161,1, + 115,41,116,10,124,2,131,1,124,0,95,11,110,37,116,10, 131,0,125,3,124,2,68,0,93,28,125,4,124,4,160,12, - 100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,65, + 100,2,161,1,92,3,125,5,125,6,125,7,124,6,114,67, 100,3,160,13,124,5,124,7,160,14,161,0,161,2,125,8, 110,2,124,5,125,8,124,3,160,15,124,8,161,1,1,0, - 113,44,124,3,124,0,95,11,116,7,106,8,160,9,116,16, - 161,1,114,92,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,14,0,0,0,114,97,0,0,0, - 114,88,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,6,125,1,124,1,160,0,161, - 0,146,2,113,2,83,0,114,7,0,0,0,41,1,114,131, - 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,71,6,0,0,115,2,0,0,0,20,0,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,65,0,0,0, - 114,18,0,0,0,90,7,108,105,115,116,100,105,114,114,82, - 0,0,0,114,85,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,15,0, - 0,0,114,25,0,0,0,114,26,0,0,0,114,98,1,0, - 0,114,99,1,0,0,114,126,0,0,0,114,89,0,0,0, - 114,131,0,0,0,218,3,97,100,100,114,27,0,0,0,114, - 100,1,0,0,41,9,114,143,0,0,0,114,65,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,70,1,0,0,114,141,0,0,0,114,54,1,0,0, - 114,44,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,102, - 1,0,0,42,6,0,0,115,38,0,0,0,6,2,2,1, - 22,1,18,1,6,3,12,3,12,1,6,7,8,1,16,1, + 113,46,124,3,124,0,95,11,116,7,106,8,160,9,116,16, + 161,1,114,94,100,4,100,5,132,0,124,2,68,0,131,1, + 124,0,95,17,100,6,83,0,100,6,83,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,14,0,0,0,114,97,0,0,0,114,88, + 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,6,125,1,124,1,160,0,161,0,146, + 2,113,2,83,0,114,7,0,0,0,41,1,114,131,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, + 71,6,0,0,115,2,0,0,0,20,0,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,65,0,0,0,114,18, + 0,0,0,90,7,108,105,115,116,100,105,114,114,82,0,0, + 0,114,85,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,15,0,0,0, + 114,25,0,0,0,114,26,0,0,0,114,98,1,0,0,114, + 99,1,0,0,114,126,0,0,0,114,89,0,0,0,114,131, + 0,0,0,218,3,97,100,100,114,27,0,0,0,114,100,1, + 0,0,41,9,114,143,0,0,0,114,65,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, + 70,1,0,0,114,141,0,0,0,114,54,1,0,0,114,44, + 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,102,1,0, + 0,42,6,0,0,115,38,0,0,0,6,2,2,1,22,1, + 18,1,8,3,2,253,12,6,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,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,10,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,71,0,0,0,78,41,2, - 114,83,0,0,0,114,142,0,0,0,114,71,0,0,0,169, - 2,114,221,0,0,0,114,101,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,83, - 6,0,0,115,6,0,0,0,8,2,12,1,16,1,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,221, - 0,0,0,114,101,1,0,0,114,107,1,0,0,114,7,0, - 0,0,114,106,1,0,0,114,8,0,0,0,218,9,112,97, - 116,104,95,104,111,111,107,73,6,0,0,115,4,0,0,0, - 14,10,4,6,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,67,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, - 89,0,0,0,114,65,0,0,0,114,21,1,0,0,114,7, - 0,0,0,114,7,0,0,0,114,8,0,0,0,114,68,1, - 0,0,91,6,0,0,114,61,1,0,0,122,19,70,105,108, - 101,70,105,110,100,101,114,46,95,95,114,101,112,114,95,95, - 114,69,0,0,0,41,15,114,150,0,0,0,114,149,0,0, - 0,114,151,0,0,0,114,152,0,0,0,114,236,0,0,0, - 114,78,1,0,0,114,167,0,0,0,114,229,0,0,0,114, - 161,0,0,0,114,91,1,0,0,114,226,0,0,0,114,102, - 1,0,0,114,234,0,0,0,114,108,1,0,0,114,68,1, - 0,0,114,7,0,0,0,114,7,0,0,0,114,7,0,0, - 0,114,8,0,0,0,114,94,1,0,0,196,5,0,0,115, - 24,0,0,0,8,0,4,2,8,7,8,16,4,4,8,2, - 8,15,10,5,8,51,2,31,10,1,12,17,114,94,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,33,124,5,114,18,124,5,106,1,125, - 4,110,15,124,2,124,3,107,2,114,28,116,2,124,1,124, - 2,131,2,125,4,110,5,116,3,124,1,124,2,131,2,125, - 4,124,5,115,42,116,4,124,1,124,2,124,4,100,3,141, - 3,125,5,122,19,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, - 71,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,95,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,164,0,0,0,114, - 41,1,0,0,114,34,1,0,0,114,213,0,0,0,218,9, - 69,120,99,101,112,116,105,111,110,41,6,90,2,110,115,114, - 141,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,164,0,0,0,114,210, - 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,97,6,0,0,115,36,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,114, - 113,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,30, - 1,0,0,114,187,0,0,0,218,18,101,120,116,101,110,115, - 105,111,110,95,115,117,102,102,105,120,101,115,114,34,1,0, - 0,114,127,0,0,0,114,41,1,0,0,114,113,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, - 208,0,0,0,120,6,0,0,115,8,0,0,0,12,5,8, - 1,8,1,10,1,114,208,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,69,0,0,0,41,1,114,159,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,131,6,0,0,115,2,0,0,0, - 8,2,114,116,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,116,1,0,0,114,208,0,0, - 0,114,15,0,0,0,114,83,1,0,0,114,191,0,0,0, - 114,94,1,0,0,114,108,1,0,0,218,9,109,101,116,97, - 95,112,97,116,104,114,61,0,0,0,114,77,1,0,0,41, - 2,114,115,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,136,6,0,0,115,8,0,0,0,8,2,6,1,20, - 1,16,1,114,118,1,0,0,41,1,114,87,0,0,0,114, - 69,0,0,0,41,3,78,78,78,41,2,114,0,0,0,0, - 114,0,0,0,0,41,1,84,41,85,114,152,0,0,0,114, - 159,0,0,0,114,187,0,0,0,114,91,0,0,0,114,15, - 0,0,0,114,99,0,0,0,114,184,0,0,0,114,25,0, - 0,0,114,231,0,0,0,90,2,110,116,114,18,0,0,0, - 114,215,0,0,0,90,5,112,111,115,105,120,114,50,0,0, - 0,218,3,97,108,108,114,59,0,0,0,114,136,0,0,0, - 114,57,0,0,0,114,62,0,0,0,90,20,95,112,97,116, - 104,115,101,112,115,95,119,105,116,104,95,99,111,108,111,110, - 114,28,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,27,0,0, - 0,114,29,0,0,0,114,21,0,0,0,114,36,0,0,0, - 114,42,0,0,0,114,45,0,0,0,114,67,0,0,0,114, - 74,0,0,0,114,75,0,0,0,114,79,0,0,0,114,80, - 0,0,0,114,83,0,0,0,114,86,0,0,0,114,95,0, - 0,0,218,4,116,121,112,101,218,8,95,95,99,111,100,101, - 95,95,114,186,0,0,0,114,34,0,0,0,114,172,0,0, - 0,114,33,0,0,0,114,39,0,0,0,114,8,1,0,0, - 114,116,0,0,0,114,112,0,0,0,114,127,0,0,0,114, - 61,0,0,0,114,114,1,0,0,114,232,0,0,0,114,113, - 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,121,0,0,0,114,128, - 0,0,0,114,135,0,0,0,114,137,0,0,0,114,139,0, - 0,0,114,160,0,0,0,114,167,0,0,0,114,176,0,0, - 0,114,180,0,0,0,114,182,0,0,0,114,189,0,0,0, - 114,194,0,0,0,114,195,0,0,0,114,200,0,0,0,218, - 6,111,98,106,101,99,116,114,209,0,0,0,114,213,0,0, - 0,114,214,0,0,0,114,235,0,0,0,114,249,0,0,0, - 114,11,1,0,0,114,34,1,0,0,114,41,1,0,0,114, - 30,1,0,0,114,47,1,0,0,114,73,1,0,0,114,77, - 1,0,0,114,94,1,0,0,114,113,1,0,0,114,208,0, - 0,0,114,116,1,0,0,114,118,1,0,0,114,7,0,0, + 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,10,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,71,0,0,0,78,41,2,114,83, + 0,0,0,114,142,0,0,0,114,71,0,0,0,169,2,114, + 221,0,0,0,114,101,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,83,6,0, + 0,115,6,0,0,0,8,2,12,1,16,1,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,221,0,0, + 0,114,101,1,0,0,114,107,1,0,0,114,7,0,0,0, + 114,106,1,0,0,114,8,0,0,0,218,9,112,97,116,104, + 95,104,111,111,107,73,6,0,0,115,4,0,0,0,14,10, + 4,6,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,67,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,89,0, + 0,0,114,65,0,0,0,114,21,1,0,0,114,7,0,0, + 0,114,7,0,0,0,114,8,0,0,0,114,68,1,0,0, + 91,6,0,0,114,61,1,0,0,122,19,70,105,108,101,70, + 105,110,100,101,114,46,95,95,114,101,112,114,95,95,114,69, + 0,0,0,41,15,114,150,0,0,0,114,149,0,0,0,114, + 151,0,0,0,114,152,0,0,0,114,236,0,0,0,114,78, + 1,0,0,114,167,0,0,0,114,229,0,0,0,114,161,0, + 0,0,114,91,1,0,0,114,226,0,0,0,114,102,1,0, + 0,114,234,0,0,0,114,108,1,0,0,114,68,1,0,0, + 114,7,0,0,0,114,7,0,0,0,114,7,0,0,0,114, + 8,0,0,0,114,94,1,0,0,196,5,0,0,115,24,0, + 0,0,8,0,4,2,8,7,8,16,4,4,8,2,8,15, + 10,5,8,51,2,31,10,1,12,17,114,94,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,33,124,5,114,18,124,5,106,1,125,4,110, + 15,124,2,124,3,107,2,114,28,116,2,124,1,124,2,131, + 2,125,4,110,5,116,3,124,1,124,2,131,2,125,4,124, + 5,115,42,116,4,124,1,124,2,124,4,100,3,141,3,125, + 5,122,19,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,71,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,95,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,164,0,0,0,114,41,1, + 0,0,114,34,1,0,0,114,213,0,0,0,218,9,69,120, + 99,101,112,116,105,111,110,41,6,90,2,110,115,114,141,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,164,0,0,0,114,210,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,180, - 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,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,4, - 6,10,1,8,30,8,6,8,8,8,10,8,9,8,5,4, - 7,10,1,8,8,10,5,10,22,0,127,16,30,12,1,4, - 2,4,1,6,2,4,1,10,1,8,2,6,2,8,2,16, - 2,8,71,8,40,8,19,8,12,8,12,8,31,8,20,8, - 33,8,28,10,24,10,13,10,10,8,11,6,14,4,3,2, - 1,12,255,14,73,14,67,16,30,0,127,14,17,18,50,18, - 45,18,25,14,53,14,63,14,49,0,127,14,29,0,127,10, - 30,8,23,8,11,12,5, + 218,14,95,102,105,120,95,117,112,95,109,111,100,117,108,101, + 97,6,0,0,115,36,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,114,113,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,30,1,0, + 0,114,187,0,0,0,218,18,101,120,116,101,110,115,105,111, + 110,95,115,117,102,102,105,120,101,115,114,34,1,0,0,114, + 127,0,0,0,114,41,1,0,0,114,113,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,208,0, + 0,0,120,6,0,0,115,8,0,0,0,12,5,8,1,8, + 1,10,1,114,208,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,69, + 0,0,0,41,1,114,159,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,131,6,0,0,115,2,0,0,0,8,2, + 114,116,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,116,1,0,0,114,208,0,0,0,114, + 15,0,0,0,114,83,1,0,0,114,191,0,0,0,114,94, + 1,0,0,114,108,1,0,0,218,9,109,101,116,97,95,112, + 97,116,104,114,61,0,0,0,114,77,1,0,0,41,2,114, + 115,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, + 136,6,0,0,115,8,0,0,0,8,2,6,1,20,1,16, + 1,114,118,1,0,0,41,1,114,87,0,0,0,114,69,0, + 0,0,41,3,78,78,78,41,2,114,0,0,0,0,114,0, + 0,0,0,41,1,84,41,85,114,152,0,0,0,114,159,0, + 0,0,114,187,0,0,0,114,91,0,0,0,114,15,0,0, + 0,114,99,0,0,0,114,184,0,0,0,114,25,0,0,0, + 114,231,0,0,0,90,2,110,116,114,18,0,0,0,114,215, + 0,0,0,90,5,112,111,115,105,120,114,50,0,0,0,218, + 3,97,108,108,114,59,0,0,0,114,136,0,0,0,114,57, + 0,0,0,114,62,0,0,0,90,20,95,112,97,116,104,115, + 101,112,115,95,119,105,116,104,95,99,111,108,111,110,114,28, + 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,27,0,0,0,114, + 29,0,0,0,114,21,0,0,0,114,36,0,0,0,114,42, + 0,0,0,114,45,0,0,0,114,67,0,0,0,114,74,0, + 0,0,114,75,0,0,0,114,79,0,0,0,114,80,0,0, + 0,114,83,0,0,0,114,86,0,0,0,114,95,0,0,0, + 218,4,116,121,112,101,218,8,95,95,99,111,100,101,95,95, + 114,186,0,0,0,114,34,0,0,0,114,172,0,0,0,114, + 33,0,0,0,114,39,0,0,0,114,8,1,0,0,114,116, + 0,0,0,114,112,0,0,0,114,127,0,0,0,114,61,0, + 0,0,114,114,1,0,0,114,232,0,0,0,114,113,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,121,0,0,0,114,128,0,0, + 0,114,135,0,0,0,114,137,0,0,0,114,139,0,0,0, + 114,160,0,0,0,114,167,0,0,0,114,176,0,0,0,114, + 180,0,0,0,114,182,0,0,0,114,189,0,0,0,114,194, + 0,0,0,114,195,0,0,0,114,200,0,0,0,218,6,111, + 98,106,101,99,116,114,209,0,0,0,114,213,0,0,0,114, + 214,0,0,0,114,235,0,0,0,114,249,0,0,0,114,11, + 1,0,0,114,34,1,0,0,114,41,1,0,0,114,30,1, + 0,0,114,47,1,0,0,114,73,1,0,0,114,77,1,0, + 0,114,94,1,0,0,114,113,1,0,0,114,208,0,0,0, + 114,116,1,0,0,114,118,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,180,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,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,4,6,10, + 1,8,30,8,6,8,8,8,10,8,9,8,5,4,7,10, + 1,8,8,10,5,10,22,0,127,16,30,12,1,4,2,4, + 1,6,2,4,1,10,1,8,2,6,2,8,2,16,2,8, + 71,8,40,8,19,8,12,8,12,8,31,8,20,8,33,8, + 28,10,24,10,13,10,10,8,11,6,14,4,3,2,1,12, + 255,14,73,14,67,16,30,0,127,14,17,18,50,18,45,18, + 25,14,53,14,63,14,49,0,127,14,29,0,127,10,30,8, + 23,8,11,12,5, }; diff --git a/Python/importlib_zipimport.h b/Python/importlib_zipimport.h index fa00ffc89ea26..9db4e0d3bd0c7 100644 --- a/Python/importlib_zipimport.h +++ b/Python/importlib_zipimport.h @@ -118,946 +118,946 @@ const unsigned char _Py_M__zipimport[] = { 101,32,111,102,32,116,104,101,10,32,32,32,32,122,105,112, 102,105,108,101,32,116,97,114,103,101,116,101,100,46,10,32, 32,32,32,99,2,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,9,0,0,0,67,0,0,0,115,34,1,0, + 8,0,0,0,9,0,0,0,67,0,0,0,115,36,1,0, 0,116,0,124,1,116,1,131,2,115,14,100,1,100,0,108, 2,125,2,124,2,160,3,124,1,161,1,125,1,124,1,115, 22,116,4,100,2,124,1,100,3,141,2,130,1,116,5,114, 30,124,1,160,6,116,5,116,7,161,2,125,1,103,0,125, 3,9,0,122,7,116,8,160,9,124,1,161,1,125,4,87, - 0,110,34,4,0,116,10,116,11,102,2,121,144,1,0,1, + 0,110,35,4,0,116,10,116,11,102,2,121,75,1,0,1, 0,1,0,116,8,160,12,124,1,161,1,92,2,125,5,125, 6,124,5,124,1,107,2,114,66,116,4,100,5,124,1,100, 3,141,2,130,1,124,5,125,1,124,3,160,13,124,6,161, - 1,1,0,89,0,110,14,124,4,106,14,100,6,64,0,100, - 7,107,3,114,88,116,4,100,5,124,1,100,3,141,2,130, - 1,113,90,113,33,122,6,116,15,124,1,25,0,125,7,87, - 0,110,15,4,0,116,16,121,143,1,0,1,0,1,0,116, - 17,124,1,131,1,125,7,124,7,116,15,124,1,60,0,89, - 0,124,7,124,0,95,18,124,1,124,0,95,19,116,8,106, - 20,124,3,100,0,100,0,100,8,133,3,25,0,142,0,124, - 0,95,21,124,0,106,21,114,141,124,0,4,0,106,21,116, - 7,55,0,2,0,95,21,100,0,83,0,100,0,83,0,119, - 0,119,0,41,9,78,114,0,0,0,0,122,21,97,114,99, - 104,105,118,101,32,112,97,116,104,32,105,115,32,101,109,112, - 116,121,169,1,218,4,112,97,116,104,84,122,14,110,111,116, - 32,97,32,90,105,112,32,102,105,108,101,105,0,240,0,0, - 105,0,128,0,0,233,255,255,255,255,41,22,218,10,105,115, - 105,110,115,116,97,110,99,101,218,3,115,116,114,218,2,111, - 115,90,8,102,115,100,101,99,111,100,101,114,3,0,0,0, - 218,12,97,108,116,95,112,97,116,104,95,115,101,112,218,7, - 114,101,112,108,97,99,101,218,8,112,97,116,104,95,115,101, - 112,218,19,95,98,111,111,116,115,116,114,97,112,95,101,120, - 116,101,114,110,97,108,90,10,95,112,97,116,104,95,115,116, - 97,116,218,7,79,83,69,114,114,111,114,218,10,86,97,108, - 117,101,69,114,114,111,114,90,11,95,112,97,116,104,95,115, - 112,108,105,116,218,6,97,112,112,101,110,100,90,7,115,116, - 95,109,111,100,101,218,20,95,122,105,112,95,100,105,114,101, - 99,116,111,114,121,95,99,97,99,104,101,218,8,75,101,121, - 69,114,114,111,114,218,15,95,114,101,97,100,95,100,105,114, - 101,99,116,111,114,121,218,6,95,102,105,108,101,115,218,7, - 97,114,99,104,105,118,101,218,10,95,112,97,116,104,95,106, - 111,105,110,218,6,112,114,101,102,105,120,41,8,218,4,115, - 101,108,102,114,13,0,0,0,114,17,0,0,0,114,31,0, - 0,0,90,2,115,116,90,7,100,105,114,110,97,109,101,90, - 8,98,97,115,101,110,97,109,101,218,5,102,105,108,101,115, - 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, - 8,95,95,105,110,105,116,95,95,64,0,0,0,115,68,0, - 0,0,10,1,8,1,10,1,4,1,12,1,4,1,12,1, - 4,2,2,1,2,1,14,1,16,1,14,3,8,1,12,1, - 4,1,14,1,14,3,12,2,2,1,2,240,2,18,12,1, - 12,1,8,1,10,1,6,1,6,1,22,2,6,1,18,1, - 4,255,2,249,2,239,122,20,122,105,112,105,109,112,111,114, - 116,101,114,46,95,95,105,110,105,116,95,95,78,99,3,0, - 0,0,0,0,0,0,0,0,0,0,5,0,0,0,4,0, - 0,0,67,0,0,0,115,90,0,0,0,116,0,160,1,100, - 1,116,2,161,2,1,0,116,3,124,0,124,1,131,2,125, - 3,124,3,100,2,117,1,114,19,124,0,103,0,102,2,83, - 0,116,4,124,0,124,1,131,2,125,4,116,5,124,0,124, - 4,131,2,114,41,100,2,124,0,106,6,155,0,116,7,155, - 0,124,4,155,0,157,3,103,1,102,2,83,0,100,2,103, - 0,102,2,83,0,41,3,97,47,2,0,0,102,105,110,100, - 95,108,111,97,100,101,114,40,102,117,108,108,110,97,109,101, - 44,32,112,97,116,104,61,78,111,110,101,41,32,45,62,32, - 115,101,108,102,44,32,115,116,114,32,111,114,32,78,111,110, - 101,46,10,10,32,32,32,32,32,32,32,32,83,101,97,114, - 99,104,32,102,111,114,32,97,32,109,111,100,117,108,101,32, - 115,112,101,99,105,102,105,101,100,32,98,121,32,39,102,117, - 108,108,110,97,109,101,39,46,32,39,102,117,108,108,110,97, - 109,101,39,32,109,117,115,116,32,98,101,32,116,104,101,10, - 32,32,32,32,32,32,32,32,102,117,108,108,121,32,113,117, - 97,108,105,102,105,101,100,32,40,100,111,116,116,101,100,41, - 32,109,111,100,117,108,101,32,110,97,109,101,46,32,73,116, - 32,114,101,116,117,114,110,115,32,116,104,101,32,122,105,112, - 105,109,112,111,114,116,101,114,10,32,32,32,32,32,32,32, - 32,105,110,115,116,97,110,99,101,32,105,116,115,101,108,102, - 32,105,102,32,116,104,101,32,109,111,100,117,108,101,32,119, - 97,115,32,102,111,117,110,100,44,32,97,32,115,116,114,105, - 110,103,32,99,111,110,116,97,105,110,105,110,103,32,116,104, - 101,10,32,32,32,32,32,32,32,32,102,117,108,108,32,112, - 97,116,104,32,110,97,109,101,32,105,102,32,105,116,39,115, - 32,112,111,115,115,105,98,108,121,32,97,32,112,111,114,116, - 105,111,110,32,111,102,32,97,32,110,97,109,101,115,112,97, - 99,101,32,112,97,99,107,97,103,101,44,10,32,32,32,32, - 32,32,32,32,111,114,32,78,111,110,101,32,111,116,104,101, - 114,119,105,115,101,46,32,84,104,101,32,111,112,116,105,111, - 110,97,108,32,39,112,97,116,104,39,32,97,114,103,117,109, - 101,110,116,32,105,115,32,105,103,110,111,114,101,100,32,45, - 45,32,105,116,39,115,10,32,32,32,32,32,32,32,32,116, - 104,101,114,101,32,102,111,114,32,99,111,109,112,97,116,105, - 98,105,108,105,116,121,32,119,105,116,104,32,116,104,101,32, - 105,109,112,111,114,116,101,114,32,112,114,111,116,111,99,111, - 108,46,10,10,32,32,32,32,32,32,32,32,68,101,112,114, - 101,99,97,116,101,100,32,115,105,110,99,101,32,80,121,116, - 104,111,110,32,51,46,49,48,46,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,32,32,32,32,32,32,32,32,122,102,122,105,112, - 105,109,112,111,114,116,101,114,46,102,105,110,100,95,108,111, - 97,100,101,114,40,41,32,105,115,32,100,101,112,114,101,99, - 97,116,101,100,32,97,110,100,32,115,108,97,116,101,100,32, - 102,111,114,32,114,101,109,111,118,97,108,32,105,110,32,80, - 121,116,104,111,110,32,51,46,49,50,59,32,117,115,101,32, + 1,1,0,89,0,110,15,119,0,124,4,106,14,100,6,64, + 0,100,7,107,3,114,89,116,4,100,5,124,1,100,3,141, + 2,130,1,113,91,113,33,122,6,116,15,124,1,25,0,125, + 7,87,0,110,17,4,0,116,16,121,114,1,0,1,0,1, + 0,116,17,124,1,131,1,125,7,124,7,116,15,124,1,60, + 0,89,0,110,1,119,0,124,7,124,0,95,18,124,1,124, + 0,95,19,116,8,106,20,124,3,100,0,100,0,100,8,133, + 3,25,0,142,0,124,0,95,21,124,0,106,21,114,144,124, + 0,4,0,106,21,116,7,55,0,2,0,95,21,100,0,83, + 0,100,0,83,0,41,9,78,114,0,0,0,0,122,21,97, + 114,99,104,105,118,101,32,112,97,116,104,32,105,115,32,101, + 109,112,116,121,169,1,218,4,112,97,116,104,84,122,14,110, + 111,116,32,97,32,90,105,112,32,102,105,108,101,105,0,240, + 0,0,105,0,128,0,0,233,255,255,255,255,41,22,218,10, + 105,115,105,110,115,116,97,110,99,101,218,3,115,116,114,218, + 2,111,115,90,8,102,115,100,101,99,111,100,101,114,3,0, + 0,0,218,12,97,108,116,95,112,97,116,104,95,115,101,112, + 218,7,114,101,112,108,97,99,101,218,8,112,97,116,104,95, + 115,101,112,218,19,95,98,111,111,116,115,116,114,97,112,95, + 101,120,116,101,114,110,97,108,90,10,95,112,97,116,104,95, + 115,116,97,116,218,7,79,83,69,114,114,111,114,218,10,86, + 97,108,117,101,69,114,114,111,114,90,11,95,112,97,116,104, + 95,115,112,108,105,116,218,6,97,112,112,101,110,100,90,7, + 115,116,95,109,111,100,101,218,20,95,122,105,112,95,100,105, + 114,101,99,116,111,114,121,95,99,97,99,104,101,218,8,75, + 101,121,69,114,114,111,114,218,15,95,114,101,97,100,95,100, + 105,114,101,99,116,111,114,121,218,6,95,102,105,108,101,115, + 218,7,97,114,99,104,105,118,101,218,10,95,112,97,116,104, + 95,106,111,105,110,218,6,112,114,101,102,105,120,41,8,218, + 4,115,101,108,102,114,13,0,0,0,114,17,0,0,0,114, + 31,0,0,0,90,2,115,116,90,7,100,105,114,110,97,109, + 101,90,8,98,97,115,101,110,97,109,101,218,5,102,105,108, + 101,115,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,218,8,95,95,105,110,105,116,95,95,64,0,0,0,115, + 68,0,0,0,10,1,8,1,10,1,4,1,12,1,4,1, + 12,1,4,2,2,1,2,1,14,1,16,1,14,3,8,1, + 12,1,4,1,14,1,2,249,14,10,12,2,2,1,2,240, + 2,18,12,1,12,1,8,1,12,1,2,254,6,3,6,1, + 22,2,6,1,18,1,4,255,122,20,122,105,112,105,109,112, + 111,114,116,101,114,46,95,95,105,110,105,116,95,95,78,99, + 3,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0, + 4,0,0,0,67,0,0,0,115,90,0,0,0,116,0,160, + 1,100,1,116,2,161,2,1,0,116,3,124,0,124,1,131, + 2,125,3,124,3,100,2,117,1,114,19,124,0,103,0,102, + 2,83,0,116,4,124,0,124,1,131,2,125,4,116,5,124, + 0,124,4,131,2,114,41,100,2,124,0,106,6,155,0,116, + 7,155,0,124,4,155,0,157,3,103,1,102,2,83,0,100, + 2,103,0,102,2,83,0,41,3,97,47,2,0,0,102,105, + 110,100,95,108,111,97,100,101,114,40,102,117,108,108,110,97, + 109,101,44,32,112,97,116,104,61,78,111,110,101,41,32,45, + 62,32,115,101,108,102,44,32,115,116,114,32,111,114,32,78, + 111,110,101,46,10,10,32,32,32,32,32,32,32,32,83,101, + 97,114,99,104,32,102,111,114,32,97,32,109,111,100,117,108, + 101,32,115,112,101,99,105,102,105,101,100,32,98,121,32,39, + 102,117,108,108,110,97,109,101,39,46,32,39,102,117,108,108, + 110,97,109,101,39,32,109,117,115,116,32,98,101,32,116,104, + 101,10,32,32,32,32,32,32,32,32,102,117,108,108,121,32, + 113,117,97,108,105,102,105,101,100,32,40,100,111,116,116,101, + 100,41,32,109,111,100,117,108,101,32,110,97,109,101,46,32, + 73,116,32,114,101,116,117,114,110,115,32,116,104,101,32,122, + 105,112,105,109,112,111,114,116,101,114,10,32,32,32,32,32, + 32,32,32,105,110,115,116,97,110,99,101,32,105,116,115,101, + 108,102,32,105,102,32,116,104,101,32,109,111,100,117,108,101, + 32,119,97,115,32,102,111,117,110,100,44,32,97,32,115,116, + 114,105,110,103,32,99,111,110,116,97,105,110,105,110,103,32, + 116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,108, + 32,112,97,116,104,32,110,97,109,101,32,105,102,32,105,116, + 39,115,32,112,111,115,115,105,98,108,121,32,97,32,112,111, + 114,116,105,111,110,32,111,102,32,97,32,110,97,109,101,115, + 112,97,99,101,32,112,97,99,107,97,103,101,44,10,32,32, + 32,32,32,32,32,32,111,114,32,78,111,110,101,32,111,116, + 104,101,114,119,105,115,101,46,32,84,104,101,32,111,112,116, + 105,111,110,97,108,32,39,112,97,116,104,39,32,97,114,103, + 117,109,101,110,116,32,105,115,32,105,103,110,111,114,101,100, + 32,45,45,32,105,116,39,115,10,32,32,32,32,32,32,32, + 32,116,104,101,114,101,32,102,111,114,32,99,111,109,112,97, + 116,105,98,105,108,105,116,121,32,119,105,116,104,32,116,104, + 101,32,105,109,112,111,114,116,101,114,32,112,114,111,116,111, + 99,111,108,46,10,10,32,32,32,32,32,32,32,32,68,101, + 112,114,101,99,97,116,101,100,32,115,105,110,99,101,32,80, + 121,116,104,111,110,32,51,46,49,48,46,32,85,115,101,32, 102,105,110,100,95,115,112,101,99,40,41,32,105,110,115,116, - 101,97,100,78,41,8,218,9,95,119,97,114,110,105,110,103, - 115,218,4,119,97,114,110,218,18,68,101,112,114,101,99,97, - 116,105,111,110,87,97,114,110,105,110,103,218,16,95,103,101, - 116,95,109,111,100,117,108,101,95,105,110,102,111,218,16,95, - 103,101,116,95,109,111,100,117,108,101,95,112,97,116,104,218, - 7,95,105,115,95,100,105,114,114,29,0,0,0,114,20,0, - 0,0,41,5,114,32,0,0,0,218,8,102,117,108,108,110, - 97,109,101,114,13,0,0,0,218,2,109,105,218,7,109,111, - 100,112,97,116,104,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,218,11,102,105,110,100,95,108,111,97,100,101, - 114,110,0,0,0,115,20,0,0,0,6,12,2,2,4,254, - 10,3,8,1,8,2,10,7,10,1,24,4,8,2,122,23, - 122,105,112,105,109,112,111,114,116,101,114,46,102,105,110,100, - 95,108,111,97,100,101,114,99,3,0,0,0,0,0,0,0, - 0,0,0,0,3,0,0,0,4,0,0,0,67,0,0,0, - 115,28,0,0,0,116,0,160,1,100,1,116,2,161,2,1, - 0,124,0,160,3,124,1,124,2,161,2,100,2,25,0,83, - 0,41,4,97,203,1,0,0,102,105,110,100,95,109,111,100, - 117,108,101,40,102,117,108,108,110,97,109,101,44,32,112,97, - 116,104,61,78,111,110,101,41,32,45,62,32,115,101,108,102, - 32,111,114,32,78,111,110,101,46,10,10,32,32,32,32,32, - 32,32,32,83,101,97,114,99,104,32,102,111,114,32,97,32, - 109,111,100,117,108,101,32,115,112,101,99,105,102,105,101,100, - 32,98,121,32,39,102,117,108,108,110,97,109,101,39,46,32, - 39,102,117,108,108,110,97,109,101,39,32,109,117,115,116,32, - 98,101,32,116,104,101,10,32,32,32,32,32,32,32,32,102, - 117,108,108,121,32,113,117,97,108,105,102,105,101,100,32,40, - 100,111,116,116,101,100,41,32,109,111,100,117,108,101,32,110, - 97,109,101,46,32,73,116,32,114,101,116,117,114,110,115,32, - 116,104,101,32,122,105,112,105,109,112,111,114,116,101,114,10, - 32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101, - 32,105,116,115,101,108,102,32,105,102,32,116,104,101,32,109, - 111,100,117,108,101,32,119,97,115,32,102,111,117,110,100,44, - 32,111,114,32,78,111,110,101,32,105,102,32,105,116,32,119, - 97,115,110,39,116,46,10,32,32,32,32,32,32,32,32,84, - 104,101,32,111,112,116,105,111,110,97,108,32,39,112,97,116, - 104,39,32,97,114,103,117,109,101,110,116,32,105,115,32,105, - 103,110,111,114,101,100,32,45,45,32,105,116,39,115,32,116, - 104,101,114,101,32,102,111,114,32,99,111,109,112,97,116,105, - 98,105,108,105,116,121,10,32,32,32,32,32,32,32,32,119, - 105,116,104,32,116,104,101,32,105,109,112,111,114,116,101,114, - 32,112,114,111,116,111,99,111,108,46,10,10,32,32,32,32, - 32,32,32,32,68,101,112,114,101,99,97,116,101,100,32,115, - 105,110,99,101,32,80,121,116,104,111,110,32,51,46,49,48, - 46,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,32,32,32,32,32, - 32,32,32,122,102,122,105,112,105,109,112,111,114,116,101,114, - 46,102,105,110,100,95,109,111,100,117,108,101,40,41,32,105, - 115,32,100,101,112,114,101,99,97,116,101,100,32,97,110,100, - 32,115,108,97,116,101,100,32,102,111,114,32,114,101,109,111, - 118,97,108,32,105,110,32,80,121,116,104,111,110,32,51,46, - 49,50,59,32,117,115,101,32,102,105,110,100,95,115,112,101, - 99,40,41,32,105,110,115,116,101,97,100,114,0,0,0,0, - 78,41,4,114,35,0,0,0,114,36,0,0,0,114,37,0, - 0,0,114,44,0,0,0,41,3,114,32,0,0,0,114,41, - 0,0,0,114,13,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,218,11,102,105,110,100,95,109,111, - 100,117,108,101,147,0,0,0,115,8,0,0,0,6,11,2, - 2,4,254,16,3,122,23,122,105,112,105,109,112,111,114,116, - 101,114,46,102,105,110,100,95,109,111,100,117,108,101,99,3, - 0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,5, - 0,0,0,67,0,0,0,115,108,0,0,0,116,0,124,0, - 124,1,131,2,125,3,124,3,100,1,117,1,114,17,116,1, - 106,2,124,1,124,0,124,3,100,2,141,3,83,0,116,3, - 124,0,124,1,131,2,125,4,116,4,124,0,124,4,131,2, - 114,52,124,0,106,5,155,0,116,6,155,0,124,4,155,0, - 157,3,125,5,116,1,106,7,124,1,100,1,100,3,100,4, - 141,3,125,6,124,6,106,8,160,9,124,5,161,1,1,0, - 124,6,83,0,100,1,83,0,41,5,122,107,67,114,101,97, - 116,101,32,97,32,77,111,100,117,108,101,83,112,101,99,32, + 101,97,100,46,10,32,32,32,32,32,32,32,32,122,102,122, + 105,112,105,109,112,111,114,116,101,114,46,102,105,110,100,95, + 108,111,97,100,101,114,40,41,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,32,97,110,100,32,115,108,97,116,101, + 100,32,102,111,114,32,114,101,109,111,118,97,108,32,105,110, + 32,80,121,116,104,111,110,32,51,46,49,50,59,32,117,115, + 101,32,102,105,110,100,95,115,112,101,99,40,41,32,105,110, + 115,116,101,97,100,78,41,8,218,9,95,119,97,114,110,105, + 110,103,115,218,4,119,97,114,110,218,18,68,101,112,114,101, + 99,97,116,105,111,110,87,97,114,110,105,110,103,218,16,95, + 103,101,116,95,109,111,100,117,108,101,95,105,110,102,111,218, + 16,95,103,101,116,95,109,111,100,117,108,101,95,112,97,116, + 104,218,7,95,105,115,95,100,105,114,114,29,0,0,0,114, + 20,0,0,0,41,5,114,32,0,0,0,218,8,102,117,108, + 108,110,97,109,101,114,13,0,0,0,218,2,109,105,218,7, + 109,111,100,112,97,116,104,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,218,11,102,105,110,100,95,108,111,97, + 100,101,114,110,0,0,0,115,20,0,0,0,6,12,2,2, + 4,254,10,3,8,1,8,2,10,7,10,1,24,4,8,2, + 122,23,122,105,112,105,109,112,111,114,116,101,114,46,102,105, + 110,100,95,108,111,97,100,101,114,99,3,0,0,0,0,0, + 0,0,0,0,0,0,3,0,0,0,4,0,0,0,67,0, + 0,0,115,28,0,0,0,116,0,160,1,100,1,116,2,161, + 2,1,0,124,0,160,3,124,1,124,2,161,2,100,2,25, + 0,83,0,41,4,97,203,1,0,0,102,105,110,100,95,109, + 111,100,117,108,101,40,102,117,108,108,110,97,109,101,44,32, + 112,97,116,104,61,78,111,110,101,41,32,45,62,32,115,101, + 108,102,32,111,114,32,78,111,110,101,46,10,10,32,32,32, + 32,32,32,32,32,83,101,97,114,99,104,32,102,111,114,32, + 97,32,109,111,100,117,108,101,32,115,112,101,99,105,102,105, + 101,100,32,98,121,32,39,102,117,108,108,110,97,109,101,39, + 46,32,39,102,117,108,108,110,97,109,101,39,32,109,117,115, + 116,32,98,101,32,116,104,101,10,32,32,32,32,32,32,32, + 32,102,117,108,108,121,32,113,117,97,108,105,102,105,101,100, + 32,40,100,111,116,116,101,100,41,32,109,111,100,117,108,101, + 32,110,97,109,101,46,32,73,116,32,114,101,116,117,114,110, + 115,32,116,104,101,32,122,105,112,105,109,112,111,114,116,101, + 114,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110, + 99,101,32,105,116,115,101,108,102,32,105,102,32,116,104,101, + 32,109,111,100,117,108,101,32,119,97,115,32,102,111,117,110, + 100,44,32,111,114,32,78,111,110,101,32,105,102,32,105,116, + 32,119,97,115,110,39,116,46,10,32,32,32,32,32,32,32, + 32,84,104,101,32,111,112,116,105,111,110,97,108,32,39,112, + 97,116,104,39,32,97,114,103,117,109,101,110,116,32,105,115, + 32,105,103,110,111,114,101,100,32,45,45,32,105,116,39,115, + 32,116,104,101,114,101,32,102,111,114,32,99,111,109,112,97, + 116,105,98,105,108,105,116,121,10,32,32,32,32,32,32,32, + 32,119,105,116,104,32,116,104,101,32,105,109,112,111,114,116, + 101,114,32,112,114,111,116,111,99,111,108,46,10,10,32,32, + 32,32,32,32,32,32,68,101,112,114,101,99,97,116,101,100, + 32,115,105,110,99,101,32,80,121,116,104,111,110,32,51,46, + 49,48,46,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,32,32,32, + 32,32,32,32,32,122,102,122,105,112,105,109,112,111,114,116, + 101,114,46,102,105,110,100,95,109,111,100,117,108,101,40,41, + 32,105,115,32,100,101,112,114,101,99,97,116,101,100,32,97, + 110,100,32,115,108,97,116,101,100,32,102,111,114,32,114,101, + 109,111,118,97,108,32,105,110,32,80,121,116,104,111,110,32, + 51,46,49,50,59,32,117,115,101,32,102,105,110,100,95,115, + 112,101,99,40,41,32,105,110,115,116,101,97,100,114,0,0, + 0,0,78,41,4,114,35,0,0,0,114,36,0,0,0,114, + 37,0,0,0,114,44,0,0,0,41,3,114,32,0,0,0, + 114,41,0,0,0,114,13,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,218,11,102,105,110,100,95, + 109,111,100,117,108,101,147,0,0,0,115,8,0,0,0,6, + 11,2,2,4,254,16,3,122,23,122,105,112,105,109,112,111, + 114,116,101,114,46,102,105,110,100,95,109,111,100,117,108,101, + 99,3,0,0,0,0,0,0,0,0,0,0,0,7,0,0, + 0,5,0,0,0,67,0,0,0,115,108,0,0,0,116,0, + 124,0,124,1,131,2,125,3,124,3,100,1,117,1,114,17, + 116,1,106,2,124,1,124,0,124,3,100,2,141,3,83,0, + 116,3,124,0,124,1,131,2,125,4,116,4,124,0,124,4, + 131,2,114,52,124,0,106,5,155,0,116,6,155,0,124,4, + 155,0,157,3,125,5,116,1,106,7,124,1,100,1,100,3, + 100,4,141,3,125,6,124,6,106,8,160,9,124,5,161,1, + 1,0,124,6,83,0,100,1,83,0,41,5,122,107,67,114, + 101,97,116,101,32,97,32,77,111,100,117,108,101,83,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,78,111,110, + 101,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32, + 99,97,110,110,111,116,32,98,101,32,102,111,117,110,100,46, + 10,32,32,32,32,32,32,32,32,78,41,1,218,10,105,115, + 95,112,97,99,107,97,103,101,84,41,3,218,4,110,97,109, + 101,90,6,108,111,97,100,101,114,114,46,0,0,0,41,10, + 114,38,0,0,0,218,10,95,98,111,111,116,115,116,114,97, + 112,90,16,115,112,101,99,95,102,114,111,109,95,108,111,97, + 100,101,114,114,39,0,0,0,114,40,0,0,0,114,29,0, + 0,0,114,20,0,0,0,90,10,77,111,100,117,108,101,83, + 112,101,99,90,26,115,117,98,109,111,100,117,108,101,95,115, + 101,97,114,99,104,95,108,111,99,97,116,105,111,110,115,114, + 24,0,0,0,41,7,114,32,0,0,0,114,41,0,0,0, + 90,6,116,97,114,103,101,116,90,11,109,111,100,117,108,101, + 95,105,110,102,111,114,43,0,0,0,114,13,0,0,0,90, + 4,115,112,101,99,114,9,0,0,0,114,9,0,0,0,114, + 10,0,0,0,218,9,102,105,110,100,95,115,112,101,99,163, + 0,0,0,115,24,0,0,0,10,5,8,1,16,1,10,7, + 10,1,18,4,8,1,2,1,6,255,12,2,4,1,4,2, + 122,21,122,105,112,105,109,112,111,114,116,101,114,46,102,105, + 110,100,95,115,112,101,99,99,2,0,0,0,0,0,0,0, + 0,0,0,0,5,0,0,0,3,0,0,0,67,0,0,0, + 115,20,0,0,0,116,0,124,0,124,1,131,2,92,3,125, + 2,125,3,125,4,124,2,83,0,41,2,122,166,103,101,116, + 95,99,111,100,101,40,102,117,108,108,110,97,109,101,41,32, + 45,62,32,99,111,100,101,32,111,98,106,101,99,116,46,10, + 10,32,32,32,32,32,32,32,32,82,101,116,117,114,110,32, + 116,104,101,32,99,111,100,101,32,111,98,106,101,99,116,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,78,111,110,101,32, - 105,102,32,116,104,101,32,109,111,100,117,108,101,32,99,97, - 110,110,111,116,32,98,101,32,102,111,117,110,100,46,10,32, - 32,32,32,32,32,32,32,78,41,1,218,10,105,115,95,112, - 97,99,107,97,103,101,84,41,3,218,4,110,97,109,101,90, - 6,108,111,97,100,101,114,114,46,0,0,0,41,10,114,38, - 0,0,0,218,10,95,98,111,111,116,115,116,114,97,112,90, - 16,115,112,101,99,95,102,114,111,109,95,108,111,97,100,101, - 114,114,39,0,0,0,114,40,0,0,0,114,29,0,0,0, - 114,20,0,0,0,90,10,77,111,100,117,108,101,83,112,101, - 99,90,26,115,117,98,109,111,100,117,108,101,95,115,101,97, - 114,99,104,95,108,111,99,97,116,105,111,110,115,114,24,0, - 0,0,41,7,114,32,0,0,0,114,41,0,0,0,90,6, - 116,97,114,103,101,116,90,11,109,111,100,117,108,101,95,105, - 110,102,111,114,43,0,0,0,114,13,0,0,0,90,4,115, - 112,101,99,114,9,0,0,0,114,9,0,0,0,114,10,0, - 0,0,218,9,102,105,110,100,95,115,112,101,99,163,0,0, - 0,115,24,0,0,0,10,5,8,1,16,1,10,7,10,1, - 18,4,8,1,2,1,6,255,12,2,4,1,4,2,122,21, - 122,105,112,105,109,112,111,114,116,101,114,46,102,105,110,100, - 95,115,112,101,99,99,2,0,0,0,0,0,0,0,0,0, - 0,0,5,0,0,0,3,0,0,0,67,0,0,0,115,20, - 0,0,0,116,0,124,0,124,1,131,2,92,3,125,2,125, - 3,125,4,124,2,83,0,41,2,122,166,103,101,116,95,99, - 111,100,101,40,102,117,108,108,110,97,109,101,41,32,45,62, - 32,99,111,100,101,32,111,98,106,101,99,116,46,10,10,32, - 32,32,32,32,32,32,32,82,101,116,117,114,110,32,116,104, - 101,32,99,111,100,101,32,111,98,106,101,99,116,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,32,82,97,105,115,101,32,90,105, - 112,73,109,112,111,114,116,69,114,114,111,114,10,32,32,32, - 32,32,32,32,32,105,102,32,116,104,101,32,109,111,100,117, - 108,101,32,99,111,117,108,100,110,39,116,32,98,101,32,105, - 109,112,111,114,116,101,100,46,10,32,32,32,32,32,32,32, - 32,78,169,1,218,16,95,103,101,116,95,109,111,100,117,108, - 101,95,99,111,100,101,169,5,114,32,0,0,0,114,41,0, - 0,0,218,4,99,111,100,101,218,9,105,115,112,97,99,107, - 97,103,101,114,43,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,218,8,103,101,116,95,99,111,100, - 101,190,0,0,0,115,4,0,0,0,16,6,4,1,122,20, - 122,105,112,105,109,112,111,114,116,101,114,46,103,101,116,95, - 99,111,100,101,99,2,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,8,0,0,0,67,0,0,0,115,112,0, - 0,0,116,0,114,8,124,1,160,1,116,0,116,2,161,2, - 125,1,124,1,125,2,124,1,160,3,124,0,106,4,116,2, - 23,0,161,1,114,29,124,1,116,5,124,0,106,4,116,2, - 23,0,131,1,100,1,133,2,25,0,125,2,122,7,124,0, - 106,6,124,2,25,0,125,3,87,0,110,12,4,0,116,7, - 121,55,1,0,1,0,1,0,116,8,100,2,100,3,124,2, - 131,3,130,1,116,9,124,0,106,4,124,3,131,2,83,0, - 119,0,41,4,122,154,103,101,116,95,100,97,116,97,40,112, - 97,116,104,110,97,109,101,41,32,45,62,32,115,116,114,105, - 110,103,32,119,105,116,104,32,102,105,108,101,32,100,97,116, - 97,46,10,10,32,32,32,32,32,32,32,32,82,101,116,117, - 114,110,32,116,104,101,32,100,97,116,97,32,97,115,115,111, - 99,105,97,116,101,100,32,119,105,116,104,32,39,112,97,116, - 104,110,97,109,101,39,46,32,82,97,105,115,101,32,79,83, - 69,114,114,111,114,32,105,102,10,32,32,32,32,32,32,32, - 32,116,104,101,32,102,105,108,101,32,119,97,115,110,39,116, - 32,102,111,117,110,100,46,10,32,32,32,32,32,32,32,32, - 78,114,0,0,0,0,218,0,41,10,114,18,0,0,0,114, - 19,0,0,0,114,20,0,0,0,218,10,115,116,97,114,116, - 115,119,105,116,104,114,29,0,0,0,218,3,108,101,110,114, - 28,0,0,0,114,26,0,0,0,114,22,0,0,0,218,9, - 95,103,101,116,95,100,97,116,97,41,4,114,32,0,0,0, - 218,8,112,97,116,104,110,97,109,101,90,3,107,101,121,218, - 9,116,111,99,95,101,110,116,114,121,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,100, - 97,116,97,200,0,0,0,115,22,0,0,0,4,6,12,1, - 4,2,16,1,22,1,2,2,14,1,12,1,12,1,12,1, - 2,254,122,20,122,105,112,105,109,112,111,114,116,101,114,46, - 103,101,116,95,100,97,116,97,99,2,0,0,0,0,0,0, - 0,0,0,0,0,5,0,0,0,3,0,0,0,67,0,0, - 0,115,20,0,0,0,116,0,124,0,124,1,131,2,92,3, - 125,2,125,3,125,4,124,4,83,0,41,2,122,165,103,101, - 116,95,102,105,108,101,110,97,109,101,40,102,117,108,108,110, - 97,109,101,41,32,45,62,32,102,105,108,101,110,97,109,101, - 32,115,116,114,105,110,103,46,10,10,32,32,32,32,32,32, - 32,32,82,101,116,117,114,110,32,116,104,101,32,102,105,108, - 101,110,97,109,101,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,32,111, - 114,32,114,97,105,115,101,32,90,105,112,73,109,112,111,114, - 116,69,114,114,111,114,10,32,32,32,32,32,32,32,32,105, - 102,32,105,116,32,99,111,117,108,100,110,39,116,32,98,101, + 100,32,109,111,100,117,108,101,46,32,82,97,105,115,101,32, + 90,105,112,73,109,112,111,114,116,69,114,114,111,114,10,32, + 32,32,32,32,32,32,32,105,102,32,116,104,101,32,109,111, + 100,117,108,101,32,99,111,117,108,100,110,39,116,32,98,101, 32,105,109,112,111,114,116,101,100,46,10,32,32,32,32,32, - 32,32,32,78,114,50,0,0,0,114,52,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,218,12,103, - 101,116,95,102,105,108,101,110,97,109,101,221,0,0,0,115, - 4,0,0,0,16,8,4,1,122,24,122,105,112,105,109,112, - 111,114,116,101,114,46,103,101,116,95,102,105,108,101,110,97, - 109,101,99,2,0,0,0,0,0,0,0,0,0,0,0,6, - 0,0,0,8,0,0,0,67,0,0,0,115,126,0,0,0, - 116,0,124,0,124,1,131,2,125,2,124,2,100,1,117,0, - 114,18,116,1,100,2,124,1,155,2,157,2,124,1,100,3, - 141,2,130,1,116,2,124,0,124,1,131,2,125,3,124,2, - 114,32,116,3,160,4,124,3,100,4,161,2,125,4,110,5, - 124,3,155,0,100,5,157,2,125,4,122,7,124,0,106,5, - 124,4,25,0,125,5,87,0,110,9,4,0,116,6,121,62, - 1,0,1,0,1,0,89,0,100,1,83,0,116,7,124,0, - 106,8,124,5,131,2,160,9,161,0,83,0,119,0,41,6, - 122,253,103,101,116,95,115,111,117,114,99,101,40,102,117,108, - 108,110,97,109,101,41,32,45,62,32,115,111,117,114,99,101, - 32,115,116,114,105,110,103,46,10,10,32,32,32,32,32,32, - 32,32,82,101,116,117,114,110,32,116,104,101,32,115,111,117, - 114,99,101,32,99,111,100,101,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,32,82,97,105,115,101,32,90,105,112,73,109,112,111, - 114,116,69,114,114,111,114,10,32,32,32,32,32,32,32,32, - 105,102,32,116,104,101,32,109,111,100,117,108,101,32,99,111, - 117,108,100,110,39,116,32,98,101,32,102,111,117,110,100,44, - 32,114,101,116,117,114,110,32,78,111,110,101,32,105,102,32, - 116,104,101,32,97,114,99,104,105,118,101,32,100,111,101,115, - 10,32,32,32,32,32,32,32,32,99,111,110,116,97,105,110, - 32,116,104,101,32,109,111,100,117,108,101,44,32,98,117,116, - 32,104,97,115,32,110,111,32,115,111,117,114,99,101,32,102, - 111,114,32,105,116,46,10,32,32,32,32,32,32,32,32,78, - 250,18,99,97,110,39,116,32,102,105,110,100,32,109,111,100, - 117,108,101,32,169,1,114,47,0,0,0,250,11,95,95,105, - 110,105,116,95,95,46,112,121,250,3,46,112,121,41,10,114, - 38,0,0,0,114,3,0,0,0,114,39,0,0,0,114,21, - 0,0,0,114,30,0,0,0,114,28,0,0,0,114,26,0, - 0,0,114,59,0,0,0,114,29,0,0,0,218,6,100,101, - 99,111,100,101,41,6,114,32,0,0,0,114,41,0,0,0, - 114,42,0,0,0,114,13,0,0,0,218,8,102,117,108,108, - 112,97,116,104,114,61,0,0,0,114,9,0,0,0,114,9, - 0,0,0,114,10,0,0,0,218,10,103,101,116,95,115,111, - 117,114,99,101,233,0,0,0,115,26,0,0,0,10,7,8, - 1,18,1,10,2,4,1,14,1,10,2,2,2,14,1,12, - 1,6,2,16,1,2,253,122,22,122,105,112,105,109,112,111, - 114,116,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,3,0,0,0, - 4,0,0,0,67,0,0,0,115,40,0,0,0,116,0,124, - 0,124,1,131,2,125,2,124,2,100,1,117,0,114,18,116, - 1,100,2,124,1,155,2,157,2,124,1,100,3,141,2,130, - 1,124,2,83,0,41,4,122,171,105,115,95,112,97,99,107, - 97,103,101,40,102,117,108,108,110,97,109,101,41,32,45,62, - 32,98,111,111,108,46,10,10,32,32,32,32,32,32,32,32, - 82,101,116,117,114,110,32,84,114,117,101,32,105,102,32,116, - 104,101,32,109,111,100,117,108,101,32,115,112,101,99,105,102, - 105,101,100,32,98,121,32,102,117,108,108,110,97,109,101,32, - 105,115,32,97,32,112,97,99,107,97,103,101,46,10,32,32, - 32,32,32,32,32,32,82,97,105,115,101,32,90,105,112,73, - 109,112,111,114,116,69,114,114,111,114,32,105,102,32,116,104, - 101,32,109,111,100,117,108,101,32,99,111,117,108,100,110,39, - 116,32,98,101,32,102,111,117,110,100,46,10,32,32,32,32, - 32,32,32,32,78,114,64,0,0,0,114,65,0,0,0,41, - 2,114,38,0,0,0,114,3,0,0,0,41,3,114,32,0, - 0,0,114,41,0,0,0,114,42,0,0,0,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,114,46,0,0,0, - 3,1,0,0,115,8,0,0,0,10,6,8,1,18,1,4, - 1,122,22,122,105,112,105,109,112,111,114,116,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,9,0,0,0,8,0,0,0,67,0, - 0,0,115,252,0,0,0,100,1,125,2,116,0,160,1,124, - 2,116,2,161,2,1,0,116,3,124,0,124,1,131,2,92, - 3,125,3,125,4,125,5,116,4,106,5,160,6,124,1,161, - 1,125,6,124,6,100,2,117,0,115,31,116,7,124,6,116, - 8,131,2,115,40,116,8,124,1,131,1,125,6,124,6,116, - 4,106,5,124,1,60,0,124,0,124,6,95,9,122,42,124, - 4,114,62,116,10,124,0,124,1,131,2,125,7,116,11,160, - 12,124,0,106,13,124,7,161,2,125,8,124,8,103,1,124, - 6,95,14,116,15,124,6,100,3,131,2,115,70,116,16,124, - 6,95,16,116,11,160,17,124,6,106,18,124,1,124,5,161, - 3,1,0,116,19,124,3,124,6,106,18,131,2,1,0,87, - 0,110,8,1,0,1,0,1,0,116,4,106,5,124,1,61, - 0,130,0,122,7,116,4,106,5,124,1,25,0,125,6,87, - 0,110,14,4,0,116,20,121,125,1,0,1,0,1,0,116, - 21,100,4,124,1,155,2,100,5,157,3,131,1,130,1,116, - 22,160,23,100,6,124,1,124,5,161,3,1,0,124,6,83, - 0,119,0,41,7,97,64,1,0,0,108,111,97,100,95,109, - 111,100,117,108,101,40,102,117,108,108,110,97,109,101,41,32, - 45,62,32,109,111,100,117,108,101,46,10,10,32,32,32,32, - 32,32,32,32,76,111,97,100,32,116,104,101,32,109,111,100, - 117,108,101,32,115,112,101,99,105,102,105,101,100,32,98,121, - 32,39,102,117,108,108,110,97,109,101,39,46,32,39,102,117, - 108,108,110,97,109,101,39,32,109,117,115,116,32,98,101,32, - 116,104,101,10,32,32,32,32,32,32,32,32,102,117,108,108, - 121,32,113,117,97,108,105,102,105,101,100,32,40,100,111,116, - 116,101,100,41,32,109,111,100,117,108,101,32,110,97,109,101, - 46,32,73,116,32,114,101,116,117,114,110,115,32,116,104,101, - 32,105,109,112,111,114,116,101,100,10,32,32,32,32,32,32, - 32,32,109,111,100,117,108,101,44,32,111,114,32,114,97,105, - 115,101,115,32,90,105,112,73,109,112,111,114,116,69,114,114, - 111,114,32,105,102,32,105,116,32,99,111,117,108,100,32,110, - 111,116,32,98,101,32,105,109,112,111,114,116,101,100,46,10, - 10,32,32,32,32,32,32,32,32,68,101,112,114,101,99,97, - 116,101,100,32,115,105,110,99,101,32,80,121,116,104,111,110, - 32,51,46,49,48,46,32,85,115,101,32,101,120,101,99,95, + 32,32,32,78,169,1,218,16,95,103,101,116,95,109,111,100, + 117,108,101,95,99,111,100,101,169,5,114,32,0,0,0,114, + 41,0,0,0,218,4,99,111,100,101,218,9,105,115,112,97, + 99,107,97,103,101,114,43,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,218,8,103,101,116,95,99, + 111,100,101,190,0,0,0,115,4,0,0,0,16,6,4,1, + 122,20,122,105,112,105,109,112,111,114,116,101,114,46,103,101, + 116,95,99,111,100,101,99,2,0,0,0,0,0,0,0,0, + 0,0,0,4,0,0,0,8,0,0,0,67,0,0,0,115, + 112,0,0,0,116,0,114,8,124,1,160,1,116,0,116,2, + 161,2,125,1,124,1,125,2,124,1,160,3,124,0,106,4, + 116,2,23,0,161,1,114,29,124,1,116,5,124,0,106,4, + 116,2,23,0,131,1,100,1,133,2,25,0,125,2,122,7, + 124,0,106,6,124,2,25,0,125,3,87,0,110,13,4,0, + 116,7,121,49,1,0,1,0,1,0,116,8,100,2,100,3, + 124,2,131,3,130,1,119,0,116,9,124,0,106,4,124,3, + 131,2,83,0,41,4,122,154,103,101,116,95,100,97,116,97, + 40,112,97,116,104,110,97,109,101,41,32,45,62,32,115,116, + 114,105,110,103,32,119,105,116,104,32,102,105,108,101,32,100, + 97,116,97,46,10,10,32,32,32,32,32,32,32,32,82,101, + 116,117,114,110,32,116,104,101,32,100,97,116,97,32,97,115, + 115,111,99,105,97,116,101,100,32,119,105,116,104,32,39,112, + 97,116,104,110,97,109,101,39,46,32,82,97,105,115,101,32, + 79,83,69,114,114,111,114,32,105,102,10,32,32,32,32,32, + 32,32,32,116,104,101,32,102,105,108,101,32,119,97,115,110, + 39,116,32,102,111,117,110,100,46,10,32,32,32,32,32,32, + 32,32,78,114,0,0,0,0,218,0,41,10,114,18,0,0, + 0,114,19,0,0,0,114,20,0,0,0,218,10,115,116,97, + 114,116,115,119,105,116,104,114,29,0,0,0,218,3,108,101, + 110,114,28,0,0,0,114,26,0,0,0,114,22,0,0,0, + 218,9,95,103,101,116,95,100,97,116,97,41,4,114,32,0, + 0,0,218,8,112,97,116,104,110,97,109,101,90,3,107,101, + 121,218,9,116,111,99,95,101,110,116,114,121,114,9,0,0, + 0,114,9,0,0,0,114,10,0,0,0,218,8,103,101,116, + 95,100,97,116,97,200,0,0,0,115,22,0,0,0,4,6, + 12,1,4,2,16,1,22,1,2,2,14,1,12,1,12,1, + 2,255,12,2,122,20,122,105,112,105,109,112,111,114,116,101, + 114,46,103,101,116,95,100,97,116,97,99,2,0,0,0,0, + 0,0,0,0,0,0,0,5,0,0,0,3,0,0,0,67, + 0,0,0,115,20,0,0,0,116,0,124,0,124,1,131,2, + 92,3,125,2,125,3,125,4,124,4,83,0,41,2,122,165, + 103,101,116,95,102,105,108,101,110,97,109,101,40,102,117,108, + 108,110,97,109,101,41,32,45,62,32,102,105,108,101,110,97, + 109,101,32,115,116,114,105,110,103,46,10,10,32,32,32,32, + 32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,102, + 105,108,101,110,97,109,101,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, + 32,111,114,32,114,97,105,115,101,32,90,105,112,73,109,112, + 111,114,116,69,114,114,111,114,10,32,32,32,32,32,32,32, + 32,105,102,32,105,116,32,99,111,117,108,100,110,39,116,32, + 98,101,32,105,109,112,111,114,116,101,100,46,10,32,32,32, + 32,32,32,32,32,78,114,50,0,0,0,114,52,0,0,0, + 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, + 12,103,101,116,95,102,105,108,101,110,97,109,101,221,0,0, + 0,115,4,0,0,0,16,8,4,1,122,24,122,105,112,105, + 109,112,111,114,116,101,114,46,103,101,116,95,102,105,108,101, + 110,97,109,101,99,2,0,0,0,0,0,0,0,0,0,0, + 0,6,0,0,0,8,0,0,0,67,0,0,0,115,126,0, + 0,0,116,0,124,0,124,1,131,2,125,2,124,2,100,1, + 117,0,114,18,116,1,100,2,124,1,155,2,157,2,124,1, + 100,3,141,2,130,1,116,2,124,0,124,1,131,2,125,3, + 124,2,114,32,116,3,160,4,124,3,100,4,161,2,125,4, + 110,5,124,3,155,0,100,5,157,2,125,4,122,7,124,0, + 106,5,124,4,25,0,125,5,87,0,110,10,4,0,116,6, + 121,54,1,0,1,0,1,0,89,0,100,1,83,0,119,0, + 116,7,124,0,106,8,124,5,131,2,160,9,161,0,83,0, + 41,6,122,253,103,101,116,95,115,111,117,114,99,101,40,102, + 117,108,108,110,97,109,101,41,32,45,62,32,115,111,117,114, + 99,101,32,115,116,114,105,110,103,46,10,10,32,32,32,32, + 32,32,32,32,82,101,116,117,114,110,32,116,104,101,32,115, + 111,117,114,99,101,32,99,111,100,101,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,32,82,97,105,115,101,32,90,105,112,73,109, + 112,111,114,116,69,114,114,111,114,10,32,32,32,32,32,32, + 32,32,105,102,32,116,104,101,32,109,111,100,117,108,101,32, + 99,111,117,108,100,110,39,116,32,98,101,32,102,111,117,110, + 100,44,32,114,101,116,117,114,110,32,78,111,110,101,32,105, + 102,32,116,104,101,32,97,114,99,104,105,118,101,32,100,111, + 101,115,10,32,32,32,32,32,32,32,32,99,111,110,116,97, + 105,110,32,116,104,101,32,109,111,100,117,108,101,44,32,98, + 117,116,32,104,97,115,32,110,111,32,115,111,117,114,99,101, + 32,102,111,114,32,105,116,46,10,32,32,32,32,32,32,32, + 32,78,250,18,99,97,110,39,116,32,102,105,110,100,32,109, + 111,100,117,108,101,32,169,1,114,47,0,0,0,250,11,95, + 95,105,110,105,116,95,95,46,112,121,250,3,46,112,121,41, + 10,114,38,0,0,0,114,3,0,0,0,114,39,0,0,0, + 114,21,0,0,0,114,30,0,0,0,114,28,0,0,0,114, + 26,0,0,0,114,59,0,0,0,114,29,0,0,0,218,6, + 100,101,99,111,100,101,41,6,114,32,0,0,0,114,41,0, + 0,0,114,42,0,0,0,114,13,0,0,0,218,8,102,117, + 108,108,112,97,116,104,114,61,0,0,0,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,10,103,101,116,95, + 115,111,117,114,99,101,233,0,0,0,115,26,0,0,0,10, + 7,8,1,18,1,10,2,4,1,14,1,10,2,2,2,14, + 1,12,1,6,2,2,254,16,3,122,22,122,105,112,105,109, + 112,111,114,116,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,3,0, + 0,0,4,0,0,0,67,0,0,0,115,40,0,0,0,116, + 0,124,0,124,1,131,2,125,2,124,2,100,1,117,0,114, + 18,116,1,100,2,124,1,155,2,157,2,124,1,100,3,141, + 2,130,1,124,2,83,0,41,4,122,171,105,115,95,112,97, + 99,107,97,103,101,40,102,117,108,108,110,97,109,101,41,32, + 45,62,32,98,111,111,108,46,10,10,32,32,32,32,32,32, + 32,32,82,101,116,117,114,110,32,84,114,117,101,32,105,102, + 32,116,104,101,32,109,111,100,117,108,101,32,115,112,101,99, + 105,102,105,101,100,32,98,121,32,102,117,108,108,110,97,109, + 101,32,105,115,32,97,32,112,97,99,107,97,103,101,46,10, + 32,32,32,32,32,32,32,32,82,97,105,115,101,32,90,105, + 112,73,109,112,111,114,116,69,114,114,111,114,32,105,102,32, + 116,104,101,32,109,111,100,117,108,101,32,99,111,117,108,100, + 110,39,116,32,98,101,32,102,111,117,110,100,46,10,32,32, + 32,32,32,32,32,32,78,114,64,0,0,0,114,65,0,0, + 0,41,2,114,38,0,0,0,114,3,0,0,0,41,3,114, + 32,0,0,0,114,41,0,0,0,114,42,0,0,0,114,9, + 0,0,0,114,9,0,0,0,114,10,0,0,0,114,46,0, + 0,0,3,1,0,0,115,8,0,0,0,10,6,8,1,18, + 1,4,1,122,22,122,105,112,105,109,112,111,114,116,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,9,0,0,0,8,0,0,0, + 67,0,0,0,115,252,0,0,0,100,1,125,2,116,0,160, + 1,124,2,116,2,161,2,1,0,116,3,124,0,124,1,131, + 2,92,3,125,3,125,4,125,5,116,4,106,5,160,6,124, + 1,161,1,125,6,124,6,100,2,117,0,115,31,116,7,124, + 6,116,8,131,2,115,40,116,8,124,1,131,1,125,6,124, + 6,116,4,106,5,124,1,60,0,124,0,124,6,95,9,122, + 42,124,4,114,62,116,10,124,0,124,1,131,2,125,7,116, + 11,160,12,124,0,106,13,124,7,161,2,125,8,124,8,103, + 1,124,6,95,14,116,15,124,6,100,3,131,2,115,70,116, + 16,124,6,95,16,116,11,160,17,124,6,106,18,124,1,124, + 5,161,3,1,0,116,19,124,3,124,6,106,18,131,2,1, + 0,87,0,110,8,1,0,1,0,1,0,116,4,106,5,124, + 1,61,0,130,0,122,7,116,4,106,5,124,1,25,0,125, + 6,87,0,110,15,4,0,116,20,121,116,1,0,1,0,1, + 0,116,21,100,4,124,1,155,2,100,5,157,3,131,1,130, + 1,119,0,116,22,160,23,100,6,124,1,124,5,161,3,1, + 0,124,6,83,0,41,7,97,64,1,0,0,108,111,97,100, + 95,109,111,100,117,108,101,40,102,117,108,108,110,97,109,101, + 41,32,45,62,32,109,111,100,117,108,101,46,10,10,32,32, + 32,32,32,32,32,32,76,111,97,100,32,116,104,101,32,109, + 111,100,117,108,101,32,115,112,101,99,105,102,105,101,100,32, + 98,121,32,39,102,117,108,108,110,97,109,101,39,46,32,39, + 102,117,108,108,110,97,109,101,39,32,109,117,115,116,32,98, + 101,32,116,104,101,10,32,32,32,32,32,32,32,32,102,117, + 108,108,121,32,113,117,97,108,105,102,105,101,100,32,40,100, + 111,116,116,101,100,41,32,109,111,100,117,108,101,32,110,97, + 109,101,46,32,73,116,32,114,101,116,117,114,110,115,32,116, + 104,101,32,105,109,112,111,114,116,101,100,10,32,32,32,32, + 32,32,32,32,109,111,100,117,108,101,44,32,111,114,32,114, + 97,105,115,101,115,32,90,105,112,73,109,112,111,114,116,69, + 114,114,111,114,32,105,102,32,105,116,32,99,111,117,108,100, + 32,110,111,116,32,98,101,32,105,109,112,111,114,116,101,100, + 46,10,10,32,32,32,32,32,32,32,32,68,101,112,114,101, + 99,97,116,101,100,32,115,105,110,99,101,32,80,121,116,104, + 111,110,32,51,46,49,48,46,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,32,32,32,32,32,32,32,32,122,114,122,105, + 112,105,109,112,111,114,116,46,122,105,112,105,109,112,111,114, + 116,101,114,46,108,111,97,100,95,109,111,100,117,108,101,40, + 41,32,105,115,32,100,101,112,114,101,99,97,116,101,100,32, + 97,110,100,32,115,108,97,116,101,100,32,102,111,114,32,114, + 101,109,111,118,97,108,32,105,110,32,80,121,116,104,111,110, + 32,51,46,49,50,59,32,117,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,32,32,32,32,32,32,32,32,122,114,122,105,112,105, - 109,112,111,114,116,46,122,105,112,105,109,112,111,114,116,101, - 114,46,108,111,97,100,95,109,111,100,117,108,101,40,41,32, - 105,115,32,100,101,112,114,101,99,97,116,101,100,32,97,110, - 100,32,115,108,97,116,101,100,32,102,111,114,32,114,101,109, - 111,118,97,108,32,105,110,32,80,121,116,104,111,110,32,51, - 46,49,50,59,32,117,115,101,32,101,120,101,99,95,109,111, - 100,117,108,101,40,41,32,105,110,115,116,101,97,100,78,218, - 12,95,95,98,117,105,108,116,105,110,115,95,95,122,14,76, - 111,97,100,101,100,32,109,111,100,117,108,101,32,122,25,32, - 110,111,116,32,102,111,117,110,100,32,105,110,32,115,121,115, - 46,109,111,100,117,108,101,115,122,30,105,109,112,111,114,116, - 32,123,125,32,35,32,108,111,97,100,101,100,32,102,114,111, - 109,32,90,105,112,32,123,125,41,24,114,35,0,0,0,114, - 36,0,0,0,114,37,0,0,0,114,51,0,0,0,218,3, - 115,121,115,218,7,109,111,100,117,108,101,115,218,3,103,101, - 116,114,15,0,0,0,218,12,95,109,111,100,117,108,101,95, - 116,121,112,101,218,10,95,95,108,111,97,100,101,114,95,95, - 114,39,0,0,0,114,21,0,0,0,114,30,0,0,0,114, - 29,0,0,0,90,8,95,95,112,97,116,104,95,95,218,7, - 104,97,115,97,116,116,114,114,71,0,0,0,90,14,95,102, - 105,120,95,117,112,95,109,111,100,117,108,101,218,8,95,95, - 100,105,99,116,95,95,218,4,101,120,101,99,114,26,0,0, - 0,218,11,73,109,112,111,114,116,69,114,114,111,114,114,48, - 0,0,0,218,16,95,118,101,114,98,111,115,101,95,109,101, - 115,115,97,103,101,41,9,114,32,0,0,0,114,41,0,0, - 0,218,3,109,115,103,114,53,0,0,0,114,54,0,0,0, - 114,43,0,0,0,90,3,109,111,100,114,13,0,0,0,114, - 69,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10, - 0,0,0,218,11,108,111,97,100,95,109,111,100,117,108,101, - 16,1,0,0,115,54,0,0,0,4,9,12,2,16,1,12, - 1,18,1,8,1,10,1,6,1,2,2,4,1,10,3,14, - 1,8,1,10,2,6,1,16,1,16,1,6,1,8,1,2, - 1,2,2,14,1,12,1,16,1,14,1,4,1,2,253,122, - 23,122,105,112,105,109,112,111,114,116,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,8,0,0,0,67,0,0, - 0,115,64,0,0,0,122,10,124,0,160,0,124,1,161,1, - 115,9,87,0,100,1,83,0,87,0,110,9,4,0,116,1, - 121,31,1,0,1,0,1,0,89,0,100,1,83,0,100,2, - 100,3,108,2,109,3,125,2,1,0,124,2,124,0,124,1, - 131,2,83,0,119,0,41,4,122,204,82,101,116,117,114,110, - 32,116,104,101,32,82,101,115,111,117,114,99,101,82,101,97, - 100,101,114,32,102,111,114,32,97,32,112,97,99,107,97,103, - 101,32,105,110,32,97,32,122,105,112,32,102,105,108,101,46, - 10,10,32,32,32,32,32,32,32,32,73,102,32,39,102,117, - 108,108,110,97,109,101,39,32,105,115,32,97,32,112,97,99, - 107,97,103,101,32,119,105,116,104,105,110,32,116,104,101,32, - 122,105,112,32,102,105,108,101,44,32,114,101,116,117,114,110, - 32,116,104,101,10,32,32,32,32,32,32,32,32,39,82,101, - 115,111,117,114,99,101,82,101,97,100,101,114,39,32,111,98, - 106,101,99,116,32,102,111,114,32,116,104,101,32,112,97,99, - 107,97,103,101,46,32,32,79,116,104,101,114,119,105,115,101, - 32,114,101,116,117,114,110,32,78,111,110,101,46,10,32,32, - 32,32,32,32,32,32,78,114,0,0,0,0,41,1,218,9, - 90,105,112,82,101,97,100,101,114,41,4,114,46,0,0,0, - 114,3,0,0,0,90,17,105,109,112,111,114,116,108,105,98, - 46,114,101,97,100,101,114,115,114,84,0,0,0,41,3,114, - 32,0,0,0,114,41,0,0,0,114,84,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,218,19,103, - 101,116,95,114,101,115,111,117,114,99,101,95,114,101,97,100, - 101,114,59,1,0,0,115,18,0,0,0,2,6,10,1,6, - 1,4,255,12,2,6,1,12,1,10,1,2,253,122,31,122, - 105,112,105,109,112,111,114,116,101,114,46,103,101,116,95,114, - 101,115,111,117,114,99,101,95,114,101,97,100,101,114,99,1, - 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8, - 0,0,0,67,0,0,0,115,72,0,0,0,122,15,116,0, - 124,0,106,1,131,1,124,0,95,2,124,0,106,2,116,3, - 124,0,106,1,60,0,87,0,100,1,83,0,4,0,116,4, - 121,35,1,0,1,0,1,0,116,3,160,5,124,0,106,1, - 100,1,161,2,1,0,100,1,124,0,95,2,89,0,100,1, - 83,0,119,0,41,2,122,41,82,101,108,111,97,100,32,116, - 104,101,32,102,105,108,101,32,100,97,116,97,32,111,102,32, - 116,104,101,32,97,114,99,104,105,118,101,32,112,97,116,104, - 46,78,41,6,114,27,0,0,0,114,29,0,0,0,114,28, - 0,0,0,114,25,0,0,0,114,3,0,0,0,218,3,112, - 111,112,169,1,114,32,0,0,0,114,9,0,0,0,114,9, - 0,0,0,114,10,0,0,0,218,17,105,110,118,97,108,105, - 100,97,116,101,95,99,97,99,104,101,115,74,1,0,0,115, - 14,0,0,0,2,2,12,1,18,1,12,1,14,1,12,1, - 2,254,122,29,122,105,112,105,109,112,111,114,116,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,1,0, - 0,0,5,0,0,0,67,0,0,0,115,24,0,0,0,100, - 1,124,0,106,0,155,0,116,1,155,0,124,0,106,2,155, - 0,100,2,157,5,83,0,41,3,78,122,21,60,122,105,112, - 105,109,112,111,114,116,101,114,32,111,98,106,101,99,116,32, - 34,122,2,34,62,41,3,114,29,0,0,0,114,20,0,0, - 0,114,31,0,0,0,114,87,0,0,0,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,218,8,95,95,114,101, - 112,114,95,95,84,1,0,0,115,2,0,0,0,24,1,122, - 20,122,105,112,105,109,112,111,114,116,101,114,46,95,95,114, - 101,112,114,95,95,169,1,78,41,17,114,6,0,0,0,114, - 7,0,0,0,114,8,0,0,0,218,7,95,95,100,111,99, - 95,95,114,34,0,0,0,114,44,0,0,0,114,45,0,0, - 0,114,49,0,0,0,114,55,0,0,0,114,62,0,0,0, - 114,63,0,0,0,114,70,0,0,0,114,46,0,0,0,114, - 83,0,0,0,114,85,0,0,0,114,88,0,0,0,114,89, - 0,0,0,114,9,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,114,4,0,0,0,46,0,0,0, - 115,30,0,0,0,8,0,4,1,8,17,10,46,10,37,10, - 16,8,27,8,10,8,21,8,12,8,26,8,13,8,43,8, - 15,12,10,122,12,95,95,105,110,105,116,95,95,46,112,121, - 99,84,114,66,0,0,0,70,41,3,122,4,46,112,121,99, - 84,70,41,3,114,67,0,0,0,70,70,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,20,0,0,0,124,0,106,0,124,1,160, - 1,100,1,161,1,100,2,25,0,23,0,83,0,41,3,78, - 218,1,46,233,2,0,0,0,41,2,114,31,0,0,0,218, - 10,114,112,97,114,116,105,116,105,111,110,41,2,114,32,0, - 0,0,114,41,0,0,0,114,9,0,0,0,114,9,0,0, - 0,114,10,0,0,0,114,39,0,0,0,102,1,0,0,115, - 2,0,0,0,20,1,114,39,0,0,0,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,18,0,0,0,124,1,116,0,23,0,125, - 2,124,2,124,0,106,1,118,0,83,0,114,90,0,0,0, - 41,2,114,20,0,0,0,114,28,0,0,0,41,3,114,32, - 0,0,0,114,13,0,0,0,90,7,100,105,114,112,97,116, - 104,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, - 114,40,0,0,0,106,1,0,0,115,4,0,0,0,8,4, - 10,2,114,40,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,7,0,0,0,4,0,0,0,67,0,0,0, - 115,56,0,0,0,116,0,124,0,124,1,131,2,125,2,116, - 1,68,0,93,18,92,3,125,3,125,4,125,5,124,2,124, - 3,23,0,125,6,124,6,124,0,106,2,118,0,114,25,124, - 5,2,0,1,0,83,0,113,7,100,0,83,0,114,90,0, - 0,0,41,3,114,39,0,0,0,218,16,95,122,105,112,95, - 115,101,97,114,99,104,111,114,100,101,114,114,28,0,0,0, - 41,7,114,32,0,0,0,114,41,0,0,0,114,13,0,0, - 0,218,6,115,117,102,102,105,120,218,10,105,115,98,121,116, - 101,99,111,100,101,114,54,0,0,0,114,69,0,0,0,114, - 9,0,0,0,114,9,0,0,0,114,10,0,0,0,114,38, - 0,0,0,115,1,0,0,115,14,0,0,0,10,1,14,1, - 8,1,10,1,8,1,2,255,4,2,114,38,0,0,0,99, - 1,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0, - 9,0,0,0,67,0,0,0,115,226,4,0,0,122,7,116, - 0,160,1,124,0,161,1,125,1,87,0,110,16,4,0,116, - 2,144,2,121,112,1,0,1,0,1,0,116,3,100,1,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,1,144, - 2,143,60,1,0,122,18,124,1,160,4,116,5,11,0,100, - 3,161,2,1,0,124,1,160,6,161,0,125,2,124,1,160, - 7,116,5,161,1,125,3,87,0,110,16,4,0,116,2,144, - 2,121,111,1,0,1,0,1,0,116,3,100,4,124,0,155, - 2,157,2,124,0,100,2,141,2,130,1,116,8,124,3,131, - 1,116,5,107,3,114,78,116,3,100,4,124,0,155,2,157, - 2,124,0,100,2,141,2,130,1,124,3,100,0,100,5,133, - 2,25,0,116,9,107,3,114,201,122,12,124,1,160,4,100, - 6,100,3,161,2,1,0,124,1,160,6,161,0,125,4,87, - 0,110,16,4,0,116,2,144,2,121,110,1,0,1,0,1, + 78,218,12,95,95,98,117,105,108,116,105,110,115,95,95,122, + 14,76,111,97,100,101,100,32,109,111,100,117,108,101,32,122, + 25,32,110,111,116,32,102,111,117,110,100,32,105,110,32,115, + 121,115,46,109,111,100,117,108,101,115,122,30,105,109,112,111, + 114,116,32,123,125,32,35,32,108,111,97,100,101,100,32,102, + 114,111,109,32,90,105,112,32,123,125,41,24,114,35,0,0, + 0,114,36,0,0,0,114,37,0,0,0,114,51,0,0,0, + 218,3,115,121,115,218,7,109,111,100,117,108,101,115,218,3, + 103,101,116,114,15,0,0,0,218,12,95,109,111,100,117,108, + 101,95,116,121,112,101,218,10,95,95,108,111,97,100,101,114, + 95,95,114,39,0,0,0,114,21,0,0,0,114,30,0,0, + 0,114,29,0,0,0,90,8,95,95,112,97,116,104,95,95, + 218,7,104,97,115,97,116,116,114,114,71,0,0,0,90,14, + 95,102,105,120,95,117,112,95,109,111,100,117,108,101,218,8, + 95,95,100,105,99,116,95,95,218,4,101,120,101,99,114,26, + 0,0,0,218,11,73,109,112,111,114,116,69,114,114,111,114, + 114,48,0,0,0,218,16,95,118,101,114,98,111,115,101,95, + 109,101,115,115,97,103,101,41,9,114,32,0,0,0,114,41, + 0,0,0,218,3,109,115,103,114,53,0,0,0,114,54,0, + 0,0,114,43,0,0,0,90,3,109,111,100,114,13,0,0, + 0,114,69,0,0,0,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,11,108,111,97,100,95,109,111,100,117, + 108,101,16,1,0,0,115,54,0,0,0,4,9,12,2,16, + 1,12,1,18,1,8,1,10,1,6,1,2,2,4,1,10, + 3,14,1,8,1,10,2,6,1,16,1,16,1,6,1,8, + 1,2,1,2,2,14,1,12,1,16,1,2,255,14,2,4, + 1,122,23,122,105,112,105,109,112,111,114,116,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,8,0,0,0,67, + 0,0,0,115,64,0,0,0,122,10,124,0,160,0,124,1, + 161,1,115,9,87,0,100,1,83,0,87,0,110,10,4,0, + 116,1,121,20,1,0,1,0,1,0,89,0,100,1,83,0, + 119,0,100,2,100,3,108,2,109,3,125,2,1,0,124,2, + 124,0,124,1,131,2,83,0,41,4,122,204,82,101,116,117, + 114,110,32,116,104,101,32,82,101,115,111,117,114,99,101,82, + 101,97,100,101,114,32,102,111,114,32,97,32,112,97,99,107, + 97,103,101,32,105,110,32,97,32,122,105,112,32,102,105,108, + 101,46,10,10,32,32,32,32,32,32,32,32,73,102,32,39, + 102,117,108,108,110,97,109,101,39,32,105,115,32,97,32,112, + 97,99,107,97,103,101,32,119,105,116,104,105,110,32,116,104, + 101,32,122,105,112,32,102,105,108,101,44,32,114,101,116,117, + 114,110,32,116,104,101,10,32,32,32,32,32,32,32,32,39, + 82,101,115,111,117,114,99,101,82,101,97,100,101,114,39,32, + 111,98,106,101,99,116,32,102,111,114,32,116,104,101,32,112, + 97,99,107,97,103,101,46,32,32,79,116,104,101,114,119,105, + 115,101,32,114,101,116,117,114,110,32,78,111,110,101,46,10, + 32,32,32,32,32,32,32,32,78,114,0,0,0,0,41,1, + 218,9,90,105,112,82,101,97,100,101,114,41,4,114,46,0, + 0,0,114,3,0,0,0,90,17,105,109,112,111,114,116,108, + 105,98,46,114,101,97,100,101,114,115,114,84,0,0,0,41, + 3,114,32,0,0,0,114,41,0,0,0,114,84,0,0,0, + 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,218, + 19,103,101,116,95,114,101,115,111,117,114,99,101,95,114,101, + 97,100,101,114,59,1,0,0,115,18,0,0,0,2,6,10, + 1,6,1,4,255,12,2,6,1,2,255,12,2,10,1,122, + 31,122,105,112,105,109,112,111,114,116,101,114,46,103,101,116, + 95,114,101,115,111,117,114,99,101,95,114,101,97,100,101,114, + 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, + 0,8,0,0,0,67,0,0,0,115,72,0,0,0,122,15, + 116,0,124,0,106,1,131,1,124,0,95,2,124,0,106,2, + 116,3,124,0,106,1,60,0,87,0,100,1,83,0,4,0, + 116,4,121,35,1,0,1,0,1,0,116,3,160,5,124,0, + 106,1,100,1,161,2,1,0,100,1,124,0,95,2,89,0, + 100,1,83,0,119,0,41,2,122,41,82,101,108,111,97,100, + 32,116,104,101,32,102,105,108,101,32,100,97,116,97,32,111, + 102,32,116,104,101,32,97,114,99,104,105,118,101,32,112,97, + 116,104,46,78,41,6,114,27,0,0,0,114,29,0,0,0, + 114,28,0,0,0,114,25,0,0,0,114,3,0,0,0,218, + 3,112,111,112,169,1,114,32,0,0,0,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,17,105,110,118,97, + 108,105,100,97,116,101,95,99,97,99,104,101,115,74,1,0, + 0,115,14,0,0,0,2,2,12,1,18,1,12,1,14,1, + 12,1,2,254,122,29,122,105,112,105,109,112,111,114,116,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, + 1,0,0,0,5,0,0,0,67,0,0,0,115,24,0,0, + 0,100,1,124,0,106,0,155,0,116,1,155,0,124,0,106, + 2,155,0,100,2,157,5,83,0,41,3,78,122,21,60,122, + 105,112,105,109,112,111,114,116,101,114,32,111,98,106,101,99, + 116,32,34,122,2,34,62,41,3,114,29,0,0,0,114,20, + 0,0,0,114,31,0,0,0,114,87,0,0,0,114,9,0, + 0,0,114,9,0,0,0,114,10,0,0,0,218,8,95,95, + 114,101,112,114,95,95,84,1,0,0,115,2,0,0,0,24, + 1,122,20,122,105,112,105,109,112,111,114,116,101,114,46,95, + 95,114,101,112,114,95,95,169,1,78,41,17,114,6,0,0, + 0,114,7,0,0,0,114,8,0,0,0,218,7,95,95,100, + 111,99,95,95,114,34,0,0,0,114,44,0,0,0,114,45, + 0,0,0,114,49,0,0,0,114,55,0,0,0,114,62,0, + 0,0,114,63,0,0,0,114,70,0,0,0,114,46,0,0, + 0,114,83,0,0,0,114,85,0,0,0,114,88,0,0,0, + 114,89,0,0,0,114,9,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,114,4,0,0,0,46,0, + 0,0,115,30,0,0,0,8,0,4,1,8,17,10,46,10, + 37,10,16,8,27,8,10,8,21,8,12,8,26,8,13,8, + 43,8,15,12,10,122,12,95,95,105,110,105,116,95,95,46, + 112,121,99,84,114,66,0,0,0,70,41,3,122,4,46,112, + 121,99,84,70,41,3,114,67,0,0,0,70,70,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,20,0,0,0,124,0,106,0,124, + 1,160,1,100,1,161,1,100,2,25,0,23,0,83,0,41, + 3,78,218,1,46,233,2,0,0,0,41,2,114,31,0,0, + 0,218,10,114,112,97,114,116,105,116,105,111,110,41,2,114, + 32,0,0,0,114,41,0,0,0,114,9,0,0,0,114,9, + 0,0,0,114,10,0,0,0,114,39,0,0,0,102,1,0, + 0,115,2,0,0,0,20,1,114,39,0,0,0,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,18,0,0,0,124,1,116,0,23, + 0,125,2,124,2,124,0,106,1,118,0,83,0,114,90,0, + 0,0,41,2,114,20,0,0,0,114,28,0,0,0,41,3, + 114,32,0,0,0,114,13,0,0,0,90,7,100,105,114,112, + 97,116,104,114,9,0,0,0,114,9,0,0,0,114,10,0, + 0,0,114,40,0,0,0,106,1,0,0,115,4,0,0,0, + 8,4,10,2,114,40,0,0,0,99,2,0,0,0,0,0, + 0,0,0,0,0,0,7,0,0,0,4,0,0,0,67,0, + 0,0,115,56,0,0,0,116,0,124,0,124,1,131,2,125, + 2,116,1,68,0,93,18,92,3,125,3,125,4,125,5,124, + 2,124,3,23,0,125,6,124,6,124,0,106,2,118,0,114, + 25,124,5,2,0,1,0,83,0,113,7,100,0,83,0,114, + 90,0,0,0,41,3,114,39,0,0,0,218,16,95,122,105, + 112,95,115,101,97,114,99,104,111,114,100,101,114,114,28,0, + 0,0,41,7,114,32,0,0,0,114,41,0,0,0,114,13, + 0,0,0,218,6,115,117,102,102,105,120,218,10,105,115,98, + 121,116,101,99,111,100,101,114,54,0,0,0,114,69,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 114,38,0,0,0,115,1,0,0,115,14,0,0,0,10,1, + 14,1,8,1,10,1,8,1,2,255,4,2,114,38,0,0, + 0,99,1,0,0,0,0,0,0,0,0,0,0,0,26,0, + 0,0,9,0,0,0,67,0,0,0,115,220,4,0,0,122, + 7,116,0,160,1,124,0,161,1,125,1,87,0,110,16,4, + 0,116,2,121,23,1,0,1,0,1,0,116,3,100,1,124, + 0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124, + 1,144,2,143,65,1,0,122,18,124,1,160,4,116,5,11, + 0,100,3,161,2,1,0,124,1,160,6,161,0,125,2,124, + 1,160,7,116,5,161,1,125,3,87,0,110,16,4,0,116, + 2,121,62,1,0,1,0,1,0,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,119,0,116,8,124, + 3,131,1,116,5,107,3,114,78,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,124,3,100,0,100, + 5,133,2,25,0,116,9,107,3,114,201,122,12,124,1,160, + 4,100,6,100,3,161,2,1,0,124,1,160,6,161,0,125, + 4,87,0,110,16,4,0,116,2,121,114,1,0,1,0,1, 0,116,3,100,4,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,116,10,124,4,116,11,24,0,116,5,24,0,100, - 6,131,2,125,5,122,11,124,1,160,4,124,5,161,1,1, - 0,124,1,160,7,161,0,125,6,87,0,110,16,4,0,116, - 2,144,2,121,109,1,0,1,0,1,0,116,3,100,4,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,6,160, - 12,116,9,161,1,125,7,124,7,100,6,107,0,114,170,116, - 3,100,7,124,0,155,2,157,2,124,0,100,2,141,2,130, - 1,124,6,124,7,124,7,116,5,23,0,133,2,25,0,125, - 3,116,8,124,3,131,1,116,5,107,3,114,193,116,3,100, - 8,124,0,155,2,157,2,124,0,100,2,141,2,130,1,124, - 4,116,8,124,6,131,1,24,0,124,7,23,0,125,2,116, - 13,124,3,100,9,100,10,133,2,25,0,131,1,125,8,116, - 13,124,3,100,10,100,11,133,2,25,0,131,1,125,9,124, - 2,124,8,107,0,114,230,116,3,100,12,124,0,155,2,157, - 2,124,0,100,2,141,2,130,1,124,2,124,9,107,0,114, - 243,116,3,100,13,124,0,155,2,157,2,124,0,100,2,141, - 2,130,1,124,2,124,8,56,0,125,2,124,2,124,9,24, - 0,125,10,124,10,100,6,107,0,144,1,114,9,116,3,100, - 14,124,0,155,2,157,2,124,0,100,2,141,2,130,1,105, - 0,125,11,100,6,125,12,122,7,124,1,160,4,124,2,161, - 1,1,0,87,0,110,16,4,0,116,2,144,2,121,108,1, - 0,1,0,1,0,116,3,100,4,124,0,155,2,157,2,124, - 0,100,2,141,2,130,1,9,0,124,1,160,7,100,16,161, - 1,125,3,116,8,124,3,131,1,100,5,107,0,144,1,114, - 54,116,14,100,17,131,1,130,1,124,3,100,0,100,5,133, - 2,25,0,100,18,107,3,144,1,114,65,144,2,113,80,116, - 8,124,3,131,1,100,16,107,3,144,1,114,76,116,14,100, - 17,131,1,130,1,116,15,124,3,100,19,100,20,133,2,25, - 0,131,1,125,13,116,15,124,3,100,20,100,9,133,2,25, - 0,131,1,125,14,116,15,124,3,100,9,100,21,133,2,25, - 0,131,1,125,15,116,15,124,3,100,21,100,10,133,2,25, - 0,131,1,125,16,116,13,124,3,100,10,100,11,133,2,25, - 0,131,1,125,17,116,13,124,3,100,11,100,22,133,2,25, - 0,131,1,125,18,116,13,124,3,100,22,100,23,133,2,25, - 0,131,1,125,4,116,15,124,3,100,23,100,24,133,2,25, - 0,131,1,125,19,116,15,124,3,100,24,100,25,133,2,25, - 0,131,1,125,20,116,15,124,3,100,25,100,26,133,2,25, - 0,131,1,125,21,116,13,124,3,100,27,100,16,133,2,25, - 0,131,1,125,22,124,19,124,20,23,0,124,21,23,0,125, - 8,124,22,124,9,107,4,144,1,114,184,116,3,100,28,124, - 0,155,2,157,2,124,0,100,2,141,2,130,1,124,22,124, - 10,55,0,125,22,122,7,124,1,160,7,124,19,161,1,125, - 23,87,0,110,16,4,0,116,2,144,2,121,107,1,0,1, - 0,1,0,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,116,8,124,23,131,1,124,19,107,3,144, - 1,114,228,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,122,25,116,8,124,1,160,7,124,8,124, - 19,24,0,161,1,131,1,124,8,124,19,24,0,107,3,144, - 1,114,252,116,3,100,4,124,0,155,2,157,2,124,0,100, - 2,141,2,130,1,87,0,110,16,4,0,116,2,144,2,121, - 106,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, - 2,124,0,100,2,141,2,130,1,124,13,100,29,64,0,144, - 2,114,24,124,23,160,16,161,0,125,23,110,24,122,7,124, - 23,160,16,100,30,161,1,125,23,87,0,110,16,4,0,116, - 17,144,2,121,105,1,0,1,0,1,0,124,23,160,16,100, - 31,161,1,160,18,116,19,161,1,125,23,89,0,124,23,160, - 20,100,32,116,21,161,2,125,23,116,22,160,23,124,0,124, - 23,161,2,125,24,124,24,124,14,124,18,124,4,124,22,124, - 15,124,16,124,17,102,8,125,25,124,25,124,11,124,23,60, - 0,124,12,100,33,55,0,125,12,144,1,113,38,87,0,100, - 0,4,0,4,0,131,3,1,0,110,9,49,0,144,2,115, - 91,119,1,1,0,1,0,1,0,89,0,1,0,116,24,160, - 25,100,34,124,12,124,0,161,3,1,0,124,11,83,0,119, - 0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,41, - 35,78,122,21,99,97,110,39,116,32,111,112,101,110,32,90, - 105,112,32,102,105,108,101,58,32,114,12,0,0,0,114,93, - 0,0,0,250,21,99,97,110,39,116,32,114,101,97,100,32, - 90,105,112,32,102,105,108,101,58,32,233,4,0,0,0,114, - 0,0,0,0,122,16,110,111,116,32,97,32,90,105,112,32, - 102,105,108,101,58,32,122,18,99,111,114,114,117,112,116,32, - 90,105,112,32,102,105,108,101,58,32,233,12,0,0,0,233, - 16,0,0,0,233,20,0,0,0,122,28,98,97,100,32,99, - 101,110,116,114,97,108,32,100,105,114,101,99,116,111,114,121, - 32,115,105,122,101,58,32,122,30,98,97,100,32,99,101,110, - 116,114,97,108,32,100,105,114,101,99,116,111,114,121,32,111, - 102,102,115,101,116,58,32,122,38,98,97,100,32,99,101,110, - 116,114,97,108,32,100,105,114,101,99,116,111,114,121,32,115, - 105,122,101,32,111,114,32,111,102,102,115,101,116,58,32,84, - 233,46,0,0,0,250,27,69,79,70,32,114,101,97,100,32, - 119,104,101,114,101,32,110,111,116,32,101,120,112,101,99,116, - 101,100,115,4,0,0,0,80,75,1,2,233,8,0,0,0, - 233,10,0,0,0,233,14,0,0,0,233,24,0,0,0,233, - 28,0,0,0,233,30,0,0,0,233,32,0,0,0,233,34, - 0,0,0,233,42,0,0,0,122,25,98,97,100,32,108,111, - 99,97,108,32,104,101,97,100,101,114,32,111,102,102,115,101, - 116,58,32,105,0,8,0,0,218,5,97,115,99,105,105,90, - 6,108,97,116,105,110,49,250,1,47,114,5,0,0,0,122, - 33,122,105,112,105,109,112,111,114,116,58,32,102,111,117,110, - 100,32,123,125,32,110,97,109,101,115,32,105,110,32,123,33, - 114,125,41,26,218,3,95,105,111,218,9,111,112,101,110,95, - 99,111,100,101,114,22,0,0,0,114,3,0,0,0,218,4, - 115,101,101,107,218,20,69,78,68,95,67,69,78,84,82,65, - 76,95,68,73,82,95,83,73,90,69,90,4,116,101,108,108, - 218,4,114,101,97,100,114,58,0,0,0,218,18,83,84,82, - 73,78,71,95,69,78,68,95,65,82,67,72,73,86,69,218, - 3,109,97,120,218,15,77,65,88,95,67,79,77,77,69,78, - 84,95,76,69,78,218,5,114,102,105,110,100,114,2,0,0, - 0,218,8,69,79,70,69,114,114,111,114,114,1,0,0,0, - 114,68,0,0,0,218,18,85,110,105,99,111,100,101,68,101, - 99,111,100,101,69,114,114,111,114,218,9,116,114,97,110,115, - 108,97,116,101,218,11,99,112,52,51,55,95,116,97,98,108, - 101,114,19,0,0,0,114,20,0,0,0,114,21,0,0,0, - 114,30,0,0,0,114,48,0,0,0,114,81,0,0,0,41, - 26,114,29,0,0,0,218,2,102,112,90,15,104,101,97,100, - 101,114,95,112,111,115,105,116,105,111,110,218,6,98,117,102, - 102,101,114,218,9,102,105,108,101,95,115,105,122,101,90,17, - 109,97,120,95,99,111,109,109,101,110,116,95,115,116,97,114, - 116,218,4,100,97,116,97,90,3,112,111,115,218,11,104,101, - 97,100,101,114,95,115,105,122,101,90,13,104,101,97,100,101, - 114,95,111,102,102,115,101,116,90,10,97,114,99,95,111,102, - 102,115,101,116,114,33,0,0,0,218,5,99,111,117,110,116, - 218,5,102,108,97,103,115,218,8,99,111,109,112,114,101,115, - 115,218,4,116,105,109,101,218,4,100,97,116,101,218,3,99, - 114,99,218,9,100,97,116,97,95,115,105,122,101,218,9,110, - 97,109,101,95,115,105,122,101,218,10,101,120,116,114,97,95, - 115,105,122,101,90,12,99,111,109,109,101,110,116,95,115,105, - 122,101,218,11,102,105,108,101,95,111,102,102,115,101,116,114, - 47,0,0,0,114,13,0,0,0,218,1,116,114,9,0,0, - 0,114,9,0,0,0,114,10,0,0,0,114,27,0,0,0, - 146,1,0,0,115,238,0,0,0,2,1,14,1,14,1,18, - 1,8,2,2,1,14,1,8,1,14,1,14,1,18,1,12, - 1,18,1,16,1,2,3,12,1,12,1,14,1,10,1,2, - 1,6,255,8,2,2,1,2,255,2,1,4,255,2,2,10, - 1,12,1,14,1,10,1,2,1,6,255,10,2,8,1,10, - 1,2,1,6,255,16,2,12,1,10,1,2,1,6,255,16, - 2,16,2,16,1,8,1,18,1,8,1,18,1,8,1,8, - 1,10,1,18,1,4,2,4,2,2,1,14,1,14,1,18, - 1,2,1,10,1,14,1,8,1,18,2,4,1,14,1,8, - 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, - 1,16,1,16,1,16,1,12,1,10,1,18,1,8,1,2, - 2,14,1,14,1,18,1,14,1,18,1,2,4,28,1,18, - 1,4,255,14,2,18,1,10,2,10,2,2,3,14,1,14, - 1,18,1,12,2,12,1,20,1,8,1,8,1,4,202,2, - 6,30,196,14,109,4,1,2,247,2,246,2,246,2,227,2, - 227,2,248,2,246,2,248,114,27,0,0,0,117,190,1,0, - 0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14, - 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30, - 31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46, - 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62, - 63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78, - 79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94, - 95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110, - 111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126, - 127,195,135,195,188,195,169,195,162,195,164,195,160,195,165,195, - 167,195,170,195,171,195,168,195,175,195,174,195,172,195,132,195, - 133,195,137,195,166,195,134,195,180,195,182,195,178,195,187,195, - 185,195,191,195,150,195,156,194,162,194,163,194,165,226,130,167, - 198,146,195,161,195,173,195,179,195,186,195,177,195,145,194,170, - 194,186,194,191,226,140,144,194,172,194,189,194,188,194,161,194, - 171,194,187,226,150,145,226,150,146,226,150,147,226,148,130,226, - 148,164,226,149,161,226,149,162,226,149,150,226,149,149,226,149, - 163,226,149,145,226,149,151,226,149,157,226,149,156,226,149,155, - 226,148,144,226,148,148,226,148,180,226,148,172,226,148,156,226, - 148,128,226,148,188,226,149,158,226,149,159,226,149,154,226,149, - 148,226,149,169,226,149,166,226,149,160,226,149,144,226,149,172, - 226,149,167,226,149,168,226,149,164,226,149,165,226,149,153,226, - 149,152,226,149,146,226,149,147,226,149,171,226,149,170,226,148, - 152,226,148,140,226,150,136,226,150,132,226,150,140,226,150,144, - 226,150,128,206,177,195,159,206,147,207,128,206,163,207,131,194, - 181,207,132,206,166,206,152,206,169,206,180,226,136,158,207,134, - 206,181,226,136,169,226,137,161,194,177,226,137,165,226,137,164, - 226,140,160,226,140,161,195,183,226,137,136,194,176,226,136,153, - 194,183,226,136,154,226,129,191,194,178,226,150,160,194,160,99, - 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, - 8,0,0,0,67,0,0,0,115,106,0,0,0,116,0,114, - 11,116,1,160,2,100,1,161,1,1,0,116,3,100,2,131, - 1,130,1,100,3,97,0,122,28,122,8,100,4,100,5,108, - 4,109,5,125,0,1,0,87,0,110,15,4,0,116,6,121, - 52,1,0,1,0,1,0,116,1,160,2,100,1,161,1,1, - 0,116,3,100,2,131,1,130,1,87,0,100,6,97,0,110, - 3,100,6,97,0,119,0,116,1,160,2,100,7,161,1,1, - 0,124,0,83,0,119,0,41,8,78,122,27,122,105,112,105, - 109,112,111,114,116,58,32,122,108,105,98,32,85,78,65,86, - 65,73,76,65,66,76,69,250,41,99,97,110,39,116,32,100, - 101,99,111,109,112,114,101,115,115,32,100,97,116,97,59,32, - 122,108,105,98,32,110,111,116,32,97,118,97,105,108,97,98, - 108,101,84,114,0,0,0,0,169,1,218,10,100,101,99,111, - 109,112,114,101,115,115,70,122,25,122,105,112,105,109,112,111, - 114,116,58,32,122,108,105,98,32,97,118,97,105,108,97,98, - 108,101,41,7,218,15,95,105,109,112,111,114,116,105,110,103, - 95,122,108,105,98,114,48,0,0,0,114,81,0,0,0,114, - 3,0,0,0,90,4,122,108,105,98,114,147,0,0,0,218, - 9,69,120,99,101,112,116,105,111,110,114,146,0,0,0,114, - 9,0,0,0,114,9,0,0,0,114,10,0,0,0,218,20, - 95,103,101,116,95,100,101,99,111,109,112,114,101,115,115,95, - 102,117,110,99,48,2,0,0,115,28,0,0,0,4,2,10, - 3,8,1,4,2,4,1,16,1,12,1,10,1,8,1,2, - 253,12,5,10,2,4,1,2,249,114,150,0,0,0,99,2, - 0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,9, - 0,0,0,67,0,0,0,115,120,1,0,0,124,1,92,8, - 125,2,125,3,125,4,125,5,125,6,125,7,125,8,125,9, - 124,4,100,1,107,0,114,18,116,0,100,2,131,1,130,1, - 116,1,160,2,124,0,161,1,143,127,125,10,122,7,124,10, - 160,3,124,6,161,1,1,0,87,0,110,15,4,0,116,4, - 121,187,1,0,1,0,1,0,116,0,100,3,124,0,155,2, - 157,2,124,0,100,4,141,2,130,1,124,10,160,5,100,5, - 161,1,125,11,116,6,124,11,131,1,100,5,107,3,114,62, - 116,7,100,6,131,1,130,1,124,11,100,0,100,7,133,2, - 25,0,100,8,107,3,114,79,116,0,100,9,124,0,155,2, - 157,2,124,0,100,4,141,2,130,1,116,8,124,11,100,10, - 100,11,133,2,25,0,131,1,125,12,116,8,124,11,100,11, - 100,5,133,2,25,0,131,1,125,13,100,5,124,12,23,0, - 124,13,23,0,125,14,124,6,124,14,55,0,125,6,122,7, - 124,10,160,3,124,6,161,1,1,0,87,0,110,15,4,0, - 116,4,121,186,1,0,1,0,1,0,116,0,100,3,124,0, - 155,2,157,2,124,0,100,4,141,2,130,1,124,10,160,5, + 2,130,1,119,0,116,10,124,4,116,11,24,0,116,5,24, + 0,100,6,131,2,125,5,122,11,124,1,160,4,124,5,161, + 1,1,0,124,1,160,7,161,0,125,6,87,0,110,16,4, + 0,116,2,121,151,1,0,1,0,1,0,116,3,100,4,124, + 0,155,2,157,2,124,0,100,2,141,2,130,1,119,0,124, + 6,160,12,116,9,161,1,125,7,124,7,100,6,107,0,114, + 170,116,3,100,7,124,0,155,2,157,2,124,0,100,2,141, + 2,130,1,124,6,124,7,124,7,116,5,23,0,133,2,25, + 0,125,3,116,8,124,3,131,1,116,5,107,3,114,193,116, + 3,100,8,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,124,4,116,8,124,6,131,1,24,0,124,7,23,0,125, + 2,116,13,124,3,100,9,100,10,133,2,25,0,131,1,125, + 8,116,13,124,3,100,10,100,11,133,2,25,0,131,1,125, + 9,124,2,124,8,107,0,114,230,116,3,100,12,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,124,2,124,9,107, + 0,114,243,116,3,100,13,124,0,155,2,157,2,124,0,100, + 2,141,2,130,1,124,2,124,8,56,0,125,2,124,2,124, + 9,24,0,125,10,124,10,100,6,107,0,144,1,114,9,116, + 3,100,14,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,105,0,125,11,100,6,125,12,122,7,124,1,160,4,124, + 2,161,1,1,0,87,0,110,17,4,0,116,2,144,1,121, + 37,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, + 2,124,0,100,2,141,2,130,1,119,0,9,0,124,1,160, + 7,100,16,161,1,125,3,116,8,124,3,131,1,100,5,107, + 0,144,1,114,55,116,14,100,17,131,1,130,1,124,3,100, + 0,100,5,133,2,25,0,100,18,107,3,144,1,114,66,144, + 2,113,85,116,8,124,3,131,1,100,16,107,3,144,1,114, + 77,116,14,100,17,131,1,130,1,116,15,124,3,100,19,100, + 20,133,2,25,0,131,1,125,13,116,15,124,3,100,20,100, + 9,133,2,25,0,131,1,125,14,116,15,124,3,100,9,100, + 21,133,2,25,0,131,1,125,15,116,15,124,3,100,21,100, + 10,133,2,25,0,131,1,125,16,116,13,124,3,100,10,100, + 11,133,2,25,0,131,1,125,17,116,13,124,3,100,11,100, + 22,133,2,25,0,131,1,125,18,116,13,124,3,100,22,100, + 23,133,2,25,0,131,1,125,4,116,15,124,3,100,23,100, + 24,133,2,25,0,131,1,125,19,116,15,124,3,100,24,100, + 25,133,2,25,0,131,1,125,20,116,15,124,3,100,25,100, + 26,133,2,25,0,131,1,125,21,116,13,124,3,100,27,100, + 16,133,2,25,0,131,1,125,22,124,19,124,20,23,0,124, + 21,23,0,125,8,124,22,124,9,107,4,144,1,114,185,116, + 3,100,28,124,0,155,2,157,2,124,0,100,2,141,2,130, + 1,124,22,124,10,55,0,125,22,122,7,124,1,160,7,124, + 19,161,1,125,23,87,0,110,17,4,0,116,2,144,1,121, + 213,1,0,1,0,1,0,116,3,100,4,124,0,155,2,157, + 2,124,0,100,2,141,2,130,1,119,0,116,8,124,23,131, + 1,124,19,107,3,144,1,114,230,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,122,25,116,8,124, + 1,160,7,124,8,124,19,24,0,161,1,131,1,124,8,124, + 19,24,0,107,3,144,1,114,254,116,3,100,4,124,0,155, + 2,157,2,124,0,100,2,141,2,130,1,87,0,110,17,4, + 0,116,2,144,2,121,16,1,0,1,0,1,0,116,3,100, + 4,124,0,155,2,157,2,124,0,100,2,141,2,130,1,119, + 0,124,13,100,29,64,0,144,2,114,27,124,23,160,16,161, + 0,125,23,110,26,122,7,124,23,160,16,100,30,161,1,125, + 23,87,0,110,18,4,0,116,17,144,2,121,52,1,0,1, + 0,1,0,124,23,160,16,100,31,161,1,160,18,116,19,161, + 1,125,23,89,0,110,1,119,0,124,23,160,20,100,32,116, + 21,161,2,125,23,116,22,160,23,124,0,124,23,161,2,125, + 24,124,24,124,14,124,18,124,4,124,22,124,15,124,16,124, + 17,102,8,125,25,124,25,124,11,124,23,60,0,124,12,100, + 33,55,0,125,12,144,1,113,39,87,0,100,0,4,0,4, + 0,131,3,1,0,110,9,49,0,144,2,115,96,119,1,1, + 0,1,0,1,0,89,0,1,0,116,24,160,25,100,34,124, + 12,124,0,161,3,1,0,124,11,83,0,41,35,78,122,21, + 99,97,110,39,116,32,111,112,101,110,32,90,105,112,32,102, + 105,108,101,58,32,114,12,0,0,0,114,93,0,0,0,250, + 21,99,97,110,39,116,32,114,101,97,100,32,90,105,112,32, + 102,105,108,101,58,32,233,4,0,0,0,114,0,0,0,0, + 122,16,110,111,116,32,97,32,90,105,112,32,102,105,108,101, + 58,32,122,18,99,111,114,114,117,112,116,32,90,105,112,32, + 102,105,108,101,58,32,233,12,0,0,0,233,16,0,0,0, + 233,20,0,0,0,122,28,98,97,100,32,99,101,110,116,114, + 97,108,32,100,105,114,101,99,116,111,114,121,32,115,105,122, + 101,58,32,122,30,98,97,100,32,99,101,110,116,114,97,108, + 32,100,105,114,101,99,116,111,114,121,32,111,102,102,115,101, + 116,58,32,122,38,98,97,100,32,99,101,110,116,114,97,108, + 32,100,105,114,101,99,116,111,114,121,32,115,105,122,101,32, + 111,114,32,111,102,102,115,101,116,58,32,84,233,46,0,0, + 0,250,27,69,79,70,32,114,101,97,100,32,119,104,101,114, + 101,32,110,111,116,32,101,120,112,101,99,116,101,100,115,4, + 0,0,0,80,75,1,2,233,8,0,0,0,233,10,0,0, + 0,233,14,0,0,0,233,24,0,0,0,233,28,0,0,0, + 233,30,0,0,0,233,32,0,0,0,233,34,0,0,0,233, + 42,0,0,0,122,25,98,97,100,32,108,111,99,97,108,32, + 104,101,97,100,101,114,32,111,102,102,115,101,116,58,32,105, + 0,8,0,0,218,5,97,115,99,105,105,90,6,108,97,116, + 105,110,49,250,1,47,114,5,0,0,0,122,33,122,105,112, + 105,109,112,111,114,116,58,32,102,111,117,110,100,32,123,125, + 32,110,97,109,101,115,32,105,110,32,123,33,114,125,41,26, + 218,3,95,105,111,218,9,111,112,101,110,95,99,111,100,101, + 114,22,0,0,0,114,3,0,0,0,218,4,115,101,101,107, + 218,20,69,78,68,95,67,69,78,84,82,65,76,95,68,73, + 82,95,83,73,90,69,90,4,116,101,108,108,218,4,114,101, + 97,100,114,58,0,0,0,218,18,83,84,82,73,78,71,95, + 69,78,68,95,65,82,67,72,73,86,69,218,3,109,97,120, + 218,15,77,65,88,95,67,79,77,77,69,78,84,95,76,69, + 78,218,5,114,102,105,110,100,114,2,0,0,0,218,8,69, + 79,70,69,114,114,111,114,114,1,0,0,0,114,68,0,0, + 0,218,18,85,110,105,99,111,100,101,68,101,99,111,100,101, + 69,114,114,111,114,218,9,116,114,97,110,115,108,97,116,101, + 218,11,99,112,52,51,55,95,116,97,98,108,101,114,19,0, + 0,0,114,20,0,0,0,114,21,0,0,0,114,30,0,0, + 0,114,48,0,0,0,114,81,0,0,0,41,26,114,29,0, + 0,0,218,2,102,112,90,15,104,101,97,100,101,114,95,112, + 111,115,105,116,105,111,110,218,6,98,117,102,102,101,114,218, + 9,102,105,108,101,95,115,105,122,101,90,17,109,97,120,95, + 99,111,109,109,101,110,116,95,115,116,97,114,116,218,4,100, + 97,116,97,90,3,112,111,115,218,11,104,101,97,100,101,114, + 95,115,105,122,101,90,13,104,101,97,100,101,114,95,111,102, + 102,115,101,116,90,10,97,114,99,95,111,102,102,115,101,116, + 114,33,0,0,0,218,5,99,111,117,110,116,218,5,102,108, + 97,103,115,218,8,99,111,109,112,114,101,115,115,218,4,116, + 105,109,101,218,4,100,97,116,101,218,3,99,114,99,218,9, + 100,97,116,97,95,115,105,122,101,218,9,110,97,109,101,95, + 115,105,122,101,218,10,101,120,116,114,97,95,115,105,122,101, + 90,12,99,111,109,109,101,110,116,95,115,105,122,101,218,11, + 102,105,108,101,95,111,102,102,115,101,116,114,47,0,0,0, + 114,13,0,0,0,218,1,116,114,9,0,0,0,114,9,0, + 0,0,114,10,0,0,0,114,27,0,0,0,146,1,0,0, + 115,238,0,0,0,2,1,14,1,12,1,18,1,2,255,8, + 3,2,1,14,1,8,1,14,1,12,1,18,1,2,255,12, + 2,18,1,16,1,2,3,12,1,12,1,12,1,10,1,2, + 1,6,255,2,255,8,3,2,1,2,255,2,1,4,255,2, + 2,10,1,12,1,12,1,10,1,2,1,6,255,2,255,10, + 3,8,1,10,1,2,1,6,255,16,2,12,1,10,1,2, + 1,6,255,16,2,16,2,16,1,8,1,18,1,8,1,18, + 1,8,1,8,1,10,1,18,1,4,2,4,2,2,1,14, + 1,14,1,18,1,2,255,2,2,10,1,14,1,8,1,18, + 2,4,1,14,1,8,1,16,1,16,1,16,1,16,1,16, + 1,16,1,16,1,16,1,16,1,16,1,16,1,12,1,10, + 1,18,1,8,1,2,2,14,1,14,1,18,1,2,255,14, + 2,18,1,2,4,28,1,18,1,4,255,14,2,18,1,2, + 255,10,3,10,2,2,3,14,1,14,1,20,1,2,255,12, + 3,12,1,20,1,8,1,8,1,4,202,2,6,30,196,14, + 109,4,1,114,27,0,0,0,117,190,1,0,0,0,1,2, + 3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, + 19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34, + 35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50, + 51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66, + 67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82, + 83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98, + 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114, + 115,116,117,118,119,120,121,122,123,124,125,126,127,195,135,195, + 188,195,169,195,162,195,164,195,160,195,165,195,167,195,170,195, + 171,195,168,195,175,195,174,195,172,195,132,195,133,195,137,195, + 166,195,134,195,180,195,182,195,178,195,187,195,185,195,191,195, + 150,195,156,194,162,194,163,194,165,226,130,167,198,146,195,161, + 195,173,195,179,195,186,195,177,195,145,194,170,194,186,194,191, + 226,140,144,194,172,194,189,194,188,194,161,194,171,194,187,226, + 150,145,226,150,146,226,150,147,226,148,130,226,148,164,226,149, + 161,226,149,162,226,149,150,226,149,149,226,149,163,226,149,145, + 226,149,151,226,149,157,226,149,156,226,149,155,226,148,144,226, + 148,148,226,148,180,226,148,172,226,148,156,226,148,128,226,148, + 188,226,149,158,226,149,159,226,149,154,226,149,148,226,149,169, + 226,149,166,226,149,160,226,149,144,226,149,172,226,149,167,226, + 149,168,226,149,164,226,149,165,226,149,153,226,149,152,226,149, + 146,226,149,147,226,149,171,226,149,170,226,148,152,226,148,140, + 226,150,136,226,150,132,226,150,140,226,150,144,226,150,128,206, + 177,195,159,206,147,207,128,206,163,207,131,194,181,207,132,206, + 166,206,152,206,169,206,180,226,136,158,207,134,206,181,226,136, + 169,226,137,161,194,177,226,137,165,226,137,164,226,140,160,226, + 140,161,195,183,226,137,136,194,176,226,136,153,194,183,226,136, + 154,226,129,191,194,178,226,150,160,194,160,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0, + 67,0,0,0,115,106,0,0,0,116,0,114,11,116,1,160, + 2,100,1,161,1,1,0,116,3,100,2,131,1,130,1,100, + 3,97,0,122,29,122,8,100,4,100,5,108,4,109,5,125, + 0,1,0,87,0,110,16,4,0,116,6,121,38,1,0,1, + 0,1,0,116,1,160,2,100,1,161,1,1,0,116,3,100, + 2,131,1,130,1,119,0,87,0,100,6,97,0,110,3,100, + 6,97,0,119,0,116,1,160,2,100,7,161,1,1,0,124, + 0,83,0,41,8,78,122,27,122,105,112,105,109,112,111,114, + 116,58,32,122,108,105,98,32,85,78,65,86,65,73,76,65, + 66,76,69,250,41,99,97,110,39,116,32,100,101,99,111,109, + 112,114,101,115,115,32,100,97,116,97,59,32,122,108,105,98, + 32,110,111,116,32,97,118,97,105,108,97,98,108,101,84,114, + 0,0,0,0,169,1,218,10,100,101,99,111,109,112,114,101, + 115,115,70,122,25,122,105,112,105,109,112,111,114,116,58,32, + 122,108,105,98,32,97,118,97,105,108,97,98,108,101,41,7, + 218,15,95,105,109,112,111,114,116,105,110,103,95,122,108,105, + 98,114,48,0,0,0,114,81,0,0,0,114,3,0,0,0, + 90,4,122,108,105,98,114,147,0,0,0,218,9,69,120,99, + 101,112,116,105,111,110,114,146,0,0,0,114,9,0,0,0, + 114,9,0,0,0,114,10,0,0,0,218,20,95,103,101,116, + 95,100,101,99,111,109,112,114,101,115,115,95,102,117,110,99, + 48,2,0,0,115,28,0,0,0,4,2,10,3,8,1,4, + 2,4,1,16,1,12,1,10,1,8,1,2,254,2,255,12, + 5,10,2,4,1,114,150,0,0,0,99,2,0,0,0,0, + 0,0,0,0,0,0,0,17,0,0,0,9,0,0,0,67, + 0,0,0,115,120,1,0,0,124,1,92,8,125,2,125,3, + 125,4,125,5,125,6,125,7,125,8,125,9,124,4,100,1, + 107,0,114,18,116,0,100,2,131,1,130,1,116,1,160,2, + 124,0,161,1,143,129,125,10,122,7,124,10,160,3,124,6, + 161,1,1,0,87,0,110,16,4,0,116,4,121,47,1,0, + 1,0,1,0,116,0,100,3,124,0,155,2,157,2,124,0, + 100,4,141,2,130,1,119,0,124,10,160,5,100,5,161,1, + 125,11,116,6,124,11,131,1,100,5,107,3,114,63,116,7, + 100,6,131,1,130,1,124,11,100,0,100,7,133,2,25,0, + 100,8,107,3,114,80,116,0,100,9,124,0,155,2,157,2, + 124,0,100,4,141,2,130,1,116,8,124,11,100,10,100,11, + 133,2,25,0,131,1,125,12,116,8,124,11,100,11,100,5, + 133,2,25,0,131,1,125,13,100,5,124,12,23,0,124,13, + 23,0,125,14,124,6,124,14,55,0,125,6,122,7,124,10, + 160,3,124,6,161,1,1,0,87,0,110,16,4,0,116,4, + 121,129,1,0,1,0,1,0,116,0,100,3,124,0,155,2, + 157,2,124,0,100,4,141,2,130,1,119,0,124,10,160,5, 124,4,161,1,125,15,116,6,124,15,131,1,124,4,107,3, - 114,143,116,4,100,12,131,1,130,1,87,0,100,0,4,0, - 4,0,131,3,1,0,110,8,49,0,115,153,119,1,1,0, - 1,0,1,0,89,0,1,0,124,3,100,1,107,2,114,164, - 124,15,83,0,122,5,116,9,131,0,125,16,87,0,110,10, - 4,0,116,10,121,185,1,0,1,0,1,0,116,0,100,13, - 131,1,130,1,124,16,124,15,100,14,131,2,83,0,119,0, - 119,0,119,0,41,15,78,114,0,0,0,0,122,18,110,101, - 103,97,116,105,118,101,32,100,97,116,97,32,115,105,122,101, - 114,98,0,0,0,114,12,0,0,0,114,110,0,0,0,114, - 104,0,0,0,114,99,0,0,0,115,4,0,0,0,80,75, - 3,4,122,23,98,97,100,32,108,111,99,97,108,32,102,105, - 108,101,32,104,101,97,100,101,114,58,32,233,26,0,0,0, - 114,109,0,0,0,122,26,122,105,112,105,109,112,111,114,116, - 58,32,99,97,110,39,116,32,114,101,97,100,32,100,97,116, - 97,114,145,0,0,0,105,241,255,255,255,41,11,114,3,0, - 0,0,114,116,0,0,0,114,117,0,0,0,114,118,0,0, - 0,114,22,0,0,0,114,120,0,0,0,114,58,0,0,0, - 114,125,0,0,0,114,1,0,0,0,114,150,0,0,0,114, - 149,0,0,0,41,17,114,29,0,0,0,114,61,0,0,0, - 90,8,100,97,116,97,112,97,116,104,114,136,0,0,0,114, - 140,0,0,0,114,131,0,0,0,114,143,0,0,0,114,137, - 0,0,0,114,138,0,0,0,114,139,0,0,0,114,129,0, - 0,0,114,130,0,0,0,114,141,0,0,0,114,142,0,0, - 0,114,133,0,0,0,90,8,114,97,119,95,100,97,116,97, - 114,147,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,59,0,0,0,69,2,0,0,115,72,0, - 0,0,20,1,8,1,8,1,12,2,2,2,14,1,12,1, - 18,1,10,1,12,1,8,1,16,2,18,2,16,2,16,1, - 12,1,8,1,2,1,14,1,12,1,18,1,10,1,12,1, + 114,145,116,4,100,12,131,1,130,1,87,0,100,0,4,0, + 4,0,131,3,1,0,110,8,49,0,115,155,119,1,1,0, + 1,0,1,0,89,0,1,0,124,3,100,1,107,2,114,166, + 124,15,83,0,122,5,116,9,131,0,125,16,87,0,110,11, + 4,0,116,10,121,182,1,0,1,0,1,0,116,0,100,13, + 131,1,130,1,119,0,124,16,124,15,100,14,131,2,83,0, + 41,15,78,114,0,0,0,0,122,18,110,101,103,97,116,105, + 118,101,32,100,97,116,97,32,115,105,122,101,114,98,0,0, + 0,114,12,0,0,0,114,110,0,0,0,114,104,0,0,0, + 114,99,0,0,0,115,4,0,0,0,80,75,3,4,122,23, + 98,97,100,32,108,111,99,97,108,32,102,105,108,101,32,104, + 101,97,100,101,114,58,32,233,26,0,0,0,114,109,0,0, + 0,122,26,122,105,112,105,109,112,111,114,116,58,32,99,97, + 110,39,116,32,114,101,97,100,32,100,97,116,97,114,145,0, + 0,0,105,241,255,255,255,41,11,114,3,0,0,0,114,116, + 0,0,0,114,117,0,0,0,114,118,0,0,0,114,22,0, + 0,0,114,120,0,0,0,114,58,0,0,0,114,125,0,0, + 0,114,1,0,0,0,114,150,0,0,0,114,149,0,0,0, + 41,17,114,29,0,0,0,114,61,0,0,0,90,8,100,97, + 116,97,112,97,116,104,114,136,0,0,0,114,140,0,0,0, + 114,131,0,0,0,114,143,0,0,0,114,137,0,0,0,114, + 138,0,0,0,114,139,0,0,0,114,129,0,0,0,114,130, + 0,0,0,114,141,0,0,0,114,142,0,0,0,114,133,0, + 0,0,90,8,114,97,119,95,100,97,116,97,114,147,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 114,59,0,0,0,69,2,0,0,115,72,0,0,0,20,1, + 8,1,8,1,12,2,2,2,14,1,12,1,18,1,2,255, + 10,2,12,1,8,1,16,2,18,2,16,2,16,1,12,1, + 8,1,2,1,14,1,12,1,18,1,2,255,10,2,12,1, 8,1,2,255,28,233,8,26,4,2,2,3,10,1,12,1, - 8,1,10,1,2,254,2,243,2,240,114,59,0,0,0,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,116,0,124, - 0,124,1,24,0,131,1,100,1,107,1,83,0,41,2,78, - 114,5,0,0,0,41,1,218,3,97,98,115,41,2,90,2, - 116,49,90,2,116,50,114,9,0,0,0,114,9,0,0,0, - 114,10,0,0,0,218,9,95,101,113,95,109,116,105,109,101, - 115,2,0,0,115,2,0,0,0,16,2,114,153,0,0,0, - 99,5,0,0,0,0,0,0,0,0,0,0,0,14,0,0, - 0,6,0,0,0,67,0,0,0,115,254,0,0,0,124,3, - 124,2,100,1,156,2,125,5,116,0,160,1,124,4,124,3, - 124,5,161,3,125,6,124,6,100,2,64,0,100,3,107,3, - 125,7,124,7,114,63,124,6,100,4,64,0,100,3,107,3, - 125,8,116,2,106,3,100,5,107,3,114,62,124,8,115,38, - 116,2,106,3,100,6,107,2,114,62,116,4,124,0,124,2, - 131,2,125,9,124,9,100,0,117,1,114,62,116,2,160,5, - 116,0,106,6,124,9,161,2,125,10,116,0,160,7,124,4, - 124,10,124,3,124,5,161,4,1,0,110,40,116,8,124,0, - 124,2,131,2,92,2,125,11,125,12,124,11,114,103,116,9, - 116,10,124,4,100,7,100,8,133,2,25,0,131,1,124,11, - 131,2,114,93,116,10,124,4,100,8,100,9,133,2,25,0, - 131,1,124,12,107,3,114,103,116,11,160,12,100,10,124,3, - 155,2,157,2,161,1,1,0,100,0,83,0,116,13,160,14, - 124,4,100,9,100,0,133,2,25,0,161,1,125,13,116,15, - 124,13,116,16,131,2,115,125,116,17,100,11,124,1,155,2, - 100,12,157,3,131,1,130,1,124,13,83,0,41,13,78,41, - 2,114,47,0,0,0,114,13,0,0,0,114,5,0,0,0, - 114,0,0,0,0,114,93,0,0,0,90,5,110,101,118,101, - 114,90,6,97,108,119,97,121,115,114,105,0,0,0,114,100, - 0,0,0,114,101,0,0,0,122,22,98,121,116,101,99,111, - 100,101,32,105,115,32,115,116,97,108,101,32,102,111,114,32, - 122,16,99,111,109,112,105,108,101,100,32,109,111,100,117,108, - 101,32,122,21,32,105,115,32,110,111,116,32,97,32,99,111, - 100,101,32,111,98,106,101,99,116,41,18,114,21,0,0,0, - 90,13,95,99,108,97,115,115,105,102,121,95,112,121,99,218, - 4,95,105,109,112,90,21,99,104,101,99,107,95,104,97,115, - 104,95,98,97,115,101,100,95,112,121,99,115,218,15,95,103, - 101,116,95,112,121,99,95,115,111,117,114,99,101,218,11,115, - 111,117,114,99,101,95,104,97,115,104,90,17,95,82,65,87, - 95,77,65,71,73,67,95,78,85,77,66,69,82,90,18,95, - 118,97,108,105,100,97,116,101,95,104,97,115,104,95,112,121, - 99,218,29,95,103,101,116,95,109,116,105,109,101,95,97,110, - 100,95,115,105,122,101,95,111,102,95,115,111,117,114,99,101, - 114,153,0,0,0,114,2,0,0,0,114,48,0,0,0,114, - 81,0,0,0,218,7,109,97,114,115,104,97,108,90,5,108, - 111,97,100,115,114,15,0,0,0,218,10,95,99,111,100,101, - 95,116,121,112,101,218,9,84,121,112,101,69,114,114,111,114, - 41,14,114,32,0,0,0,114,60,0,0,0,114,69,0,0, - 0,114,41,0,0,0,114,132,0,0,0,90,11,101,120,99, - 95,100,101,116,97,105,108,115,114,135,0,0,0,90,10,104, - 97,115,104,95,98,97,115,101,100,90,12,99,104,101,99,107, - 95,115,111,117,114,99,101,90,12,115,111,117,114,99,101,95, - 98,121,116,101,115,114,156,0,0,0,90,12,115,111,117,114, - 99,101,95,109,116,105,109,101,90,11,115,111,117,114,99,101, - 95,115,105,122,101,114,53,0,0,0,114,9,0,0,0,114, - 9,0,0,0,114,10,0,0,0,218,15,95,117,110,109,97, - 114,115,104,97,108,95,99,111,100,101,123,2,0,0,115,72, - 0,0,0,2,2,2,1,6,254,14,5,12,2,4,1,12, - 1,10,1,2,1,2,255,8,1,2,255,10,2,8,1,4, - 1,4,1,2,1,4,254,4,5,8,1,4,255,2,128,8, - 4,6,255,4,3,22,3,18,1,2,255,4,2,8,1,4, - 255,4,2,18,2,10,1,16,1,4,1,114,161,0,0,0, - 99,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0, - 0,4,0,0,0,67,0,0,0,115,28,0,0,0,124,0, - 160,0,100,1,100,2,161,2,125,0,124,0,160,0,100,3, - 100,2,161,2,125,0,124,0,83,0,41,4,78,115,2,0, - 0,0,13,10,243,1,0,0,0,10,243,1,0,0,0,13, - 41,1,114,19,0,0,0,41,1,218,6,115,111,117,114,99, - 101,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, - 218,23,95,110,111,114,109,97,108,105,122,101,95,108,105,110, - 101,95,101,110,100,105,110,103,115,168,2,0,0,115,6,0, - 0,0,12,1,12,1,4,1,114,165,0,0,0,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,24,0,0,0,116,0,124,1,131, - 1,125,1,116,1,124,1,124,0,100,1,100,2,100,3,141, - 4,83,0,41,4,78,114,79,0,0,0,84,41,1,90,12, - 100,111,110,116,95,105,110,104,101,114,105,116,41,2,114,165, - 0,0,0,218,7,99,111,109,112,105,108,101,41,2,114,60, - 0,0,0,114,164,0,0,0,114,9,0,0,0,114,9,0, - 0,0,114,10,0,0,0,218,15,95,99,111,109,112,105,108, - 101,95,115,111,117,114,99,101,175,2,0,0,115,4,0,0, - 0,8,1,16,1,114,167,0,0,0,99,2,0,0,0,0, - 0,0,0,0,0,0,0,2,0,0,0,11,0,0,0,67, - 0,0,0,115,68,0,0,0,116,0,160,1,124,0,100,1, - 63,0,100,2,23,0,124,0,100,3,63,0,100,4,64,0, - 124,0,100,5,64,0,124,1,100,6,63,0,124,1,100,3, - 63,0,100,7,64,0,124,1,100,5,64,0,100,8,20,0, - 100,9,100,9,100,9,102,9,161,1,83,0,41,10,78,233, - 9,0,0,0,105,188,7,0,0,233,5,0,0,0,233,15, - 0,0,0,233,31,0,0,0,233,11,0,0,0,233,63,0, - 0,0,114,93,0,0,0,114,14,0,0,0,41,2,114,137, - 0,0,0,90,6,109,107,116,105,109,101,41,2,218,1,100, - 114,144,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,218,14,95,112,97,114,115,101,95,100,111,115, - 116,105,109,101,181,2,0,0,115,18,0,0,0,4,1,10, - 1,10,1,6,1,6,1,10,1,10,1,6,1,6,249,114, - 175,0,0,0,99,2,0,0,0,0,0,0,0,0,0,0, - 0,6,0,0,0,10,0,0,0,67,0,0,0,115,110,0, - 0,0,122,41,124,1,100,1,100,0,133,2,25,0,100,2, - 118,0,115,11,74,0,130,1,124,1,100,0,100,1,133,2, - 25,0,125,1,124,0,106,0,124,1,25,0,125,2,124,2, - 100,3,25,0,125,3,124,2,100,4,25,0,125,4,124,2, - 100,5,25,0,125,5,116,1,124,4,124,3,131,2,124,5, - 102,2,87,0,83,0,4,0,116,2,116,3,116,4,102,3, - 121,54,1,0,1,0,1,0,89,0,100,6,83,0,119,0, - 41,7,78,114,14,0,0,0,169,2,218,1,99,218,1,111, - 114,169,0,0,0,233,6,0,0,0,233,3,0,0,0,41, - 2,114,0,0,0,0,114,0,0,0,0,41,5,114,28,0, - 0,0,114,175,0,0,0,114,26,0,0,0,218,10,73,110, - 100,101,120,69,114,114,111,114,114,160,0,0,0,41,6,114, - 32,0,0,0,114,13,0,0,0,114,61,0,0,0,114,137, - 0,0,0,114,138,0,0,0,90,17,117,110,99,111,109,112, - 114,101,115,115,101,100,95,115,105,122,101,114,9,0,0,0, - 114,9,0,0,0,114,10,0,0,0,114,157,0,0,0,194, - 2,0,0,115,22,0,0,0,2,1,20,2,12,1,10,1, - 8,3,8,1,8,1,16,1,18,1,6,1,2,255,114,157, + 8,1,2,255,10,2,114,59,0,0,0,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,116,0,124,0,124,1,24, + 0,131,1,100,1,107,1,83,0,41,2,78,114,5,0,0, + 0,41,1,218,3,97,98,115,41,2,90,2,116,49,90,2, + 116,50,114,9,0,0,0,114,9,0,0,0,114,10,0,0, + 0,218,9,95,101,113,95,109,116,105,109,101,115,2,0,0, + 115,2,0,0,0,16,2,114,153,0,0,0,99,5,0,0, + 0,0,0,0,0,0,0,0,0,14,0,0,0,6,0,0, + 0,67,0,0,0,115,254,0,0,0,124,3,124,2,100,1, + 156,2,125,5,116,0,160,1,124,4,124,3,124,5,161,3, + 125,6,124,6,100,2,64,0,100,3,107,3,125,7,124,7, + 114,63,124,6,100,4,64,0,100,3,107,3,125,8,116,2, + 106,3,100,5,107,3,114,62,124,8,115,38,116,2,106,3, + 100,6,107,2,114,62,116,4,124,0,124,2,131,2,125,9, + 124,9,100,0,117,1,114,62,116,2,160,5,116,0,106,6, + 124,9,161,2,125,10,116,0,160,7,124,4,124,10,124,3, + 124,5,161,4,1,0,110,40,116,8,124,0,124,2,131,2, + 92,2,125,11,125,12,124,11,114,103,116,9,116,10,124,4, + 100,7,100,8,133,2,25,0,131,1,124,11,131,2,114,93, + 116,10,124,4,100,8,100,9,133,2,25,0,131,1,124,12, + 107,3,114,103,116,11,160,12,100,10,124,3,155,2,157,2, + 161,1,1,0,100,0,83,0,116,13,160,14,124,4,100,9, + 100,0,133,2,25,0,161,1,125,13,116,15,124,13,116,16, + 131,2,115,125,116,17,100,11,124,1,155,2,100,12,157,3, + 131,1,130,1,124,13,83,0,41,13,78,41,2,114,47,0, + 0,0,114,13,0,0,0,114,5,0,0,0,114,0,0,0, + 0,114,93,0,0,0,90,5,110,101,118,101,114,90,6,97, + 108,119,97,121,115,114,105,0,0,0,114,100,0,0,0,114, + 101,0,0,0,122,22,98,121,116,101,99,111,100,101,32,105, + 115,32,115,116,97,108,101,32,102,111,114,32,122,16,99,111, + 109,112,105,108,101,100,32,109,111,100,117,108,101,32,122,21, + 32,105,115,32,110,111,116,32,97,32,99,111,100,101,32,111, + 98,106,101,99,116,41,18,114,21,0,0,0,90,13,95,99, + 108,97,115,115,105,102,121,95,112,121,99,218,4,95,105,109, + 112,90,21,99,104,101,99,107,95,104,97,115,104,95,98,97, + 115,101,100,95,112,121,99,115,218,15,95,103,101,116,95,112, + 121,99,95,115,111,117,114,99,101,218,11,115,111,117,114,99, + 101,95,104,97,115,104,90,17,95,82,65,87,95,77,65,71, + 73,67,95,78,85,77,66,69,82,90,18,95,118,97,108,105, + 100,97,116,101,95,104,97,115,104,95,112,121,99,218,29,95, + 103,101,116,95,109,116,105,109,101,95,97,110,100,95,115,105, + 122,101,95,111,102,95,115,111,117,114,99,101,114,153,0,0, + 0,114,2,0,0,0,114,48,0,0,0,114,81,0,0,0, + 218,7,109,97,114,115,104,97,108,90,5,108,111,97,100,115, + 114,15,0,0,0,218,10,95,99,111,100,101,95,116,121,112, + 101,218,9,84,121,112,101,69,114,114,111,114,41,14,114,32, + 0,0,0,114,60,0,0,0,114,69,0,0,0,114,41,0, + 0,0,114,132,0,0,0,90,11,101,120,99,95,100,101,116, + 97,105,108,115,114,135,0,0,0,90,10,104,97,115,104,95, + 98,97,115,101,100,90,12,99,104,101,99,107,95,115,111,117, + 114,99,101,90,12,115,111,117,114,99,101,95,98,121,116,101, + 115,114,156,0,0,0,90,12,115,111,117,114,99,101,95,109, + 116,105,109,101,90,11,115,111,117,114,99,101,95,115,105,122, + 101,114,53,0,0,0,114,9,0,0,0,114,9,0,0,0, + 114,10,0,0,0,218,15,95,117,110,109,97,114,115,104,97, + 108,95,99,111,100,101,123,2,0,0,115,72,0,0,0,2, + 2,2,1,6,254,14,5,12,2,4,1,12,1,10,1,2, + 1,2,255,8,1,2,255,10,2,8,1,4,1,4,1,2, + 1,4,254,4,5,8,1,4,255,2,128,8,4,6,255,4, + 3,22,3,18,1,2,255,4,2,8,1,4,255,4,2,18, + 2,10,1,16,1,4,1,114,161,0,0,0,99,1,0,0, + 0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0, + 0,67,0,0,0,115,28,0,0,0,124,0,160,0,100,1, + 100,2,161,2,125,0,124,0,160,0,100,3,100,2,161,2, + 125,0,124,0,83,0,41,4,78,115,2,0,0,0,13,10, + 243,1,0,0,0,10,243,1,0,0,0,13,41,1,114,19, + 0,0,0,41,1,218,6,115,111,117,114,99,101,114,9,0, + 0,0,114,9,0,0,0,114,10,0,0,0,218,23,95,110, + 111,114,109,97,108,105,122,101,95,108,105,110,101,95,101,110, + 100,105,110,103,115,168,2,0,0,115,6,0,0,0,12,1, + 12,1,4,1,114,165,0,0,0,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,24,0,0,0,116,0,124,1,131,1,125,1,116, + 1,124,1,124,0,100,1,100,2,100,3,141,4,83,0,41, + 4,78,114,79,0,0,0,84,41,1,90,12,100,111,110,116, + 95,105,110,104,101,114,105,116,41,2,114,165,0,0,0,218, + 7,99,111,109,112,105,108,101,41,2,114,60,0,0,0,114, + 164,0,0,0,114,9,0,0,0,114,9,0,0,0,114,10, + 0,0,0,218,15,95,99,111,109,112,105,108,101,95,115,111, + 117,114,99,101,175,2,0,0,115,4,0,0,0,8,1,16, + 1,114,167,0,0,0,99,2,0,0,0,0,0,0,0,0, + 0,0,0,2,0,0,0,11,0,0,0,67,0,0,0,115, + 68,0,0,0,116,0,160,1,124,0,100,1,63,0,100,2, + 23,0,124,0,100,3,63,0,100,4,64,0,124,0,100,5, + 64,0,124,1,100,6,63,0,124,1,100,3,63,0,100,7, + 64,0,124,1,100,5,64,0,100,8,20,0,100,9,100,9, + 100,9,102,9,161,1,83,0,41,10,78,233,9,0,0,0, + 105,188,7,0,0,233,5,0,0,0,233,15,0,0,0,233, + 31,0,0,0,233,11,0,0,0,233,63,0,0,0,114,93, + 0,0,0,114,14,0,0,0,41,2,114,137,0,0,0,90, + 6,109,107,116,105,109,101,41,2,218,1,100,114,144,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 218,14,95,112,97,114,115,101,95,100,111,115,116,105,109,101, + 181,2,0,0,115,18,0,0,0,4,1,10,1,10,1,6, + 1,6,1,10,1,10,1,6,1,6,249,114,175,0,0,0, + 99,2,0,0,0,0,0,0,0,0,0,0,0,6,0,0, + 0,10,0,0,0,67,0,0,0,115,110,0,0,0,122,41, + 124,1,100,1,100,0,133,2,25,0,100,2,118,0,115,11, + 74,0,130,1,124,1,100,0,100,1,133,2,25,0,125,1, + 124,0,106,0,124,1,25,0,125,2,124,2,100,3,25,0, + 125,3,124,2,100,4,25,0,125,4,124,2,100,5,25,0, + 125,5,116,1,124,4,124,3,131,2,124,5,102,2,87,0, + 83,0,4,0,116,2,116,3,116,4,102,3,121,54,1,0, + 1,0,1,0,89,0,100,6,83,0,119,0,41,7,78,114, + 14,0,0,0,169,2,218,1,99,218,1,111,114,169,0,0, + 0,233,6,0,0,0,233,3,0,0,0,41,2,114,0,0, + 0,0,114,0,0,0,0,41,5,114,28,0,0,0,114,175, + 0,0,0,114,26,0,0,0,218,10,73,110,100,101,120,69, + 114,114,111,114,114,160,0,0,0,41,6,114,32,0,0,0, + 114,13,0,0,0,114,61,0,0,0,114,137,0,0,0,114, + 138,0,0,0,90,17,117,110,99,111,109,112,114,101,115,115, + 101,100,95,115,105,122,101,114,9,0,0,0,114,9,0,0, + 0,114,10,0,0,0,114,157,0,0,0,194,2,0,0,115, + 22,0,0,0,2,1,20,2,12,1,10,1,8,3,8,1, + 8,1,16,1,18,1,6,1,2,255,114,157,0,0,0,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,80,0,0,0,124,1,100, + 1,100,0,133,2,25,0,100,2,118,0,115,10,74,0,130, + 1,124,1,100,0,100,1,133,2,25,0,125,1,122,7,124, + 0,106,0,124,1,25,0,125,2,87,0,110,10,4,0,116, + 1,121,33,1,0,1,0,1,0,89,0,100,0,83,0,119, + 0,116,2,124,0,106,3,124,2,131,2,83,0,41,3,78, + 114,14,0,0,0,114,176,0,0,0,41,4,114,28,0,0, + 0,114,26,0,0,0,114,59,0,0,0,114,29,0,0,0, + 41,3,114,32,0,0,0,114,13,0,0,0,114,61,0,0, + 0,114,9,0,0,0,114,9,0,0,0,114,10,0,0,0, + 114,155,0,0,0,213,2,0,0,115,16,0,0,0,20,2, + 12,1,2,2,14,1,12,1,6,1,2,255,12,3,114,155, 0,0,0,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,80,0,0, - 0,124,1,100,1,100,0,133,2,25,0,100,2,118,0,115, - 10,74,0,130,1,124,1,100,0,100,1,133,2,25,0,125, - 1,122,7,124,0,106,0,124,1,25,0,125,2,87,0,110, - 9,4,0,116,1,121,39,1,0,1,0,1,0,89,0,100, - 0,83,0,116,2,124,0,106,3,124,2,131,2,83,0,119, - 0,41,3,78,114,14,0,0,0,114,176,0,0,0,41,4, - 114,28,0,0,0,114,26,0,0,0,114,59,0,0,0,114, - 29,0,0,0,41,3,114,32,0,0,0,114,13,0,0,0, - 114,61,0,0,0,114,9,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,155,0,0,0,213,2,0,0,115,16,0, - 0,0,20,2,12,1,2,2,14,1,12,1,6,1,12,2, - 2,253,114,155,0,0,0,99,2,0,0,0,0,0,0,0, - 0,0,0,0,14,0,0,0,11,0,0,0,67,0,0,0, - 115,14,1,0,0,116,0,124,0,124,1,131,2,125,2,100, - 0,125,3,116,1,68,0,93,100,92,3,125,4,125,5,125, - 6,124,2,124,4,23,0,125,7,116,2,106,3,100,1,124, - 0,106,4,116,5,124,7,100,2,100,3,141,5,1,0,122, - 7,124,0,106,6,124,7,25,0,125,8,87,0,110,8,4, - 0,116,7,121,134,1,0,1,0,1,0,89,0,113,9,124, - 8,100,4,25,0,125,9,116,8,124,0,106,4,124,8,131, - 2,125,10,100,0,125,11,124,5,114,89,122,10,116,9,124, - 0,124,9,124,7,124,1,124,10,131,5,125,11,87,0,110, - 24,4,0,116,10,121,133,1,0,125,12,1,0,122,8,124, - 12,125,3,87,0,89,0,100,0,125,12,126,12,110,9,100, - 0,125,12,126,12,119,1,116,11,124,9,124,10,131,2,125, - 11,124,11,100,0,117,0,114,99,113,9,124,8,100,4,25, + 14,0,0,0,11,0,0,0,67,0,0,0,115,14,1,0, + 0,116,0,124,0,124,1,131,2,125,2,100,0,125,3,116, + 1,68,0,93,102,92,3,125,4,125,5,125,6,124,2,124, + 4,23,0,125,7,116,2,106,3,100,1,124,0,106,4,116, + 5,124,7,100,2,100,3,141,5,1,0,122,7,124,0,106, + 6,124,7,25,0,125,8,87,0,110,9,4,0,116,7,121, + 45,1,0,1,0,1,0,89,0,113,9,119,0,124,8,100, + 4,25,0,125,9,116,8,124,0,106,4,124,8,131,2,125, + 10,100,0,125,11,124,5,114,91,122,10,116,9,124,0,124, + 9,124,7,124,1,124,10,131,5,125,11,87,0,110,25,4, + 0,116,10,121,90,1,0,125,12,1,0,122,8,124,12,125, + 3,87,0,89,0,100,0,125,12,126,12,110,10,100,0,125, + 12,126,12,119,1,119,0,116,11,124,9,124,10,131,2,125, + 11,124,11,100,0,117,0,114,101,113,9,124,8,100,4,25, 0,125,9,124,11,124,6,124,9,102,3,2,0,1,0,83, - 0,124,3,114,124,100,5,124,3,155,0,157,2,125,13,116, + 0,124,3,114,126,100,5,124,3,155,0,157,2,125,13,116, 12,124,13,124,1,100,6,141,2,124,3,130,2,116,12,100, - 7,124,1,155,2,157,2,124,1,100,6,141,2,130,1,119, - 0,119,0,41,8,78,122,13,116,114,121,105,110,103,32,123, - 125,123,125,123,125,114,93,0,0,0,41,1,90,9,118,101, - 114,98,111,115,105,116,121,114,0,0,0,0,122,20,109,111, - 100,117,108,101,32,108,111,97,100,32,102,97,105,108,101,100, - 58,32,114,65,0,0,0,114,64,0,0,0,41,13,114,39, - 0,0,0,114,95,0,0,0,114,48,0,0,0,114,81,0, - 0,0,114,29,0,0,0,114,20,0,0,0,114,28,0,0, - 0,114,26,0,0,0,114,59,0,0,0,114,161,0,0,0, - 114,80,0,0,0,114,167,0,0,0,114,3,0,0,0,41, - 14,114,32,0,0,0,114,41,0,0,0,114,13,0,0,0, - 90,12,105,109,112,111,114,116,95,101,114,114,111,114,114,96, - 0,0,0,114,97,0,0,0,114,54,0,0,0,114,69,0, - 0,0,114,61,0,0,0,114,43,0,0,0,114,132,0,0, - 0,114,53,0,0,0,90,3,101,120,99,114,82,0,0,0, - 114,9,0,0,0,114,9,0,0,0,114,10,0,0,0,114, - 51,0,0,0,228,2,0,0,115,58,0,0,0,10,1,4, - 1,14,1,8,1,22,1,2,1,14,1,12,1,4,1,8, - 2,12,1,4,1,4,1,2,1,20,1,14,1,16,1,8, - 128,10,2,8,1,2,3,8,1,14,1,4,2,10,1,14, - 1,18,2,2,241,2,247,114,51,0,0,0,41,46,114,91, - 0,0,0,90,26,95,102,114,111,122,101,110,95,105,109,112, - 111,114,116,108,105,98,95,101,120,116,101,114,110,97,108,114, - 21,0,0,0,114,1,0,0,0,114,2,0,0,0,90,17, - 95,102,114,111,122,101,110,95,105,109,112,111,114,116,108,105, - 98,114,48,0,0,0,114,154,0,0,0,114,116,0,0,0, - 114,158,0,0,0,114,72,0,0,0,114,137,0,0,0,114, - 35,0,0,0,90,7,95,95,97,108,108,95,95,114,20,0, - 0,0,90,15,112,97,116,104,95,115,101,112,97,114,97,116, - 111,114,115,114,18,0,0,0,114,80,0,0,0,114,3,0, - 0,0,114,25,0,0,0,218,4,116,121,112,101,114,75,0, - 0,0,114,119,0,0,0,114,121,0,0,0,114,123,0,0, - 0,90,13,95,76,111,97,100,101,114,66,97,115,105,99,115, - 114,4,0,0,0,114,95,0,0,0,114,39,0,0,0,114, - 40,0,0,0,114,38,0,0,0,114,27,0,0,0,114,128, - 0,0,0,114,148,0,0,0,114,150,0,0,0,114,59,0, - 0,0,114,153,0,0,0,114,161,0,0,0,218,8,95,95, - 99,111,100,101,95,95,114,159,0,0,0,114,165,0,0,0, - 114,167,0,0,0,114,175,0,0,0,114,157,0,0,0,114, - 155,0,0,0,114,51,0,0,0,114,9,0,0,0,114,9, - 0,0,0,114,9,0,0,0,114,10,0,0,0,218,8,60, - 109,111,100,117,108,101,62,1,0,0,0,115,90,0,0,0, - 4,0,8,16,16,1,8,1,8,1,8,1,8,1,8,1, - 8,1,8,1,8,2,6,3,14,1,16,3,4,4,8,2, - 4,2,4,1,4,1,18,2,0,127,0,127,12,50,12,1, - 2,1,2,1,4,252,8,9,8,4,8,9,8,31,2,126, - 2,254,4,29,8,5,8,21,8,46,8,8,10,40,8,5, - 8,7,8,6,8,13,8,19,12,15, + 7,124,1,155,2,157,2,124,1,100,6,141,2,130,1,41, + 8,78,122,13,116,114,121,105,110,103,32,123,125,123,125,123, + 125,114,93,0,0,0,41,1,90,9,118,101,114,98,111,115, + 105,116,121,114,0,0,0,0,122,20,109,111,100,117,108,101, + 32,108,111,97,100,32,102,97,105,108,101,100,58,32,114,65, + 0,0,0,114,64,0,0,0,41,13,114,39,0,0,0,114, + 95,0,0,0,114,48,0,0,0,114,81,0,0,0,114,29, + 0,0,0,114,20,0,0,0,114,28,0,0,0,114,26,0, + 0,0,114,59,0,0,0,114,161,0,0,0,114,80,0,0, + 0,114,167,0,0,0,114,3,0,0,0,41,14,114,32,0, + 0,0,114,41,0,0,0,114,13,0,0,0,90,12,105,109, + 112,111,114,116,95,101,114,114,111,114,114,96,0,0,0,114, + 97,0,0,0,114,54,0,0,0,114,69,0,0,0,114,61, + 0,0,0,114,43,0,0,0,114,132,0,0,0,114,53,0, + 0,0,90,3,101,120,99,114,82,0,0,0,114,9,0,0, + 0,114,9,0,0,0,114,10,0,0,0,114,51,0,0,0, + 228,2,0,0,115,58,0,0,0,10,1,4,1,14,1,8, + 1,22,1,2,1,14,1,12,1,4,1,2,255,8,3,12, + 1,4,1,4,1,2,1,20,1,14,1,16,1,8,128,2, + 255,10,3,8,1,2,3,8,1,14,1,4,2,10,1,14, + 1,18,2,114,51,0,0,0,41,46,114,91,0,0,0,90, + 26,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108, + 105,98,95,101,120,116,101,114,110,97,108,114,21,0,0,0, + 114,1,0,0,0,114,2,0,0,0,90,17,95,102,114,111, + 122,101,110,95,105,109,112,111,114,116,108,105,98,114,48,0, + 0,0,114,154,0,0,0,114,116,0,0,0,114,158,0,0, + 0,114,72,0,0,0,114,137,0,0,0,114,35,0,0,0, + 90,7,95,95,97,108,108,95,95,114,20,0,0,0,90,15, + 112,97,116,104,95,115,101,112,97,114,97,116,111,114,115,114, + 18,0,0,0,114,80,0,0,0,114,3,0,0,0,114,25, + 0,0,0,218,4,116,121,112,101,114,75,0,0,0,114,119, + 0,0,0,114,121,0,0,0,114,123,0,0,0,90,13,95, + 76,111,97,100,101,114,66,97,115,105,99,115,114,4,0,0, + 0,114,95,0,0,0,114,39,0,0,0,114,40,0,0,0, + 114,38,0,0,0,114,27,0,0,0,114,128,0,0,0,114, + 148,0,0,0,114,150,0,0,0,114,59,0,0,0,114,153, + 0,0,0,114,161,0,0,0,218,8,95,95,99,111,100,101, + 95,95,114,159,0,0,0,114,165,0,0,0,114,167,0,0, + 0,114,175,0,0,0,114,157,0,0,0,114,155,0,0,0, + 114,51,0,0,0,114,9,0,0,0,114,9,0,0,0,114, + 9,0,0,0,114,10,0,0,0,218,8,60,109,111,100,117, + 108,101,62,1,0,0,0,115,90,0,0,0,4,0,8,16, + 16,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1, + 8,2,6,3,14,1,16,3,4,4,8,2,4,2,4,1, + 4,1,18,2,0,127,0,127,12,50,12,1,2,1,2,1, + 4,252,8,9,8,4,8,9,8,31,2,126,2,254,4,29, + 8,5,8,21,8,46,8,8,10,40,8,5,8,7,8,6, + 8,13,8,19,12,15, }; From webhook-mailer at python.org Mon Aug 9 06:05:35 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 10:05:35 -0000 Subject: [Python-checkins] bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) Message-ID: https://github.com/python/cpython/commit/eb2d4a66ff07aa6e51cfaaa31afed31addf76936 commit: eb2d4a66ff07aa6e51cfaaa31afed31addf76936 branch: main author: Zackery Spytz committer: ambv date: 2021-08-09T12:05:31+02:00 summary: bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) Co-Authored-By: Bo Bayles files: A Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst M Doc/library/tarfile.rst M Lib/test/test_tarfile.py diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 13088a10d77c5..6afb8397b7866 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -102,6 +102,9 @@ Some facts and figures: ``'x:bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* (default ``9``) to specify the compression level of the file. + For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the + keyword argument *preset* to specify the compression level of the file. + For special purposes, there is a second format for *mode*: ``'filemode|[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` object that processes its data as a stream of blocks. No random seeking will diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 817e6f1799712..cfdda24a269f5 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -1706,15 +1706,30 @@ def test_create_taropen_pathlike_name(self): class GzipCreateTest(GzipTest, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:gz', compresslevel=1) as tobj: + pass class Bz2CreateTest(Bz2Test, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:bz2', compresslevel=1) as tobj: + pass class LzmaCreateTest(LzmaTest, CreateTest): - pass + + # Unlike gz and bz2, xz uses the preset keyword instead of compresslevel. + # It does not allow for preset to be specified when reading. + def test_create_with_preset(self): + with tarfile.open(tmpname, self.mode, preset=1) as tobj: + tobj.add(self.file_path) class CreateWithXModeTest(CreateTest): diff --git a/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst new file mode 100644 index 0000000000000..c71316ed656a2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst @@ -0,0 +1,2 @@ +The *compresslevel* and *preset* keyword arguments of :func:`tarfile.open` +are now both documented and tested. From webhook-mailer at python.org Mon Aug 9 06:30:27 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 10:30:27 -0000 Subject: [Python-checkins] bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) (GH-27674) Message-ID: https://github.com/python/cpython/commit/ede221e51796f3f5471278aabd9105870f79dfb5 commit: ede221e51796f3f5471278aabd9105870f79dfb5 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-09T12:30:00+02:00 summary: bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) (GH-27674) Co-Authored-By: Bo Bayles (cherry picked from commit eb2d4a66ff07aa6e51cfaaa31afed31addf76936) Co-authored-by: Zackery Spytz files: A Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst M Doc/library/tarfile.rst M Lib/test/test_tarfile.py diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 13088a10d77c5..6afb8397b7866 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -102,6 +102,9 @@ Some facts and figures: ``'x:bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* (default ``9``) to specify the compression level of the file. + For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the + keyword argument *preset* to specify the compression level of the file. + For special purposes, there is a second format for *mode*: ``'filemode|[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` object that processes its data as a stream of blocks. No random seeking will diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 29cde91bf7fc1..6279309ed3bf1 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -1705,15 +1705,30 @@ def test_create_taropen_pathlike_name(self): class GzipCreateTest(GzipTest, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:gz', compresslevel=1) as tobj: + pass class Bz2CreateTest(Bz2Test, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:bz2', compresslevel=1) as tobj: + pass class LzmaCreateTest(LzmaTest, CreateTest): - pass + + # Unlike gz and bz2, xz uses the preset keyword instead of compresslevel. + # It does not allow for preset to be specified when reading. + def test_create_with_preset(self): + with tarfile.open(tmpname, self.mode, preset=1) as tobj: + tobj.add(self.file_path) class CreateWithXModeTest(CreateTest): diff --git a/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst new file mode 100644 index 0000000000000..c71316ed656a2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst @@ -0,0 +1,2 @@ +The *compresslevel* and *preset* keyword arguments of :func:`tarfile.open` +are now both documented and tested. From webhook-mailer at python.org Mon Aug 9 06:30:35 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 09 Aug 2021 10:30:35 -0000 Subject: [Python-checkins] bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) Message-ID: https://github.com/python/cpython/commit/d5c8ad24716d146ffa025e09dad85e5a1bac5c77 commit: d5c8ad24716d146ffa025e09dad85e5a1bac5c77 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-09T03:30:30-07:00 summary: bpo-32695: Docs and tests for compresslevel and preset kwargs in tarfile (GH-21470) Co-Authored-By: Bo Bayles (cherry picked from commit eb2d4a66ff07aa6e51cfaaa31afed31addf76936) Co-authored-by: Zackery Spytz files: A Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst M Doc/library/tarfile.rst M Lib/test/test_tarfile.py diff --git a/Doc/library/tarfile.rst b/Doc/library/tarfile.rst index 13088a10d77c5..6afb8397b7866 100644 --- a/Doc/library/tarfile.rst +++ b/Doc/library/tarfile.rst @@ -102,6 +102,9 @@ Some facts and figures: ``'x:bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* (default ``9``) to specify the compression level of the file. + For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the + keyword argument *preset* to specify the compression level of the file. + For special purposes, there is a second format for *mode*: ``'filemode|[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` object that processes its data as a stream of blocks. No random seeking will diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 817e6f1799712..cfdda24a269f5 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -1706,15 +1706,30 @@ def test_create_taropen_pathlike_name(self): class GzipCreateTest(GzipTest, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:gz', compresslevel=1) as tobj: + pass class Bz2CreateTest(Bz2Test, CreateTest): - pass + + def test_create_with_compresslevel(self): + with tarfile.open(tmpname, self.mode, compresslevel=1) as tobj: + tobj.add(self.file_path) + with tarfile.open(tmpname, 'r:bz2', compresslevel=1) as tobj: + pass class LzmaCreateTest(LzmaTest, CreateTest): - pass + + # Unlike gz and bz2, xz uses the preset keyword instead of compresslevel. + # It does not allow for preset to be specified when reading. + def test_create_with_preset(self): + with tarfile.open(tmpname, self.mode, preset=1) as tobj: + tobj.add(self.file_path) class CreateWithXModeTest(CreateTest): diff --git a/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst new file mode 100644 index 0000000000000..c71316ed656a2 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-07-13-23-46-59.bpo-32695.tTqqXe.rst @@ -0,0 +1,2 @@ +The *compresslevel* and *preset* keyword arguments of :func:`tarfile.open` +are now both documented and tested. From webhook-mailer at python.org Mon Aug 9 08:01:57 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 09 Aug 2021 12:01:57 -0000 Subject: [Python-checkins] bpo-44702: Remove ambiguity in sentence (GH-27676) Message-ID: https://github.com/python/cpython/commit/03e5647ab07c7d2a05094fc3b5ed6eba6fc01349 commit: 03e5647ab07c7d2a05094fc3b5ed6eba6fc01349 branch: main author: meowmeowmeowcat committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-09T05:01:30-07:00 summary: bpo-44702: Remove ambiguity in sentence (GH-27676) Automerge-Triggered-By: GH:pablogsal files: M Doc/library/weakref.rst diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst index b88543e445372..5a8df4c27dc37 100644 --- a/Doc/library/weakref.rst +++ b/Doc/library/weakref.rst @@ -63,9 +63,9 @@ or :class:`finalize` is all they need -- it's not usually necessary to create your own weak references directly. The low-level machinery is exposed by the :mod:`weakref` module for the benefit of advanced uses. -Not all objects can be weakly referenced; those objects which can include class -instances, functions written in Python (but not in C), instance methods, sets, -frozensets, some :term:`file objects `, :term:`generators `, +Not all objects can be weakly referenced. Objects which support weak references +include class instances, functions written in Python (but not in C), instance methods, +sets, frozensets, some :term:`file objects `, :term:`generators `, type objects, sockets, arrays, deques, regular expression pattern objects, and code objects. From webhook-mailer at python.org Mon Aug 9 09:44:34 2021 From: webhook-mailer at python.org (markshannon) Date: Mon, 09 Aug 2021 13:44:34 -0000 Subject: [Python-checkins] Remove unused variable. (GH-27677) Message-ID: https://github.com/python/cpython/commit/41bb564cd6ba38c06476de36bc31c3c3568eed63 commit: 41bb564cd6ba38c06476de36bc31c3c3568eed63 branch: main author: Mark Shannon committer: markshannon date: 2021-08-09T14:44:26+01:00 summary: Remove unused variable. (GH-27677) files: M Python/compile.c diff --git a/Python/compile.c b/Python/compile.c index d65f7a849a5b7..e651ca535191a 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -8610,11 +8610,9 @@ is_exit_without_lineno(basicblock *b) { static int duplicate_exits_without_lineno(struct compiler *c) { - basicblock *entry = NULL; /* Copy all exit blocks without line number that are targets of a jump. */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { - entry = b; if (b->b_iused > 0 && is_jump(&b->b_instr[b->b_iused-1])) { switch (b->b_instr[b->b_iused-1].i_opcode) { /* Note: Only actual jumps, not exception handlers */ @@ -8638,7 +8636,6 @@ duplicate_exits_without_lineno(struct compiler *c) } } } - assert(entry != NULL); /* Eliminate empty blocks */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { while (b->b_next && b->b_next->b_iused == 0) { From webhook-mailer at python.org Mon Aug 9 10:15:03 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 14:15:03 -0000 Subject: [Python-checkins] bpo-44522: Fix inaccurate information in open() function (GH-27650) Message-ID: https://github.com/python/cpython/commit/b05e9b63fcfcd4bd7a6434fa9f9a7028d12f91c4 commit: b05e9b63fcfcd4bd7a6434fa9f9a7028d12f91c4 branch: main author: meowmeowmeowcat committer: ambv date: 2021-08-09T16:14:54+02:00 summary: bpo-44522: Fix inaccurate information in open() function (GH-27650) - Use "Low surrogate code units" instead of "Unicode Private Use Area" files: M Doc/library/functions.rst diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index f99ea889ffe1e..652e30c6088ad 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1208,9 +1208,9 @@ are always available. They are listed here in alphabetical order. * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted where there is malformed data. - * ``'surrogateescape'`` will represent any incorrect bytes as code - points in the Unicode Private Use Area ranging from U+DC80 to - U+DCFF. These private code points will then be turned back into + * ``'surrogateescape'`` will represent any incorrect bytes as low + surrogate code units ranging from U+DC80 to U+DCFF. + These surrogate code units will then be turned back into the same bytes when the ``surrogateescape`` error handler is used when writing data. This is useful for processing files in an unknown encoding. From webhook-mailer at python.org Mon Aug 9 10:25:50 2021 From: webhook-mailer at python.org (pablogsal) Date: Mon, 09 Aug 2021 14:25:50 -0000 Subject: [Python-checkins] Remove unused variable. (GH-27677) (#27680) Message-ID: https://github.com/python/cpython/commit/0f02993b2c7b3343df05fcf8b5f0e6a900f195b3 commit: 0f02993b2c7b3343df05fcf8b5f0e6a900f195b3 branch: 3.10 author: Mark Shannon committer: pablogsal date: 2021-08-09T15:25:40+01:00 summary: Remove unused variable. (GH-27677) (#27680) files: M Python/compile.c diff --git a/Python/compile.c b/Python/compile.c index edc77e50c9b6c..a2378992fd408 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -7820,7 +7820,6 @@ is_exit_without_lineno(basicblock *b) { static int duplicate_exits_without_lineno(struct compiler *c) { - basicblock *entry = NULL; /* Copy all exit blocks without line number that are targets of a jump. */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { @@ -7846,9 +7845,7 @@ duplicate_exits_without_lineno(struct compiler *c) target->b_next = new_target; } } - entry = b; } - assert(entry != NULL); /* Eliminate empty blocks */ for (basicblock *b = c->u->u_blocks; b != NULL; b = b->b_list) { while (b->b_next && b->b_next->b_iused == 0) { From webhook-mailer at python.org Mon Aug 9 10:35:15 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 09 Aug 2021 14:35:15 -0000 Subject: [Python-checkins] bpo-44522: Fix inaccurate information in open() function (GH-27650) Message-ID: https://github.com/python/cpython/commit/c79aa427c0b0c8a09e5c22a5420baf837054f509 commit: c79aa427c0b0c8a09e5c22a5420baf837054f509 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-09T07:35:11-07:00 summary: bpo-44522: Fix inaccurate information in open() function (GH-27650) - Use "Low surrogate code units" instead of "Unicode Private Use Area" (cherry picked from commit b05e9b63fcfcd4bd7a6434fa9f9a7028d12f91c4) Co-authored-by: meowmeowmeowcat files: M Doc/library/functions.rst diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index f99ea889ffe1e..652e30c6088ad 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1208,9 +1208,9 @@ are always available. They are listed here in alphabetical order. * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted where there is malformed data. - * ``'surrogateescape'`` will represent any incorrect bytes as code - points in the Unicode Private Use Area ranging from U+DC80 to - U+DCFF. These private code points will then be turned back into + * ``'surrogateescape'`` will represent any incorrect bytes as low + surrogate code units ranging from U+DC80 to U+DCFF. + These surrogate code units will then be turned back into the same bytes when the ``surrogateescape`` error handler is used when writing data. This is useful for processing files in an unknown encoding. From webhook-mailer at python.org Mon Aug 9 10:39:40 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 14:39:40 -0000 Subject: [Python-checkins] bpo-44522: Fix inaccurate information in open() function (GH-27650) (GH-27682) Message-ID: https://github.com/python/cpython/commit/037ef8d6d9cc8225d6db0305cee2d8d0ee5bee74 commit: 037ef8d6d9cc8225d6db0305cee2d8d0ee5bee74 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-09T16:39:31+02:00 summary: bpo-44522: Fix inaccurate information in open() function (GH-27650) (GH-27682) - Use "Low surrogate code units" instead of "Unicode Private Use Area" (cherry picked from commit b05e9b63fcfcd4bd7a6434fa9f9a7028d12f91c4) Co-authored-by: meowmeowmeowcat files: M Doc/library/functions.rst diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 784bb62e64a16..c5c1c161293f6 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1150,9 +1150,9 @@ are always available. They are listed here in alphabetical order. * ``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted where there is malformed data. - * ``'surrogateescape'`` will represent any incorrect bytes as code - points in the Unicode Private Use Area ranging from U+DC80 to - U+DCFF. These private code points will then be turned back into + * ``'surrogateescape'`` will represent any incorrect bytes as low + surrogate code units ranging from U+DC80 to U+DCFF. + These surrogate code units will then be turned back into the same bytes when the ``surrogateescape`` error handler is used when writing data. This is useful for processing files in an unknown encoding. From webhook-mailer at python.org Mon Aug 9 10:46:24 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 14:46:24 -0000 Subject: [Python-checkins] [3.9] Upgrade bundled pip and setuptools (GH-27625) (GH-27658) Message-ID: https://github.com/python/cpython/commit/26539cea8ad3256f5385268a1a70847f64b1865d commit: 26539cea8ad3256f5385268a1a70847f64b1865d branch: 3.9 author: Tzu-ping Chung committer: ambv date: 2021-08-09T16:46:15+02:00 summary: [3.9] Upgrade bundled pip and setuptools (GH-27625) (GH-27658) pip is now 21.2.3 setuptools is now 57.4.0. (cherry picked from commit 738ac00a08cb6a9d104ec85ccb1a44c2399d6baa) Co-authored-by: Tzu-ping Chung files: A Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl A Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl A Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst D Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl D Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl M Lib/ensurepip/__init__.py diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 14a39037e0c771..7b03970c93ec07 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -13,9 +13,9 @@ __all__ = ["version", "bootstrap"] -_SETUPTOOLS_VERSION = "56.0.0" +_SETUPTOOLS_VERSION = "57.4.0" -_PIP_VERSION = "21.1.3" +_PIP_VERSION = "21.2.3" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), diff --git a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl deleted file mode 100644 index d96a40a9291fb2..00000000000000 Binary files a/Lib/ensurepip/_bundled/pip-21.1.3-py3-none-any.whl and /dev/null differ diff --git a/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl new file mode 100644 index 00000000000000..d417df63d9ec19 Binary files /dev/null and b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl differ diff --git a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl similarity index 65% rename from Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl rename to Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl index 264ef10e826679..af8f8ba21003b1 100644 Binary files a/Lib/ensurepip/_bundled/setuptools-56.0.0-py3-none-any.whl and b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl differ diff --git a/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst new file mode 100644 index 00000000000000..99f08065b9d2f0 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-06-19-15-52.bpo-44581.oFDBTB.rst @@ -0,0 +1 @@ +Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0 From webhook-mailer at python.org Mon Aug 9 12:45:03 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 16:45:03 -0000 Subject: [Python-checkins] bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) Message-ID: https://github.com/python/cpython/commit/d0978761118856e8ca8ea7b162a6585b8da83df9 commit: d0978761118856e8ca8ea7b162a6585b8da83df9 branch: main author: Zackery Spytz committer: ambv date: 2021-08-09T18:44:55+02:00 summary: bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) This was causing test___all__ to fail on platforms lacking a shared memory implementation. Co-Authored-By: Xavier de Gaye Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst M Lib/multiprocessing/managers.py diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index 9c7e92faec9427..cf637c6cbbe8d1 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -8,8 +8,7 @@ # Licensed to PSF under a Contributor Agreement. # -__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token', - 'SharedMemoryManager' ] +__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ] # # Imports @@ -35,9 +34,11 @@ from . import get_context try: from . import shared_memory - HAS_SHMEM = True except ImportError: HAS_SHMEM = False +else: + HAS_SHMEM = True + __all__.append('SharedMemoryManager') # # Register some things for pickling diff --git a/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst new file mode 100644 index 00000000000000..727f62b52a710b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst @@ -0,0 +1 @@ +Fix ``test___all__`` on platforms lacking a shared memory implementation. From webhook-mailer at python.org Mon Aug 9 12:45:45 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 16:45:45 -0000 Subject: [Python-checkins] bpo-41402: Fix email ContentManager calling .encode() on bytes (GH-21631) Message-ID: https://github.com/python/cpython/commit/b33186bc43bb5aaf652dd9d093a08fdde796d499 commit: b33186bc43bb5aaf652dd9d093a08fdde796d499 branch: main author: Johannes Reiff committer: ambv date: 2021-08-09T18:45:41+02:00 summary: bpo-41402: Fix email ContentManager calling .encode() on bytes (GH-21631) files: A Misc/NEWS.d/next/Library/2020-07-26-18-17-30.bpo-41402.YRkVkp.rst M Lib/email/contentmanager.py M Lib/test/test_email/test_contentmanager.py diff --git a/Lib/email/contentmanager.py b/Lib/email/contentmanager.py index b91fb0e5bca7a8..3cf62dc8621cd9 100644 --- a/Lib/email/contentmanager.py +++ b/Lib/email/contentmanager.py @@ -238,9 +238,7 @@ def set_bytes_content(msg, data, maintype, subtype, cte='base64', data = binascii.b2a_qp(data, istext=False, header=False, quotetabs=True) data = data.decode('ascii') elif cte == '7bit': - # Make sure it really is only ASCII. The early warning here seems - # worth the overhead...if you care write your own content manager :). - data.encode('ascii') + data = data.decode('ascii') elif cte in ('8bit', 'binary'): data = data.decode('ascii', 'surrogateescape') msg.set_payload(data) diff --git a/Lib/test/test_email/test_contentmanager.py b/Lib/test/test_email/test_contentmanager.py index f4f6bb715acdce..694cef4ba7e413 100644 --- a/Lib/test/test_email/test_contentmanager.py +++ b/Lib/test/test_email/test_contentmanager.py @@ -776,6 +776,18 @@ def test_set_non_ascii_filename(self): foo """).encode('ascii')) + def test_set_content_bytes_cte_7bit(self): + m = self._make_message() + m.set_content(b'ASCII-only message.\n', + maintype='application', subtype='octet-stream', cte='7bit') + self.assertEqual(str(m), textwrap.dedent("""\ + Content-Type: application/octet-stream + Content-Transfer-Encoding: 7bit + MIME-Version: 1.0 + + ASCII-only message. + """)) + content_object_params = { 'text_plain': ('content', ()), 'text_html': ('content', ('html',)), diff --git a/Misc/NEWS.d/next/Library/2020-07-26-18-17-30.bpo-41402.YRkVkp.rst b/Misc/NEWS.d/next/Library/2020-07-26-18-17-30.bpo-41402.YRkVkp.rst new file mode 100644 index 00000000000000..45585a469e7247 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-07-26-18-17-30.bpo-41402.YRkVkp.rst @@ -0,0 +1 @@ +Fix :meth:`email.message.EmailMessage.set_content` when called with binary data and ``7bit`` content transfer encoding. From webhook-mailer at python.org Mon Aug 9 13:11:47 2021 From: webhook-mailer at python.org (iritkatriel) Date: Mon, 09 Aug 2021 17:11:47 -0000 Subject: [Python-checkins] bpo-44872: use new trashcan macros in framobject.c (#27683) Message-ID: https://github.com/python/cpython/commit/7d14fdb03c3e8384c01da1b21647ce837ed6a29c commit: 7d14fdb03c3e8384c01da1b21647ce837ed6a29c branch: main author: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> committer: iritkatriel <1055913+iritkatriel at users.noreply.github.com> date: 2021-08-09T18:11:38+01:00 summary: bpo-44872: use new trashcan macros in framobject.c (#27683) files: A Misc/NEWS.d/next/Core and Builtins/2021-08-09-16-16-03.bpo-44872.OKRlhK.rst M Objects/frameobject.c diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-09-16-16-03.bpo-44872.OKRlhK.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-09-16-16-03.bpo-44872.OKRlhK.rst new file mode 100644 index 00000000000000..9a0d00018b2a7c --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-09-16-16-03.bpo-44872.OKRlhK.rst @@ -0,0 +1 @@ +Use new trashcan macros (Py_TRASHCAN_BEGIN/END) in frameobject.c instead of the old ones (Py_TRASHCAN_SAFE_BEGIN/END). \ No newline at end of file diff --git a/Objects/frameobject.c b/Objects/frameobject.c index d1b8048fceadf7..2af69597c396ee 100644 --- a/Objects/frameobject.c +++ b/Objects/frameobject.c @@ -619,7 +619,7 @@ frame_dealloc(PyFrameObject *f) _PyObject_GC_UNTRACK(f); } - Py_TRASHCAN_SAFE_BEGIN(f) + Py_TRASHCAN_BEGIN(f, frame_dealloc); PyCodeObject *co = NULL; /* Kill all local variables including specials, if we own them */ @@ -659,7 +659,7 @@ frame_dealloc(PyFrameObject *f) } Py_XDECREF(co); - Py_TRASHCAN_SAFE_END(f) + Py_TRASHCAN_END; } static int From webhook-mailer at python.org Mon Aug 9 13:31:18 2021 From: webhook-mailer at python.org (ambv) Date: Mon, 09 Aug 2021 17:31:18 -0000 Subject: [Python-checkins] bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) (GH-27684) Message-ID: https://github.com/python/cpython/commit/40b353bc079b990cf0d6259a5720fb9729c1b81e commit: 40b353bc079b990cf0d6259a5720fb9729c1b81e branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-08-09T19:31:10+02:00 summary: bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) (GH-27684) This was causing test___all__ to fail on platforms lacking a shared memory implementation. Co-Authored-By: Xavier de Gaye Co-authored-by: ?ukasz Langa (cherry picked from commit d0978761118856e8ca8ea7b162a6585b8da83df9) Co-authored-by: Zackery Spytz files: A Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst M Lib/multiprocessing/managers.py diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index f8d3cef110fa58..dfa566c6fc386f 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -8,8 +8,7 @@ # Licensed to PSF under a Contributor Agreement. # -__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token', - 'SharedMemoryManager' ] +__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ] # # Imports @@ -35,9 +34,11 @@ from . import get_context try: from . import shared_memory - HAS_SHMEM = True except ImportError: HAS_SHMEM = False +else: + HAS_SHMEM = True + __all__.append('SharedMemoryManager') # # Register some things for pickling diff --git a/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst new file mode 100644 index 00000000000000..727f62b52a710b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst @@ -0,0 +1 @@ +Fix ``test___all__`` on platforms lacking a shared memory implementation. From webhook-mailer at python.org Mon Aug 9 13:39:14 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 09 Aug 2021 17:39:14 -0000 Subject: [Python-checkins] bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) Message-ID: https://github.com/python/cpython/commit/8ece98a7e418c3c68a4c61bc47a2d0931b59a889 commit: 8ece98a7e418c3c68a4c61bc47a2d0931b59a889 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: miss-islington <31488909+miss-islington at users.noreply.github.com> date: 2021-08-09T10:39:05-07:00 summary: bpo-38840: Incorrect __all__ in multiprocessing.managers (GH-18034) This was causing test___all__ to fail on platforms lacking a shared memory implementation. Co-Authored-By: Xavier de Gaye Co-authored-by: ?ukasz Langa (cherry picked from commit d0978761118856e8ca8ea7b162a6585b8da83df9) Co-authored-by: Zackery Spytz files: A Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst M Lib/multiprocessing/managers.py diff --git a/Lib/multiprocessing/managers.py b/Lib/multiprocessing/managers.py index b981b0e1cb8ed8..b6b4cdd9ac15eb 100644 --- a/Lib/multiprocessing/managers.py +++ b/Lib/multiprocessing/managers.py @@ -8,8 +8,7 @@ # Licensed to PSF under a Contributor Agreement. # -__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token', - 'SharedMemoryManager' ] +__all__ = [ 'BaseManager', 'SyncManager', 'BaseProxy', 'Token' ] # # Imports @@ -35,9 +34,11 @@ from . import get_context try: from . import shared_memory - HAS_SHMEM = True except ImportError: HAS_SHMEM = False +else: + HAS_SHMEM = True + __all__.append('SharedMemoryManager') # # Register some things for pickling diff --git a/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst new file mode 100644 index 00000000000000..727f62b52a710b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2020-01-16-23-41-16.bpo-38840.VzzYZz.rst @@ -0,0 +1 @@ +Fix ``test___all__`` on platforms lacking a shared memory implementation. From webhook-mailer at python.org Mon Aug 9 14:33:03 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Mon, 09 Aug 2021 18:33:03 -0000 Subject: [Python-checkins] bpo-44854: Remove trailing whitespaces (GH-27689) Message-ID: https://github.com/python/cpython/commit/058fb35b57ca8c5063d16ec818e668b3babfea65 commit: 058fb35b57ca8c5063d16ec818e668b3babfea65 branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-08-09T21:32:54+03:00 summary: bpo-44854: Remove trailing whitespaces (GH-27689) files: M .github/SECURITY.md M .github/problem-matchers/sphinx.json M Doc/tools/templates/search.html M Modules/_bisectmodule.c M Modules/_ctypes/_ctypes_test.c M Modules/_json.c M Modules/termios.c M Objects/exceptions.c M Objects/genericaliasobject.c M Parser/tokenizer.h M Python/adaptive.md M Tools/c-analyzer/c_parser/_state_machine.py M Tools/c-analyzer/c_parser/preprocessor/__init__.py diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 82ae4ca8c30977..2aebc5a0bf717f 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -14,4 +14,4 @@ official website](https://www.python.org/dev/security/) for instructions on how to report a security-related problem to the Python team responsibly. -To reach the response team, email `security at python dot org`. +To reach the response team, email `security at python dot org`. diff --git a/.github/problem-matchers/sphinx.json b/.github/problem-matchers/sphinx.json index 228415f5b7b03f..09848608a7b034 100644 --- a/.github/problem-matchers/sphinx.json +++ b/.github/problem-matchers/sphinx.json @@ -34,7 +34,7 @@ "line": 2, "message": 3 } - ] + ] } ] } \ No newline at end of file diff --git a/Doc/tools/templates/search.html b/Doc/tools/templates/search.html index cf20c2e1d4ff83..f2ac2ea0f09873 100644 --- a/Doc/tools/templates/search.html +++ b/Doc/tools/templates/search.html @@ -6,7 +6,7 @@ jQuery(function() { $.getJSON("_static/glossary.json", function(glossary) { - var RESULT_TEMPLATE = '