From webhook-mailer at python.org Wed Sep 1 02:45:14 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Wed, 01 Sep 2021 06:45:14 -0000 Subject: [Python-checkins] [3.9] bpo-45057: Simplify RegressionTestResult (GH-28081) (GH-28103) Message-ID: https://github.com/python/cpython/commit/e527f79fa8b472dd534fc360e998fe8213e6471e commit: e527f79fa8b472dd534fc360e998fe8213e6471e branch: 3.9 author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-01T09:45:09+03:00 summary: [3.9] bpo-45057: Simplify RegressionTestResult (GH-28081) (GH-28103) Remove code which duplicates the functionality of TextTestResult. (cherry picked from commit 2b76a5322fdf71d62b531fd765085f96f981c244) files: M Lib/test/support/testresult.py diff --git a/Lib/test/support/testresult.py b/Lib/test/support/testresult.py index 67e126dcf7527..adae566e8d807 100644 --- a/Lib/test/support/testresult.py +++ b/Lib/test/support/testresult.py @@ -14,19 +14,16 @@ from datetime import datetime class RegressionTestResult(unittest.TextTestResult): - separator1 = '=' * 70 + '\n' - separator2 = '-' * 70 + '\n' def __init__(self, stream, descriptions, verbosity): - super().__init__(stream=stream, descriptions=descriptions, verbosity=0) + super().__init__(stream=stream, descriptions=descriptions, + verbosity=2 if verbosity else 0) self.buffer = True self.__suite = ET.Element('testsuite') self.__suite.set('start', datetime.utcnow().isoformat(' ')) self.__e = None self.__start_time = None - self.__results = [] - self.__verbose = bool(verbosity) @classmethod def __getId(cls, test): @@ -44,9 +41,6 @@ def startTest(self, test): super().startTest(test) self.__e = e = ET.SubElement(self.__suite, 'testcase') self.__start_time = time.perf_counter() - if self.__verbose: - self.stream.write(f'{self.getDescription(test)} ... ') - self.stream.flush() def _add_result(self, test, capture=False, **args): e = self.__e @@ -80,10 +74,6 @@ def _add_result(self, test, capture=False, **args): else: e2.text = str(v) - def __write(self, c, word): - if self.__verbose: - self.stream.write(f'{word}\n') - @classmethod def __makeErrorDict(cls, err_type, err_value, err_tb): if isinstance(err_type, type): @@ -106,45 +96,26 @@ def __makeErrorDict(cls, err_type, err_value, err_tb): def addError(self, test, err): self._add_result(test, True, error=self.__makeErrorDict(*err)) super().addError(test, err) - self.__write('E', 'ERROR') def addExpectedFailure(self, test, err): self._add_result(test, True, output=self.__makeErrorDict(*err)) super().addExpectedFailure(test, err) - self.__write('x', 'expected failure') def addFailure(self, test, err): self._add_result(test, True, failure=self.__makeErrorDict(*err)) super().addFailure(test, err) - self.__write('F', 'FAIL') def addSkip(self, test, reason): self._add_result(test, skipped=reason) super().addSkip(test, reason) - self.__write('S', f'skipped {reason!r}') def addSuccess(self, test): self._add_result(test) super().addSuccess(test) - self.__write('.', 'ok') def addUnexpectedSuccess(self, test): self._add_result(test, outcome='UNEXPECTED_SUCCESS') super().addUnexpectedSuccess(test) - self.__write('u', 'unexpected success') - - def printErrors(self): - if self.__verbose: - self.stream.write('\n') - self.printErrorList('ERROR', self.errors) - self.printErrorList('FAIL', self.failures) - - def printErrorList(self, flavor, errors): - for test, err in errors: - self.stream.write(self.separator1) - self.stream.write(f'{flavor}: {self.getDescription(test)}\n') - self.stream.write(self.separator2) - self.stream.write('%s\n' % err) def get_xml_element(self): e = self.__suite From webhook-mailer at python.org Wed Sep 1 02:45:51 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Wed, 01 Sep 2021 06:45:51 -0000 Subject: [Python-checkins] bpo-45057: Simplify RegressionTestResult (GH-28081) (GH-28101) Message-ID: https://github.com/python/cpython/commit/3d56272e4ecaef9f38c1f48430364701d34b3ee4 commit: 3d56272e4ecaef9f38c1f48430364701d34b3ee4 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: serhiy-storchaka date: 2021-09-01T09:45:46+03:00 summary: bpo-45057: Simplify RegressionTestResult (GH-28081) (GH-28101) Remove code which duplicates the functionality of TextTestResult. (cherry picked from commit 2b76a5322fdf71d62b531fd765085f96f981c244) Co-authored-by: Serhiy Storchaka files: M Lib/test/support/testresult.py diff --git a/Lib/test/support/testresult.py b/Lib/test/support/testresult.py index 670afbea2659d..6f2edda0f580a 100644 --- a/Lib/test/support/testresult.py +++ b/Lib/test/support/testresult.py @@ -10,12 +10,11 @@ import unittest class RegressionTestResult(unittest.TextTestResult): - separator1 = '=' * 70 + '\n' - separator2 = '-' * 70 + '\n' USE_XML = False def __init__(self, stream, descriptions, verbosity): - super().__init__(stream=stream, descriptions=descriptions, verbosity=0) + super().__init__(stream=stream, descriptions=descriptions, + verbosity=2 if verbosity else 0) self.buffer = True if self.USE_XML: from xml.etree import ElementTree as ET @@ -25,8 +24,6 @@ def __init__(self, stream, descriptions, verbosity): self.__suite.set('start', datetime.utcnow().isoformat(' ')) self.__e = None self.__start_time = None - self.__results = [] - self.__verbose = bool(verbosity) @classmethod def __getId(cls, test): @@ -45,9 +42,6 @@ def startTest(self, test): if self.USE_XML: self.__e = e = self.__ET.SubElement(self.__suite, 'testcase') self.__start_time = time.perf_counter() - if self.__verbose: - self.stream.write(f'{self.getDescription(test)} ... ') - self.stream.flush() def _add_result(self, test, capture=False, **args): if not self.USE_XML: @@ -85,10 +79,6 @@ def _add_result(self, test, capture=False, **args): else: e2.text = str(v) - def __write(self, c, word): - if self.__verbose: - self.stream.write(f'{word}\n') - @classmethod def __makeErrorDict(cls, err_type, err_value, err_tb): if isinstance(err_type, type): @@ -111,45 +101,26 @@ def __makeErrorDict(cls, err_type, err_value, err_tb): def addError(self, test, err): self._add_result(test, True, error=self.__makeErrorDict(*err)) super().addError(test, err) - self.__write('E', 'ERROR') def addExpectedFailure(self, test, err): self._add_result(test, True, output=self.__makeErrorDict(*err)) super().addExpectedFailure(test, err) - self.__write('x', 'expected failure') def addFailure(self, test, err): self._add_result(test, True, failure=self.__makeErrorDict(*err)) super().addFailure(test, err) - self.__write('F', 'FAIL') def addSkip(self, test, reason): self._add_result(test, skipped=reason) super().addSkip(test, reason) - self.__write('S', f'skipped {reason!r}') def addSuccess(self, test): self._add_result(test) super().addSuccess(test) - self.__write('.', 'ok') def addUnexpectedSuccess(self, test): self._add_result(test, outcome='UNEXPECTED_SUCCESS') super().addUnexpectedSuccess(test) - self.__write('u', 'unexpected success') - - def printErrors(self): - if self.__verbose: - self.stream.write('\n') - self.printErrorList('ERROR', self.errors) - self.printErrorList('FAIL', self.failures) - - def printErrorList(self, flavor, errors): - for test, err in errors: - self.stream.write(self.separator1) - self.stream.write(f'{flavor}: {self.getDescription(test)}\n') - self.stream.write(self.separator2) - self.stream.write('%s\n' % err) def get_xml_element(self): if not self.USE_XML: From webhook-mailer at python.org Wed Sep 1 02:51:09 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Wed, 01 Sep 2021 06:51:09 -0000 Subject: [Python-checkins] [3.9] bpo-45060: Get rid of few uses of the equality operators with None (GH-28087). (GH-28093) Message-ID: https://github.com/python/cpython/commit/e09dd8aafd6f9aef03945c417267806d47084a5d commit: e09dd8aafd6f9aef03945c417267806d47084a5d branch: 3.9 author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-01T09:51:01+03:00 summary: [3.9] bpo-45060: Get rid of few uses of the equality operators with None (GH-28087). (GH-28093) (cherry picked from commit 3c65457156d87e55010507d616b4eecb7a02883d) Co-authored-by: Serhiy Storchaka files: M Doc/library/dbm.rst M Lib/ctypes/_aix.py M Lib/email/contentmanager.py M Lib/test/datetimetester.py M Modules/_gdbmmodule.c M Modules/clinic/_gdbmmodule.c.h M Tools/clinic/clinic.py diff --git a/Doc/library/dbm.rst b/Doc/library/dbm.rst index 57ae547b833cc..ff01ae90f6425 100644 --- a/Doc/library/dbm.rst +++ b/Doc/library/dbm.rst @@ -216,7 +216,7 @@ supported. contains them all:: k = db.firstkey() - while k != None: + while k is not None: print(k) k = db.nextkey(k) diff --git a/Lib/ctypes/_aix.py b/Lib/ctypes/_aix.py index 190cac6507ede..26959d90a4dd6 100644 --- a/Lib/ctypes/_aix.py +++ b/Lib/ctypes/_aix.py @@ -282,7 +282,7 @@ def find_shared(paths, name): if path.exists(archive): members = get_shared(get_ld_headers(archive)) member = get_member(re.escape(name), members) - if member != None: + if member is not None: return (base, member) else: return (None, None) @@ -307,7 +307,7 @@ def find_library(name): libpaths = get_libpaths() (base, member) = find_shared(libpaths, name) - if base != None: + if base is not None: return f"{base}({member})" # To get here, a member in an archive has not been found diff --git a/Lib/email/contentmanager.py b/Lib/email/contentmanager.py index 3cf62dc8621cd..fcf278dbccbac 100644 --- a/Lib/email/contentmanager.py +++ b/Lib/email/contentmanager.py @@ -144,7 +144,7 @@ def _encode_text(string, charset, cte, policy): linesep = policy.linesep.encode('ascii') def embedded_body(lines): return linesep.join(lines) + linesep def normal_body(lines): return b'\n'.join(lines) + b'\n' - if cte==None: + if cte is None: # Use heuristics to decide on the "best" encoding. if max((len(x) for x in lines), default=0) <= policy.max_line_length: try: diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index a9c3a370e0e83..fcc13bfc59667 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -344,7 +344,7 @@ def test_comparison(self): with self.assertRaises(TypeError): timezone(ZERO) < timezone(ZERO) self.assertIn(timezone(ZERO), {timezone(ZERO)}) self.assertTrue(timezone(ZERO) != None) - self.assertFalse(timezone(ZERO) == None) + self.assertFalse(timezone(ZERO) == None) tz = timezone(ZERO) self.assertTrue(tz == ALWAYS_EQ) diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c index dd4c6b16f745c..16b0f792a1b4b 100644 --- a/Modules/_gdbmmodule.c +++ b/Modules/_gdbmmodule.c @@ -433,7 +433,7 @@ The following code prints every key in the database db, without having to create a list in memory that contains them all: k = db.firstkey() - while k != None: + while k is not None: print(k) k = db.nextkey(k) [clinic start generated code]*/ @@ -441,7 +441,7 @@ to create a list in memory that contains them all: static PyObject * _gdbm_gdbm_nextkey_impl(dbmobject *self, const char *key, Py_ssize_clean_t key_length) -/*[clinic end generated code: output=192ab892de6eb2f6 input=1f1606943614e36f]*/ +/*[clinic end generated code: output=192ab892de6eb2f6 input=b7b0949c520d730c]*/ { PyObject *v; datum dbm_key, nextkey; diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h index aa37a24d3b211..552bf6ed88e93 100644 --- a/Modules/clinic/_gdbmmodule.c.h +++ b/Modules/clinic/_gdbmmodule.c.h @@ -139,7 +139,7 @@ PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__, "to create a list in memory that contains them all:\n" "\n" " k = db.firstkey()\n" -" while k != None:\n" +" while k is not None:\n" " print(k)\n" " k = db.nextkey(k)"); @@ -298,4 +298,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=2766471b2fa1a816 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=f48d6e8d4c8a3465 input=a9049054013a1b77]*/ diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 34b58079281b6..61d30b01c0998 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -1632,7 +1632,7 @@ def print_block(self, block): dsl_name = block.dsl_name write = self.f.write - assert not ((dsl_name == None) ^ (output == None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name) + assert not ((dsl_name is None) ^ (output is None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name) if not dsl_name: write(input) @@ -2957,7 +2957,7 @@ def converter_init(self, *, accept={int}, type=None): self.format_unit = 'C' elif accept != {int}: fail("int_converter: illegal 'accept' argument " + repr(accept)) - if type != None: + if type is not None: self.type = type def parse_arg(self, argname, displayname): From webhook-mailer at python.org Wed Sep 1 11:45:36 2021 From: webhook-mailer at python.org (vstinner) Date: Wed, 01 Sep 2021 15:45:36 -0000 Subject: [Python-checkins] bpo-44895: libregrtest: refleak check clears types later (GH-28113) Message-ID: https://github.com/python/cpython/commit/679cb4781ea370c3b3ce40d3334dc404d7e9d92b commit: 679cb4781ea370c3b3ce40d3334dc404d7e9d92b branch: main author: Victor Stinner committer: vstinner date: 2021-09-01T17:45:27+02:00 summary: bpo-44895: libregrtest: refleak check clears types later (GH-28113) libregrtest now clears the type cache later to reduce the risk of false alarm when checking for reference leaks. Previously, the type cache was cleared too early and libregrtest raised a false alarm about reference leaks under very specific conditions. Move also support.gc_collect() outside clear/cleanup functions to make the garbage collection more explicit. Co-authored-by: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> files: A Misc/NEWS.d/next/Tests/2021-09-01-17-17-44.bpo-44895.kV7H77.rst M Lib/test/libregrtest/refleak.py M Lib/test/libregrtest/runtest.py M Lib/test/libregrtest/utils.py diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py index b94826a5daf92c..096b5381cd9339 100644 --- a/Lib/test/libregrtest/refleak.py +++ b/Lib/test/libregrtest/refleak.py @@ -85,13 +85,15 @@ def get_pooled_int(value): flush=True) dash_R_cleanup(fs, ps, pic, zdc, abcs) + support.gc_collect() for i in rep_range: test_func() + dash_R_cleanup(fs, ps, pic, zdc, abcs) + support.gc_collect() - # dash_R_cleanup() ends with collecting cyclic trash: - # read memory statistics immediately after. + # Read memory statistics immediately after the garbage collection alloc_after = getallocatedblocks() - _getquickenedcount() rc_after = gettotalrefcount() fd_after = fd_count() @@ -166,9 +168,6 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs): zipimport._zip_directory_cache.clear() zipimport._zip_directory_cache.update(zdc) - # clear type cache - sys._clear_type_cache() - # Clear ABC registries, restoring previously saved ABC registries. abs_classes = [getattr(collections.abc, a) for a in collections.abc.__all__] abs_classes = filter(isabstract, abs_classes) @@ -179,8 +178,12 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs): obj.register(ref()) obj._abc_caches_clear() + # Clear caches clear_caches() + # Clear type cache at the end: previous function calls can modify types + sys._clear_type_cache() + def warm_caches(): # char cache diff --git a/Lib/test/libregrtest/runtest.py b/Lib/test/libregrtest/runtest.py index 489ab986cb4e5e..fe4693bad9ca6d 100644 --- a/Lib/test/libregrtest/runtest.py +++ b/Lib/test/libregrtest/runtest.py @@ -297,9 +297,13 @@ def _runtest_inner2(ns: Namespace, test_name: str) -> bool: test_runner() refleak = False finally: - cleanup_test_droppings(test_name, ns.verbose) + # First kill any dangling references to open files etc. + # This can also issue some ResourceWarnings which would otherwise get + # triggered during the following test run, and possibly produce + # failures. + support.gc_collect() - support.gc_collect() + cleanup_test_droppings(test_name, ns.verbose) if gc.garbage: support.environment_altered = True @@ -330,6 +334,7 @@ def _runtest_inner( try: clear_caches() + support.gc_collect() with save_env(ns, test_name): refleak = _runtest_inner2(ns, test_name) @@ -373,11 +378,6 @@ def _runtest_inner( def cleanup_test_droppings(test_name: str, verbose: int) -> None: - # First kill any dangling references to open files etc. - # This can also issue some ResourceWarnings which would otherwise get - # triggered during the following test run, and possibly produce failures. - support.gc_collect() - # Try to clean up junk commonly left behind. While tests shouldn't leave # any files or directories behind, when a test fails that can be tedious # for it to arrange. The consequences can be especially nasty on Windows, diff --git a/Lib/test/libregrtest/utils.py b/Lib/test/libregrtest/utils.py index 89d7e7e5354054..ad18b50f5db99d 100644 --- a/Lib/test/libregrtest/utils.py +++ b/Lib/test/libregrtest/utils.py @@ -217,5 +217,3 @@ def clear_caches(): else: for f in typing._cleanups: f() - - support.gc_collect() diff --git a/Misc/NEWS.d/next/Tests/2021-09-01-17-17-44.bpo-44895.kV7H77.rst b/Misc/NEWS.d/next/Tests/2021-09-01-17-17-44.bpo-44895.kV7H77.rst new file mode 100644 index 00000000000000..038466f8d6a4f3 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-09-01-17-17-44.bpo-44895.kV7H77.rst @@ -0,0 +1,5 @@ +libregrtest now clears the type cache later to reduce the risk of false alarm +when checking for reference leaks. Previously, the type cache was cleared too +early and libregrtest raised a false alarm about reference leaks under very +specific conditions. +Patch by Irit Katriel and Victor Stinner. From webhook-mailer at python.org Thu Sep 2 05:46:52 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 09:46:52 -0000 Subject: [Python-checkins] bpo-40360: Deprecate the lib2to3 package (GH-28116) Message-ID: https://github.com/python/cpython/commit/d589a7e7eb56196c05337d37417479375878b127 commit: d589a7e7eb56196c05337d37417479375878b127 branch: main author: Victor Stinner committer: ambv date: 2021-09-02T11:46:47+02:00 summary: bpo-40360: Deprecate the lib2to3 package (GH-28116) files: A Misc/NEWS.d/next/Library/2021-09-02-00-18-32.bpo-40360.9nmMtB.rst M Doc/whatsnew/3.11.rst M Lib/lib2to3/__init__.py M Lib/test/test_lib2to3.py diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 1b736c71c24fbe..8f0f6f83c012a7 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -276,6 +276,9 @@ Build Changes Deprecated ========== +* The :mod:`lib2to3` package is now deprecated and may not be able to parse + Python 3.10 or newer. See the :pep:`617` (New PEG parser for CPython). + (Contributed by Victor Stinner in :issue:`40360`.) Removed diff --git a/Lib/lib2to3/__init__.py b/Lib/lib2to3/__init__.py index 4224dffef42957..177405c8090d3e 100644 --- a/Lib/lib2to3/__init__.py +++ b/Lib/lib2to3/__init__.py @@ -3,6 +3,6 @@ warnings.warn( "lib2to3 package is deprecated and may not be able to parse Python 3.10+", - PendingDeprecationWarning, + DeprecationWarning, stacklevel=2, ) diff --git a/Lib/test/test_lib2to3.py b/Lib/test/test_lib2to3.py index fd12a7e7acbb46..6ea8aa4a56e52e 100644 --- a/Lib/test/test_lib2to3.py +++ b/Lib/test/test_lib2to3.py @@ -2,7 +2,7 @@ from test.support.import_helper import import_fresh_module from test.support.warnings_helper import check_warnings -with check_warnings(("", PendingDeprecationWarning)): +with check_warnings(("", DeprecationWarning)): load_tests = import_fresh_module('lib2to3.tests', fresh=['lib2to3']).load_tests if __name__ == '__main__': diff --git a/Misc/NEWS.d/next/Library/2021-09-02-00-18-32.bpo-40360.9nmMtB.rst b/Misc/NEWS.d/next/Library/2021-09-02-00-18-32.bpo-40360.9nmMtB.rst new file mode 100644 index 00000000000000..4e9422dc06d7f4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-02-00-18-32.bpo-40360.9nmMtB.rst @@ -0,0 +1,3 @@ +The :mod:`lib2to3` package is now deprecated and may not be able to parse +Python 3.10 or newer. See the :pep:`617` (New PEG parser for CPython). Patch +by Victor Stinner. From webhook-mailer at python.org Thu Sep 2 06:10:21 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 10:10:21 -0000 Subject: [Python-checkins] bpo-45085: Remove the binhex module (GH-28117) Message-ID: https://github.com/python/cpython/commit/a8066087054417885db0a2dbdce2ddb2ac498247 commit: a8066087054417885db0a2dbdce2ddb2ac498247 branch: main author: Victor Stinner committer: ambv date: 2021-09-02T12:10:08+02:00 summary: bpo-45085: Remove the binhex module (GH-28117) The binhex module, deprecated in Python 3.9, is now removed. The following binascii functions, deprecated in Python 3.9, are now also removed: * a2b_hqx(), b2a_hqx(); * rlecode_hqx(), rledecode_hqx(). The binascii.crc_hqx() function remains available. files: A Misc/NEWS.d/next/Library/2021-09-02-00-47-14.bpo-45085.mMnaDv.rst D Doc/library/binhex.rst D Lib/binhex.py D Lib/test/test_binhex.py M Doc/library/binascii.rst M Doc/library/netdata.rst M Doc/whatsnew/3.11.rst M Lib/test/test_binascii.py M Modules/binascii.c M Modules/clinic/binascii.c.h M PCbuild/lib.pyproj M Python/stdlib_module_names.h diff --git a/Doc/library/binascii.rst b/Doc/library/binascii.rst index fd5df69e852dc..62d7efe34ab36 100644 --- a/Doc/library/binascii.rst +++ b/Doc/library/binascii.rst @@ -8,14 +8,13 @@ .. index:: module: uu module: base64 - module: binhex -------------- The :mod:`binascii` module contains a number of methods to convert between binary and various ASCII-encoded binary representations. Normally, you will not -use these functions directly but use wrapper modules like :mod:`uu`, -:mod:`base64`, or :mod:`binhex` instead. The :mod:`binascii` module contains +use these functions directly but use wrapper modules like :mod:`uu` or +:mod:`base64` instead. The :mod:`binascii` module contains low-level functions written in C for greater speed that are used by the higher-level modules. @@ -98,45 +97,6 @@ The :mod:`binascii` module defines the following functions: stream. -.. function:: a2b_hqx(string) - - Convert binhex4 formatted ASCII data to binary, without doing RLE-decompression. - The string should contain a complete number of binary bytes, or (in case of the - last portion of the binhex4 data) have the remaining bits zero. - - .. deprecated:: 3.9 - - -.. function:: rledecode_hqx(data) - - Perform RLE-decompression on the data, as per the binhex4 standard. The - algorithm uses ``0x90`` after a byte as a repeat indicator, followed by a count. - A count of ``0`` specifies a byte value of ``0x90``. The routine returns the - decompressed data, unless data input data ends in an orphaned repeat indicator, - in which case the :exc:`Incomplete` exception is raised. - - .. versionchanged:: 3.2 - Accept only bytestring or bytearray objects as input. - - .. deprecated:: 3.9 - - -.. function:: rlecode_hqx(data) - - Perform binhex4 style RLE-compression on *data* and return the result. - - .. deprecated:: 3.9 - - -.. function:: b2a_hqx(data) - - Perform hexbin4 binary-to-ASCII translation and return the resulting string. The - argument should already be RLE-coded, and have a length divisible by 3 (except - possibly the last fragment). - - .. deprecated:: 3.9 - - .. function:: crc_hqx(data, value) Compute a 16-bit CRC value of *data*, starting with *value* as the @@ -222,9 +182,6 @@ The :mod:`binascii` module defines the following functions: Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85. - Module :mod:`binhex` - Support for the binhex format used on the Macintosh. - Module :mod:`uu` Support for UU encoding used on Unix. diff --git a/Doc/library/binhex.rst b/Doc/library/binhex.rst deleted file mode 100644 index 7de6a663762f0..0000000000000 --- a/Doc/library/binhex.rst +++ /dev/null @@ -1,59 +0,0 @@ -:mod:`binhex` --- Encode and decode binhex4 files -================================================= - -.. module:: binhex - :synopsis: Encode and decode files in binhex4 format. - -**Source code:** :source:`Lib/binhex.py` - -.. deprecated:: 3.9 - --------------- - -This module encodes and decodes files in binhex4 format, a format allowing -representation of Macintosh files in ASCII. Only the data fork is handled. - -The :mod:`binhex` module defines the following functions: - - -.. function:: binhex(input, output) - - Convert a binary file with filename *input* to binhex file *output*. The - *output* parameter can either be a filename or a file-like object (any object - supporting a :meth:`write` and :meth:`close` method). - - -.. function:: hexbin(input, output) - - Decode a binhex file *input*. *input* may be a filename or a file-like object - supporting :meth:`read` and :meth:`close` methods. The resulting file is written - to a file named *output*, unless the argument is ``None`` in which case the - output filename is read from the binhex file. - -The following exception is also defined: - - -.. exception:: Error - - Exception raised when something can't be encoded using the binhex format (for - example, a filename is too long to fit in the filename field), or when input is - not properly encoded binhex data. - - -.. seealso:: - - Module :mod:`binascii` - Support module containing ASCII-to-binary and binary-to-ASCII conversions. - - -.. _binhex-notes: - -Notes ------ - -There is an alternative, more powerful interface to the coder and decoder, see -the source for details. - -If you code or decode textfiles on non-Macintosh platforms they will still use -the old Macintosh newline convention (carriage-return as end of line). - diff --git a/Doc/library/netdata.rst b/Doc/library/netdata.rst index e76280f2fe3f4..16f43a69d68b2 100644 --- a/Doc/library/netdata.rst +++ b/Doc/library/netdata.rst @@ -17,7 +17,6 @@ on the internet. mailbox.rst mimetypes.rst base64.rst - binhex.rst binascii.rst quopri.rst uu.rst diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 8f0f6f83c012a..7d42c840c4a19 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -235,9 +235,21 @@ sqlite3 Removed ======= + * :class:`smtpd.MailmanProxy` is now removed as it is unusable without an external module, ``mailman``. (Contributed by Dong-hee Na in :issue:`35800`.) +* The ``binhex`` module, deprecated in Python 3.9, is now removed. + The following :mod:`binascii` functions, deprecated in Python 3.9, are now + also removed: + + * ``a2b_hqx()``, ``b2a_hqx()``; + * ``rlecode_hqx()``, ``rledecode_hqx()``. + + The :func:`binascii.crc_hqx` function remains available. + + (Contributed by Victor Stinner in :issue:`45085`.) + Optimizations ============= diff --git a/Lib/binhex.py b/Lib/binhex.py deleted file mode 100644 index ace5217d27139..0000000000000 --- a/Lib/binhex.py +++ /dev/null @@ -1,502 +0,0 @@ -"""Macintosh binhex compression/decompression. - -easy interface: -binhex(inputfilename, outputfilename) -hexbin(inputfilename, outputfilename) -""" - -# -# Jack Jansen, CWI, August 1995. -# -# The module is supposed to be as compatible as possible. Especially the -# easy interface should work "as expected" on any platform. -# XXXX Note: currently, textfiles appear in mac-form on all platforms. -# We seem to lack a simple character-translate in python. -# (we should probably use ISO-Latin-1 on all but the mac platform). -# XXXX The simple routines are too simple: they expect to hold the complete -# files in-core. Should be fixed. -# XXXX It would be nice to handle AppleDouble format on unix -# (for servers serving macs). -# XXXX I don't understand what happens when you get 0x90 times the same byte on -# input. The resulting code (xx 90 90) would appear to be interpreted as an -# escaped *value* of 0x90. All coders I've seen appear to ignore this nicety... -# -import binascii -import contextlib -import io -import os -import struct -import warnings - -warnings.warn('the binhex module is deprecated', DeprecationWarning, - stacklevel=2) - - -__all__ = ["binhex","hexbin","Error"] - -class Error(Exception): - pass - -# States (what have we written) -_DID_HEADER = 0 -_DID_DATA = 1 - -# Various constants -REASONABLY_LARGE = 32768 # Minimal amount we pass the rle-coder -LINELEN = 64 -RUNCHAR = b"\x90" - -# -# This code is no longer byte-order dependent - - -class FInfo: - def __init__(self): - self.Type = '????' - self.Creator = '????' - self.Flags = 0 - -def getfileinfo(name): - finfo = FInfo() - with io.open(name, 'rb') as fp: - # Quick check for textfile - data = fp.read(512) - if 0 not in data: - finfo.Type = 'TEXT' - fp.seek(0, 2) - dsize = fp.tell() - dir, file = os.path.split(name) - file = file.replace(':', '-', 1) - return file, finfo, dsize, 0 - -class openrsrc: - def __init__(self, *args): - pass - - def read(self, *args): - return b'' - - def write(self, *args): - pass - - def close(self): - pass - - -# DeprecationWarning is already emitted on "import binhex". There is no need -# to repeat the warning at each call to deprecated binascii functions. - at contextlib.contextmanager -def _ignore_deprecation_warning(): - with warnings.catch_warnings(): - warnings.filterwarnings('ignore', '', DeprecationWarning) - yield - - -class _Hqxcoderengine: - """Write data to the coder in 3-byte chunks""" - - def __init__(self, ofp): - self.ofp = ofp - self.data = b'' - self.hqxdata = b'' - self.linelen = LINELEN - 1 - - def write(self, data): - self.data = self.data + data - datalen = len(self.data) - todo = (datalen // 3) * 3 - data = self.data[:todo] - self.data = self.data[todo:] - if not data: - return - with _ignore_deprecation_warning(): - self.hqxdata = self.hqxdata + binascii.b2a_hqx(data) - self._flush(0) - - def _flush(self, force): - first = 0 - while first <= len(self.hqxdata) - self.linelen: - last = first + self.linelen - self.ofp.write(self.hqxdata[first:last] + b'\r') - self.linelen = LINELEN - first = last - self.hqxdata = self.hqxdata[first:] - if force: - self.ofp.write(self.hqxdata + b':\r') - - def close(self): - if self.data: - with _ignore_deprecation_warning(): - self.hqxdata = self.hqxdata + binascii.b2a_hqx(self.data) - self._flush(1) - self.ofp.close() - del self.ofp - -class _Rlecoderengine: - """Write data to the RLE-coder in suitably large chunks""" - - def __init__(self, ofp): - self.ofp = ofp - self.data = b'' - - def write(self, data): - self.data = self.data + data - if len(self.data) < REASONABLY_LARGE: - return - with _ignore_deprecation_warning(): - rledata = binascii.rlecode_hqx(self.data) - self.ofp.write(rledata) - self.data = b'' - - def close(self): - if self.data: - with _ignore_deprecation_warning(): - rledata = binascii.rlecode_hqx(self.data) - self.ofp.write(rledata) - self.ofp.close() - del self.ofp - -class BinHex: - def __init__(self, name_finfo_dlen_rlen, ofp): - name, finfo, dlen, rlen = name_finfo_dlen_rlen - close_on_error = False - if isinstance(ofp, str): - ofname = ofp - ofp = io.open(ofname, 'wb') - close_on_error = True - try: - ofp.write(b'(This file must be converted with BinHex 4.0)\r\r:') - hqxer = _Hqxcoderengine(ofp) - self.ofp = _Rlecoderengine(hqxer) - self.crc = 0 - if finfo is None: - finfo = FInfo() - self.dlen = dlen - self.rlen = rlen - self._writeinfo(name, finfo) - self.state = _DID_HEADER - except: - if close_on_error: - ofp.close() - raise - - def _writeinfo(self, name, finfo): - nl = len(name) - if nl > 63: - raise Error('Filename too long') - d = bytes([nl]) + name.encode("latin-1") + b'\0' - tp, cr = finfo.Type, finfo.Creator - if isinstance(tp, str): - tp = tp.encode("latin-1") - if isinstance(cr, str): - cr = cr.encode("latin-1") - d2 = tp + cr - - # Force all structs to be packed with big-endian - d3 = struct.pack('>h', finfo.Flags) - d4 = struct.pack('>ii', self.dlen, self.rlen) - info = d + d2 + d3 + d4 - self._write(info) - self._writecrc() - - def _write(self, data): - self.crc = binascii.crc_hqx(data, self.crc) - self.ofp.write(data) - - def _writecrc(self): - # XXXX Should this be here?? - # self.crc = binascii.crc_hqx('\0\0', self.crc) - if self.crc < 0: - fmt = '>h' - else: - fmt = '>H' - self.ofp.write(struct.pack(fmt, self.crc)) - self.crc = 0 - - def write(self, data): - if self.state != _DID_HEADER: - raise Error('Writing data at the wrong time') - self.dlen = self.dlen - len(data) - self._write(data) - - def close_data(self): - if self.dlen != 0: - raise Error('Incorrect data size, diff=%r' % (self.rlen,)) - self._writecrc() - self.state = _DID_DATA - - def write_rsrc(self, data): - if self.state < _DID_DATA: - self.close_data() - if self.state != _DID_DATA: - raise Error('Writing resource data at the wrong time') - self.rlen = self.rlen - len(data) - self._write(data) - - def close(self): - if self.state is None: - return - try: - if self.state < _DID_DATA: - self.close_data() - if self.state != _DID_DATA: - raise Error('Close at the wrong time') - if self.rlen != 0: - raise Error("Incorrect resource-datasize, diff=%r" % (self.rlen,)) - self._writecrc() - finally: - self.state = None - ofp = self.ofp - del self.ofp - ofp.close() - -def binhex(inp, out): - """binhex(infilename, outfilename): create binhex-encoded copy of a file""" - finfo = getfileinfo(inp) - ofp = BinHex(finfo, out) - - with io.open(inp, 'rb') as ifp: - # XXXX Do textfile translation on non-mac systems - while True: - d = ifp.read(128000) - if not d: break - ofp.write(d) - ofp.close_data() - - ifp = openrsrc(inp, 'rb') - while True: - d = ifp.read(128000) - if not d: break - ofp.write_rsrc(d) - ofp.close() - ifp.close() - -class _Hqxdecoderengine: - """Read data via the decoder in 4-byte chunks""" - - def __init__(self, ifp): - self.ifp = ifp - self.eof = 0 - - def read(self, totalwtd): - """Read at least wtd bytes (or until EOF)""" - decdata = b'' - wtd = totalwtd - # - # The loop here is convoluted, since we don't really now how - # much to decode: there may be newlines in the incoming data. - while wtd > 0: - if self.eof: return decdata - wtd = ((wtd + 2) // 3) * 4 - data = self.ifp.read(wtd) - # - # Next problem: there may not be a complete number of - # bytes in what we pass to a2b. Solve by yet another - # loop. - # - while True: - try: - with _ignore_deprecation_warning(): - decdatacur, self.eof = binascii.a2b_hqx(data) - break - except binascii.Incomplete: - pass - newdata = self.ifp.read(1) - if not newdata: - raise Error('Premature EOF on binhex file') - data = data + newdata - decdata = decdata + decdatacur - wtd = totalwtd - len(decdata) - if not decdata and not self.eof: - raise Error('Premature EOF on binhex file') - return decdata - - def close(self): - self.ifp.close() - -class _Rledecoderengine: - """Read data via the RLE-coder""" - - def __init__(self, ifp): - self.ifp = ifp - self.pre_buffer = b'' - self.post_buffer = b'' - self.eof = 0 - - def read(self, wtd): - if wtd > len(self.post_buffer): - self._fill(wtd - len(self.post_buffer)) - rv = self.post_buffer[:wtd] - self.post_buffer = self.post_buffer[wtd:] - return rv - - def _fill(self, wtd): - self.pre_buffer = self.pre_buffer + self.ifp.read(wtd + 4) - if self.ifp.eof: - with _ignore_deprecation_warning(): - self.post_buffer = self.post_buffer + \ - binascii.rledecode_hqx(self.pre_buffer) - self.pre_buffer = b'' - return - - # - # Obfuscated code ahead. We have to take care that we don't - # end up with an orphaned RUNCHAR later on. So, we keep a couple - # of bytes in the buffer, depending on what the end of - # the buffer looks like: - # '\220\0\220' - Keep 3 bytes: repeated \220 (escaped as \220\0) - # '?\220' - Keep 2 bytes: repeated something-else - # '\220\0' - Escaped \220: Keep 2 bytes. - # '?\220?' - Complete repeat sequence: decode all - # otherwise: keep 1 byte. - # - mark = len(self.pre_buffer) - if self.pre_buffer[-3:] == RUNCHAR + b'\0' + RUNCHAR: - mark = mark - 3 - elif self.pre_buffer[-1:] == RUNCHAR: - mark = mark - 2 - elif self.pre_buffer[-2:] == RUNCHAR + b'\0': - mark = mark - 2 - elif self.pre_buffer[-2:-1] == RUNCHAR: - pass # Decode all - else: - mark = mark - 1 - - with _ignore_deprecation_warning(): - self.post_buffer = self.post_buffer + \ - binascii.rledecode_hqx(self.pre_buffer[:mark]) - self.pre_buffer = self.pre_buffer[mark:] - - def close(self): - self.ifp.close() - -class HexBin: - def __init__(self, ifp): - if isinstance(ifp, str): - ifp = io.open(ifp, 'rb') - # - # Find initial colon. - # - while True: - ch = ifp.read(1) - if not ch: - raise Error("No binhex data found") - # Cater for \r\n terminated lines (which show up as \n\r, hence - # all lines start with \r) - if ch == b'\r': - continue - if ch == b':': - break - - hqxifp = _Hqxdecoderengine(ifp) - self.ifp = _Rledecoderengine(hqxifp) - self.crc = 0 - self._readheader() - - def _read(self, len): - data = self.ifp.read(len) - self.crc = binascii.crc_hqx(data, self.crc) - return data - - def _checkcrc(self): - filecrc = struct.unpack('>h', self.ifp.read(2))[0] & 0xffff - #self.crc = binascii.crc_hqx('\0\0', self.crc) - # XXXX Is this needed?? - self.crc = self.crc & 0xffff - if filecrc != self.crc: - raise Error('CRC error, computed %x, read %x' - % (self.crc, filecrc)) - self.crc = 0 - - def _readheader(self): - len = self._read(1) - fname = self._read(ord(len)) - rest = self._read(1 + 4 + 4 + 2 + 4 + 4) - self._checkcrc() - - type = rest[1:5] - creator = rest[5:9] - flags = struct.unpack('>h', rest[9:11])[0] - self.dlen = struct.unpack('>l', rest[11:15])[0] - self.rlen = struct.unpack('>l', rest[15:19])[0] - - self.FName = fname - self.FInfo = FInfo() - self.FInfo.Creator = creator - self.FInfo.Type = type - self.FInfo.Flags = flags - - self.state = _DID_HEADER - - def read(self, *n): - if self.state != _DID_HEADER: - raise Error('Read data at wrong time') - if n: - n = n[0] - n = min(n, self.dlen) - else: - n = self.dlen - rv = b'' - while len(rv) < n: - rv = rv + self._read(n-len(rv)) - self.dlen = self.dlen - n - return rv - - def close_data(self): - if self.state != _DID_HEADER: - raise Error('close_data at wrong time') - if self.dlen: - dummy = self._read(self.dlen) - self._checkcrc() - self.state = _DID_DATA - - def read_rsrc(self, *n): - if self.state == _DID_HEADER: - self.close_data() - if self.state != _DID_DATA: - raise Error('Read resource data at wrong time') - if n: - n = n[0] - n = min(n, self.rlen) - else: - n = self.rlen - self.rlen = self.rlen - n - return self._read(n) - - def close(self): - if self.state is None: - return - try: - if self.rlen: - dummy = self.read_rsrc(self.rlen) - self._checkcrc() - finally: - self.state = None - self.ifp.close() - -def hexbin(inp, out): - """hexbin(infilename, outfilename) - Decode binhexed file""" - ifp = HexBin(inp) - finfo = ifp.FInfo - if not out: - out = ifp.FName - - with io.open(out, 'wb') as ofp: - # XXXX Do translation on non-mac systems - while True: - d = ifp.read(128000) - if not d: break - ofp.write(d) - ifp.close_data() - - d = ifp.read_rsrc(128000) - if d: - ofp = openrsrc(out, 'wb') - ofp.write(d) - while True: - d = ifp.read_rsrc(128000) - if not d: break - ofp.write(d) - ofp.close() - - ifp.close() diff --git a/Lib/test/test_binascii.py b/Lib/test/test_binascii.py index da8f9d1f213f7..b5aa847b943e6 100644 --- a/Lib/test/test_binascii.py +++ b/Lib/test/test_binascii.py @@ -8,10 +8,10 @@ # Note: "*_hex" functions are aliases for "(un)hexlify" -b2a_functions = ['b2a_base64', 'b2a_hex', 'b2a_hqx', 'b2a_qp', 'b2a_uu', - 'hexlify', 'rlecode_hqx'] -a2b_functions = ['a2b_base64', 'a2b_hex', 'a2b_hqx', 'a2b_qp', 'a2b_uu', - 'unhexlify', 'rledecode_hqx'] +b2a_functions = ['b2a_base64', 'b2a_hex', 'b2a_qp', 'b2a_uu', + 'hexlify'] +a2b_functions = ['a2b_base64', 'a2b_hex', 'a2b_qp', 'a2b_uu', + 'unhexlify'] all_functions = a2b_functions + b2a_functions + ['crc32', 'crc_hqx'] @@ -38,7 +38,6 @@ def test_functions(self): self.assertTrue(hasattr(getattr(binascii, name), '__call__')) self.assertRaises(TypeError, getattr(binascii, name)) - @warnings_helper.ignore_warnings(category=DeprecationWarning) def test_returned_value(self): # Limit to the minimum of all limits (b2a_uu) MAX_ALL = 45 @@ -51,9 +50,6 @@ def test_returned_value(self): res = a2b(self.type2test(a)) except Exception as err: self.fail("{}/{} conversion raises {!r}".format(fb, fa, err)) - if fb == 'b2a_hqx': - # b2a_hqx returns a tuple - res, _ = res self.assertEqual(res, raw, "{}/{} conversion: " "{!r} != {!r}".format(fb, fa, res, raw)) self.assertIsInstance(res, bytes) @@ -226,7 +222,6 @@ def test_uu(self): with self.assertRaises(TypeError): binascii.b2a_uu(b"", True) - @warnings_helper.ignore_warnings(category=DeprecationWarning) def test_crc_hqx(self): crc = binascii.crc_hqx(self.type2test(b"Test the CRC-32 of"), 0) crc = binascii.crc_hqx(self.type2test(b" this string."), crc) @@ -246,32 +241,6 @@ def test_crc32(self): self.assertRaises(TypeError, binascii.crc32) - @warnings_helper.ignore_warnings(category=DeprecationWarning) - def test_hqx(self): - # Perform binhex4 style RLE-compression - # Then calculate the hexbin4 binary-to-ASCII translation - rle = binascii.rlecode_hqx(self.data) - a = binascii.b2a_hqx(self.type2test(rle)) - - b, _ = binascii.a2b_hqx(self.type2test(a)) - res = binascii.rledecode_hqx(b) - self.assertEqual(res, self.rawdata) - - @warnings_helper.ignore_warnings(category=DeprecationWarning) - def test_rle(self): - # test repetition with a repetition longer than the limit of 255 - data = (b'a' * 100 + b'b' + b'c' * 300) - - encoded = binascii.rlecode_hqx(data) - self.assertEqual(encoded, - (b'a\x90d' # 'a' * 100 - b'b' # 'b' - b'c\x90\xff' # 'c' * 255 - b'c\x90-')) # 'c' * 45 - - decoded = binascii.rledecode_hqx(encoded) - self.assertEqual(decoded, data) - def test_hex(self): # test hexlification s = b'{s\005\000\000\000worldi\002\000\000\000s\005\000\000\000helloi\001\000\000\0000' @@ -404,7 +373,6 @@ def test_qp(self): self.assertEqual(b2a_qp(type2test(b'a.\n')), b'a.\n') self.assertEqual(b2a_qp(type2test(b'.a')[:-1]), b'=2E') - @warnings_helper.ignore_warnings(category=DeprecationWarning) def test_empty_string(self): # A test for SF bug #1022953. Make sure SystemError is not raised. empty = self.type2test(b'') @@ -421,7 +389,7 @@ def test_empty_string(self): def test_unicode_b2a(self): # Unicode strings are not accepted by b2a_* functions. - for func in set(all_functions) - set(a2b_functions) | {'rledecode_hqx'}: + for func in set(all_functions) - set(a2b_functions): try: self.assertRaises(TypeError, getattr(binascii, func), "test") except Exception as err: @@ -429,15 +397,11 @@ def test_unicode_b2a(self): # crc_hqx needs 2 arguments self.assertRaises(TypeError, binascii.crc_hqx, "test", 0) - @warnings_helper.ignore_warnings(category=DeprecationWarning) def test_unicode_a2b(self): # Unicode strings are accepted by a2b_* functions. MAX_ALL = 45 raw = self.rawdata[:MAX_ALL] for fa, fb in zip(a2b_functions, b2a_functions): - if fa == 'rledecode_hqx': - # Takes non-ASCII data - continue a2b = getattr(binascii, fa) b2a = getattr(binascii, fb) try: @@ -447,10 +411,6 @@ def test_unicode_a2b(self): res = a2b(a) except Exception as err: self.fail("{}/{} conversion raises {!r}".format(fb, fa, err)) - if fb == 'b2a_hqx': - # b2a_hqx returns a tuple - res, _ = res - binary_res, _ = binary_res self.assertEqual(res, raw, "{}/{} conversion: " "{!r} != {!r}".format(fb, fa, res, raw)) self.assertEqual(res, binary_res) @@ -468,18 +428,6 @@ def test_b2a_base64_newline(self): self.assertEqual(binascii.b2a_base64(b, newline=False), b'aGVsbG8=') - def test_deprecated_warnings(self): - with self.assertWarns(DeprecationWarning): - self.assertEqual(binascii.b2a_hqx(b'abc'), b'B@*M') - with self.assertWarns(DeprecationWarning): - self.assertEqual(binascii.a2b_hqx(b'B@*M'), (b'abc', 0)) - - with self.assertWarns(DeprecationWarning): - self.assertEqual(binascii.rlecode_hqx(b'a' * 10), b'a\x90\n') - - with self.assertWarns(DeprecationWarning): - self.assertEqual(binascii.rledecode_hqx(b'a\x90\n'), b'a' * 10) - class ArrayBinASCIITest(BinASCIITest): def type2test(self, s): diff --git a/Lib/test/test_binhex.py b/Lib/test/test_binhex.py deleted file mode 100644 index efc1654a6b710..0000000000000 --- a/Lib/test/test_binhex.py +++ /dev/null @@ -1,72 +0,0 @@ -"""Test script for the binhex C module - - Uses the mechanism of the python binhex module - Based on an original test by Roger E. Masse. -""" -import unittest -from test import support -from test.support import import_helper -from test.support import os_helper -from test.support import warnings_helper - - -with warnings_helper.check_warnings(('', DeprecationWarning)): - binhex = import_helper.import_fresh_module('binhex') - - -class BinHexTestCase(unittest.TestCase): - - def setUp(self): - # binhex supports only file names encodable to Latin1 - self.fname1 = os_helper.TESTFN_ASCII + "1" - self.fname2 = os_helper.TESTFN_ASCII + "2" - self.fname3 = os_helper.TESTFN_ASCII + "very_long_filename__very_long_filename__very_long_filename__very_long_filename__" - - def tearDown(self): - os_helper.unlink(self.fname1) - os_helper.unlink(self.fname2) - os_helper.unlink(self.fname3) - - DATA = b'Jack is my hero' - - def test_binhex(self): - with open(self.fname1, 'wb') as f: - f.write(self.DATA) - - binhex.binhex(self.fname1, self.fname2) - - binhex.hexbin(self.fname2, self.fname1) - - with open(self.fname1, 'rb') as f: - finish = f.readline() - - self.assertEqual(self.DATA, finish) - - def test_binhex_error_on_long_filename(self): - """ - The testcase fails if no exception is raised when a filename parameter provided to binhex.binhex() - is too long, or if the exception raised in binhex.binhex() is not an instance of binhex.Error. - """ - f3 = open(self.fname3, 'wb') - f3.close() - - self.assertRaises(binhex.Error, binhex.binhex, self.fname3, self.fname2) - - def test_binhex_line_endings(self): - # bpo-29566: Ensure the line endings are those for macOS 9 - with open(self.fname1, 'wb') as f: - f.write(self.DATA) - - binhex.binhex(self.fname1, self.fname2) - - with open(self.fname2, 'rb') as fp: - contents = fp.read() - - self.assertNotIn(b'\n', contents) - -def test_main(): - support.run_unittest(BinHexTestCase) - - -if __name__ == "__main__": - test_main() diff --git a/Misc/NEWS.d/next/Library/2021-09-02-00-47-14.bpo-45085.mMnaDv.rst b/Misc/NEWS.d/next/Library/2021-09-02-00-47-14.bpo-45085.mMnaDv.rst new file mode 100644 index 0000000000000..22eada24f0f5a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-02-00-47-14.bpo-45085.mMnaDv.rst @@ -0,0 +1,10 @@ +The ``binhex`` module, deprecated in Python 3.9, is now removed. The +following :mod:`binascii` functions, deprecated in Python 3.9, are now also +removed: + +* ``a2b_hqx()``, ``b2a_hqx()``; +* ``rlecode_hqx()``, ``rledecode_hqx()``. + +The :func:`binascii.crc_hqx` function remains available. + +Patch by Victor Stinner. diff --git a/Modules/binascii.c b/Modules/binascii.c index e80eb2af49cf7..db960dcdcb0b6 100644 --- a/Modules/binascii.c +++ b/Modules/binascii.c @@ -72,69 +72,6 @@ get_binascii_state(PyObject *module) return (binascii_state *)PyModule_GetState(module); } -/* -** hqx lookup table, ascii->binary. -*/ - -#define RUNCHAR 0x90 - -#define DONE 0x7F -#define SKIP 0x7E -#define FAIL 0x7D - -static const unsigned char table_a2b_hqx[256] = { -/* ^@ ^A ^B ^C ^D ^E ^F ^G */ -/* 0*/ FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, -/* \b \t \n ^K ^L \r ^N ^O */ -/* 1*/ FAIL, FAIL, SKIP, FAIL, FAIL, SKIP, FAIL, FAIL, -/* ^P ^Q ^R ^S ^T ^U ^V ^W */ -/* 2*/ FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, -/* ^X ^Y ^Z ^[ ^\ ^] ^^ ^_ */ -/* 3*/ FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, -/* ! " # $ % & ' */ -/* 4*/ FAIL, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, -/* ( ) * + , - . / */ -/* 5*/ 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, FAIL, FAIL, -/* 0 1 2 3 4 5 6 7 */ -/* 6*/ 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, FAIL, -/* 8 9 : ; < = > ? */ -/* 7*/ 0x14, 0x15, DONE, FAIL, FAIL, FAIL, FAIL, FAIL, -/* @ A B C D E F G */ -/* 8*/ 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, -/* H I J K L M N O */ -/* 9*/ 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, FAIL, -/* P Q R S T U V W */ -/*10*/ 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, FAIL, -/* X Y Z [ \ ] ^ _ */ -/*11*/ 0x2C, 0x2D, 0x2E, 0x2F, FAIL, FAIL, FAIL, FAIL, -/* ` a b c d e f g */ -/*12*/ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, FAIL, -/* h i j k l m n o */ -/*13*/ 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, FAIL, FAIL, -/* p q r s t u v w */ -/*14*/ 0x3D, 0x3E, 0x3F, FAIL, FAIL, FAIL, FAIL, FAIL, -/* x y z { | } ~ ^? */ -/*15*/ FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, -/*16*/ FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, - FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, FAIL, -}; - -static const unsigned char table_b2a_hqx[] = -"!\"#$%&'()*+,-012345689 at ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr"; static const unsigned char table_a2b_base64[] = { -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, -1,-1,-1,-1, @@ -165,7 +102,6 @@ static const unsigned char table_b2a_base64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - static const unsigned short crctab_hqx[256] = { 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, @@ -649,356 +585,6 @@ binascii_b2a_base64_impl(PyObject *module, Py_buffer *data, int newline) return _PyBytesWriter_Finish(&writer, ascii_data); } -/*[clinic input] -binascii.a2b_hqx - - data: ascii_buffer - / - -Decode .hqx coding. -[clinic start generated code]*/ - -static PyObject * -binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data) -/*[clinic end generated code: output=4d6d8c54d54ea1c1 input=0d914c680e0eed55]*/ -{ - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "binascii.a2b_hqx() is deprecated", 1) < 0) { - return NULL; - } - - const unsigned char *ascii_data; - unsigned char *bin_data; - int leftbits = 0; - unsigned char this_ch; - unsigned int leftchar = 0; - PyObject *res; - Py_ssize_t len; - int done = 0; - _PyBytesWriter writer; - binascii_state *state; - - ascii_data = data->buf; - len = data->len; - _PyBytesWriter_Init(&writer); - - assert(len >= 0); - - if (len > PY_SSIZE_T_MAX - 2) - return PyErr_NoMemory(); - - /* Allocate a string that is too big (fixed later) - Add two to the initial length to prevent interning which - would preclude subsequent resizing. */ - bin_data = _PyBytesWriter_Alloc(&writer, len + 2); - if (bin_data == NULL) - return NULL; - - for( ; len > 0 ; len--, ascii_data++ ) { - /* Get the byte and look it up */ - this_ch = table_a2b_hqx[*ascii_data]; - if ( this_ch == SKIP ) - continue; - if ( this_ch == FAIL ) { - state = get_binascii_state(module); - if (state == NULL) { - return NULL; - } - PyErr_SetString(state->Error, "Illegal char"); - _PyBytesWriter_Dealloc(&writer); - return NULL; - } - if ( this_ch == DONE ) { - /* The terminating colon */ - done = 1; - break; - } - - /* Shift it into the buffer and see if any bytes are ready */ - leftchar = (leftchar << 6) | (this_ch); - leftbits += 6; - if ( leftbits >= 8 ) { - leftbits -= 8; - *bin_data++ = (leftchar >> leftbits) & 0xff; - leftchar &= ((1 << leftbits) - 1); - } - } - - if ( leftbits && !done ) { - state = get_binascii_state(module); - if (state == NULL) { - return NULL; - } - PyErr_SetString(state->Incomplete, - "String has incomplete number of bytes"); - _PyBytesWriter_Dealloc(&writer); - return NULL; - } - - res = _PyBytesWriter_Finish(&writer, bin_data); - if (res == NULL) - return NULL; - return Py_BuildValue("Ni", res, done); -} - - -/*[clinic input] -binascii.rlecode_hqx - - data: Py_buffer - / - -Binhex RLE-code binary data. -[clinic start generated code]*/ - -static PyObject * -binascii_rlecode_hqx_impl(PyObject *module, Py_buffer *data) -/*[clinic end generated code: output=393d79338f5f5629 input=e1f1712447a82b09]*/ -{ - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "binascii.rlecode_hqx() is deprecated", 1) < 0) { - return NULL; - } - - const unsigned char *in_data; - unsigned char *out_data; - unsigned char ch; - Py_ssize_t in, inend, len; - _PyBytesWriter writer; - - _PyBytesWriter_Init(&writer); - in_data = data->buf; - len = data->len; - - assert(len >= 0); - - if (len > PY_SSIZE_T_MAX / 2 - 2) - return PyErr_NoMemory(); - - /* Worst case: output is twice as big as input (fixed later) */ - out_data = _PyBytesWriter_Alloc(&writer, len * 2 + 2); - if (out_data == NULL) - return NULL; - - for( in=0; in 3 ) { - /* More than 3 in a row. Output RLE. */ - *out_data++ = ch; - *out_data++ = RUNCHAR; - *out_data++ = (unsigned char) (inend-in); - in = inend-1; - } else { - /* Less than 3. Output the byte itself */ - *out_data++ = ch; - } - } - } - - return _PyBytesWriter_Finish(&writer, out_data); -} - - -/*[clinic input] -binascii.b2a_hqx - - data: Py_buffer - / - -Encode .hqx data. -[clinic start generated code]*/ - -static PyObject * -binascii_b2a_hqx_impl(PyObject *module, Py_buffer *data) -/*[clinic end generated code: output=d0aa5a704bc9f7de input=9596ebe019fe12ba]*/ -{ - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "binascii.b2a_hqx() is deprecated", 1) < 0) { - return NULL; - } - - unsigned char *ascii_data; - const unsigned char *bin_data; - int leftbits = 0; - unsigned char this_ch; - unsigned int leftchar = 0; - Py_ssize_t len; - _PyBytesWriter writer; - - bin_data = data->buf; - len = data->len; - _PyBytesWriter_Init(&writer); - - assert(len >= 0); - - if (len > PY_SSIZE_T_MAX / 2 - 2) - return PyErr_NoMemory(); - - /* Allocate a buffer that is at least large enough */ - ascii_data = _PyBytesWriter_Alloc(&writer, len * 2 + 2); - if (ascii_data == NULL) - return NULL; - - for( ; len > 0 ; len--, bin_data++ ) { - /* Shift into our buffer, and output any 6bits ready */ - leftchar = (leftchar << 8) | *bin_data; - leftbits += 8; - while ( leftbits >= 6 ) { - this_ch = (leftchar >> (leftbits-6)) & 0x3f; - leftbits -= 6; - *ascii_data++ = table_b2a_hqx[this_ch]; - } - } - /* Output a possible runt byte */ - if ( leftbits ) { - leftchar <<= (6-leftbits); - *ascii_data++ = table_b2a_hqx[leftchar & 0x3f]; - } - - return _PyBytesWriter_Finish(&writer, ascii_data); -} - - -/*[clinic input] -binascii.rledecode_hqx - - data: Py_buffer - / - -Decode hexbin RLE-coded string. -[clinic start generated code]*/ - -static PyObject * -binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data) -/*[clinic end generated code: output=9826619565de1c6c input=54cdd49fc014402c]*/ -{ - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "binascii.rledecode_hqx() is deprecated", 1) < 0) { - return NULL; - } - - const unsigned char *in_data; - unsigned char *out_data; - unsigned char in_byte, in_repeat; - Py_ssize_t in_len; - _PyBytesWriter writer; - - in_data = data->buf; - in_len = data->len; - _PyBytesWriter_Init(&writer); - binascii_state *state; - - assert(in_len >= 0); - - /* Empty string is a special case */ - if ( in_len == 0 ) - return PyBytes_FromStringAndSize("", 0); - else if (in_len > PY_SSIZE_T_MAX / 2) - return PyErr_NoMemory(); - - /* Allocate a buffer of reasonable size. Resized when needed */ - out_data = _PyBytesWriter_Alloc(&writer, in_len); - if (out_data == NULL) - return NULL; - - /* Use overallocation */ - writer.overallocate = 1; - - /* - ** We need two macros here to get/put bytes and handle - ** end-of-buffer for input and output strings. - */ -#define INBYTE(b) \ - do { \ - if ( --in_len < 0 ) { \ - state = get_binascii_state(module); \ - if (state == NULL) { \ - return NULL; \ - } \ - PyErr_SetString(state->Incomplete, ""); \ - goto error; \ - } \ - b = *in_data++; \ - } while(0) - - /* - ** Handle first byte separately (since we have to get angry - ** in case of an orphaned RLE code). - */ - INBYTE(in_byte); - - if (in_byte == RUNCHAR) { - INBYTE(in_repeat); - /* only 1 byte will be written, but 2 bytes were preallocated: - subtract 1 byte to prevent overallocation */ - writer.min_size--; - - if (in_repeat != 0) { - /* Note Error, not Incomplete (which is at the end - ** of the string only). This is a programmer error. - */ - state = get_binascii_state(module); - if (state == NULL) { - return NULL; - } - PyErr_SetString(state->Error, "Orphaned RLE code at start"); - goto error; - } - *out_data++ = RUNCHAR; - } else { - *out_data++ = in_byte; - } - - while( in_len > 0 ) { - INBYTE(in_byte); - - if (in_byte == RUNCHAR) { - INBYTE(in_repeat); - /* only 1 byte will be written, but 2 bytes were preallocated: - subtract 1 byte to prevent overallocation */ - writer.min_size--; - - if ( in_repeat == 0 ) { - /* Just an escaped RUNCHAR value */ - *out_data++ = RUNCHAR; - } else { - /* Pick up value and output a sequence of it */ - in_byte = out_data[-1]; - - /* enlarge the buffer if needed */ - if (in_repeat > 1) { - /* -1 because we already preallocated 1 byte */ - out_data = _PyBytesWriter_Prepare(&writer, out_data, - in_repeat - 1); - if (out_data == NULL) - goto error; - } - - while ( --in_repeat > 0 ) - *out_data++ = in_byte; - } - } else { - /* Normal byte */ - *out_data++ = in_byte; - } - } - return _PyBytesWriter_Finish(&writer, out_data); - -error: - _PyBytesWriter_Dealloc(&writer); - return NULL; -} - /*[clinic input] binascii.crc_hqx @@ -1629,14 +1215,10 @@ static struct PyMethodDef binascii_module_methods[] = { BINASCII_B2A_UU_METHODDEF BINASCII_A2B_BASE64_METHODDEF BINASCII_B2A_BASE64_METHODDEF - BINASCII_A2B_HQX_METHODDEF - BINASCII_B2A_HQX_METHODDEF BINASCII_A2B_HEX_METHODDEF BINASCII_B2A_HEX_METHODDEF BINASCII_HEXLIFY_METHODDEF BINASCII_UNHEXLIFY_METHODDEF - BINASCII_RLECODE_HQX_METHODDEF - BINASCII_RLEDECODE_HQX_METHODDEF BINASCII_CRC_HQX_METHODDEF BINASCII_CRC32_METHODDEF BINASCII_A2B_QP_METHODDEF diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h index a9240046a5911..a0ca6d60ce969 100644 --- a/Modules/clinic/binascii.c.h +++ b/Modules/clinic/binascii.c.h @@ -191,145 +191,6 @@ binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P return return_value; } -PyDoc_STRVAR(binascii_a2b_hqx__doc__, -"a2b_hqx($module, data, /)\n" -"--\n" -"\n" -"Decode .hqx coding."); - -#define BINASCII_A2B_HQX_METHODDEF \ - {"a2b_hqx", (PyCFunction)binascii_a2b_hqx, METH_O, binascii_a2b_hqx__doc__}, - -static PyObject * -binascii_a2b_hqx_impl(PyObject *module, Py_buffer *data); - -static PyObject * -binascii_a2b_hqx(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - Py_buffer data = {NULL, NULL}; - - if (!ascii_buffer_converter(arg, &data)) { - goto exit; - } - return_value = binascii_a2b_hqx_impl(module, &data); - -exit: - /* Cleanup for data */ - if (data.obj) - PyBuffer_Release(&data); - - return return_value; -} - -PyDoc_STRVAR(binascii_rlecode_hqx__doc__, -"rlecode_hqx($module, data, /)\n" -"--\n" -"\n" -"Binhex RLE-code binary data."); - -#define BINASCII_RLECODE_HQX_METHODDEF \ - {"rlecode_hqx", (PyCFunction)binascii_rlecode_hqx, METH_O, binascii_rlecode_hqx__doc__}, - -static PyObject * -binascii_rlecode_hqx_impl(PyObject *module, Py_buffer *data); - -static PyObject * -binascii_rlecode_hqx(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - Py_buffer data = {NULL, NULL}; - - if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&data, 'C')) { - _PyArg_BadArgument("rlecode_hqx", "argument", "contiguous buffer", arg); - goto exit; - } - return_value = binascii_rlecode_hqx_impl(module, &data); - -exit: - /* Cleanup for data */ - if (data.obj) { - PyBuffer_Release(&data); - } - - return return_value; -} - -PyDoc_STRVAR(binascii_b2a_hqx__doc__, -"b2a_hqx($module, data, /)\n" -"--\n" -"\n" -"Encode .hqx data."); - -#define BINASCII_B2A_HQX_METHODDEF \ - {"b2a_hqx", (PyCFunction)binascii_b2a_hqx, METH_O, binascii_b2a_hqx__doc__}, - -static PyObject * -binascii_b2a_hqx_impl(PyObject *module, Py_buffer *data); - -static PyObject * -binascii_b2a_hqx(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - Py_buffer data = {NULL, NULL}; - - if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&data, 'C')) { - _PyArg_BadArgument("b2a_hqx", "argument", "contiguous buffer", arg); - goto exit; - } - return_value = binascii_b2a_hqx_impl(module, &data); - -exit: - /* Cleanup for data */ - if (data.obj) { - PyBuffer_Release(&data); - } - - return return_value; -} - -PyDoc_STRVAR(binascii_rledecode_hqx__doc__, -"rledecode_hqx($module, data, /)\n" -"--\n" -"\n" -"Decode hexbin RLE-coded string."); - -#define BINASCII_RLEDECODE_HQX_METHODDEF \ - {"rledecode_hqx", (PyCFunction)binascii_rledecode_hqx, METH_O, binascii_rledecode_hqx__doc__}, - -static PyObject * -binascii_rledecode_hqx_impl(PyObject *module, Py_buffer *data); - -static PyObject * -binascii_rledecode_hqx(PyObject *module, PyObject *arg) -{ - PyObject *return_value = NULL; - Py_buffer data = {NULL, NULL}; - - if (PyObject_GetBuffer(arg, &data, PyBUF_SIMPLE) != 0) { - goto exit; - } - if (!PyBuffer_IsContiguous(&data, 'C')) { - _PyArg_BadArgument("rledecode_hqx", "argument", "contiguous buffer", arg); - goto exit; - } - return_value = binascii_rledecode_hqx_impl(module, &data); - -exit: - /* Cleanup for data */ - if (data.obj) { - PyBuffer_Release(&data); - } - - return return_value; -} - PyDoc_STRVAR(binascii_crc_hqx__doc__, "crc_hqx($module, data, crc, /)\n" "--\n" @@ -767,4 +628,4 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj return return_value; } -/*[clinic end generated code: output=0f261ee49971f5ca input=a9049054013a1b77]*/ +/*[clinic end generated code: output=4162d08536697182 input=a9049054013a1b77]*/ diff --git a/PCbuild/lib.pyproj b/PCbuild/lib.pyproj index eba4d7591568d..ded02b0d6a07f 100644 --- a/PCbuild/lib.pyproj +++ b/PCbuild/lib.pyproj @@ -53,7 +53,6 @@ - @@ -894,7 +893,6 @@ - diff --git a/Python/stdlib_module_names.h b/Python/stdlib_module_names.h index 2f75c2e54cd5e..1743292593f36 100644 --- a/Python/stdlib_module_names.h +++ b/Python/stdlib_module_names.h @@ -103,7 +103,6 @@ static const char* _Py_stdlib_module_names[] = { "base64", "bdb", "binascii", -"binhex", "bisect", "builtins", "bz2", From webhook-mailer at python.org Thu Sep 2 06:58:05 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 10:58:05 -0000 Subject: [Python-checkins] bpo-37330: open() no longer accept 'U' in file mode (GH-28118) Message-ID: https://github.com/python/cpython/commit/19ba2122ac7313ac29207360cfa864a275b9489e commit: 19ba2122ac7313ac29207360cfa864a275b9489e branch: main author: Victor Stinner committer: ambv date: 2021-09-02T12:58:00+02:00 summary: bpo-37330: open() no longer accept 'U' in file mode (GH-28118) open(), io.open(), codecs.open() and fileinput.FileInput no longer accept "U" ("universal newline") in the file mode. This flag was deprecated since Python 3.3. files: A Misc/NEWS.d/next/Core and Builtins/2021-09-02-01-28-01.bpo-37330.QDjM_l.rst M Doc/library/codecs.rst M Doc/library/fileinput.rst M Doc/library/functions.rst M Doc/whatsnew/3.11.rst M Lib/_pyio.py M Lib/fileinput.py M Lib/imp.py M Lib/test/test_codecs.py M Lib/test/test_fileinput.py M Lib/test/test_io.py M Modules/_io/_iomodule.c M Modules/_io/clinic/_iomodule.c.h diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 0dcd88f9fd5b7..9ea689acd8bbb 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -204,6 +204,9 @@ wider range of codecs when working with binary files: *buffering* has the same meaning as for the built-in :func:`open` function. It defaults to -1 which means that the default buffer size will be used. + .. versionchanged:: 3.11 + The ``'U'`` mode has been removed. + .. function:: EncodedFile(file, data_encoding, file_encoding=None, errors='strict') diff --git a/Doc/library/fileinput.rst b/Doc/library/fileinput.rst index 3880ed3d2bfc9..9f7802dd4566d 100644 --- a/Doc/library/fileinput.rst +++ b/Doc/library/fileinput.rst @@ -153,7 +153,7 @@ available for subclassing as well: and :meth:`~io.TextIOBase.readline` cannot be mixed. With *mode* you can specify which file mode will be passed to :func:`open`. It - must be one of ``'r'``, ``'rU'``, ``'U'`` and ``'rb'``. + must be one of ``'r'`` and ``'rb'``. The *openhook*, when given, must be a function that takes two arguments, *filename* and *mode*, and returns an accordingly opened file-like object. You @@ -171,9 +171,6 @@ available for subclassing as well: .. versionchanged:: 3.2 Can be used as a context manager. - .. deprecated:: 3.4 - The ``'rU'`` and ``'U'`` modes. - .. deprecated:: 3.8 Support for :meth:`__getitem__` method is deprecated. @@ -183,6 +180,9 @@ available for subclassing as well: .. versionchanged:: 3.10 The keyword-only parameter *encoding* and *errors* are added. + .. versionchanged:: 3.11 + The ``'rU'`` and ``'U'`` modes have been removed. + **Optional in-place filtering:** if the keyword argument ``inplace=True`` is passed to :func:`fileinput.input` or to the :class:`FileInput` constructor, the diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 9629acec2bc72..a8fc7023d1195 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1156,12 +1156,6 @@ are always available. They are listed here in alphabetical order. first decoded using a platform-dependent encoding or using the specified *encoding* if given. - There is an additional mode character permitted, ``'U'``, which no longer - has any effect, and is considered deprecated. It previously enabled - :term:`universal newlines` in text mode, which became the default behavior - in Python 3.0. Refer to the documentation of the - :ref:`newline ` parameter for further details. - .. note:: Python doesn't depend on the underlying operating system's notion of text @@ -1304,8 +1298,7 @@ are always available. They are listed here in alphabetical order. The ``mode`` and ``flags`` arguments may have been modified or inferred from the original call. - .. versionchanged:: - 3.3 + .. versionchanged:: 3.3 * The *opener* parameter was added. * The ``'x'`` mode was added. @@ -1313,30 +1306,26 @@ are always available. They are listed here in alphabetical order. * :exc:`FileExistsError` is now raised if the file opened in exclusive creation mode (``'x'``) already exists. - .. versionchanged:: - 3.4 + .. versionchanged:: 3.4 * The file is now non-inheritable. - .. deprecated-removed:: 3.4 3.10 - - The ``'U'`` mode. - - .. versionchanged:: - 3.5 + .. versionchanged:: 3.5 * If the system call is interrupted and the signal handler does not raise an exception, the function now retries the system call instead of raising an :exc:`InterruptedError` exception (see :pep:`475` for the rationale). * The ``'namereplace'`` error handler was added. - .. versionchanged:: - 3.6 + .. versionchanged:: 3.6 * Support added to accept objects implementing :class:`os.PathLike`. * On Windows, opening a console buffer may return a subclass of :class:`io.RawIOBase` other than :class:`io.FileIO`. + .. versionchanged:: 3.11 + The ``'U'`` mode has been removed. + .. function:: ord(c) Given a string representing one Unicode character, return an integer diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index 7d42c840c4a19..d6a95a2e3175c 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -321,6 +321,14 @@ Changes in the Python API Python 3.8. (Contributed by Illia Volochii in :issue:`43234`.) +* :func:`open`, :func:`io.open`, :func:`codecs.open` and + :class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline") + in the file mode. This flag was deprecated since Python 3.3. In Python 3, the + "universal newline" is used by default when a file is open in text mode. The + :ref:`newline parameter ` of :func:`open` controls + how universal newlines works. + (Contributed by Victor Stinner in :issue:`37330`.) + C API Changes ============= diff --git a/Lib/_pyio.py b/Lib/_pyio.py index 56e9a0cb33c5f..d7119742b9d22 100644 --- a/Lib/_pyio.py +++ b/Lib/_pyio.py @@ -101,7 +101,6 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None, 'b' binary mode 't' text mode (default) '+' open a disk file for updating (reading and writing) - 'U' universal newline mode (deprecated) ========= =============================================================== The default mode is 'rt' (open for reading text). For binary random @@ -117,10 +116,6 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None, returned as strings, the bytes having been first decoded using a platform-dependent encoding or using the specified encoding if given. - 'U' mode is deprecated and will raise an exception in future versions - of Python. It has no effect in Python 3. Use newline to control - universal newlines mode. - buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode), and an integer > 1 to indicate @@ -206,7 +201,7 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None, if errors is not None and not isinstance(errors, str): raise TypeError("invalid errors: %r" % errors) modes = set(mode) - if modes - set("axrwb+tU") or len(mode) > len(modes): + if modes - set("axrwb+t") or len(mode) > len(modes): raise ValueError("invalid mode: %r" % mode) creating = "x" in modes reading = "r" in modes @@ -215,13 +210,6 @@ def open(file, mode="r", buffering=-1, encoding=None, errors=None, updating = "+" in modes text = "t" in modes binary = "b" in modes - if "U" in modes: - if creating or writing or appending or updating: - raise ValueError("mode U cannot be combined with 'x', 'w', 'a', or '+'") - import warnings - warnings.warn("'U' mode is deprecated", - DeprecationWarning, 2) - reading = True if text and binary: raise ValueError("can't have text and binary mode at once") if creating + reading + writing + appending > 1: diff --git a/Lib/fileinput.py b/Lib/fileinput.py index 35347185da048..d0b3caae5d6e4 100644 --- a/Lib/fileinput.py +++ b/Lib/fileinput.py @@ -217,15 +217,10 @@ def __init__(self, files=None, inplace=False, backup="", *, EncodingWarning, 2) # restrict mode argument to reading modes - if mode not in ('r', 'rU', 'U', 'rb'): - raise ValueError("FileInput opening mode must be one of " - "'r', 'rU', 'U' and 'rb'") - if 'U' in mode: - import warnings - warnings.warn("'U' mode is deprecated", - DeprecationWarning, 2) + if mode not in ('r', 'rb'): + raise ValueError("FileInput opening mode must be 'r' or 'rb'") self._mode = mode - self._write_mode = mode.replace('r', 'w') if 'U' not in mode else 'w' + self._write_mode = mode.replace('r', 'w') if openhook: if inplace: raise ValueError("FileInput cannot use an opening hook in inplace mode") diff --git a/Lib/imp.py b/Lib/imp.py index e02aaef344c61..71c5c8fc6a510 100644 --- a/Lib/imp.py +++ b/Lib/imp.py @@ -226,7 +226,7 @@ def load_module(name, file, filename, details): """ suffix, mode, type_ = details - if mode and (not mode.startswith(('r', 'U')) or '+' in mode): + if mode and (not mode.startswith('r') or '+' in mode): raise ValueError('invalid file open mode {!r}'.format(mode)) elif file is None and type_ in {PY_SOURCE, PY_COMPILED}: msg = 'file object required for import (type code {})'.format(type_) diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py index 328a47b2e3766..f1a149f19b7d2 100644 --- a/Lib/test/test_codecs.py +++ b/Lib/test/test_codecs.py @@ -714,11 +714,23 @@ def test_bug691291(self): self.addCleanup(os_helper.unlink, os_helper.TESTFN) with open(os_helper.TESTFN, 'wb') as fp: fp.write(s) - with warnings_helper.check_warnings(('', DeprecationWarning)): - reader = codecs.open(os_helper.TESTFN, 'U', encoding=self.encoding) - with reader: + with codecs.open(os_helper.TESTFN, 'r', + encoding=self.encoding) as reader: self.assertEqual(reader.read(), s1) + def test_invalid_modes(self): + for mode in ('U', 'rU', 'r+U'): + with self.assertRaises(ValueError) as cm: + codecs.open(os_helper.TESTFN, mode, encoding=self.encoding) + self.assertIn('invalid mode', str(cm.exception)) + + for mode in ('rt', 'wt', 'at', 'r+t'): + with self.assertRaises(ValueError) as cm: + codecs.open(os_helper.TESTFN, mode, encoding=self.encoding) + self.assertIn("can't have text and binary mode at once", + str(cm.exception)) + + class UTF16LETest(ReadTest, unittest.TestCase): encoding = "utf-16-le" ill_formed_sequence = b"\x80\xdc" diff --git a/Lib/test/test_fileinput.py b/Lib/test/test_fileinput.py index cae0eb1b5f657..31684aefdb0eb 100644 --- a/Lib/test/test_fileinput.py +++ b/Lib/test/test_fileinput.py @@ -230,20 +230,11 @@ def test_fileno(self): line = list(fi) self.assertEqual(fi.fileno(), -1) - def test_opening_mode(self): - try: - # invalid mode, should raise ValueError - fi = FileInput(mode="w", encoding="utf-8") - self.fail("FileInput should reject invalid mode argument") - except ValueError: - pass - # try opening in universal newline mode - t1 = self.writeTmp(b"A\nB\r\nC\rD", mode="wb") - with warnings_helper.check_warnings(('', DeprecationWarning)): - fi = FileInput(files=t1, mode="U", encoding="utf-8") - with warnings_helper.check_warnings(('', DeprecationWarning)): - lines = list(fi) - self.assertEqual(lines, ["A\n", "B\n", "C\n", "D"]) + def test_invalid_opening_mode(self): + for mode in ('w', 'rU', 'U'): + with self.subTest(mode=mode): + with self.assertRaises(ValueError): + FileInput(mode=mode) def test_stdin_binary_mode(self): with mock.patch('sys.stdin') as m_stdin: @@ -1015,10 +1006,6 @@ def check(mode, expected_lines): self.assertEqual(lines, expected_lines) check('r', ['A\n', 'B\n', 'C\n', 'D\u20ac']) - with self.assertWarns(DeprecationWarning): - check('rU', ['A\n', 'B\n', 'C\n', 'D\u20ac']) - with self.assertWarns(DeprecationWarning): - check('U', ['A\n', 'B\n', 'C\n', 'D\u20ac']) with self.assertRaises(ValueError): check('rb', ['A\n', 'B\r\n', 'C\r', 'D\u20ac']) diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py index 273545a2a2cbb..d52f97bb3965e 100644 --- a/Lib/test/test_io.py +++ b/Lib/test/test_io.py @@ -3954,16 +3954,6 @@ def test_attributes(self): self.assertEqual(f.mode, "wb") f.close() - with warnings_helper.check_warnings(('', DeprecationWarning)): - f = self.open(os_helper.TESTFN, "U", encoding="utf-8") - self.assertEqual(f.name, os_helper.TESTFN) - self.assertEqual(f.buffer.name, os_helper.TESTFN) - self.assertEqual(f.buffer.raw.name, os_helper.TESTFN) - self.assertEqual(f.mode, "U") - self.assertEqual(f.buffer.mode, "rb") - self.assertEqual(f.buffer.raw.mode, "rb") - f.close() - f = self.open(os_helper.TESTFN, "w+", encoding="utf-8") self.assertEqual(f.mode, "w+") self.assertEqual(f.buffer.mode, "rb+") # Does it really matter? @@ -3977,6 +3967,13 @@ def test_attributes(self): f.close() g.close() + def test_removed_u_mode(self): + # bpo-37330: The "U" mode has been removed in Python 3.11 + for mode in ("U", "rU", "r+U"): + with self.assertRaises(ValueError) as cm: + self.open(os_helper.TESTFN, mode) + self.assertIn('invalid mode', str(cm.exception)) + def test_open_pipe_with_append(self): # bpo-27805: Ignore ESPIPE from lseek() in open(). r, w = os.pipe() diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-02-01-28-01.bpo-37330.QDjM_l.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-02-01-28-01.bpo-37330.QDjM_l.rst new file mode 100644 index 0000000000000..3f09449de70d0 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-02-01-28-01.bpo-37330.QDjM_l.rst @@ -0,0 +1,4 @@ +:func:`open`, :func:`io.open`, :func:`codecs.open` and +:class:`fileinput.FileInput` no longer accept ``'U'`` ("universal newline") +in the file mode. This flag was deprecated since Python 3.3. Patch by Victor +Stinner. diff --git a/Modules/_io/_iomodule.c b/Modules/_io/_iomodule.c index 170dea41e8abd..b4743fbd5e04f 100644 --- a/Modules/_io/_iomodule.c +++ b/Modules/_io/_iomodule.c @@ -138,7 +138,6 @@ Character Meaning 'b' binary mode 't' text mode (default) '+' open a disk file for updating (reading and writing) -'U' universal newline mode (deprecated) ========= =============================================================== The default mode is 'rt' (open for reading text). For binary random @@ -154,10 +153,6 @@ bytes objects without any decoding. In text mode (the default, or when returned as strings, the bytes having been first decoded using a platform-dependent encoding or using the specified encoding if given. -'U' mode is deprecated and will raise an exception in future versions -of Python. It has no effect in Python 3. Use newline to control -universal newlines mode. - buffering is an optional integer used to set the buffering policy. Pass 0 to switch buffering off (only allowed in binary mode), 1 to select line buffering (only usable in text mode), and an integer > 1 to indicate @@ -233,12 +228,12 @@ static PyObject * _io_open_impl(PyObject *module, PyObject *file, const char *mode, int buffering, const char *encoding, const char *errors, const char *newline, int closefd, PyObject *opener) -/*[clinic end generated code: output=aefafc4ce2b46dc0 input=7295902222e6b311]*/ +/*[clinic end generated code: output=aefafc4ce2b46dc0 input=1543f4511d2356a5]*/ { unsigned i; int creating = 0, reading = 0, writing = 0, appending = 0, updating = 0; - int text = 0, binary = 0, universal = 0; + int text = 0, binary = 0; char rawmode[6], *m; int line_buffering, is_number; @@ -296,10 +291,6 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode, case 'b': binary = 1; break; - case 'U': - universal = 1; - reading = 1; - break; default: goto invalid_mode; } @@ -322,18 +313,6 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode, *m = '\0'; /* Parameters validation */ - if (universal) { - if (creating || writing || appending || updating) { - PyErr_SetString(PyExc_ValueError, - "mode U cannot be combined with 'x', 'w', 'a', or '+'"); - goto error; - } - if (PyErr_WarnEx(PyExc_DeprecationWarning, - "'U' mode is deprecated", 1) < 0) - goto error; - reading = 1; - } - if (text && binary) { PyErr_SetString(PyExc_ValueError, "can't have text and binary mode at once"); diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h index 91c55b1816cd8..d5fb176eb66be 100644 --- a/Modules/_io/clinic/_iomodule.c.h +++ b/Modules/_io/clinic/_iomodule.c.h @@ -36,7 +36,6 @@ PyDoc_STRVAR(_io_open__doc__, "\'b\' binary mode\n" "\'t\' text mode (default)\n" "\'+\' open a disk file for updating (reading and writing)\n" -"\'U\' universal newline mode (deprecated)\n" "========= ===============================================================\n" "\n" "The default mode is \'rt\' (open for reading text). For binary random\n" @@ -52,10 +51,6 @@ PyDoc_STRVAR(_io_open__doc__, "returned as strings, the bytes having been first decoded using a\n" "platform-dependent encoding or using the specified encoding if given.\n" "\n" -"\'U\' mode is deprecated and will raise an exception in future versions\n" -"of Python. It has no effect in Python 3. Use newline to control\n" -"universal newlines mode.\n" -"\n" "buffering is an optional integer used to set the buffering policy.\n" "Pass 0 to switch buffering off (only allowed in binary mode), 1 to select\n" "line buffering (only usable in text mode), and an integer > 1 to indicate\n" @@ -359,4 +354,4 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec exit: return return_value; } -/*[clinic end generated code: output=06e055d1d80b835d input=a9049054013a1b77]*/ +/*[clinic end generated code: output=6ea315343f6a94ba input=a9049054013a1b77]*/ From webhook-mailer at python.org Thu Sep 2 07:02:12 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 11:02:12 -0000 Subject: [Python-checkins] bpo-45056: Remove trailing unused constants from co_consts (GH-28109) Message-ID: https://github.com/python/cpython/commit/55c4a92fc1abfe388335071f1d64b3addfa5793f commit: 55c4a92fc1abfe388335071f1d64b3addfa5793f branch: main author: Inada Naoki committer: ambv date: 2021-09-02T13:02:06+02:00 summary: bpo-45056: Remove trailing unused constants from co_consts (GH-28109) files: A Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst M Lib/test/test_compile.py M Lib/test/test_dis.py M Python/compile.c M Python/frozen_modules/importlib__bootstrap.h M Python/frozen_modules/importlib__bootstrap_external.h M Python/frozen_modules/zipimport.h diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 29bfd7145f0a8b..495a223fc3da74 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -650,6 +650,17 @@ def test_merge_code_attrs(self): self.assertIs(f1.__code__.co_linetable, f2.__code__.co_linetable) self.assertIs(f1.__code__.co_code, f2.__code__.co_code) + # Stripping unused constants is not a strict requirement for the + # Python semantics, it's a more an implementation detail. + @support.cpython_only + def test_strip_unused_consts(self): + # Python 3.10rc1 appended None to co_consts when None is not used + # at all. See bpo-45056. + def f1(): + "docstring" + return 42 + self.assertEqual(f1.__code__.co_consts, ("docstring", 42)) + # This is a regression test for a CPython specific peephole optimizer # implementation bug present in a few releases. It's assertion verifies # that peephole optimization was actually done though that isn't an diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index d708c78bf9960e..b6bd88c2e42f53 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -702,10 +702,7 @@ def get_disassembly(self, func, lasti=-1, wrapper=True, **kwargs): if sys.flags.optimize: code_info_consts = "0: None" else: - code_info_consts = ( - """0: 'Formatted details of methods, functions, or code.' - 1: None""" -) + code_info_consts = "0: 'Formatted details of methods, functions, or code.'" code_info_code_info = f"""\ Name: code_info @@ -828,7 +825,6 @@ def f(c=c): Constants: 0: 0 1: 1 - 2: None Names: 0: x""" diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst new file mode 100644 index 00000000000000..6c790f5c50c48e --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-16-55-43.bpo-45056.7AK2d9.rst @@ -0,0 +1 @@ +Compiler now removes trailing unused constants from co_consts. diff --git a/Python/compile.c b/Python/compile.c index 4a4e068e2b71d8..389b3e0d723ee8 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -7573,6 +7573,9 @@ normalize_basic_block(basicblock *bb); static int optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts); +static int +trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts); + /* Duplicates exit BBs, so that line numbers can be propagated to them */ static int duplicate_exits_without_lineno(struct compiler *c); @@ -7870,6 +7873,9 @@ assemble(struct compiler *c, int addNone) if (duplicate_exits_without_lineno(c)) { return NULL; } + if (trim_unused_consts(c, &a, consts)) { + goto error; + } propagate_line_numbers(&a); guarantee_lineno_for_exits(&a, c->u->u_firstlineno); int maxdepth = stackdepth(c); @@ -8599,6 +8605,33 @@ optimize_cfg(struct compiler *c, struct assembler *a, PyObject *consts) return 0; } +// Remove trailing unused constants. +static int +trim_unused_consts(struct compiler *c, struct assembler *a, PyObject *consts) +{ + assert(PyList_CheckExact(consts)); + + // The first constant may be docstring; keep it always. + int max_const_index = 0; + for (basicblock *b = a->a_entry; b != NULL; b = b->b_next) { + for (int i = 0; i < b->b_iused; i++) { + if (b->b_instr[i].i_opcode == LOAD_CONST && + b->b_instr[i].i_oparg > max_const_index) { + max_const_index = b->b_instr[i].i_oparg; + } + } + } + if (max_const_index+1 < PyList_GET_SIZE(consts)) { + //fprintf(stderr, "removing trailing consts: max=%d, size=%d\n", + // max_const_index, (int)PyList_GET_SIZE(consts)); + if (PyList_SetSlice(consts, max_const_index+1, + PyList_GET_SIZE(consts), NULL) < 0) { + return 1; + } + } + return 0; +} + static inline int is_exit_without_lineno(basicblock *b) { return b->b_exit && b->b_instr[0].i_lineno < 0; diff --git a/Python/frozen_modules/importlib__bootstrap.h b/Python/frozen_modules/importlib__bootstrap.h index 2716896c21f4a5..92def63a9d2179 100644 --- a/Python/frozen_modules/importlib__bootstrap.h +++ b/Python/frozen_modules/importlib__bootstrap.h @@ -498,7 +498,7 @@ const unsigned char _Py_M__importlib__bootstrap[] = { 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, + 164,1,142,1,83,0,41,1,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, @@ -517,2065 +517,2064 @@ const unsigned char _Py_M__importlib__bootstrap[] = { 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, + 32,99,111,100,101,41,10,32,32,32,32,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,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,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,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,2,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,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,2,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,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,2,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, + 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,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,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,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, + 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,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,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, + 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,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,114,182,0,0,0,114,185,0,0,0,114,178,0,0, - 0,218,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,187,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,187,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, + 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,218,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,187,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,187,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,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, + 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,5,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,41,6,114,109,0,0,0,114,110,0,0,0,114,111, + 0,0,0,114,8,0,0,0,114,189,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,27,33,27,42,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,197,0,0,0,114,130,0,0,0,41,4,114, + 194,0,0,0,114,96,0,0,0,114,195,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,3,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,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,188,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,191,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,199,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,194,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,203,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, + 200,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,201,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,203,0,0,0,114,203,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,200,0,0,0,41,2,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,114,24, + 0,0,0,114,201,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,203,0,0,0,114,203, + 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,197,0,0,0,114,198,0,0,0,114, + 175,0,0,0,114,176,0,0,0,114,102,0,0,0,114,202, + 0,0,0,114,204,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,189,0,0,0,114,189,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,189, + 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,3,114,190,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,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,189,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,27,33,27,42,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,197,0,0,0,114,130,0, - 0,0,41,4,114,194,0,0,0,114,96,0,0,0,114,195, - 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, + 51,46,49,50,114,179,0,0,0,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,208,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,192,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,193,0,0,0,115,4,0,0,0,32, + 32,32,32,114,5,0,0,0,114,197,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, - 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,188,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,191,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,199,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,194,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,203,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,200,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,201,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,203,0,0,0,114,203, - 0,0,0,115,4,0,0,0,16,20,16,20,114,17,0,0, + 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,194,0, + 0,0,114,96,0,0,0,114,195,0,0,0,115,3,0,0, + 0,32,32,32,114,5,0,0,0,114,198,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,200,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,188,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,1,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, + 41,1,114,119,0,0,0,114,201,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,213,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,1,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,41,2,114,70,0,0,0,114,210,0,0,0,114,201, + 0,0,0,115,2,0,0,0,32,32,114,5,0,0,0,114, + 202,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,215,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,200,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,201,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, + 0,0,3,0,0,0,114,200,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,201,0,0,0, + 115,2,0,0,0,32,32,114,5,0,0,0,114,204,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,203,0,0,0,114,203,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,197,0,0, - 0,114,198,0,0,0,114,175,0,0,0,114,176,0,0,0, - 114,102,0,0,0,114,202,0,0,0,114,204,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,189,0, - 0,0,114,189,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, + 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,214,0, + 0,0,41,1,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,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,201, + 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,215,0,0,0,114,215,0,0,0,115,10,0, + 0,0,16,20,16,48,39,47,16,48,9,48,114,17,0,0, + 0,114,205,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,206,0,0,0,114,122,0,0,0, + 114,207,0,0,0,114,197,0,0,0,114,198,0,0,0,114, + 175,0,0,0,114,176,0,0,0,114,183,0,0,0,114,108, + 0,0,0,114,202,0,0,0,114,204,0,0,0,114,136,0, + 0,0,114,24,0,0,0,114,17,0,0,0,114,5,0,0, + 0,114,208,0,0,0,114,208,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,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,189,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,190,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,208,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,192,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,193,0, - 0,0,115,4,0,0,0,32,32,32,32,114,5,0,0,0, - 114,197,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, + 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,208,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,218,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,217,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,218,0,0, + 0,114,218,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,216,0,0, + 0,114,216,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,216,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,6,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,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,227,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,198,0,0,0,114,112,0,0,0,41,5, + 218,6,102,105,110,100,101,114,114,20,0,0,0,114,195,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,229, + 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, - 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,194,0,0,0,114,96,0,0,0,114, - 195,0,0,0,115,3,0,0,0,32,32,32,114,5,0,0, - 0,114,198,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, - 200,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,188,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,201,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,213,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,210,0,0,0,114,201,0,0,0,115,2,0, - 0,0,32,32,114,5,0,0,0,114,202,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,215,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,200,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,201,0,0,0,115,2,0,0,0,32, - 32,114,5,0,0,0,114,204,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,203,0,0,0,114, - 203,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,214,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,201,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,215, - 0,0,0,114,215,0,0,0,115,10,0,0,0,16,20,16, - 48,39,47,16,48,9,48,114,17,0,0,0,114,205,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,206,0,0,0,114,122,0,0,0,114,207,0,0,0, - 114,197,0,0,0,114,198,0,0,0,114,175,0,0,0,114, - 176,0,0,0,114,183,0,0,0,114,108,0,0,0,114,202, - 0,0,0,114,204,0,0,0,114,136,0,0,0,114,24,0, - 0,0,114,17,0,0,0,114,5,0,0,0,114,208,0,0, - 0,114,208,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,208,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,218,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,217,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,218,0,0,0,114,218,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,216,0,0,0,114,216,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, - 216,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,227,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, + 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, + 216,0,0,0,114,197,0,0,0,114,2,0,0,0,114,229, + 0,0,0,114,121,0,0,0,41,10,114,20,0,0,0,114, + 195,0,0,0,114,196,0,0,0,114,230,0,0,0,90,9, + 105,115,95,114,101,108,111,97,100,114,228,0,0,0,114,197, + 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,231,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,225, + 0,0,0,114,226,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,237,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,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,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,231,0,0,0, + 114,138,0,0,0,114,142,0,0,0,114,187,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,195,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,242,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,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,49,55,19,86,19,86,77, + 82,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,174,0,0,0,116,0,106,1,160,2,124,0,116, + 3,161,2,125,2,124,2,116,3,117,0,115,21,116,4,116, + 4,124,2,100,1,100,2,131,3,100,3,100,4,131,3,114, + 70,116,5,124,0,131,1,53,0,1,0,116,0,106,1,160, + 2,124,0,116,3,161,2,125,2,124,2,116,3,117,0,114, + 48,116,6,124,0,124,1,131,2,2,0,100,2,4,0,4, + 0,131,3,1,0,83,0,9,0,100,2,4,0,4,0,131, + 3,1,0,110,11,35,0,49,0,115,60,119,4,37,0,1, + 0,1,0,1,0,89,0,1,0,1,0,116,7,124,0,131, + 1,1,0,124,2,100,2,117,0,114,85,100,5,160,8,124, + 0,161,1,125,3,116,9,124,3,124,0,100,6,141,2,130, + 1,124,2,83,0,41,7,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,114,121,0,0,0,78,114,186,0,0,0,70,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,10,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,12, + 0,0,0,114,61,0,0,0,114,242,0,0,0,114,78,0, + 0,0,114,53,0,0,0,114,240,0,0,0,41,4,114,20, + 0,0,0,114,241,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,244,0,0,0,9,4,0,0,115,40,0,0,0,14,5, + 8,1,18,1,2,255,10,2,14,1,8,1,8,1,14,253, + 2,2,20,254,2,128,12,0,8,9,8,2,2,1,6,1, + 2,255,12,2,4,2,115,38,0,0,0,14,5,6,1,2, + 11,18,246,2,10,6,247,4,3,14,254,6,1,46,1,2, + 128,12,0,8,6,6,2,2,3,8,255,2,255,12,2,4, + 2,115,174,0,0,0,14,17,14,25,14,51,30,34,36,50, + 14,51,5,11,9,15,19,33,9,33,5,34,9,16,17,24, + 25,31,33,43,45,49,17,50,52,67,69,74,9,75,5,34, + 14,32,33,37,14,38,9,62,9,62,22,25,22,33,22,59, + 38,42,44,58,22,59,13,19,16,22,26,40,16,40,13,62, + 24,47,48,52,54,61,24,62,9,62,9,62,9,62,9,62, + 9,62,9,62,9,62,13,62,9,62,9,62,9,62,9,62, + 9,62,9,62,9,62,9,62,9,62,9,62,0,0,9,62, + 9,62,9,62,9,62,9,62,9,62,9,28,29,33,9,34, + 9,34,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, + 12,18,5,18,115,12,0,0,0,153,16,55,3,183,4,59, + 11,188,3,59,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, - 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,198,0,0,0,114,112,0,0,0,41,5,218,6,102,105, - 110,100,101,114,114,20,0,0,0,114,195,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,229,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,216,0,0,0, - 114,197,0,0,0,114,2,0,0,0,114,229,0,0,0,114, - 121,0,0,0,41,10,114,20,0,0,0,114,195,0,0,0, - 114,196,0,0,0,114,230,0,0,0,90,9,105,115,95,114, - 101,108,111,97,100,114,228,0,0,0,114,197,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,231, - 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,225,0,0,0,114, - 226,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,237,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,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,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,231,0,0,0,114,138,0,0, - 0,114,142,0,0,0,114,187,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,195,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,242,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,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,49,55,19,86,19,86,77,82,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,174, - 0,0,0,116,0,106,1,160,2,124,0,116,3,161,2,125, - 2,124,2,116,3,117,0,115,21,116,4,116,4,124,2,100, - 1,100,2,131,3,100,3,100,4,131,3,114,70,116,5,124, - 0,131,1,53,0,1,0,116,0,106,1,160,2,124,0,116, - 3,161,2,125,2,124,2,116,3,117,0,114,48,116,6,124, - 0,124,1,131,2,2,0,100,2,4,0,4,0,131,3,1, - 0,83,0,9,0,100,2,4,0,4,0,131,3,1,0,110, - 11,35,0,49,0,115,60,119,4,37,0,1,0,1,0,1, - 0,89,0,1,0,1,0,116,7,124,0,131,1,1,0,124, - 2,100,2,117,0,114,85,100,5,160,8,124,0,161,1,125, - 3,116,9,124,3,124,0,100,6,141,2,130,1,124,2,83, - 0,41,7,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,114,121, - 0,0,0,78,114,186,0,0,0,70,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,10,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,12,0,0,0,114, - 61,0,0,0,114,242,0,0,0,114,78,0,0,0,114,53, - 0,0,0,114,240,0,0,0,41,4,114,20,0,0,0,114, - 241,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,244,0,0, - 0,9,4,0,0,115,40,0,0,0,14,5,8,1,18,1, - 2,255,10,2,14,1,8,1,8,1,14,253,2,2,20,254, - 2,128,12,0,8,9,8,2,2,1,6,1,2,255,12,2, - 4,2,115,38,0,0,0,14,5,6,1,2,11,18,246,2, - 10,6,247,4,3,14,254,6,1,46,1,2,128,12,0,8, - 6,6,2,2,3,8,255,2,255,12,2,4,2,115,174,0, - 0,0,14,17,14,25,14,51,30,34,36,50,14,51,5,11, - 9,15,19,33,9,33,5,34,9,16,17,24,25,31,33,43, - 45,49,17,50,52,67,69,74,9,75,5,34,14,32,33,37, - 14,38,9,62,9,62,22,25,22,33,22,59,38,42,44,58, - 22,59,13,19,16,22,26,40,16,40,13,62,24,47,48,52, - 54,61,24,62,9,62,9,62,9,62,9,62,9,62,9,62, - 9,62,13,62,9,62,9,62,9,62,9,62,9,62,9,62, - 9,62,9,62,9,62,9,62,0,0,9,62,9,62,9,62, - 9,62,9,62,9,62,9,28,29,33,9,34,9,34,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,12,18,5,18, - 115,12,0,0,0,153,16,55,3,183,4,59,11,188,3,59, - 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,237,0,0,0, - 114,227,0,0,0,114,244,0,0,0,218,11,95,103,99,100, - 95,105,109,112,111,114,116,114,236,0,0,0,115,3,0,0, - 0,32,32,32,114,5,0,0,0,114,245,0,0,0,114,245, - 0,0,0,36,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,246,0,0,0,114, - 222,0,0,0,78,41,16,114,232,0,0,0,114,233,0,0, - 0,114,8,0,0,0,114,234,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,249,0,0,0,114,53,0,0, - 0,114,80,0,0,0,114,240,0,0,0,114,20,0,0,0, - 114,18,0,0,0,114,113,0,0,0,114,41,0,0,0,114, - 243,0,0,0,41,8,114,118,0,0,0,218,8,102,114,111, - 109,108,105,115,116,114,241,0,0,0,114,247,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,250,0,0,0, - 114,250,0,0,0,51,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,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,225,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,0,1,0,0,88,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,32,39,28,63,28, - 63,47,51,47,58,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,245,0,0,0, - 114,0,1,0,0,218,9,112,97,114,116,105,116,105,111,110, - 114,224,0,0,0,114,18,0,0,0,114,113,0,0,0,114, - 8,0,0,0,114,10,0,0,0,114,250,0,0,0,41,9, - 114,20,0,0,0,114,255,0,0,0,218,6,108,111,99,97, - 108,115,114,251,0,0,0,114,226,0,0,0,114,118,0,0, - 0,90,8,103,108,111,98,97,108,115,95,114,225,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,3,1,0,0,115,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,189,0,0,0,114,197, - 0,0,0,114,94,0,0,0,114,187,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,4,1,0,0,152,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,232,0,0,0,114,93, - 0,0,0,114,189,0,0,0,114,106,0,0,0,114,208,0, - 0,0,114,168,0,0,0,114,174,0,0,0,114,8,0,0, - 0,114,4,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,8, - 1,0,0,159,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,8,1,0,0,114,18,0,0,0, - 114,230,0,0,0,114,142,0,0,0,114,189,0,0,0,114, - 208,0,0,0,41,2,114,6,1,0,0,114,7,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,9,1,0,0,194,4,0,0,243, - 6,0,0,0,10,2,12,2,16,1,114,10,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, - 9,1,0,0,114,18,0,0,0,114,113,0,0,0,114,8, - 0,0,0,41,1,114,11,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,12,1,0,0,202,4,0,0,243,6,0,0,0, - 8,3,4,1,20,1,114,13,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,205,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, - 187,0,0,0,114,115,0,0,0,114,189,0,0,0,114,208, - 0,0,0,114,216,0,0,0,114,227,0,0,0,114,229,0, - 0,0,114,231,0,0,0,114,237,0,0,0,90,15,95,69, - 82,82,95,77,83,71,95,80,82,69,70,73,88,114,239,0, - 0,0,114,242,0,0,0,218,6,111,98,106,101,99,116,114, - 243,0,0,0,114,244,0,0,0,114,245,0,0,0,114,250, - 0,0,0,114,0,1,0,0,114,3,1,0,0,114,4,1, - 0,0,114,8,1,0,0,114,9,1,0,0,114,12,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,15,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,27,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,27,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, + 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,2, + 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,41,4,114,237, + 0,0,0,114,227,0,0,0,114,244,0,0,0,218,11,95, + 103,99,100,95,105,109,112,111,114,116,114,236,0,0,0,115, + 3,0,0,0,32,32,32,114,5,0,0,0,114,245,0,0, + 0,114,245,0,0,0,36,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,246,0, + 0,0,114,222,0,0,0,78,41,16,114,232,0,0,0,114, + 233,0,0,0,114,8,0,0,0,114,234,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,249,0,0,0,114, + 53,0,0,0,114,80,0,0,0,114,240,0,0,0,114,20, + 0,0,0,114,18,0,0,0,114,113,0,0,0,114,41,0, + 0,0,114,243,0,0,0,41,8,114,118,0,0,0,218,8, + 102,114,111,109,108,105,115,116,114,241,0,0,0,114,247,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,250, + 0,0,0,114,250,0,0,0,51,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,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,225, + 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,0,1,0,0,88,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,32,39, + 28,63,28,63,47,51,47,58,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,245, + 0,0,0,114,0,1,0,0,218,9,112,97,114,116,105,116, + 105,111,110,114,224,0,0,0,114,18,0,0,0,114,113,0, + 0,0,114,8,0,0,0,114,10,0,0,0,114,250,0,0, + 0,41,9,114,20,0,0,0,114,255,0,0,0,218,6,108, + 111,99,97,108,115,114,251,0,0,0,114,226,0,0,0,114, + 118,0,0,0,90,8,103,108,111,98,97,108,115,95,114,225, + 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,3,1,0,0, + 115,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,189,0,0, + 0,114,197,0,0,0,114,94,0,0,0,114,187,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,4,1,0, + 0,152,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,232,0,0, + 0,114,93,0,0,0,114,189,0,0,0,114,106,0,0,0, + 114,208,0,0,0,114,168,0,0,0,114,174,0,0,0,114, + 8,0,0,0,114,4,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,8,1,0,0,159,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,8,1,0,0,114,18, + 0,0,0,114,230,0,0,0,114,142,0,0,0,114,189,0, + 0,0,114,208,0,0,0,41,2,114,6,1,0,0,114,7, + 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,9,1,0,0,194,4, + 0,0,243,6,0,0,0,10,2,12,2,16,1,114,10,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,9,1,0,0,114,18,0,0,0,114,113,0,0, + 0,114,8,0,0,0,41,1,114,11,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,12,1,0,0,202,4,0,0,243,6, + 0,0,0,8,3,4,1,20,1,114,13,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,205,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,187,0,0,0,114,115,0,0,0,114,189,0,0, + 0,114,208,0,0,0,114,216,0,0,0,114,227,0,0,0, + 114,229,0,0,0,114,231,0,0,0,114,237,0,0,0,90, + 15,95,69,82,82,95,77,83,71,95,80,82,69,70,73,88, + 114,239,0,0,0,114,242,0,0,0,218,6,111,98,106,101, + 99,116,114,243,0,0,0,114,244,0,0,0,114,245,0,0, + 0,114,250,0,0,0,114,0,1,0,0,114,3,1,0,0, + 114,4,1,0,0,114,8,1,0,0,114,9,1,0,0,114, + 12,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,15,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,27,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,27,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/frozen_modules/importlib__bootstrap_external.h b/Python/frozen_modules/importlib__bootstrap_external.h index 7a3410067d4a80..97f0937fcef317 100644 --- a/Python/frozen_modules/importlib__bootstrap_external.h +++ b/Python/frozen_modules/importlib__bootstrap_external.h @@ -100,1068 +100,1067 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 78,67,65,83,69,79,75,99,0,0,0,0,0,0,0,0, 0,0,0,0,2,0,0,0,19,0,0,0,115,20,0,0, 0,116,0,106,1,106,2,12,0,111,9,137,0,116,3,106, - 4,118,0,83,0,41,2,122,94,84,114,117,101,32,105,102, + 4,118,0,83,0,41,1,122,94,84,114,117,101,32,105,102, 32,102,105,108,101,110,97,109,101,115,32,109,117,115,116,32, 98,101,32,99,104,101,99,107,101,100,32,99,97,115,101,45, 105,110,115,101,110,115,105,116,105,118,101,108,121,32,97,110, 100,32,105,103,110,111,114,101,32,101,110,118,105,114,111,110, 109,101,110,116,32,102,108,97,103,115,32,97,114,101,32,110, - 111,116,32,115,101,116,46,78,41,5,218,3,115,121,115,218, - 5,102,108,97,103,115,218,18,105,103,110,111,114,101,95,101, - 110,118,105,114,111,110,109,101,110,116,218,3,95,111,115,90, - 7,101,110,118,105,114,111,110,169,1,218,3,107,101,121,115, - 1,0,0,0,128,114,7,0,0,0,218,11,95,114,101,108, - 97,120,95,99,97,115,101,122,37,95,109,97,107,101,95,114, - 101,108,97,120,95,99,97,115,101,46,60,108,111,99,97,108, - 115,62,46,95,114,101,108,97,120,95,99,97,115,101,67,0, - 0,0,243,2,0,0,0,20,2,114,25,0,0,0,115,20, - 0,0,0,24,27,24,33,24,52,20,52,20,75,57,60,64, - 67,64,75,57,75,13,75,114,10,0,0,0,99,0,0,0, - 0,0,0,0,0,0,0,0,0,1,0,0,0,19,0,0, - 0,243,4,0,0,0,100,1,83,0,41,3,122,53,84,114, - 117,101,32,105,102,32,102,105,108,101,110,97,109,101,115,32, - 109,117,115,116,32,98,101,32,99,104,101,99,107,101,100,32, - 99,97,115,101,45,105,110,115,101,110,115,105,116,105,118,101, - 108,121,46,70,78,114,13,0,0,0,114,13,0,0,0,114, - 10,0,0,0,114,7,0,0,0,114,24,0,0,0,122,37, - 95,109,97,107,101,95,114,101,108,97,120,95,99,97,115,101, - 46,60,108,111,99,97,108,115,62,46,95,114,101,108,97,120, - 95,99,97,115,101,71,0,0,0,243,2,0,0,0,4,2, - 114,27,0,0,0,115,4,0,0,0,20,25,20,25,114,10, - 0,0,0,41,5,114,18,0,0,0,218,8,112,108,97,116, - 102,111,114,109,218,10,115,116,97,114,116,115,119,105,116,104, - 218,27,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,218,35,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,83,84,82,95,75, - 69,89,41,2,114,24,0,0,0,114,23,0,0,0,115,2, - 0,0,0,32,64,114,7,0,0,0,218,16,95,109,97,107, - 101,95,114,101,108,97,120,95,99,97,115,101,114,32,0,0, - 0,60,0,0,0,115,18,0,0,0,2,128,12,1,12,1, - 6,1,4,2,10,2,4,7,6,253,4,3,115,22,0,0, - 0,2,128,10,1,2,12,10,245,2,3,6,254,4,2,10, - 4,4,5,6,255,4,1,115,60,0,0,0,0,0,8,11, - 8,20,8,60,32,59,8,60,5,25,12,15,12,24,12,72, - 36,71,12,72,9,34,19,33,13,16,13,16,19,34,13,16, - 9,75,9,75,9,75,9,75,9,75,12,23,5,23,9,25, - 9,25,9,25,12,23,5,23,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,20,0,0,0,116,0,124,0,131,1,100,1,64, - 0,160,1,100,2,100,3,161,2,83,0,41,5,122,42,67, - 111,110,118,101,114,116,32,97,32,51,50,45,98,105,116,32, - 105,110,116,101,103,101,114,32,116,111,32,108,105,116,116,108, - 101,45,101,110,100,105,97,110,46,236,3,0,0,0,255,127, - 255,127,3,0,233,4,0,0,0,218,6,108,105,116,116,108, - 101,78,41,2,218,3,105,110,116,218,8,116,111,95,98,121, - 116,101,115,41,1,218,1,120,115,1,0,0,0,32,114,7, - 0,0,0,218,12,95,112,97,99,107,95,117,105,110,116,51, - 50,114,39,0,0,0,79,0,0,0,114,25,0,0,0,114, - 25,0,0,0,115,20,0,0,0,13,16,17,18,13,19,22, - 32,13,32,12,55,43,44,46,54,12,55,5,55,114,10,0, + 111,116,32,115,101,116,46,41,5,218,3,115,121,115,218,5, + 102,108,97,103,115,218,18,105,103,110,111,114,101,95,101,110, + 118,105,114,111,110,109,101,110,116,218,3,95,111,115,90,7, + 101,110,118,105,114,111,110,169,1,218,3,107,101,121,115,1, + 0,0,0,128,114,7,0,0,0,218,11,95,114,101,108,97, + 120,95,99,97,115,101,122,37,95,109,97,107,101,95,114,101, + 108,97,120,95,99,97,115,101,46,60,108,111,99,97,108,115, + 62,46,95,114,101,108,97,120,95,99,97,115,101,67,0,0, + 0,243,2,0,0,0,20,2,114,25,0,0,0,115,20,0, + 0,0,24,27,24,33,24,52,20,52,20,75,57,60,64,67, + 64,75,57,75,13,75,114,10,0,0,0,99,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,19,0,0,0, + 243,4,0,0,0,100,1,83,0,41,2,122,53,84,114,117, + 101,32,105,102,32,102,105,108,101,110,97,109,101,115,32,109, + 117,115,116,32,98,101,32,99,104,101,99,107,101,100,32,99, + 97,115,101,45,105,110,115,101,110,115,105,116,105,118,101,108, + 121,46,70,114,13,0,0,0,114,13,0,0,0,114,10,0, + 0,0,114,7,0,0,0,114,24,0,0,0,122,37,95,109, + 97,107,101,95,114,101,108,97,120,95,99,97,115,101,46,60, + 108,111,99,97,108,115,62,46,95,114,101,108,97,120,95,99, + 97,115,101,71,0,0,0,243,2,0,0,0,4,2,114,27, + 0,0,0,115,4,0,0,0,20,25,20,25,114,10,0,0, + 0,41,5,114,18,0,0,0,218,8,112,108,97,116,102,111, + 114,109,218,10,115,116,97,114,116,115,119,105,116,104,218,27, + 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,218,35,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,83,84,82,95,75,69,89, + 41,2,114,24,0,0,0,114,23,0,0,0,115,2,0,0, + 0,32,64,114,7,0,0,0,218,16,95,109,97,107,101,95, + 114,101,108,97,120,95,99,97,115,101,114,32,0,0,0,60, + 0,0,0,115,18,0,0,0,2,128,12,1,12,1,6,1, + 4,2,10,2,4,7,6,253,4,3,115,22,0,0,0,2, + 128,10,1,2,12,10,245,2,3,6,254,4,2,10,4,4, + 5,6,255,4,1,115,60,0,0,0,0,0,8,11,8,20, + 8,60,32,59,8,60,5,25,12,15,12,24,12,72,36,71, + 12,72,9,34,19,33,13,16,13,16,19,34,13,16,9,75, + 9,75,9,75,9,75,9,75,12,23,5,23,9,25,9,25, + 9,25,12,23,5,23,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,20,0,0,0,116,0,124,0,131,1,100,1,64,0,160, + 1,100,2,100,3,161,2,83,0,41,4,122,42,67,111,110, + 118,101,114,116,32,97,32,51,50,45,98,105,116,32,105,110, + 116,101,103,101,114,32,116,111,32,108,105,116,116,108,101,45, + 101,110,100,105,97,110,46,236,3,0,0,0,255,127,255,127, + 3,0,233,4,0,0,0,218,6,108,105,116,116,108,101,41, + 2,218,3,105,110,116,218,8,116,111,95,98,121,116,101,115, + 41,1,218,1,120,115,1,0,0,0,32,114,7,0,0,0, + 218,12,95,112,97,99,107,95,117,105,110,116,51,50,114,39, + 0,0,0,79,0,0,0,114,25,0,0,0,114,25,0,0, + 0,115,20,0,0,0,13,16,17,18,13,19,22,32,13,32, + 12,55,43,44,46,54,12,55,5,55,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,243,28,0,0,0,116,0,124,0,131,1,100, + 1,107,2,115,8,74,0,130,1,116,1,160,2,124,0,100, + 2,161,2,83,0,41,3,122,47,67,111,110,118,101,114,116, + 32,52,32,98,121,116,101,115,32,105,110,32,108,105,116,116, + 108,101,45,101,110,100,105,97,110,32,116,111,32,97,110,32, + 105,110,116,101,103,101,114,46,114,34,0,0,0,114,35,0, + 0,0,169,3,114,4,0,0,0,114,36,0,0,0,218,10, + 102,114,111,109,95,98,121,116,101,115,169,1,218,4,100,97, + 116,97,115,1,0,0,0,32,114,7,0,0,0,218,14,95, + 117,110,112,97,99,107,95,117,105,110,116,51,50,114,45,0, + 0,0,84,0,0,0,243,4,0,0,0,16,2,12,1,114, + 46,0,0,0,115,28,0,0,0,12,15,16,20,12,21,25, + 26,12,26,5,26,5,26,5,26,12,15,12,42,27,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,4,0,0,0,3,0,0,0,114, + 40,0,0,0,41,3,122,47,67,111,110,118,101,114,116,32, + 50,32,98,121,116,101,115,32,105,110,32,108,105,116,116,108, + 101,45,101,110,100,105,97,110,32,116,111,32,97,110,32,105, + 110,116,101,103,101,114,46,233,2,0,0,0,114,35,0,0, + 0,114,41,0,0,0,114,43,0,0,0,115,1,0,0,0, + 32,114,7,0,0,0,218,14,95,117,110,112,97,99,107,95, + 117,105,110,116,49,54,114,48,0,0,0,89,0,0,0,114, + 46,0,0,0,114,46,0,0,0,115,28,0,0,0,12,15, + 16,20,12,21,25,26,12,26,5,26,5,26,5,26,12,15, + 12,42,27,31,33,41,12,42,5,42,114,10,0,0,0,99, + 0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, + 7,0,0,0,115,226,0,0,0,124,0,115,4,100,1,83, + 0,116,0,124,0,131,1,100,2,107,2,114,14,124,0,100, + 3,25,0,83,0,100,1,125,1,103,0,125,2,116,1,116, + 2,106,3,124,0,131,2,68,0,93,61,92,2,125,3,125, + 4,124,3,160,4,116,5,161,1,115,38,124,3,160,6,116, + 5,161,1,114,51,124,3,160,7,116,8,161,1,112,44,124, + 1,125,1,116,9,124,4,23,0,103,1,125,2,113,24,124, + 3,160,6,100,4,161,1,114,76,124,1,160,10,161,0,124, + 3,160,10,161,0,107,3,114,70,124,3,125,1,124,4,103, + 1,125,2,113,24,124,2,160,11,124,4,161,1,1,0,113, + 24,124,3,112,79,124,1,125,1,124,2,160,11,124,4,161, + 1,1,0,113,24,100,5,132,0,124,2,68,0,131,1,125, + 2,116,0,124,2,131,1,100,2,107,2,114,106,124,2,100, + 3,25,0,115,106,124,1,116,9,23,0,83,0,124,1,116, + 9,160,12,124,2,161,1,23,0,83,0,41,6,250,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,106,111,105,110,40,41,46,114,11, + 0,0,0,114,3,0,0,0,114,0,0,0,0,114,12,0, + 0,0,99,1,0,0,0,0,0,0,0,0,0,0,0,5, + 0,0,0,19,0,0,0,243,26,0,0,0,103,0,124,0, + 93,9,125,1,124,1,114,2,124,1,160,0,116,1,161,1, + 145,2,113,2,83,0,114,13,0,0,0,169,2,218,6,114, + 115,116,114,105,112,218,15,112,97,116,104,95,115,101,112,97, + 114,97,116,111,114,115,41,2,114,5,0,0,0,218,1,112, + 115,2,0,0,0,32,32,114,7,0,0,0,218,10,60,108, + 105,115,116,99,111,109,112,62,122,30,95,112,97,116,104,95, + 106,111,105,110,46,60,108,111,99,97,108,115,62,46,60,108, + 105,115,116,99,111,109,112,62,119,0,0,0,243,2,0,0, + 0,26,0,114,56,0,0,0,115,26,0,0,0,16,62,16, + 62,16,62,47,48,60,61,16,62,17,18,17,42,26,41,17, + 42,16,62,16,62,16,62,114,10,0,0,0,41,13,114,4, + 0,0,0,218,3,109,97,112,114,21,0,0,0,218,15,95, + 112,97,116,104,95,115,112,108,105,116,114,111,111,116,114,29, + 0,0,0,218,14,112,97,116,104,95,115,101,112,95,116,117, + 112,108,101,218,8,101,110,100,115,119,105,116,104,114,52,0, + 0,0,114,53,0,0,0,218,8,112,97,116,104,95,115,101, + 112,218,8,99,97,115,101,102,111,108,100,218,6,97,112,112, + 101,110,100,218,4,106,111,105,110,41,5,218,10,112,97,116, + 104,95,112,97,114,116,115,218,4,114,111,111,116,218,4,112, + 97,116,104,90,8,110,101,119,95,114,111,111,116,218,4,116, + 97,105,108,115,5,0,0,0,32,32,32,32,32,114,7,0, + 0,0,218,10,95,112,97,116,104,95,106,111,105,110,114,69, + 0,0,0,96,0,0,0,115,42,0,0,0,4,2,4,1, + 12,1,8,1,4,1,4,1,20,1,20,1,14,1,12,1, + 10,1,16,1,4,3,8,1,12,2,8,2,12,1,12,1, + 20,1,8,2,14,1,115,60,0,0,0,2,2,6,1,10, + 1,10,1,4,1,4,1,10,1,4,14,6,242,8,1,2, + 13,8,243,2,13,14,244,12,1,8,1,2,10,14,247,2, + 6,4,253,8,1,12,2,8,2,12,1,12,1,10,1,2, + 2,6,254,10,2,14,1,115,226,0,0,0,16,26,9,22, + 20,22,20,22,12,15,16,26,12,27,31,32,12,32,9,33, + 20,30,31,32,20,33,13,33,16,18,9,13,16,18,9,13, + 31,34,35,38,35,54,56,66,31,67,9,34,9,34,13,27, + 13,21,23,27,16,24,16,51,36,50,16,51,13,34,55,63, + 55,88,73,87,55,88,13,34,24,32,24,56,40,55,24,56, + 24,64,60,64,17,21,25,33,36,40,25,40,24,41,17,21, + 17,21,18,26,18,40,36,39,18,40,13,34,20,24,20,35, + 20,35,39,47,39,58,39,58,20,58,17,38,28,36,21,25, + 29,33,28,34,21,25,21,25,21,25,21,38,33,37,21,38, + 21,38,21,38,24,32,24,40,36,40,17,21,17,21,17,34, + 29,33,17,34,17,34,17,34,16,62,16,62,52,56,16,62, + 16,62,9,13,12,15,16,20,12,21,25,26,12,26,9,35, + 35,39,40,41,35,42,9,35,20,24,27,35,20,35,13,35, + 16,20,23,31,23,42,37,41,23,42,16,42,9,42,114,10, + 0,0,0,99,0,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,7,0,0,0,115,18,0,0,0,116,0,160, + 1,100,1,132,0,124,0,68,0,131,1,161,1,83,0,41, + 2,114,49,0,0,0,99,1,0,0,0,0,0,0,0,0, + 0,0,0,5,0,0,0,19,0,0,0,114,50,0,0,0, + 114,13,0,0,0,114,51,0,0,0,41,2,114,5,0,0, + 0,218,4,112,97,114,116,115,2,0,0,0,32,32,114,7, + 0,0,0,114,55,0,0,0,122,30,95,112,97,116,104,95, + 106,111,105,110,46,60,108,111,99,97,108,115,62,46,60,108, + 105,115,116,99,111,109,112,62,128,0,0,0,115,6,0,0, + 0,6,0,4,1,16,255,115,6,0,0,0,12,1,8,255, + 6,1,115,26,0,0,0,30,62,30,62,30,62,35,39,57, + 61,30,62,31,35,31,59,43,58,31,59,30,62,30,62,30, + 62,114,10,0,0,0,41,2,114,61,0,0,0,114,64,0, + 0,0,41,1,114,65,0,0,0,115,1,0,0,0,32,114, + 7,0,0,0,114,69,0,0,0,114,69,0,0,0,126,0, + 0,0,115,6,0,0,0,8,2,2,1,8,255,115,4,0, + 0,0,2,2,16,1,115,18,0,0,0,16,24,16,63,30, + 62,30,62,43,53,30,62,30,62,16,63,9,63,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,243,28,0,0,0,116,0,124,0, - 131,1,100,1,107,2,115,8,74,0,130,1,116,1,160,2, - 124,0,100,2,161,2,83,0,41,4,122,47,67,111,110,118, - 101,114,116,32,52,32,98,121,116,101,115,32,105,110,32,108, - 105,116,116,108,101,45,101,110,100,105,97,110,32,116,111,32, - 97,110,32,105,110,116,101,103,101,114,46,114,34,0,0,0, - 114,35,0,0,0,78,169,3,114,4,0,0,0,114,36,0, - 0,0,218,10,102,114,111,109,95,98,121,116,101,115,169,1, - 218,4,100,97,116,97,115,1,0,0,0,32,114,7,0,0, - 0,218,14,95,117,110,112,97,99,107,95,117,105,110,116,51, - 50,114,45,0,0,0,84,0,0,0,243,4,0,0,0,16, - 2,12,1,114,46,0,0,0,115,28,0,0,0,12,15,16, - 20,12,21,25,26,12,26,5,26,5,26,5,26,12,15,12, - 42,27,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,4,0,0,0,3, - 0,0,0,114,40,0,0,0,41,4,122,47,67,111,110,118, - 101,114,116,32,50,32,98,121,116,101,115,32,105,110,32,108, - 105,116,116,108,101,45,101,110,100,105,97,110,32,116,111,32, - 97,110,32,105,110,116,101,103,101,114,46,233,2,0,0,0, - 114,35,0,0,0,78,114,41,0,0,0,114,43,0,0,0, - 115,1,0,0,0,32,114,7,0,0,0,218,14,95,117,110, - 112,97,99,107,95,117,105,110,116,49,54,114,48,0,0,0, - 89,0,0,0,114,46,0,0,0,114,46,0,0,0,115,28, - 0,0,0,12,15,16,20,12,21,25,26,12,26,5,26,5, - 26,5,26,12,15,12,42,27,31,33,41,12,42,5,42,114, - 10,0,0,0,99,0,0,0,0,0,0,0,0,0,0,0, - 0,4,0,0,0,7,0,0,0,115,226,0,0,0,124,0, - 115,4,100,1,83,0,116,0,124,0,131,1,100,2,107,2, - 114,14,124,0,100,3,25,0,83,0,100,1,125,1,103,0, - 125,2,116,1,116,2,106,3,124,0,131,2,68,0,93,61, - 92,2,125,3,125,4,124,3,160,4,116,5,161,1,115,38, - 124,3,160,6,116,5,161,1,114,51,124,3,160,7,116,8, - 161,1,112,44,124,1,125,1,116,9,124,4,23,0,103,1, - 125,2,113,24,124,3,160,6,100,4,161,1,114,76,124,1, - 160,10,161,0,124,3,160,10,161,0,107,3,114,70,124,3, - 125,1,124,4,103,1,125,2,113,24,124,2,160,11,124,4, - 161,1,1,0,113,24,124,3,112,79,124,1,125,1,124,2, - 160,11,124,4,161,1,1,0,113,24,100,5,132,0,124,2, - 68,0,131,1,125,2,116,0,124,2,131,1,100,2,107,2, - 114,106,124,2,100,3,25,0,115,106,124,1,116,9,23,0, - 83,0,124,1,116,9,160,12,124,2,161,1,23,0,83,0, - 41,7,250,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,106,111,105,110, - 40,41,46,114,11,0,0,0,114,3,0,0,0,114,0,0, - 0,0,114,12,0,0,0,99,1,0,0,0,0,0,0,0, - 0,0,0,0,5,0,0,0,19,0,0,0,243,26,0,0, - 0,103,0,124,0,93,9,125,1,124,1,114,2,124,1,160, - 0,116,1,161,1,145,2,113,2,83,0,114,13,0,0,0, - 169,2,218,6,114,115,116,114,105,112,218,15,112,97,116,104, - 95,115,101,112,97,114,97,116,111,114,115,41,2,114,5,0, - 0,0,218,1,112,115,2,0,0,0,32,32,114,7,0,0, - 0,218,10,60,108,105,115,116,99,111,109,112,62,122,30,95, - 112,97,116,104,95,106,111,105,110,46,60,108,111,99,97,108, - 115,62,46,60,108,105,115,116,99,111,109,112,62,119,0,0, - 0,243,2,0,0,0,26,0,114,56,0,0,0,115,26,0, - 0,0,16,62,16,62,16,62,47,48,60,61,16,62,17,18, - 17,42,26,41,17,42,16,62,16,62,16,62,114,10,0,0, - 0,78,41,13,114,4,0,0,0,218,3,109,97,112,114,21, - 0,0,0,218,15,95,112,97,116,104,95,115,112,108,105,116, - 114,111,111,116,114,29,0,0,0,218,14,112,97,116,104,95, - 115,101,112,95,116,117,112,108,101,218,8,101,110,100,115,119, - 105,116,104,114,52,0,0,0,114,53,0,0,0,218,8,112, - 97,116,104,95,115,101,112,218,8,99,97,115,101,102,111,108, - 100,218,6,97,112,112,101,110,100,218,4,106,111,105,110,41, - 5,218,10,112,97,116,104,95,112,97,114,116,115,218,4,114, - 111,111,116,218,4,112,97,116,104,90,8,110,101,119,95,114, - 111,111,116,218,4,116,97,105,108,115,5,0,0,0,32,32, - 32,32,32,114,7,0,0,0,218,10,95,112,97,116,104,95, - 106,111,105,110,114,69,0,0,0,96,0,0,0,115,42,0, - 0,0,4,2,4,1,12,1,8,1,4,1,4,1,20,1, - 20,1,14,1,12,1,10,1,16,1,4,3,8,1,12,2, - 8,2,12,1,12,1,20,1,8,2,14,1,115,60,0,0, - 0,2,2,6,1,10,1,10,1,4,1,4,1,10,1,4, - 14,6,242,8,1,2,13,8,243,2,13,14,244,12,1,8, - 1,2,10,14,247,2,6,4,253,8,1,12,2,8,2,12, - 1,12,1,10,1,2,2,6,254,10,2,14,1,115,226,0, - 0,0,16,26,9,22,20,22,20,22,12,15,16,26,12,27, - 31,32,12,32,9,33,20,30,31,32,20,33,13,33,16,18, - 9,13,16,18,9,13,31,34,35,38,35,54,56,66,31,67, - 9,34,9,34,13,27,13,21,23,27,16,24,16,51,36,50, - 16,51,13,34,55,63,55,88,73,87,55,88,13,34,24,32, - 24,56,40,55,24,56,24,64,60,64,17,21,25,33,36,40, - 25,40,24,41,17,21,17,21,18,26,18,40,36,39,18,40, - 13,34,20,24,20,35,20,35,39,47,39,58,39,58,20,58, - 17,38,28,36,21,25,29,33,28,34,21,25,21,25,21,25, - 21,38,33,37,21,38,21,38,21,38,24,32,24,40,36,40, - 17,21,17,21,17,34,29,33,17,34,17,34,17,34,16,62, - 16,62,52,56,16,62,16,62,9,13,12,15,16,20,12,21, - 25,26,12,26,9,35,35,39,40,41,35,42,9,35,20,24, - 27,35,20,35,13,35,16,20,23,31,23,42,37,41,23,42, - 16,42,9,42,114,10,0,0,0,99,0,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,7,0,0,0,115,18, - 0,0,0,116,0,160,1,100,1,132,0,124,0,68,0,131, - 1,161,1,83,0,41,3,114,49,0,0,0,99,1,0,0, - 0,0,0,0,0,0,0,0,0,5,0,0,0,19,0,0, - 0,114,50,0,0,0,114,13,0,0,0,114,51,0,0,0, - 41,2,114,5,0,0,0,218,4,112,97,114,116,115,2,0, - 0,0,32,32,114,7,0,0,0,114,55,0,0,0,122,30, - 95,112,97,116,104,95,106,111,105,110,46,60,108,111,99,97, - 108,115,62,46,60,108,105,115,116,99,111,109,112,62,128,0, - 0,0,115,6,0,0,0,6,0,4,1,16,255,115,6,0, - 0,0,12,1,8,255,6,1,115,26,0,0,0,30,62,30, - 62,30,62,35,39,57,61,30,62,31,35,31,59,43,58,31, - 59,30,62,30,62,30,62,114,10,0,0,0,78,41,2,114, - 61,0,0,0,114,64,0,0,0,41,1,114,65,0,0,0, - 115,1,0,0,0,32,114,7,0,0,0,114,69,0,0,0, - 114,69,0,0,0,126,0,0,0,115,6,0,0,0,8,2, - 2,1,8,255,115,4,0,0,0,2,2,16,1,115,18,0, - 0,0,16,24,16,63,30,62,30,62,43,53,30,62,30,62, - 16,63,9,63,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,66, - 0,0,0,135,0,116,0,136,0,102,1,100,1,132,8,116, - 1,68,0,131,1,131,1,125,1,124,1,100,2,107,0,114, - 19,100,3,137,0,102,2,83,0,137,0,100,4,124,1,133, - 2,25,0,137,0,124,1,100,5,23,0,100,4,133,2,25, - 0,102,2,83,0,41,6,122,32,82,101,112,108,97,99,101, + 0,0,0,3,0,0,0,115,66,0,0,0,135,0,116,0, + 136,0,102,1,100,1,132,8,116,1,68,0,131,1,131,1, + 125,1,124,1,100,2,107,0,114,19,100,3,137,0,102,2, + 83,0,137,0,100,4,124,1,133,2,25,0,137,0,124,1, + 100,5,23,0,100,4,133,2,25,0,102,2,83,0,41,6, + 122,32,82,101,112,108,97,99,101,109,101,110,116,32,102,111, + 114,32,111,115,46,112,97,116,104,46,115,112,108,105,116,40, + 41,46,99,1,0,0,0,0,0,0,0,0,0,0,0,4, + 0,0,0,51,0,0,0,115,26,0,0,0,129,0,124,0, + 93,8,125,1,137,2,160,0,124,1,161,1,86,0,1,0, + 113,2,100,0,83,0,169,1,78,41,1,218,5,114,102,105, + 110,100,41,3,114,5,0,0,0,114,54,0,0,0,114,67, + 0,0,0,115,3,0,0,0,32,32,128,114,7,0,0,0, + 114,8,0,0,0,122,30,95,112,97,116,104,95,115,112,108, + 105,116,46,60,108,111,99,97,108,115,62,46,60,103,101,110, + 101,120,112,114,62,134,0,0,0,243,4,0,0,0,2,128, + 24,0,114,73,0,0,0,115,26,0,0,0,0,0,12,52, + 12,52,31,32,13,17,13,26,24,25,13,26,12,52,12,52, + 12,52,12,52,12,52,114,10,0,0,0,114,0,0,0,0, + 114,11,0,0,0,78,114,3,0,0,0,41,2,218,3,109, + 97,120,114,53,0,0,0,41,2,114,67,0,0,0,218,1, + 105,115,2,0,0,0,96,32,114,7,0,0,0,218,11,95, + 112,97,116,104,95,115,112,108,105,116,114,76,0,0,0,132, + 0,0,0,115,10,0,0,0,2,128,20,2,8,1,8,1, + 28,1,115,10,0,0,0,2,128,20,2,6,1,10,1,28, + 1,115,66,0,0,0,0,0,9,12,12,52,12,52,12,52, + 12,52,36,51,12,52,12,52,9,52,5,6,8,9,12,13, + 8,13,5,24,16,18,20,24,16,24,9,24,12,16,17,19, + 18,19,17,19,12,20,22,26,27,28,31,32,27,32,27,33, + 27,33,22,34,12,34,5,34,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,116,0,106,1,124,0,131,1,83, + 0,41,1,122,126,83,116,97,116,32,116,104,101,32,112,97, + 116,104,46,10,10,32,32,32,32,77,97,100,101,32,97,32, + 115,101,112,97,114,97,116,101,32,102,117,110,99,116,105,111, + 110,32,116,111,32,109,97,107,101,32,105,116,32,101,97,115, + 105,101,114,32,116,111,32,111,118,101,114,114,105,100,101,32, + 105,110,32,101,120,112,101,114,105,109,101,110,116,115,10,32, + 32,32,32,40,101,46,103,46,32,99,97,99,104,101,32,115, + 116,97,116,32,114,101,115,117,108,116,115,41,46,10,10,32, + 32,32,32,41,2,114,21,0,0,0,90,4,115,116,97,116, + 169,1,114,67,0,0,0,115,1,0,0,0,32,114,7,0, + 0,0,218,10,95,112,97,116,104,95,115,116,97,116,114,78, + 0,0,0,140,0,0,0,243,2,0,0,0,10,7,114,79, + 0,0,0,115,10,0,0,0,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,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,3,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,70,105,0,240,0,0,41,3, + 114,78,0,0,0,218,7,79,83,69,114,114,111,114,218,7, + 115,116,95,109,111,100,101,41,3,114,67,0,0,0,218,4, + 109,111,100,101,90,9,115,116,97,116,95,105,110,102,111,115, + 3,0,0,0,32,32,32,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,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, + 2,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,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,2,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,115,112,108,105,116,40,41,46,99,1,0,0,0,0,0, - 0,0,0,0,0,0,4,0,0,0,51,0,0,0,115,26, - 0,0,0,129,0,124,0,93,8,125,1,137,2,160,0,124, - 1,161,1,86,0,1,0,113,2,100,0,83,0,169,1,78, - 41,1,218,5,114,102,105,110,100,41,3,114,5,0,0,0, - 114,54,0,0,0,114,67,0,0,0,115,3,0,0,0,32, - 32,128,114,7,0,0,0,114,8,0,0,0,122,30,95,112, - 97,116,104,95,115,112,108,105,116,46,60,108,111,99,97,108, - 115,62,46,60,103,101,110,101,120,112,114,62,134,0,0,0, - 243,4,0,0,0,2,128,24,0,114,73,0,0,0,115,26, - 0,0,0,0,0,12,52,12,52,31,32,13,17,13,26,24, - 25,13,26,12,52,12,52,12,52,12,52,12,52,114,10,0, - 0,0,114,0,0,0,0,114,11,0,0,0,78,114,3,0, - 0,0,41,2,218,3,109,97,120,114,53,0,0,0,41,2, - 114,67,0,0,0,218,1,105,115,2,0,0,0,96,32,114, - 7,0,0,0,218,11,95,112,97,116,104,95,115,112,108,105, - 116,114,76,0,0,0,132,0,0,0,115,10,0,0,0,2, - 128,20,2,8,1,8,1,28,1,115,10,0,0,0,2,128, - 20,2,6,1,10,1,28,1,115,66,0,0,0,0,0,9, - 12,12,52,12,52,12,52,12,52,36,51,12,52,12,52,9, - 52,5,6,8,9,12,13,8,13,5,24,16,18,20,24,16, - 24,9,24,12,16,17,19,18,19,17,19,12,20,22,26,27, - 28,31,32,27,32,27,33,27,33,22,34,12,34,5,34,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,116,0, - 106,1,124,0,131,1,83,0,41,2,122,126,83,116,97,116, - 32,116,104,101,32,112,97,116,104,46,10,10,32,32,32,32, - 77,97,100,101,32,97,32,115,101,112,97,114,97,116,101,32, - 102,117,110,99,116,105,111,110,32,116,111,32,109,97,107,101, - 32,105,116,32,101,97,115,105,101,114,32,116,111,32,111,118, - 101,114,114,105,100,101,32,105,110,32,101,120,112,101,114,105, - 109,101,110,116,115,10,32,32,32,32,40,101,46,103,46,32, - 99,97,99,104,101,32,115,116,97,116,32,114,101,115,117,108, - 116,115,41,46,10,10,32,32,32,32,78,41,2,114,21,0, - 0,0,90,4,115,116,97,116,169,1,114,67,0,0,0,115, - 1,0,0,0,32,114,7,0,0,0,218,10,95,112,97,116, - 104,95,115,116,97,116,114,78,0,0,0,140,0,0,0,243, - 2,0,0,0,10,7,114,79,0,0,0,115,10,0,0,0, - 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,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, - 70,105,0,240,0,0,78,41,3,114,78,0,0,0,218,7, - 79,83,69,114,114,111,114,218,7,115,116,95,109,111,100,101, - 41,3,114,67,0,0,0,218,4,109,111,100,101,90,9,115, - 116,97,116,95,105,110,102,111,115,3,0,0,0,32,32,32, - 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,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,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, + 46,105,115,100,105,114,46,105,0,64,0,0,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,7,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,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,1,114,88,0,0,0,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,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, - 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,33,37,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,58,74,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,38,42,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,52,64,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,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,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, + 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, + 33,37,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, + 58,74,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, + 38,42,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,52,64,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,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,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,3,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,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,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,42,46,19,61, - 19,61,52,57,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,62,66,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,36,41,19,57,19,57, - 49,53,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, - 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,44,48,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,52,56,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,63,67,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, + 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,42,46, + 19,61,19,61,52,57,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,62,66,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,36,41,19,57, + 19,57,49,53,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,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,44, + 48,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,52,56,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,63,67, + 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,2,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,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,3,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,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, @@ -1501,7 +1500,7 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 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, + 6,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, @@ -1511,1852 +1510,1851 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 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,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, - 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,196,0,0,0,114,186,0,0,0,114, - 172,0,0,0,114,3,0,0,0,114,0,0,0,0,114,47, - 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,145,0,0,0,114,136, - 0,0,0,114,138,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, - 209,0,0,0,114,125,0,0,0,114,111,0,0,0,114,6, - 1,0,0,114,80,0,0,0,114,36,0,0,0,114,11,1, - 0,0,114,179,0,0,0,218,10,109,101,109,111,114,121,118, - 105,101,119,114,190,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, - 184,0,0,0,218,17,95,82,65,87,95,77,65,71,73,67, - 95,78,85,77,66,69,82,114,185,0,0,0,114,183,0,0, - 0,114,146,0,0,0,114,177,0,0,0,114,162,0,0,0, - 114,176,0,0,0,114,192,0,0,0,114,17,1,0,0,114, - 18,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,199,0,0,0,114,197, - 0,0,0,114,4,0,0,0,114,9,1,0,0,41,15,114, - 147,0,0,0,114,166,0,0,0,114,138,0,0,0,114,181, - 0,0,0,114,203,0,0,0,114,184,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,136,0,0,0,218,2,115,116, - 114,44,0,0,0,114,178,0,0,0,114,19,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,115,15,0,0,0,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,114,7,0,0, - 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,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, - 3,2,1,4,1,2,253,2,35,12,226,16,1,12,1,2, - 1,2,19,12,238,8,1,2,9,2,248,2,8,8,249,2, - 7,10,250,4,1,2,1,2,1,2,1,2,253,8,4,6, - 1,2,128,2,2,2,1,2,1,6,1,2,1,2,1,4, - 1,4,128,2,2,6,255,14,1,2,128,2,2,2,1,4, - 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,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,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, + 47,0,0,0,218,8,95,95,105,110,105,116,95,95,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,1,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,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,1,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,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,2,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,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,1,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,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,4,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,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,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, + 196,0,0,0,114,186,0,0,0,114,172,0,0,0,114,3, + 0,0,0,114,0,0,0,0,114,47,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,145,0,0,0,114,136,0,0,0,114,138,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,209,0,0,0,114,125, + 0,0,0,114,111,0,0,0,114,6,1,0,0,114,80,0, + 0,0,114,36,0,0,0,114,11,1,0,0,114,179,0,0, + 0,218,10,109,101,109,111,114,121,118,105,101,119,114,190,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,184,0,0,0,218,17, + 95,82,65,87,95,77,65,71,73,67,95,78,85,77,66,69, + 82,114,185,0,0,0,114,183,0,0,0,114,146,0,0,0, + 114,177,0,0,0,114,162,0,0,0,114,176,0,0,0,114, + 192,0,0,0,114,17,1,0,0,114,18,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,199,0,0,0,114,197,0,0,0,114,4,0, + 0,0,114,9,1,0,0,41,15,114,147,0,0,0,114,166, + 0,0,0,114,138,0,0,0,114,181,0,0,0,114,203,0, + 0,0,114,184,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,136,0,0,0,218,2,115,116,114,44,0,0,0,114, + 178,0,0,0,114,19,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,115,15,0,0,0,32,32,32,32,32,32,32,32,32, + 32,32,32,32,32,32,114,7,0,0,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,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,3,2,1,4,1,2, + 253,2,35,12,226,16,1,12,1,2,1,2,19,12,238,8, + 1,2,9,2,248,2,8,8,249,2,7,10,250,4,1,2, + 1,2,1,2,1,2,253,8,4,6,1,2,128,2,2,2, + 1,2,1,6,1,2,1,2,1,4,1,4,128,2,2,6, + 255,14,1,2,128,2,2,2,1,4,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,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,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,1,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, + 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,1,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,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,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,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, + 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, - 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,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, + 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, + 2,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, + 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,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,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,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,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, + 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,2,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,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,3,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,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,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, + 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,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, + 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,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,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,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,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,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,5,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,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,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,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,3,122,115,82,101,116,117,114,110,32, + 114,101,112,114,32,102,111,114,32,116,104,101,32,109,111,100, + 117,108,101,46,10,10,32,32,32,32,32,32,32,32,84,104, + 101,32,109,101,116,104,111,100,32,105,115,32,100,101,112,114, + 101,99,97,116,101,100,46,32,32,84,104,101,32,105,109,112, + 111,114,116,32,109,97,99,104,105,110,101,114,121,32,100,111, + 101,115,32,116,104,101,32,106,111,98,32,105,116,115,101,108, + 102,46,10,10,32,32,32,32,32,32,32,32,122,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,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,2,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,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, - 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, + 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,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, + 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, + 3,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,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,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, - 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,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,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, + 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,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, + 2,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,3,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,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, @@ -3369,236 +3367,236 @@ const unsigned char _Py_M__importlib__bootstrap_external[] = { 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,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, + 0,0,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, + 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,1,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,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/frozen_modules/zipimport.h b/Python/frozen_modules/zipimport.h index b4e2e85283cf49..250131b3c59e1c 100644 --- a/Python/frozen_modules/zipimport.h +++ b/Python/frozen_modules/zipimport.h @@ -266,7 +266,7 @@ const unsigned char _Py_M__zipimport[] = { 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, + 25,0,83,0,41,3,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, @@ -302,1162 +302,1162 @@ const unsigned char _Py_M__zipimport[] = { 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,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, + 0,0,0,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,1,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,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, + 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,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,55,63,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,55,63,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,48,56,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,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,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,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, - 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,23,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,60,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,71, - 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, - 20,0,0,0,114,21,0,0,0,114,22,0,0,0,114,31, - 0,0,0,114,49,0,0,0,114,84,0,0,0,41,26,114, - 30,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,34,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,48,0, - 0,0,114,14,0,0,0,218,1,116,115,26,0,0,0,32, + 98,101,32,105,109,112,111,114,116,101,100,46,10,32,32,32, + 32,32,32,32,32,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,1,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,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,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,55,63,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,55,63,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,48,56,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, + 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,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,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,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, + 23,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,60,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,71,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,20,0,0, + 0,114,21,0,0,0,114,22,0,0,0,114,31,0,0,0, + 114,49,0,0,0,114,84,0,0,0,41,26,114,30,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, + 34,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,48,0,0,0,114, + 14,0,0,0,218,1,116,115,26,0,0,0,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,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,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,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, - 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,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,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,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,15,29,30,65,54, - 61,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,19,33,34,69,58,65,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,58, - 65,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,23,37,38,73,62,69,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,23, - 37,38,73,62,69,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,57,64,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, - 51,16,51,13,51,23,37,38,70,59,66,38,70,38,70,43, - 50,23,51,23,51,17,51,31,40,43,46,47,51,43,52,31, - 52,55,58,31,58,13,28,23,37,38,44,45,47,48,50,45, - 50,38,51,23,52,9,20,25,39,40,46,47,49,50,52,47, - 52,40,53,25,54,9,22,12,27,30,41,12,41,9,91,19, - 33,34,76,65,72,34,76,34,76,83,90,19,91,19,91,13, - 91,12,27,30,43,12,43,9,93,19,33,34,78,67,74,34, - 78,34,78,85,92,19,93,19,93,13,93,9,24,28,39,9, - 39,9,24,22,37,40,53,22,53,9,19,12,22,25,26,12, - 26,9,101,9,101,19,33,34,86,75,82,34,86,34,86,93, - 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,58,65,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,66,73,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,62,69,38,73,38,73,80,87,23,88,23,88,17, - 88,13,88,0,0,16,19,20,24,16,25,29,38,16,38,13, - 88,13,88,23,37,38,73,62,69,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,66,73,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,62,69,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, + 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,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, + 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,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,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,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,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,15,29,30,65,54,61,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,19,33,34,69,58,65,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,58,65,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, + 23,37,38,73,62,69,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,23,37,38,73, + 62,69,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,57,64,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,51,16,51, + 13,51,23,37,38,70,59,66,38,70,38,70,43,50,23,51, + 23,51,17,51,31,40,43,46,47,51,43,52,31,52,55,58, + 31,58,13,28,23,37,38,44,45,47,48,50,45,50,38,51, + 23,52,9,20,25,39,40,46,47,49,50,52,47,52,40,53, + 25,54,9,22,12,27,30,41,12,41,9,91,19,33,34,76, + 65,72,34,76,34,76,83,90,19,91,19,91,13,91,12,27, + 30,43,12,43,9,93,19,33,34,78,67,74,34,78,34,78, + 85,92,19,93,19,93,13,93,9,24,28,39,9,39,9,24, + 22,37,40,53,22,53,9,19,12,22,25,26,12,26,9,101, + 9,101,19,33,34,86,75,82,34,86,34,86,93,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,58,65, + 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,66,73,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, + 62,69,38,73,38,73,80,87,23,88,23,88,17,88,13,88, + 0,0,16,19,20,24,16,25,29,38,16,38,13,88,13,88, + 23,37,38,73,62,69,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,66,73,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,62,69,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, + 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,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,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,115,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,151,0,0,0,105,241,255,255,255,41,11, + 114,3,0,0,0,114,122,0,0,0,114,123,0,0,0,114, + 124,0,0,0,114,23,0,0,0,114,126,0,0,0,114,60, + 0,0,0,114,131,0,0,0,114,1,0,0,0,114,156,0, + 0,0,114,155,0,0,0,41,17,114,30,0,0,0,114,63, + 0,0,0,90,8,100,97,116,97,112,97,116,104,114,142,0, + 0,0,114,146,0,0,0,114,137,0,0,0,114,149,0,0, + 0,114,143,0,0,0,114,144,0,0,0,114,145,0,0,0, + 114,135,0,0,0,114,136,0,0,0,114,147,0,0,0,114, + 148,0,0,0,114,139,0,0,0,90,8,114,97,119,95,100, + 97,116,97,114,153,0,0,0,115,17,0,0,0,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,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,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,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, + 58,65,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,60,67,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,58,65,34,69,34,69,76,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,46,54,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,44,52,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,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,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,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, - 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,115,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,151,0,0,0,105,241,255,255, - 255,41,11,114,3,0,0,0,114,122,0,0,0,114,123,0, - 0,0,114,124,0,0,0,114,23,0,0,0,114,126,0,0, - 0,114,60,0,0,0,114,131,0,0,0,114,1,0,0,0, - 114,156,0,0,0,114,155,0,0,0,41,17,114,30,0,0, - 0,114,63,0,0,0,90,8,100,97,116,97,112,97,116,104, - 114,142,0,0,0,114,146,0,0,0,114,137,0,0,0,114, - 149,0,0,0,114,143,0,0,0,114,144,0,0,0,114,145, - 0,0,0,114,135,0,0,0,114,136,0,0,0,114,147,0, - 0,0,114,148,0,0,0,114,139,0,0,0,90,8,114,97, - 119,95,100,97,116,97,114,153,0,0,0,115,17,0,0,0, - 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,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,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,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,58,65,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,60,67,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,58,65,34,69,34,69,76, - 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,46,54,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,44,52,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,55,63,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, - 17,95,102,114,111,122,101,110,95,105,109,112,111,114,116,108, - 105,98,114,49,0,0,0,114,161,0,0,0,114,122,0,0, - 0,114,165,0,0,0,114,75,0,0,0,114,143,0,0,0, - 114,36,0,0,0,90,7,95,95,97,108,108,95,95,114,21, - 0,0,0,90,15,112,97,116,104,95,115,101,112,97,114,97, - 116,111,114,115,114,19,0,0,0,114,83,0,0,0,114,3, - 0,0,0,114,26,0,0,0,218,4,116,121,112,101,114,78, - 0,0,0,114,125,0,0,0,114,127,0,0,0,114,129,0, - 0,0,90,13,95,76,111,97,100,101,114,66,97,115,105,99, - 115,114,4,0,0,0,114,101,0,0,0,114,40,0,0,0, - 114,41,0,0,0,114,39,0,0,0,114,28,0,0,0,114, - 134,0,0,0,114,154,0,0,0,114,156,0,0,0,114,61, - 0,0,0,114,159,0,0,0,114,168,0,0,0,218,8,95, - 95,99,111,100,101,95,95,114,166,0,0,0,114,172,0,0, - 0,114,175,0,0,0,114,184,0,0,0,114,164,0,0,0, - 114,162,0,0,0,114,52,0,0,0,114,9,0,0,0,114, - 10,0,0,0,114,11,0,0,0,218,8,60,109,111,100,117, - 108,101,62,114,193,0,0,0,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,14,3,4,4,8, - 2,4,2,4,1,4,1,16,2,0,127,0,127,12,50,12, - 1,2,1,2,1,4,252,6,9,6,4,6,9,6,31,2, - 126,2,254,4,29,6,5,6,21,6,46,6,8,10,40,6, - 5,6,7,6,6,6,13,6,19,10,15,115,110,0,0,0, - 4,12,8,4,16,1,8,1,8,1,8,1,8,1,8,1, - 8,1,8,1,8,2,6,3,14,1,8,4,2,255,4,1, - 4,3,8,2,4,2,4,1,4,1,0,127,0,127,8,43, - 0,129,0,129,4,215,0,127,0,127,4,41,12,9,12,1, - 2,1,2,1,2,1,2,251,6,10,6,9,6,9,0,127, - 6,14,2,34,2,230,4,29,6,23,6,43,6,8,6,44, - 10,2,6,8,6,6,6,12,6,18,6,16,10,37,115,48, - 1,0,0,1,4,1,4,1,57,1,57,1,57,1,57,1, - 70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1, - 39,1,39,1,39,1,39,1,12,1,12,1,12,1,12,1, - 11,1,11,1,11,1,11,1,15,1,15,1,15,1,15,1, - 11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1, - 17,1,17,1,17,1,17,12,28,30,43,11,44,1,8,12, - 31,12,40,1,9,16,35,16,51,52,53,52,54,52,54,16, - 55,1,13,1,9,1,9,1,9,1,9,22,33,1,9,1, - 9,24,26,1,21,16,20,21,24,16,25,1,13,24,26,1, - 21,22,35,1,19,19,32,1,16,1,79,1,79,1,79,1, - 79,19,38,19,52,1,79,1,79,6,14,17,31,6,31,33, - 37,39,43,5,44,6,14,17,30,6,30,32,37,39,43,5, - 44,5,26,5,26,20,2,1,17,1,53,1,53,1,53,1, - 34,1,34,1,34,1,16,1,16,1,16,1,17,1,17,1, - 17,5,47,1,12,19,24,1,16,1,22,1,22,1,22,1, - 37,1,37,1,37,1,29,1,29,1,29,1,16,1,16,1, - 16,14,18,19,34,19,43,14,44,1,11,1,18,1,18,1, - 18,1,64,1,64,1,64,1,21,1,21,1,21,1,20,1, - 20,1,20,1,50,1,50,1,50,1,83,1,83,1,83,1, - 83,1,83,114,10,0,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,55,63,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,17,95,102, + 114,111,122,101,110,95,105,109,112,111,114,116,108,105,98,114, + 49,0,0,0,114,161,0,0,0,114,122,0,0,0,114,165, + 0,0,0,114,75,0,0,0,114,143,0,0,0,114,36,0, + 0,0,90,7,95,95,97,108,108,95,95,114,21,0,0,0, + 90,15,112,97,116,104,95,115,101,112,97,114,97,116,111,114, + 115,114,19,0,0,0,114,83,0,0,0,114,3,0,0,0, + 114,26,0,0,0,218,4,116,121,112,101,114,78,0,0,0, + 114,125,0,0,0,114,127,0,0,0,114,129,0,0,0,90, + 13,95,76,111,97,100,101,114,66,97,115,105,99,115,114,4, + 0,0,0,114,101,0,0,0,114,40,0,0,0,114,41,0, + 0,0,114,39,0,0,0,114,28,0,0,0,114,134,0,0, + 0,114,154,0,0,0,114,156,0,0,0,114,61,0,0,0, + 114,159,0,0,0,114,168,0,0,0,218,8,95,95,99,111, + 100,101,95,95,114,166,0,0,0,114,172,0,0,0,114,175, + 0,0,0,114,184,0,0,0,114,164,0,0,0,114,162,0, + 0,0,114,52,0,0,0,114,9,0,0,0,114,10,0,0, + 0,114,11,0,0,0,218,8,60,109,111,100,117,108,101,62, + 114,193,0,0,0,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,14,3,4,4,8,2,4,2, + 4,1,4,1,16,2,0,127,0,127,12,50,12,1,2,1, + 2,1,4,252,6,9,6,4,6,9,6,31,2,126,2,254, + 4,29,6,5,6,21,6,46,6,8,10,40,6,5,6,7, + 6,6,6,13,6,19,10,15,115,110,0,0,0,4,12,8, + 4,16,1,8,1,8,1,8,1,8,1,8,1,8,1,8, + 1,8,2,6,3,14,1,8,4,2,255,4,1,4,3,8, + 2,4,2,4,1,4,1,0,127,0,127,8,43,0,129,0, + 129,4,215,0,127,0,127,4,41,12,9,12,1,2,1,2, + 1,2,1,2,251,6,10,6,9,6,9,0,127,6,14,2, + 34,2,230,4,29,6,23,6,43,6,8,6,44,10,2,6, + 8,6,6,6,12,6,18,6,16,10,37,115,48,1,0,0, + 1,4,1,4,1,57,1,57,1,57,1,57,1,70,1,70, + 1,70,1,70,1,70,1,70,1,70,1,70,1,39,1,39, + 1,39,1,39,1,12,1,12,1,12,1,12,1,11,1,11, + 1,11,1,11,1,15,1,15,1,15,1,15,1,11,1,11, + 1,11,1,11,1,12,1,12,1,12,1,12,1,17,1,17, + 1,17,1,17,12,28,30,43,11,44,1,8,12,31,12,40, + 1,9,16,35,16,51,52,53,52,54,52,54,16,55,1,13, + 1,9,1,9,1,9,1,9,22,33,1,9,1,9,24,26, + 1,21,16,20,21,24,16,25,1,13,24,26,1,21,22,35, + 1,19,19,32,1,16,1,79,1,79,1,79,1,79,19,38, + 19,52,1,79,1,79,6,14,17,31,6,31,33,37,39,43, + 5,44,6,14,17,30,6,30,32,37,39,43,5,44,5,26, + 5,26,20,2,1,17,1,53,1,53,1,53,1,34,1,34, + 1,34,1,16,1,16,1,16,1,17,1,17,1,17,5,47, + 1,12,19,24,1,16,1,22,1,22,1,22,1,37,1,37, + 1,37,1,29,1,29,1,29,1,16,1,16,1,16,14,18, + 19,34,19,43,14,44,1,11,1,18,1,18,1,18,1,64, + 1,64,1,64,1,21,1,21,1,21,1,20,1,20,1,20, + 1,50,1,50,1,50,1,83,1,83,1,83,1,83,1,83, + 114,10,0,0,0, }; From webhook-mailer at python.org Thu Sep 2 10:44:58 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 14:44:58 -0000 Subject: [Python-checkins] [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) Message-ID: https://github.com/python/cpython/commit/a7ef15aae8608560bffeeaba412c10e52cab07dd commit: a7ef15aae8608560bffeeaba412c10e52cab07dd branch: main author: ?ukasz Langa committer: ambv date: 2021-09-02T16:44:50+02:00 summary: [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 669979f7c5d5d..b665c6079ab0a 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -748,6 +748,8 @@ The following exceptions are used as warning categories; see the (:pep:`565`). Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: PendingDeprecationWarning @@ -762,6 +764,8 @@ The following exceptions are used as warning categories; see the Ignored by the default warning filters. Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: SyntaxWarning From webhook-mailer at python.org Thu Sep 2 11:03:12 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 15:03:12 -0000 Subject: [Python-checkins] bpo-43613: Faster implementation of gzip.compress and gzip.decompress (GH-27941) Message-ID: https://github.com/python/cpython/commit/ea23e7820f02840368569db8082bd0ca4d59b62a commit: ea23e7820f02840368569db8082bd0ca4d59b62a branch: main author: Ruben Vorderman committer: ambv date: 2021-09-02T17:02:59+02:00 summary: bpo-43613: Faster implementation of gzip.compress and gzip.decompress (GH-27941) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Library/2021-03-24-09-40-02.bpo-43612.vMGZ4y.rst A Misc/NEWS.d/next/Library/2021-08-25-10-28-49.bpo-43613.WkYmI0.rst M Doc/library/gzip.rst M Doc/library/zlib.rst M Lib/gzip.py M Lib/test/test_zlib.py M Modules/clinic/zlibmodule.c.h M Modules/zlibmodule.c diff --git a/Doc/library/gzip.rst b/Doc/library/gzip.rst index 33c40676f747c..8cea2649ee6cb 100644 --- a/Doc/library/gzip.rst +++ b/Doc/library/gzip.rst @@ -174,19 +174,30 @@ The module defines the following items: Compress the *data*, returning a :class:`bytes` object containing the compressed data. *compresslevel* and *mtime* have the same meaning as in - the :class:`GzipFile` constructor above. + the :class:`GzipFile` constructor above. When *mtime* is set to ``0``, this + function is equivalent to :func:`zlib.compress` with *wbits* set to ``31``. + The zlib function is faster. .. versionadded:: 3.2 .. versionchanged:: 3.8 Added the *mtime* parameter for reproducible output. + .. versionchanged:: 3.11 + Speed is improved by compressing all data at once instead of in a + streamed fashion. Calls with *mtime* set to ``0`` are delegated to + :func:`zlib.compress` for better speed. .. function:: decompress(data) Decompress the *data*, returning a :class:`bytes` object containing the - uncompressed data. + uncompressed data. This function is capable of decompressing multi-member + gzip data (multiple gzip blocks concatenated together). When the data is + certain to contain only one member the :func:`zlib.decompress` function with + *wbits* set to 31 is faster. .. versionadded:: 3.2 - + .. versionchanged:: 3.11 + Speed is improved by decompressing members at once in memory instead of in + a streamed fashion. .. _gzip-usage-examples: diff --git a/Doc/library/zlib.rst b/Doc/library/zlib.rst index ec60ea24db662..793c90f3c4e7a 100644 --- a/Doc/library/zlib.rst +++ b/Doc/library/zlib.rst @@ -47,7 +47,7 @@ The available exception and functions in this module are: platforms, use ``adler32(data) & 0xffffffff``. -.. function:: compress(data, /, level=-1) +.. function:: compress(data, /, level=-1, wbits=MAX_WBITS) Compresses the bytes in *data*, returning a bytes object containing compressed data. *level* is an integer from ``0`` to ``9`` or ``-1`` controlling the level of compression; @@ -55,11 +55,35 @@ The available exception and functions in this module are: is slowest and produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a default compromise between speed and compression (currently equivalent to level 6). + + .. _compress-wbits: + + The *wbits* argument controls the size of the history buffer (or the + "window size") used when compressing data, and whether a header and + trailer is included in the output. It can take several ranges of values, + defaulting to ``15`` (MAX_WBITS): + + * +9 to +15: The base-two logarithm of the window size, which + therefore ranges between 512 and 32768. Larger values produce + better compression at the expense of greater memory usage. The + resulting output will include a zlib-specific header and trailer. + + * ?9 to ?15: Uses the absolute value of *wbits* as the + window size logarithm, while producing a raw output stream with no + header or trailing checksum. + + * +25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the + window size logarithm, while including a basic :program:`gzip` header + and trailing checksum in the output. + Raises the :exc:`error` exception if any error occurs. .. versionchanged:: 3.6 *level* can now be used as a keyword parameter. + .. versionchanged:: 3.11 + The *wbits* parameter is now available to set window bits and + compression type. .. function:: compressobj(level=-1, method=DEFLATED, wbits=MAX_WBITS, memLevel=DEF_MEM_LEVEL, strategy=Z_DEFAULT_STRATEGY[, zdict]) @@ -76,23 +100,9 @@ The available exception and functions in this module are: *method* is the compression algorithm. Currently, the only supported value is :const:`DEFLATED`. - The *wbits* argument controls the size of the history buffer (or the - "window size") used when compressing data, and whether a header and - trailer is included in the output. It can take several ranges of values, - defaulting to ``15`` (MAX_WBITS): - - * +9 to +15: The base-two logarithm of the window size, which - therefore ranges between 512 and 32768. Larger values produce - better compression at the expense of greater memory usage. The - resulting output will include a zlib-specific header and trailer. - - * ?9 to ?15: Uses the absolute value of *wbits* as the - window size logarithm, while producing a raw output stream with no - header or trailing checksum. - - * +25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the - window size logarithm, while including a basic :program:`gzip` header - and trailing checksum in the output. + The *wbits* parameter controls the size of the history buffer (or the + "window size"), and what header and trailer format will be used. It has + the same meaning as `described for compress() <#compress-wbits>`__. The *memLevel* argument controls the amount of memory used for the internal compression state. Valid values range from ``1`` to ``9``. diff --git a/Lib/gzip.py b/Lib/gzip.py index 3d837b744800e..0dddb51553fab 100644 --- a/Lib/gzip.py +++ b/Lib/gzip.py @@ -403,6 +403,59 @@ def __iter__(self): return self._buffer.__iter__() +def _read_exact(fp, n): + '''Read exactly *n* bytes from `fp` + + This method is required because fp may be unbuffered, + i.e. return short reads. + ''' + data = fp.read(n) + while len(data) < n: + b = fp.read(n - len(data)) + if not b: + raise EOFError("Compressed file ended before the " + "end-of-stream marker was reached") + data += b + return data + + +def _read_gzip_header(fp): + '''Read a gzip header from `fp` and progress to the end of the header. + + Returns last mtime if header was present or None otherwise. + ''' + magic = fp.read(2) + if magic == b'': + return None + + if magic != b'\037\213': + raise BadGzipFile('Not a gzipped file (%r)' % magic) + + (method, flag, last_mtime) = struct.unpack(" bytes: + """ + Write a simple gzip header with no extra fields. + :param compresslevel: Compresslevel used to determine the xfl bytes. + :param mtime: The mtime (must support conversion to a 32-bit integer). + :return: A bytes object representing the gzip header. + """ + if mtime is None: + mtime = time.time() + if compresslevel == _COMPRESS_LEVEL_BEST: + xfl = 2 + elif compresslevel == _COMPRESS_LEVEL_FAST: + xfl = 4 + else: + xfl = 0 + # Pack ID1 and ID2 magic bytes, method (8=deflate), header flags (no extra + # fields added to header), mtime, xfl and os (255 for unknown OS). + return struct.pack(" https://github.com/python/cpython/commit/f0b63d5b56a6324f5f86807d9548c7b38aa2a8f7 commit: f0b63d5b56a6324f5f86807d9548c7b38aa2a8f7 branch: main author: ?ukasz Langa committer: ambv date: 2021-09-02T17:12:49+02:00 summary: bpo-40360: [doc] Rephrase deprecation note about lib2to3 (GH-28122) files: M Doc/library/2to3.rst diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index 1d7bd26287290..2a13776e29336 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -464,12 +464,15 @@ and off individually. They are described here in more detail. -------------- -.. deprecated:: 3.10 - Python 3.9 will switch to a PEG parser (see :pep:`617`), and Python 3.10 may - include new language syntax that is not parsable by lib2to3's LL(1) parser. - The ``lib2to3`` module may be removed from the standard library in a future - Python version. Consider third-party alternatives such as `LibCST`_ or - `parso`_. +.. deprecated-removed:: 3.11 3.13 + Python 3.9 switched to a PEG parser (see :pep:`617`) while lib2to3 is + using a less flexible LL(1) parser. Python 3.10 includes new language + syntax that is not parsable by lib2to3's LL(1) parser (see :pep:`634`). + The ``lib2to3`` module was marked pending for deprecation in Python 3.9 + (raising :exc:`PendingDeprecationWarning` on import) and fully deprecated + in Python 3.11 (raising :exc:`DeprecationWarning`). + It will be removed from the standard library in Python 3.13. + Consider third-party alternatives such as `LibCST`_ or `parso`_. .. note:: From webhook-mailer at python.org Thu Sep 2 11:14:16 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 15:14:16 -0000 Subject: [Python-checkins] [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) (GH-28124) Message-ID: https://github.com/python/cpython/commit/ca27109c17dfe96dab5a6e5ff84badfea4c62f21 commit: ca27109c17dfe96dab5a6e5ff84badfea4c62f21 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-09-02T17:14:11+02:00 summary: [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) (GH-28124) (cherry picked from commit a7ef15aae8608560bffeeaba412c10e52cab07dd) Co-authored-by: ?ukasz Langa files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 85cd193f903b0f..88ce6847bb392c 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -717,6 +717,8 @@ The following exceptions are used as warning categories; see the (:pep:`565`). Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: PendingDeprecationWarning @@ -731,6 +733,8 @@ The following exceptions are used as warning categories; see the Ignored by the default warning filters. Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: SyntaxWarning From webhook-mailer at python.org Thu Sep 2 11:37:23 2021 From: webhook-mailer at python.org (miss-islington) Date: Thu, 02 Sep 2021 15:37:23 -0000 Subject: [Python-checkins] bpo-40360: [doc] Rephrase deprecation note about lib2to3 (GH-28122) Message-ID: https://github.com/python/cpython/commit/559af7434668e2950c08389515a52eba697ef6af commit: 559af7434668e2950c08389515a52eba697ef6af 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-09-02T08:37:14-07:00 summary: bpo-40360: [doc] Rephrase deprecation note about lib2to3 (GH-28122) (cherry picked from commit f0b63d5b56a6324f5f86807d9548c7b38aa2a8f7) Co-authored-by: ?ukasz Langa files: M Doc/library/2to3.rst diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index 1d7bd26287290..2a13776e29336 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -464,12 +464,15 @@ and off individually. They are described here in more detail. -------------- -.. deprecated:: 3.10 - Python 3.9 will switch to a PEG parser (see :pep:`617`), and Python 3.10 may - include new language syntax that is not parsable by lib2to3's LL(1) parser. - The ``lib2to3`` module may be removed from the standard library in a future - Python version. Consider third-party alternatives such as `LibCST`_ or - `parso`_. +.. deprecated-removed:: 3.11 3.13 + Python 3.9 switched to a PEG parser (see :pep:`617`) while lib2to3 is + using a less flexible LL(1) parser. Python 3.10 includes new language + syntax that is not parsable by lib2to3's LL(1) parser (see :pep:`634`). + The ``lib2to3`` module was marked pending for deprecation in Python 3.9 + (raising :exc:`PendingDeprecationWarning` on import) and fully deprecated + in Python 3.11 (raising :exc:`DeprecationWarning`). + It will be removed from the standard library in Python 3.13. + Consider third-party alternatives such as `LibCST`_ or `parso`_. .. note:: From webhook-mailer at python.org Thu Sep 2 12:03:30 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 16:03:30 -0000 Subject: [Python-checkins] [doc] Reword sentinel object summary in dataclasses (GH-27792) Message-ID: https://github.com/python/cpython/commit/767a17f35a581da664ac8cf5d67281da9485eebf commit: 767a17f35a581da664ac8cf5d67281da9485eebf branch: main author: Ville Korhonen committer: ambv date: 2021-09-02T18:03:22+02:00 summary: [doc] Reword sentinel object summary in dataclasses (GH-27792) This sentinel value (`MISSING`) is also used as default value for the `kw_only` parameter introduced in Python 3.10. It's cleaner to simply omit the usage here. Co-authored-by: ?ukasz Langa files: M Doc/library/dataclasses.rst diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index de7dfae15ebd8..a7144094c6849 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -221,10 +221,9 @@ Module contents c.mylist += [1, 2, 3] As shown above, the :const:`MISSING` value is a sentinel object used to - detect if the ``default`` and ``default_factory`` parameters are - provided. This sentinel is used because ``None`` is a valid value - for ``default``. No code should directly use the :const:`MISSING` - value. + detect if some parameters are provided by the user. This sentinel is + used because ``None`` is a valid value for some parameters with + a distinct meaning. No code should directly use the :const:`MISSING` value. The parameters to :func:`field` are: From webhook-mailer at python.org Thu Sep 2 12:17:22 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 16:17:22 -0000 Subject: [Python-checkins] bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) Message-ID: https://github.com/python/cpython/commit/0635e201beaf52373f776ff32702795e38f43ae3 commit: 0635e201beaf52373f776ff32702795e38f43ae3 branch: main author: Yurii Karabas <1998uriyyo at gmail.com> committer: ambv date: 2021-09-02T18:17:13+02:00 summary: bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> files: A Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst M Lib/test/test_dataclasses.py M Lib/typing.py diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 8e645aeb4a750..33c9fcd165621 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -10,7 +10,7 @@ import builtins import unittest from unittest.mock import Mock -from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional +from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional, Protocol from typing import get_type_hints from collections import deque, OrderedDict, namedtuple from functools import total_ordering @@ -2150,6 +2150,26 @@ def __init__(self, x): self.x = 2 * x self.assertEqual(C(5).x, 10) + def test_inherit_from_protocol(self): + # Dataclasses inheriting from protocol should preserve their own `__init__`. + # See bpo-45081. + + class P(Protocol): + a: int + + @dataclass + class C(P): + a: int + + self.assertEqual(C(5).a, 5) + + @dataclass + class D(P): + def __init__(self, a): + self.a = a * 2 + + self.assertEqual(D(5).a, 10) + class TestRepr(unittest.TestCase): def test_repr(self): diff --git a/Lib/typing.py b/Lib/typing.py index 35c57c21b37c2..892f1b3506851 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1400,8 +1400,29 @@ def _is_callable_members_only(cls): return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls)) -def _no_init(self, *args, **kwargs): - raise TypeError('Protocols cannot be instantiated') +def _no_init_or_replace_init(self, *args, **kwargs): + cls = type(self) + + if cls._is_protocol: + raise TypeError('Protocols cannot be instantiated') + + # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`. + # The first instantiation of the subclass will call `_no_init_or_replace_init` which + # searches for a proper new `__init__` in the MRO. The new `__init__` + # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent + # instantiation of the protocol subclass will thus use the new + # `__init__` and no longer call `_no_init_or_replace_init`. + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init_or_replace_init) + if init is not _no_init_or_replace_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ + + cls.__init__(self, *args, **kwargs) + def _caller(depth=1, default='__main__'): try: @@ -1541,15 +1562,6 @@ 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. @@ -1560,7 +1572,7 @@ def _proto_hook(other): issubclass(base, Generic) and base._is_protocol): raise TypeError('Protocols can only inherit from other' ' protocols, got %r' % base) - cls.__init__ = _no_init + cls.__init__ = _no_init_or_replace_init class _AnnotatedAlias(_GenericAlias, _root=True): diff --git a/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst new file mode 100644 index 0000000000000..86d7182003bb9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst @@ -0,0 +1,2 @@ +Fix issue when dataclasses that inherit from ``typing.Protocol`` subclasses +have wrong ``__init__``. Patch provided by Yurii Karabas. From webhook-mailer at python.org Thu Sep 2 12:18:52 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 16:18:52 -0000 Subject: [Python-checkins] [3.10] [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) (#28126) Message-ID: https://github.com/python/cpython/commit/2184bc7fe15fe67043f1887ac5d39a99c8d09e35 commit: 2184bc7fe15fe67043f1887ac5d39a99c8d09e35 branch: 3.10 author: ?ukasz Langa committer: ambv date: 2021-09-02T18:18:47+02:00 summary: [3.10] [doc] Link to deprecation policy PEP from the DeprecationWarning documentation (GH-28123) (#28126) (cherry picked from commit a7ef15aae8608560bffeeaba412c10e52cab07dd) Co-authored-by: ?ukasz Langa files: M Doc/library/exceptions.rst diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 0e606360efae1..1a883ba19af4f 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -748,6 +748,8 @@ The following exceptions are used as warning categories; see the (:pep:`565`). Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: PendingDeprecationWarning @@ -762,6 +764,8 @@ The following exceptions are used as warning categories; see the Ignored by the default warning filters. Enabling the :ref:`Python Development Mode ` shows this warning. + The deprecation policy is described in :pep:`387`. + .. exception:: SyntaxWarning From webhook-mailer at python.org Thu Sep 2 12:38:04 2021 From: webhook-mailer at python.org (miss-islington) Date: Thu, 02 Sep 2021 16:38:04 -0000 Subject: [Python-checkins] [doc] Reword sentinel object summary in dataclasses (GH-27792) Message-ID: https://github.com/python/cpython/commit/7aa58f5425189c95927d1620df8d6b0ba57d393a commit: 7aa58f5425189c95927d1620df8d6b0ba57d393a 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-09-02T09:37:55-07:00 summary: [doc] Reword sentinel object summary in dataclasses (GH-27792) This sentinel value (`MISSING`) is also used as default value for the `kw_only` parameter introduced in Python 3.10. It's cleaner to simply omit the usage here. Co-authored-by: ?ukasz Langa (cherry picked from commit 767a17f35a581da664ac8cf5d67281da9485eebf) Co-authored-by: Ville Korhonen files: M Doc/library/dataclasses.rst diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index 5da05539c90b1..5915bacbcdc4e 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -221,10 +221,9 @@ Module contents c.mylist += [1, 2, 3] As shown above, the :const:`MISSING` value is a sentinel object used to - detect if the ``default`` and ``default_factory`` parameters are - provided. This sentinel is used because ``None`` is a valid value - for ``default``. No code should directly use the :const:`MISSING` - value. + detect if some parameters are provided by the user. This sentinel is + used because ``None`` is a valid value for some parameters with + a distinct meaning. No code should directly use the :const:`MISSING` value. The parameters to :func:`field` are: From webhook-mailer at python.org Thu Sep 2 13:01:42 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 17:01:42 -0000 Subject: [Python-checkins] bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) (GH-28132) Message-ID: https://github.com/python/cpython/commit/98eb40828af97760badfa7b8ff84bd4f7a079839 commit: 98eb40828af97760badfa7b8ff84bd4f7a079839 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-09-02T19:01:32+02:00 summary: bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) (GH-28132) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> (cherry picked from commit 0635e201beaf52373f776ff32702795e38f43ae3) Co-authored-by: Yurii Karabas <1998uriyyo at gmail.com> files: A Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst M Lib/test/test_dataclasses.py M Lib/typing.py diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index e65db176d9d34f..ad981d1cc654f8 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -9,7 +9,7 @@ import builtins import unittest from unittest.mock import Mock -from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional +from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional, Protocol from typing import get_type_hints from collections import deque, OrderedDict, namedtuple from functools import total_ordering @@ -2124,6 +2124,26 @@ def __init__(self, x): self.x = 2 * x self.assertEqual(C(5).x, 10) + def test_inherit_from_protocol(self): + # Dataclasses inheriting from protocol should preserve their own `__init__`. + # See bpo-45081. + + class P(Protocol): + a: int + + @dataclass + class C(P): + a: int + + self.assertEqual(C(5).a, 5) + + @dataclass + class D(P): + def __init__(self, a): + self.a = a * 2 + + self.assertEqual(D(5).a, 10) + class TestRepr(unittest.TestCase): def test_repr(self): diff --git a/Lib/typing.py b/Lib/typing.py index 894b2d905114ca..9010775c0de7e1 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1079,8 +1079,29 @@ def _is_callable_members_only(cls): return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls)) -def _no_init(self, *args, **kwargs): - raise TypeError('Protocols cannot be instantiated') +def _no_init_or_replace_init(self, *args, **kwargs): + cls = type(self) + + if cls._is_protocol: + raise TypeError('Protocols cannot be instantiated') + + # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`. + # The first instantiation of the subclass will call `_no_init_or_replace_init` which + # searches for a proper new `__init__` in the MRO. The new `__init__` + # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent + # instantiation of the protocol subclass will thus use the new + # `__init__` and no longer call `_no_init_or_replace_init`. + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init_or_replace_init) + if init is not _no_init_or_replace_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ + + cls.__init__(self, *args, **kwargs) + def _allow_reckless_class_cheks(): @@ -1209,15 +1230,6 @@ 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. @@ -1228,7 +1240,7 @@ def _proto_hook(other): issubclass(base, Generic) and base._is_protocol): raise TypeError('Protocols can only inherit from other' ' protocols, got %r' % base) - cls.__init__ = _no_init + cls.__init__ = _no_init_or_replace_init class _AnnotatedAlias(_GenericAlias, _root=True): diff --git a/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst new file mode 100644 index 00000000000000..86d7182003bb93 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst @@ -0,0 +1,2 @@ +Fix issue when dataclasses that inherit from ``typing.Protocol`` subclasses +have wrong ``__init__``. Patch provided by Yurii Karabas. From webhook-mailer at python.org Thu Sep 2 13:02:07 2021 From: webhook-mailer at python.org (ambv) Date: Thu, 02 Sep 2021 17:02:07 -0000 Subject: [Python-checkins] bpo-45082: Cleanup ctypes.c_buffer alias (GH-28129) Message-ID: https://github.com/python/cpython/commit/a1e15a7a604e6f44cdaf4e106339df62eac5dc9f commit: a1e15a7a604e6f44cdaf4e106339df62eac5dc9f branch: main author: Victor Stinner committer: ambv date: 2021-09-02T19:02:03+02:00 summary: bpo-45082: Cleanup ctypes.c_buffer alias (GH-28129) * Remove commented deprecation of ctypes.c_buffer. * Remove references to ctypes.c_string which doesn't exist. * Remove StringTestCase: it only had skipped test methods. files: M Doc/library/ctypes.rst M Lib/ctypes/__init__.py M Lib/ctypes/test/test_strings.py M Modules/_ctypes/callproc.c diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index fd6422cc8c06c5..0c1a93cdce4dbe 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -330,10 +330,9 @@ property:: 10 b'Hi\x00lo\x00\x00\x00\x00\x00' >>> -The :func:`create_string_buffer` function replaces the :func:`c_buffer` function -(which is still available as an alias), as well as the :func:`c_string` function -from earlier ctypes releases. To create a mutable memory block containing -unicode characters of the C type :c:type:`wchar_t` use the +The :func:`create_string_buffer` function replaces the old :func:`c_buffer` +function (which is still available as an alias). To create a mutable memory +block containing unicode characters of the C type :c:type:`wchar_t`, use the :func:`create_unicode_buffer` function. diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 4afa4ebd422493..b08629e8df4dfd 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -65,12 +65,8 @@ def create_string_buffer(init, size=None): return buf raise TypeError(init) -def c_buffer(init, size=None): -## "deprecated, use create_string_buffer instead" -## import warnings -## warnings.warn("c_buffer is deprecated, use create_string_buffer instead", -## DeprecationWarning, stacklevel=2) - return create_string_buffer(init, size) +# Alias to create_string_buffer() for backward compatibility +c_buffer = create_string_buffer _c_functype_cache = {} def CFUNCTYPE(restype, *argtypes, **kw): diff --git a/Lib/ctypes/test/test_strings.py b/Lib/ctypes/test/test_strings.py index 5434efda10c057..12e208828a70db 100644 --- a/Lib/ctypes/test/test_strings.py +++ b/Lib/ctypes/test/test_strings.py @@ -85,74 +85,6 @@ def test_nonbmp(self): w = c_wchar(u) self.assertEqual(w.value, u) -class StringTestCase(unittest.TestCase): - @unittest.skip('test disabled') - def test_basic_strings(self): - cs = c_string("abcdef") - - # Cannot call len on a c_string any longer - self.assertRaises(TypeError, len, cs) - self.assertEqual(sizeof(cs), 7) - - # The value property is the string up to the first terminating NUL. - self.assertEqual(cs.value, "abcdef") - self.assertEqual(c_string("abc\000def").value, "abc") - - # The raw property is the total buffer contents: - self.assertEqual(cs.raw, "abcdef\000") - self.assertEqual(c_string("abc\000def").raw, "abc\000def\000") - - # We can change the value: - cs.value = "ab" - self.assertEqual(cs.value, "ab") - self.assertEqual(cs.raw, "ab\000\000\000\000\000") - - cs.raw = "XY" - self.assertEqual(cs.value, "XY") - self.assertEqual(cs.raw, "XY\000\000\000\000\000") - - self.assertRaises(TypeError, c_string, "123") - - @unittest.skip('test disabled') - def test_sized_strings(self): - - # New in releases later than 0.4.0: - self.assertRaises(TypeError, c_string, None) - - # New in releases later than 0.4.0: - # c_string(number) returns an empty string of size number - self.assertEqual(len(c_string(32).raw), 32) - self.assertRaises(ValueError, c_string, -1) - self.assertRaises(ValueError, c_string, 0) - - # These tests fail, because it is no longer initialized -## self.assertEqual(c_string(2).value, "") -## self.assertEqual(c_string(2).raw, "\000\000") - self.assertEqual(c_string(2).raw[-1], "\000") - self.assertEqual(len(c_string(2).raw), 2) - - @unittest.skip('test disabled') - def test_initialized_strings(self): - - self.assertEqual(c_string("ab", 4).raw[:2], "ab") - self.assertEqual(c_string("ab", 4).raw[:2:], "ab") - self.assertEqual(c_string("ab", 4).raw[:2:-1], "ba") - self.assertEqual(c_string("ab", 4).raw[:2:2], "a") - self.assertEqual(c_string("ab", 4).raw[-1], "\000") - self.assertEqual(c_string("ab", 2).raw, "a\000") - - @unittest.skip('test disabled') - def test_toolong(self): - cs = c_string("abcdef") - # Much too long string: - self.assertRaises(ValueError, setattr, cs, "value", "123456789012345") - - # One char too long values: - self.assertRaises(ValueError, setattr, cs, "value", "1234567") - - @unittest.skip('test disabled') - def test_perf(self): - check_perf() @need_symbol('c_wchar') class WStringTestCase(unittest.TestCase): @@ -208,25 +140,6 @@ def run_test(rep, msg, func, arg): stop = clock() print("%20s: %.2f us" % (msg, ((stop-start)*1e6/5/rep))) -def check_perf(): - # Construct 5 objects - - REP = 200000 - - run_test(REP, "c_string(None)", c_string, None) - run_test(REP, "c_string('abc')", c_string, 'abc') - -# Python 2.3 -OO, win2k, P4 700 MHz: -# -# c_string(None): 1.75 us -# c_string('abc'): 2.74 us - -# Python 2.2 -OO, win2k, P4 700 MHz: -# -# c_string(None): 2.95 us -# c_string('abc'): 3.67 us - if __name__ == '__main__': -## check_perf() unittest.main() diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index f8f8efa4ee8793..17e82f90cf4740 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -530,8 +530,8 @@ PyCArg_repr(PyCArgObject *self) } /* Hm, are these 'z' and 'Z' codes useful at all? - Shouldn't they be replaced by the functionality of c_string - and c_wstring ? + Shouldn't they be replaced by the functionality of create_string_buffer() + and c_wstring() ? */ case 'z': case 'Z': From webhook-mailer at python.org Fri Sep 3 02:27:23 2021 From: webhook-mailer at python.org (miss-islington) Date: Fri, 03 Sep 2021 06:27:23 -0000 Subject: [Python-checkins] bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) Message-ID: https://github.com/python/cpython/commit/79e9f5a58427c73dc546cb571819d50defe2e14f commit: 79e9f5a58427c73dc546cb571819d50defe2e14f 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-09-02T23:26:53-07:00 summary: bpo-45081: Fix __init__ method generation when inheriting from Protocol (GH-28121) Co-authored-by: Ken Jin <28750310+Fidget-Spinner at users.noreply.github.com> (cherry picked from commit 0635e201beaf52373f776ff32702795e38f43ae3) Co-authored-by: Yurii Karabas <1998uriyyo at gmail.com> files: A Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst M Lib/test/test_dataclasses.py M Lib/typing.py diff --git a/Lib/test/test_dataclasses.py b/Lib/test/test_dataclasses.py index 8e645aeb4a750..33c9fcd165621 100644 --- a/Lib/test/test_dataclasses.py +++ b/Lib/test/test_dataclasses.py @@ -10,7 +10,7 @@ import builtins import unittest from unittest.mock import Mock -from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional +from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional, Protocol from typing import get_type_hints from collections import deque, OrderedDict, namedtuple from functools import total_ordering @@ -2150,6 +2150,26 @@ def __init__(self, x): self.x = 2 * x self.assertEqual(C(5).x, 10) + def test_inherit_from_protocol(self): + # Dataclasses inheriting from protocol should preserve their own `__init__`. + # See bpo-45081. + + class P(Protocol): + a: int + + @dataclass + class C(P): + a: int + + self.assertEqual(C(5).a, 5) + + @dataclass + class D(P): + def __init__(self, a): + self.a = a * 2 + + self.assertEqual(D(5).a, 10) + class TestRepr(unittest.TestCase): def test_repr(self): diff --git a/Lib/typing.py b/Lib/typing.py index 4c2d9fc3320f3..24f834e19aad2 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1398,8 +1398,29 @@ def _is_callable_members_only(cls): return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls)) -def _no_init(self, *args, **kwargs): - raise TypeError('Protocols cannot be instantiated') +def _no_init_or_replace_init(self, *args, **kwargs): + cls = type(self) + + if cls._is_protocol: + raise TypeError('Protocols cannot be instantiated') + + # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`. + # The first instantiation of the subclass will call `_no_init_or_replace_init` which + # searches for a proper new `__init__` in the MRO. The new `__init__` + # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent + # instantiation of the protocol subclass will thus use the new + # `__init__` and no longer call `_no_init_or_replace_init`. + for base in cls.__mro__: + init = base.__dict__.get('__init__', _no_init_or_replace_init) + if init is not _no_init_or_replace_init: + cls.__init__ = init + break + else: + # should not happen + cls.__init__ = object.__init__ + + cls.__init__(self, *args, **kwargs) + def _caller(depth=1, default='__main__'): try: @@ -1542,15 +1563,6 @@ 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. @@ -1561,7 +1573,7 @@ def _proto_hook(other): issubclass(base, Generic) and base._is_protocol): raise TypeError('Protocols can only inherit from other' ' protocols, got %r' % base) - cls.__init__ = _no_init + cls.__init__ = _no_init_or_replace_init class _AnnotatedAlias(_GenericAlias, _root=True): diff --git a/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst new file mode 100644 index 0000000000000..86d7182003bb9 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-02-12-42-25.bpo-45081.tOjJ1k.rst @@ -0,0 +1,2 @@ +Fix issue when dataclasses that inherit from ``typing.Protocol`` subclasses +have wrong ``__init__``. Patch provided by Yurii Karabas. From webhook-mailer at python.org Fri Sep 3 03:30:48 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 07:30:48 -0000 Subject: [Python-checkins] bpo-45083: Include the exception class qualname when formatting an exception (GH-28119) Message-ID: https://github.com/python/cpython/commit/b4b6342848ec0459182a992151099252434cc619 commit: b4b6342848ec0459182a992151099252434cc619 branch: main author: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> committer: ambv date: 2021-09-03T09:30:17+02:00 summary: bpo-45083: Include the exception class qualname when formatting an exception (GH-28119) Co-authored-by: Erlend Egeberg Aasland files: A Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst M Lib/test/test_sys.py M Lib/test/test_traceback.py M Python/errors.c M Python/pythonrun.c diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index dba4928ec261ac..12305ca95d0a0d 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -1070,6 +1070,20 @@ def __del__(self): self.assertIn("del is broken", report) self.assertTrue(report.endswith("\n")) + def test_original_unraisablehook_exception_qualname(self): + class A: + class B: + class X(Exception): + pass + + with test.support.captured_stderr() as stderr, \ + test.support.swap_attr(sys, 'unraisablehook', + sys.__unraisablehook__): + expected = self.write_unraisable_exc( + A.B.X(), "msg", "obj"); + report = stderr.getvalue() + testName = 'test_original_unraisablehook_exception_qualname' + self.assertIn(f"{testName}..A.B.X", report) def test_original_unraisablehook_wrong_type(self): exc = ValueError(42) diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index d1967aabb29a1c..ee2896c5f4867c 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -1171,6 +1171,19 @@ def test_syntax_error_various_offsets(self): exp = "\n".join(expected) self.assertEqual(exp, err) + def test_format_exception_only_qualname(self): + class A: + class B: + class X(Exception): + def __str__(self): + return "I am X" + pass + err = self.get_report(A.B.X()) + str_value = 'I am X' + str_name = '.'.join([A.B.X.__module__, A.B.X.__qualname__]) + exp = "%s: %s\n" % (str_name, str_value) + self.assertEqual(exp, err) + class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase): # diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst new file mode 100644 index 00000000000000..7bfd87b9420593 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst @@ -0,0 +1,3 @@ +When the interpreter renders an exception, its name now has a complete qualname. Previously only the class name was concatenated to the module name, which sometimes resulted in an incorrect full name being displayed. + +(This issue impacted only the C code exception rendering, the :mod:`traceback` module was using qualname already). \ No newline at end of file diff --git a/Python/errors.c b/Python/errors.c index ae1cde690eafa5..15ca21b68400f2 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -1287,46 +1287,45 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type, } assert(PyExceptionClass_Check(exc_type)); - const char *className = PyExceptionClass_Name(exc_type); - if (className != NULL) { - const char *dot = strrchr(className, '.'); - if (dot != NULL) { - className = dot+1; - } - } - PyObject *moduleName = _PyObject_GetAttrId(exc_type, &PyId___module__); - if (moduleName == NULL || !PyUnicode_Check(moduleName)) { - Py_XDECREF(moduleName); + PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__); + if (modulename == NULL || !PyUnicode_Check(modulename)) { + Py_XDECREF(modulename); _PyErr_Clear(tstate); if (PyFile_WriteString("", file) < 0) { return -1; } } else { - if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) { - if (PyFile_WriteObject(moduleName, file, Py_PRINT_RAW) < 0) { - Py_DECREF(moduleName); + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) { + if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) { + Py_DECREF(modulename); return -1; } - Py_DECREF(moduleName); + Py_DECREF(modulename); if (PyFile_WriteString(".", file) < 0) { return -1; } } else { - Py_DECREF(moduleName); + Py_DECREF(modulename); } } - if (className == NULL) { + + PyObject *qualname = PyType_GetQualName((PyTypeObject *)exc_type); + if (qualname == NULL || !PyUnicode_Check(qualname)) { + Py_XDECREF(qualname); + _PyErr_Clear(tstate); if (PyFile_WriteString("", file) < 0) { return -1; } } else { - if (PyFile_WriteString(className, file) < 0) { + if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) { + Py_DECREF(qualname); return -1; } + Py_DECREF(qualname); } if (exc_value && exc_value != Py_None) { diff --git a/Python/pythonrun.c b/Python/pythonrun.c index f00e3eb0de803f..3d07f43b5256d1 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -961,36 +961,37 @@ print_exception(PyObject *f, PyObject *value) /* Don't do anything else */ } else { - PyObject* moduleName; - const char *className; + PyObject* modulename; + _Py_IDENTIFIER(__module__); assert(PyExceptionClass_Check(type)); - className = PyExceptionClass_Name(type); - if (className != NULL) { - const char *dot = strrchr(className, '.'); - if (dot != NULL) - className = dot+1; - } - moduleName = _PyObject_GetAttrId(type, &PyId___module__); - if (moduleName == NULL || !PyUnicode_Check(moduleName)) + modulename = _PyObject_GetAttrId(type, &PyId___module__); + if (modulename == NULL || !PyUnicode_Check(modulename)) { - Py_XDECREF(moduleName); + Py_XDECREF(modulename); + PyErr_Clear(); err = PyFile_WriteString("", f); } else { - if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) { - err = PyFile_WriteObject(moduleName, f, Py_PRINT_RAW); + err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW); err += PyFile_WriteString(".", f); } - Py_DECREF(moduleName); + Py_DECREF(modulename); } if (err == 0) { - if (className == NULL) - err = PyFile_WriteString("", f); - else - err = PyFile_WriteString(className, f); + PyObject* qualname = PyType_GetQualName((PyTypeObject *)type); + if (qualname == NULL || !PyUnicode_Check(qualname)) { + Py_XDECREF(qualname); + PyErr_Clear(); + err = PyFile_WriteString("", f); + } + else { + err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW); + Py_DECREF(qualname); + } } } if (err == 0 && (value != Py_None)) { From webhook-mailer at python.org Fri Sep 3 03:32:25 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 07:32:25 -0000 Subject: [Python-checkins] bpo-34602: Quadruple stack size on macOS when compiling with UBSAN (GH-27309) Message-ID: https://github.com/python/cpython/commit/be9de8721d63b9d8e032d508069daf88c06542c6 commit: be9de8721d63b9d8e032d508069daf88c06542c6 branch: main author: ?ukasz Langa committer: ambv date: 2021-09-03T09:32:19+02:00 summary: bpo-34602: Quadruple stack size on macOS when compiling with UBSAN (GH-27309) files: A Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst M Python/thread_pthread.h M configure M configure.ac M pyconfig.h.in diff --git a/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst b/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst new file mode 100644 index 0000000000000..29a6ff92554e1 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2021-08-27-16-55-10.bpo-34602.ZjHsYJ.rst @@ -0,0 +1,3 @@ +When building CPython on macOS with ``./configure +--with-undefined-behavior-sanitizer --with-pydebug``, the stack size is now +quadrupled to allow for the entire test suite to pass. diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h index ec7d737518b68..a45d842ffe73d 100644 --- a/Python/thread_pthread.h +++ b/Python/thread_pthread.h @@ -32,18 +32,17 @@ #define THREAD_STACK_SIZE 0 /* use default stack size */ #endif -/* The default stack size for new threads on OSX and BSD is small enough that +/* The default stack size for new threads on BSD is small enough that * we'll get hard crashes instead of 'maximum recursion depth exceeded' * exceptions. * - * The default stack sizes below are the empirically determined minimal stack + * The default stack size below is the empirically determined minimal stack * sizes where a simple recursive function doesn't cause a hard crash. + * + * For macOS the value of THREAD_STACK_SIZE is determined in configure.ac + * as it also depends on the other configure options like chosen sanitizer + * runtimes. */ -#if defined(__APPLE__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0 -#undef THREAD_STACK_SIZE -/* Note: This matches the value of -Wl,-stack_size in configure.ac */ -#define THREAD_STACK_SIZE 0x1000000 -#endif #if defined(__FreeBSD__) && defined(THREAD_STACK_SIZE) && THREAD_STACK_SIZE == 0 #undef THREAD_STACK_SIZE #define THREAD_STACK_SIZE 0x400000 diff --git a/configure b/configure index 050f183601114..4f12972540d5f 100755 --- a/configure +++ b/configure @@ -827,11 +827,11 @@ with_trace_refs with_assertions enable_optimizations with_lto -with_hash_algorithm -with_tzpath with_address_sanitizer with_memory_sanitizer with_undefined_behavior_sanitizer +with_hash_algorithm +with_tzpath with_libs with_system_expat with_system_ffi @@ -1548,12 +1548,6 @@ Optional Packages: --with-lto=[full|thin|no|yes] enable Link-Time-Optimization in any build (default is no) - --with-hash-algorithm=[fnv|siphash24] - select hash algorithm for use in Python/pyhash.c - (default is SipHash24) - --with-tzpath= - Select the default time zone search path for zoneinfo.TZPATH - --with-address-sanitizer enable AddressSanitizer memory error detector, 'asan' (default is no) @@ -1562,6 +1556,12 @@ Optional Packages: --with-undefined-behavior-sanitizer enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no) + --with-hash-algorithm=[fnv|siphash24] + select hash algorithm for use in Python/pyhash.c + (default is SipHash24) + --with-tzpath= + Select the default time zone search path for zoneinfo.TZPATH + --with-libs='lib1 ...' link against additional libs (default is no) --with-system-expat build pyexpat module using an installed expat library, see Doc/library/pyexpat.rst (default is no) @@ -9602,6 +9602,65 @@ $as_echo "no" >&6; } ;; esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 +$as_echo_n "checking for --with-address-sanitizer... " >&6; } + +# Check whether --with-address_sanitizer was given. +if test "${with_address_sanitizer+set}" = set; then : + withval=$with_address_sanitizer; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$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; } +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 +$as_echo_n "checking for --with-memory-sanitizer... " >&6; } + +# Check whether --with-memory_sanitizer was given. +if test "${with_memory_sanitizer+set}" = set; then : + withval=$with_memory_sanitizer; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$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; } +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; } + +# Check whether --with-undefined_behavior_sanitizer was given. +if test "${with_undefined_behavior_sanitizer+set}" = set; then : + withval=$with_undefined_behavior_sanitizer; +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } +BASECFLAGS="-fsanitize=undefined $BASECFLAGS" +LDFLAGS="-fsanitize=undefined $LDFLAGS" +with_ubsan="yes" + +else + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +with_ubsan="no" + +fi + + # Set info about shared libraries. @@ -9812,9 +9871,20 @@ then # Issue #18075: the default maximum stack size (8MBytes) is too # small for the default recursion limit. Increase the stack size # to ensure that tests don't crash - # Note: This matches the value of THREAD_STACK_SIZE in - # thread_pthread.h - LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED" + stack_size="1000000" # 16 MB + if test "$with_ubsan" == "yes" + then + # Undefined behavior sanitizer requires an even deeper stack + stack_size="4000000" # 64 MB + fi + + LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED" + + +cat >>confdefs.h <<_ACEOF +#define THREAD_STACK_SIZE 0x$stack_size +_ACEOF + if test "$enable_framework" then @@ -10410,61 +10480,6 @@ fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 -$as_echo_n "checking for --with-address-sanitizer... " >&6; } - -# Check whether --with-address_sanitizer was given. -if test "${with_address_sanitizer+set}" = set; then : - withval=$with_address_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$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; } -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 -$as_echo_n "checking for --with-memory-sanitizer... " >&6; } - -# Check whether --with-memory_sanitizer was given. -if test "${with_memory_sanitizer+set}" = set; then : - withval=$with_memory_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$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; } -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; } - -# Check whether --with-undefined_behavior_sanitizer was given. -if test "${with_undefined_behavior_sanitizer+set}" = set; then : - withval=$with_undefined_behavior_sanitizer; -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -$as_echo "$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; } -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; } diff --git a/configure.ac b/configure.ac index aaff79f720e3c..e01e0c13fba19 100644 --- a/configure.ac +++ b/configure.ac @@ -2595,6 +2595,47 @@ case $ac_sys_system/$ac_sys_release in ;; esac +AC_MSG_CHECKING(for --with-address-sanitizer) +AC_ARG_WITH(address_sanitizer, + AS_HELP_STRING([--with-address-sanitizer], + [enable AddressSanitizer memory error detector, 'asan' (default is no)]), +[ +AC_MSG_RESULT($withval) +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" +], +[AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING(for --with-memory-sanitizer) +AC_ARG_WITH(memory_sanitizer, + AS_HELP_STRING([--with-memory-sanitizer], + [enable MemorySanitizer allocation error detector, 'msan' (default is no)]), +[ +AC_MSG_RESULT($withval) +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" +], +[AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer) +AC_ARG_WITH(undefined_behavior_sanitizer, + AS_HELP_STRING([--with-undefined-behavior-sanitizer], + [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]), +[ +AC_MSG_RESULT($withval) +BASECFLAGS="-fsanitize=undefined $BASECFLAGS" +LDFLAGS="-fsanitize=undefined $LDFLAGS" +with_ubsan="yes" +], +[ +AC_MSG_RESULT(no) +with_ubsan="no" +]) + # Set info about shared libraries. AC_SUBST(SHLIB_SUFFIX) AC_SUBST(LDSHARED) @@ -2798,9 +2839,18 @@ then # Issue #18075: the default maximum stack size (8MBytes) is too # small for the default recursion limit. Increase the stack size # to ensure that tests don't crash - # Note: This matches the value of THREAD_STACK_SIZE in - # thread_pthread.h - LINKFORSHARED="-Wl,-stack_size,1000000 $LINKFORSHARED" + stack_size="1000000" # 16 MB + if test "$with_ubsan" == "yes" + then + # Undefined behavior sanitizer requires an even deeper stack + stack_size="4000000" # 64 MB + fi + + LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED" + + AC_DEFINE_UNQUOTED(THREAD_STACK_SIZE, + 0x$stack_size, + [Custom thread stack size depending on chosen sanitizer runtimes.]) if test "$enable_framework" then @@ -3044,43 +3094,6 @@ esac AC_MSG_RESULT("$TZPATH")]) AC_SUBST(TZPATH) -AC_MSG_CHECKING(for --with-address-sanitizer) -AC_ARG_WITH(address_sanitizer, - AS_HELP_STRING([--with-address-sanitizer], - [enable AddressSanitizer memory error detector, 'asan' (default is no)]), -[ -AC_MSG_RESULT($withval) -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" -], -[AC_MSG_RESULT(no)]) - -AC_MSG_CHECKING(for --with-memory-sanitizer) -AC_ARG_WITH(memory_sanitizer, - AS_HELP_STRING([--with-memory-sanitizer], - [enable MemorySanitizer allocation error detector, 'msan' (default is no)]), -[ -AC_MSG_RESULT($withval) -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" -], -[AC_MSG_RESULT(no)]) - -AC_MSG_CHECKING(for --with-undefined-behavior-sanitizer) -AC_ARG_WITH(undefined_behavior_sanitizer, - AS_HELP_STRING([--with-undefined-behavior-sanitizer], - [enable UndefinedBehaviorSanitizer undefined behaviour detector, 'ubsan' (default is no)]), -[ -AC_MSG_RESULT($withval) -BASECFLAGS="-fsanitize=undefined $BASECFLAGS" -LDFLAGS="-fsanitize=undefined $LDFLAGS" -], -[AC_MSG_RESULT(no)]) - # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets diff --git a/pyconfig.h.in b/pyconfig.h.in index 63438d857a070..49407ab62b417 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -1509,6 +1509,9 @@ (which you can't on SCO ODT 3.0). */ #undef SYS_SELECT_WITH_SYS_TIME +/* Custom thread stack size depending on chosen sanitizer runtimes. */ +#undef THREAD_STACK_SIZE + /* Library needed by timemodule.c: librt may be needed for clock_gettime() */ #undef TIMEMODULE_LIB From webhook-mailer at python.org Fri Sep 3 10:45:10 2021 From: webhook-mailer at python.org (vstinner) Date: Fri, 03 Sep 2021 14:45:10 -0000 Subject: [Python-checkins] bpo-45094: Add Py_NO_INLINE macro (GH-28140) Message-ID: https://github.com/python/cpython/commit/7974c30b9fd84fa56ea1515ed2c08b38edf1a383 commit: 7974c30b9fd84fa56ea1515ed2c08b38edf1a383 branch: main author: Victor Stinner committer: vstinner date: 2021-09-03T16:44:02+02:00 summary: bpo-45094: Add Py_NO_INLINE macro (GH-28140) * Rename _Py_NO_INLINE macro to Py_NO_INLINE: make it public and document it. * Sort macros in the C API documentation. files: A Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst M Doc/c-api/intro.rst M Include/pymath.h M Include/pyport.h M Modules/_functoolsmodule.c M Modules/_io/bytesio.c M Modules/_posixsubprocess.c M Python/marshal.c diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 2d85d30702df9..83824bb474fbd 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -105,45 +105,63 @@ defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). Others of a more general utility are defined here. This is not necessarily a complete listing. -.. c:macro:: Py_UNREACHABLE() +.. c:macro:: Py_ABS(x) - Use this when you have a code path that cannot be reached by design. - For example, in the ``default:`` clause in a ``switch`` statement for which - all possible values are covered in ``case`` statements. Use this in places - where you might be tempted to put an ``assert(0)`` or ``abort()`` call. + Return the absolute value of ``x``. - In release mode, the macro helps the compiler to optimize the code, and - avoids a warning about unreachable code. For example, the macro is - implemented with ``__builtin_unreachable()`` on GCC in release mode. + .. versionadded:: 3.3 - A use for ``Py_UNREACHABLE()`` is following a call a function that - never returns but that is not declared :c:macro:`_Py_NO_RETURN`. +.. c:macro:: Py_CHARMASK(c) - If a code path is very unlikely code but can be reached under exceptional - case, this macro must not be used. For example, under low memory condition - or if a system call returns a value out of the expected range. In this - case, it's better to report the error to the caller. If the error cannot - be reported to caller, :c:func:`Py_FatalError` can be used. + Argument must be a character or an integer in the range [-128, 127] or [0, + 255]. This macro returns ``c`` cast to an ``unsigned char``. - .. versionadded:: 3.7 +.. c:macro:: Py_DEPRECATED(version) -.. c:macro:: Py_ABS(x) + Use this for deprecated declarations. The macro must be placed before the + symbol name. - Return the absolute value of ``x``. + Example:: + + Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); + + .. versionchanged:: 3.8 + MSVC support was added. + +.. c:macro:: Py_GETENV(s) + + Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the + command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + +.. c:macro:: Py_MAX(x, y) + + Return the maximum value between ``x`` and ``y``. .. versionadded:: 3.3 +.. c:macro:: Py_MEMBER_SIZE(type, member) + + Return the size of a structure (``type``) ``member`` in bytes. + + .. versionadded:: 3.6 + .. c:macro:: Py_MIN(x, y) Return the minimum value between ``x`` and ``y``. .. versionadded:: 3.3 -.. c:macro:: Py_MAX(x, y) +.. c:macro:: Py_NO_INLINE - Return the maximum value between ``x`` and ``y``. + Disable inlining on a function. For example, it reduces the C stack + consumption: useful on LTO+PGO builds which heavily inline code (see + :issue:`33720`). - .. versionadded:: 3.3 + Usage:: + + Py_NO_INLINE static int random(void) { return 4; } + + .. versionadded:: 3.11 .. c:macro:: Py_STRINGIFY(x) @@ -152,21 +170,27 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_MEMBER_SIZE(type, member) - - Return the size of a structure (``type``) ``member`` in bytes. +.. c:macro:: Py_UNREACHABLE() - .. versionadded:: 3.6 + Use this when you have a code path that cannot be reached by design. + For example, in the ``default:`` clause in a ``switch`` statement for which + all possible values are covered in ``case`` statements. Use this in places + where you might be tempted to put an ``assert(0)`` or ``abort()`` call. -.. c:macro:: Py_CHARMASK(c) + In release mode, the macro helps the compiler to optimize the code, and + avoids a warning about unreachable code. For example, the macro is + implemented with ``__builtin_unreachable()`` on GCC in release mode. - Argument must be a character or an integer in the range [-128, 127] or [0, - 255]. This macro returns ``c`` cast to an ``unsigned char``. + A use for ``Py_UNREACHABLE()`` is following a call a function that + never returns but that is not declared :c:macro:`_Py_NO_RETURN`. -.. c:macro:: Py_GETENV(s) + If a code path is very unlikely code but can be reached under exceptional + case, this macro must not be used. For example, under low memory condition + or if a system call returns a value out of the expected range. In this + case, it's better to report the error to the caller. If the error cannot + be reported to caller, :c:func:`Py_FatalError` can be used. - Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the - command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + .. versionadded:: 3.7 .. c:macro:: Py_UNUSED(arg) @@ -175,18 +199,6 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_DEPRECATED(version) - - Use this for deprecated declarations. The macro must be placed before the - symbol name. - - Example:: - - Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); - - .. versionchanged:: 3.8 - MSVC support was added. - .. c:macro:: PyDoc_STRVAR(name, str) Creates a variable with name ``name`` that can be used in docstrings. @@ -221,6 +233,7 @@ complete listing. {NULL, NULL} }; + .. _api-objects: Objects, Types and Reference Counts diff --git a/Include/pymath.h b/Include/pymath.h index f869724334a4c..ebb3b05f1b53c 100644 --- a/Include/pymath.h +++ b/Include/pymath.h @@ -163,12 +163,7 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short); #pragma float_control(push) #pragma float_control(precise, on) #pragma float_control(except, on) - #if defined(_MSC_VER) - __declspec(noinline) - #else /* Linux */ - __attribute__((noinline)) - #endif /* _MSC_VER */ - static double __icc_nan() + Py_NO_INLINE static double __icc_nan() { return sqrt(-1.0); } diff --git a/Include/pyport.h b/Include/pyport.h index b2b53dd2f771b..0aaa4eedd31a1 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -557,19 +557,20 @@ extern "C" { #define _Py_HOT_FUNCTION #endif -/* _Py_NO_INLINE - * Disable inlining on a function. For example, it helps to reduce the C stack - * consumption. - * - * Usage: - * int _Py_NO_INLINE x(void) { return 3; } - */ -#if defined(_MSC_VER) -# define _Py_NO_INLINE __declspec(noinline) -#elif defined(__GNUC__) || defined(__clang__) -# define _Py_NO_INLINE __attribute__ ((noinline)) +// Py_NO_INLINE +// Disable inlining on a function. For example, it reduces the C stack +// consumption: useful on LTO+PGO builds which heavily inline code (see +// bpo-33720). +// +// Usage: +// +// Py_NO_INLINE static int random(void) { return 4; } +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_NO_INLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +# define Py_NO_INLINE __declspec(noinline) #else -# define _Py_NO_INLINE +# define Py_NO_INLINE #endif /************************************************************************** diff --git a/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst new file mode 100644 index 0000000000000..84b01b23b435f --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst @@ -0,0 +1,2 @@ +Add the :c:macro:`Py_NO_INLINE` macro to disable inlining on a function. +Patch by Victor Stinner. diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index fa1452168094b..a93c0be6a149a 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -186,7 +186,7 @@ partial_dealloc(partialobject *pto) /* Merging keyword arguments using the vectorcall convention is messy, so * if we would need to do that, we stop using vectorcall and fall back * to using partial_call() instead. */ -_Py_NO_INLINE static PyObject * +Py_NO_INLINE static PyObject * partial_vectorcall_fallback(PyThreadState *tstate, partialobject *pto, PyObject *const *args, size_t nargsf, PyObject *kwnames) diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index 2468f45f941e2..930ef7e29dbcf 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -176,7 +176,7 @@ resize_buffer(bytesio *self, size_t size) object. Returns the number of bytes written, or -1 on error. Inlining is disabled because it's significantly decreases performance of writelines() in PGO build. */ -_Py_NO_INLINE static Py_ssize_t +Py_NO_INLINE static Py_ssize_t write_bytes(bytesio *self, PyObject *b) { if (check_closed(self)) { diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index a58159a277bea..63207de8b9137 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -451,7 +451,7 @@ reset_signal_handlers(const sigset_t *child_sigmask) * If vfork-unsafe functionality is desired after vfork(), consider using * syscall() to obtain it. */ -_Py_NO_INLINE static void +Py_NO_INLINE static void child_exec(char *const exec_array[], char *const argv[], char *const envp[], @@ -650,7 +650,7 @@ child_exec(char *const exec_array[], * child_exec() should not be inlined to avoid spurious -Wclobber warnings from * GCC (see bpo-35823). */ -_Py_NO_INLINE static pid_t +Py_NO_INLINE static pid_t do_fork_exec(char *const exec_array[], char *const argv[], char *const envp[], diff --git a/Python/marshal.c b/Python/marshal.c index 60b818f0dda4a..346384edea618 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -891,7 +891,7 @@ r_float_bin(RFILE *p) /* Issue #33720: Disable inlining for reducing the C stack consumption on PGO builds. */ -_Py_NO_INLINE static double +Py_NO_INLINE static double r_float_str(RFILE *p) { int n; From webhook-mailer at python.org Fri Sep 3 10:45:10 2021 From: webhook-mailer at python.org (vstinner) Date: Fri, 03 Sep 2021 14:45:10 -0000 Subject: [Python-checkins] bpo-45094: Add Py_NO_INLINE macro (GH-28140) Message-ID: https://github.com/python/cpython/commit/7974c30b9fd84fa56ea1515ed2c08b38edf1a383 commit: 7974c30b9fd84fa56ea1515ed2c08b38edf1a383 branch: main author: Victor Stinner committer: vstinner date: 2021-09-03T16:44:02+02:00 summary: bpo-45094: Add Py_NO_INLINE macro (GH-28140) * Rename _Py_NO_INLINE macro to Py_NO_INLINE: make it public and document it. * Sort macros in the C API documentation. files: A Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst M Doc/c-api/intro.rst M Include/pymath.h M Include/pyport.h M Modules/_functoolsmodule.c M Modules/_io/bytesio.c M Modules/_posixsubprocess.c M Python/marshal.c diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 2d85d30702df9..83824bb474fbd 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -105,45 +105,63 @@ defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). Others of a more general utility are defined here. This is not necessarily a complete listing. -.. c:macro:: Py_UNREACHABLE() +.. c:macro:: Py_ABS(x) - Use this when you have a code path that cannot be reached by design. - For example, in the ``default:`` clause in a ``switch`` statement for which - all possible values are covered in ``case`` statements. Use this in places - where you might be tempted to put an ``assert(0)`` or ``abort()`` call. + Return the absolute value of ``x``. - In release mode, the macro helps the compiler to optimize the code, and - avoids a warning about unreachable code. For example, the macro is - implemented with ``__builtin_unreachable()`` on GCC in release mode. + .. versionadded:: 3.3 - A use for ``Py_UNREACHABLE()`` is following a call a function that - never returns but that is not declared :c:macro:`_Py_NO_RETURN`. +.. c:macro:: Py_CHARMASK(c) - If a code path is very unlikely code but can be reached under exceptional - case, this macro must not be used. For example, under low memory condition - or if a system call returns a value out of the expected range. In this - case, it's better to report the error to the caller. If the error cannot - be reported to caller, :c:func:`Py_FatalError` can be used. + Argument must be a character or an integer in the range [-128, 127] or [0, + 255]. This macro returns ``c`` cast to an ``unsigned char``. - .. versionadded:: 3.7 +.. c:macro:: Py_DEPRECATED(version) -.. c:macro:: Py_ABS(x) + Use this for deprecated declarations. The macro must be placed before the + symbol name. - Return the absolute value of ``x``. + Example:: + + Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); + + .. versionchanged:: 3.8 + MSVC support was added. + +.. c:macro:: Py_GETENV(s) + + Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the + command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + +.. c:macro:: Py_MAX(x, y) + + Return the maximum value between ``x`` and ``y``. .. versionadded:: 3.3 +.. c:macro:: Py_MEMBER_SIZE(type, member) + + Return the size of a structure (``type``) ``member`` in bytes. + + .. versionadded:: 3.6 + .. c:macro:: Py_MIN(x, y) Return the minimum value between ``x`` and ``y``. .. versionadded:: 3.3 -.. c:macro:: Py_MAX(x, y) +.. c:macro:: Py_NO_INLINE - Return the maximum value between ``x`` and ``y``. + Disable inlining on a function. For example, it reduces the C stack + consumption: useful on LTO+PGO builds which heavily inline code (see + :issue:`33720`). - .. versionadded:: 3.3 + Usage:: + + Py_NO_INLINE static int random(void) { return 4; } + + .. versionadded:: 3.11 .. c:macro:: Py_STRINGIFY(x) @@ -152,21 +170,27 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_MEMBER_SIZE(type, member) - - Return the size of a structure (``type``) ``member`` in bytes. +.. c:macro:: Py_UNREACHABLE() - .. versionadded:: 3.6 + Use this when you have a code path that cannot be reached by design. + For example, in the ``default:`` clause in a ``switch`` statement for which + all possible values are covered in ``case`` statements. Use this in places + where you might be tempted to put an ``assert(0)`` or ``abort()`` call. -.. c:macro:: Py_CHARMASK(c) + In release mode, the macro helps the compiler to optimize the code, and + avoids a warning about unreachable code. For example, the macro is + implemented with ``__builtin_unreachable()`` on GCC in release mode. - Argument must be a character or an integer in the range [-128, 127] or [0, - 255]. This macro returns ``c`` cast to an ``unsigned char``. + A use for ``Py_UNREACHABLE()`` is following a call a function that + never returns but that is not declared :c:macro:`_Py_NO_RETURN`. -.. c:macro:: Py_GETENV(s) + If a code path is very unlikely code but can be reached under exceptional + case, this macro must not be used. For example, under low memory condition + or if a system call returns a value out of the expected range. In this + case, it's better to report the error to the caller. If the error cannot + be reported to caller, :c:func:`Py_FatalError` can be used. - Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the - command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + .. versionadded:: 3.7 .. c:macro:: Py_UNUSED(arg) @@ -175,18 +199,6 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_DEPRECATED(version) - - Use this for deprecated declarations. The macro must be placed before the - symbol name. - - Example:: - - Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); - - .. versionchanged:: 3.8 - MSVC support was added. - .. c:macro:: PyDoc_STRVAR(name, str) Creates a variable with name ``name`` that can be used in docstrings. @@ -221,6 +233,7 @@ complete listing. {NULL, NULL} }; + .. _api-objects: Objects, Types and Reference Counts diff --git a/Include/pymath.h b/Include/pymath.h index f869724334a4c..ebb3b05f1b53c 100644 --- a/Include/pymath.h +++ b/Include/pymath.h @@ -163,12 +163,7 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short); #pragma float_control(push) #pragma float_control(precise, on) #pragma float_control(except, on) - #if defined(_MSC_VER) - __declspec(noinline) - #else /* Linux */ - __attribute__((noinline)) - #endif /* _MSC_VER */ - static double __icc_nan() + Py_NO_INLINE static double __icc_nan() { return sqrt(-1.0); } diff --git a/Include/pyport.h b/Include/pyport.h index b2b53dd2f771b..0aaa4eedd31a1 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -557,19 +557,20 @@ extern "C" { #define _Py_HOT_FUNCTION #endif -/* _Py_NO_INLINE - * Disable inlining on a function. For example, it helps to reduce the C stack - * consumption. - * - * Usage: - * int _Py_NO_INLINE x(void) { return 3; } - */ -#if defined(_MSC_VER) -# define _Py_NO_INLINE __declspec(noinline) -#elif defined(__GNUC__) || defined(__clang__) -# define _Py_NO_INLINE __attribute__ ((noinline)) +// Py_NO_INLINE +// Disable inlining on a function. For example, it reduces the C stack +// consumption: useful on LTO+PGO builds which heavily inline code (see +// bpo-33720). +// +// Usage: +// +// Py_NO_INLINE static int random(void) { return 4; } +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_NO_INLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +# define Py_NO_INLINE __declspec(noinline) #else -# define _Py_NO_INLINE +# define Py_NO_INLINE #endif /************************************************************************** diff --git a/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst new file mode 100644 index 0000000000000..84b01b23b435f --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst @@ -0,0 +1,2 @@ +Add the :c:macro:`Py_NO_INLINE` macro to disable inlining on a function. +Patch by Victor Stinner. diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index fa1452168094b..a93c0be6a149a 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -186,7 +186,7 @@ partial_dealloc(partialobject *pto) /* Merging keyword arguments using the vectorcall convention is messy, so * if we would need to do that, we stop using vectorcall and fall back * to using partial_call() instead. */ -_Py_NO_INLINE static PyObject * +Py_NO_INLINE static PyObject * partial_vectorcall_fallback(PyThreadState *tstate, partialobject *pto, PyObject *const *args, size_t nargsf, PyObject *kwnames) diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index 2468f45f941e2..930ef7e29dbcf 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -176,7 +176,7 @@ resize_buffer(bytesio *self, size_t size) object. Returns the number of bytes written, or -1 on error. Inlining is disabled because it's significantly decreases performance of writelines() in PGO build. */ -_Py_NO_INLINE static Py_ssize_t +Py_NO_INLINE static Py_ssize_t write_bytes(bytesio *self, PyObject *b) { if (check_closed(self)) { diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index a58159a277bea..63207de8b9137 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -451,7 +451,7 @@ reset_signal_handlers(const sigset_t *child_sigmask) * If vfork-unsafe functionality is desired after vfork(), consider using * syscall() to obtain it. */ -_Py_NO_INLINE static void +Py_NO_INLINE static void child_exec(char *const exec_array[], char *const argv[], char *const envp[], @@ -650,7 +650,7 @@ child_exec(char *const exec_array[], * child_exec() should not be inlined to avoid spurious -Wclobber warnings from * GCC (see bpo-35823). */ -_Py_NO_INLINE static pid_t +Py_NO_INLINE static pid_t do_fork_exec(char *const exec_array[], char *const argv[], char *const envp[], diff --git a/Python/marshal.c b/Python/marshal.c index 60b818f0dda4a..346384edea618 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -891,7 +891,7 @@ r_float_bin(RFILE *p) /* Issue #33720: Disable inlining for reducing the C stack consumption on PGO builds. */ -_Py_NO_INLINE static double +Py_NO_INLINE static double r_float_str(RFILE *p) { int n; From webhook-mailer at python.org Fri Sep 3 10:45:17 2021 From: webhook-mailer at python.org (vstinner) Date: Fri, 03 Sep 2021 14:45:17 -0000 Subject: [Python-checkins] bpo-45094: Add Py_NO_INLINE macro (GH-28140) Message-ID: https://github.com/python/cpython/commit/7974c30b9fd84fa56ea1515ed2c08b38edf1a383 commit: 7974c30b9fd84fa56ea1515ed2c08b38edf1a383 branch: main author: Victor Stinner committer: vstinner date: 2021-09-03T16:44:02+02:00 summary: bpo-45094: Add Py_NO_INLINE macro (GH-28140) * Rename _Py_NO_INLINE macro to Py_NO_INLINE: make it public and document it. * Sort macros in the C API documentation. files: A Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst M Doc/c-api/intro.rst M Include/pymath.h M Include/pyport.h M Modules/_functoolsmodule.c M Modules/_io/bytesio.c M Modules/_posixsubprocess.c M Python/marshal.c diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 2d85d30702df9..83824bb474fbd 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -105,45 +105,63 @@ defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). Others of a more general utility are defined here. This is not necessarily a complete listing. -.. c:macro:: Py_UNREACHABLE() +.. c:macro:: Py_ABS(x) - Use this when you have a code path that cannot be reached by design. - For example, in the ``default:`` clause in a ``switch`` statement for which - all possible values are covered in ``case`` statements. Use this in places - where you might be tempted to put an ``assert(0)`` or ``abort()`` call. + Return the absolute value of ``x``. - In release mode, the macro helps the compiler to optimize the code, and - avoids a warning about unreachable code. For example, the macro is - implemented with ``__builtin_unreachable()`` on GCC in release mode. + .. versionadded:: 3.3 - A use for ``Py_UNREACHABLE()`` is following a call a function that - never returns but that is not declared :c:macro:`_Py_NO_RETURN`. +.. c:macro:: Py_CHARMASK(c) - If a code path is very unlikely code but can be reached under exceptional - case, this macro must not be used. For example, under low memory condition - or if a system call returns a value out of the expected range. In this - case, it's better to report the error to the caller. If the error cannot - be reported to caller, :c:func:`Py_FatalError` can be used. + Argument must be a character or an integer in the range [-128, 127] or [0, + 255]. This macro returns ``c`` cast to an ``unsigned char``. - .. versionadded:: 3.7 +.. c:macro:: Py_DEPRECATED(version) -.. c:macro:: Py_ABS(x) + Use this for deprecated declarations. The macro must be placed before the + symbol name. - Return the absolute value of ``x``. + Example:: + + Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); + + .. versionchanged:: 3.8 + MSVC support was added. + +.. c:macro:: Py_GETENV(s) + + Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the + command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + +.. c:macro:: Py_MAX(x, y) + + Return the maximum value between ``x`` and ``y``. .. versionadded:: 3.3 +.. c:macro:: Py_MEMBER_SIZE(type, member) + + Return the size of a structure (``type``) ``member`` in bytes. + + .. versionadded:: 3.6 + .. c:macro:: Py_MIN(x, y) Return the minimum value between ``x`` and ``y``. .. versionadded:: 3.3 -.. c:macro:: Py_MAX(x, y) +.. c:macro:: Py_NO_INLINE - Return the maximum value between ``x`` and ``y``. + Disable inlining on a function. For example, it reduces the C stack + consumption: useful on LTO+PGO builds which heavily inline code (see + :issue:`33720`). - .. versionadded:: 3.3 + Usage:: + + Py_NO_INLINE static int random(void) { return 4; } + + .. versionadded:: 3.11 .. c:macro:: Py_STRINGIFY(x) @@ -152,21 +170,27 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_MEMBER_SIZE(type, member) - - Return the size of a structure (``type``) ``member`` in bytes. +.. c:macro:: Py_UNREACHABLE() - .. versionadded:: 3.6 + Use this when you have a code path that cannot be reached by design. + For example, in the ``default:`` clause in a ``switch`` statement for which + all possible values are covered in ``case`` statements. Use this in places + where you might be tempted to put an ``assert(0)`` or ``abort()`` call. -.. c:macro:: Py_CHARMASK(c) + In release mode, the macro helps the compiler to optimize the code, and + avoids a warning about unreachable code. For example, the macro is + implemented with ``__builtin_unreachable()`` on GCC in release mode. - Argument must be a character or an integer in the range [-128, 127] or [0, - 255]. This macro returns ``c`` cast to an ``unsigned char``. + A use for ``Py_UNREACHABLE()`` is following a call a function that + never returns but that is not declared :c:macro:`_Py_NO_RETURN`. -.. c:macro:: Py_GETENV(s) + If a code path is very unlikely code but can be reached under exceptional + case, this macro must not be used. For example, under low memory condition + or if a system call returns a value out of the expected range. In this + case, it's better to report the error to the caller. If the error cannot + be reported to caller, :c:func:`Py_FatalError` can be used. - Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the - command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set). + .. versionadded:: 3.7 .. c:macro:: Py_UNUSED(arg) @@ -175,18 +199,6 @@ complete listing. .. versionadded:: 3.4 -.. c:macro:: Py_DEPRECATED(version) - - Use this for deprecated declarations. The macro must be placed before the - symbol name. - - Example:: - - Py_DEPRECATED(3.8) PyAPI_FUNC(int) Py_OldFunction(void); - - .. versionchanged:: 3.8 - MSVC support was added. - .. c:macro:: PyDoc_STRVAR(name, str) Creates a variable with name ``name`` that can be used in docstrings. @@ -221,6 +233,7 @@ complete listing. {NULL, NULL} }; + .. _api-objects: Objects, Types and Reference Counts diff --git a/Include/pymath.h b/Include/pymath.h index f869724334a4c..ebb3b05f1b53c 100644 --- a/Include/pymath.h +++ b/Include/pymath.h @@ -163,12 +163,7 @@ PyAPI_FUNC(void) _Py_set_387controlword(unsigned short); #pragma float_control(push) #pragma float_control(precise, on) #pragma float_control(except, on) - #if defined(_MSC_VER) - __declspec(noinline) - #else /* Linux */ - __attribute__((noinline)) - #endif /* _MSC_VER */ - static double __icc_nan() + Py_NO_INLINE static double __icc_nan() { return sqrt(-1.0); } diff --git a/Include/pyport.h b/Include/pyport.h index b2b53dd2f771b..0aaa4eedd31a1 100644 --- a/Include/pyport.h +++ b/Include/pyport.h @@ -557,19 +557,20 @@ extern "C" { #define _Py_HOT_FUNCTION #endif -/* _Py_NO_INLINE - * Disable inlining on a function. For example, it helps to reduce the C stack - * consumption. - * - * Usage: - * int _Py_NO_INLINE x(void) { return 3; } - */ -#if defined(_MSC_VER) -# define _Py_NO_INLINE __declspec(noinline) -#elif defined(__GNUC__) || defined(__clang__) -# define _Py_NO_INLINE __attribute__ ((noinline)) +// Py_NO_INLINE +// Disable inlining on a function. For example, it reduces the C stack +// consumption: useful on LTO+PGO builds which heavily inline code (see +// bpo-33720). +// +// Usage: +// +// Py_NO_INLINE static int random(void) { return 4; } +#if defined(__GNUC__) || defined(__clang__) || defined(__INTEL_COMPILER) +# define Py_NO_INLINE __attribute__ ((noinline)) +#elif defined(_MSC_VER) +# define Py_NO_INLINE __declspec(noinline) #else -# define _Py_NO_INLINE +# define Py_NO_INLINE #endif /************************************************************************** diff --git a/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst new file mode 100644 index 0000000000000..84b01b23b435f --- /dev/null +++ b/Misc/NEWS.d/next/C API/2021-09-03-15-53-43.bpo-45094.tinXwL.rst @@ -0,0 +1,2 @@ +Add the :c:macro:`Py_NO_INLINE` macro to disable inlining on a function. +Patch by Victor Stinner. diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c index fa1452168094b..a93c0be6a149a 100644 --- a/Modules/_functoolsmodule.c +++ b/Modules/_functoolsmodule.c @@ -186,7 +186,7 @@ partial_dealloc(partialobject *pto) /* Merging keyword arguments using the vectorcall convention is messy, so * if we would need to do that, we stop using vectorcall and fall back * to using partial_call() instead. */ -_Py_NO_INLINE static PyObject * +Py_NO_INLINE static PyObject * partial_vectorcall_fallback(PyThreadState *tstate, partialobject *pto, PyObject *const *args, size_t nargsf, PyObject *kwnames) diff --git a/Modules/_io/bytesio.c b/Modules/_io/bytesio.c index 2468f45f941e2..930ef7e29dbcf 100644 --- a/Modules/_io/bytesio.c +++ b/Modules/_io/bytesio.c @@ -176,7 +176,7 @@ resize_buffer(bytesio *self, size_t size) object. Returns the number of bytes written, or -1 on error. Inlining is disabled because it's significantly decreases performance of writelines() in PGO build. */ -_Py_NO_INLINE static Py_ssize_t +Py_NO_INLINE static Py_ssize_t write_bytes(bytesio *self, PyObject *b) { if (check_closed(self)) { diff --git a/Modules/_posixsubprocess.c b/Modules/_posixsubprocess.c index a58159a277bea..63207de8b9137 100644 --- a/Modules/_posixsubprocess.c +++ b/Modules/_posixsubprocess.c @@ -451,7 +451,7 @@ reset_signal_handlers(const sigset_t *child_sigmask) * If vfork-unsafe functionality is desired after vfork(), consider using * syscall() to obtain it. */ -_Py_NO_INLINE static void +Py_NO_INLINE static void child_exec(char *const exec_array[], char *const argv[], char *const envp[], @@ -650,7 +650,7 @@ child_exec(char *const exec_array[], * child_exec() should not be inlined to avoid spurious -Wclobber warnings from * GCC (see bpo-35823). */ -_Py_NO_INLINE static pid_t +Py_NO_INLINE static pid_t do_fork_exec(char *const exec_array[], char *const argv[], char *const envp[], diff --git a/Python/marshal.c b/Python/marshal.c index 60b818f0dda4a..346384edea618 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -891,7 +891,7 @@ r_float_bin(RFILE *p) /* Issue #33720: Disable inlining for reducing the C stack consumption on PGO builds. */ -_Py_NO_INLINE static double +Py_NO_INLINE static double r_float_str(RFILE *p) { int n; From webhook-mailer at python.org Fri Sep 3 11:29:17 2021 From: webhook-mailer at python.org (isidentical) Date: Fri, 03 Sep 2021 15:29:17 -0000 Subject: [Python-checkins] bpo-43950: support positions for dis.Instructions created through dis.Bytecode (GH-28142) Message-ID: https://github.com/python/cpython/commit/85ea2d6165dec0cffa6302eb6dc40406eae1edf5 commit: 85ea2d6165dec0cffa6302eb6dc40406eae1edf5 branch: main author: Batuhan Taskaya committer: isidentical date: 2021-09-03T18:29:09+03:00 summary: bpo-43950: support positions for dis.Instructions created through dis.Bytecode (GH-28142) files: M Lib/dis.py M Lib/test/test_dis.py diff --git a/Lib/dis.py b/Lib/dis.py index 3cacd9a44a97e0..66487dce0eefc0 100644 --- a/Lib/dis.py +++ b/Lib/dis.py @@ -564,7 +564,8 @@ def __iter__(self): co.co_names, co.co_consts, self._linestarts, line_offset=self._line_offset, - exception_entries=self.exception_entries) + exception_entries=self.exception_entries, + co_positions=co.co_positions()) def __repr__(self): return "{}({!r})".format(self.__class__.__name__, diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py index b6bd88c2e42f53..b97e41cdfab5ec 100644 --- a/Lib/test/test_dis.py +++ b/Lib/test/test_dis.py @@ -1302,6 +1302,11 @@ def test_from_traceback_dis(self): b = dis.Bytecode.from_traceback(tb) self.assertEqual(b.dis(), dis_traceback) + @requires_debug_ranges() + def test_bytecode_co_positions(self): + bytecode = dis.Bytecode("a=1") + for instr, positions in zip(bytecode, bytecode.codeobj.co_positions()): + assert instr.positions == positions class TestBytecodeTestCase(BytecodeTestCase): def test_assert_not_in_with_op_not_in_bytecode(self): From webhook-mailer at python.org Fri Sep 3 12:21:08 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 16:21:08 -0000 Subject: [Python-checkins] bpo-42255: Deprecate webbrowser.MacOSX from Python 3.11 (GH-27837) Message-ID: https://github.com/python/cpython/commit/bc1c49fa94b2abf70e6937373bf1e6b5378035c5 commit: bc1c49fa94b2abf70e6937373bf1e6b5378035c5 branch: main author: Dong-hee Na committer: ambv date: 2021-09-03T18:21:03+02:00 summary: bpo-42255: Deprecate webbrowser.MacOSX from Python 3.11 (GH-27837) Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Library/2021-08-19-23-49-10.bpo-42255.ofe3ms.rst M Doc/library/webbrowser.rst M Doc/whatsnew/3.11.rst M Lib/webbrowser.py diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index bd0919164d8fa0..27e0b51ccf8965 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -143,9 +143,9 @@ for the controller classes, all defined in this module. +------------------------+-----------------------------------------+-------+ | ``'windows-default'`` | :class:`WindowsDefault` | \(2) | +------------------------+-----------------------------------------+-------+ -| ``'macosx'`` | :class:`MacOSX('default')` | \(3) | +| ``'macosx'`` | :class:`MacOSXOSAScript('default')` | \(3) | +------------------------+-----------------------------------------+-------+ -| ``'safari'`` | :class:`MacOSX('safari')` | \(3) | +| ``'safari'`` | :class:`MacOSXOSAScript('safari')` | \(3) | +------------------------+-----------------------------------------+-------+ | ``'google-chrome'`` | :class:`Chrome('google-chrome')` | | +------------------------+-----------------------------------------+-------+ @@ -174,6 +174,9 @@ Notes: .. versionadded:: 3.3 Support for Chrome/Chromium has been added. +.. deprecated-removed:: 3.11 3.13 + :class:`MacOSX` is deprecated, use :class:`MacOSXOSAScript` instead. + Here are some simple examples:: url = 'https://docs.python.org/' diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index d6a95a2e3175c7..896a292c3356e8 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -292,6 +292,10 @@ Deprecated Python 3.10 or newer. See the :pep:`617` (New PEG parser for CPython). (Contributed by Victor Stinner in :issue:`40360`.) +* :class:`webbrowser.MacOSX` is deprecated and will be removed in Python 3.13. + It is untested and undocumented and also not used by webbrowser itself. + (Contributed by Dong-hee Na in :issue:`42255`.) + Removed ======= diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py index ec3cece48c9587..d8a9915cac5f6f 100755 --- a/Lib/webbrowser.py +++ b/Lib/webbrowser.py @@ -8,6 +8,7 @@ import sys import subprocess import threading +import warnings __all__ = ["Error", "open", "open_new", "open_new_tab", "get", "register"] @@ -629,6 +630,8 @@ class MacOSX(BaseBrowser): Internet System Preferences panel, will be used. """ def __init__(self, name): + warnings.warn(f'{self.__class__.__name__} is deprecated in 3.11' + ' use MacOSXOSAScript instead.', DeprecationWarning, stacklevel=2) self.name = name def open(self, url, new=0, autoraise=True): diff --git a/Misc/NEWS.d/next/Library/2021-08-19-23-49-10.bpo-42255.ofe3ms.rst b/Misc/NEWS.d/next/Library/2021-08-19-23-49-10.bpo-42255.ofe3ms.rst new file mode 100644 index 00000000000000..84a02c4c3fb2b4 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-19-23-49-10.bpo-42255.ofe3ms.rst @@ -0,0 +1,3 @@ +:class:`webbrowser.MacOSX` is deprecated and will be removed in Python 3.13. +It is untested and undocumented and also not used by webbrowser itself. +Patch by Dong-hee Na. From webhook-mailer at python.org Fri Sep 3 12:53:20 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 16:53:20 -0000 Subject: [Python-checkins] bpo-45022: Pin current libffi build to fixed version in preparation for upcoming update (GH-27982) (GH-28001) Message-ID: https://github.com/python/cpython/commit/8c3a10e58b12608c3759fee684e7aa399facae2a commit: 8c3a10e58b12608c3759fee684e7aa399facae2a branch: 3.8 author: Steve Dower committer: ambv date: 2021-09-03T18:53:12+02:00 summary: bpo-45022: Pin current libffi build to fixed version in preparation for upcoming update (GH-27982) (GH-28001) Also improve the build script for libffi, which is not used as part of the regular build. (cherry picked from commit 969ae7f7356584e30667b4e490ffa2ffa1810429) Co-authored-by: Steve Dower files: M PCbuild/get_externals.bat M PCbuild/prepare_libffi.bat M PCbuild/python.props diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat index ad92c303ee5368..d975f05d8f3a94 100644 --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -52,7 +52,7 @@ echo.Fetching external libraries... set libraries= set libraries=%libraries% bzip2-1.0.6 -if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.3.0-rc0-r1 +if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.3.0 if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1l set libraries=%libraries% sqlite-3.35.5.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.9.0 @@ -76,7 +76,7 @@ for %%e in (%libraries%) do ( echo.Fetching external binaries... set binaries= -if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi +if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.3.0 if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1l if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.9.0 if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06 diff --git a/PCbuild/prepare_libffi.bat b/PCbuild/prepare_libffi.bat index 922a47565c8da5..7e7842a2fc97a4 100644 --- a/PCbuild/prepare_libffi.bat +++ b/PCbuild/prepare_libffi.bat @@ -38,6 +38,7 @@ set BUILD_ARM32= set BUILD_ARM64= set BUILD_PDB= set BUILD_NOOPT= +set COPY_LICENSE= set INSTALL_CYGWIN= :CheckOpts @@ -49,6 +50,7 @@ if /I "%1"=="-arm32" (set BUILD_ARM32=1) & shift & goto :CheckOpts if /I "%1"=="-arm64" (set BUILD_ARM64=1) & shift & goto :CheckOpts if /I "%1"=="-pdb" (set BUILD_PDB=-g) & shift & goto :CheckOpts if /I "%1"=="-noopt" (set BUILD_NOOPT=CFLAGS='-Od -warn all') & shift & goto :CheckOpts +if /I "%1"=="-license" (set COPY_LICENSE=1) & shift & goto :CheckOpts if /I "%1"=="-?" goto :Usage if /I "%1"=="--install-cygwin" (set INSTALL_CYGWIN=1) & shift & goto :CheckOpts goto :Usage @@ -60,6 +62,7 @@ if NOT DEFINED BUILD_X64 if NOT DEFINED BUILD_X86 if NOT DEFINED BUILD_ARM32 if set BUILD_X86=1 set BUILD_ARM32=1 set BUILD_ARM64=1 + set COPY_LICENSE=1 ) if "%INSTALL_CYGWIN%"=="1" call :InstallCygwin @@ -98,9 +101,14 @@ if not exist Makefile.in ( ) if "%BUILD_X64%"=="1" call :BuildOne x64 x86_64-w64-cygwin x86_64-w64-cygwin +if errorlevel 1 exit /B %ERRORLEVEL% if "%BUILD_X86%"=="1" call :BuildOne x86 i686-pc-cygwin i686-pc-cygwin +if errorlevel 1 exit /B %ERRORLEVEL% if "%BUILD_ARM32%"=="1" call :BuildOne x86_arm i686-pc-cygwin arm-w32-cygwin +if errorlevel 1 exit /B %ERRORLEVEL% if "%BUILD_ARM64%"=="1" call :BuildOne x86_arm64 i686-pc-cygwin aarch64-w64-cygwin +if errorlevel 1 exit /B %ERRORLEVEL% +if "%COPY_LICENSE%"=="1" copy /y "%LIBFFI_SOURCE%\LICENSE" "%LIBFFI_OUT%\LICENSE" popd endlocal @@ -179,11 +187,11 @@ if "%LIBFFI_TEST%" EQU "1" ( echo copying files to %_LIBFFI_OUT% if not exist %_LIBFFI_OUT%\include (md %_LIBFFI_OUT%\include) -copy %ARTIFACTS%\.libs\libffi-7.dll %_LIBFFI_OUT% -copy %ARTIFACTS%\.libs\libffi-7.lib %_LIBFFI_OUT% -copy %ARTIFACTS%\.libs\libffi-7.pdb %_LIBFFI_OUT% -copy %ARTIFACTS%\fficonfig.h %_LIBFFI_OUT%\include -copy %ARTIFACTS%\include\*.h %_LIBFFI_OUT%\include +copy %ARTIFACTS%\.libs\libffi-*.dll %_LIBFFI_OUT% || exit /B 1 +copy %ARTIFACTS%\.libs\libffi-*.lib %_LIBFFI_OUT% || exit /B 1 +copy %ARTIFACTS%\.libs\libffi-*.pdb %_LIBFFI_OUT% +copy %ARTIFACTS%\fficonfig.h %_LIBFFI_OUT%\include || exit /B 1 +copy %ARTIFACTS%\include\*.h %_LIBFFI_OUT%\include || exit /B 1 endlocal exit /b diff --git a/PCbuild/python.props b/PCbuild/python.props index 6e03cc762da76e..295b7293f9d7bb 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -59,8 +59,8 @@ $(ExternalsDir)sqlite-3.35.5.0\ $(ExternalsDir)bzip2-1.0.6\ $(ExternalsDir)xz-5.2.2\ - $(ExternalsDir)libffi\ - $(ExternalsDir)libffi\$(ArchName)\ + $(ExternalsDir)libffi-3.3.0\ + $(ExternalsDir)libffi-3.3.0\$(ArchName)\ $(libffiOutDir)include $(ExternalsDir)openssl-1.1.1l\ $(ExternalsDir)openssl-bin-1.1.1l\$(ArchName)\ From webhook-mailer at python.org Fri Sep 3 12:56:13 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 16:56:13 -0000 Subject: [Python-checkins] [3.9] bpo-45083: Include the exception class qualname when formatting an exception (GH-28119) (GH-28135) Message-ID: https://github.com/python/cpython/commit/41c23740243cc3a0699bc4d5dcfd47a0007ff039 commit: 41c23740243cc3a0699bc4d5dcfd47a0007ff039 branch: 3.9 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ambv date: 2021-09-03T18:56:05+02:00 summary: [3.9] bpo-45083: Include the exception class qualname when formatting an exception (GH-28119) (GH-28135) * bpo-45083: Include the exception class qualname when formatting an exception (GH-28119) Co-authored-by: Erlend Egeberg Aasland (cherry picked from commit b4b6342848ec0459182a992151099252434cc619) Co-authored-by: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> Co-authored-by: ?ukasz Langa files: A Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst M Include/internal/pycore_object.h M Lib/test/test_sys.py M Lib/test/test_traceback.py M Objects/typeobject.c M Python/errors.c M Python/pythonrun.c diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 32e86d06db5b4..c66ff12d7ec5a 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -15,6 +15,9 @@ extern "C" { PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type); PyAPI_FUNC(int) _PyDict_CheckConsistency(PyObject *mp, int check_content); +/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */ +extern PyObject *_PyType_GetQualName(PyTypeObject *type); + /* Tell the GC to track this object. * * NB: While the object is tracked by the collector, it must be safe to call the diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index ed9b1770ab55f..f277c92c408d5 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -1005,6 +1005,20 @@ def __del__(self): self.assertIn("del is broken", report) self.assertTrue(report.endswith("\n")) + def test_original_unraisablehook_exception_qualname(self): + class A: + class B: + class X(Exception): + pass + + with test.support.captured_stderr() as stderr, \ + test.support.swap_attr(sys, 'unraisablehook', + sys.__unraisablehook__): + expected = self.write_unraisable_exc( + A.B.X(), "msg", "obj"); + report = stderr.getvalue() + testName = 'test_original_unraisablehook_exception_qualname' + self.assertIn(f"{testName}..A.B.X", report) def test_original_unraisablehook_wrong_type(self): exc = ValueError(42) diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 987fcb955087e..8d9d514d8deaa 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -759,6 +759,19 @@ def test_syntax_error_various_offsets(self): exp = "\n".join(expected) self.assertEqual(exp, err) + def test_format_exception_only_qualname(self): + class A: + class B: + class X(Exception): + def __str__(self): + return "I am X" + pass + err = self.get_report(A.B.X()) + str_value = 'I am X' + str_name = '.'.join([A.B.X.__module__, A.B.X.__qualname__]) + exp = "%s: %s\n" % (str_name, str_value) + self.assertEqual(exp, err) + class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase): # diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst new file mode 100644 index 0000000000000..7bfd87b942059 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-23-55-49.bpo-45083.cLi9G3.rst @@ -0,0 +1,3 @@ +When the interpreter renders an exception, its name now has a complete qualname. Previously only the class name was concatenated to the module name, which sometimes resulted in an incorrect full name being displayed. + +(This issue impacted only the C code exception rendering, the :mod:`traceback` module was using qualname already). \ No newline at end of file diff --git a/Objects/typeobject.c b/Objects/typeobject.c index f201515d7db33..feae25f2eb367 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3119,6 +3119,14 @@ PyType_FromSpec(PyType_Spec *spec) return PyType_FromSpecWithBases(spec, NULL); } +/* private in 3.10 and 3.9.8+; public in 3.11 */ +PyObject * +_PyType_GetQualName(PyTypeObject *type) +{ + return type_qualname(type, NULL); +} + + void * PyType_GetSlot(PyTypeObject *type, int slot) { diff --git a/Python/errors.c b/Python/errors.c index 8a2ba8f9d7163..40d8e68bde783 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -3,6 +3,7 @@ #include "Python.h" #include "pycore_initconfig.h" +#include "pycore_object.h" // _PyType_GetQualName #include "pycore_pyerrors.h" #include "pycore_pystate.h" // _PyThreadState_GET() #include "pycore_sysmodule.h" @@ -1321,46 +1322,45 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type, } assert(PyExceptionClass_Check(exc_type)); - const char *className = PyExceptionClass_Name(exc_type); - if (className != NULL) { - const char *dot = strrchr(className, '.'); - if (dot != NULL) { - className = dot+1; - } - } - PyObject *moduleName = _PyObject_GetAttrId(exc_type, &PyId___module__); - if (moduleName == NULL || !PyUnicode_Check(moduleName)) { - Py_XDECREF(moduleName); + PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__); + if (modulename == NULL || !PyUnicode_Check(modulename)) { + Py_XDECREF(modulename); _PyErr_Clear(tstate); if (PyFile_WriteString("", file) < 0) { return -1; } } else { - if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) { - if (PyFile_WriteObject(moduleName, file, Py_PRINT_RAW) < 0) { - Py_DECREF(moduleName); + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) { + if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) { + Py_DECREF(modulename); return -1; } - Py_DECREF(moduleName); + Py_DECREF(modulename); if (PyFile_WriteString(".", file) < 0) { return -1; } } else { - Py_DECREF(moduleName); + Py_DECREF(modulename); } } - if (className == NULL) { + + PyObject *qualname = _PyType_GetQualName((PyTypeObject *)exc_type); + if (qualname == NULL || !PyUnicode_Check(qualname)) { + Py_XDECREF(qualname); + _PyErr_Clear(tstate); if (PyFile_WriteString("", file) < 0) { return -1; } } else { - if (PyFile_WriteString(className, file) < 0) { + if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) { + Py_DECREF(qualname); return -1; } + Py_DECREF(qualname); } if (exc_value && exc_value != Py_None) { diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 34cfb7f4b4fd7..8cdbb3790fbcf 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -14,7 +14,8 @@ #undef Yield /* undefine macro conflicting with */ #include "pycore_interp.h" // PyInterpreterState.importlib -#include "pycore_object.h" // _PyDebug_PrintTotalRefs() +#include "pycore_object.h" // _PyDebug_PrintTotalRefs(), + // _PyType_GetQualName() #include "pycore_pyerrors.h" // _PyErr_Fetch #include "pycore_pylifecycle.h" // _Py_UnhandledKeyboardInterrupt #include "pycore_pystate.h" // _PyInterpreterState_GET() @@ -892,36 +893,37 @@ print_exception(PyObject *f, PyObject *value) /* Don't do anything else */ } else { - PyObject* moduleName; - const char *className; + PyObject* modulename; + _Py_IDENTIFIER(__module__); assert(PyExceptionClass_Check(type)); - className = PyExceptionClass_Name(type); - if (className != NULL) { - const char *dot = strrchr(className, '.'); - if (dot != NULL) - className = dot+1; - } - moduleName = _PyObject_GetAttrId(type, &PyId___module__); - if (moduleName == NULL || !PyUnicode_Check(moduleName)) + modulename = _PyObject_GetAttrId(type, &PyId___module__); + if (modulename == NULL || !PyUnicode_Check(modulename)) { - Py_XDECREF(moduleName); + Py_XDECREF(modulename); + PyErr_Clear(); err = PyFile_WriteString("", f); } else { - if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) { - err = PyFile_WriteObject(moduleName, f, Py_PRINT_RAW); + err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW); err += PyFile_WriteString(".", f); } - Py_DECREF(moduleName); + Py_DECREF(modulename); } if (err == 0) { - if (className == NULL) - err = PyFile_WriteString("", f); - else - err = PyFile_WriteString(className, f); + PyObject* qualname = _PyType_GetQualName((PyTypeObject *)type); + if (qualname == NULL || !PyUnicode_Check(qualname)) { + Py_XDECREF(qualname); + PyErr_Clear(); + err = PyFile_WriteString("", f); + } + else { + err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW); + Py_DECREF(qualname); + } } } if (err == 0 && (value != Py_None)) { From webhook-mailer at python.org Fri Sep 3 13:22:09 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 17:22:09 -0000 Subject: [Python-checkins] bpo-42255: Update webbrowser doc for macOS (GH-28145) Message-ID: https://github.com/python/cpython/commit/ce83e42437b8e5a4bf4237f981a7a90401922456 commit: ce83e42437b8e5a4bf4237f981a7a90401922456 branch: 3.9 author: Dong-hee Na committer: ambv date: 2021-09-03T19:22:01+02:00 summary: bpo-42255: Update webbrowser doc for macOS (GH-28145) files: M Doc/library/webbrowser.rst diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index 5980ff5b3413ff..3a6b91f22e3e63 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -143,9 +143,9 @@ for the controller classes, all defined in this module. +------------------------+-----------------------------------------+-------+ | ``'windows-default'`` | :class:`WindowsDefault` | \(2) | +------------------------+-----------------------------------------+-------+ -| ``'macosx'`` | :class:`MacOSX('default')` | \(3) | +| ``'macosx'`` | :class:`MacOSXOSAScript('default')` | \(3) | +------------------------+-----------------------------------------+-------+ -| ``'safari'`` | :class:`MacOSX('safari')` | \(3) | +| ``'safari'`` | :class:`MacOSXOSAScript('safari')` | \(3) | +------------------------+-----------------------------------------+-------+ | ``'google-chrome'`` | :class:`Chrome('google-chrome')` | | +------------------------+-----------------------------------------+-------+ From webhook-mailer at python.org Fri Sep 3 13:22:26 2021 From: webhook-mailer at python.org (ambv) Date: Fri, 03 Sep 2021 17:22:26 -0000 Subject: [Python-checkins] bpo-42255: Update webbrowser doc for macOS (GH-28144) Message-ID: https://github.com/python/cpython/commit/2a8956c268772fd31aeeb6ee522f123af94a2926 commit: 2a8956c268772fd31aeeb6ee522f123af94a2926 branch: 3.10 author: Dong-hee Na committer: ambv date: 2021-09-03T19:22:22+02:00 summary: bpo-42255: Update webbrowser doc for macOS (GH-28144) files: M Doc/library/webbrowser.rst diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst index bd0919164d8fa0..39a355c5141dc2 100644 --- a/Doc/library/webbrowser.rst +++ b/Doc/library/webbrowser.rst @@ -143,9 +143,9 @@ for the controller classes, all defined in this module. +------------------------+-----------------------------------------+-------+ | ``'windows-default'`` | :class:`WindowsDefault` | \(2) | +------------------------+-----------------------------------------+-------+ -| ``'macosx'`` | :class:`MacOSX('default')` | \(3) | +| ``'macosx'`` | :class:`MacOSXOSAScript('default')` | \(3) | +------------------------+-----------------------------------------+-------+ -| ``'safari'`` | :class:`MacOSX('safari')` | \(3) | +| ``'safari'`` | :class:`MacOSXOSAScript('safari')` | \(3) | +------------------------+-----------------------------------------+-------+ | ``'google-chrome'`` | :class:`Chrome('google-chrome')` | | +------------------------+-----------------------------------------+-------+ From webhook-mailer at python.org Fri Sep 3 14:37:41 2021 From: webhook-mailer at python.org (zooba) Date: Fri, 03 Sep 2021 18:37:41 -0000 Subject: [Python-checkins] bpo-45022: Update libffi to 3.4.2 in Windows build (GH-28146) Message-ID: https://github.com/python/cpython/commit/6f8bc464e006f672d1aeafbfd7c774a40215dab2 commit: 6f8bc464e006f672d1aeafbfd7c774a40215dab2 branch: main author: Steve Dower committer: zooba date: 2021-09-03T19:37:31+01:00 summary: bpo-45022: Update libffi to 3.4.2 in Windows build (GH-28146) files: A Misc/NEWS.d/next/Windows/2021-09-03-18-05-21.bpo-45022.bgpD_r.rst M PCbuild/get_externals.bat M PCbuild/libffi.props M PCbuild/python.props diff --git a/Misc/NEWS.d/next/Windows/2021-09-03-18-05-21.bpo-45022.bgpD_r.rst b/Misc/NEWS.d/next/Windows/2021-09-03-18-05-21.bpo-45022.bgpD_r.rst new file mode 100644 index 00000000000000..8c19faad771763 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2021-09-03-18-05-21.bpo-45022.bgpD_r.rst @@ -0,0 +1 @@ +Update Windows release to include libffi 3.4.2 diff --git a/PCbuild/get_externals.bat b/PCbuild/get_externals.bat index ea85d98e12bbd1..8fa2993e21f936 100644 --- a/PCbuild/get_externals.bat +++ b/PCbuild/get_externals.bat @@ -52,7 +52,7 @@ echo.Fetching external libraries... set libraries= set libraries=%libraries% bzip2-1.0.6 -if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.3.0 +if NOT "%IncludeLibffiSrc%"=="false" set libraries=%libraries% libffi-3.4.2 if NOT "%IncludeSSLSrc%"=="false" set libraries=%libraries% openssl-1.1.1l set libraries=%libraries% sqlite-3.35.5.0 if NOT "%IncludeTkinterSrc%"=="false" set libraries=%libraries% tcl-core-8.6.11.0 @@ -76,7 +76,7 @@ for %%e in (%libraries%) do ( echo.Fetching external binaries... set binaries= -if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.3.0 +if NOT "%IncludeLibffi%"=="false" set binaries=%binaries% libffi-3.4.2 if NOT "%IncludeSSL%"=="false" set binaries=%binaries% openssl-bin-1.1.1l if NOT "%IncludeTkinter%"=="false" set binaries=%binaries% tcltk-8.6.11.0 if NOT "%IncludeSSLSrc%"=="false" set binaries=%binaries% nasm-2.11.06 diff --git a/PCbuild/libffi.props b/PCbuild/libffi.props index 975c4a0d355f8c..22c9550e2c09b8 100644 --- a/PCbuild/libffi.props +++ b/PCbuild/libffi.props @@ -6,11 +6,11 @@ $(libffiOutDir);%(AdditionalLibraryDirectories) - libffi-7.lib;%(AdditionalDependencies) + libffi-8.lib;%(AdditionalDependencies) - <_LIBFFIDLL Include="$(libffiOutDir)\libffi-7.dll" /> + <_LIBFFIDLL Include="$(libffiOutDir)\libffi-8.dll" /> diff --git a/PCbuild/python.props b/PCbuild/python.props index 42c67de4afa343..54dcef032e0502 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -60,8 +60,8 @@ $(ExternalsDir)sqlite-3.35.5.0\ $(ExternalsDir)bzip2-1.0.6\ $(ExternalsDir)xz-5.2.2\ - $(ExternalsDir)libffi-3.3.0\ - $(ExternalsDir)libffi-3.3.0\$(ArchName)\ + $(ExternalsDir)libffi-3.4.2\ + $(ExternalsDir)libffi-3.4.2\$(ArchName)\ $(libffiOutDir)include $(ExternalsDir)openssl-1.1.1l\ $(ExternalsDir)openssl-bin-1.1.1l\$(ArchName)\ From webhook-mailer at python.org Fri Sep 3 17:39:32 2021 From: webhook-mailer at python.org (iritkatriel) Date: Fri, 03 Sep 2021 21:39:32 -0000 Subject: [Python-checkins] =?utf-8?q?bpo-45075=3A_distinguish_between_fra?= =?utf-8?q?me_and_FrameSummary_in_traceback_mo=E2=80=A6_=28GH-28112=29?= Message-ID: https://github.com/python/cpython/commit/0b58e863df9970b290a4de90c67f9ac30c443817 commit: 0b58e863df9970b290a4de90c67f9ac30c443817 branch: main author: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> committer: iritkatriel <1055913+iritkatriel at users.noreply.github.com> date: 2021-09-03T22:39:23+01:00 summary: bpo-45075: distinguish between frame and FrameSummary in traceback mo? (GH-28112) files: A Misc/NEWS.d/next/Library/2021-09-01-15-27-00.bpo-45075.9xUpvt.rst M Doc/library/traceback.rst M Lib/test/test_traceback.py M Lib/traceback.py diff --git a/Doc/library/traceback.rst b/Doc/library/traceback.rst index 7b230495b7b56..df4a38c955511 100644 --- a/Doc/library/traceback.rst +++ b/Doc/library/traceback.rst @@ -353,12 +353,12 @@ capture data for later printing in a lightweight fashion. .. versionchanged:: 3.6 Long sequences of repeated frames are now abbreviated. - .. method:: format_frame(frame) + .. method:: format_frame_summary(frame_summary) Returns a string for printing one of the frames involved in the stack. - This method gets called for each frame object to be printed in the - :class:`StackSummary`. If it returns ``None``, the frame is omitted - from the output. + This method is called for each :class:`FrameSummary` object to be + printed by :meth:`StackSummary.format`. If it returns ``None``, the + frame is omitted from the output. .. versionadded:: 3.11 @@ -368,7 +368,7 @@ capture data for later printing in a lightweight fashion. .. versionadded:: 3.5 -:class:`FrameSummary` objects represent a single frame in a traceback. +A :class:`FrameSummary` object represents a single frame in a traceback. .. class:: FrameSummary(filename, lineno, name, lookup_line=True, locals=None, line=None) diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index ee2896c5f4867..949adefd76faa 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -1515,8 +1515,8 @@ def some_inner(k, v): def test_custom_format_frame(self): class CustomStackSummary(traceback.StackSummary): - def format_frame(self, frame): - return f'{frame.filename}:{frame.lineno}' + def format_frame_summary(self, frame_summary): + return f'{frame_summary.filename}:{frame_summary.lineno}' def some_inner(): return CustomStackSummary.extract( @@ -1540,10 +1540,10 @@ def g(): exc_info = g() class Skip_G(traceback.StackSummary): - def format_frame(self, frame): - if frame.name == 'g': + def format_frame_summary(self, frame_summary): + if frame_summary.name == 'g': return None - return super().format_frame(frame) + return super().format_frame_summary(frame_summary) stack = Skip_G.extract( traceback.walk_tb(exc_info[2])).format() diff --git a/Lib/traceback.py b/Lib/traceback.py index 8d83fd9b517e6..d51c2010005b7 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -240,7 +240,7 @@ def clear_frames(tb): class FrameSummary: - """A single frame from a traceback. + """Information about a single frame from a traceback. - :attr:`filename` The filename for the frame. - :attr:`lineno` The line within filename for the frame that was @@ -365,15 +365,15 @@ def _get_code_position(code, instruction_index): _RECURSIVE_CUTOFF = 3 # Also hardcoded in traceback.c. class StackSummary(list): - """A stack of frames.""" + """A list of FrameSummary objects, representing a stack of frames.""" @classmethod def extract(klass, frame_gen, *, limit=None, lookup_lines=True, capture_locals=False): """Create a StackSummary from a traceback or stack object. - :param frame_gen: A generator that yields (frame, lineno) tuples to - include in the stack. + :param frame_gen: A generator that yields (frame, lineno) tuples + whose summaries are to be included in the stack. :param limit: None to include all frames or the number of frames to include. :param lookup_lines: If True, lookup lines for each frame immediately, @@ -394,7 +394,7 @@ def _extract_from_extended_frame_gen(klass, frame_gen, *, limit=None, lookup_lines=True, capture_locals=False): # Same as extract but operates on a frame generator that yields # (frame, (lineno, end_lineno, colno, end_colno)) in the stack. - # Only lineno is required, the remaining fields can be empty if the + # Only lineno is required, the remaining fields can be None if the # information is not available. if limit is None: limit = getattr(sys, 'tracebacklimit', None) @@ -450,34 +450,38 @@ def from_list(klass, a_list): result.append(FrameSummary(filename, lineno, name, line=line)) return result - def format_frame(self, frame): - """Format the lines for a single frame. + def format_frame_summary(self, frame_summary): + """Format the lines for a single FrameSummary. Returns a string representing one frame involved in the stack. This gets called for every frame to be printed in the stack summary. """ row = [] row.append(' File "{}", line {}, in {}\n'.format( - frame.filename, frame.lineno, frame.name)) - if frame.line: - row.append(' {}\n'.format(frame.line.strip())) + frame_summary.filename, frame_summary.lineno, frame_summary.name)) + if frame_summary.line: + row.append(' {}\n'.format(frame_summary.line.strip())) - stripped_characters = len(frame._original_line) - len(frame.line.lstrip()) + orig_line_len = len(frame_summary._original_line) + frame_line_len = len(frame_summary.line.lstrip()) + stripped_characters = orig_line_len - frame_line_len if ( - frame.colno is not None - and frame.end_colno is not None + frame_summary.colno is not None + and frame_summary.end_colno is not None ): - colno = _byte_offset_to_character_offset(frame._original_line, frame.colno) - end_colno = _byte_offset_to_character_offset(frame._original_line, frame.end_colno) + colno = _byte_offset_to_character_offset( + frame_summary._original_line, frame_summary.colno) + end_colno = _byte_offset_to_character_offset( + frame_summary._original_line, frame_summary.end_colno) anchors = None - if frame.lineno == frame.end_lineno: + if frame_summary.lineno == frame_summary.end_lineno: with suppress(Exception): anchors = _extract_caret_anchors_from_line_segment( - frame._original_line[colno - 1:end_colno - 1] + frame_summary._original_line[colno - 1:end_colno - 1] ) else: - end_colno = stripped_characters + len(frame.line.strip()) + end_colno = stripped_characters + len(frame_summary.line.strip()) row.append(' ') row.append(' ' * (colno - stripped_characters)) @@ -491,8 +495,8 @@ def format_frame(self, frame): row.append('\n') - if frame.locals: - for name, value in sorted(frame.locals.items()): + if frame_summary.locals: + for name, value in sorted(frame_summary.locals.items()): row.append(' {name} = {value}\n'.format(name=name, value=value)) return ''.join(row) @@ -514,27 +518,27 @@ def format(self): last_line = None last_name = None count = 0 - for frame in self: - formatted_frame = self.format_frame(frame) + for frame_summary in self: + formatted_frame = self.format_frame_summary(frame_summary) if formatted_frame is None: continue - if (last_file is None or last_file != frame.filename or - last_line is None or last_line != frame.lineno or - last_name is None or last_name != frame.name): + if (last_file is None or last_file != frame_summary.filename or + last_line is None or last_line != frame_summary.lineno or + last_name is None or last_name != frame_summary.name): if count > _RECURSIVE_CUTOFF: count -= _RECURSIVE_CUTOFF result.append( f' [Previous line repeated {count} more ' f'time{"s" if count > 1 else ""}]\n' ) - last_file = frame.filename - last_line = frame.lineno - last_name = frame.name + last_file = frame_summary.filename + last_line = frame_summary.lineno + last_name = frame_summary.name count = 0 count += 1 if count > _RECURSIVE_CUTOFF: continue - result.append(self.format_frame(frame)) + result.append(formatted_frame) if count > _RECURSIVE_CUTOFF: count -= _RECURSIVE_CUTOFF diff --git a/Misc/NEWS.d/next/Library/2021-09-01-15-27-00.bpo-45075.9xUpvt.rst b/Misc/NEWS.d/next/Library/2021-09-01-15-27-00.bpo-45075.9xUpvt.rst new file mode 100644 index 0000000000000..369b4506066e5 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-01-15-27-00.bpo-45075.9xUpvt.rst @@ -0,0 +1,5 @@ +Rename :meth:`traceback.StackSummary.format_frame` to +:meth:`traceback.StackSummary.format_frame_summary`. This method was added +for 3.11 so it was not released yet. + +Updated code and docs to better distinguish frame and FrameSummary. From webhook-mailer at python.org Fri Sep 3 21:13:18 2021 From: webhook-mailer at python.org (terryjreedy) Date: Sat, 04 Sep 2021 01:13:18 -0000 Subject: [Python-checkins] [3.10] bpo-45060: Get rid of few uses of the equality operators with None (GH-28087). (GH-28092) Message-ID: https://github.com/python/cpython/commit/e2b29304137e6253b7bb89c180ef5d113d60b4eb commit: e2b29304137e6253b7bb89c180ef5d113d60b4eb branch: 3.10 author: Serhiy Storchaka committer: terryjreedy date: 2021-09-03T21:13:00-04:00 summary: [3.10] bpo-45060: Get rid of few uses of the equality operators with None (GH-28087). (GH-28092) (cherry picked from commit 3c65457156d87e55010507d616b4eecb7a02883d) Co-authored-by: Serhiy Storchaka files: M Doc/library/dbm.rst M Lib/ctypes/_aix.py M Lib/email/contentmanager.py M Lib/test/datetimetester.py M Lib/test/test_pty.py M Lib/test/test_type_annotations.py M Modules/_gdbmmodule.c M Modules/clinic/_gdbmmodule.c.h M Tools/clinic/clinic.py diff --git a/Doc/library/dbm.rst b/Doc/library/dbm.rst index 57ae547b833cc0..ff01ae90f64257 100644 --- a/Doc/library/dbm.rst +++ b/Doc/library/dbm.rst @@ -216,7 +216,7 @@ supported. contains them all:: k = db.firstkey() - while k != None: + while k is not None: print(k) k = db.nextkey(k) diff --git a/Lib/ctypes/_aix.py b/Lib/ctypes/_aix.py index 190cac6507edef..26959d90a4dd6a 100644 --- a/Lib/ctypes/_aix.py +++ b/Lib/ctypes/_aix.py @@ -282,7 +282,7 @@ def find_shared(paths, name): if path.exists(archive): members = get_shared(get_ld_headers(archive)) member = get_member(re.escape(name), members) - if member != None: + if member is not None: return (base, member) else: return (None, None) @@ -307,7 +307,7 @@ def find_library(name): libpaths = get_libpaths() (base, member) = find_shared(libpaths, name) - if base != None: + if base is not None: return f"{base}({member})" # To get here, a member in an archive has not been found diff --git a/Lib/email/contentmanager.py b/Lib/email/contentmanager.py index 3cf62dc8621cd9..fcf278dbccbac9 100644 --- a/Lib/email/contentmanager.py +++ b/Lib/email/contentmanager.py @@ -144,7 +144,7 @@ def _encode_text(string, charset, cte, policy): linesep = policy.linesep.encode('ascii') def embedded_body(lines): return linesep.join(lines) + linesep def normal_body(lines): return b'\n'.join(lines) + b'\n' - if cte==None: + if cte is None: # Use heuristics to decide on the "best" encoding. if max((len(x) for x in lines), default=0) <= policy.max_line_length: try: diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index 316cf0b8da7b48..6414f1ace3fed3 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -344,7 +344,7 @@ def test_comparison(self): with self.assertRaises(TypeError): timezone(ZERO) < timezone(ZERO) self.assertIn(timezone(ZERO), {timezone(ZERO)}) self.assertTrue(timezone(ZERO) != None) - self.assertFalse(timezone(ZERO) == None) + self.assertFalse(timezone(ZERO) == None) tz = timezone(ZERO) self.assertTrue(tz == ALWAYS_EQ) diff --git a/Lib/test/test_pty.py b/Lib/test/test_pty.py index e2e9475b5d337d..0c178127571b07 100644 --- a/Lib/test/test_pty.py +++ b/Lib/test/test_pty.py @@ -136,7 +136,7 @@ def test_openpty(self): mode = None new_stdin_winsz = None - if self.stdin_rows != None and self.stdin_cols != None: + if self.stdin_rows is not None and self.stdin_cols is not None: try: # Modify pty.STDIN_FILENO window size; we need to # check if pty.openpty() is able to set pty slave diff --git a/Lib/test/test_type_annotations.py b/Lib/test/test_type_annotations.py index f6c99bda3aa6f6..87f46c2ce8ce61 100644 --- a/Lib/test/test_type_annotations.py +++ b/Lib/test/test_type_annotations.py @@ -71,7 +71,7 @@ def __annotations__(self, value): @__annotations__.deleter def __annotations__(self): - if hasattr(self, 'my_annotations') and self.my_annotations == None: + if getattr(self, 'my_annotations', False) is None: raise AttributeError('__annotations__') self.my_annotations = None diff --git a/Modules/_gdbmmodule.c b/Modules/_gdbmmodule.c index 6ca3ed6cc36fcc..a7fb6a33c862c4 100644 --- a/Modules/_gdbmmodule.c +++ b/Modules/_gdbmmodule.c @@ -450,7 +450,7 @@ The following code prints every key in the database db, without having to create a list in memory that contains them all: k = db.firstkey() - while k != None: + while k is not None: print(k) k = db.nextkey(k) [clinic start generated code]*/ @@ -458,7 +458,7 @@ to create a list in memory that contains them all: static PyObject * _gdbm_gdbm_nextkey_impl(gdbmobject *self, PyTypeObject *cls, const char *key, Py_ssize_clean_t key_length) -/*[clinic end generated code: output=204964441fdbaf02 input=fcf6a51a96ce0172]*/ +/*[clinic end generated code: output=204964441fdbaf02 input=365e297bc0b3db48]*/ { PyObject *v; datum dbm_key, nextkey; diff --git a/Modules/clinic/_gdbmmodule.c.h b/Modules/clinic/_gdbmmodule.c.h index ffd2179f36970a..ea4ee7df001c18 100644 --- a/Modules/clinic/_gdbmmodule.c.h +++ b/Modules/clinic/_gdbmmodule.c.h @@ -161,7 +161,7 @@ PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__, "to create a list in memory that contains them all:\n" "\n" " k = db.firstkey()\n" -" while k != None:\n" +" while k is not None:\n" " print(k)\n" " k = db.nextkey(k)"); @@ -340,4 +340,4 @@ dbmopen(PyObject *module, PyObject *const *args, Py_ssize_t nargs) exit: return return_value; } -/*[clinic end generated code: output=e84bc6ac82fcb6d4 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=3b88446433e43d96 input=a9049054013a1b77]*/ diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py index 959742677d2f67..969008ade9790f 100755 --- a/Tools/clinic/clinic.py +++ b/Tools/clinic/clinic.py @@ -1632,7 +1632,7 @@ def print_block(self, block): dsl_name = block.dsl_name write = self.f.write - assert not ((dsl_name == None) ^ (output == None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name) + assert not ((dsl_name is None) ^ (output is None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name) if not dsl_name: write(input) @@ -2931,7 +2931,7 @@ def converter_init(self, *, accept={int}, type=None): self.format_unit = 'C' elif accept != {int}: fail("int_converter: illegal 'accept' argument " + repr(accept)) - if type != None: + if type is not None: self.type = type def parse_arg(self, argname, displayname): From webhook-mailer at python.org Sat Sep 4 10:14:36 2021 From: webhook-mailer at python.org (brandtbucher) Date: Sat, 04 Sep 2021 14:14:36 -0000 Subject: [Python-checkins] Handle different string hash algorithms correctly (#28147) Message-ID: https://github.com/python/cpython/commit/3beef86e22ade0ec629fcc349885fcec5ab43402 commit: 3beef86e22ade0ec629fcc349885fcec5ab43402 branch: main author: Brandt Bucher committer: brandtbucher date: 2021-09-04T07:14:27-07:00 summary: Handle different string hash algorithms correctly (#28147) files: M Lib/test/test_marshal.py diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py index bdfe79fbbecb3..8d55382b195a1 100644 --- a/Lib/test/test_marshal.py +++ b/Lib/test/test_marshal.py @@ -352,17 +352,20 @@ def test_deterministic_sets(self): for elements in ( "float('nan'), b'a', b'b', b'c', 'x', 'y', 'z'", # Also test for bad interactions with backreferencing: - "('string', 1), ('string', 2), ('string', 3)", + "('Spam', 0), ('Spam', 1), ('Spam', 2)", ): s = f"{kind}([{elements}])" with self.subTest(s): # First, make sure that our test case still has different # orders under hash seeds 0 and 1. If this check fails, we - # need to update this test with different elements: - args = ["-c", f"print({s})"] - _, repr_0, _ = assert_python_ok(*args, PYTHONHASHSEED="0") - _, repr_1, _ = assert_python_ok(*args, PYTHONHASHSEED="1") - self.assertNotEqual(repr_0, repr_1) + # need to update this test with different elements. Skip + # this part if we are configured to use any other hash + # algorithm (for example, using Py_HASH_EXTERNAL): + if sys.hash_info.algorithm in {"fnv", "siphash24"}: + args = ["-c", f"print({s})"] + _, repr_0, _ = assert_python_ok(*args, PYTHONHASHSEED="0") + _, repr_1, _ = assert_python_ok(*args, PYTHONHASHSEED="1") + self.assertNotEqual(repr_0, repr_1) # Then, perform the actual test: args = ["-c", f"import marshal; print(marshal.dumps({s}))"] _, dump_0, _ = assert_python_ok(*args, PYTHONHASHSEED="0") From webhook-mailer at python.org Sat Sep 4 10:20:42 2021 From: webhook-mailer at python.org (pablogsal) Date: Sat, 04 Sep 2021 14:20:42 -0000 Subject: [Python-checkins] Check that 'configure' is generated by GNU Autoconf 2.69 (GH-28152) Message-ID: https://github.com/python/cpython/commit/6beaf2ffaecd92955c5b3c579f184cbecc222636 commit: 6beaf2ffaecd92955c5b3c579f184cbecc222636 branch: main author: Pablo Galindo Salgado committer: pablogsal date: 2021-09-04T15:20:38+01:00 summary: Check that 'configure' is generated by GNU Autoconf 2.69 (GH-28152) files: M .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 05bdf2445a234..27e07a5f91bf3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -84,6 +84,8 @@ jobs: run: make smelly - name: Check limited ABI symbols run: make check-limited-abi + - name: Check Autoconf version 2.69 + run: grep "Generated by GNU Autoconf 2.69" configure build_win32: name: 'Windows (x86)' From webhook-mailer at python.org Sat Sep 4 10:21:46 2021 From: webhook-mailer at python.org (pablogsal) Date: Sat, 04 Sep 2021 14:21:46 -0000 Subject: [Python-checkins] [3.10] Regenerate autoconf files with version 2.69 (GH-28151) Message-ID: https://github.com/python/cpython/commit/b1617d788c9ae63e9dadf6cb0bbfd79703f5eb86 commit: b1617d788c9ae63e9dadf6cb0bbfd79703f5eb86 branch: 3.10 author: Pablo Galindo Salgado committer: pablogsal date: 2021-09-04T15:21:40+01:00 summary: [3.10] Regenerate autoconf files with version 2.69 (GH-28151) files: M configure diff --git a/configure b/configure index 6bf76b51b46e7b..1baa145e3ed4d6 100755 --- a/configure +++ b/configure @@ -1,12 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for python 3.10. +# Generated by GNU Autoconf 2.69 for python 3.10. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, -# Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -17,16 +16,14 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : +if test -n "${ZSH_VERSION+set}" && (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 $as_nop +else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -36,46 +33,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 -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 +# 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 # The user is always right. -if ${PATH_SEPARATOR+false} :; then +if test "${PATH_SEPARATOR+set}" != set; 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 || @@ -84,6 +81,13 @@ if ${PATH_SEPARATOR+false} :; 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 #(( @@ -92,12 +96,8 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS @@ -109,10 +109,30 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$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. @@ -134,22 +154,20 @@ 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'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_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="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (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 \$as_nop +else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( @@ -169,53 +187,42 @@ 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 \$as_nop +else 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 $as_nop +else 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 $as_nop +else 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 - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null -then : + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes - if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null -then : + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi @@ -223,21 +230,14 @@ fi esac as_found=false done -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 : +$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 -fi +fi; } +IFS=$as_save_IFS - 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,19 +255,18 @@ 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'. -printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi - 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." + 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." else - printf "%s\n" "$0: Please tell bug-autoconf at gnu.org and + $as_echo "$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 @@ -295,7 +294,6 @@ as_fn_unset () } as_unset=as_fn_unset - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -313,14 +311,6 @@ 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 # ------------- @@ -335,7 +325,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -344,7 +334,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -383,13 +373,12 @@ 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 $as_nop +else as_fn_append () { eval $1=\$$1\$2 @@ -401,27 +390,18 @@ 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 $as_nop +else 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] # ---------------------------------------- @@ -433,9 +413,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 - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - printf "%s\n" "$as_me: error: $2" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error @@ -462,7 +442,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -506,7 +486,7 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || - { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + { $as_echo "$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 @@ -520,10 +500,6 @@ 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*) @@ -537,13 +513,6 @@ 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 @@ -619,36 +588,40 @@ PACKAGE_URL='' ac_unique_file="Include/object.h" # Factoring default headers for most tests. ac_includes_default="\ -#include -#ifdef HAVE_STDIO_H -# include +#include +#ifdef HAVE_SYS_TYPES_H +# include #endif -#ifdef HAVE_STDLIB_H +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS # 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 @@ -700,7 +673,6 @@ LDSHARED SHLIB_SUFFIX LIBTOOL_CRUFT OTHER_LIBTOOL_OPT -EGREP UNIVERSAL_ARCH_FLAGS LDFLAGS_NODIST CFLAGS_NODIST @@ -744,6 +716,7 @@ DLLLIBRARY LDLIBRARY LIBRARY BUILDEXEEXT +EGREP NO_AS_NEEDED MULTIARCH_CPPFLAGS PLATFORM_TRIPLET @@ -969,6 +942,8 @@ 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 ;; @@ -1009,9 +984,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=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1035,9 +1010,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=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" @@ -1248,9 +1223,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=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1264,9 +1239,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=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" @@ -1310,9 +1285,9 @@ Try \`$0 --help' for more information" *) # FIXME: should be removed in autoconf 3.0. - printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; @@ -1328,7 +1303,7 @@ if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; - *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi @@ -1392,7 +1367,7 @@ $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_myself" | +$as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -1682,9 +1657,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=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`$as_echo "$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/ ;; @@ -1712,8 +1687,7 @@ esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } - # Check for configure.gnu first; this name is used for a wrapper for - # Metaconfig's "Configure" on case-insensitive file systems. + # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive @@ -1721,7 +1695,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix echo && $SHELL "$ac_srcdir/configure" --help=recursive else - printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done @@ -1731,9 +1705,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.71 +generated by GNU Autoconf 2.69 -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1750,14 +1724,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 conftest.beam + rm -f conftest.$ac_objext 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\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1765,15 +1739,14 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$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_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1795,7 +1768,7 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1803,15 +1776,14 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$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_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1827,14 +1799,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.beam conftest$ac_exeext + rm -f conftest.$ac_objext 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\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -1842,18 +1814,17 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$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_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 @@ -1868,43 +1839,101 @@ fi } # ac_fn_c_try_link -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ac_fn_c_check_header_mongrel 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 () +# 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 () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { 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 + 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 /* end confdefs.h. */ $4 #include <$2> _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - eval "$3=yes" -else $as_nop - eval "$3=no" +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 fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +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" fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno -} # ac_fn_c_check_header_compile +} # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- -# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that -# executables *can* be run. +# Try to link 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 @@ -1914,26 +1943,25 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$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\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } -then : + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: program exited with status $ac_status" >&5 - printf "%s\n" "$as_me: failed program was:" >&5 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status @@ -1944,6 +1972,37 @@ 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 @@ -1951,18 +2010,17 @@ fi ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { 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 + { $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=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main (void) +main () { if (sizeof ($2)) return 0; @@ -1970,13 +2028,12 @@ 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 (void) +main () { if (sizeof (($2))) return 0; @@ -1984,19 +2041,18 @@ if (sizeof (($2))) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -else $as_nop +else eval "$3=yes" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { $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_type @@ -2015,7 +2071,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main (void) +main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; @@ -2025,15 +2081,14 @@ 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 (void) +main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -2043,10 +2098,9 @@ 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 $as_nop +else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= @@ -2054,14 +2108,14 @@ else $as_nop fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main (void) +main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; @@ -2071,15 +2125,14 @@ 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 (void) +main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; @@ -2089,10 +2142,9 @@ 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 $as_nop +else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= @@ -2100,14 +2152,14 @@ else $as_nop fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done -else $as_nop +else ac_lo= ac_hi= fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 @@ -2115,7 +2167,7 @@ while test "x$ac_lo" != "x$ac_hi"; do /* end confdefs.h. */ $4 int -main (void) +main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; @@ -2125,13 +2177,12 @@ 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 $as_nop +else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; @@ -2141,12 +2192,12 @@ esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 -static long int longval (void) { return $2; } -static unsigned long int ulongval (void) { return $2; } +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } #include #include int -main (void) +main () { FILE *f = fopen ("conftest.val", "w"); @@ -2174,10 +2225,9 @@ main (void) 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 -printf %s "checking for $2... " >&6; } -if eval test \${$3+y} -then : - printf %s "(cached) " >&6 -else $as_nop + { $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. */ /* Define $2 to an innocuous variant, in case declares $2. @@ -2209,9 +2258,16 @@ else $as_nop #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. */ + 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 -#include #undef $2 /* Override any GCC internal prototype to avoid an error. @@ -2229,51 +2285,47 @@ choke me #endif int -main (void) +main () { 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 $as_nop +else eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { $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_func -# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR -# ------------------------------------------------------------------ +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR -# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. -ac_fn_check_decl () +# accordingly. +ac_fn_c_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'` - eval ac_save_FLAGS=\$$6 - as_fn_append $6 " $5" + { $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int -main (void) +main () { #ifndef $as_decl_name #ifdef __cplusplus @@ -2287,22 +2339,19 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" -else $as_nop +else eval "$3=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - eval $6=\$ac_save_FLAGS - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { $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_check_decl +} # ac_fn_c_check_decl # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- @@ -2311,17 +2360,16 @@ printf "%s\n" "$ac_res" >&6; } ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { 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 + { $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main (void) +main () { static $2 ac_aggr; if (ac_aggr.$3) @@ -2330,15 +2378,14 @@ 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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int -main (void) +main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) @@ -2347,50 +2394,29 @@ 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 $as_nop +else eval "$4=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } + { $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_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.71. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was - $ $0$ac_configure_args_raw + $ $0 $@ _ACEOF exec 5>>config.log @@ -2423,12 +2449,8 @@ 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 - printf "%s\n" "PATH: $as_dir" + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" done IFS=$as_save_IFS @@ -2463,7 +2485,7 @@ do | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) - ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; @@ -2498,13 +2520,11 @@ 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 - printf "%s\n" "## ---------------- ## + $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo @@ -2515,8 +2535,8 @@ trap 'exit_status=$? case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_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;} ;; + *_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;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -2540,7 +2560,7 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ) echo - printf "%s\n" "## ----------------- ## + $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo @@ -2548,14 +2568,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - printf "%s\n" "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then - printf "%s\n" "## ------------------- ## + $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo @@ -2563,15 +2583,15 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} do eval ac_val=\$$ac_var case $ac_val in - *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac - printf "%s\n" "$ac_var='\''$ac_val'\''" + $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then - printf "%s\n" "## ----------- ## + $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo @@ -2579,8 +2599,8 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} echo fi test "$ac_signal" != 0 && - printf "%s\n" "$as_me: caught signal $ac_signal" - printf "%s\n" "$as_me: exit $exit_status" + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && @@ -2594,48 +2614,63 @@ ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h -printf "%s\n" "/* confdefs.h */" > confdefs.h +$as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. -printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF -printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF -printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF -printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF -printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF -printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF # 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 - ac_site_files="$CONFIG_SITE" + # 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 elif test "x$prefix" != xNONE; then - ac_site_files="$prefix/share/config.site $prefix/etc/config.site" + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site else - ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site fi - -for ac_site_file in $ac_site_files +for ac_site_file in "$ac_site_file1" "$ac_site_file2" do - 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;} + 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;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -2645,504 +2680,85 @@ 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 -printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 -printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi -# 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 - -#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; -} +# 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. ## +## -------------------- ## -/* 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 - -#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 +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 @@ -3172,12 +2788,11 @@ 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 -{ 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 +{ $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 if test -n "$HAS_GIT"; then ac_cv_prog_HAS_GIT="$HAS_GIT" # Let the user override the test. else @@ -3185,15 +2800,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3205,11 +2816,11 @@ fi fi HAS_GIT=$ac_cv_prog_HAS_GIT if test -n "$HAS_GIT"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $HAS_GIT" >&5 -printf "%s\n" "$HAS_GIT" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAS_GIT" >&5 +$as_echo "$HAS_GIT" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3231,30 +2842,55 @@ 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 -{ 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 +{ $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 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 -printf "%s\n" "$ac_cv_build" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; @@ -3273,22 +2909,21 @@ IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac -{ 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 +{ $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 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 -printf "%s\n" "$ac_cv_host" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; @@ -3317,12 +2952,11 @@ 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 -{ 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 +{ $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 if test -n "$PYTHON_FOR_REGEN"; then ac_cv_prog_PYTHON_FOR_REGEN="$PYTHON_FOR_REGEN" # Let the user override the test. else @@ -3330,15 +2964,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -3349,11 +2979,11 @@ fi fi PYTHON_FOR_REGEN=$ac_cv_prog_PYTHON_FOR_REGEN if test -n "$PYTHON_FOR_REGEN"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PYTHON_FOR_REGEN" >&5 -printf "%s\n" "$PYTHON_FOR_REGEN" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_FOR_REGEN" >&5 +$as_echo "$PYTHON_FOR_REGEN" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3364,8 +2994,8 @@ test -n "$PYTHON_FOR_REGEN" || PYTHON_FOR_REGEN="python3" if test "$cross_compiling" = yes; then - { 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; } + { $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; } if test -z "$PYTHON_FOR_BUILD"; then for interp in python$PACKAGE_VERSION python3 python; do which $interp >/dev/null 2>&1 || continue @@ -3377,8 +3007,8 @@ printf %s "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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 -printf "%s\n" "$interp" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5 +$as_echo "$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 @@ -3412,28 +3042,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). -printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h +$as_echo "#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. -printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h +$as_echo "#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. -printf "%s\n" "#define __BSD_VISIBLE 1" >>confdefs.h +$as_echo "#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. -printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h +$as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h @@ -3443,11 +3073,10 @@ define_xopen_source=yes CONFIG_ARGS="$ac_configure_args" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-universalsdk" >&5 -printf %s "checking for --enable-universalsdk... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-universalsdk" >&5 +$as_echo_n "checking for --enable-universalsdk... " >&6; } # Check whether --enable-universalsdk was given. -if test ${enable_universalsdk+y} -then : +if test "${enable_universalsdk+set}" = set; then : enableval=$enable_universalsdk; case $enableval in yes) @@ -3479,7 +3108,7 @@ then : esac -else $as_nop +else UNIVERSALSDK= enable_universalsdk= @@ -3488,11 +3117,11 @@ fi if test -n "${UNIVERSALSDK}" then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSALSDK}" >&5 -printf "%s\n" "${UNIVERSALSDK}" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSALSDK}" >&5 +$as_echo "${UNIVERSALSDK}" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -3515,12 +3144,11 @@ fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-universal-archs" >&5 -printf %s "checking for --with-universal-archs... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-universal-archs" >&5 +$as_echo_n "checking for --with-universal-archs... " >&6; } # Check whether --with-universal-archs was given. -if test ${with_universal_archs+y} -then : +if test "${with_universal_archs+set}" = set; then : withval=$with_universal_archs; UNIVERSAL_ARCHS="$withval" @@ -3528,23 +3156,22 @@ fi if test -n "${UNIVERSALSDK}" then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5 -printf "%s\n" "${UNIVERSAL_ARCHS}" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${UNIVERSAL_ARCHS}" >&5 +$as_echo "${UNIVERSAL_ARCHS}" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Check whether --with-framework-name was given. -if test ${with_framework_name+y} -then : +if test "${with_framework_name+set}" = set; then : withval=$with_framework_name; PYTHONFRAMEWORK=${withval} PYTHONFRAMEWORKDIR=${withval}.framework PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr 'A-Z' 'a-z'` -else $as_nop +else PYTHONFRAMEWORK=Python PYTHONFRAMEWORKDIR=Python.framework @@ -3553,8 +3180,7 @@ else $as_nop fi # Check whether --enable-framework was given. -if test ${enable_framework+y} -then : +if test "${enable_framework+set}" = set; then : enableval=$enable_framework; case $enableval in yes) @@ -3643,7 +3269,7 @@ then : esac -else $as_nop +else PYTHONFRAMEWORK= PYTHONFRAMEWORKDIR=no-framework @@ -3678,7 +3304,9 @@ fi -printf "%s\n" "#define _PYTHONFRAMEWORK \"${PYTHONFRAMEWORK}\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define _PYTHONFRAMEWORK "${PYTHONFRAMEWORK}" +_ACEOF ##AC_ARG_WITH(dyld, @@ -3687,8 +3315,8 @@ printf "%s\n" "#define _PYTHONFRAMEWORK \"${PYTHONFRAMEWORK}\"" >>confdefs.h ## # Set name for machine-dependent library files -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5 -printf %s "checking MACHDEP... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP" >&5 +$as_echo_n "checking MACHDEP... " >&6; } if test -z "$MACHDEP" then # avoid using uname for cross builds @@ -3738,8 +3366,8 @@ then '') MACHDEP="unknown";; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5 -printf "%s\n" "\"$MACHDEP\"" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5 +$as_echo "\"$MACHDEP\"" >&6; } if test "$cross_compiling" = yes; then @@ -3788,7 +3416,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 -printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h +$as_echo "#define _BSD_SOURCE 1" >>confdefs.h ;; OpenBSD/*) @@ -3796,7 +3424,7 @@ printf "%s\n" "#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 -printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h +$as_echo "#define _BSD_SOURCE 1" >>confdefs.h ;; # Defining _XOPEN_SOURCE on NetBSD version prior to the introduction of @@ -3854,7 +3482,7 @@ if test $define_xopen_source = yes then # X/Open 7, incorporating POSIX.1-2008 -printf "%s\n" "#define _XOPEN_SOURCE 700" >>confdefs.h +$as_echo "#define _XOPEN_SOURCE 700" >>confdefs.h # On Tru64 Unix 4.0F, defining _XOPEN_SOURCE also requires @@ -3862,11 +3490,11 @@ printf "%s\n" "#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. -printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h +$as_echo "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h -printf "%s\n" "#define _POSIX_C_SOURCE 200809L" >>confdefs.h +$as_echo "#define _POSIX_C_SOURCE 200809L" >>confdefs.h fi @@ -3881,7 +3509,7 @@ esac if test $define_stdc_a1 = yes then -printf "%s\n" "#define _INCLUDE__STDC_A1_SOURCE 1" >>confdefs.h +$as_echo "#define _INCLUDE__STDC_A1_SOURCE 1" >>confdefs.h fi @@ -3945,8 +3573,8 @@ then then if test -n "`"$found_gcc" --version | grep llvm-gcc`" then - { 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;} + { $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;} CC="$found_clang" CXX="$found_clang++" fi @@ -3954,8 +3582,8 @@ printf "%s\n" "$as_me: Detected llvm-gcc, falling back to clang" >&6;} elif test -z "$found_gcc" -a -n "$found_clang" then - { 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;} + { $as_echo "$as_me:${as_lineno-$LINENO}: No GCC found, use CLANG" >&5 +$as_echo "$as_me: No GCC found, use CLANG" >&6;} CC="$found_clang" CXX="$found_clang++" @@ -3964,8 +3592,8 @@ printf "%s\n" "$as_me: No GCC found, use CLANG" >&6;} found_clang=`/usr/bin/xcrun -find clang 2>/dev/null` if test -n "${found_clang}" then - { 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;} + { $as_echo "$as_me:${as_lineno-$LINENO}: Using clang from Xcode.app" >&5 +$as_echo "$as_me: Using clang from Xcode.app" >&6;} CC="${found_clang}" CXX="`/usr/bin/xcrun -find clang++`" @@ -3974,15 +3602,6 @@ printf "%s\n" "$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' @@ -3991,12 +3610,11 @@ 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 -{ 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 +{ $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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4004,15 +3622,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4023,11 +3637,11 @@ 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4036,12 +3650,11 @@ 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 -{ 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 +{ $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 if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -4049,15 +3662,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4068,11 +3677,11 @@ 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then @@ -4080,8 +3689,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC @@ -4094,12 +3703,11 @@ 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 -{ 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 +{ $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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4107,15 +3715,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4126,11 +3730,11 @@ 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4139,12 +3743,11 @@ 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 -{ 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 +{ $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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4153,19 +3756,15 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4181,18 +3780,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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4203,12 +3802,11 @@ 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 -{ 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 +{ $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 if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else @@ -4216,15 +3814,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4235,11 +3829,11 @@ 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4252,12 +3846,11 @@ 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 -{ 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 +{ $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 if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else @@ -4265,15 +3858,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -4284,11 +3873,11 @@ 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -4300,138 +3889,34 @@ done 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 -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;} +{ $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;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi -else - CC="$ac_cv_prog_CC" fi fi -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;} +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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. -printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +$as_echo "$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 -version; do +for ac_option in --version -v -V -qversion; 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\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then @@ -4441,7 +3926,7 @@ printf "%s\n" "$ac_try_echo"; } >&5 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done @@ -4449,7 +3934,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -4461,9 +3946,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. -{ 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[^ ]*//'` +{ $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[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" @@ -4484,12 +3969,11 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : + $as_echo "$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, @@ -4506,7 +3990,7 @@ do # certainly right. break;; *.* ) - if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi @@ -4522,46 +4006,44 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else $as_nop +else ac_file='' fi -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 +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 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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_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; } +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; } 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -printf %s "checking for suffix of executables... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "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\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : + $as_echo "$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 @@ -4575,15 +4057,15 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -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;} +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 compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -printf "%s\n" "$ac_cv_exeext" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext @@ -4592,7 +4074,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; @@ -4604,8 +4086,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. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -printf %s "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in @@ -4613,10 +4095,10 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in @@ -4624,40 +4106,39 @@ printf "%s\n" "$ac_try_echo"; } >&5 *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + $as_echo "$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 - { { 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. + { { $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. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -printf "%s\n" "$cross_compiling" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -4671,12 +4152,11 @@ case "(($ac_try" in *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -printf "%s\n" "$ac_try_echo"; } >&5 +$as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -then : + $as_echo "$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 @@ -4685,32 +4165,31 @@ then : break;; esac done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else + $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $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 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -printf "%s\n" "$ac_cv_objext" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { #ifndef __GNUC__ choke me @@ -4720,33 +4199,29 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes -else $as_nop +else ac_compiler_gnu=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -{ 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 - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi -ac_test_CFLAGS=${CFLAGS+y} +ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS -{ 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 +{ $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 ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no @@ -4755,60 +4230,57 @@ else $as_nop /* end confdefs.h. */ int -main (void) +main () { ; 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 $as_nop +else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -else $as_nop +else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; 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.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi -{ 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 +{ $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 CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then @@ -4823,144 +4295,94 @@ else CFLAGS= fi fi -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 +{ $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_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -$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 +#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; +} -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 +/* 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]; -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 +/* 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 **, 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; +} _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 conftest.beam +rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC -fi -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 +# 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 : + fi ac_ext=c @@ -4974,36 +4396,40 @@ 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 -{ 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; } +{ $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; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then - 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 + 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" 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. */ -#include +#ifdef __STDC__ +# include +#else +# include +#endif Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : +if ac_fn_c_try_cpp "$LINENO"; then : -else $as_nop +else # Broken: fails on valid input. continue fi @@ -5015,11 +4441,10 @@ 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 $as_nop +else # Passes both tests. ac_preproc_ok=: break @@ -5029,8 +4454,7 @@ 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 @@ -5042,24 +4466,29 @@ fi else ac_cv_prog_CPP=$CPP fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -printf "%s\n" "$CPP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$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. */ -#include +#ifdef __STDC__ +# include +#else +# include +#endif Syntax error _ACEOF -if ac_fn_c_try_cpp "$LINENO" -then : +if ac_fn_c_try_cpp "$LINENO"; then : -else $as_nop +else # Broken: fails on valid input. continue fi @@ -5071,11 +4500,10 @@ 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 $as_nop +else # Passes both tests. ac_preproc_ok=: break @@ -5085,12 +4513,11 @@ 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_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +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 $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi @@ -5101,12 +4528,11 @@ 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 -{ 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 +{ $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 if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST @@ -5114,15 +4540,10 @@ else $as_nop 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 grep ggrep - do + test -z "$as_dir" && as_dir=. + 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 @@ -5131,13 +4552,13 @@ case `"$ac_path_GREP" --version 2>&1` in ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 - printf %s 0123456789 >"conftest.in" + $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" - printf "%s\n" 'GREP' >> "conftest.nl" + $as_echo '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 @@ -5165,17 +4586,16 @@ else fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -printf "%s\n" "$ac_cv_path_GREP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" -{ 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 +{ $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 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" @@ -5189,15 +4609,10 @@ else $as_nop for as_dir in $PATH do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_prog in sed gsed - do + test -z "$as_dir" && as_dir=. + 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 @@ -5206,13 +4621,13 @@ case `"$ac_path_SED" --version 2>&1` in ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 - printf %s 0123456789 >"conftest.in" + $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" - printf "%s\n" '' >> "conftest.nl" + $as_echo '' >> "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 @@ -5240,20 +4655,19 @@ else fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 -printf "%s\n" "$ac_cv_path_SED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=" >&5 -printf %s "checking for --with-cxx-main=... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-cxx-main=" >&5 +$as_echo_n "checking for --with-cxx-main=... " >&6; } # Check whether --with-cxx_main was given. -if test ${with_cxx_main+y} -then : +if test "${with_cxx_main+set}" = set; then : withval=$with_cxx_main; case $withval in @@ -5268,15 +4682,15 @@ then : CXX=$withval fi;; esac -else $as_nop +else with_cxx_main=no MAINCC='$(CC)' fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 -printf "%s\n" "$with_cxx_main" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_cxx_main" >&5 +$as_echo "$with_cxx_main" >&6; } preset_cxx="$CXX" if test -z "$CXX" @@ -5285,12 +4699,11 @@ 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 -{ 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 +{ $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 case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -5300,15 +4713,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5320,11 +4729,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5333,12 +4742,11 @@ 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 -{ 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 +{ $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 case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -5348,15 +4756,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5368,11 +4772,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -printf "%s\n" "$ac_pt_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +$as_echo "$ac_pt_CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -5380,8 +4784,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -5393,12 +4797,11 @@ 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 -{ 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 +{ $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 case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -5408,15 +4811,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5428,11 +4827,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5441,12 +4840,11 @@ 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 -{ 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 +{ $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 case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -5456,15 +4854,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5476,11 +4870,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -printf "%s\n" "$ac_pt_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +$as_echo "$ac_pt_CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -5488,8 +4882,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -5501,12 +4895,11 @@ 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 -{ 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 +{ $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 case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -5516,15 +4909,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5536,11 +4925,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5549,12 +4938,11 @@ 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 -{ 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 +{ $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 case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -5564,15 +4952,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5584,11 +4968,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -printf "%s\n" "$ac_pt_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +$as_echo "$ac_pt_CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -5596,8 +4980,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -5609,12 +4993,11 @@ 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 -{ 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 +{ $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 case $CXX in [\\/]* | ?:[\\/]*) ac_cv_path_CXX="$CXX" # Let the user override the test with a path. @@ -5624,15 +5007,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5644,11 +5023,11 @@ esac fi CXX=$ac_cv_path_CXX if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5657,12 +5036,11 @@ 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 -{ 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 +{ $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 case $ac_pt_CXX in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_CXX="$ac_pt_CXX" # Let the user override the test with a path. @@ -5672,15 +5050,11 @@ else $as_nop for as_dir in notfound do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5692,11 +5066,11 @@ esac fi ac_pt_CXX=$ac_cv_path_ac_pt_CXX if test -n "$ac_pt_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 -printf "%s\n" "$ac_pt_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_CXX" >&5 +$as_echo "$ac_pt_CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_CXX" = x; then @@ -5704,8 +5078,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac CXX=$ac_pt_CXX @@ -5727,12 +5101,11 @@ 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 -{ 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 +{ $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 if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else @@ -5740,15 +5113,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5759,11 +5128,11 @@ fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 -printf "%s\n" "$CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5776,12 +5145,11 @@ 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 -{ 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 +{ $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 if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else @@ -5789,15 +5157,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -5808,11 +5172,11 @@ fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 -printf "%s\n" "$ac_ct_CXX" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -5824,8 +5188,8 @@ done 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;} +{ $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;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX @@ -5839,12 +5203,12 @@ fi fi if test "$preset_cxx" != "$CXX" then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: + { $as_echo "$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 -printf "%s\n" "$as_me: +$as_echo "$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. @@ -5855,8 +5219,8 @@ fi MULTIARCH=$($CC --print-multiarch 2>/dev/null) -{ 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; } +{ $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; } cat >> conftest.c <conftest.out 2>/dev/null; then PLATFORM_TRIPLET=`grep -v '^#' conftest.out | grep -v '^ *$' | tr -d ' '` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PLATFORM_TRIPLET" >&5 -printf "%s\n" "$PLATFORM_TRIPLET" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PLATFORM_TRIPLET" >&5 +$as_echo "$PLATFORM_TRIPLET" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 -printf "%s\n" "none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } fi rm -f conftest.c conftest.out @@ -6026,8 +5390,8 @@ if test x$MULTIARCH != x; then fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 -printf %s "checking for -Wl,--no-as-needed... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wl,--no-as-needed" >&5 +$as_echo_n "checking for -Wl,--no-as-needed... " >&6; } save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--no-as-needed" @@ -6035,203 +5399,290 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; 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" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else NO_AS_NEEDED="" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" # checks for UNIX variants that set C preprocessor variables -ac_header= ac_cache= -for ac_item in $ac_header_c_list + +{ $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 do - 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 + 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 fi - ac_header= ac_cache= - elif test $ac_header; then - ac_cache=$ac_item - else - ac_header=$ac_item - 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 + # 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 + ac_cv_path_EGREP=$EGREP fi + 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" - - - - { 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ +#include +#include +#include +#include -# define __EXTENSIONS__ 1 - $ac_includes_default int -main (void) +main () { ; return 0; } _ACEOF -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 core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no 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; } +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - { 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 : +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 - #include - mbstate_t x; -int -main (void) -{ +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +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 - ; - return 0; -} _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +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* + +fi -else $as_nop +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 - #define _XOPEN_SOURCE 500 - #include - mbstate_t x; +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int -main (void) +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_compile "$LINENO" -then : - ac_cv_should_define__xopen_source=yes +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi fi -{ 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 "$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" "#define _ALL_SOURCE 1" >>confdefs.h +$as_echo "#define STDC_HEADERS 1" >>confdefs.h - printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h +fi + +# 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= + ; + 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 - if test $ac_cv_safe_to_define___extensions__ = yes -then : - printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - if test $ac_cv_should_define__xopen_source = yes -then : - printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h +{ $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 -fi + $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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Android API level" >&5 -printf %s "checking for the Android API level... " >&6; } + $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; } 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` - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5 -printf "%s\n" "$ANDROID_API_LEVEL" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5 +$as_echo "$ANDROID_API_LEVEL" >&6; } if test -z "$ANDROID_API_LEVEL"; then echo 'Fatal: you must define __ANDROID_API__' exit 1 fi -printf "%s\n" "#define ANDROID_API_LEVEL $ANDROID_API_LEVEL" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define ANDROID_API_LEVEL $ANDROID_API_LEVEL +_ACEOF - { 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; } + { $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; } 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not Android" >&5 -printf "%s\n" "not Android" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not Android" >&5 +$as_echo "not Android" >&6; } fi rm -f conftest.c conftest.out @@ -6277,12 +5730,11 @@ atheos*|Linux*/1*) esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-suffix" >&5 -printf %s "checking for --with-suffix... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-suffix" >&5 +$as_echo_n "checking for --with-suffix... " >&6; } # Check whether --with-suffix was given. -if test ${with_suffix+y} -then : +if test "${with_suffix+set}" = set; then : withval=$with_suffix; case $withval in no) EXEEXT=;; @@ -6291,26 +5743,26 @@ then : esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXEEXT" >&5 -printf "%s\n" "$EXEEXT" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXEEXT" >&5 +$as_echo "$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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for case-insensitive build directory" >&5 -printf %s "checking for case-insensitive build directory... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for case-insensitive build directory" >&5 +$as_echo_n "checking for case-insensitive build directory... " >&6; } if test ! -d CaseSensitiveTestDir; then mkdir CaseSensitiveTestDir fi if test -d casesensitivetestdir then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } BUILDEXEEXT=.exe else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } BUILDEXEEXT=$EXEEXT fi rmdir CaseSensitiveTestDir @@ -6323,14 +5775,14 @@ hp*|HP*) esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5 -printf %s "checking LIBRARY... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBRARY" >&5 +$as_echo_n "checking LIBRARY... " >&6; } if test -z "$LIBRARY" then LIBRARY='libpython$(VERSION)$(ABIFLAGS).a' fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 -printf "%s\n" "$LIBRARY" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 +$as_echo "$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 @@ -6369,8 +5821,8 @@ LDVERSION="$VERSION" # compiled with CXX, LINKCC is CXX instead. Always using CXX is undesirable: # python might then depend on the C++ runtime -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LINKCC" >&5 -printf %s "checking LINKCC... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LINKCC" >&5 +$as_echo_n "checking LINKCC... " >&6; } if test -z "$LINKCC" then LINKCC='$(PURIFY) $(MAINCC)' @@ -6381,8 +5833,8 @@ then LINKCC=qcc;; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINKCC" >&5 -printf "%s\n" "$LINKCC" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINKCC" >&5 +$as_echo "$LINKCC" >&6; } # EXPORTSYMS holds the list of exported symbols for AIX. # EXPORTSFROM holds the module name exporting symbols on AIX. @@ -6390,16 +5842,16 @@ EXPORTSYMS= EXPORTSFROM= -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking EXPORTSYMS" >&5 -printf %s "checking EXPORTSYMS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking EXPORTSYMS" >&5 +$as_echo_n "checking EXPORTSYMS... " >&6; } case $ac_sys_system in AIX*) EXPORTSYMS="Modules/python.exp" EXPORTSFROM=. # the main executable ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EXPORTSYMS" >&5 -printf "%s\n" "$EXPORTSYMS" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPORTSYMS" >&5 +$as_echo "$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 @@ -6407,8 +5859,8 @@ printf "%s\n" "$EXPORTSYMS" >&6; } # to linker command lines, and failing to detect GNU ld simply results # in the same bahaviour as before. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 -printf %s "checking for GNU ld... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } ac_prog=ld if test "$GCC" = yes; then ac_prog=`$CC -print-prog-name=ld` @@ -6419,14 +5871,13 @@ case `"$ac_prog" -V 2>&1 < /dev/null` in *) GNULD=no;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5 -printf "%s\n" "$GNULD" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNULD" >&5 +$as_echo "$GNULD" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5 -printf %s "checking for --enable-shared... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-shared" >&5 +$as_echo_n "checking for --enable-shared... " >&6; } # Check whether --enable-shared was given. -if test ${enable_shared+y} -then : +if test "${enable_shared+set}" = set; then : enableval=$enable_shared; fi @@ -6440,14 +5891,13 @@ then enable_shared="no";; esac fi -{ 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}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-profiling" >&5 -printf %s "checking for --enable-profiling... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-profiling" >&5 +$as_echo_n "checking for --enable-profiling... " >&6; } # Check whether --enable-profiling was given. -if test ${enable_profiling+y} -then : +if test "${enable_profiling+set}" = set; then : enableval=$enable_profiling; fi @@ -6458,28 +5908,27 @@ 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 $as_nop +else enable_profiling=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CC="$ac_save_cc" else enable_profiling=no fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_profiling" >&5 -printf "%s\n" "$enable_profiling" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_profiling" >&5 +$as_echo "$enable_profiling" >&6; } if test "x$enable_profiling" = xyes; then BASECFLAGS="-pg $BASECFLAGS" LDFLAGS="-pg $LDFLAGS" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDLIBRARY" >&5 -printf %s "checking LDLIBRARY... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDLIBRARY" >&5 +$as_echo_n "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 @@ -6500,7 +5949,7 @@ fi if test $enable_shared = "yes"; then PY_ENABLE_SHARED=1 -printf "%s\n" "#define Py_ENABLE_SHARED 1" >>confdefs.h +$as_echo "#define Py_ENABLE_SHARED 1" >>confdefs.h case $ac_sys_system in CYGWIN*) @@ -6564,8 +6013,8 @@ if test "$cross_compiling" = yes; then RUNSHARED= fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 -printf "%s\n" "$LDLIBRARY" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDLIBRARY" >&5 +$as_echo "$LDLIBRARY" >&6; } if test -n "$ac_tool_prefix"; then @@ -6573,12 +6022,11 @@ 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 -{ 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 +{ $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 if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else @@ -6586,15 +6034,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6605,11 +6049,11 @@ fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -printf "%s\n" "$AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6622,12 +6066,11 @@ 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 -{ 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 +{ $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 if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else @@ -6635,15 +6078,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6654,11 +6093,11 @@ fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -printf "%s\n" "$ac_ct_AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6670,8 +6109,8 @@ done 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;} +{ $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;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR @@ -6691,12 +6130,11 @@ 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 -{ 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 +{ $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 if test -n "$READELF"; then ac_cv_prog_READELF="$READELF" # Let the user override the test. else @@ -6704,15 +6142,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6723,11 +6157,11 @@ fi fi READELF=$ac_cv_prog_READELF if test -n "$READELF"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 -printf "%s\n" "$READELF" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5 +$as_echo "$READELF" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6740,12 +6174,11 @@ 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 -{ 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 +{ $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 if test -n "$ac_ct_READELF"; then ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test. else @@ -6753,15 +6186,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -6772,11 +6201,11 @@ fi fi ac_ct_READELF=$ac_cv_prog_ac_ct_READELF if test -n "$ac_ct_READELF"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5 -printf "%s\n" "$ac_ct_READELF" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_READELF" >&5 +$as_echo "$ac_ct_READELF" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -6788,8 +6217,8 @@ done 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;} +{ $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;} ac_tool_warned=yes ;; esac READELF=$ac_ct_READELF @@ -6814,8 +6243,7 @@ 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 @@ -6829,25 +6257,20 @@ 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. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 -printf %s "checking for a BSD-compatible install... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then -if test ${ac_cv_path_install+y} -then : - printf %s "(cached) " >&6 -else $as_nop +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +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 - # Account for fact that we put trailing slashes in our PATH walk. -case $as_dir in #(( - ./ | /[cC]/* | \ + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; @@ -6857,13 +6280,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 @@ -6871,12 +6294,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 @@ -6892,7 +6315,7 @@ IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi - if test ${ac_cv_path_install+y}; then + if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a @@ -6902,8 +6325,8 @@ fi INSTALL=$ac_install_sh fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 -printf "%s\n" "$INSTALL" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. @@ -6913,31 +6336,25 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - { 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; } +{ $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; } if test -z "$MKDIR_P"; then - if test ${ac_cv_path_mkdir+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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 ('*'coreutils) '* | \ - 'BusyBox '* | \ + 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) '* | \ '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 @@ -6948,7 +6365,7 @@ IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version - if test ${ac_cv_path_mkdir+y}; then + if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a @@ -6958,8 +6375,8 @@ fi MKDIR_P="$ac_install_sh -d" fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 -printf "%s\n" "$MKDIR_P" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } # Not every filesystem supports hard links @@ -6976,63 +6393,60 @@ fi ABIFLAGS="" # Check for --with-pydebug -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-pydebug" >&5 -printf %s "checking for --with-pydebug... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pydebug" >&5 +$as_echo_n "checking for --with-pydebug... " >&6; } # Check whether --with-pydebug was given. -if test ${with_pydebug+y} -then : +if test "${with_pydebug+set}" = set; then : withval=$with_pydebug; if test "$withval" != no then -printf "%s\n" "#define Py_DEBUG 1" >>confdefs.h +$as_echo "#define Py_DEBUG 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; Py_DEBUG='true' ABIFLAGS="${ABIFLAGS}d" -else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; }; Py_DEBUG='false' +else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; Py_DEBUG='false' fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Check for --with-trace-refs # --with-trace-refs -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-trace-refs" >&5 -printf %s "checking for --with-trace-refs... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-trace-refs" >&5 +$as_echo_n "checking for --with-trace-refs... " >&6; } # Check whether --with-trace-refs was given. -if test ${with_trace_refs+y} -then : +if test "${with_trace_refs+set}" = set; then : withval=$with_trace_refs; -else $as_nop +else with_trace_refs=no fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_trace_refs" >&5 -printf "%s\n" "$with_trace_refs" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_trace_refs" >&5 +$as_echo "$with_trace_refs" >&6; } if test "$with_trace_refs" = "yes" then -printf "%s\n" "#define Py_TRACE_REFS 1" >>confdefs.h +$as_echo "#define Py_TRACE_REFS 1" >>confdefs.h fi # Check for --with-assertions. # This allows enabling assertions without Py_DEBUG. assertions='false' -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-assertions" >&5 -printf %s "checking for --with-assertions... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-assertions" >&5 +$as_echo_n "checking for --with-assertions... " >&6; } # Check whether --with-assertions was given. -if test ${with_assertions+y} -then : +if test "${with_assertions+set}" = set; then : withval=$with_assertions; if test "$withval" != no then @@ -7041,40 +6455,39 @@ fi fi if test "$assertions" = 'true'; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } elif test "$Py_DEBUG" = 'true'; then assertions='true' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: implied by --with-pydebug" >&5 -printf "%s\n" "implied by --with-pydebug" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: implied by --with-pydebug" >&5 +$as_echo "implied by --with-pydebug" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Enable optimization flags Py_OPT='false' -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-optimizations" >&5 -printf %s "checking for --enable-optimizations... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-optimizations" >&5 +$as_echo_n "checking for --enable-optimizations... " >&6; } # Check whether --enable-optimizations was given. -if test ${enable_optimizations+y} -then : +if test "${enable_optimizations+set}" = set; then : enableval=$enable_optimizations; if test "$enableval" != no then Py_OPT='true' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; else Py_OPT='false' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "$Py_OPT" = 'true' ; then @@ -7087,12 +6500,11 @@ if test "$Py_OPT" = 'true' ; then DEF_MAKE_RULE="build_all" case $CC in *gcc*) - { 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 + { $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 ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fno-semantic-interposition" @@ -7100,31 +6512,29 @@ else $as_nop /* end confdefs.h. */ int -main (void) +main () { ; 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 $as_nop +else ax_cv_check_cflags___fno_semantic_interposition=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi -{ 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 : +{ $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 : CFLAGS_NODIST="$CFLAGS_NODIST -fno-semantic-interposition" LDFLAGS_NODIST="$LDFLAGS_NODIST -fno-semantic-interposition" -else $as_nop +else : fi @@ -7139,14 +6549,14 @@ else fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking PROFILE_TASK" >&5 -printf %s "checking PROFILE_TASK... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking PROFILE_TASK" >&5 +$as_echo_n "checking PROFILE_TASK... " >&6; } if test -z "$PROFILE_TASK" then PROFILE_TASK='-m test --pgo --timeout=$(TESTTIMEOUT)' fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROFILE_TASK" >&5 -printf "%s\n" "$PROFILE_TASK" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $PROFILE_TASK" >&5 +$as_echo "$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 @@ -7169,26 +6579,25 @@ then fi # Enable LTO flags -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-lto" >&5 -printf %s "checking for --with-lto... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-lto" >&5 +$as_echo_n "checking for --with-lto... " >&6; } # Check whether --with-lto was given. -if test ${with_lto+y} -then : +if test "${with_lto+set}" = set; then : withval=$with_lto; if test "$withval" != no then Py_LTO='true' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; else Py_LTO='false' - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "$Py_LTO" = 'true' ; then @@ -7198,12 +6607,11 @@ 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 -{ 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 +{ $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 case $LLVM_AR in [\\/]* | ?:[\\/]*) ac_cv_path_LLVM_AR="$LLVM_AR" # Let the user override the test with a path. @@ -7213,15 +6621,11 @@ else $as_nop for as_dir in ${llvm_path} do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7233,11 +6637,11 @@ esac fi LLVM_AR=$ac_cv_path_LLVM_AR if test -n "$LLVM_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LLVM_AR" >&5 -printf "%s\n" "$LLVM_AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_AR" >&5 +$as_echo "$LLVM_AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7246,12 +6650,11 @@ 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 -{ 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 +{ $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 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. @@ -7261,15 +6664,11 @@ else $as_nop for as_dir in ${llvm_path} do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7281,11 +6680,11 @@ esac fi ac_pt_LLVM_AR=$ac_cv_path_ac_pt_LLVM_AR if test -n "$ac_pt_LLVM_AR"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_AR" >&5 -printf "%s\n" "$ac_pt_LLVM_AR" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_AR" >&5 +$as_echo "$ac_pt_LLVM_AR" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_LLVM_AR" = x; then @@ -7293,8 +6692,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac LLVM_AR=$ac_pt_LLVM_AR @@ -7318,8 +6717,8 @@ fi then LLVM_AR='/usr/bin/xcrun ar' LLVM_AR_FOUND=found - { 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;} + { $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;} fi fi if test $LLVM_AR_FOUND = not-found @@ -7375,12 +6774,11 @@ 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 -{ 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 +{ $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 case $LLVM_PROFDATA in [\\/]* | ?:[\\/]*) ac_cv_path_LLVM_PROFDATA="$LLVM_PROFDATA" # Let the user override the test with a path. @@ -7390,15 +6788,11 @@ else $as_nop for as_dir in ${llvm_path} do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7410,11 +6804,11 @@ esac fi LLVM_PROFDATA=$ac_cv_path_LLVM_PROFDATA if test -n "$LLVM_PROFDATA"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROFDATA" >&5 -printf "%s\n" "$LLVM_PROFDATA" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_PROFDATA" >&5 +$as_echo "$LLVM_PROFDATA" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -7423,12 +6817,11 @@ 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 -{ 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 +{ $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 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. @@ -7438,15 +6831,11 @@ else $as_nop for as_dir in ${llvm_path} do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -7458,11 +6847,11 @@ esac fi ac_pt_LLVM_PROFDATA=$ac_cv_path_ac_pt_LLVM_PROFDATA if test -n "$ac_pt_LLVM_PROFDATA"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_PROFDATA" >&5 -printf "%s\n" "$ac_pt_LLVM_PROFDATA" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_LLVM_PROFDATA" >&5 +$as_echo "$ac_pt_LLVM_PROFDATA" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_pt_LLVM_PROFDATA" = x; then @@ -7470,8 +6859,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac LLVM_PROFDATA=$ac_pt_LLVM_PROFDATA @@ -7496,8 +6885,8 @@ then # https://apple.stackexchange.com/questions/197053/ LLVM_PROFDATA='/usr/bin/xcrun llvm-profdata' LLVM_PROF_FOUND=found - { 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;} + { $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;} fi fi LLVM_PROF_ERR=no @@ -7641,20 +7030,19 @@ case $GCC in yes) CFLAGS_NODIST="$CFLAGS_NODIST -std=c99" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -Wextra" >&5 -printf %s "checking for -Wextra... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra" >&5 +$as_echo_n "checking for -Wextra... " >&6; } ac_save_cc="$CC" CC="$CC -Wextra -Werror" - if test ${ac_cv_extra_warnings+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_extra_warnings+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7662,22 +7050,21 @@ main (void) } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_extra_warnings=yes -else $as_nop +else ac_cv_extra_warnings=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_extra_warnings" >&5 -printf "%s\n" "$ac_cv_extra_warnings" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_extra_warnings" >&5 +$as_echo "$ac_cv_extra_warnings" >&6; } if test $ac_cv_extra_warnings = yes then @@ -7688,21 +7075,20 @@ printf "%s\n" "$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 - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -fno-strict-aliasing" save_CFLAGS="$CFLAGS" - if test ${ac_cv_no_strict_aliasing+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_no_strict_aliasing+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7710,8 +7096,7 @@ main (void) } _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" @@ -7720,7 +7105,7 @@ then : void f(int **x) {} int -main (void) +main () { double *x; f((int **) &x); ; @@ -7728,30 +7113,29 @@ 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 $as_nop +else ac_cv_no_strict_aliasing=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else $as_nop +else ac_cv_no_strict_aliasing=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_no_strict_aliasing" >&5 -printf "%s\n" "$ac_cv_no_strict_aliasing" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_no_strict_aliasing" >&5 +$as_echo "$ac_cv_no_strict_aliasing" >&6; } if test $ac_cv_no_strict_aliasing = yes then BASECFLAGS="$BASECFLAGS -fno-strict-aliasing" @@ -7764,21 +7148,20 @@ printf "%s\n" "$ac_cv_no_strict_aliasing" >&6; } ac_cv_disable_unused_result_warning=no ;; *) - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Wunused-result -Werror" save_CFLAGS="$CFLAGS" - if test ${ac_cv_disable_unused_result_warning+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_disable_unused_result_warning+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7786,23 +7169,22 @@ main (void) } _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 $as_nop +else ac_cv_disable_unused_result_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_result_warning" >&5 +$as_echo "$ac_cv_disable_unused_result_warning" >&6; } ;; esac @@ -7812,20 +7194,19 @@ printf "%s\n" "$ac_cv_disable_unused_result_warning" >&6; } CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result" fi - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Wunused-parameter -Werror" - if test ${ac_cv_disable_unused_parameter_warning+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_disable_unused_parameter_warning+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7833,42 +7214,40 @@ main (void) } _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 $as_nop +else ac_cv_disable_unused_parameter_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_parameter_warning" >&5 +$as_echo "$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 - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Wmissing-field-initializers -Werror" - if test ${ac_cv_disable_missing_field_initializers+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_disable_missing_field_initializers+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7876,43 +7255,41 @@ main (void) } _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 $as_nop +else ac_cv_disable_missing_field_initializers=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_missing_field_initializers" >&5 +$as_echo "$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 - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Wsign-compare" save_CFLAGS="$CFLAGS" - if test ${ac_cv_enable_sign_compare_warning+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_enable_sign_compare_warning+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7920,44 +7297,42 @@ main (void) } _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 $as_nop +else ac_cv_enable_sign_compare_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$save_CFLAGS" CC="$ac_save_cc" - { 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_sign_compare_warning" >&5 +$as_echo "$ac_cv_enable_sign_compare_warning" >&6; } if test $ac_cv_enable_sign_compare_warning = yes then BASECFLAGS="$BASECFLAGS -Wsign-compare" fi - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Wunreachable-code" save_CFLAGS="$CFLAGS" - if test ${ac_cv_enable_unreachable_code_warning+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_enable_unreachable_code_warning+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -7965,17 +7340,16 @@ main (void) } _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 $as_nop +else ac_cv_enable_unreachable_code_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CFLAGS="$save_CFLAGS" @@ -7996,23 +7370,22 @@ fi else ac_cv_enable_unreachable_code_warning=no fi - { 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}: 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}: checking if we can turn on $CC strict-prototypes warning" >&5 -printf %s "checking if we can turn on $CC strict-prototypes 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; } ac_save_cc="$CC" CC="$CC -Werror -Wstrict-prototypes" - if test ${ac_cv_enable_enable_strict_prototypes_warning+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_enable_enable_strict_prototypes_warning+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -8020,42 +7393,40 @@ main (void) } _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 $as_nop +else ac_cv_enable_strict_prototypes_warning=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { 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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_strict_prototypes_warning" >&5 +$as_echo "$ac_cv_enable_strict_prototypes_warning" >&6; } if test $ac_cv_enable_strict_prototypes_warning = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes" fi - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -Werror=implicit-function-declaration" - if test ${ac_cv_enable_implicit_function_declaration_error+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_enable_implicit_function_declaration_error+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -8063,42 +7434,40 @@ main (void) } _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 $as_nop +else ac_cv_enable_implicit_function_declaration_error=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { 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; } + { $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; } if test $ac_cv_enable_implicit_function_declaration_error = yes then CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration" fi - { 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; } + { $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; } ac_save_cc="$CC" CC="$CC -fvisibility=hidden" - if test ${ac_cv_enable_visibility+y} -then : - printf %s "(cached) " >&6 -else $as_nop + if ${ac_cv_enable_visibility+:} false; then : + $as_echo_n "(cached) " >&6 +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { ; @@ -8106,22 +7475,21 @@ main (void) } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : ac_cv_enable_visibility=yes -else $as_nop +else ac_cv_enable_visibility=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi CC="$ac_save_cc" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_visibility" >&5 -printf "%s\n" "$ac_cv_enable_visibility" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_visibility" >&5 +$as_echo "$ac_cv_enable_visibility" >&6; } if test $ac_cv_enable_visibility = yes then @@ -8147,8 +7515,8 @@ printf "%s\n" "$ac_cv_enable_visibility" >&6; } # used to be here, but non-Apple gcc doesn't accept them. if test "${CC}" = gcc then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5 -printf %s "checking which compiler should be used... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5 +$as_echo_n "checking which compiler should be used... " >&6; } case "${UNIVERSALSDK}" in */MacOSX10.4u.sdk) # Build using 10.4 SDK, force usage of gcc when the @@ -8158,8 +7526,8 @@ printf %s "checking which compiler should be used... " >&6; } CPP=cpp-4.0 ;; esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -printf "%s\n" "$CC" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } fi LIPO_INTEL64_FLAGS="" @@ -8236,8 +7604,8 @@ printf "%s\n" "$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! - { 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; } + { $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; } cur_target_major=`sw_vers -productVersion | \ sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'` cur_target_minor=`sw_vers -productVersion | \ @@ -8274,33 +7642,32 @@ printf %s "checking which MACOSX_DEPLOYMENT_TARGET to use... " >&6; } MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET" export MACOSX_DEPLOYMENT_TARGET EXPORT_MACOSX_DEPLOYMENT_TARGET='' - { 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}: result: $MACOSX_DEPLOYMENT_TARGET" >&5 +$as_echo "$MACOSX_DEPLOYMENT_TARGET" >&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; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if specified universal architectures work" >&5 +$as_echo_n "checking if specified universal architectures work... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { printf("%d", 42); ; return 0; } _ACEOF -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; } +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; } as_fn_error $? "check config.log and use the '--with-universal-archs' option" "$LINENO" 5 fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # end of Darwin* tests @@ -8346,16 +7713,14 @@ 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. -{ 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 : +{ $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 : ac_cv_pthread_is_default=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8373,14 +7738,13 @@ 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 $as_nop +else ac_cv_pthread_is_default=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -8390,8 +7754,8 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_is_default" >&5 -printf "%s\n" "$ac_cv_pthread_is_default" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_is_default" >&5 +$as_echo "$ac_cv_pthread_is_default" >&6; } if test $ac_cv_pthread_is_default = yes @@ -8403,18 +7767,16 @@ 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. -{ 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 +{ $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 ac_save_cc="$CC" CC="$CC -Kpthread" -if test "$cross_compiling" = yes -then : +if test "$cross_compiling" = yes; then : ac_cv_kpthread=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8432,10 +7794,9 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_cv_kpthread=yes -else $as_nop +else ac_cv_kpthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -8445,8 +7806,8 @@ fi CC="$ac_save_cc" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kpthread" >&5 -printf "%s\n" "$ac_cv_kpthread" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kpthread" >&5 +$as_echo "$ac_cv_kpthread" >&6; } fi if test $ac_cv_kpthread = no -a $ac_cv_pthread_is_default = no @@ -8456,18 +7817,16 @@ 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. -{ 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 +{ $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 ac_save_cc="$CC" CC="$CC -Kthread" -if test "$cross_compiling" = yes -then : +if test "$cross_compiling" = yes; then : ac_cv_kthread=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8485,10 +7844,9 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_cv_kthread=yes -else $as_nop +else ac_cv_kthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -8498,8 +7856,8 @@ fi CC="$ac_save_cc" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kthread" >&5 -printf "%s\n" "$ac_cv_kthread" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_kthread" >&5 +$as_echo "$ac_cv_kthread" >&6; } fi if test $ac_cv_kthread = no -a $ac_cv_pthread_is_default = no @@ -8509,18 +7867,16 @@ 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. -{ 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 +{ $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 ac_save_cc="$CC" CC="$CC -pthread" -if test "$cross_compiling" = yes -then : +if test "$cross_compiling" = yes; then : ac_cv_pthread=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8538,10 +7894,9 @@ int main(){ } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_cv_pthread=yes -else $as_nop +else ac_cv_pthread=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -8551,8 +7906,8 @@ fi CC="$ac_save_cc" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread" >&5 -printf "%s\n" "$ac_cv_pthread" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread" >&5 +$as_echo "$ac_cv_pthread" >&6; } fi # If we have set a CC compiler flag for thread support then @@ -8560,8 +7915,8 @@ fi ac_cv_cxx_thread=no if test ! -z "$CXX" then -{ 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; } +{ $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; } ac_save_cxx="$CXX" if test "$ac_cv_kpthread" = "yes" @@ -8591,702 +7946,358 @@ then fi rm -fr conftest* fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_thread" >&5 -printf "%s\n" "$ac_cv_cxx_thread" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_thread" >&5 +$as_echo "$ac_cv_cxx_thread" >&6; } fi CXX="$ac_save_cxx" # checks for header files -# 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 +{ $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 - ac_cv_path_EGREP=$EGREP -fi - - 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 - -fi -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 - -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 - -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 - -fi -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 + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#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 +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no 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 +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -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 +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" "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 +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no 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 +rm -f conftest* 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 -fi -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 +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" "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 +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : +else + ac_cv_header_stdc=no 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 +rm -f conftest* fi -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 -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 +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" "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 +#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 : +else + ac_cv_header_stdc=no 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 - +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext 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 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 - 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 +{ $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 -fi -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 +$as_echo "#define STDC_HEADERS 1" >>confdefs.h fi -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 -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 +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" "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 -fi -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 +done -fi -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 +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> +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 -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 - +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -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 +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_header_dirent=$ac_hdr; break 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 -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 +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. */ +/* 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 -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 - +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_opendir+:} false; then : + break 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 +done +if ${ac_cv_search_opendir+:} false; then : +else + ac_cv_search_opendir=no 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 - +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS 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 +{ $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" 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. */ +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. */ /* 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 (void) +main () { return opendir (); ; return 0; } _ACEOF -for ac_lib in '' dir -do +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 : + if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test ${ac_cv_search_opendir+y} -then : + if ${ac_cv_search_opendir+:} false; then : break fi done -if test ${ac_cv_search_opendir+y} -then : +if ${ac_cv_search_opendir+:} false; then : -else $as_nop +else 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; } +{ $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 : +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 - { 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 + 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 (); +#include int -main (void) +main () { -return opendir (); +return makedev(0, 0); ; return 0; } _ACEOF -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.beam \ - conftest$ac_exeext - if test ${ac_cv_search_opendir+y} -then : - break -fi -done -if test ${ac_cv_search_opendir+y} -then : - -else $as_nop - ac_cv_search_opendir=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +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 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" +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext 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; } -fi +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 : +$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h -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 : +fi -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 : + 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 : -printf "%s\n" "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h +$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h fi + + fi fi @@ -9294,17 +8305,24 @@ fi # http://permalink.gmane.org/gmane.linux.bluez.kernel/22294 SAVE_CFLAGS=$CFLAGS CFLAGS="-std=c99 $CFLAGS" -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 +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 fi +done + CFLAGS=$SAVE_CFLAGS # On Darwin (OS X) net/if.h requires sys/socket.h to be imported first. -ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#include +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 #ifdef STDC_HEADERS # include # include @@ -9318,15 +8336,20 @@ ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "#incl #endif " -if test "x$ac_cv_header_net_if_h" = xyes -then : - printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h +if test "x$ac_cv_header_net_if_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NET_IF_H 1 +_ACEOF fi +done + # On Linux, netlink.h requires asm/types.h -ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_netlink_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" " #ifdef HAVE_ASM_TYPES_H #include #endif @@ -9335,15 +8358,20 @@ ac_fn_c_check_header_compile "$LINENO" "linux/netlink.h" "ac_cv_header_linux_net #endif " -if test "x$ac_cv_header_linux_netlink_h" = xyes -then : - printf "%s\n" "#define HAVE_LINUX_NETLINK_H 1" >>confdefs.h +if test "x$ac_cv_header_linux_netlink_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_NETLINK_H 1 +_ACEOF fi +done + # On Linux, qrtr.h requires asm/types.h -ac_fn_c_check_header_compile "$LINENO" "linux/qrtr.h" "ac_cv_header_linux_qrtr_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" " #ifdef HAVE_ASM_TYPES_H #include #endif @@ -9352,101 +8380,80 @@ ac_fn_c_check_header_compile "$LINENO" "linux/qrtr.h" "ac_cv_header_linux_qrtr_h #endif " -if test "x$ac_cv_header_linux_qrtr_h" = xyes -then : - printf "%s\n" "#define HAVE_LINUX_QRTR_H 1" >>confdefs.h +if test "x$ac_cv_header_linux_qrtr_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_QRTR_H 1 +_ACEOF fi - -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 : - 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 -ac_fn_c_check_header_compile "$LINENO" "linux/can.h" "ac_cv_header_linux_can_h" " +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" " #ifdef HAVE_SYS_SOCKET_H #include #endif " -if test "x$ac_cv_header_linux_can_h" = xyes -then : - printf "%s\n" "#define HAVE_LINUX_CAN_H 1" >>confdefs.h +if test "x$ac_cv_header_linux_vm_sockets_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LINUX_VM_SOCKETS_H 1 +_ACEOF 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 - -" -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 +done -" -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" " +# 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" " #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 +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 +done + # checks for typedefs was_it_defined=no -{ 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; } - +{ $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; } 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 $as_nop +else -printf "%s\n" "#define clock_t long" >>confdefs.h +$as_echo "#define clock_t long" >>confdefs.h fi -rm -rf conftest* +rm -f conftest* -{ 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}: result: $was_it_defined" >&5 +$as_echo "$was_it_defined" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for makedev" >&5 -printf %s "checking for makedev... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for makedev" >&5 +$as_echo_n "checking for makedev... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9459,7 +8466,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { makedev(0, 0) @@ -9468,25 +8475,24 @@ main (void) } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : ac_cv_has_makedev=yes -else $as_nop +else ac_cv_has_makedev=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_makedev" >&5 -printf "%s\n" "$ac_cv_has_makedev" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_makedev" >&5 +$as_echo "$ac_cv_has_makedev" >&6; } if test "$ac_cv_has_makedev" = "yes"; then -printf "%s\n" "#define HAVE_MAKEDEV 1" >>confdefs.h +$as_echo "#define HAVE_MAKEDEV 1" >>confdefs.h fi # byte swapping -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for le64toh" >&5 -printf %s "checking for le64toh... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for le64toh" >&5 +$as_echo_n "checking for le64toh... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -9497,7 +8503,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { le64toh(1) @@ -9506,19 +8512,18 @@ main (void) } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : ac_cv_has_le64toh=yes -else $as_nop +else ac_cv_has_le64toh=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_le64toh" >&5 -printf "%s\n" "$ac_cv_has_le64toh" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_has_le64toh" >&5 +$as_echo "$ac_cv_has_le64toh" >&6; } if test "$ac_cv_has_le64toh" = "yes"; then -printf "%s\n" "#define HAVE_HTOLE64 1" >>confdefs.h +$as_echo "#define HAVE_HTOLE64 1" >>confdefs.h fi @@ -9534,15 +8539,15 @@ if test "$use_lfs" = "yes"; then case $ac_sys_system/$ac_sys_release in AIX*) -printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h +$as_echo "#define _LARGE_FILES 1" >>confdefs.h ;; esac -printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h +$as_echo "#define _LARGEFILE_SOURCE 1" >>confdefs.h -printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h +$as_echo "#define _FILE_OFFSET_BITS 64" >>confdefs.h fi @@ -9555,121 +8560,96 @@ 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 $as_nop +else -printf "%s\n" "#define mode_t int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define mode_t int +_ACEOF 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 $as_nop +else -printf "%s\n" "#define off_t long int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define off_t long int +_ACEOF 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 : - 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; -} +else +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 - -printf "%s\n" "#define RETSIGTYPE void" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE void +_ACEOF 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 $as_nop +else -printf "%s\n" "#define size_t unsigned int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF fi -{ 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 +{ $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 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 $as_nop +else ac_cv_type_uid_t=no fi -rm -rf conftest* +rm -f conftest* fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -printf "%s\n" "$ac_cv_type_uid_t" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +$as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then -printf "%s\n" "#define uid_t int" >>confdefs.h +$as_echo "#define uid_t int" >>confdefs.h -printf "%s\n" "#define gid_t int" >>confdefs.h +$as_echo "#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 : -printf "%s\n" "#define HAVE_SSIZE_T 1" >>confdefs.h +$as_echo "#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 : -printf "%s\n" "#define HAVE_GCC_UINT128_T 1" >>confdefs.h +$as_echo "#define HAVE_GCC_UINT128_T 1" >>confdefs.h fi @@ -9680,19 +8660,17 @@ 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. -{ 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 +{ $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 if test "$ac_cv_type_int" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else @@ -9701,31 +8679,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -printf "%s\n" "$ac_cv_sizeof_int" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } -printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else @@ -9734,30 +8712,33 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -printf "%s\n" "$ac_cv_sizeof_long" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } -printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF # The cast to long int works around a bug in the HP C Compiler, # see AC_CHECK_SIZEOF for more information. -{ 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 +{ $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 if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_long" "$ac_includes_default -typedef struct { char x; long y; } ac__type_alignof_;" -then : +#ifndef offsetof +# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) +#endif +typedef struct { char x; long y; } ac__type_alignof_;"; then : -else $as_nop +else if test "$ac_cv_type_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -9766,31 +8747,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5 -printf "%s\n" "$ac_cv_alignof_long" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_long" >&5 +$as_echo "$ac_cv_alignof_long" >&6; } -printf "%s\n" "#define ALIGNOF_LONG $ac_cv_alignof_long" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define ALIGNOF_LONG $ac_cv_alignof_long +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_long_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -9799,31 +8780,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -printf "%s\n" "$ac_cv_sizeof_long_long" >&6; } +{ $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" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_void_p" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See \`config.log' for more details" "$LINENO" 5; } else @@ -9832,31 +8813,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -printf "%s\n" "$ac_cv_sizeof_void_p" >&6; } +{ $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" "#define SIZEOF_VOID_P $ac_cv_sizeof_void_p" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_short" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else @@ -9865,31 +8846,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -printf "%s\n" "$ac_cv_sizeof_short" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } -printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_float" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (float) See \`config.log' for more details" "$LINENO" 5; } else @@ -9898,31 +8879,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 -printf "%s\n" "$ac_cv_sizeof_float" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 +$as_echo "$ac_cv_sizeof_float" >&6; } -printf "%s\n" "#define SIZEOF_FLOAT $ac_cv_sizeof_float" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_FLOAT $ac_cv_sizeof_float +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_double" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (double) See \`config.log' for more details" "$LINENO" 5; } else @@ -9931,31 +8912,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 -printf "%s\n" "$ac_cv_sizeof_double" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 +$as_echo "$ac_cv_sizeof_double" >&6; } -printf "%s\n" "#define SIZEOF_DOUBLE $ac_cv_sizeof_double" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_DOUBLE $ac_cv_sizeof_double +_ACEOF # 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. -{ 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 - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ $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 + 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;} as_fn_error 77 "cannot compute sizeof (fpos_t) See \`config.log' for more details" "$LINENO" 5; } else @@ -9964,31 +8945,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_fpos_t" >&5 -printf "%s\n" "$ac_cv_sizeof_fpos_t" >&6; } +{ $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" "#define SIZEOF_FPOS_T $ac_cv_sizeof_fpos_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_FPOS_T $ac_cv_sizeof_fpos_t +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_size_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -9997,30 +8978,33 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 -printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } +{ $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" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t +_ACEOF # The cast to long int works around a bug in the HP C Compiler, # see AC_CHECK_SIZEOF for more information. -{ 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 +{ $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 if ac_fn_c_compute_int "$LINENO" "(long int) offsetof (ac__type_alignof_, y)" "ac_cv_alignof_size_t" "$ac_includes_default -typedef struct { char x; size_t y; } ac__type_alignof_;" -then : +#ifndef offsetof +# define offsetof(type, member) ((char *) &((type *) 0)->member - (char *) 0) +#endif +typedef struct { char x; size_t y; } ac__type_alignof_;"; then : -else $as_nop +else if test "$ac_cv_type_size_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10029,31 +9013,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_alignof_size_t" >&5 -printf "%s\n" "$ac_cv_alignof_size_t" >&6; } +{ $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" "#define ALIGNOF_SIZE_T $ac_cv_alignof_size_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define ALIGNOF_SIZE_T $ac_cv_alignof_size_t +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_pid_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10062,31 +9046,31 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pid_t" >&5 -printf "%s\n" "$ac_cv_sizeof_pid_t" >&6; } +{ $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" "#define SIZEOF_PID_T $ac_cv_sizeof_pid_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_PID_T $ac_cv_sizeof_pid_t +_ACEOF # 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. -{ 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 +{ $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 if test "$ac_cv_type_uintptr_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10095,22 +9079,23 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_uintptr_t" >&5 -printf "%s\n" "$ac_cv_sizeof_uintptr_t" >&6; } +{ $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" "#define SIZEOF_UINTPTR_T $ac_cv_sizeof_uintptr_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_UINTPTR_T $ac_cv_sizeof_uintptr_t +_ACEOF - { 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 + { $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 if test "$GCC" = yes; then ac_cv_type_long_double=yes else @@ -10120,7 +9105,7 @@ else $as_nop not support it. */ long double foo = 0.0L; int -main (void) +main () { static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */ sizeof (double) <= sizeof (long double))]; @@ -10131,20 +9116,19 @@ 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 $as_nop +else ac_cv_type_long_double=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 -printf "%s\n" "$ac_cv_type_long_double" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5 +$as_echo "$ac_cv_type_long_double" >&6; } if test $ac_cv_type_long_double = yes; then -printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h +$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h fi @@ -10152,19 +9136,17 @@ printf "%s\n" "#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. -{ 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 +{ $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 if test "$ac_cv_type_long_double" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10173,12 +9155,14 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5 -printf "%s\n" "$ac_cv_sizeof_long_double" >&6; } +{ $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" "#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double +_ACEOF @@ -10186,19 +9170,17 @@ printf "%s\n" "#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double" >>confdefs. # 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. -{ 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 +{ $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 if test "$ac_cv_type__Bool" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (_Bool) See \`config.log' for more details" "$LINENO" 5; } else @@ -10207,12 +9189,14 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof__Bool" >&5 -printf "%s\n" "$ac_cv_sizeof__Bool" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof__Bool" >&5 +$as_echo "$ac_cv_sizeof__Bool" >&6; } -printf "%s\n" "#define SIZEOF__BOOL $ac_cv_sizeof__Bool" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF__BOOL $ac_cv_sizeof__Bool +_ACEOF @@ -10220,24 +9204,22 @@ printf "%s\n" "#define SIZEOF__BOOL $ac_cv_sizeof__Bool" >>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. -{ 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 +{ $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 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 $as_nop +else if test "$ac_cv_type_off_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10246,39 +9228,40 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5 -printf "%s\n" "$ac_cv_sizeof_off_t" >&6; } +{ $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" "#define SIZEOF_OFF_T $ac_cv_sizeof_off_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_OFF_T $ac_cv_sizeof_off_t +_ACEOF -{ 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; } +{ $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; } 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 -printf "%s\n" "#define HAVE_LARGEFILE_SUPPORT 1" >>confdefs.h +$as_echo "#define HAVE_LARGEFILE_SUPPORT 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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. -{ 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 +{ $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 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" " #ifdef HAVE_SYS_TYPES_H #include @@ -10287,13 +9270,12 @@ else $as_nop #include #endif -" -then : +"; then : -else $as_nop +else if test "$ac_cv_type_time_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10302,12 +9284,14 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 -printf "%s\n" "$ac_cv_sizeof_time_t" >&6; } +{ $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" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_TIME_T $ac_cv_sizeof_time_t +_ACEOF @@ -10321,15 +9305,15 @@ elif test "$ac_cv_pthread" = "yes" then CC="$CC -pthread" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_t" >&5 -printf %s "checking for pthread_t... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_t" >&5 +$as_echo_n "checking for pthread_t... " >&6; } have_pthread_t=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { pthread_t x; x = *(pthread_t*)0; ; @@ -10337,36 +9321,33 @@ 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.beam conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_pthread_t" >&5 -printf "%s\n" "$have_pthread_t" >&6; } +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; } 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. -{ 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 +{ $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 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 $as_nop +else if test "$ac_cv_type_pthread_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10375,12 +9356,14 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5 -printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; } +{ $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" "#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t +_ACEOF fi @@ -10391,20 +9374,18 @@ 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. -{ 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 +{ $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 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_key_t))" "ac_cv_sizeof_pthread_key_t" "#include -" -then : +"; then : -else $as_nop +else if test "$ac_cv_type_pthread_key_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -10413,46 +9394,47 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ 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; } +{ $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" "#define SIZEOF_PTHREAD_KEY_T $ac_cv_sizeof_pthread_key_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_PTHREAD_KEY_T $ac_cv_sizeof_pthread_key_t +_ACEOF -{ 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; } +{ $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; } 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 (void) +main () { 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 $as_nop +else ac_pthread_key_t_is_arithmetic_type=no fi -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; } +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; } if test "$ac_pthread_key_t_is_arithmetic_type" = yes ; then -printf "%s\n" "#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1" >>confdefs.h +$as_echo "#define PTHREAD_KEY_T_IS_COMPATIBLE_WITH_INT 1" >>confdefs.h fi else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi CC="$ac_save_cc" @@ -10486,10 +9468,9 @@ 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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10504,10 +9485,9 @@ else $as_nop } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_osx_32bit=yes -else $as_nop +else ac_osx_32bit=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -10549,40 +9529,40 @@ fi LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-framework" >&5 -printf %s "checking for --enable-framework... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-framework" >&5 +$as_echo_n "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. -printf "%s\n" "#define WITH_NEXT_FRAMEWORK 1" >>confdefs.h +$as_echo "#define WITH_NEXT_FRAMEWORK 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 -printf %s "checking for dyld... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dyld" >&5 +$as_echo_n "checking for dyld... " >&6; } case $ac_sys_system/$ac_sys_release in Darwin/*) -printf "%s\n" "#define WITH_DYLD 1" >>confdefs.h +$as_echo "#define WITH_DYLD 1" >>confdefs.h - { 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: always on for Darwin" >&5 +$as_echo "always on for Darwin" >&6; } ;; *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ;; esac @@ -10596,8 +9576,8 @@ esac # SHLIB_SUFFIX is the extension of shared libraries `(including the dot!) # -- usually .so, .sl on HP-UX, .dll on Cygwin -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the extension of shared libraries" >&5 -printf %s "checking the extension of shared libraries... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the extension of shared libraries" >&5 +$as_echo_n "checking the extension of shared libraries... " >&6; } if test -z "$SHLIB_SUFFIX"; then case $ac_sys_system in hp*|HP*) @@ -10610,15 +9590,15 @@ if test -z "$SHLIB_SUFFIX"; then *) SHLIB_SUFFIX=.so;; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHLIB_SUFFIX" >&5 -printf "%s\n" "$SHLIB_SUFFIX" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIB_SUFFIX" >&5 +$as_echo "$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.) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDSHARED" >&5 -printf %s "checking LDSHARED... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDSHARED" >&5 +$as_echo_n "checking LDSHARED... " >&6; } if test -z "$LDSHARED" then case $ac_sys_system/$ac_sys_release in @@ -10736,14 +9716,14 @@ then *) LDSHARED="ld";; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDSHARED" >&5 -printf "%s\n" "$LDSHARED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDSHARED" >&5 +$as_echo "$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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CCSHARED" >&5 -printf %s "checking CCSHARED... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CCSHARED" >&5 +$as_echo_n "checking CCSHARED... " >&6; } if test -z "$CCSHARED" then case $ac_sys_system/$ac_sys_release in @@ -10774,12 +9754,12 @@ then CCSHARED="-fpic -D__SO_PICABILINUX__ -ftls-model=global-dynamic" esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CCSHARED" >&5 -printf "%s\n" "$CCSHARED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCSHARED" >&5 +$as_echo "$CCSHARED" >&6; } # LINKFORSHARED are the flags passed to the $(CC) command that links # the python executable -- this is only needed for a few systems -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LINKFORSHARED" >&5 -printf %s "checking LINKFORSHARED... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LINKFORSHARED" >&5 +$as_echo_n "checking LINKFORSHARED... " >&6; } if test -z "$LINKFORSHARED" then case $ac_sys_system/$ac_sys_release in @@ -10836,13 +9816,13 @@ then LINKFORSHARED='-Wl,-export-dynamic';; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LINKFORSHARED" >&5 -printf "%s\n" "$LINKFORSHARED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LINKFORSHARED" >&5 +$as_echo "$LINKFORSHARED" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CFLAGSFORSHARED" >&5 -printf %s "checking CFLAGSFORSHARED... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGSFORSHARED" >&5 +$as_echo_n "checking CFLAGSFORSHARED... " >&6; } if test ! "$LIBRARY" = "$LDLIBRARY" then case $ac_sys_system in @@ -10854,8 +9834,8 @@ then CFLAGSFORSHARED='$(CCSHARED)' esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CFLAGSFORSHARED" >&5 -printf "%s\n" "$CFLAGSFORSHARED" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CFLAGSFORSHARED" >&5 +$as_echo "$CFLAGSFORSHARED" >&6; } # SHLIBS are libraries (except -lc and -lm) to link to the python shared # library (with --enable-shared). @@ -10866,23 +9846,22 @@ printf "%s\n" "$CFLAGSFORSHARED" >&6; } # don't need to link LIBS explicitly. The default should be only changed # on systems where this approach causes problems. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SHLIBS" >&5 -printf %s "checking SHLIBS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking SHLIBS" >&5 +$as_echo_n "checking SHLIBS... " >&6; } case "$ac_sys_system" in *) SHLIBS='$(LIBS)';; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 -printf "%s\n" "$SHLIBS" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLIBS" >&5 +$as_echo "$SHLIBS" >&6; } # checks for libraries -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lsendfile $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10891,41 +9870,43 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_sendfile_sendfile=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="-lsendfile $LIBS" fi -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10934,41 +9915,43 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_dl_dlopen=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="-ldl $LIBS" fi # Dynamic linking for SunOS/Solaris and SYSV -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -10977,30 +9960,33 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_dld_shl_load=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="-ldld $LIBS" @@ -11008,27 +9994,27 @@ fi # Dynamic linking for HP-UX # checks for uuid.h location -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 +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 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 -fi +done -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 -printf %s "checking for uuid_generate_time_safe... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_generate_time_safe" >&5 +$as_echo_n "checking for uuid_generate_time_safe... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef uuid_generate_time_safe @@ -11039,29 +10025,28 @@ 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 : -printf "%s\n" "#define HAVE_UUID_GENERATE_TIME_SAFE 1" >>confdefs.h +$as_echo "#define HAVE_UUID_GENERATE_TIME_SAFE 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5 -printf %s "checking for uuid_create... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5 +$as_echo_n "checking for uuid_create... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef uuid_create @@ -11072,29 +10057,28 @@ void *x = uuid_create return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_UUID_CREATE 1" >>confdefs.h +$as_echo "#define HAVE_UUID_CREATE 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Little-endian FreeBSD, OpenBSD and NetBSD needs encoding into an octet # stream in big-endian byte-order -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uuid_enc_be" >&5 -printf %s "checking for uuid_enc_be... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_enc_be" >&5 +$as_echo_n "checking for uuid_enc_be... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef uuid_enc_be @@ -11105,29 +10089,27 @@ void *x = uuid_enc_be return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_UUID_ENC_BE 1" >>confdefs.h +$as_echo "#define HAVE_UUID_ENC_BE 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # 'Real Time' functions on Solaris # posix4 on Solaris 2.6 # pthread (first!) on Linux -{ 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 +{ $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 ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11135,60 +10117,57 @@ 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 (void) +main () { 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 conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test ${ac_cv_search_sem_init+y} -then : + if ${ac_cv_search_sem_init+:} false; then : break fi done -if test ${ac_cv_search_sem_init+y} -then : +if ${ac_cv_search_sem_init+:} false; then : -else $as_nop +else ac_cv_search_sem_init=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_sem_init" >&5 -printf "%s\n" "$ac_cv_search_sem_init" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_init" >&5 +$as_echo "$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 -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11197,31 +10176,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 textdomain (); int -main (void) +main () { 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 $as_nop +else ac_cv_lib_intl_textdomain=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 "$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" "#define WITH_LIBINTL 1" >>confdefs.h +$as_echo "#define WITH_LIBINTL 1" >>confdefs.h LIBS="-lintl $LIBS" fi @@ -11229,14 +10209,14 @@ fi # checks for system dependent C++ extensions support case "$ac_sys_system" in - 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; } + 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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { loadAndInit("", 0, "") ; @@ -11244,49 +10224,48 @@ loadAndInit("", 0, "") } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : -printf "%s\n" "#define AIX_GENUINE_CPLUSPLUS 1" >>confdefs.h +$as_echo "#define AIX_GENUINE_CPLUSPLUS 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the system builddate" >&5 -printf %s "checking for the system builddate... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the system builddate" >&5 +$as_echo_n "checking for the system builddate... " >&6; } AIX_BUILDDATE=$(lslpp -Lcq bos.mp64 | awk -F: '{ print $NF }') -printf "%s\n" "#define AIX_BUILDDATE $AIX_BUILDDATE" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define AIX_BUILDDATE $AIX_BUILDDATE +_ACEOF - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AIX_BUILDDATE" >&5 -printf "%s\n" "$AIX_BUILDDATE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AIX_BUILDDATE" >&5 +$as_echo "$AIX_BUILDDATE" >&6; } ;; *) ;; esac # check for systems that require aligned memory access -{ 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 : +{ $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 : ac_cv_aligned_required=yes -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11303,10 +10282,9 @@ 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 $as_nop +else ac_cv_aligned_required=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -11316,33 +10294,32 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_aligned_required" >&5 -printf "%s\n" "$ac_cv_aligned_required" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_aligned_required" >&5 +$as_echo "$ac_cv_aligned_required" >&6; } if test "$ac_cv_aligned_required" = yes ; then -printf "%s\n" "#define HAVE_ALIGNED_REQUIRED 1" >>confdefs.h +$as_echo "#define HAVE_ALIGNED_REQUIRED 1" >>confdefs.h fi # str, bytes and memoryview hash algorithm -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-hash-algorithm" >&5 -printf %s "checking for --with-hash-algorithm... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-hash-algorithm" >&5 +$as_echo_n "checking for --with-hash-algorithm... " >&6; } # Check whether --with-hash_algorithm was given. -if test ${with_hash_algorithm+y} -then : +if test "${with_hash_algorithm+set}" = set; then : withval=$with_hash_algorithm; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } case "$withval" in siphash24) - printf "%s\n" "#define Py_HASH_ALGORITHM 1" >>confdefs.h + $as_echo "#define Py_HASH_ALGORITHM 1" >>confdefs.h ;; fnv) - printf "%s\n" "#define Py_HASH_ALGORITHM 2" >>confdefs.h + $as_echo "#define Py_HASH_ALGORITHM 2" >>confdefs.h ;; *) @@ -11350,9 +10327,9 @@ case "$withval" in ;; esac -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default" >&5 -printf "%s\n" "default" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default" >&5 +$as_echo "default" >&6; } fi @@ -11371,12 +10348,11 @@ validate_tzpath() { } TZPATH="/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/etc/zoneinfo" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-tzpath" >&5 -printf %s "checking for --with-tzpath... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-tzpath" >&5 +$as_echo_n "checking for --with-tzpath... " >&6; } # Check whether --with-tzpath was given. -if test ${with_tzpath+y} -then : +if test "${with_tzpath+set}" = set; then : withval=$with_tzpath; case "$withval" in yes) @@ -11385,84 +10361,80 @@ case "$withval" in *) validate_tzpath "$withval" TZPATH="$withval" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$withval\"" >&5 -printf "%s\n" "\"$withval\"" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$withval\"" >&5 +$as_echo "\"$withval\"" >&6; } ;; esac -else $as_nop +else validate_tzpath "$TZPATH" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$TZPATH\"" >&5 -printf "%s\n" "\"$TZPATH\"" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: \"$TZPATH\"" >&5 +$as_echo "\"$TZPATH\"" >&6; } fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 -printf %s "checking for --with-address-sanitizer... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-address-sanitizer" >&5 +$as_echo_n "checking for --with-address-sanitizer... " >&6; } # Check whether --with-address_sanitizer was given. -if test ${with_address_sanitizer+y} -then : +if test "${with_address_sanitizer+set}" = set; then : withval=$with_address_sanitizer; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$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_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 -printf %s "checking for --with-memory-sanitizer... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-memory-sanitizer" >&5 +$as_echo_n "checking for --with-memory-sanitizer... " >&6; } # Check whether --with-memory_sanitizer was given. -if test ${with_memory_sanitizer+y} -then : +if test "${with_memory_sanitizer+set}" = set; then : withval=$with_memory_sanitizer; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$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_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5 -printf %s "checking for --with-undefined-behavior-sanitizer... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-undefined-behavior-sanitizer" >&5 +$as_echo_n "checking for --with-undefined-behavior-sanitizer... " >&6; } # Check whether --with-undefined_behavior_sanitizer was given. -if test ${with_undefined_behavior_sanitizer+y} -then : +if test "${with_undefined_behavior_sanitizer+set}" = set; then : withval=$with_undefined_behavior_sanitizer; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } BASECFLAGS="-fsanitize=undefined $BASECFLAGS" LDFLAGS="-fsanitize=undefined $LDFLAGS" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl. -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11471,38 +10443,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 (void) +main () { 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 $as_nop +else ac_cv_lib_nsl_t_open=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : LIBS="-lnsl $LIBS" fi # SVR4 -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lsocket $LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11511,75 +10483,73 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_socket_socket=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : LIBS="-lsocket $LIBS" fi # SVR4 sockets -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libs" >&5 -printf %s "checking for --with-libs... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libs" >&5 +$as_echo_n "checking for --with-libs... " >&6; } # Check whether --with-libs was given. -if test ${with_libs+y} -then : +if test "${with_libs+set}" = set; then : withval=$with_libs; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } LIBS="$withval $LIBS" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi PKG_PROG_PKG_CONFIG # Check for use of the system expat library -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5 -printf %s "checking for --with-system-expat... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5 +$as_echo_n "checking for --with-system-expat... " >&6; } # Check whether --with-system_expat was given. -if test ${with_system_expat+y} -then : +if test "${with_system_expat+set}" = set; then : withval=$with_system_expat; -else $as_nop +else with_system_expat="no" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_expat" >&5 -printf "%s\n" "$with_system_expat" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_expat" >&5 +$as_echo "$with_system_expat" >&6; } # Check for use of the system libffi library -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 -printf %s "checking for --with-system-ffi... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-ffi" >&5 +$as_echo_n "checking for --with-system-ffi... " >&6; } # Check whether --with-system_ffi was given. -if test ${with_system_ffi+y} -then : +if test "${with_system_ffi+set}" = set; then : withval=$with_system_ffi; fi @@ -11596,15 +10566,15 @@ then as_fn_error $? "--with-system-ffi accepts no arguments" "$LINENO" 5 ;; esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5 -printf "%s\n" "$with_system_ffi" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_ffi" >&5 +$as_echo "$with_system_ffi" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } if test "$with_system_ffi" != "" then - { 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;} + { $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;} fi with_system_ffi="yes" fi @@ -11617,30 +10587,28 @@ fi # Check for use of the system libmpdec library -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5 -printf %s "checking for --with-system-libmpdec... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-libmpdec" >&5 +$as_echo_n "checking for --with-system-libmpdec... " >&6; } # Check whether --with-system_libmpdec was given. -if test ${with_system_libmpdec+y} -then : +if test "${with_system_libmpdec+set}" = set; then : withval=$with_system_libmpdec; -else $as_nop +else with_system_libmpdec="no" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 -printf "%s\n" "$with_system_libmpdec" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_system_libmpdec" >&5 +$as_echo "$with_system_libmpdec" >&6; } # Check whether _decimal should use a coroutine-local or thread-local context -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 -printf %s "checking for --with-decimal-contextvar... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-decimal-contextvar" >&5 +$as_echo_n "checking for --with-decimal-contextvar... " >&6; } # Check whether --with-decimal_contextvar was given. -if test ${with_decimal_contextvar+y} -then : +if test "${with_decimal_contextvar+set}" = set; then : withval=$with_decimal_contextvar; -else $as_nop +else with_decimal_contextvar="yes" fi @@ -11648,57 +10616,54 @@ fi if test "$with_decimal_contextvar" != "no" then -printf "%s\n" "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h +$as_echo "#define WITH_DECIMAL_CONTEXTVAR 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 -printf "%s\n" "$with_decimal_contextvar" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_decimal_contextvar" >&5 +$as_echo "$with_decimal_contextvar" >&6; } # Check for support for loadable sqlite extensions -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 -printf %s "checking for --enable-loadable-sqlite-extensions... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-loadable-sqlite-extensions" >&5 +$as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } # Check whether --enable-loadable-sqlite-extensions was given. -if test ${enable_loadable_sqlite_extensions+y} -then : +if test "${enable_loadable_sqlite_extensions+set}" = set; then : enableval=$enable_loadable_sqlite_extensions; -else $as_nop +else enable_loadable_sqlite_extensions="no" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_loadable_sqlite_extensions" >&5 -printf "%s\n" "$enable_loadable_sqlite_extensions" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_loadable_sqlite_extensions" >&5 +$as_echo "$enable_loadable_sqlite_extensions" >&6; } # Check for --with-tcltk-includes=path and --with-tcltk-libs=path -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-includes" >&5 -printf %s "checking for --with-tcltk-includes... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-tcltk-includes" >&5 +$as_echo_n "checking for --with-tcltk-includes... " >&6; } # Check whether --with-tcltk-includes was given. -if test ${with_tcltk_includes+y} -then : +if test "${with_tcltk_includes+set}" = set; then : withval=$with_tcltk_includes; -else $as_nop +else with_tcltk_includes="default" fi -{ 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; } +{ $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; } # Check whether --with-tcltk-libs was given. -if test ${with_tcltk_libs+y} -then : +if test "${with_tcltk_libs+set}" = set; then : withval=$with_tcltk_libs; -else $as_nop +else with_tcltk_libs="default" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_libs" >&5 -printf "%s\n" "$with_tcltk_libs" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_tcltk_libs" >&5 +$as_echo "$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" @@ -11718,12 +10683,11 @@ else fi # Check for --with-dbmliborder -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 -printf %s "checking for --with-dbmliborder... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dbmliborder" >&5 +$as_echo_n "checking for --with-dbmliborder... " >&6; } # Check whether --with-dbmliborder was given. -if test ${with_dbmliborder+y} -then : +if test "${with_dbmliborder+set}" = set; then : withval=$with_dbmliborder; if test x$with_dbmliborder = xyes then @@ -11738,8 +10702,8 @@ else fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 -printf "%s\n" "$with_dbmliborder" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dbmliborder" >&5 +$as_echo "$with_dbmliborder" >&6; } # Templates for things AC_DEFINEd more than once. # For a single AC_DEFINE, no template is needed. @@ -11748,7 +10712,7 @@ printf "%s\n" "$with_dbmliborder" >&6; } if test "$ac_cv_pthread_is_default" = yes then # Defining _REENTRANT on system with POSIX threads should not hurt. - printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + $as_echo "#define _REENTRANT 1" >>confdefs.h posix_threads=yes if test "$ac_sys_system" = "SunOS"; then @@ -11783,8 +10747,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) - { 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; } + { $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11795,26 +10759,25 @@ 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 $as_nop +else unistd_defines_pthreads=no fi -rm -rf conftest* +rm -f conftest* - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 -printf "%s\n" "$unistd_defines_pthreads" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $unistd_defines_pthreads" >&5 +$as_echo "$unistd_defines_pthreads" >&6; } - printf "%s\n" "#define _REENTRANT 1" >>confdefs.h + $as_echo "#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" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 -printf %s "checking for pthread_create in -lpthread... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5 +$as_echo_n "checking for pthread_create in -lpthread... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -11823,7 +10786,7 @@ printf %s "checking for pthread_create in -lpthread... " >&6; } void * start_routine (void *arg) { exit (0); } int -main (void) +main () { pthread_create (NULL, NULL, start_routine, NULL) @@ -11831,30 +10794,27 @@ 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 : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } posix_threads=yes -else $as_nop +else 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 $as_nop +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 + { $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lpthreads $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11863,41 +10823,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 (void) +main () { 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 $as_nop +else ac_cv_lib_pthreads_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : posix_threads=yes LIBS="$LIBS -lpthreads" -else $as_nop +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 + { $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11906,41 +10866,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 (void) +main () { 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 $as_nop +else ac_cv_lib_c_r_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : posix_threads=yes LIBS="$LIBS -lc_r" -else $as_nop +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 + { $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11949,41 +10909,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 (void) +main () { 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 $as_nop +else ac_cv_lib_pthread___pthread_create_system=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : posix_threads=yes LIBS="$LIBS -lpthread" -else $as_nop +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 + { $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lcma $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -11992,34 +10952,35 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_cma_pthread_create=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : posix_threads=yes LIBS="$LIBS -lcma" -else $as_nop +else as_fn_error $? "could not find pthreads on your system" "$LINENO" 5 @@ -12035,15 +10996,14 @@ fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - { 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 + { $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lmpc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -12052,29 +11012,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 usconfig (); int -main (void) +main () { 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 $as_nop +else ac_cv_lib_mpc_usconfig=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : LIBS="$LIBS -lmpc" @@ -12086,36 +11047,34 @@ fi if test "$posix_threads" = "yes"; then if test "$unistd_defines_pthreads" = "no"; then -printf "%s\n" "#define _POSIX_THREADS 1" >>confdefs.h +$as_echo "#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) -printf "%s\n" "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h +$as_echo "#define HAVE_PTHREAD_DESTRUCTOR 1" >>confdefs.h ;; SunOS/5.8) -printf "%s\n" "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h ;; AIX/*) -printf "%s\n" "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_POSIX_SEMAPHORES 1" >>confdefs.h ;; esac - { 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 : + { $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 : ac_cv_pthread_system_supported=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12133,10 +11092,9 @@ else $as_nop 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 $as_nop +else ac_cv_pthread_system_supported=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -12146,61 +11104,64 @@ fi fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 -printf "%s\n" "$ac_cv_pthread_system_supported" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthread_system_supported" >&5 +$as_echo "$ac_cv_pthread_system_supported" >&6; } if test "$ac_cv_pthread_system_supported" = "yes"; then -printf "%s\n" "#define PTHREAD_SYSTEM_SCHED_SUPPORTED 1" >>confdefs.h +$as_echo "#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 : - printf "%s\n" "#define HAVE_PTHREAD_SIGMASK 1" >>confdefs.h +if test "x$ac_cv_func_pthread_sigmask" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_SIGMASK 1 +_ACEOF case $ac_sys_system in CYGWIN*) -printf "%s\n" "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h ;; esac fi - 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 + + 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 fi +done fi # Check for enable-ipv6 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 -printf %s "checking if --enable-ipv6 is specified... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --enable-ipv6 is specified" >&5 +$as_echo_n "checking if --enable-ipv6 is specified... " >&6; } # Check whether --enable-ipv6 was given. -if test ${enable_ipv6+y} -then : +if test "${enable_ipv6+set}" = set; then : enableval=$enable_ipv6; case "$enableval" in no) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ipv6=no ;; - *) { 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 + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h ipv6=yes ;; esac -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -12208,39 +11169,38 @@ else $as_nop #include #include int -main (void) +main () { int domain = AF_INET6; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +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 "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } ipv6=yes -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ipv6=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "$ipv6" = "yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 -printf %s "checking if RFC2553 API is available... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if RFC2553 API is available" >&5 +$as_echo_n "checking if RFC2553 API is available... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main (void) +main () { struct sockaddr_in6 x; x.sin6_scope_id; @@ -12249,25 +11209,24 @@ struct sockaddr_in6 x; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +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 "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } ipv6=yes -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } ipv6=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test "$ipv6" = "yes"; then - printf "%s\n" "#define ENABLE_IPV6 1" >>confdefs.h + $as_echo "#define ENABLE_IPV6 1" >>confdefs.h fi @@ -12279,8 +11238,8 @@ ipv6lib=none ipv6trylibc=no if test "$ipv6" = "yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 -printf %s "checking ipv6 stack type... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking ipv6 stack type" >&5 +$as_echo_n "checking ipv6 stack type... " >&6; } for i in inria kame linux-glibc linux-inet6 solaris toshiba v6d zeta; do case $i in @@ -12294,11 +11253,10 @@ 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 -rf conftest* +rm -f conftest* ;; kame) @@ -12311,14 +11269,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 ipv6trylibc=yes fi -rm -rf conftest* +rm -f conftest* ;; linux-glibc) @@ -12331,12 +11288,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; ipv6trylibc=yes fi -rm -rf conftest* +rm -f conftest* ;; linux-inet6) @@ -12365,13 +11321,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; ipv6lib=inet6; ipv6libdir=/usr/local/v6/lib fi -rm -rf conftest* +rm -f conftest* ;; v6d) @@ -12384,14 +11339,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=v6; ipv6libdir=/usr/local/v6/lib; BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS" fi -rm -rf conftest* +rm -f conftest* ;; zeta) @@ -12404,13 +11358,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; ipv6lib=inet6; ipv6libdir=/usr/local/v6/lib fi -rm -rf conftest* +rm -f conftest* ;; esac @@ -12418,8 +11371,8 @@ rm -rf conftest* break fi done - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 -printf "%s\n" "$ipv6type" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ipv6type" >&5 +$as_echo "$ipv6type" >&6; } fi if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then @@ -12438,75 +11391,72 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5 -printf %s "checking for CAN_RAW_FD_FRAMES... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5 +$as_echo_n "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 (void) +main () { 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 : -printf "%s\n" "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h +$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 -printf %s "checking for CAN_RAW_JOIN_FILTERS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_JOIN_FILTERS" >&5 +$as_echo_n "checking for CAN_RAW_JOIN_FILTERS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { 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 : -printf "%s\n" "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h +$as_echo "#define HAVE_LINUX_CAN_RAW_JOIN_FILTERS 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Check for --with-doc-strings -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 -printf %s "checking for --with-doc-strings... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-doc-strings" >&5 +$as_echo_n "checking for --with-doc-strings... " >&6; } # Check whether --with-doc-strings was given. -if test ${with_doc_strings+y} -then : +if test "${with_doc_strings+set}" = set; then : withval=$with_doc_strings; fi @@ -12517,19 +11467,18 @@ fi if test "$with_doc_strings" != "no" then -printf "%s\n" "#define WITH_DOC_STRINGS 1" >>confdefs.h +$as_echo "#define WITH_DOC_STRINGS 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 -printf "%s\n" "$with_doc_strings" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_doc_strings" >&5 +$as_echo "$with_doc_strings" >&6; } # Check for Python-specific malloc support -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 -printf %s "checking for --with-pymalloc... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-pymalloc" >&5 +$as_echo_n "checking for --with-pymalloc... " >&6; } # Check whether --with-pymalloc was given. -if test ${with_pymalloc+y} -then : +if test "${with_pymalloc+set}" = set; then : withval=$with_pymalloc; fi @@ -12541,19 +11490,18 @@ fi if test "$with_pymalloc" != "no" then -printf "%s\n" "#define WITH_PYMALLOC 1" >>confdefs.h +$as_echo "#define WITH_PYMALLOC 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 -printf "%s\n" "$with_pymalloc" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_pymalloc" >&5 +$as_echo "$with_pymalloc" >&6; } # Check for --with-c-locale-coercion -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 -printf %s "checking for --with-c-locale-coercion... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-c-locale-coercion" >&5 +$as_echo_n "checking for --with-c-locale-coercion... " >&6; } # Check whether --with-c-locale-coercion was given. -if test ${with_c_locale_coercion+y} -then : +if test "${with_c_locale_coercion+set}" = set; then : withval=$with_c_locale_coercion; fi @@ -12565,55 +11513,53 @@ fi if test "$with_c_locale_coercion" != "no" then -printf "%s\n" "#define PY_COERCE_C_LOCALE 1" >>confdefs.h +$as_echo "#define PY_COERCE_C_LOCALE 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 -printf "%s\n" "$with_c_locale_coercion" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_c_locale_coercion" >&5 +$as_echo "$with_c_locale_coercion" >&6; } # Check for Valgrind support -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 -printf %s "checking for --with-valgrind... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-valgrind" >&5 +$as_echo_n "checking for --with-valgrind... " >&6; } # Check whether --with-valgrind was given. -if test ${with_valgrind+y} -then : +if test "${with_valgrind+set}" = set; then : withval=$with_valgrind; -else $as_nop +else with_valgrind=no fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 -printf "%s\n" "$with_valgrind" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_valgrind" >&5 +$as_echo "$with_valgrind" >&6; } if test "$with_valgrind" != no; 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 : + 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 : -printf "%s\n" "#define WITH_VALGRIND 1" >>confdefs.h +$as_echo "#define WITH_VALGRIND 1" >>confdefs.h -else $as_nop +else as_fn_error $? "Valgrind support requested but headers not available" "$LINENO" 5 fi + OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT" fi # Check for DTrace support -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 -printf %s "checking for --with-dtrace... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-dtrace" >&5 +$as_echo_n "checking for --with-dtrace... " >&6; } # Check whether --with-dtrace was given. -if test ${with_dtrace+y} -then : +if test "${with_dtrace+set}" = set; then : withval=$with_dtrace; -else $as_nop +else with_dtrace=no fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 -printf "%s\n" "$with_dtrace" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_dtrace" >&5 +$as_echo "$with_dtrace" >&6; } @@ -12627,12 +11573,11 @@ 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 -{ 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 +{ $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 case $DTRACE in [\\/]* | ?:[\\/]*) ac_cv_path_DTRACE="$DTRACE" # Let the user override the test with a path. @@ -12642,15 +11587,11 @@ else $as_nop for as_dir in $PATH do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$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" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -12663,11 +11604,11 @@ esac fi DTRACE=$ac_cv_path_DTRACE if test -n "$DTRACE"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 -printf "%s\n" "$DTRACE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5 +$as_echo "$DTRACE" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -12675,7 +11616,7 @@ fi as_fn_error $? "dtrace command not found on \$PATH" "$LINENO" 5 fi -printf "%s\n" "#define WITH_DTRACE 1" >>confdefs.h +$as_echo "#define WITH_DTRACE 1" >>confdefs.h DTRACE_HEADERS="Include/pydtrace_probes.h" @@ -12683,20 +11624,19 @@ printf "%s\n" "#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. - { 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 + { $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 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 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 -printf "%s\n" "$ac_cv_dtrace_link" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dtrace_link" >&5 +$as_echo "$ac_cv_dtrace_link" >&6; } if test "$ac_cv_dtrace_link" = "yes"; then DTRACE_OBJS="Python/pydtrace.o" fi @@ -12708,19 +11648,23 @@ DLINCLDIR=. # the dlopen() function means we might want to use dynload_shlib.o. some # platforms have dlopen(), but don't want to use it. -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 +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 fi +done # DYNLOADFILE specifies which dynload_*.o file we will use for dynamic # loading of modules. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 -printf %s "checking DYNLOADFILE... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking DYNLOADFILE" >&5 +$as_echo_n "checking DYNLOADFILE... " >&6; } if test -z "$DYNLOADFILE" then case $ac_sys_system/$ac_sys_release in @@ -12735,20 +11679,20 @@ then ;; esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 -printf "%s\n" "$DYNLOADFILE" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DYNLOADFILE" >&5 +$as_echo "$DYNLOADFILE" >&6; } if test "$DYNLOADFILE" != "dynload_stub.o" then -printf "%s\n" "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h +$as_echo "#define HAVE_DYNAMIC_LOADING 1" >>confdefs.h fi # MACHDEP_OBJS can be set to platform-specific object files needed by Python -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 -printf %s "checking MACHDEP_OBJS... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking MACHDEP_OBJS" >&5 +$as_echo_n "checking MACHDEP_OBJS... " >&6; } if test -z "$MACHDEP_OBJS" then MACHDEP_OBJS=$extra_machdep_objs @@ -12756,1315 +11700,282 @@ else MACHDEP_OBJS="$MACHDEP_OBJS $extra_machdep_objs" fi if test -z "$MACHDEP_OBJS"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 -printf "%s\n" "none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 -printf "%s\n" "$MACHDEP_OBJS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MACHDEP_OBJS" >&5 +$as_echo "$MACHDEP_OBJS" >&6; } fi # checks for library functions -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 -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 +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 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 +done -fi -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 +# 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" "clock" "ac_cv_func_clock" -if test "x$ac_cv_func_clock" = xyes -then : - printf "%s\n" "#define HAVE_CLOCK 1" >>confdefs.h +done 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 +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" "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 +$as_echo "#define HAVE_DIRFD 1" >>confdefs.h 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 -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 -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 +# 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" "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_CHROOT 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 +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 : -fi -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_LINK 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 +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 : -fi -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 +$as_echo "#define HAVE_SYMLINK 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 + { $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" "fexecve" "ac_cv_func_fexecve" -if test "x$ac_cv_func_fexecve" = xyes -then : - printf "%s\n" "#define HAVE_FEXECVE 1" >>confdefs.h +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 + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : -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 +$as_echo "#define HAVE_FCHDIR 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 + { $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" "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 : - -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 *); - -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.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 (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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=fsync ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_FSYNC 1" >>confdefs.h +$as_echo "#define HAVE_FSYNC 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=fdatasync ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_FDATASYNC 1" >>confdefs.h +$as_echo "#define HAVE_FDATASYNC 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=epoll_create ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_EPOLL 1" >>confdefs.h +$as_echo "#define HAVE_EPOLL 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=epoll_create1 ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_EPOLL_CREATE1 1" >>confdefs.h +$as_echo "#define HAVE_EPOLL_CREATE1 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14072,28 +11983,27 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { int x=kqueue() ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_KQUEUE 1" >>confdefs.h +$as_echo "#define HAVE_KQUEUE 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14101,55 +12011,53 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { void *x=prlimit ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_PRLIMIT 1" >>confdefs.h +$as_echo "#define HAVE_PRLIMIT 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; } + { $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 -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; } +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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { 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 : -printf "%s\n" "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 1" >>confdefs.h +$as_echo "#define HAVE_DYLD_SHARED_CACHE_CONTAINS_PATH 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 -printf %s "checking for memfd_create... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for memfd_create" >&5 +$as_echo_n "checking for memfd_create... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14161,29 +12069,28 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { void *x=memfd_create ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_MEMFD_CREATE 1" >>confdefs.h +$as_echo "#define HAVE_MEMFD_CREATE 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 -printf %s "checking for eventfd... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for eventfd" >&5 +$as_echo_n "checking for eventfd... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14192,26 +12099,25 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { 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 : -printf "%s\n" "#define HAVE_EVENTFD 1" >>confdefs.h +$as_echo "#define HAVE_EVENTFD 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 @@ -14219,46 +12125,44 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # address to avoid compiler warnings and potential miscompilations # because of the missing prototypes. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 -printf %s "checking for ctermid_r... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ctermid_r" >&5 +$as_echo_n "checking for ctermid_r... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void* p = ctermid_r ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CTERMID_R 1" >>confdefs.h +$as_echo "#define HAVE_CTERMID_R 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void* p = flock @@ -14266,34 +12170,32 @@ 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 $as_nop +else ac_cv_flock_decl=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 -printf "%s\n" "$ac_cv_flock_decl" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_flock_decl" >&5 +$as_echo "$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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14302,111 +12204,109 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_bsd_flock=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 "$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" "#define FLOCK_NEEDS_LIBBSD 1" >>confdefs.h +$as_echo "#define FLOCK_NEEDS_LIBBSD 1" >>confdefs.h fi fi - done + fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 -printf %s "checking for getpagesize... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +$as_echo_n "checking for getpagesize... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void* p = getpagesize ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h +$as_echo "#define HAVE_GETPAGESIZE 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 -printf %s "checking for broken unsetenv... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken unsetenv" >&5 +$as_echo_n "checking for broken unsetenv... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { int res = unsetenv("DUMMY") ; return 0; } _ACEOF -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 +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +else -printf "%s\n" "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_UNSETENV 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 -{ 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 +{ $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 if test -n "$TRUE"; then ac_cv_prog_TRUE="$TRUE" # Let the user override the test. else @@ -14414,15 +12314,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -14433,11 +12329,11 @@ fi fi TRUE=$ac_cv_prog_TRUE if test -n "$TRUE"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 -printf "%s\n" "$TRUE" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TRUE" >&5 +$as_echo "$TRUE" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -14446,12 +12342,11 @@ done test -n "$TRUE" || TRUE="/bin/true" -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14460,37 +12355,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 (void) +main () { 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 $as_nop +else ac_cv_lib_c_inet_aton=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : $ac_cv_prog_TRUE -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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14499,30 +12394,33 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_resolv_inet_aton=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="-lresolv $LIBS" @@ -14534,16 +12432,14 @@ fi # On Tru64, chflags seems to be present, but calling it will # exit Python -{ 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 : +{ $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 : ac_cv_have_chflags=cross -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14557,10 +12453,9 @@ 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 $as_nop +else ac_cv_have_chflags=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -14569,34 +12464,31 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 -printf "%s\n" "$ac_cv_have_chflags" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_chflags" >&5 +$as_echo "$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 $as_nop +else ac_cv_have_chflags="no" fi fi if test "$ac_cv_have_chflags" = yes ; then -printf "%s\n" "#define HAVE_CHFLAGS 1" >>confdefs.h +$as_echo "#define HAVE_CHFLAGS 1" >>confdefs.h fi -{ 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 : +{ $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 : ac_cv_have_lchflags=cross -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14610,10 +12502,9 @@ 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 $as_nop +else ac_cv_have_lchflags=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -14622,21 +12513,20 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 -printf "%s\n" "$ac_cv_have_lchflags" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_lchflags" >&5 +$as_echo "$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 $as_nop +else ac_cv_have_lchflags="no" fi fi if test "$ac_cv_have_lchflags" = yes ; then -printf "%s\n" "#define HAVE_LCHFLAGS 1" >>confdefs.h +$as_echo "#define HAVE_LCHFLAGS 1" >>confdefs.h fi @@ -14649,12 +12539,11 @@ Darwin/*) ;; esac -{ 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 +{ $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 ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14663,31 +12552,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 inflateCopy (); int -main (void) +main () { 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 $as_nop +else ac_cv_lib_z_inflateCopy=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 "$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" "#define HAVE_ZLIB_COPY 1" >>confdefs.h +$as_echo "#define HAVE_ZLIB_COPY 1" >>confdefs.h fi @@ -14699,38 +12589,37 @@ Darwin/*) ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 -printf %s "checking for hstrerror... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror" >&5 +$as_echo_n "checking for hstrerror... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void* p = hstrerror; hstrerror(0) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : -printf "%s\n" "#define HAVE_HSTRERROR 1" >>confdefs.h +$as_echo "#define HAVE_HSTRERROR 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 -printf %s "checking for inet_aton... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_aton" >&5 +$as_echo_n "checking for inet_aton... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14740,30 +12629,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { 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 : -printf "%s\n" "#define HAVE_INET_ATON 1" >>confdefs.h +$as_echo "#define HAVE_INET_ATON 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 -printf %s "checking for inet_pton... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inet_pton" >&5 +$as_echo_n "checking for inet_pton... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14773,30 +12661,29 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { void* p = inet_pton ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h +$as_echo "#define HAVE_INET_PTON 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # On some systems, setgroups is in unistd.h, on others, in grp.h -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 -printf %s "checking for setgroups... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for setgroups" >&5 +$as_echo_n "checking for setgroups... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14806,44 +12693,42 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { void* p = setgroups ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_SETGROUPS 1" >>confdefs.h +$as_echo "#define HAVE_SETGROUPS 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14852,38 +12737,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 (void) +main () { 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 $as_nop +else ac_cv_lib_util_openpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="$LIBS -lutil" -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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14892,30 +12777,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 openpty (); int -main (void) +main () { 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 $as_nop +else ac_cv_lib_bsd_openpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="$LIBS -lbsd" fi @@ -14924,23 +12810,22 @@ 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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14949,38 +12834,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 (void) +main () { 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 $as_nop +else ac_cv_lib_util_forkpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="$LIBS -lutil" -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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14989,30 +12874,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 forkpty (); int -main (void) +main () { 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 $as_nop +else ac_cv_lib_bsd_forkpty=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="$LIBS -lbsd" fi @@ -15021,54 +12907,28 @@ fi fi - done -# check for long file support functions -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 +# 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 fi +done ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2" -if test "x$ac_cv_func_dup2" = xyes -then : - printf "%s\n" "#define HAVE_DUP2 1" >>confdefs.h +if test "x$ac_cv_func_dup2" = xyes; then : + $as_echo "#define HAVE_DUP2 1" >>confdefs.h -else $as_nop +else case " $LIBOBJS " in *" dup2.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS dup2.$ac_objext" @@ -15078,72 +12938,70 @@ 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 : - printf "%s\n" "#define HAVE_GETPGRP 1" >>confdefs.h +if test "x$ac_cv_func_getpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETPGRP 1 +_ACEOF cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { getpgrp(0); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define GETPGRP_HAVE_ARG 1" >>confdefs.h +$as_echo "#define GETPGRP_HAVE_ARG 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 : - printf "%s\n" "#define HAVE_SETPGRP 1" >>confdefs.h +if test "x$ac_cv_func_setpgrp" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETPGRP 1 +_ACEOF cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { setpgrp(0,0); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define SETPGRP_HAVE_ARG 1" >>confdefs.h +$as_echo "#define SETPGRP_HAVE_ARG 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - 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. -{ 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 +{ $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 ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15151,58 +13009,55 @@ 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 (void) +main () { 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 conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test ${ac_cv_search_crypt+y} -then : + if ${ac_cv_search_crypt+:} false; then : break fi done -if test ${ac_cv_search_crypt+y} -then : +if ${ac_cv_search_crypt+:} false; then : -else $as_nop +else ac_cv_search_crypt=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_crypt" >&5 -printf "%s\n" "$ac_cv_search_crypt" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 +$as_echo "$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 -{ 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 +{ $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 ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15210,56 +13065,53 @@ 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 (void) +main () { 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 conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test ${ac_cv_search_crypt_r+y} -then : + if ${ac_cv_search_crypt_r+:} false; then : break fi done -if test ${ac_cv_search_crypt_r+y} -then : +if ${ac_cv_search_crypt_r+:} false; then : -else $as_nop +else ac_cv_search_crypt_r=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_crypt_r" >&5 -printf "%s\n" "$ac_cv_search_crypt_r" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5 +$as_echo "$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. */ @@ -15267,7 +13119,7 @@ then : #include int -main (void) +main () { struct crypt_data d; @@ -15277,33 +13129,31 @@ char *r = crypt_r("", "", &d); return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CRYPT_R 1" >>confdefs.h +$as_echo "#define HAVE_CRYPT_R 1" >>confdefs.h fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15312,60 +13162,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 (void) +main () { 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 $as_nop +else ac_cv_lib_rt_clock_gettime=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 : +{ $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 : LIBS="$LIBS -lrt" - printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h + $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h -printf "%s\n" "#define TIMEMODULE_LIB rt" >>confdefs.h +$as_echo "#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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15374,56 +13224,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 (void) +main () { 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 $as_nop +else ac_cv_lib_rt_clock_getres=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 "$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" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h + $as_echo "#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 : - 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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -15432,42 +13282,43 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_rt_clock_settime=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 "$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" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h + $as_echo "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h fi fi - done -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for major" >&5 -printf %s "checking for major... " >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for major" >&5 +$as_echo_n "checking for major... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15480,7 +13331,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #endif int -main (void) +main () { makedev(major(0),minor(0)); @@ -15489,28 +13340,27 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : -printf "%s\n" "#define HAVE_DEVICE_MACROS 1" >>confdefs.h +$as_echo "#define HAVE_DEVICE_MACROS 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # On OSF/1 V5.1, getaddrinfo is available, but a define # for [no]getaddrinfo in netdb.h. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 -printf %s "checking for getaddrinfo... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 +$as_echo_n "checking for getaddrinfo... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15520,40 +13370,37 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { 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 $as_nop +else have_getaddrinfo=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getaddrinfo" >&5 -printf "%s\n" "$have_getaddrinfo" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getaddrinfo" >&5 +$as_echo "$have_getaddrinfo" >&6; } if test $have_getaddrinfo = 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 : + { $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 : 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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15647,10 +13494,9 @@ 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 $as_nop +else ac_cv_buggy_getaddrinfo=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -15661,8 +13507,8 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 -printf "%s\n" "$ac_cv_buggy_getaddrinfo" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_buggy_getaddrinfo" >&5 +$as_echo "$ac_cv_buggy_getaddrinfo" >&6; } if test $have_getaddrinfo = no || test "$ac_cv_buggy_getaddrinfo" = yes then @@ -15674,42 +13520,70 @@ then fi else -printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h +$as_echo "#define HAVE_GETADDRINFO 1" >>confdefs.h fi -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 +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 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 -# 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 +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi -# End of obsolete code. -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main (void) +main () { struct tm tm; int *p = &tm.tm_sec; @@ -15718,19 +13592,18 @@ 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 $as_nop +else ac_cv_struct_tm=sys/time.h fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 -printf "%s\n" "$ac_cv_struct_tm" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 +$as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then -printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h +$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi @@ -15738,35 +13611,37 @@ 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 : -printf "%s\n" "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_TM_TM_ZONE 1 +_ACEOF fi if test "$ac_cv_member_struct_tm_tm_zone" = yes; then -printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h +$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h else - 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_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include +" +if test "x$ac_cv_have_decl_tzname" = xyes; then : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h - { 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 +#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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -15775,81 +13650,86 @@ extern char *tzname[]; #endif int -main (void) +main () { 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 $as_nop +else ac_cv_var_tzname=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 -printf "%s\n" "$ac_cv_var_tzname" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 +$as_echo "$ac_cv_var_tzname" >&6; } if test $ac_cv_var_tzname = yes; then -printf "%s\n" "#define HAVE_TZNAME 1" >>confdefs.h +$as_echo "#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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_RDEV 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_RDEV 1 +_ACEOF 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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLKSIZE 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 +_ACEOF 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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_FLAGS 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_FLAGS 1 +_ACEOF 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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_GEN 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_GEN 1 +_ACEOF 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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BIRTHTIME 1 +_ACEOF 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 : -printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLOCKS 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_STAT_ST_BLOCKS 1 +_ACEOF fi @@ -15859,10 +13739,11 @@ 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 : -printf "%s\n" "#define HAVE_STRUCT_PASSWD_PW_GECOS 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_GECOS 1 +_ACEOF fi @@ -15871,10 +13752,11 @@ 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 : -printf "%s\n" "#define HAVE_STRUCT_PASSWD_PW_PASSWD 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_STRUCT_PASSWD_PW_PASSWD 1 +_ACEOF fi @@ -15882,54 +13764,53 @@ 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 : -printf "%s\n" "#define HAVE_SIGINFO_T_SI_BAND 1" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define HAVE_SIGINFO_T_SI_BAND 1 +_ACEOF fi -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { 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 $as_nop +else ac_cv_header_time_altzone=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 -printf "%s\n" "$ac_cv_header_time_altzone" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time_altzone" >&5 +$as_echo "$ac_cv_header_time_altzone" >&6; } if test $ac_cv_header_time_altzone = yes; then -printf "%s\n" "#define HAVE_ALTZONE 1" >>confdefs.h +$as_echo "#define HAVE_ALTZONE 1" >>confdefs.h fi was_it_defined=no -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -15938,102 +13819,96 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { ; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h +$as_echo "#define SYS_SELECT_WITH_SYS_TIME 1" >>confdefs.h was_it_defined=yes fi -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; } +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; } -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { 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 $as_nop +else ac_cv_struct_addrinfo=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 -printf "%s\n" "$ac_cv_struct_addrinfo" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_addrinfo" >&5 +$as_echo "$ac_cv_struct_addrinfo" >&6; } if test $ac_cv_struct_addrinfo = yes; then -printf "%s\n" "#define HAVE_ADDRINFO 1" >>confdefs.h +$as_echo "#define HAVE_ADDRINFO 1" >>confdefs.h fi -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include # include int -main (void) +main () { 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 $as_nop +else ac_cv_struct_sockaddr_storage=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 -printf "%s\n" "$ac_cv_struct_sockaddr_storage" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_storage" >&5 +$as_echo "$ac_cv_struct_sockaddr_storage" >&6; } if test $ac_cv_struct_sockaddr_storage = yes; then -printf "%s\n" "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h +$as_echo "#define HAVE_SOCKADDR_STORAGE 1" >>confdefs.h fi -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16041,43 +13916,41 @@ else $as_nop # include # include int -main (void) +main () { 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 $as_nop +else ac_cv_struct_sockaddr_alg=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 -printf "%s\n" "$ac_cv_struct_sockaddr_alg" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_sockaddr_alg" >&5 +$as_echo "$ac_cv_struct_sockaddr_alg" >&6; } if test $ac_cv_struct_sockaddr_alg = yes; then -printf "%s\n" "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h +$as_echo "#define HAVE_SOCKADDR_ALG 1" >>confdefs.h fi # checks for compiler characteristics -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main (void) +main () { static int test_array [1 - 2 * !(((char) -1) < 0)]; test_array [0] = 0; @@ -16087,32 +13960,30 @@ 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 $as_nop +else ac_cv_c_char_unsigned=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ 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 +{ $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 fi -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { #ifndef __cplusplus @@ -16125,7 +13996,7 @@ main (void) /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; - /* IBM XL C 1.02.0.0 rejects this. + /* AIX 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 */ @@ -16153,7 +14024,7 @@ main (void) iptr p = 0; ++p; } - { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying + { /* AIX 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; @@ -16169,78 +14040,75 @@ main (void) 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 $as_nop +else ac_cv_c_const=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 -printf "%s\n" "$ac_cv_c_const" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then -printf "%s\n" "#define const /**/" >>confdefs.h +$as_echo "#define const /**/" >>confdefs.h fi works=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 -printf %s "checking for working signed char... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working signed char" >&5 +$as_echo_n "checking for working signed char... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { 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 $as_nop +else -printf "%s\n" "#define signed /**/" >>confdefs.h +$as_echo "#define signed /**/" >>confdefs.h fi -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; } +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; } have_prototypes=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 -printf %s "checking for prototypes... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for prototypes" >&5 +$as_echo_n "checking for prototypes... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(int x) { return 0; } int -main (void) +main () { return foo(10); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_PROTOTYPES 1" >>confdefs.h +$as_echo "#define HAVE_PROTOTYPES 1" >>confdefs.h have_prototypes=yes fi -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; } +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; } works=no -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16255,29 +14123,28 @@ int foo(int x, ...) { } int -main (void) +main () { return foo(10, "", 3.14); ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_STDARG_PROTOTYPES 1" >>confdefs.h +$as_echo "#define HAVE_STDARG_PROTOTYPES 1" >>confdefs.h works=yes fi -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; } +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; } # check for socketpair -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 -printf %s "checking for socketpair... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socketpair" >&5 +$as_echo_n "checking for socketpair... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16285,36 +14152,35 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext #include int -main (void) +main () { void *x=socketpair ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h +$as_echo "#define HAVE_SOCKETPAIR 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # check if sockaddr has sa_len member -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int -main (void) +main () { struct sockaddr x; x.sa_len = 0; @@ -16322,31 +14188,29 @@ x.sa_len = 0; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +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" "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h +$as_echo "#define HAVE_SOCKADDR_SA_LEN 1" >>confdefs.h -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 : - printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 -printf %s "checking gethostbyname_r with 6 args... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking gethostbyname_r with 6 args" >&5 +$as_echo_n "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 @@ -16355,7 +14219,7 @@ printf %s "checking gethostbyname_r with 6 args... " >&6; } # include int -main (void) +main () { char *name; @@ -16370,30 +14234,29 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : - printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h +$as_echo "#define HAVE_GETHOSTBYNAME_R_6_ARG 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { 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; } + { $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include int -main (void) +main () { char *name; @@ -16408,30 +14271,29 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : - printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h +$as_echo "#define HAVE_GETHOSTBYNAME_R_5_ARG 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { 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; } + { $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # include int -main (void) +main () { char *name; @@ -16444,40 +14306,43 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : - printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h + $as_echo "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h -printf "%s\n" "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h +$as_echo "#define HAVE_GETHOSTBYNAME_R_3_ARG 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$OLD_CFLAGS -else $as_nop +else + 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 : - printf "%s\n" "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h +if test "x$ac_cv_func_gethostbyname" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETHOSTBYNAME 1 +_ACEOF fi +done fi @@ -16493,16 +14358,14 @@ 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_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 +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 ac_check_lib_save_LIBS=$LIBS LIBS="-lieee $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -16511,30 +14374,33 @@ 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 (void) +main () { 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 $as_nop +else ac_cv_lib_ieee___fpu_control=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi -{ 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 +{ $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 LIBS="-lieee $LIBS" @@ -16550,51 +14416,49 @@ case $ac_sys_system in Darwin) ;; *) LIBM=-lm esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 -printf %s "checking for --with-libm=STRING... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libm=STRING" >&5 +$as_echo_n "checking for --with-libm=STRING... " >&6; } # Check whether --with-libm was given. -if test ${with_libm+y} -then : +if test "${with_libm+set}" = set; then : withval=$with_libm; if test "$withval" = no then LIBM= - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 -printf "%s\n" "force LIBM empty" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBM empty" >&5 +$as_echo "force LIBM empty" >&6; } elif test "$withval" != yes then LIBM=$withval - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 -printf "%s\n" "set LIBM=\"$withval\"" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBM=\"$withval\"" >&5 +$as_echo "set LIBM=\"$withval\"" >&6; } else as_fn_error $? "proper usage is --with-libm=STRING" "$LINENO" 5 fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 -printf "%s\n" "default LIBM=\"$LIBM\"" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBM=\"$LIBM\"" >&5 +$as_echo "default LIBM=\"$LIBM\"" >&6; } fi # check for --with-libc=... -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 -printf %s "checking for --with-libc=STRING... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-libc=STRING" >&5 +$as_echo_n "checking for --with-libc=STRING... " >&6; } # Check whether --with-libc was given. -if test ${with_libc+y} -then : +if test "${with_libc+set}" = set; then : withval=$with_libc; if test "$withval" = no then LIBC= - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 -printf "%s\n" "force LIBC empty" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: force LIBC empty" >&5 +$as_echo "force LIBC empty" >&6; } elif test "$withval" != yes then LIBC=$withval - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 -printf "%s\n" "set LIBC=\"$withval\"" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: set LIBC=\"$withval\"" >&5 +$as_echo "set LIBC=\"$withval\"" >&6; } else as_fn_error $? "proper usage is --with-libc=STRING" "$LINENO" 5 fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 -printf "%s\n" "default LIBC=\"$LIBC\"" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: default LIBC=\"$LIBC\"" >&5 +$as_echo "default LIBC=\"$LIBC\"" >&6; } fi @@ -16602,13 +14466,13 @@ fi # * Check for gcc x64 inline assembler * # ************************************** -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 -printf %s "checking for x64 gcc inline assembler... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x64 gcc inline assembler" >&5 +$as_echo_n "checking for x64 gcc inline assembler... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { __asm__ __volatile__ ("movq %rcx, %rax"); @@ -16617,20 +14481,19 @@ main (void) 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 $as_nop +else have_gcc_asm_for_x64=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x64" >&5 -printf "%s\n" "$have_gcc_asm_for_x64" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x64" >&5 +$as_echo "$have_gcc_asm_for_x64" >&6; } if test "$have_gcc_asm_for_x64" = yes then -printf "%s\n" "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h +$as_echo "#define HAVE_GCC_ASM_FOR_X64 1" >>confdefs.h fi @@ -16638,12 +14501,11 @@ fi # * Check for various properties of floating point * # ************************************************** -{ 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 +{ $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 ax_cv_c_float_words_bigendian=unknown @@ -16655,8 +14517,7 @@ 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 @@ -16672,15 +14533,15 @@ fi fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ 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; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_float_words_bigendian" >&5 +$as_echo "$ax_cv_c_float_words_bigendian" >&6; } case $ax_cv_c_float_words_bigendian in yes) -printf "%s\n" "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h +$as_echo "#define FLOAT_WORDS_BIGENDIAN 1" >>confdefs.h ;; no) ;; @@ -16697,12 +14558,12 @@ esac if test "$ax_cv_c_float_words_bigendian" = "yes" then -printf "%s\n" "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h +$as_echo "#define DOUBLE_IS_BIG_ENDIAN_IEEE754 1" >>confdefs.h elif test "$ax_cv_c_float_words_bigendian" = "no" then -printf "%s\n" "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h +$as_echo "#define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 1" >>confdefs.h else # Some ARM platforms use a mixed-endian representation for doubles. @@ -16712,7 +14573,7 @@ else # FLOAT_WORDS_BIGENDIAN doesnt actually detect this case, but if it's not big # or little, then it must be this? -printf "%s\n" "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h +$as_echo "#define DOUBLE_IS_ARM_MIXED_ENDIAN_IEEE754 1" >>confdefs.h fi @@ -16726,13 +14587,13 @@ fi # This inline assembler syntax may also work for suncc and icc, # so we try it on all platforms. -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { unsigned short cw; @@ -16743,30 +14604,29 @@ main (void) 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 $as_nop +else have_gcc_asm_for_x87=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x87" >&5 -printf "%s\n" "$have_gcc_asm_for_x87" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_x87" >&5 +$as_echo "$have_gcc_asm_for_x87" >&6; } if test "$have_gcc_asm_for_x87" = yes then -printf "%s\n" "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h +$as_echo "#define HAVE_GCC_ASM_FOR_X87 1" >>confdefs.h fi -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { unsigned int fpcr; @@ -16777,20 +14637,19 @@ main (void) 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 $as_nop +else have_gcc_asm_for_mc68881=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_mc68881" >&5 -printf "%s\n" "$have_gcc_asm_for_mc68881" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_asm_for_mc68881" >&5 +$as_echo "$have_gcc_asm_for_mc68881" >&6; } if test "$have_gcc_asm_for_mc68881" = yes then -printf "%s\n" "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h +$as_echo "#define HAVE_GCC_ASM_FOR_MC68881 1" >>confdefs.h fi @@ -16799,15 +14658,14 @@ 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. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 -printf %s "checking for x87-style double rounding... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x87-style double rounding" >&5 +$as_echo_n "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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -16831,10 +14689,9 @@ 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 $as_nop +else ac_cv_x87_double_rounding=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -16842,12 +14699,12 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CC="$ac_save_cc" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 -printf "%s\n" "$ac_cv_x87_double_rounding" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_x87_double_rounding" >&5 +$as_echo "$ac_cv_x87_double_rounding" >&6; } if test "$ac_cv_x87_double_rounding" = yes then -printf "%s\n" "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h +$as_echo "#define X87_DOUBLE_ROUNDING 1" >>confdefs.h fi @@ -16858,125 +14715,63 @@ fi LIBS_SAVE=$LIBS LIBS="$LIBS $LIBM" -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 -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 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 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 +done -fi -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 +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 +done -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_fn_c_check_decl "$LINENO" "isinf" "ac_cv_have_decl_isinf" "#include +" +if test "x$ac_cv_have_decl_isinf" = xyes; then : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -printf "%s\n" "#define HAVE_DECL_ISFINITE $ac_have_decl" >>confdefs.h + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ISFINITE $ac_have_decl +_ACEOF # For multiprocessing module, check that sem_open @@ -16984,16 +14779,14 @@ printf "%s\n" "#define HAVE_DECL_ISFINITE $ac_have_decl" >>confdefs.h # 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. -{ 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 : +{ $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 : ac_cv_posix_semaphores_enabled=yes -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17015,10 +14808,9 @@ 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 $as_nop +else ac_cv_posix_semaphores_enabled=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17028,26 +14820,24 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 -printf "%s\n" "$ac_cv_posix_semaphores_enabled" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_posix_semaphores_enabled" >&5 +$as_echo "$ac_cv_posix_semaphores_enabled" >&6; } if test $ac_cv_posix_semaphores_enabled = no then -printf "%s\n" "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h +$as_echo "#define POSIX_SEMAPHORES_NOT_ENABLED 1" >>confdefs.h fi # Multiprocessing check for broken sem_getvalue -{ 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 : +{ $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 : ac_cv_broken_sem_getvalue=yes -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17073,10 +14863,9 @@ 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 $as_nop +else ac_cv_broken_sem_getvalue=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17086,95 +14875,110 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 -printf "%s\n" "$ac_cv_broken_sem_getvalue" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_sem_getvalue" >&5 +$as_echo "$ac_cv_broken_sem_getvalue" >&6; } if test $ac_cv_broken_sem_getvalue = yes then -printf "%s\n" "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_SEM_GETVALUE 1" >>confdefs.h fi -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_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_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -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 : + +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 : ac_have_decl=1 -else $as_nop +else ac_have_decl=0 fi -printf "%s\n" "#define HAVE_DECL_RTLD_MEMBER $ac_have_decl" >>confdefs.h + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_RTLD_MEMBER $ac_have_decl +_ACEOF # determine what size digit to use for Python's longs -{ 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; } +{ $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; } # Check whether --enable-big-digits was given. -if test ${enable_big_digits+y} -then : +if test "${enable_big_digits+set}" = set; then : enableval=$enable_big_digits; case $enable_big_digits in yes) enable_big_digits=30 ;; @@ -17185,34 +14989,36 @@ no) *) as_fn_error $? "bad value $enable_big_digits for --enable-big-digits; value should be 15 or 30" "$LINENO" 5 ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 -printf "%s\n" "$enable_big_digits" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_digits" >&5 +$as_echo "$enable_big_digits" >&6; } -printf "%s\n" "#define PYLONG_BITS_IN_DIGIT $enable_big_digits" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define PYLONG_BITS_IN_DIGIT $enable_big_digits +_ACEOF -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -printf "%s\n" "no value specified" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +$as_echo "no value specified" >&6; } fi # check for wchar.h -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 : +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 : -printf "%s\n" "#define HAVE_WCHAR_H 1" >>confdefs.h +$as_echo "#define HAVE_WCHAR_H 1" >>confdefs.h wchar_h="yes" -else $as_nop +else wchar_h="no" fi + # determine wchar_t size if test "$wchar_h" = yes then @@ -17220,20 +15026,18 @@ 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. -{ 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 +{ $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 if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (wchar_t))" "ac_cv_sizeof_wchar_t" "#include -" -then : +"; then : -else $as_nop +else if test "$ac_cv_type_wchar_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 @@ -17242,18 +15046,20 @@ See \`config.log' for more details" "$LINENO" 5; } fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_wchar_t" >&5 -printf "%s\n" "$ac_cv_sizeof_wchar_t" >&6; } +{ $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" "#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t +_ACEOF fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for UCS-4 tcl" >&5 -printf %s "checking for UCS-4 tcl... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UCS-4 tcl" >&5 +$as_echo_n "checking for UCS-4 tcl... " >&6; } have_ucs4_tcl=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17263,41 +15069,38 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext # error "NOT UCS4_TCL" #endif int -main (void) +main () { ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_UCS4_TCL 1" >>confdefs.h +$as_echo "#define HAVE_UCS4_TCL 1" >>confdefs.h have_ucs4_tcl=yes fi -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; } +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; } # check whether wchar_t is signed or not if test "$wchar_h" = yes then # check whether wchar_t is signed or not - { 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 : + { $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 : ac_cv_wchar_t_signed=yes -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17309,10 +15112,9 @@ else $as_nop } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_cv_wchar_t_signed=yes -else $as_nop +else ac_cv_wchar_t_signed=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17321,24 +15123,24 @@ fi fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 -printf "%s\n" "$ac_cv_wchar_t_signed" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_wchar_t_signed" >&5 +$as_echo "$ac_cv_wchar_t_signed" >&6; } fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 -printf %s "checking whether wchar_t is usable... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wchar_t is usable" >&5 +$as_echo_n "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 -printf "%s\n" "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h +$as_echo "#define HAVE_USABLE_WCHAR_T 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi case $ac_sys_system/$ac_sys_release in @@ -17350,7 +15152,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 -printf "%s\n" "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h +$as_echo "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h fi fi @@ -17358,12 +15160,11 @@ printf "%s\n" "#define HAVE_NON_UNICODE_WCHAR_T_REPRESENTATION 1" >>confdefs.h esac # check for endianness - { 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 + { $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 ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -17374,8 +15175,7 @@ else $as_nop 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. @@ -17399,7 +15199,7 @@ then : fi done fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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 @@ -17408,7 +15208,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext #include int -main (void) +main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ @@ -17420,8 +15220,7 @@ main (void) 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. */ @@ -17429,7 +15228,7 @@ then : #include int -main (void) +main () { #if BYTE_ORDER != BIG_ENDIAN not big endian @@ -17439,15 +15238,14 @@ main (void) 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 $as_nop +else ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). @@ -17456,7 +15254,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext #include int -main (void) +main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros @@ -17466,15 +15264,14 @@ main (void) 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 (void) +main () { #ifndef _BIG_ENDIAN not big endian @@ -17484,33 +15281,31 @@ main (void) 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 $as_nop +else ac_cv_c_bigendian=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext 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. */ -unsigned short int ascii_mm[] = +short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - unsigned short int ascii_ii[] = + short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } - unsigned short int ebcdic_ii[] = + short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - unsigned short int ebcdic_mm[] = + short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; @@ -17518,15 +15313,14 @@ unsigned short int ascii_mm[] = extern int foo; int -main (void) +main () { 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 @@ -17539,13 +15333,13 @@ then : fi fi fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -else $as_nop +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int -main (void) +main () { /* Are we little or big endian? From Harbison&Steele. */ @@ -17561,10 +15355,9 @@ main (void) 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 $as_nop +else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17573,17 +15366,17 @@ fi fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -printf "%s\n" "$ac_cv_c_bigendian" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) - printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) -printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) @@ -17608,15 +15401,15 @@ printf "%s\n" "#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. -{ 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; } +{ $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; } SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 -printf "%s\n" "$SOABI" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5 +$as_echo "$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 @@ -17624,18 +15417,20 @@ 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} -printf "%s\n" "#define ALT_SOABI \"${ALT_SOABI}\"" >>confdefs.h +cat >>confdefs.h <<_ACEOF +#define ALT_SOABI "${ALT_SOABI}" +_ACEOF fi EXT_SUFFIX=.${SOABI}${SHLIB_SUFFIX} -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 -printf %s "checking LDVERSION... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking LDVERSION" >&5 +$as_echo_n "checking LDVERSION... " >&6; } LDVERSION='$(VERSION)$(ABIFLAGS)' -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 -printf "%s\n" "$LDVERSION" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDVERSION" >&5 +$as_echo "$LDVERSION" >&6; } # On Android and Cygwin the shared libraries must be linked with libpython. @@ -17654,12 +15449,11 @@ BINLIBDEST='$(LIBDIR)/python$(VERSION)' # /usr/$LIDIRNAME/python$VERSION PLATLIBDIR="lib" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 -printf %s "checking for --with-platlibdir... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-platlibdir" >&5 +$as_echo_n "checking for --with-platlibdir... " >&6; } # Check whether --with-platlibdir was given. -if test ${with_platlibdir+y} -then : +if test "${with_platlibdir+set}" = set; then : withval=$with_platlibdir; # ignore 3 options: # --with-platlibdir @@ -17667,17 +15461,17 @@ then : # --without-platlibdir if test -n "$withval" -a "$withval" != yes -a "$withval" != no then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } PLATLIBDIR="$withval" BINLIBDEST='${exec_prefix}/${PLATLIBDIR}/python$(VERSION)' else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -17693,40 +15487,37 @@ fi # Check for --with-wheel-pkg-dir=PATH WHEEL_PKG_DIR="" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 -printf %s "checking for --with-wheel-pkg-dir... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-wheel-pkg-dir" >&5 +$as_echo_n "checking for --with-wheel-pkg-dir... " >&6; } # Check whether --with-wheel-pkg-dir was given. -if test ${with_wheel_pkg_dir+y} -then : +if test "${with_wheel_pkg_dir+set}" = set; then : withval=$with_wheel_pkg_dir; if test -n "$withval"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } WHEEL_PKG_DIR="$withval" else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "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). -{ 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 : +{ $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 : ac_cv_rshift_extends_sign=yes -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -17736,10 +15527,9 @@ 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 $as_nop +else ac_cv_rshift_extends_sign=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -17748,28 +15538,27 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 -printf "%s\n" "$ac_cv_rshift_extends_sign" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_rshift_extends_sign" >&5 +$as_echo "$ac_cv_rshift_extends_sign" >&6; } if test "$ac_cv_rshift_extends_sign" = no then -printf "%s\n" "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h +$as_echo "#define SIGNED_RIGHT_SHIFT_ZERO_FILLS 1" >>confdefs.h fi # check for getc_unlocked and related locking functions -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { FILE *f = fopen("/dev/null", "r"); @@ -17781,31 +15570,29 @@ main (void) 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 $as_nop +else ac_cv_have_getc_unlocked=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 -printf "%s\n" "$ac_cv_have_getc_unlocked" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_getc_unlocked" >&5 +$as_echo "$ac_cv_have_getc_unlocked" >&6; } if test "$ac_cv_have_getc_unlocked" = yes then -printf "%s\n" "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h +$as_echo "#define HAVE_GETC_UNLOCKED 1" >>confdefs.h fi # Check whether --with-readline was given. -if test ${with_readline+y} -then : +if test "${with_readline+set}" = set; then : withval=$with_readline; -else $as_nop +else with_readline=yes fi @@ -17820,7 +15607,7 @@ if test "$with_readline" != no; then editline|edit) LIBREADLINE=edit -printf "%s\n" "#define WITH_EDITLINE 1" >>confdefs.h +$as_echo "#define WITH_EDITLINE 1" >>confdefs.h ;; yes|readline) @@ -17834,8 +15621,8 @@ printf "%s\n" "#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. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 -printf %s "checking how to link readline libs... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link readline libs" >&5 +$as_echo_n "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" @@ -17849,20 +15636,22 @@ printf %s "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 (void) +main () { 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 conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $py_cv_lib_readline = yes; then break @@ -17872,20 +15661,20 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ # 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 -printf "%s\n" "none" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 -printf "%s\n" "$READLINE_LIBS" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINE_LIBS" >&5 +$as_echo "$READLINE_LIBS" >&6; } -printf "%s\n" "#define HAVE_LIBREADLINE 1" >>confdefs.h +$as_echo "#define HAVE_LIBREADLINE 1" >>confdefs.h fi fi if test "$py_cv_lib_readline" = yes; then # check for readline 2.2 - ac_fn_check_decl "$LINENO" "rl_completion_append_character" "ac_cv_have_decl_rl_completion_append_character" " + ac_fn_c_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 @@ -17893,14 +15682,14 @@ if test "$py_cv_lib_readline" = yes; then # include #endif -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes -then : +" +if test "x$ac_cv_have_decl_rl_completion_append_character" = xyes; then : -printf "%s\n" "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_APPEND_CHARACTER 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" " + + ac_fn_c_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 @@ -17908,22 +15697,21 @@ fi # include #endif -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes -then : +" +if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : -printf "%s\n" "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_SUPPRESS_APPEND 1" >>confdefs.h fi + # check for readline 4.0 - 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 + 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 ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -17932,44 +15720,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 (void) +main () { 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 $as_nop +else eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { 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 "$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" "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h +$as_echo "#define HAVE_RL_PRE_INPUT_HOOK 1" >>confdefs.h fi # also in 4.0 - 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 + 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 ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -17978,44 +15766,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 (void) +main () { 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 $as_nop +else eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { 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 "$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" "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK 1" >>confdefs.h fi # also in 4.0, but not in editline - 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 + 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 ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -18024,44 +15812,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 (void) +main () { 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 $as_nop +else eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { 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 "$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" "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h +$as_echo "#define HAVE_RL_RESIZE_TERMINAL 1" >>confdefs.h fi # check for readline 4.2 - 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 + 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 ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -18070,38 +15858,39 @@ 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 (void) +main () { 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 $as_nop +else eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { 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 "$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" "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h +$as_echo "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h fi # also in readline 4.2 - ac_fn_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " + ac_fn_c_check_decl "$LINENO" "rl_catch_signals" "ac_cv_have_decl_rl_catch_signals" " #include /* Must be first for Gnu Readline */ #ifdef WITH_EDITLINE # include @@ -18109,21 +15898,20 @@ fi # include #endif -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl_rl_catch_signals" = xyes -then : +" +if test "x$ac_cv_have_decl_rl_catch_signals" = xyes; then : -printf "%s\n" "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h +$as_echo "#define HAVE_RL_CATCH_SIGNAL 1" >>confdefs.h fi - 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 + + 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 ac_check_lib_save_LIBS=$LIBS LIBS="-l$LIBREADLINE $READLINE_LIBS $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -18132,32 +15920,33 @@ 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 (void) +main () { 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 $as_nop +else eval "$as_ac_Lib=no" fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib - { 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 "$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" "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h +$as_echo "#define HAVE_RL_APPEND_HISTORY 1" >>confdefs.h fi @@ -18166,17 +15955,15 @@ fi # End of readline checks: restore LIBS LIBS=$LIBS_no_readline -{ 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 +{ $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 -if test "$cross_compiling" = yes -then : +if test "$cross_compiling" = yes; then : ac_cv_broken_nice=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18191,10 +15978,9 @@ 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 $as_nop +else ac_cv_broken_nice=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -18203,25 +15989,23 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 -printf "%s\n" "$ac_cv_broken_nice" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_nice" >&5 +$as_echo "$ac_cv_broken_nice" >&6; } if test "$ac_cv_broken_nice" = yes then -printf "%s\n" "#define HAVE_BROKEN_NICE 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_NICE 1" >>confdefs.h fi -{ 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 : +{ $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 : ac_cv_broken_poll=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18245,10 +16029,9 @@ 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 $as_nop +else ac_cv_broken_poll=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -18257,27 +16040,25 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 -printf "%s\n" "$ac_cv_broken_poll" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_poll" >&5 +$as_echo "$ac_cv_broken_poll" >&6; } if test "$ac_cv_broken_poll" = yes then -printf "%s\n" "#define HAVE_BROKEN_POLL 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_POLL 1" >>confdefs.h fi # check tzset(3) exists and works like we expect it to -{ 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 : +{ $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 : ac_cv_working_tzset=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18345,10 +16126,9 @@ 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 $as_nop +else ac_cv_working_tzset=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -18357,27 +16137,26 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 -printf "%s\n" "$ac_cv_working_tzset" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_tzset" >&5 +$as_echo "$ac_cv_working_tzset" >&6; } if test "$ac_cv_working_tzset" = yes then -printf "%s\n" "#define HAVE_WORKING_TZSET 1" >>confdefs.h +$as_echo "#define HAVE_WORKING_TZSET 1" >>confdefs.h fi # Look for subsecond timestamps in struct stat -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { struct stat st; @@ -18387,36 +16166,34 @@ 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 $as_nop +else ac_cv_stat_tv_nsec=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 -printf "%s\n" "$ac_cv_stat_tv_nsec" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec" >&5 +$as_echo "$ac_cv_stat_tv_nsec" >&6; } if test "$ac_cv_stat_tv_nsec" = yes then -printf "%s\n" "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h +$as_echo "#define HAVE_STAT_TV_NSEC 1" >>confdefs.h fi # Look for BSD style subsecond timestamps in struct stat -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { struct stat st; @@ -18426,21 +16203,20 @@ 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 $as_nop +else ac_cv_stat_tv_nsec2=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 -printf "%s\n" "$ac_cv_stat_tv_nsec2" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_stat_tv_nsec2" >&5 +$as_echo "$ac_cv_stat_tv_nsec2" >&6; } if test "$ac_cv_stat_tv_nsec2" = yes then -printf "%s\n" "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h +$as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h fi @@ -18450,46 +16226,50 @@ if test "$cross_compiling" = no; then CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw" fi -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 +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 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 -fi +done # On Solaris, term.h requires curses.h -ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" " +for ac_header in term.h +do : + 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 : - printf "%s\n" "#define HAVE_TERM_H 1" >>confdefs.h +if test "x$ac_cv_header_term_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TERM_H 1 +_ACEOF fi +done + # On HP/UX 11.0, mvwdelch is a block with a return statement -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { int rtn; @@ -18499,22 +16279,21 @@ main (void) 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 $as_nop +else ac_cv_mvwdelch_is_expression=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mvwdelch_is_expression" >&5 -printf "%s\n" "$ac_cv_mvwdelch_is_expression" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_mvwdelch_is_expression" >&5 +$as_echo "$ac_cv_mvwdelch_is_expression" >&6; } if test "$ac_cv_mvwdelch_is_expression" = yes then -printf "%s\n" "#define MVWDELCH_IS_EXPRESSION 1" >>confdefs.h +$as_echo "#define MVWDELCH_IS_EXPRESSION 1" >>confdefs.h fi @@ -18522,12 +16301,11 @@ 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. -{ 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 +{ $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 cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18535,7 +16313,7 @@ else $as_nop #include int -main (void) +main () { WINDOW *w; @@ -18545,33 +16323,32 @@ main (void) 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 $as_nop +else ac_cv_window_has_flags=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_window_has_flags" >&5 -printf "%s\n" "$ac_cv_window_has_flags" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_window_has_flags" >&5 +$as_echo "$ac_cv_window_has_flags" >&6; } if test "$ac_cv_window_has_flags" = yes then -printf "%s\n" "#define WINDOW_HAS_FLAGS 1" >>confdefs.h +$as_echo "#define WINDOW_HAS_FLAGS 1" >>confdefs.h fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for is_pad" >&5 -printf %s "checking for is_pad... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_pad" >&5 +$as_echo_n "checking for is_pad... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef is_pad @@ -18582,108 +16359,104 @@ void *x=is_pad return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_IS_PAD 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_IS_PAD 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for is_term_resized" >&5 -printf %s "checking for is_term_resized... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for is_term_resized" >&5 +$as_echo_n "checking for is_term_resized... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=is_term_resized ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_IS_TERM_RESIZED 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_IS_TERM_RESIZED 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for resize_term" >&5 -printf %s "checking for resize_term... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for resize_term" >&5 +$as_echo_n "checking for resize_term... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=resize_term ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_RESIZE_TERM 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_RESIZE_TERM 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for resizeterm" >&5 -printf %s "checking for resizeterm... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for resizeterm" >&5 +$as_echo_n "checking for resizeterm... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { void *x=resizeterm ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_RESIZETERM 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_RESIZETERM 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for immedok" >&5 -printf %s "checking for immedok... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for immedok" >&5 +$as_echo_n "checking for immedok... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef immedok @@ -18694,27 +16467,26 @@ void *x=immedok return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_IMMEDOK 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_IMMEDOK 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for syncok" >&5 -printf %s "checking for syncok... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for syncok" >&5 +$as_echo_n "checking for syncok... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef syncok @@ -18725,27 +16497,26 @@ void *x=syncok return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_SYNCOK 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_SYNCOK 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wchgat" >&5 -printf %s "checking for wchgat... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchgat" >&5 +$as_echo_n "checking for wchgat... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef wchgat @@ -18756,27 +16527,26 @@ void *x=wchgat return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_WCHGAT 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_WCHGAT 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for filter" >&5 -printf %s "checking for filter... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for filter" >&5 +$as_echo_n "checking for filter... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef filter @@ -18787,27 +16557,26 @@ void *x=filter return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_FILTER 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_FILTER 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for has_key" >&5 -printf %s "checking for has_key... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for has_key" >&5 +$as_echo_n "checking for has_key... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef has_key @@ -18818,27 +16587,26 @@ void *x=has_key return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_HAS_KEY 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_HAS_KEY 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for typeahead" >&5 -printf %s "checking for typeahead... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for typeahead" >&5 +$as_echo_n "checking for typeahead... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef typeahead @@ -18849,27 +16617,26 @@ void *x=typeahead return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_TYPEAHEAD 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_TYPEAHEAD 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for use_env" >&5 -printf %s "checking for use_env... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for use_env" >&5 +$as_echo_n "checking for use_env... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int -main (void) +main () { #ifndef use_env @@ -18880,48 +16647,46 @@ void *x=use_env return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : -printf "%s\n" "#define HAVE_CURSES_USE_ENV 1" >>confdefs.h +$as_echo "#define HAVE_CURSES_USE_ENV 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; } + { $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 -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # last curses configure check CPPFLAGS=$ac_save_cppflags -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for device files" >&5 -printf "%s\n" "$as_me: checking for device files" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for device files" >&5 +$as_echo "$as_me: checking for device files" >&6;} if test "x$cross_compiling" = xyes; then if test "${ac_cv_file__dev_ptmx+set}" != set; then - { 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_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; } 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 - { 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_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; } as_fn_error $? "set ac_cv_file__dev_ptc to yes/no in your CONFIG_SITE file when cross compiling" "$LINENO" 5 fi fi -{ 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 +{ $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 test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/dev/ptmx"; then @@ -18930,24 +16695,22 @@ else ac_cv_file__dev_ptmx=no fi fi -{ 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 : +{ $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 : fi if test "x$ac_cv_file__dev_ptmx" = xyes; then -printf "%s\n" "#define HAVE_DEV_PTMX 1" >>confdefs.h +$as_echo "#define HAVE_DEV_PTMX 1" >>confdefs.h fi -{ 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 +{ $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 test "$cross_compiling" = yes && as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 if test -r "/dev/ptc"; then @@ -18956,16 +16719,15 @@ else ac_cv_file__dev_ptc=no fi fi -{ 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 : +{ $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 : fi if test "x$ac_cv_file__dev_ptc" = xyes; then -printf "%s\n" "#define HAVE_DEV_PTC 1" >>confdefs.h +$as_echo "#define HAVE_DEV_PTC 1" >>confdefs.h fi @@ -18974,17 +16736,15 @@ then LIBS="$LIBS -framework CoreFoundation" fi -{ 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 : +{ $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 : ac_cv_have_size_t_format="cross -- assuming yes" -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19024,10 +16784,9 @@ 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 $as_nop +else ac_cv_have_size_t_format=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -19035,11 +16794,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi fi -{ 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; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_size_t_format" >&5 +$as_echo "$ac_cv_have_size_t_format" >&6; } if test "$ac_cv_have_size_t_format" != no ; then -printf "%s\n" "#define PY_FORMAT_SIZE_T \"z\"" >>confdefs.h +$as_echo "#define PY_FORMAT_SIZE_T \"z\"" >>confdefs.h fi @@ -19052,26 +16811,23 @@ 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 $as_nop +else -printf "%s\n" "#define socklen_t int" >>confdefs.h +$as_echo "#define socklen_t int" >>confdefs.h fi -{ 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 : +{ $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 : ac_cv_broken_mbstowcs=no -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19085,10 +16841,9 @@ 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 $as_nop +else ac_cv_broken_mbstowcs=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -19097,60 +16852,57 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_mbstowcs" >&5 -printf "%s\n" "$ac_cv_broken_mbstowcs" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_broken_mbstowcs" >&5 +$as_echo "$ac_cv_broken_mbstowcs" >&6; } if test "$ac_cv_broken_mbstowcs" = yes then -printf "%s\n" "#define HAVE_BROKEN_MBSTOWCS 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_MBSTOWCS 1" >>confdefs.h fi # Check for --with-computed-gotos -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-computed-gotos" >&5 -printf %s "checking for --with-computed-gotos... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-computed-gotos" >&5 +$as_echo_n "checking for --with-computed-gotos... " >&6; } # Check whether --with-computed-gotos was given. -if test ${with_computed_gotos+y} -then : +if test "${with_computed_gotos+set}" = set; then : withval=$with_computed_gotos; if test "$withval" = yes then -printf "%s\n" "#define USE_COMPUTED_GOTOS 1" >>confdefs.h +$as_echo "#define USE_COMPUTED_GOTOS 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } fi if test "$withval" = no then -printf "%s\n" "#define USE_COMPUTED_GOTOS 0" >>confdefs.h +$as_echo "#define USE_COMPUTED_GOTOS 0" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 -printf "%s\n" "no value specified" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no value specified" >&5 +$as_echo "no value specified" >&6; } fi -{ 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 : +{ $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 : 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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19166,10 +16918,9 @@ LABEL2: } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : ac_cv_computed_gotos=yes -else $as_nop +else ac_cv_computed_gotos=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -19178,18 +16929,18 @@ fi fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5 -printf "%s\n" "$ac_cv_computed_gotos" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_computed_gotos" >&5 +$as_echo "$ac_cv_computed_gotos" >&6; } case "$ac_cv_computed_gotos" in yes*) -printf "%s\n" "#define HAVE_COMPUTED_GOTOS 1" >>confdefs.h +$as_echo "#define HAVE_COMPUTED_GOTOS 1" >>confdefs.h esac case $ac_sys_system in AIX*) -printf "%s\n" "#define HAVE_BROKEN_PIPE_BUF 1" >>confdefs.h +$as_echo "#define HAVE_BROKEN_PIPE_BUF 1" >>confdefs.h ;; esac @@ -19203,26 +16954,26 @@ done SRCDIRS="Parser Objects Python Modules Modules/_io Programs" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for build directories" >&5 -printf %s "checking for build directories... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for build directories" >&5 +$as_echo_n "checking for build directories... " >&6; } for dir in $SRCDIRS; do if test ! -d $dir; then mkdir $dir fi done -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 -printf "%s\n" "done" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } # Availability of -O2: -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -O2" >&5 -printf %s "checking for -O2... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -O2" >&5 +$as_echo_n "checking for -O2... " >&6; } saved_cflags="$CFLAGS" CFLAGS="-O2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int -main (void) +main () { @@ -19230,30 +16981,28 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" -then : +if ac_fn_c_try_compile "$LINENO"; then : have_O2=yes -else $as_nop +else have_O2=no fi -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; } +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; } CFLAGS="$saved_cflags" # _FORTIFY_SOURCE wrappers for memmove and bcopy are incorrect: # http://sourceware.org/ml/libc-alpha/2010-12/msg00009.html -{ 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; } +{ $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; } 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 $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19273,10 +17022,9 @@ 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 $as_nop +else have_glibc_memmove_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -19284,11 +17032,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CFLAGS="$saved_cflags" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_glibc_memmove_bug" >&5 -printf "%s\n" "$have_glibc_memmove_bug" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_glibc_memmove_bug" >&5 +$as_echo "$have_glibc_memmove_bug" >&6; } if test "$have_glibc_memmove_bug" = yes; then -printf "%s\n" "#define HAVE_GLIBC_MEMMOVE_BUG 1" >>confdefs.h +$as_echo "#define HAVE_GLIBC_MEMMOVE_BUG 1" >>confdefs.h fi @@ -19298,14 +17046,13 @@ if test "$have_gcc_asm_for_x87" = yes; then # http://gcc.gnu.org/ml/gcc/2010-11/msg00366.html case $CC in *gcc*) - { 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; } + { $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; } saved_cflags="$CFLAGS" CFLAGS="-O2" - if test "$cross_compiling" = yes -then : + if test "$cross_compiling" = yes; then : have_ipa_pure_const_bug=undefined -else $as_nop +else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19326,10 +17073,9 @@ else $as_nop } _ACEOF -if ac_fn_c_try_run "$LINENO" -then : +if ac_fn_c_try_run "$LINENO"; then : have_ipa_pure_const_bug=no -else $as_nop +else have_ipa_pure_const_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ @@ -19337,11 +17083,11 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ fi CFLAGS="$saved_cflags" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_ipa_pure_const_bug" >&5 -printf "%s\n" "$have_ipa_pure_const_bug" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ipa_pure_const_bug" >&5 +$as_echo "$have_ipa_pure_const_bug" >&6; } if test "$have_ipa_pure_const_bug" = yes; then -printf "%s\n" "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h +$as_echo "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h fi ;; @@ -19349,8 +17095,8 @@ printf "%s\n" "#define HAVE_IPA_PURE_CONST_BUG 1" >>confdefs.h fi # Check for stdatomic.h -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdatomic.h" >&5 -printf %s "checking for stdatomic.h... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdatomic.h" >&5 +$as_echo_n "checking for stdatomic.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19367,27 +17113,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_stdatomic_h=yes -else $as_nop +else have_stdatomic_h=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_stdatomic_h" >&5 -printf "%s\n" "$have_stdatomic_h" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_stdatomic_h" >&5 +$as_echo "$have_stdatomic_h" >&6; } if test "$have_stdatomic_h" = yes; then -printf "%s\n" "#define HAVE_STD_ATOMIC 1" >>confdefs.h +$as_echo "#define HAVE_STD_ATOMIC 1" >>confdefs.h fi # Check for GCC >= 4.7 and clang __atomic builtin functions -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19401,33 +17146,31 @@ 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 $as_nop +else have_builtin_atomic=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_builtin_atomic" >&5 -printf "%s\n" "$have_builtin_atomic" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_builtin_atomic" >&5 +$as_echo "$have_builtin_atomic" >&6; } if test "$have_builtin_atomic" = yes; then -printf "%s\n" "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h +$as_echo "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h fi # ensurepip option -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ensurepip" >&5 -printf %s "checking for ensurepip... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ensurepip" >&5 +$as_echo_n "checking for ensurepip... " >&6; } # Check whether --with-ensurepip was given. -if test ${with_ensurepip+y} -then : +if test "${with_ensurepip+set}" = set; then : withval=$with_ensurepip; -else $as_nop +else with_ensurepip=upgrade fi @@ -19441,13 +17184,13 @@ case $with_ensurepip in #( *) : as_fn_error $? "--with-ensurepip=upgrade|install|no" "$LINENO" 5 ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ENSUREPIP" >&5 -printf "%s\n" "$ENSUREPIP" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ENSUREPIP" >&5 +$as_echo "$ENSUREPIP" >&6; } # check if the dirent structure of a d_type field and DT_UNKNOWN is defined -{ 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; } +{ $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; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19461,26 +17204,25 @@ 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 $as_nop +else have_dirent_d_type=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_dirent_d_type" >&5 -printf "%s\n" "$have_dirent_d_type" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_dirent_d_type" >&5 +$as_echo "$have_dirent_d_type" >&6; } if test "$have_dirent_d_type" = yes; then -printf "%s\n" "#define HAVE_DIRENT_D_TYPE 1" >>confdefs.h +$as_echo "#define HAVE_DIRENT_D_TYPE 1" >>confdefs.h fi # check if the Linux getrandom() syscall is available -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Linux getrandom() syscall" >&5 -printf %s "checking for the Linux getrandom() syscall... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Linux getrandom() syscall" >&5 +$as_echo_n "checking for the Linux getrandom() syscall... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19500,27 +17242,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_getrandom_syscall=yes -else $as_nop +else have_getrandom_syscall=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getrandom_syscall" >&5 -printf "%s\n" "$have_getrandom_syscall" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getrandom_syscall" >&5 +$as_echo "$have_getrandom_syscall" >&6; } if test "$have_getrandom_syscall" = yes; then -printf "%s\n" "#define HAVE_GETRANDOM_SYSCALL 1" >>confdefs.h +$as_echo "#define HAVE_GETRANDOM_SYSCALL 1" >>confdefs.h fi # check if the getrandom() function is available # the test was written for the Solaris function of -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the getrandom() function" >&5 -printf %s "checking for the getrandom() function... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the getrandom() function" >&5 +$as_echo_n "checking for the getrandom() function... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19538,20 +17279,19 @@ 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 $as_nop +else have_getrandom=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $have_getrandom" >&5 -printf "%s\n" "$have_getrandom" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_getrandom" >&5 +$as_echo "$have_getrandom" >&6; } if test "$have_getrandom" = yes; then -printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h +$as_echo "#define HAVE_GETRANDOM 1" >>confdefs.h fi @@ -19559,12 +17299,11 @@ fi # shm_* may only be available if linking against librt save_LIBS="$LIBS" save_includes_default="$ac_includes_default" -{ 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 +{ $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 ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -19572,64 +17311,67 @@ 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 (void) +main () { 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 conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext - if test ${ac_cv_search_shm_open+y} -then : + if ${ac_cv_search_shm_open+:} false; then : break fi done -if test ${ac_cv_search_shm_open+y} -then : +if ${ac_cv_search_shm_open+:} false; then : -else $as_nop +else ac_cv_search_shm_open=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_shm_open" >&5 -printf "%s\n" "$ac_cv_search_shm_open" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 +$as_echo "$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 -printf "%s\n" "#define SHM_NEEDS_LIBRT 1" >>confdefs.h +$as_echo "#define SHM_NEEDS_LIBRT 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 +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 fi +done + # temporarily override ac_includes_default for AC_CHECK_FUNCS below ac_includes_default="\ ${ac_includes_default} @@ -19639,18 +17381,17 @@ ${ac_includes_default} # endif #endif " -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 +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 fi +done # we don't want to link with librt always, restore LIBS LIBS="$save_LIBS" @@ -19661,8 +17402,7 @@ ac_includes_default="$save_includes_default" found=false # Check whether --with-openssl was given. -if test ${with_openssl+y} -then : +if test "${with_openssl+set}" = set; then : withval=$with_openssl; case "$withval" in "" | y | ye | yes | n | no) @@ -19672,19 +17412,18 @@ then : ;; esac -else $as_nop +else # 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 -{ 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 +{ $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 if test -n "$PKG_CONFIG"; then ac_cv_prog_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test. else @@ -19692,15 +17431,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -19711,11 +17446,11 @@ fi fi PKG_CONFIG=$ac_cv_prog_PKG_CONFIG if test -n "$PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -printf "%s\n" "$PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -19724,12 +17459,11 @@ 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 -{ 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 +{ $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 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 @@ -19737,15 +17471,11 @@ 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 + test -z "$as_dir" && as_dir=. 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" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done @@ -19756,11 +17486,11 @@ fi fi ac_ct_PKG_CONFIG=$ac_cv_prog_ac_ct_PKG_CONFIG if test -n "$ac_ct_PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5 -printf "%s\n" "$ac_ct_PKG_CONFIG" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_PKG_CONFIG" >&5 +$as_echo "$ac_ct_PKG_CONFIG" >&6; } else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi if test "x$ac_ct_PKG_CONFIG" = x; then @@ -19768,8 +17498,8 @@ fi 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;} +{ $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;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_ct_PKG_CONFIG @@ -19803,19 +17533,19 @@ fi if ! $found; then OPENSSL_INCLUDES= for ssldir in $ssldirs; do - { 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; } + { $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; } 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } break else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi done @@ -19826,8 +17556,8 @@ printf "%s\n" "no" >&6; } # try the preprocessor and linker with our new flags, # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS - { 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; } + { $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; } echo "Trying link with OPENSSL_LDFLAGS=$OPENSSL_LDFLAGS;" \ "OPENSSL_LIBS=$OPENSSL_LIBS; OPENSSL_INCLUDES=$OPENSSL_INCLUDES" >&5 @@ -19841,28 +17571,27 @@ printf %s "checking whether compiling and linking against OpenSSL works... " >&6 /* end confdefs.h. */ #include int -main (void) +main () { SSL_new(NULL) ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" -then : +if ac_fn_c_try_link "$LINENO"; then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } have_openssl=yes -else $as_nop +else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } have_openssl=no fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ +rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" @@ -19874,14 +17603,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ # rpath to libssl and libcrypto -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-openssl-rpath" >&5 -printf %s "checking for --with-openssl-rpath... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-openssl-rpath" >&5 +$as_echo_n "checking for --with-openssl-rpath... " >&6; } # Check whether --with-openssl-rpath was given. -if test ${with_openssl_rpath+y} -then : +if test "${with_openssl_rpath+set}" = set; then : withval=$with_openssl_rpath; -else $as_nop +else with_openssl_rpath=no fi @@ -19892,54 +17620,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 $as_nop +else as_fn_error $? "--with-openssl-rpath \"$with_openssl_rpath\" is not a directory" "$LINENO" 5 fi ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 -printf "%s\n" "$OPENSSL_RPATH" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSL_RPATH" >&5 +$as_echo "$OPENSSL_RPATH" >&6; } # ssl module default cipher suite string -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-ssl-default-suites" >&5 -printf %s "checking for --with-ssl-default-suites... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-ssl-default-suites" >&5 +$as_echo_n "checking for --with-ssl-default-suites... " >&6; } # Check whether --with-ssl-default-suites was given. -if test ${with_ssl_default_suites+y} -then : +if test "${with_ssl_default_suites+set}" = set; then : withval=$with_ssl_default_suites; -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 -printf "%s\n" "$withval" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $withval" >&5 +$as_echo "$withval" >&6; } case "$withval" in python) - printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h + $as_echo "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h ;; openssl) - printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 2" >>confdefs.h + $as_echo "#define PY_SSL_DEFAULT_CIPHERS 2" >>confdefs.h ;; *) - printf "%s\n" "#define PY_SSL_DEFAULT_CIPHERS 0" >>confdefs.h + $as_echo "#define PY_SSL_DEFAULT_CIPHERS 0" >>confdefs.h - printf "%s\n" "#define PY_SSL_DEFAULT_CIPHER_STRING \"$withval\"" >>confdefs.h + cat >>confdefs.h <<_ACEOF +#define PY_SSL_DEFAULT_CIPHER_STRING "$withval" +_ACEOF ;; esac -else $as_nop +else -{ 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: python" >&5 +$as_echo "python" >&6; } +$as_echo "#define PY_SSL_DEFAULT_CIPHERS 1" >>confdefs.h fi @@ -19948,14 +17676,13 @@ fi # builtin hash modules default_hashlib_hashes="md5,sha1,sha256,sha512,sha3,blake2" -printf "%s\n" "#define PY_BUILTIN_HASHLIB_HASHES /**/" >>confdefs.h +$as_echo "#define PY_BUILTIN_HASHLIB_HASHES /**/" >>confdefs.h -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-builtin-hashlib-hashes" >&5 -printf %s "checking for --with-builtin-hashlib-hashes... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-builtin-hashlib-hashes" >&5 +$as_echo_n "checking for --with-builtin-hashlib-hashes... " >&6; } # Check whether --with-builtin-hashlib-hashes was given. -if test ${with_builtin_hashlib_hashes+y} -then : +if test "${with_builtin_hashlib_hashes+set}" = set; then : withval=$with_builtin_hashlib_hashes; case "$withval" in yes) @@ -19965,16 +17692,20 @@ case "$withval" in withval="" ;; esac -{ 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 +{ $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 -else $as_nop +else -{ 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 +{ $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 fi @@ -19982,50 +17713,48 @@ fi # --with-experimental-isolated-subinterpreters -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 -printf %s "checking for --with-experimental-isolated-subinterpreters... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-experimental-isolated-subinterpreters" >&5 +$as_echo_n "checking for --with-experimental-isolated-subinterpreters... " >&6; } # Check whether --with-experimental-isolated-subinterpreters was given. -if test ${with_experimental_isolated_subinterpreters+y} -then : +if test "${with_experimental_isolated_subinterpreters+set}" = set; then : withval=$with_experimental_isolated_subinterpreters; if test "$withval" != no then - { 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; + $as_echo "#define EXPERIMENTAL_ISOLATED_SUBINTERPRETERS 1" >>confdefs.h else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; fi -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi # --with-static-libpython STATIC_LIBPYTHON=1 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 -printf %s "checking for --with-static-libpython... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-static-libpython" >&5 +$as_echo_n "checking for --with-static-libpython... " >&6; } # Check whether --with-static-libpython was given. -if test ${with_static_libpython+y} -then : +if test "${with_static_libpython+set}" = set; then : withval=$with_static_libpython; if test "$withval" = no then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; }; STATIC_LIBPYTHON=0 else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; }; + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; }; fi -else $as_nop - { 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: yes" >&5 +$as_echo "yes" >&6; } fi LIBRARY_DEPS='$(PY3LIBRARY) $(EXPORTSYMS)' @@ -20042,22 +17771,21 @@ 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. -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 -printf %s "checking for --disable-test-modules... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --disable-test-modules" >&5 +$as_echo_n "checking for --disable-test-modules... " >&6; } # Check whether --enable-test-modules was given. -if test ${enable_test_modules+y} -then : +if test "${enable_test_modules+set}" = set; then : enableval=$enable_test_modules; fi if test "$enable_test_modules" = no; then TEST_MODULES=no - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } else TEST_MODULES=yes - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi @@ -20094,8 +17822,8 @@ _ACEOF case $ac_val in #( *${as_nl}*) case $ac_var in #( - *_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;} ;; + *_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;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( @@ -20125,15 +17853,15 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} /^ac_cv_env_/b end t clear :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 -printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else @@ -20147,8 +17875,8 @@ printf "%s\n" "$as_me: updating cache $cache_file" >&6;} fi fi else - { 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;} + { $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;} fi fi rm -f confcache @@ -20165,7 +17893,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=`printf "%s\n" "$ac_i" | sed "$ac_script"` + ac_i=`$as_echo "$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" @@ -20182,8 +17910,8 @@ LTLIBOBJS=$ac_ltlibobjs ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 -printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL @@ -20206,16 +17934,14 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: -if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 -then : +if test -n "${ZSH_VERSION+set}" && (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 $as_nop +else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( @@ -20225,46 +17951,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 -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 +# 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 # The user is always right. -if ${PATH_SEPARATOR+false} :; then +if test "${PATH_SEPARATOR+set}" != set; 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 || @@ -20273,6 +17999,13 @@ if ${PATH_SEPARATOR+false} :; 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 #(( @@ -20281,12 +18014,8 @@ case $0 in #(( for as_dir in $PATH do IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - test -r "$as_dir$0" && as_myself=$as_dir$0 && break + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS @@ -20298,10 +18027,30 @@ if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then - printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + $as_echo "$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] @@ -20314,14 +18063,13 @@ 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 - printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi - printf "%s\n" "$as_me: error: $2" >&2 + $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -20348,20 +18096,18 @@ 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 $as_nop +else as_fn_append () { eval $1=\$$1\$2 @@ -20373,13 +18119,12 @@ 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 $as_nop +else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` @@ -20410,7 +18155,7 @@ as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X/"$0" | +$as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q @@ -20432,10 +18177,6 @@ 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*) @@ -20449,12 +18190,6 @@ 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 @@ -20496,7 +18231,7 @@ as_fn_mkdir_p () as_dirs= while :; do case $as_dir in #( - *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" @@ -20505,7 +18240,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$as_dir" | +$as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -20568,7 +18303,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.71. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -20626,16 +18361,14 @@ $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='$ac_cs_config_escaped' +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ python config.status 3.10 -configured by $0, generated by GNU Autoconf 2.71, +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -20674,15 +18407,15 @@ do -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - printf "%s\n" "$ac_cs_version"; exit ;; + $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) - printf "%s\n" "$ac_cs_config"; exit ;; + $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" @@ -20690,7 +18423,7 @@ do --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in - *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; @@ -20699,7 +18432,7 @@ do as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) - printf "%s\n" "$ac_cs_usage"; exit ;; + $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; @@ -20727,7 +18460,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 - \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" @@ -20741,7 +18474,7 @@ exec 5>>config.log sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX - printf "%s\n" "$ac_log" + $as_echo "$ac_log" } >&5 _ACEOF @@ -20775,8 +18508,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+y} || CONFIG_FILES=$config_files - test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree @@ -21112,7 +18845,7 @@ do esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac - case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done @@ -21120,17 +18853,17 @@ do # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` - printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 -printf "%s\n" "$as_me: creating $ac_file" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) - ac_sed_conf_input=`printf "%s\n" "$configure_input" | + ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac @@ -21147,7 +18880,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -printf "%s\n" X"$ac_file" | +$as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q @@ -21171,9 +18904,9 @@ printf "%s\n" X"$ac_file" | case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) - ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + ac_top_builddir_sub=`$as_echo "$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/ ;; @@ -21235,8 +18968,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@*) - { 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;} + { $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;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' @@ -21280,9 +19013,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"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { $as_echo "$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 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +$as_echo "$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" @@ -21298,20 +19031,20 @@ which seems to be undefined. Please make sure it is defined" >&2;} # if test x"$ac_file" != x-; then { - printf "%s\n" "/* $configure_input */" >&1 \ + $as_echo "/* $configure_input */" \ && 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 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$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 - printf "%s\n" "/* $configure_input */" >&1 \ + $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi @@ -21357,8 +19090,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 - { 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;} + { $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;} fi @@ -21382,4 +19115,3 @@ if test "$Py_OPT" = 'false' -a "$Py_DEBUG" != 'true'; then echo "" >&6 echo "" >&6 fi - From webhook-mailer at python.org Sat Sep 4 13:54:55 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sat, 04 Sep 2021 17:54:55 -0000 Subject: [Python-checkins] [3.9] bpo-45097: Remove incorrect deprecation warnings in asyncio. (GH-28153) Message-ID: https://github.com/python/cpython/commit/c967bd523caabb05bf5988449487d7c1717f3ac6 commit: c967bd523caabb05bf5988449487d7c1717f3ac6 branch: 3.9 author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-04T20:54:50+03:00 summary: [3.9] bpo-45097: Remove incorrect deprecation warnings in asyncio. (GH-28153) Deprecation warnings about the loop argument were incorrectly emitted in cases when the loop argument was used inside the asyncio library, not from user code. files: A Misc/NEWS.d/next/Library/2021-09-04-13-10-25.bpo-45097.5J4IC-.rst M Lib/asyncio/base_events.py M Lib/asyncio/runners.py M Lib/asyncio/subprocess.py M Lib/asyncio/tasks.py M Lib/asyncio/unix_events.py M Lib/test/test_asyncgen.py M Lib/test/test_asyncio/__init__.py M Lib/test/test_asyncio/test_events.py M Lib/test/test_asyncio/test_queues.py M Lib/test/test_asyncio/test_tasks.py diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py index b2d446a51fedb5..bb2f99150b115a 100644 --- a/Lib/asyncio/base_events.py +++ b/Lib/asyncio/base_events.py @@ -350,7 +350,7 @@ async def start_serving(self): self._start_serving() # Skip one loop iteration so that all 'loop.add_reader' # go through. - await tasks.sleep(0, loop=self._loop) + await tasks.sleep(0) async def serve_forever(self): if self._serving_forever_fut is not None: @@ -539,7 +539,7 @@ async def shutdown_asyncgens(self): closing_agens = list(self._asyncgens) self._asyncgens.clear() - results = await tasks.gather( + results = await tasks._gather( *[ag.aclose() for ag in closing_agens], return_exceptions=True, loop=self) @@ -1457,7 +1457,7 @@ async def create_server( fs = [self._create_server_getaddrinfo(host, port, family=family, flags=flags) for host in hosts] - infos = await tasks.gather(*fs, loop=self) + infos = await tasks._gather(*fs, loop=self) infos = set(itertools.chain.from_iterable(infos)) completed = False @@ -1515,7 +1515,7 @@ async def create_server( server._start_serving() # Skip one loop iteration so that all 'loop.add_reader' # go through. - await tasks.sleep(0, loop=self) + await tasks.sleep(0) if self._debug: logger.info("%r is serving", server) diff --git a/Lib/asyncio/runners.py b/Lib/asyncio/runners.py index 268635d68fb0c0..6920acba381525 100644 --- a/Lib/asyncio/runners.py +++ b/Lib/asyncio/runners.py @@ -61,7 +61,7 @@ def _cancel_all_tasks(loop): task.cancel() loop.run_until_complete( - tasks.gather(*to_cancel, loop=loop, return_exceptions=True)) + tasks._gather(*to_cancel, loop=loop, return_exceptions=True)) for task in to_cancel: if task.cancelled(): diff --git a/Lib/asyncio/subprocess.py b/Lib/asyncio/subprocess.py index c9506b158302b5..820304eccaf442 100644 --- a/Lib/asyncio/subprocess.py +++ b/Lib/asyncio/subprocess.py @@ -193,8 +193,8 @@ async def communicate(self, input=None): stderr = self._read_stream(2) else: stderr = self._noop() - stdin, stdout, stderr = await tasks.gather(stdin, stdout, stderr, - loop=self._loop) + stdin, stdout, stderr = await tasks._gather(stdin, stdout, stderr, + loop=self._loop) await self.wait() return (stdout, stderr) diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py index d7e0575ebd7fbb..22ed3289edf3cd 100644 --- a/Lib/asyncio/tasks.py +++ b/Lib/asyncio/tasks.py @@ -580,15 +580,16 @@ def as_completed(fs, *, loop=None, timeout=None): if futures.isfuture(fs) or coroutines.iscoroutine(fs): raise TypeError(f"expect an iterable of futures, not {type(fs).__name__}") + if loop is not None: + warnings.warn("The loop argument is deprecated since Python 3.8, " + "and scheduled for removal in Python 3.10.", + DeprecationWarning, stacklevel=2) + from .queues import Queue # Import here to avoid circular import problem. done = Queue(loop=loop) if loop is None: loop = events.get_event_loop() - else: - warnings.warn("The loop argument is deprecated since Python 3.8, " - "and scheduled for removal in Python 3.10.", - DeprecationWarning, stacklevel=2) todo = {ensure_future(f, loop=loop) for f in set(fs)} timeout_handle = None @@ -756,6 +757,10 @@ def gather(*coros_or_futures, loop=None, return_exceptions=False): "and scheduled for removal in Python 3.10.", DeprecationWarning, stacklevel=2) + return _gather(*coros_or_futures, loop=loop, return_exceptions=return_exceptions) + + +def _gather(*coros_or_futures, loop=None, return_exceptions=False): if not coros_or_futures: if loop is None: loop = events.get_event_loop() diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py index 3efa6698b89ced..56fcc084e311f4 100644 --- a/Lib/asyncio/unix_events.py +++ b/Lib/asyncio/unix_events.py @@ -323,7 +323,7 @@ async def create_unix_server( server._start_serving() # Skip one loop iteration so that all 'loop.add_reader' # go through. - await tasks.sleep(0, loop=self) + await tasks.sleep(0) return server diff --git a/Lib/test/test_asyncgen.py b/Lib/test/test_asyncgen.py index 8d2ad2233ae1f5..15997380861d06 100644 --- a/Lib/test/test_asyncgen.py +++ b/Lib/test/test_asyncgen.py @@ -1077,6 +1077,84 @@ async def wait(): self.assertEqual(finalized, 2) + def test_async_gen_asyncio_shutdown_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + yield 1 + yield 2 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + self.assertEqual(messages, []) + + def test_async_gen_asyncio_shutdown_exception_01(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + message, = messages + self.assertEqual(message['asyncgen'], it) + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('an error occurred during closing of asynchronous generator', + message['message']) + + def test_async_gen_asyncio_shutdown_exception_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in async_iterate(): + break + + asyncio.run(main()) + + message, = messages + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('unhandled exception during asyncio.run() shutdown', + message['message']) + def test_async_gen_expression_01(self): async def arange(n): for i in range(n): diff --git a/Lib/test/test_asyncio/__init__.py b/Lib/test/test_asyncio/__init__.py index 4a7a868980d88b..5535b88cff0187 100644 --- a/Lib/test/test_asyncio/__init__.py +++ b/Lib/test/test_asyncio/__init__.py @@ -1,38 +1,10 @@ import os from test import support -import unittest # Skip tests if we don't have concurrent.futures. support.import_module('concurrent.futures') -def load_tests(loader, _, pattern): +def load_tests(*args): pkg_dir = os.path.dirname(__file__) - suite = AsyncioTestSuite() - return support.load_package_tests(pkg_dir, loader, suite, pattern) - - -class AsyncioTestSuite(unittest.TestSuite): - """A custom test suite that also runs setup/teardown for the whole package. - - Normally unittest only runs setUpModule() and tearDownModule() within each - test module part of the test suite. Copying those functions to each file - would be tedious, let's run this once and for all. - """ - def run(self, result, debug=False): - ignore = support.ignore_deprecations_from - tokens = { - ignore("asyncio.base_events", like=r".*loop argument.*"), - ignore("asyncio.unix_events", like=r".*loop argument.*"), - ignore("asyncio.futures", like=r".*loop argument.*"), - ignore("asyncio.runners", like=r".*loop argument.*"), - ignore("asyncio.subprocess", like=r".*loop argument.*"), - ignore("asyncio.tasks", like=r".*loop argument.*"), - ignore("test.test_asyncio.test_events", like=r".*loop argument.*"), - ignore("test.test_asyncio.test_queues", like=r".*loop argument.*"), - ignore("test.test_asyncio.test_tasks", like=r".*loop argument.*"), - } - try: - super().run(result, debug=debug) - finally: - support.clear_ignored_deprecations(*tokens) + return support.load_package_tests(pkg_dir, *args) diff --git a/Lib/test/test_asyncio/test_events.py b/Lib/test/test_asyncio/test_events.py index 7114c2f0c71daa..72189bfd38e2b1 100644 --- a/Lib/test/test_asyncio/test_events.py +++ b/Lib/test/test_asyncio/test_events.py @@ -205,8 +205,8 @@ def __init__(self, loop): self.disconnects = {fd: loop.create_future() for fd in range(3)} self.data = {1: b'', 2: b''} self.returncode = None - self.got_data = {1: asyncio.Event(loop=loop), - 2: asyncio.Event(loop=loop)} + self.got_data = {1: asyncio.Event(), + 2: asyncio.Event()} def connection_made(self, transport): self.transport = transport @@ -1736,20 +1736,19 @@ def test_subprocess_exec(self): connect = self.loop.subprocess_exec( functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) - self.assertEqual('CONNECTED', proto.state) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) + self.assertEqual('CONNECTED', proto.state) - stdin = transp.get_pipe_transport(0) - stdin.write(b'Python The Winner') - self.loop.run_until_complete(proto.got_data[1].wait()) - with test_utils.disable_logger(): - transp.close() - self.loop.run_until_complete(proto.completed) - self.check_killed(proto.returncode) - self.assertEqual(b'Python The Winner', proto.data[1]) + stdin = transp.get_pipe_transport(0) + stdin.write(b'Python The Winner') + self.loop.run_until_complete(proto.got_data[1].wait()) + with test_utils.disable_logger(): + transp.close() + self.loop.run_until_complete(proto.completed) + self.check_killed(proto.returncode) + self.assertEqual(b'Python The Winner', proto.data[1]) def test_subprocess_interactive(self): prog = os.path.join(os.path.dirname(__file__), 'echo.py') @@ -1758,51 +1757,48 @@ def test_subprocess_interactive(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) - self.assertEqual('CONNECTED', proto.state) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) + self.assertEqual('CONNECTED', proto.state) - stdin = transp.get_pipe_transport(0) - stdin.write(b'Python ') - self.loop.run_until_complete(proto.got_data[1].wait()) - proto.got_data[1].clear() - self.assertEqual(b'Python ', proto.data[1]) + stdin = transp.get_pipe_transport(0) + stdin.write(b'Python ') + self.loop.run_until_complete(proto.got_data[1].wait()) + proto.got_data[1].clear() + self.assertEqual(b'Python ', proto.data[1]) - stdin.write(b'The Winner') - self.loop.run_until_complete(proto.got_data[1].wait()) - self.assertEqual(b'Python The Winner', proto.data[1]) + stdin.write(b'The Winner') + self.loop.run_until_complete(proto.got_data[1].wait()) + self.assertEqual(b'Python The Winner', proto.data[1]) - with test_utils.disable_logger(): - transp.close() - self.loop.run_until_complete(proto.completed) - self.check_killed(proto.returncode) + with test_utils.disable_logger(): + transp.close() + self.loop.run_until_complete(proto.completed) + self.check_killed(proto.returncode) def test_subprocess_shell(self): - with self.assertWarns(DeprecationWarning): - connect = self.loop.subprocess_shell( - functools.partial(MySubprocessProtocol, self.loop), - 'echo Python') - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + connect = self.loop.subprocess_shell( + functools.partial(MySubprocessProtocol, self.loop), + 'echo Python') + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - transp.get_pipe_transport(0).close() - self.loop.run_until_complete(proto.completed) - self.assertEqual(0, proto.returncode) - self.assertTrue(all(f.done() for f in proto.disconnects.values())) - self.assertEqual(proto.data[1].rstrip(b'\r\n'), b'Python') - self.assertEqual(proto.data[2], b'') - transp.close() + transp.get_pipe_transport(0).close() + self.loop.run_until_complete(proto.completed) + self.assertEqual(0, proto.returncode) + self.assertTrue(all(f.done() for f in proto.disconnects.values())) + self.assertEqual(proto.data[1].rstrip(b'\r\n'), b'Python') + self.assertEqual(proto.data[2], b'') + transp.close() def test_subprocess_exitcode(self): connect = self.loop.subprocess_shell( functools.partial(MySubprocessProtocol, self.loop), 'exit 7', stdin=None, stdout=None, stderr=None) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) + transp, proto = self.loop.run_until_complete(connect) self.assertIsInstance(proto, MySubprocessProtocol) self.loop.run_until_complete(proto.completed) self.assertEqual(7, proto.returncode) @@ -1812,8 +1808,7 @@ def test_subprocess_close_after_finish(self): connect = self.loop.subprocess_shell( functools.partial(MySubprocessProtocol, self.loop), 'exit 7', stdin=None, stdout=None, stderr=None) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) + transp, proto = self.loop.run_until_complete(connect) self.assertIsInstance(proto, MySubprocessProtocol) self.assertIsNone(transp.get_pipe_transport(0)) self.assertIsNone(transp.get_pipe_transport(1)) @@ -1829,15 +1824,14 @@ def test_subprocess_kill(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - transp.kill() - self.loop.run_until_complete(proto.completed) - self.check_killed(proto.returncode) - transp.close() + transp.kill() + self.loop.run_until_complete(proto.completed) + self.check_killed(proto.returncode) + transp.close() def test_subprocess_terminate(self): prog = os.path.join(os.path.dirname(__file__), 'echo.py') @@ -1846,15 +1840,14 @@ def test_subprocess_terminate(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - transp.terminate() - self.loop.run_until_complete(proto.completed) - self.check_terminated(proto.returncode) - transp.close() + transp.terminate() + self.loop.run_until_complete(proto.completed) + self.check_terminated(proto.returncode) + transp.close() @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP") def test_subprocess_send_signal(self): @@ -1869,15 +1862,14 @@ def test_subprocess_send_signal(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - transp.send_signal(signal.SIGHUP) - self.loop.run_until_complete(proto.completed) - self.assertEqual(-signal.SIGHUP, proto.returncode) - transp.close() + transp.send_signal(signal.SIGHUP) + self.loop.run_until_complete(proto.completed) + self.assertEqual(-signal.SIGHUP, proto.returncode) + transp.close() finally: signal.signal(signal.SIGHUP, old_handler) @@ -1888,20 +1880,19 @@ def test_subprocess_stderr(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - stdin = transp.get_pipe_transport(0) - stdin.write(b'test') + stdin = transp.get_pipe_transport(0) + stdin.write(b'test') - self.loop.run_until_complete(proto.completed) + self.loop.run_until_complete(proto.completed) - transp.close() - self.assertEqual(b'OUT:test', proto.data[1]) - self.assertTrue(proto.data[2].startswith(b'ERR:test'), proto.data[2]) - self.assertEqual(0, proto.returncode) + transp.close() + self.assertEqual(b'OUT:test', proto.data[1]) + self.assertTrue(proto.data[2].startswith(b'ERR:test'), proto.data[2]) + self.assertEqual(0, proto.returncode) def test_subprocess_stderr_redirect_to_stdout(self): prog = os.path.join(os.path.dirname(__file__), 'echo2.py') @@ -1910,23 +1901,22 @@ def test_subprocess_stderr_redirect_to_stdout(self): functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog, stderr=subprocess.STDOUT) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - stdin = transp.get_pipe_transport(0) - self.assertIsNotNone(transp.get_pipe_transport(1)) - self.assertIsNone(transp.get_pipe_transport(2)) + stdin = transp.get_pipe_transport(0) + self.assertIsNotNone(transp.get_pipe_transport(1)) + self.assertIsNone(transp.get_pipe_transport(2)) - stdin.write(b'test') - self.loop.run_until_complete(proto.completed) - self.assertTrue(proto.data[1].startswith(b'OUT:testERR:test'), - proto.data[1]) - self.assertEqual(b'', proto.data[2]) + stdin.write(b'test') + self.loop.run_until_complete(proto.completed) + self.assertTrue(proto.data[1].startswith(b'OUT:testERR:test'), + proto.data[1]) + self.assertEqual(b'', proto.data[2]) - transp.close() - self.assertEqual(0, proto.returncode) + transp.close() + self.assertEqual(0, proto.returncode) def test_subprocess_close_client_stream(self): prog = os.path.join(os.path.dirname(__file__), 'echo3.py') @@ -1934,33 +1924,32 @@ def test_subprocess_close_client_stream(self): connect = self.loop.subprocess_exec( functools.partial(MySubprocessProtocol, self.loop), sys.executable, prog) - with self.assertWarns(DeprecationWarning): - transp, proto = self.loop.run_until_complete(connect) - self.assertIsInstance(proto, MySubprocessProtocol) - self.loop.run_until_complete(proto.connected) + transp, proto = self.loop.run_until_complete(connect) + self.assertIsInstance(proto, MySubprocessProtocol) + self.loop.run_until_complete(proto.connected) - stdin = transp.get_pipe_transport(0) - stdout = transp.get_pipe_transport(1) - stdin.write(b'test') - self.loop.run_until_complete(proto.got_data[1].wait()) - self.assertEqual(b'OUT:test', proto.data[1]) + stdin = transp.get_pipe_transport(0) + stdout = transp.get_pipe_transport(1) + stdin.write(b'test') + self.loop.run_until_complete(proto.got_data[1].wait()) + self.assertEqual(b'OUT:test', proto.data[1]) - stdout.close() - self.loop.run_until_complete(proto.disconnects[1]) - stdin.write(b'xxx') - self.loop.run_until_complete(proto.got_data[2].wait()) - if sys.platform != 'win32': - self.assertEqual(b'ERR:BrokenPipeError', proto.data[2]) - else: - # After closing the read-end of a pipe, writing to the - # write-end using os.write() fails with errno==EINVAL and - # GetLastError()==ERROR_INVALID_NAME on Windows!?! (Using - # WriteFile() we get ERROR_BROKEN_PIPE as expected.) - self.assertEqual(b'ERR:OSError', proto.data[2]) - with test_utils.disable_logger(): - transp.close() - self.loop.run_until_complete(proto.completed) - self.check_killed(proto.returncode) + stdout.close() + self.loop.run_until_complete(proto.disconnects[1]) + stdin.write(b'xxx') + self.loop.run_until_complete(proto.got_data[2].wait()) + if sys.platform != 'win32': + self.assertEqual(b'ERR:BrokenPipeError', proto.data[2]) + else: + # After closing the read-end of a pipe, writing to the + # write-end using os.write() fails with errno==EINVAL and + # GetLastError()==ERROR_INVALID_NAME on Windows!?! (Using + # WriteFile() we get ERROR_BROKEN_PIPE as expected.) + self.assertEqual(b'ERR:OSError', proto.data[2]) + with test_utils.disable_logger(): + transp.close() + self.loop.run_until_complete(proto.completed) + self.check_killed(proto.returncode) def test_subprocess_wait_no_same_group(self): # start the new process in a new session diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py index 5c9aaa82c311a5..81e888fbce6dbb 100644 --- a/Lib/test/test_asyncio/test_queues.py +++ b/Lib/test/test_asyncio/test_queues.py @@ -301,11 +301,12 @@ async def producer(queue, num_items): with self.assertWarns(DeprecationWarning): q = asyncio.Queue(queue_size, loop=self.loop) - self.loop.run_until_complete( - asyncio.gather(producer(q, producer_num_items), - consumer(q, producer_num_items), - loop=self.loop), - ) + with self.assertWarns(DeprecationWarning): + self.loop.run_until_complete( + asyncio.gather(producer(q, producer_num_items), + consumer(q, producer_num_items), + loop=self.loop), + ) def test_cancelled_getters_not_being_held_in_self_getters(self): def a_generator(): @@ -555,8 +556,9 @@ async def getter(): t1 = putter(1) t2 = putter(2) t3 = putter(3) - self.loop.run_until_complete( - asyncio.gather(getter(), t0, t1, t2, t3, loop=self.loop)) + with self.assertWarns(DeprecationWarning): + self.loop.run_until_complete( + asyncio.gather(getter(), t0, t1, t2, t3, loop=self.loop)) def test_cancelled_puts_not_being_held_in_self_putters(self): def a_generator(): diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py index d2d78033aa481a..5e14b62be1845b 100644 --- a/Lib/test/test_asyncio/test_tasks.py +++ b/Lib/test/test_asyncio/test_tasks.py @@ -1606,8 +1606,9 @@ async def foo(): for f in asyncio.as_completed([b, c, a], loop=loop): values.append(await f) return values - with self.assertWarns(DeprecationWarning): + with self.assertWarns(DeprecationWarning) as w: res = loop.run_until_complete(self.new_task(loop, foo())) + self.assertEqual(w.warnings[0].filename, __file__) self.assertAlmostEqual(0.15, loop.time()) self.assertTrue('a' in res[:2]) self.assertTrue('b' in res[:2]) @@ -3348,7 +3349,8 @@ def test_constructor_heterogenous_futures(self): with self.assertRaises(ValueError): asyncio.gather(fut1, fut2) with self.assertRaises(ValueError): - asyncio.gather(fut1, loop=self.other_loop) + with self.assertWarns(DeprecationWarning): + asyncio.gather(fut1, loop=self.other_loop) def test_constructor_homogenous_futures(self): children = [self.other_loop.create_future() for i in range(3)] @@ -3356,7 +3358,8 @@ def test_constructor_homogenous_futures(self): self.assertIs(fut._loop, self.other_loop) self._run_loop(self.other_loop) self.assertFalse(fut.done()) - fut = asyncio.gather(*children, loop=self.other_loop) + with self.assertWarns(DeprecationWarning): + fut = asyncio.gather(*children, loop=self.other_loop) self.assertIs(fut._loop, self.other_loop) self._run_loop(self.other_loop) self.assertFalse(fut.done()) @@ -3429,7 +3432,8 @@ async def coro(): self.set_event_loop(self.other_loop, cleanup=False) gen3 = coro() gen4 = coro() - fut2 = asyncio.gather(gen3, gen4, loop=self.other_loop) + with self.assertWarns(DeprecationWarning): + fut2 = asyncio.gather(gen3, gen4, loop=self.other_loop) self.assertIs(fut2._loop, self.other_loop) self.other_loop.run_until_complete(fut2) @@ -3439,7 +3443,8 @@ def test_duplicate_coroutines(self): def coro(s): return s c = coro('abc') - fut = asyncio.gather(c, c, coro('def'), c, loop=self.one_loop) + with self.assertWarns(DeprecationWarning): + fut = asyncio.gather(c, c, coro('def'), c, loop=self.one_loop) self._run_loop(self.one_loop) self.assertEqual(fut.result(), ['abc', 'abc', 'def', 'abc']) @@ -3459,7 +3464,7 @@ async def inner(): async def outer(): nonlocal proof, gatherer - gatherer = asyncio.gather(child1, child2, loop=self.one_loop) + gatherer = asyncio.gather(child1, child2) await gatherer proof += 100 @@ -3486,7 +3491,7 @@ async def inner(f): b = self.one_loop.create_future() async def outer(): - await asyncio.gather(inner(a), inner(b), loop=self.one_loop) + await asyncio.gather(inner(a), inner(b)) f = asyncio.ensure_future(outer(), loop=self.one_loop) test_utils.run_briefly(self.one_loop) @@ -3705,7 +3710,7 @@ def coro2(): return 'ok2' async def inner(): - return await asyncio.gather(coro1(), coro2(), loop=self.loop) + return await asyncio.gather(coro1(), coro2()) result = self.loop.run_until_complete(inner()) self.assertEqual(['ok1', 'ok2'], result) diff --git a/Misc/NEWS.d/next/Library/2021-09-04-13-10-25.bpo-45097.5J4IC-.rst b/Misc/NEWS.d/next/Library/2021-09-04-13-10-25.bpo-45097.5J4IC-.rst new file mode 100644 index 00000000000000..1788300d7fa143 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-09-04-13-10-25.bpo-45097.5J4IC-.rst @@ -0,0 +1,2 @@ +Remove deprecation warnings about the loop argument in :mod:`asyncio` +incorrectly emitted in cases when the user does not pass the loop argument. From webhook-mailer at python.org Sat Sep 4 13:55:24 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sat, 04 Sep 2021 17:55:24 -0000 Subject: [Python-checkins] bpo-45097: Add more tests for shutdown_asyncgens() (GH-28154) Message-ID: https://github.com/python/cpython/commit/c2970fdec52788b6d9ff419ab7e31f255d87433d commit: c2970fdec52788b6d9ff419ab7e31f255d87433d branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-04T20:55:20+03:00 summary: bpo-45097: Add more tests for shutdown_asyncgens() (GH-28154) files: M Lib/test/test_asyncgen.py diff --git a/Lib/test/test_asyncgen.py b/Lib/test/test_asyncgen.py index a557cb570514d..bc0ae8f532154 100644 --- a/Lib/test/test_asyncgen.py +++ b/Lib/test/test_asyncgen.py @@ -1289,6 +1289,85 @@ async def wait(): self.assertEqual(finalized, 2) + def test_async_gen_asyncio_shutdown_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + yield 1 + yield 2 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + self.assertEqual(messages, []) + + def test_async_gen_asyncio_shutdown_exception_01(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + message, = messages + self.assertEqual(message['asyncgen'], it) + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('an error occurred during closing of asynchronous generator', + message['message']) + + def test_async_gen_asyncio_shutdown_exception_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in async_iterate(): + break + gc_collect() + + asyncio.run(main()) + + message, = messages + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('unhandled exception during asyncio.run() shutdown', + message['message']) + def test_async_gen_expression_01(self): async def arange(n): for i in range(n): From webhook-mailer at python.org Sat Sep 4 14:02:34 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sat, 04 Sep 2021 18:02:34 -0000 Subject: [Python-checkins] bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) Message-ID: https://github.com/python/cpython/commit/936f6a16b9ef85bd56b18a247b962801e954c30e commit: 936f6a16b9ef85bd56b18a247b962801e954c30e branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-04T21:02:21+03:00 summary: bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) It happened with fast range iterator when the calculated stop = start + step * len was out of the C long range. files: A Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst M Lib/test/test_range.py M Objects/rangeobject.c diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py index 897162b2b17457..851ad5b7c2f485 100644 --- a/Lib/test/test_range.py +++ b/Lib/test/test_range.py @@ -375,8 +375,14 @@ def test_pickling(self): def test_iterator_pickling(self): testcases = [(13,), (0, 11), (-22, 10), (20, 3, -1), (13, 21, 3), - (-2, 2, 2), (2**31-3, 2**31-1), (2**33, 2**33+2), - (2**63-3, 2**63-1), (2**65, 2**65+2)] + (-2, 2, 2)] + for M in 2**31, 2**63: + testcases += [ + (M-3, M-1), (4*M, 4*M+2), + (M-2, M-1, 2), (-M+1, -M, -2), + (1, 2, M-1), (-1, -2, -M), + (1, M-1, M-1), (-1, -M, -M), + ] for proto in range(pickle.HIGHEST_PROTOCOL + 1): for t in testcases: with self.subTest(proto=proto, t=t): diff --git a/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst new file mode 100644 index 00000000000000..dec8c88b155888 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst @@ -0,0 +1 @@ +Fix integer overflow in pickling and copying the range iterator. diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 5c3230d860f8f1..a848d67a65152e 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -915,22 +915,14 @@ get_len_of_range(long lo, long hi, long step) is not representable as a C long, OverflowError is raised. */ static PyObject * -fast_range_iter(long start, long stop, long step) +fast_range_iter(long start, long stop, long step, long len) { rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type); - unsigned long ulen; if (it == NULL) return NULL; it->start = start; it->step = step; - ulen = get_len_of_range(start, stop, step); - if (ulen > (unsigned long)LONG_MAX) { - Py_DECREF(it); - PyErr_SetString(PyExc_OverflowError, - "range too large to represent as a range_iterator"); - return NULL; - } - it->len = (long)ulen; + it->len = len; it->index = 0; return (PyObject *)it; } @@ -1092,7 +1084,7 @@ range_iter(PyObject *seq) rangeobject *r = (rangeobject *)seq; longrangeiterobject *it; long lstart, lstop, lstep; - PyObject *int_it; + unsigned long ulen; assert(PyRange_Check(seq)); @@ -1113,12 +1105,22 @@ range_iter(PyObject *seq) PyErr_Clear(); goto long_range; } - int_it = fast_range_iter(lstart, lstop, lstep); - if (int_it == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) { - PyErr_Clear(); + ulen = get_len_of_range(lstart, lstop, lstep); + if (ulen > (unsigned long)LONG_MAX) { goto long_range; } - return (PyObject *)int_it; + /* check for potential overflow of lstart + ulen * lstep */ + if (ulen) { + if (lstep > 0) { + if (lstop > LONG_MAX - (lstep - 1)) + goto long_range; + } + else { + if (lstop < LONG_MIN + (-1 - lstep)) + goto long_range; + } + } + return fast_range_iter(lstart, lstop, lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); @@ -1204,7 +1206,7 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored)) new_stop = lstart - lstep; new_start = (long)(new_stop + ulen * lstep); - return fast_range_iter(new_start, new_stop, -lstep); + return fast_range_iter(new_start, new_stop, -lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); From webhook-mailer at python.org Sat Sep 4 14:58:21 2021 From: webhook-mailer at python.org (ericvsmith) Date: Sat, 04 Sep 2021 18:58:21 -0000 Subject: [Python-checkins] Add What's New for dataclass keyword-only parameters. (GH-28158) Message-ID: https://github.com/python/cpython/commit/a1ba3597d2d2dd5e5d73f42b1174ab5e0a2cd224 commit: a1ba3597d2d2dd5e5d73f42b1174ab5e0a2cd224 branch: main author: Eric V. Smith committer: ericvsmith date: 2021-09-04T14:58:17-04:00 summary: Add What's New for dataclass keyword-only parameters. (GH-28158) files: M Doc/whatsnew/3.10.rst diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 70c5140ce13b5..19ef629b45f48 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -983,9 +983,68 @@ they are provided by the underlying curses library. dataclasses ----------- -Add ``slots`` parameter in :func:`dataclasses.dataclass` decorator. +__slots__ +~~~~~~~~~ + +Added ``slots`` parameter in :func:`dataclasses.dataclass` decorator. (Contributed by Yurii Karabas in :issue:`42269`) +Keyword-only fields +~~~~~~~~~~~~~~~~~~~ + +dataclassses now supports fields that are keyword-only in the +generated __init__ method. There are a number of ways of specifying +keyword-only fields. + +You can say that every field is keyword-only: + +.. code-block:: python + + from dataclasses import dataclass + + @dataclass(kw_only=True) + class Birthday: + name: str + birthday: datetime.date + +Both ``name`` and ``birthday`` are keyword-only parameters to the +generated __init__ method. + +You can specify keyword-only on a per-field basis: + +.. code-block:: python + + from dataclasses import dataclass + + @dataclass + class Birthday: + name: str + birthday: datetime.date = field(kw_only=True) + +Here only ``birthday`` is keyword-only. If you set ``kw_only`` on +individual fields, be aware that there are rules about re-ordering +fields due to keyword-only fields needing to follow non-keyword-only +fields. See the full dataclasses documentation for details. + +You can also specify that all fields following a KW_ONLY marker are +keyword-only. This will probably be the most common usage: + +.. code-block:: python + + from dataclasses import dataclass, KW_ONLY + + @dataclass + class Point: + x: float + y: float + _: KW_ONLY + z: float = 0.0 + t: float = 0.0 + +Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and +``y`` are not. +(Contributed by Eric V. Smith in :issue:`43532`) + .. _distutils-deprecated: distutils From webhook-mailer at python.org Sat Sep 4 14:59:33 2021 From: webhook-mailer at python.org (ericvsmith) Date: Sat, 04 Sep 2021 18:59:33 -0000 Subject: [Python-checkins] Add What's New for dataclass keyword-only parameters. (GH-28158) (GH-28163) Message-ID: https://github.com/python/cpython/commit/9438443a5fff6f96af48ea0eda0ca4e3fa67ae52 commit: 9438443a5fff6f96af48ea0eda0ca4e3fa67ae52 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ericvsmith date: 2021-09-04T14:59:29-04:00 summary: Add What's New for dataclass keyword-only parameters. (GH-28158) (GH-28163) (cherry picked from commit a1ba3597d2d2dd5e5d73f42b1174ab5e0a2cd224) Co-authored-by: Eric V. Smith Co-authored-by: Eric V. Smith files: M Doc/whatsnew/3.10.rst diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst index 129c0f77bf895..068eb7676324d 100644 --- a/Doc/whatsnew/3.10.rst +++ b/Doc/whatsnew/3.10.rst @@ -983,9 +983,68 @@ they are provided by the underlying curses library. dataclasses ----------- -Add ``slots`` parameter in :func:`dataclasses.dataclass` decorator. +__slots__ +~~~~~~~~~ + +Added ``slots`` parameter in :func:`dataclasses.dataclass` decorator. (Contributed by Yurii Karabas in :issue:`42269`) +Keyword-only fields +~~~~~~~~~~~~~~~~~~~ + +dataclassses now supports fields that are keyword-only in the +generated __init__ method. There are a number of ways of specifying +keyword-only fields. + +You can say that every field is keyword-only: + +.. code-block:: python + + from dataclasses import dataclass + + @dataclass(kw_only=True) + class Birthday: + name: str + birthday: datetime.date + +Both ``name`` and ``birthday`` are keyword-only parameters to the +generated __init__ method. + +You can specify keyword-only on a per-field basis: + +.. code-block:: python + + from dataclasses import dataclass + + @dataclass + class Birthday: + name: str + birthday: datetime.date = field(kw_only=True) + +Here only ``birthday`` is keyword-only. If you set ``kw_only`` on +individual fields, be aware that there are rules about re-ordering +fields due to keyword-only fields needing to follow non-keyword-only +fields. See the full dataclasses documentation for details. + +You can also specify that all fields following a KW_ONLY marker are +keyword-only. This will probably be the most common usage: + +.. code-block:: python + + from dataclasses import dataclass, KW_ONLY + + @dataclass + class Point: + x: float + y: float + _: KW_ONLY + z: float = 0.0 + t: float = 0.0 + +Here, ``z`` and ``t`` are keyword-only parameters, while ``x`` and +``y`` are not. +(Contributed by Eric V. Smith in :issue:`43532`) + .. _distutils-deprecated: distutils From webhook-mailer at python.org Sat Sep 4 16:38:05 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sat, 04 Sep 2021 20:38:05 -0000 Subject: [Python-checkins] [3.10] bpo-45097: Add more tests for shutdown_asyncgens() (GH-28154) (GH-28159) Message-ID: https://github.com/python/cpython/commit/2ad114ddffbeeef1d20f26571b85a66974295667 commit: 2ad114ddffbeeef1d20f26571b85a66974295667 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: serhiy-storchaka date: 2021-09-04T23:37:56+03:00 summary: [3.10] bpo-45097: Add more tests for shutdown_asyncgens() (GH-28154) (GH-28159) * bpo-45097: Add more tests for shutdown_asyncgens() (GH-28154) (cherry picked from commit c2970fdec52788b6d9ff419ab7e31f255d87433d) Co-authored-by: Serhiy Storchaka files: M Lib/test/test_asyncgen.py diff --git a/Lib/test/test_asyncgen.py b/Lib/test/test_asyncgen.py index 77c15c02bc8914..0814451d317571 100644 --- a/Lib/test/test_asyncgen.py +++ b/Lib/test/test_asyncgen.py @@ -3,6 +3,7 @@ import unittest from test.support.import_helper import import_module +from test.support import gc_collect asyncio = import_module("asyncio") @@ -1287,6 +1288,85 @@ async def wait(): self.assertEqual(finalized, 2) + def test_async_gen_asyncio_shutdown_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + yield 1 + yield 2 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + self.assertEqual(messages, []) + + def test_async_gen_asyncio_shutdown_exception_01(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + it = async_iterate() + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in it: + break + + asyncio.run(main()) + + message, = messages + self.assertEqual(message['asyncgen'], it) + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('an error occurred during closing of asynchronous generator', + message['message']) + + def test_async_gen_asyncio_shutdown_exception_02(self): + messages = [] + + def exception_handler(loop, context): + messages.append(context) + + async def async_iterate(): + try: + yield 1 + yield 2 + finally: + 1/0 + + async def main(): + loop = asyncio.get_running_loop() + loop.set_exception_handler(exception_handler) + + async for i in async_iterate(): + break + gc_collect() + + asyncio.run(main()) + + message, = messages + self.assertIsInstance(message['exception'], ZeroDivisionError) + self.assertIn('unhandled exception during asyncio.run() shutdown', + message['message']) + def test_async_gen_expression_01(self): async def arange(n): for i in range(n): From webhook-mailer at python.org Sat Sep 4 16:39:38 2021 From: webhook-mailer at python.org (miss-islington) Date: Sat, 04 Sep 2021 20:39:38 -0000 Subject: [Python-checkins] bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) Message-ID: https://github.com/python/cpython/commit/ed9f927527e100b6d1d5758fdd9fc20b313af226 commit: ed9f927527e100b6d1d5758fdd9fc20b313af226 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-09-04T13:39:30-07:00 summary: bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) It happened with fast range iterator when the calculated stop = start + step * len was out of the C long range. (cherry picked from commit 936f6a16b9ef85bd56b18a247b962801e954c30e) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst M Lib/test/test_range.py M Objects/rangeobject.c diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py index 897162b2b17457..851ad5b7c2f485 100644 --- a/Lib/test/test_range.py +++ b/Lib/test/test_range.py @@ -375,8 +375,14 @@ def test_pickling(self): def test_iterator_pickling(self): testcases = [(13,), (0, 11), (-22, 10), (20, 3, -1), (13, 21, 3), - (-2, 2, 2), (2**31-3, 2**31-1), (2**33, 2**33+2), - (2**63-3, 2**63-1), (2**65, 2**65+2)] + (-2, 2, 2)] + for M in 2**31, 2**63: + testcases += [ + (M-3, M-1), (4*M, 4*M+2), + (M-2, M-1, 2), (-M+1, -M, -2), + (1, 2, M-1), (-1, -2, -M), + (1, M-1, M-1), (-1, -M, -M), + ] for proto in range(pickle.HIGHEST_PROTOCOL + 1): for t in testcases: with self.subTest(proto=proto, t=t): diff --git a/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst new file mode 100644 index 00000000000000..dec8c88b155888 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst @@ -0,0 +1 @@ +Fix integer overflow in pickling and copying the range iterator. diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index 5c3230d860f8f1..a848d67a65152e 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -915,22 +915,14 @@ get_len_of_range(long lo, long hi, long step) is not representable as a C long, OverflowError is raised. */ static PyObject * -fast_range_iter(long start, long stop, long step) +fast_range_iter(long start, long stop, long step, long len) { rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type); - unsigned long ulen; if (it == NULL) return NULL; it->start = start; it->step = step; - ulen = get_len_of_range(start, stop, step); - if (ulen > (unsigned long)LONG_MAX) { - Py_DECREF(it); - PyErr_SetString(PyExc_OverflowError, - "range too large to represent as a range_iterator"); - return NULL; - } - it->len = (long)ulen; + it->len = len; it->index = 0; return (PyObject *)it; } @@ -1092,7 +1084,7 @@ range_iter(PyObject *seq) rangeobject *r = (rangeobject *)seq; longrangeiterobject *it; long lstart, lstop, lstep; - PyObject *int_it; + unsigned long ulen; assert(PyRange_Check(seq)); @@ -1113,12 +1105,22 @@ range_iter(PyObject *seq) PyErr_Clear(); goto long_range; } - int_it = fast_range_iter(lstart, lstop, lstep); - if (int_it == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) { - PyErr_Clear(); + ulen = get_len_of_range(lstart, lstop, lstep); + if (ulen > (unsigned long)LONG_MAX) { goto long_range; } - return (PyObject *)int_it; + /* check for potential overflow of lstart + ulen * lstep */ + if (ulen) { + if (lstep > 0) { + if (lstop > LONG_MAX - (lstep - 1)) + goto long_range; + } + else { + if (lstop < LONG_MIN + (-1 - lstep)) + goto long_range; + } + } + return fast_range_iter(lstart, lstop, lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); @@ -1204,7 +1206,7 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored)) new_stop = lstart - lstep; new_start = (long)(new_stop + ulen * lstep); - return fast_range_iter(new_start, new_stop, -lstep); + return fast_range_iter(new_start, new_stop, -lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); From webhook-mailer at python.org Sat Sep 4 16:39:52 2021 From: webhook-mailer at python.org (miss-islington) Date: Sat, 04 Sep 2021 20:39:52 -0000 Subject: [Python-checkins] bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) Message-ID: https://github.com/python/cpython/commit/fecd17fbcb68138c6535130dfca2173472d669cd commit: fecd17fbcb68138c6535130dfca2173472d669cd 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-09-04T13:39:47-07:00 summary: bpo-45030: Fix integer overflow in __reduce__ of the range iterator (GH-28000) It happened with fast range iterator when the calculated stop = start + step * len was out of the C long range. (cherry picked from commit 936f6a16b9ef85bd56b18a247b962801e954c30e) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst M Lib/test/test_range.py M Objects/rangeobject.c diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py index 16b0fc060aaed7..d238f2a956171e 100644 --- a/Lib/test/test_range.py +++ b/Lib/test/test_range.py @@ -375,8 +375,14 @@ def test_pickling(self): def test_iterator_pickling(self): testcases = [(13,), (0, 11), (-22, 10), (20, 3, -1), (13, 21, 3), - (-2, 2, 2), (2**31-3, 2**31-1), (2**33, 2**33+2), - (2**63-3, 2**63-1), (2**65, 2**65+2)] + (-2, 2, 2)] + for M in 2**31, 2**63: + testcases += [ + (M-3, M-1), (4*M, 4*M+2), + (M-2, M-1, 2), (-M+1, -M, -2), + (1, 2, M-1), (-1, -2, -M), + (1, M-1, M-1), (-1, -M, -M), + ] for proto in range(pickle.HIGHEST_PROTOCOL + 1): for t in testcases: with self.subTest(proto=proto, t=t): diff --git a/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst new file mode 100644 index 00000000000000..dec8c88b155888 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-27-19-01-23.bpo-45030.tAmBbY.rst @@ -0,0 +1 @@ +Fix integer overflow in pickling and copying the range iterator. diff --git a/Objects/rangeobject.c b/Objects/rangeobject.c index dd027936589acd..d7076ac82467be 100644 --- a/Objects/rangeobject.c +++ b/Objects/rangeobject.c @@ -895,22 +895,14 @@ get_len_of_range(long lo, long hi, long step) is not representable as a C long, OverflowError is raised. */ static PyObject * -fast_range_iter(long start, long stop, long step) +fast_range_iter(long start, long stop, long step, long len) { rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type); - unsigned long ulen; if (it == NULL) return NULL; it->start = start; it->step = step; - ulen = get_len_of_range(start, stop, step); - if (ulen > (unsigned long)LONG_MAX) { - Py_DECREF(it); - PyErr_SetString(PyExc_OverflowError, - "range too large to represent as a range_iterator"); - return NULL; - } - it->len = (long)ulen; + it->len = len; it->index = 0; return (PyObject *)it; } @@ -1071,7 +1063,7 @@ range_iter(PyObject *seq) rangeobject *r = (rangeobject *)seq; longrangeiterobject *it; long lstart, lstop, lstep; - PyObject *int_it; + unsigned long ulen; assert(PyRange_Check(seq)); @@ -1092,12 +1084,22 @@ range_iter(PyObject *seq) PyErr_Clear(); goto long_range; } - int_it = fast_range_iter(lstart, lstop, lstep); - if (int_it == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) { - PyErr_Clear(); + ulen = get_len_of_range(lstart, lstop, lstep); + if (ulen > (unsigned long)LONG_MAX) { goto long_range; } - return (PyObject *)int_it; + /* check for potential overflow of lstart + ulen * lstep */ + if (ulen) { + if (lstep > 0) { + if (lstop > LONG_MAX - (lstep - 1)) + goto long_range; + } + else { + if (lstop < LONG_MIN + (-1 - lstep)) + goto long_range; + } + } + return fast_range_iter(lstart, lstop, lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); @@ -1183,7 +1185,7 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored)) new_stop = lstart - lstep; new_start = (long)(new_stop + ulen * lstep); - return fast_range_iter(new_start, new_stop, -lstep); + return fast_range_iter(new_start, new_stop, -lstep, (long)ulen); long_range: it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type); From webhook-mailer at python.org Sat Sep 4 16:42:44 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sat, 04 Sep 2021 20:42:44 -0000 Subject: [Python-checkins] bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) Message-ID: https://github.com/python/cpython/commit/dd7b816ac87e468e2fa65ce83c2a03fe1da8503e commit: dd7b816ac87e468e2fa65ce83c2a03fe1da8503e branch: main author: Nikita Sobolev committer: serhiy-storchaka date: 2021-09-04T23:42:36+03:00 summary: bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) Co-authored-by: Serhiy Storchaka files: A Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst M Lib/test/_test_multiprocessing.py M Lib/test/support/hashlib_helper.py M Lib/test/test_tools/test_md5sum.py diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 7e0b757109766..0f4e4fd910ba3 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3773,6 +3773,7 @@ def _attach_existing_shmem_then_write(shmem_name_or_obj, binary_data): local_sms.buf[:len(binary_data)] = binary_data local_sms.close() + @unittest.skipIf(sys.platform == "win32", "test is broken on Windows") def test_shared_memory_basics(self): sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512) self.addCleanup(sms.unlink) diff --git a/Lib/test/support/hashlib_helper.py b/Lib/test/support/hashlib_helper.py index a28132a565a0b..a4e6c92203ab5 100644 --- a/Lib/test/support/hashlib_helper.py +++ b/Lib/test/support/hashlib_helper.py @@ -21,8 +21,21 @@ def requires_hashdigest(digestname, openssl=None, usedforsecurity=True): ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS ValueError: unsupported hash type md4 """ - def decorator(func): - @functools.wraps(func) + def decorator(func_or_class): + if isinstance(func_or_class, type): + setUpClass = func_or_class.__dict__.get('setUpClass') + if setUpClass is None: + def setUpClass(cls): + super(func_or_class, cls).setUpClass() + setUpClass.__qualname__ = func_or_class.__qualname__ + '.setUpClass' + setUpClass.__module__ = func_or_class.__module__ + else: + setUpClass = setUpClass.__func__ + setUpClass = classmethod(decorator(setUpClass)) + func_or_class.setUpClass = setUpClass + return func_or_class + + @functools.wraps(func_or_class) def wrapper(*args, **kwargs): try: if openssl and _hashlib is not None: @@ -33,6 +46,6 @@ def wrapper(*args, **kwargs): raise unittest.SkipTest( f"hash digest '{digestname}' is not available." ) - return func(*args, **kwargs) + return func_or_class(*args, **kwargs) return wrapper return decorator diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py index bfc1f287fff6e..92315f181c82c 100644 --- a/Lib/test/test_tools/test_md5sum.py +++ b/Lib/test/test_tools/test_md5sum.py @@ -1,5 +1,6 @@ """Tests for the md5sum script in the Tools directory.""" +import sys import os import unittest from test.support import os_helper @@ -15,8 +16,8 @@ class MD5SumTests(unittest.TestCase): @classmethod def setUpClass(cls): cls.script = os.path.join(scriptsdir, 'md5sum.py') - os.mkdir(os_helper.TESTFN) - cls.fodder = os.path.join(os_helper.TESTFN, 'md5sum.fodder') + os.mkdir(os_helper.TESTFN_ASCII) + cls.fodder = os.path.join(os_helper.TESTFN_ASCII, 'md5sum.fodder') with open(cls.fodder, 'wb') as f: f.write(b'md5sum\r\ntest file\r\n') cls.fodder_md5 = b'd38dae2eb1ab346a292ef6850f9e1a0d' @@ -24,7 +25,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - os_helper.rmtree(os_helper.TESTFN) + os_helper.rmtree(os_helper.TESTFN_ASCII) def test_noargs(self): rc, out, err = assert_python_ok(self.script) diff --git a/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst new file mode 100644 index 0000000000000..e2c0dffced96e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst @@ -0,0 +1 @@ +Fixes that test classes decorated with ``@hashlib_helper.requires_hashdigest`` were skipped all the time. \ No newline at end of file From webhook-mailer at python.org Sat Sep 4 17:04:52 2021 From: webhook-mailer at python.org (miss-islington) Date: Sat, 04 Sep 2021 21:04:52 -0000 Subject: [Python-checkins] bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) Message-ID: https://github.com/python/cpython/commit/e5976dd2e6e966183da59df99978ebcb4b3a32df commit: e5976dd2e6e966183da59df99978ebcb4b3a32df 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-09-04T14:04:44-07:00 summary: bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) Co-authored-by: Serhiy Storchaka (cherry picked from commit dd7b816ac87e468e2fa65ce83c2a03fe1da8503e) Co-authored-by: Nikita Sobolev files: A Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst M Lib/test/_test_multiprocessing.py M Lib/test/support/hashlib_helper.py M Lib/test/test_tools/test_md5sum.py diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 4c4da24a30c371..a7cc1e5d09ca54 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3771,6 +3771,7 @@ def _attach_existing_shmem_then_write(shmem_name_or_obj, binary_data): local_sms.buf[:len(binary_data)] = binary_data local_sms.close() + @unittest.skipIf(sys.platform == "win32", "test is broken on Windows") def test_shared_memory_basics(self): sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512) self.addCleanup(sms.unlink) diff --git a/Lib/test/support/hashlib_helper.py b/Lib/test/support/hashlib_helper.py index a28132a565a0b5..a4e6c92203ab50 100644 --- a/Lib/test/support/hashlib_helper.py +++ b/Lib/test/support/hashlib_helper.py @@ -21,8 +21,21 @@ def requires_hashdigest(digestname, openssl=None, usedforsecurity=True): ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS ValueError: unsupported hash type md4 """ - def decorator(func): - @functools.wraps(func) + def decorator(func_or_class): + if isinstance(func_or_class, type): + setUpClass = func_or_class.__dict__.get('setUpClass') + if setUpClass is None: + def setUpClass(cls): + super(func_or_class, cls).setUpClass() + setUpClass.__qualname__ = func_or_class.__qualname__ + '.setUpClass' + setUpClass.__module__ = func_or_class.__module__ + else: + setUpClass = setUpClass.__func__ + setUpClass = classmethod(decorator(setUpClass)) + func_or_class.setUpClass = setUpClass + return func_or_class + + @functools.wraps(func_or_class) def wrapper(*args, **kwargs): try: if openssl and _hashlib is not None: @@ -33,6 +46,6 @@ def wrapper(*args, **kwargs): raise unittest.SkipTest( f"hash digest '{digestname}' is not available." ) - return func(*args, **kwargs) + return func_or_class(*args, **kwargs) return wrapper return decorator diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py index bfc1f287fff6e1..92315f181c82cd 100644 --- a/Lib/test/test_tools/test_md5sum.py +++ b/Lib/test/test_tools/test_md5sum.py @@ -1,5 +1,6 @@ """Tests for the md5sum script in the Tools directory.""" +import sys import os import unittest from test.support import os_helper @@ -15,8 +16,8 @@ class MD5SumTests(unittest.TestCase): @classmethod def setUpClass(cls): cls.script = os.path.join(scriptsdir, 'md5sum.py') - os.mkdir(os_helper.TESTFN) - cls.fodder = os.path.join(os_helper.TESTFN, 'md5sum.fodder') + os.mkdir(os_helper.TESTFN_ASCII) + cls.fodder = os.path.join(os_helper.TESTFN_ASCII, 'md5sum.fodder') with open(cls.fodder, 'wb') as f: f.write(b'md5sum\r\ntest file\r\n') cls.fodder_md5 = b'd38dae2eb1ab346a292ef6850f9e1a0d' @@ -24,7 +25,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - os_helper.rmtree(os_helper.TESTFN) + os_helper.rmtree(os_helper.TESTFN_ASCII) def test_noargs(self): rc, out, err = assert_python_ok(self.script) diff --git a/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst new file mode 100644 index 00000000000000..e2c0dffced96e7 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst @@ -0,0 +1 @@ +Fixes that test classes decorated with ``@hashlib_helper.requires_hashdigest`` were skipped all the time. \ No newline at end of file From webhook-mailer at python.org Sat Sep 4 18:00:29 2021 From: webhook-mailer at python.org (ned-deily) Date: Sat, 04 Sep 2021 22:00:29 -0000 Subject: [Python-checkins] 3.7.12 Message-ID: https://github.com/python/cpython/commit/1f97973f630fda109039b2a8c8024a70eb92932f commit: 1f97973f630fda109039b2a8c8024a70eb92932f branch: 3.7 author: Ned Deily committer: ned-deily date: 2021-09-03T23:49:21-04:00 summary: 3.7.12 files: A Misc/NEWS.d/3.7.12.rst D Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst D Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst D Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst M Include/patchlevel.h M Lib/pydoc_data/topics.py M README.rst diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 44524f666966e1..891f8e9f47fb6a 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -18,12 +18,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 7 -#define PY_MICRO_VERSION 11 +#define PY_MICRO_VERSION 12 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.7.11+" +#define PY_VERSION "3.7.12" /*--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 108e492ee75f8d..f0e0f6db6e9e62 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Mon Jun 28 12:37:39 2021 +# Autogenerated by Sphinx on Fri Sep 3 23:33:01 2021 topics = {'assert': 'The "assert" statement\n' '**********************\n' '\n' diff --git a/Misc/NEWS.d/3.7.12.rst b/Misc/NEWS.d/3.7.12.rst new file mode 100644 index 00000000000000..51f4c7c3d45b98 --- /dev/null +++ b/Misc/NEWS.d/3.7.12.rst @@ -0,0 +1,30 @@ +.. bpo: 44394 +.. date: 2021-06-29-02-45-53 +.. nonce: A220N1 +.. release date: 2021-09-03 +.. section: Security + +Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix +for the CVE-2013-0340 "Billion Laughs" vulnerability. This copy is most used +on Windows and macOS. + +.. + +.. bpo: 43124 +.. date: 2021-05-08-11-50-46 +.. nonce: 2CTM6M +.. section: Security + +Made the internal ``putcmd`` function in :mod:`smtplib` sanitize input for +presence of ``\r`` and ``\n`` characters to avoid (unlikely) command +injection. + +.. + +.. bpo: 45001 +.. date: 2021-08-26-16-25-48 +.. nonce: tn_dKp +.. section: Library + +Made email date parsing more robust against malformed input, namely a +whitespace-only ``Date:`` header. Patch by Wouter Bolsterlee. diff --git a/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst b/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst deleted file mode 100644 index 55cc409d0da30f..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made email date parsing more robust against malformed input, namely a -whitespace-only ``Date:`` header. Patch by Wouter Bolsterlee. diff --git a/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst b/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst deleted file mode 100644 index e897d6cd3641d7..00000000000000 --- a/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made the internal ``putcmd`` function in :mod:`smtplib` sanitize input for -presence of ``\r`` and ``\n`` characters to avoid (unlikely) command injection. diff --git a/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst b/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst deleted file mode 100644 index e32563d2535c7e..00000000000000 --- a/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix -for the CVE-2013-0340 "Billion Laughs" vulnerability. This copy is most used -on Windows and macOS. diff --git a/README.rst b/README.rst index 2f7b76e07e2f56..aafde33c9fbe0a 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -This is Python version 3.7.11+ -============================== +This is Python version 3.7.12 +============================= .. image:: https://travis-ci.org/python/cpython.svg?branch=3.7 :alt: CPython build status on Travis CI From webhook-mailer at python.org Sat Sep 4 18:00:30 2021 From: webhook-mailer at python.org (ned-deily) Date: Sat, 04 Sep 2021 22:00:30 -0000 Subject: [Python-checkins] 3.6.15 Message-ID: https://github.com/python/cpython/commit/b74b1f36993a4e1700869133f3be13dd60ef4e40 commit: b74b1f36993a4e1700869133f3be13dd60ef4e40 branch: 3.6 author: Ned Deily committer: ned-deily date: 2021-09-03T23:49:41-04:00 summary: 3.6.15 files: A Misc/NEWS.d/3.6.15.rst D Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst D Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst D Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst D Misc/NEWS.d/next/Tests/2019-12-04-17-08-55.bpo-38965.yqax3m.rst M Include/patchlevel.h M Lib/pydoc_data/topics.py M README.rst diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 5af2de3bc8c781..a5e83919aa8384 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -18,12 +18,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 6 -#define PY_MICRO_VERSION 14 +#define PY_MICRO_VERSION 15 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.6.14+" +#define PY_VERSION "3.6.15" /*--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 9c57887111a140..5c86fd40a7116f 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Autogenerated by Sphinx on Mon Jun 28 12:38:05 2021 +# Autogenerated by Sphinx on Fri Sep 3 23:33:12 2021 topics = {'assert': 'The "assert" statement\n' '**********************\n' '\n' diff --git a/Misc/NEWS.d/3.6.15.rst b/Misc/NEWS.d/3.6.15.rst new file mode 100644 index 00000000000000..a6df7c854cc4af --- /dev/null +++ b/Misc/NEWS.d/3.6.15.rst @@ -0,0 +1,41 @@ +.. bpo: 44394 +.. date: 2021-06-29-02-45-53 +.. nonce: A220N1 +.. release date: 2021-09-03 +.. section: Security + +Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix +for the CVE-2013-0340 "Billion Laughs" vulnerability. This copy is most used +on Windows and macOS. + +.. + +.. bpo: 43124 +.. date: 2021-05-08-11-50-46 +.. nonce: 2CTM6M +.. section: Security + +Made the internal ``putcmd`` function in :mod:`smtplib` sanitize input for +presence of ``\r`` and ``\n`` characters to avoid (unlikely) command +injection. + +.. + +.. bpo: 45001 +.. date: 2021-08-26-16-25-48 +.. nonce: tn_dKp +.. section: Library + +Made email date parsing more robust against malformed input, namely a +whitespace-only ``Date:`` header. Patch by Wouter Bolsterlee. + +.. + +.. bpo: 38965 +.. date: 2019-12-04-17-08-55 +.. nonce: yqax3m +.. section: Tests + +Fix test_faulthandler on GCC 10. Use the "volatile" keyword in +``faulthandler._stack_overflow()`` to prevent tail call optimization on any +compiler, rather than relying on compiler specific pragma. diff --git a/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst b/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst deleted file mode 100644 index 55cc409d0da30f..00000000000000 --- a/Misc/NEWS.d/next/Library/2021-08-26-16-25-48.bpo-45001.tn_dKp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made email date parsing more robust against malformed input, namely a -whitespace-only ``Date:`` header. Patch by Wouter Bolsterlee. diff --git a/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst b/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst deleted file mode 100644 index e897d6cd3641d7..00000000000000 --- a/Misc/NEWS.d/next/Security/2021-05-08-11-50-46.bpo-43124.2CTM6M.rst +++ /dev/null @@ -1,2 +0,0 @@ -Made the internal ``putcmd`` function in :mod:`smtplib` sanitize input for -presence of ``\r`` and ``\n`` characters to avoid (unlikely) command injection. diff --git a/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst b/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst deleted file mode 100644 index e32563d2535c7e..00000000000000 --- a/Misc/NEWS.d/next/Security/2021-06-29-02-45-53.bpo-44394.A220N1.rst +++ /dev/null @@ -1,3 +0,0 @@ -Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to get the fix -for the CVE-2013-0340 "Billion Laughs" vulnerability. This copy is most used -on Windows and macOS. diff --git a/Misc/NEWS.d/next/Tests/2019-12-04-17-08-55.bpo-38965.yqax3m.rst b/Misc/NEWS.d/next/Tests/2019-12-04-17-08-55.bpo-38965.yqax3m.rst deleted file mode 100644 index 517a1371eacd9a..00000000000000 --- a/Misc/NEWS.d/next/Tests/2019-12-04-17-08-55.bpo-38965.yqax3m.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix test_faulthandler on GCC 10. Use the "volatile" keyword in -``faulthandler._stack_overflow()`` to prevent tail call optimization on any -compiler, rather than relying on compiler specific pragma. diff --git a/README.rst b/README.rst index 29528637a78b02..6d06a817f03a41 100644 --- a/README.rst +++ b/README.rst @@ -1,5 +1,5 @@ -This is Python version 3.6.14+ -============================== +This is Python version 3.6.15 +============================= .. image:: https://travis-ci.org/python/cpython.svg?branch=3.6 :alt: CPython build status on Travis CI From webhook-mailer at python.org Sat Sep 4 23:59:37 2021 From: webhook-mailer at python.org (corona10) Date: Sun, 05 Sep 2021 03:59:37 -0000 Subject: [Python-checkins] Remove unused macros from Modules/_sqlite/microprotocols.h (GH-28171) Message-ID: https://github.com/python/cpython/commit/65c5756be9202bb6804cec4d9510f42a01df611d commit: 65c5756be9202bb6804cec4d9510f42a01df611d branch: main author: Erlend Egeberg Aasland committer: corona10 date: 2021-09-05T12:59:30+09:00 summary: Remove unused macros from Modules/_sqlite/microprotocols.h (GH-28171) files: M Modules/_sqlite/microprotocols.h diff --git a/Modules/_sqlite/microprotocols.h b/Modules/_sqlite/microprotocols.h index e4d9038e89d5af..d12bc448596c4b 100644 --- a/Modules/_sqlite/microprotocols.h +++ b/Modules/_sqlite/microprotocols.h @@ -29,12 +29,6 @@ #define PY_SSIZE_T_CLEAN #include -/** the names of the three mandatory methods **/ - -#define MICROPROTOCOLS_GETQUOTED_NAME "getquoted" -#define MICROPROTOCOLS_GETSTRING_NAME "getstring" -#define MICROPROTOCOLS_GETBINARY_NAME "getbinary" - /** exported functions **/ /* used by module.c to init the microprotocols system */ From webhook-mailer at python.org Sun Sep 5 01:09:33 2021 From: webhook-mailer at python.org (rhettinger) Date: Sun, 05 Sep 2021 05:09:33 -0000 Subject: [Python-checkins] bpo-44571: Add itertool recipe for a variant of takewhile() (GH-28167) Message-ID: https://github.com/python/cpython/commit/91be41ad933e24bff26353a19f56447e17fb6367 commit: 91be41ad933e24bff26353a19f56447e17fb6367 branch: main author: Raymond Hettinger committer: rhettinger date: 2021-09-05T00:09:26-05:00 summary: bpo-44571: Add itertool recipe for a variant of takewhile() (GH-28167) files: M Doc/library/itertools.rst M Lib/test/test_itertools.py diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index fd77f99a88f57..254e055bd9eb4 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -837,6 +837,34 @@ which incur interpreter overhead. t1, t2 = tee(iterable) return filterfalse(pred, t1), filter(pred, t2) + def before_and_after(predicate, it): + """ Variant of takewhile() that allows complete + access to the remainder of the iterator. + + >>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') + >>> str.join('', all_upper) + 'ABC' + >>> str.join('', remainder) + 'dEfGhI' + + Note that the first iterator must be fully + consumed before the second iterator can + generate valid results. + """ + it = iter(it) + transition = [] + def true_iterator(): + for elem in it: + if predicate(elem): + yield elem + else: + transition.append(elem) + return + def remainder_iterator(): + yield from transition + yield from it + return true_iterator(), remainder_iterator() + def powerset(iterable): "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list(iterable) @@ -948,4 +976,3 @@ which incur interpreter overhead. c, n = c*(n-r)//n, n-1 result.append(pool[-1-n]) return tuple(result) - diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 4019af05e028c..0cf7eaf25a050 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -2412,6 +2412,40 @@ def test_permutations_sizeof(self): ... pending -= 1 ... nexts = cycle(islice(nexts, pending)) +>>> def partition(pred, iterable): +... "Use a predicate to partition entries into false entries and true entries" +... # partition(is_odd, range(10)) --> 0 2 4 6 8 and 1 3 5 7 9 +... t1, t2 = tee(iterable) +... return filterfalse(pred, t1), filter(pred, t2) + +>>> def before_and_after(predicate, it): +... ''' Variant of takewhile() that allows complete +... access to the remainder of the iterator. +... +... >>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') +... >>> str.join('', all_upper) +... 'ABC' +... >>> str.join('', remainder) +... 'dEfGhI' +... +... Note that the first iterator must be fully +... consumed before the second iterator can +... generate valid results. +... ''' +... it = iter(it) +... transition = [] +... def true_iterator(): +... for elem in it: +... if predicate(elem): +... yield elem +... else: +... transition.append(elem) +... return +... def remainder_iterator(): +... yield from transition +... yield from it +... return true_iterator(), remainder_iterator() + >>> def powerset(iterable): ... "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" ... s = list(iterable) @@ -2539,6 +2573,21 @@ def test_permutations_sizeof(self): >>> list(roundrobin('abc', 'd', 'ef')) ['a', 'd', 'e', 'b', 'f', 'c'] +>>> def is_odd(x): +... return x % 2 == 1 + +>>> evens, odds = partition(is_odd, range(10)) +>>> list(evens) +[0, 2, 4, 6, 8] +>>> list(odds) +[1, 3, 5, 7, 9] + +>>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') +>>> str.join('', all_upper) +'ABC' +>>> str.join('', remainder) +'dEfGhI' + >>> list(powerset([1,2,3])) [(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)] From webhook-mailer at python.org Sun Sep 5 01:30:45 2021 From: webhook-mailer at python.org (miss-islington) Date: Sun, 05 Sep 2021 05:30:45 -0000 Subject: [Python-checkins] bpo-44571: Add itertool recipe for a variant of takewhile() (GH-28167) Message-ID: https://github.com/python/cpython/commit/656b0bdfaae3a36d386afe3f7b991744528c3ff7 commit: 656b0bdfaae3a36d386afe3f7b991744528c3ff7 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-09-04T22:30:37-07:00 summary: bpo-44571: Add itertool recipe for a variant of takewhile() (GH-28167) (cherry picked from commit 91be41ad933e24bff26353a19f56447e17fb6367) Co-authored-by: Raymond Hettinger files: M Doc/library/itertools.rst M Lib/test/test_itertools.py diff --git a/Doc/library/itertools.rst b/Doc/library/itertools.rst index fd77f99a88f577..254e055bd9eb43 100644 --- a/Doc/library/itertools.rst +++ b/Doc/library/itertools.rst @@ -837,6 +837,34 @@ which incur interpreter overhead. t1, t2 = tee(iterable) return filterfalse(pred, t1), filter(pred, t2) + def before_and_after(predicate, it): + """ Variant of takewhile() that allows complete + access to the remainder of the iterator. + + >>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') + >>> str.join('', all_upper) + 'ABC' + >>> str.join('', remainder) + 'dEfGhI' + + Note that the first iterator must be fully + consumed before the second iterator can + generate valid results. + """ + it = iter(it) + transition = [] + def true_iterator(): + for elem in it: + if predicate(elem): + yield elem + else: + transition.append(elem) + return + def remainder_iterator(): + yield from transition + yield from it + return true_iterator(), remainder_iterator() + def powerset(iterable): "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" s = list(iterable) @@ -948,4 +976,3 @@ which incur interpreter overhead. c, n = c*(n-r)//n, n-1 result.append(pool[-1-n]) return tuple(result) - diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index a99b5e2bb71db9..6a650b9998b66d 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -2411,6 +2411,40 @@ def test_permutations_sizeof(self): ... pending -= 1 ... nexts = cycle(islice(nexts, pending)) +>>> def partition(pred, iterable): +... "Use a predicate to partition entries into false entries and true entries" +... # partition(is_odd, range(10)) --> 0 2 4 6 8 and 1 3 5 7 9 +... t1, t2 = tee(iterable) +... return filterfalse(pred, t1), filter(pred, t2) + +>>> def before_and_after(predicate, it): +... ''' Variant of takewhile() that allows complete +... access to the remainder of the iterator. +... +... >>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') +... >>> str.join('', all_upper) +... 'ABC' +... >>> str.join('', remainder) +... 'dEfGhI' +... +... Note that the first iterator must be fully +... consumed before the second iterator can +... generate valid results. +... ''' +... it = iter(it) +... transition = [] +... def true_iterator(): +... for elem in it: +... if predicate(elem): +... yield elem +... else: +... transition.append(elem) +... return +... def remainder_iterator(): +... yield from transition +... yield from it +... return true_iterator(), remainder_iterator() + >>> def powerset(iterable): ... "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)" ... s = list(iterable) @@ -2538,6 +2572,21 @@ def test_permutations_sizeof(self): >>> list(roundrobin('abc', 'd', 'ef')) ['a', 'd', 'e', 'b', 'f', 'c'] +>>> def is_odd(x): +... return x % 2 == 1 + +>>> evens, odds = partition(is_odd, range(10)) +>>> list(evens) +[0, 2, 4, 6, 8] +>>> list(odds) +[1, 3, 5, 7, 9] + +>>> all_upper, remainder = before_and_after(str.isupper, 'ABCdEfGhI') +>>> str.join('', all_upper) +'ABC' +>>> str.join('', remainder) +'dEfGhI' + >>> list(powerset([1,2,3])) [(), (1,), (2,), (3,), (1, 2), (1, 3), (2, 3), (1, 2, 3)] From webhook-mailer at python.org Sun Sep 5 02:41:41 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sun, 05 Sep 2021 06:41:41 -0000 Subject: [Python-checkins] [3.9] bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) (GH-28169) Message-ID: https://github.com/python/cpython/commit/ab58269ab3b784bef33a613cd0a68914065a9134 commit: ab58269ab3b784bef33a613cd0a68914065a9134 branch: 3.9 author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-05T09:41:33+03:00 summary: [3.9] bpo-45042: Now test classes decorated with `requires_hashdigest` are not skipped (GH-28060) (GH-28169) Co-authored-by: Serhiy Storchaka . (cherry picked from commit dd7b816ac87e468e2fa65ce83c2a03fe1da8503e) Co-authored-by: Nikita Sobolev files: A Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst M Lib/test/_test_multiprocessing.py M Lib/test/support/hashlib_helper.py M Lib/test/test_tools/test_md5sum.py diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 3072e5860189a..8f60122cb512e 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3769,6 +3769,7 @@ def _attach_existing_shmem_then_write(shmem_name_or_obj, binary_data): local_sms.buf[:len(binary_data)] = binary_data local_sms.close() + @unittest.skipIf(sys.platform == "win32", "test is broken on Windows") def test_shared_memory_basics(self): sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512) self.addCleanup(sms.unlink) diff --git a/Lib/test/support/hashlib_helper.py b/Lib/test/support/hashlib_helper.py index a28132a565a0b..a4e6c92203ab5 100644 --- a/Lib/test/support/hashlib_helper.py +++ b/Lib/test/support/hashlib_helper.py @@ -21,8 +21,21 @@ def requires_hashdigest(digestname, openssl=None, usedforsecurity=True): ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS ValueError: unsupported hash type md4 """ - def decorator(func): - @functools.wraps(func) + def decorator(func_or_class): + if isinstance(func_or_class, type): + setUpClass = func_or_class.__dict__.get('setUpClass') + if setUpClass is None: + def setUpClass(cls): + super(func_or_class, cls).setUpClass() + setUpClass.__qualname__ = func_or_class.__qualname__ + '.setUpClass' + setUpClass.__module__ = func_or_class.__module__ + else: + setUpClass = setUpClass.__func__ + setUpClass = classmethod(decorator(setUpClass)) + func_or_class.setUpClass = setUpClass + return func_or_class + + @functools.wraps(func_or_class) def wrapper(*args, **kwargs): try: if openssl and _hashlib is not None: @@ -33,6 +46,6 @@ def wrapper(*args, **kwargs): raise unittest.SkipTest( f"hash digest '{digestname}' is not available." ) - return func(*args, **kwargs) + return func_or_class(*args, **kwargs) return wrapper return decorator diff --git a/Lib/test/test_tools/test_md5sum.py b/Lib/test/test_tools/test_md5sum.py index 321bc4bb36282..7321b488be5a5 100644 --- a/Lib/test/test_tools/test_md5sum.py +++ b/Lib/test/test_tools/test_md5sum.py @@ -1,5 +1,6 @@ """Tests for the md5sum script in the Tools directory.""" +import sys import os import unittest from test import support @@ -15,8 +16,8 @@ class MD5SumTests(unittest.TestCase): @classmethod def setUpClass(cls): cls.script = os.path.join(scriptsdir, 'md5sum.py') - os.mkdir(support.TESTFN) - cls.fodder = os.path.join(support.TESTFN, 'md5sum.fodder') + os.mkdir(support.TESTFN_ASCII) + cls.fodder = os.path.join(support.TESTFN_ASCII, 'md5sum.fodder') with open(cls.fodder, 'wb') as f: f.write(b'md5sum\r\ntest file\r\n') cls.fodder_md5 = b'd38dae2eb1ab346a292ef6850f9e1a0d' @@ -24,7 +25,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - support.rmtree(support.TESTFN) + support.rmtree(support.TESTFN_ASCII) def test_noargs(self): rc, out, err = assert_python_ok(self.script) diff --git a/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst new file mode 100644 index 0000000000000..e2c0dffced96e --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-08-30-11-54-14.bpo-45042.QMz3X8.rst @@ -0,0 +1 @@ +Fixes that test classes decorated with ``@hashlib_helper.requires_hashdigest`` were skipped all the time. \ No newline at end of file From webhook-mailer at python.org Sun Sep 5 03:34:24 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sun, 05 Sep 2021 07:34:24 -0000 Subject: [Python-checkins] bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) Message-ID: https://github.com/python/cpython/commit/28264269de9ff88d9ee7110fc56ac2d2db275bec commit: 28264269de9ff88d9ee7110fc56ac2d2db275bec branch: main author: Serhiy Storchaka committer: serhiy-storchaka date: 2021-09-05T10:34:14+03:00 summary: bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) files: M Lib/unittest/test/test_skipping.py diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py index 79b27e6daae25..c14410afbefdc 100644 --- a/Lib/unittest/test/test_skipping.py +++ b/Lib/unittest/test/test_skipping.py @@ -161,6 +161,58 @@ class Foo(Mixin, unittest.TestCase): self.assertEqual(result.skipped, [(test, "testing")]) self.assertEqual(record, []) + def test_skip_in_setup(self): + class Foo(unittest.TestCase): + def setUp(self): + self.skipTest("skip") + def test_skip_me(self): + self.fail("shouldn't come here") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.fail("fail") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skipping_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.skipTest("skip") + def tearDown(self): + self.fail("fail") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + def test_expected_failure(self): class Foo(unittest.TestCase): @unittest.expectedFailure @@ -172,7 +224,9 @@ def test_die(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_class(self): @@ -187,7 +241,9 @@ def test_1(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_subclass(self): @@ -205,7 +261,9 @@ class Bar(Foo): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_subtests(self): @@ -229,8 +287,48 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addSubTestSuccess', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(len(result.expectedFailures), 1) self.assertIs(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) + self.assertTrue(result.wasSuccessful()) + + def test_expected_failure_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_expected_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) self.assertTrue(result.wasSuccessful()) def test_unexpected_success(self): @@ -245,6 +343,7 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) @@ -269,9 +368,48 @@ def test_die(self): 'addSubTestSuccess', 'addSubTestSuccess', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) + def test_unexpected_success_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_unexpected_success_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) + self.assertTrue(result.wasSuccessful()) + def test_skip_doesnt_run_setup(self): class Foo(unittest.TestCase): wasSetUp = False From webhook-mailer at python.org Sun Sep 5 03:55:43 2021 From: webhook-mailer at python.org (miss-islington) Date: Sun, 05 Sep 2021 07:55:43 -0000 Subject: [Python-checkins] bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) Message-ID: https://github.com/python/cpython/commit/8342c526e9cf138a10668fa9e487d92ee1a3a42c commit: 8342c526e9cf138a10668fa9e487d92ee1a3a42c 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-09-05T00:55:35-07:00 summary: bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) (cherry picked from commit 28264269de9ff88d9ee7110fc56ac2d2db275bec) Co-authored-by: Serhiy Storchaka files: M Lib/unittest/test/test_skipping.py diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py index 79b27e6daae255..c14410afbefdc4 100644 --- a/Lib/unittest/test/test_skipping.py +++ b/Lib/unittest/test/test_skipping.py @@ -161,6 +161,58 @@ class Foo(Mixin, unittest.TestCase): self.assertEqual(result.skipped, [(test, "testing")]) self.assertEqual(record, []) + def test_skip_in_setup(self): + class Foo(unittest.TestCase): + def setUp(self): + self.skipTest("skip") + def test_skip_me(self): + self.fail("shouldn't come here") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.fail("fail") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skipping_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.skipTest("skip") + def tearDown(self): + self.fail("fail") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + def test_expected_failure(self): class Foo(unittest.TestCase): @unittest.expectedFailure @@ -172,7 +224,9 @@ def test_die(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_class(self): @@ -187,7 +241,9 @@ def test_1(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_subclass(self): @@ -205,7 +261,9 @@ class Bar(Foo): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_subtests(self): @@ -229,8 +287,48 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addSubTestSuccess', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(len(result.expectedFailures), 1) self.assertIs(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) + self.assertTrue(result.wasSuccessful()) + + def test_expected_failure_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_expected_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) self.assertTrue(result.wasSuccessful()) def test_unexpected_success(self): @@ -245,6 +343,7 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) @@ -269,9 +368,48 @@ def test_die(self): 'addSubTestSuccess', 'addSubTestSuccess', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) + def test_unexpected_success_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_unexpected_success_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) + self.assertTrue(result.wasSuccessful()) + def test_skip_doesnt_run_setup(self): class Foo(unittest.TestCase): wasSetUp = False From webhook-mailer at python.org Sun Sep 5 03:56:28 2021 From: webhook-mailer at python.org (miss-islington) Date: Sun, 05 Sep 2021 07:56:28 -0000 Subject: [Python-checkins] bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) Message-ID: https://github.com/python/cpython/commit/f91d974ce61b2a9922391f723b388a623284fb0a commit: f91d974ce61b2a9922391f723b388a623284fb0a 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-09-05T00:56:24-07:00 summary: bpo-45102: unittest: add tests for skipping and errors in cleanup (GH-28166) (cherry picked from commit 28264269de9ff88d9ee7110fc56ac2d2db275bec) Co-authored-by: Serhiy Storchaka files: M Lib/unittest/test/test_skipping.py diff --git a/Lib/unittest/test/test_skipping.py b/Lib/unittest/test/test_skipping.py index 79b27e6daae255..c14410afbefdc4 100644 --- a/Lib/unittest/test/test_skipping.py +++ b/Lib/unittest/test/test_skipping.py @@ -161,6 +161,58 @@ class Foo(Mixin, unittest.TestCase): self.assertEqual(result.skipped, [(test, "testing")]) self.assertEqual(record, []) + def test_skip_in_setup(self): + class Foo(unittest.TestCase): + def setUp(self): + self.skipTest("skip") + def test_skip_me(self): + self.fail("shouldn't come here") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.fail("fail") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + + def test_skipping_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + def test_skip_me(self): + self.skipTest("skip") + def tearDown(self): + self.fail("fail") + events = [] + result = LoggingResult(events) + test = Foo("test_skip_me") + self.assertIs(test.run(result), result) + self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest']) + self.assertEqual(result.skipped, [(test, "skip")]) + def test_expected_failure(self): class Foo(unittest.TestCase): @unittest.expectedFailure @@ -172,7 +224,9 @@ def test_die(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_class(self): @@ -187,7 +241,9 @@ def test_1(self): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_with_wrapped_subclass(self): @@ -205,7 +261,9 @@ class Bar(Foo): self.assertIs(test.run(result), result) self.assertEqual(events, ['startTest', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) self.assertTrue(result.wasSuccessful()) def test_expected_failure_subtests(self): @@ -229,8 +287,48 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addSubTestSuccess', 'addExpectedFailure', 'stopTest']) + self.assertFalse(result.failures) self.assertEqual(len(result.expectedFailures), 1) self.assertIs(result.expectedFailures[0][0], test) + self.assertFalse(result.unexpectedSuccesses) + self.assertTrue(result.wasSuccessful()) + + def test_expected_failure_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_expected_failure_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + self.fail("help me!") + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) self.assertTrue(result.wasSuccessful()) def test_unexpected_success(self): @@ -245,6 +343,7 @@ def test_die(self): self.assertEqual(events, ['startTest', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) @@ -269,9 +368,48 @@ def test_die(self): 'addSubTestSuccess', 'addSubTestSuccess', 'addUnexpectedSuccess', 'stopTest']) self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) self.assertEqual(result.unexpectedSuccesses, [test]) self.assertFalse(result.wasSuccessful()) + def test_unexpected_success_and_fail_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.fail("bad tearDown") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addFailure', 'stopTest']) + self.assertEqual(len(result.failures), 1) + self.assertIn('AssertionError: bad tearDown', result.failures[0][1]) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertFalse(result.wasSuccessful()) + + def test_unexpected_success_and_skip_in_cleanup(self): + class Foo(unittest.TestCase): + @unittest.expectedFailure + def test_die(self): + pass + def tearDown(self): + self.skipTest("skip") + events = [] + result = LoggingResult(events) + test = Foo("test_die") + self.assertIs(test.run(result), result) + self.assertEqual(events, + ['startTest', 'addSkip', 'stopTest']) + self.assertFalse(result.failures) + self.assertFalse(result.expectedFailures) + self.assertFalse(result.unexpectedSuccesses) + self.assertEqual(result.skipped, [(test, "skip")]) + self.assertTrue(result.wasSuccessful()) + def test_skip_doesnt_run_setup(self): class Foo(unittest.TestCase): wasSetUp = False From webhook-mailer at python.org Sun Sep 5 09:58:58 2021 From: webhook-mailer at python.org (pablogsal) Date: Sun, 05 Sep 2021 13:58:58 -0000 Subject: [Python-checkins] Extract visitors from the grammar nodes and call makers in the peg generator (GH-28172) Message-ID: https://github.com/python/cpython/commit/b01fd533fef78b088674bad73267b89bea98e904 commit: b01fd533fef78b088674bad73267b89bea98e904 branch: main author: Pablo Galindo Salgado committer: pablogsal date: 2021-09-05T14:58:52+01:00 summary: Extract visitors from the grammar nodes and call makers in the peg generator (GH-28172) Simplify the peg generator logic by extracting as much visitors as possible to disentangle the flow and separate concerns. files: M Lib/test/test_peg_generator/test_pegen.py M Parser/parser.c M Tools/peg_generator/pegen/__main__.py M Tools/peg_generator/pegen/build.py M Tools/peg_generator/pegen/c_generator.py M Tools/peg_generator/pegen/first_sets.py M Tools/peg_generator/pegen/grammar.py M Tools/peg_generator/pegen/grammar_visualizer.py M Tools/peg_generator/pegen/keywordgen.py M Tools/peg_generator/pegen/parser_generator.py M Tools/peg_generator/pegen/python_generator.py M Tools/peg_generator/pegen/testutil.py M Tools/peg_generator/pegen/validator.py diff --git a/Lib/test/test_peg_generator/test_pegen.py b/Lib/test/test_peg_generator/test_pegen.py index 71b0fdc56465b..99c75f09aa1f7 100644 --- a/Lib/test/test_peg_generator/test_pegen.py +++ b/Lib/test/test_peg_generator/test_pegen.py @@ -15,6 +15,7 @@ from pegen.grammar import GrammarVisitor, GrammarError, Grammar from pegen.grammar_visualizer import ASTGrammarPrinter from pegen.parser import Parser + from pegen.parser_generator import compute_nullables, compute_left_recursives from pegen.python_generator import PythonParserGenerator @@ -502,11 +503,10 @@ def test_nullable(self) -> None: sign: ['-' | '+'] """ grammar: Grammar = parse_string(grammar_source, GrammarParser) - out = io.StringIO() - genr = PythonParserGenerator(grammar, out) rules = grammar.rules - self.assertFalse(rules["start"].nullable) # Not None! - self.assertTrue(rules["sign"].nullable) + nullables = compute_nullables(rules) + self.assertNotIn(rules["start"], nullables) # Not None! + self.assertIn(rules["sign"], nullables) def test_advanced_left_recursive(self) -> None: grammar_source = """ @@ -514,11 +514,11 @@ def test_advanced_left_recursive(self) -> None: sign: ['-'] """ grammar: Grammar = parse_string(grammar_source, GrammarParser) - out = io.StringIO() - genr = PythonParserGenerator(grammar, out) rules = grammar.rules - self.assertFalse(rules["start"].nullable) # Not None! - self.assertTrue(rules["sign"].nullable) + nullables = compute_nullables(rules) + compute_left_recursives(rules) + self.assertNotIn(rules["start"], nullables) # Not None! + self.assertIn(rules["sign"], nullables) self.assertTrue(rules["start"].left_recursive) self.assertFalse(rules["sign"].left_recursive) diff --git a/Parser/parser.c b/Parser/parser.c index 87227b7f2f707..3cea370c5ad2d 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -11,57 +11,57 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { - {"if", 510}, - {"in", 520}, - {"as", 522}, - {"is", 529}, - {"or", 531}, + {"if", 624}, + {"as", 622}, + {"in", 631}, + {"or", 571}, + {"is", 579}, {NULL, -1}, }, (KeywordToken[]) { - {"del", 503}, - {"try", 511}, - {"def", 516}, - {"for", 519}, - {"not", 528}, - {"and", 532}, + {"del", 597}, + {"def", 632}, + {"for", 630}, + {"try", 609}, + {"and", 572}, + {"not", 578}, {NULL, -1}, }, (KeywordToken[]) { - {"pass", 502}, - {"from", 514}, - {"elif", 517}, - {"else", 518}, - {"with", 521}, - {"None", 525}, - {"True", 526}, + {"from", 569}, + {"pass", 504}, + {"with", 606}, + {"elif", 626}, + {"else", 627}, + {"None", 595}, + {"True", 594}, {NULL, -1}, }, (KeywordToken[]) { - {"raise", 501}, - {"yield", 504}, - {"break", 506}, - {"while", 512}, - {"class", 515}, - {"False", 527}, + {"raise", 522}, + {"yield", 570}, + {"break", 508}, + {"class", 633}, + {"while", 629}, + {"False", 596}, {NULL, -1}, }, (KeywordToken[]) { - {"return", 500}, - {"assert", 505}, - {"global", 508}, - {"import", 513}, - {"except", 523}, - {"lambda", 530}, + {"return", 519}, + {"import", 531}, + {"assert", 526}, + {"global", 523}, + {"except", 620}, + {"lambda", 583}, {NULL, -1}, }, (KeywordToken[]) { - {"finally", 524}, + {"finally", 617}, {NULL, -1}, }, (KeywordToken[]) { - {"continue", 507}, - {"nonlocal", 509}, + {"continue", 509}, + {"nonlocal", 524}, {NULL, -1}, }, }; @@ -1562,7 +1562,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); stmt_ty return_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 519) // token='return' && (return_stmt_var = return_stmt_rule(p)) // return_stmt ) @@ -1604,7 +1604,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); stmt_ty raise_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522) // token='raise' && (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt ) @@ -1625,7 +1625,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 502)) // token='pass' + (_keyword = _PyPegen_expect_token(p, 504)) // token='pass' ) { D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); @@ -1658,7 +1658,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); stmt_ty del_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 597) // token='del' && (del_stmt_var = del_stmt_rule(p)) // del_stmt ) @@ -1679,7 +1679,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); stmt_ty yield_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 570) // token='yield' && (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt ) @@ -1700,7 +1700,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); stmt_ty assert_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526) // token='assert' && (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt ) @@ -1721,7 +1721,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 506)) // token='break' + (_keyword = _PyPegen_expect_token(p, 508)) // token='break' ) { D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); @@ -1754,7 +1754,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 507)) // token='continue' + (_keyword = _PyPegen_expect_token(p, 509)) // token='continue' ) { D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); @@ -1787,7 +1787,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); stmt_ty global_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 523) // token='global' && (global_stmt_var = global_stmt_rule(p)) // global_stmt ) @@ -1808,7 +1808,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); stmt_ty nonlocal_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 524) // token='nonlocal' && (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt ) @@ -1876,7 +1876,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); stmt_ty if_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 624) // token='if' && (if_stmt_var = if_stmt_rule(p)) // if_stmt ) @@ -1960,7 +1960,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); stmt_ty try_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 609) // token='try' && (try_stmt_var = try_stmt_rule(p)) // try_stmt ) @@ -1981,7 +1981,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 629) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -2666,7 +2666,7 @@ return_stmt_rule(Parser *p) Token * _keyword; void *a; if ( - (_keyword = _PyPegen_expect_token(p, 500)) // token='return' + (_keyword = _PyPegen_expect_token(p, 519)) // token='return' && (a = star_expressions_rule(p), 1) // star_expressions? ) @@ -2729,7 +2729,7 @@ raise_stmt_rule(Parser *p) expr_ty a; void *b; if ( - (_keyword = _PyPegen_expect_token(p, 501)) // token='raise' + (_keyword = _PyPegen_expect_token(p, 522)) // token='raise' && (a = expression_rule(p)) // expression && @@ -2766,7 +2766,7 @@ raise_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 501)) // token='raise' + (_keyword = _PyPegen_expect_token(p, 522)) // token='raise' ) { D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'")); @@ -2826,7 +2826,7 @@ global_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 508)) // token='global' + (_keyword = _PyPegen_expect_token(p, 523)) // token='global' && (a = (asdl_expr_seq*)_gather_18_rule(p)) // ','.NAME+ ) @@ -2888,7 +2888,7 @@ nonlocal_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal' + (_keyword = _PyPegen_expect_token(p, 524)) // token='nonlocal' && (a = (asdl_expr_seq*)_gather_20_rule(p)) // ','.NAME+ ) @@ -2950,7 +2950,7 @@ del_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 503)) // token='del' + (_keyword = _PyPegen_expect_token(p, 597)) // token='del' && (a = del_targets_rule(p)) // del_targets && @@ -3093,7 +3093,7 @@ assert_stmt_rule(Parser *p) expr_ty a; void *b; if ( - (_keyword = _PyPegen_expect_token(p, 505)) // token='assert' + (_keyword = _PyPegen_expect_token(p, 526)) // token='assert' && (a = expression_rule(p)) // expression && @@ -3212,7 +3212,7 @@ import_name_rule(Parser *p) Token * _keyword; asdl_alias_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 513)) // token='import' + (_keyword = _PyPegen_expect_token(p, 531)) // token='import' && (a = dotted_as_names_rule(p)) // dotted_as_names ) @@ -3279,13 +3279,13 @@ import_from_rule(Parser *p) expr_ty b; asdl_alias_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 514)) // token='from' + (_keyword = _PyPegen_expect_token(p, 569)) // token='from' && (a = _loop0_24_rule(p)) // (('.' | '...'))* && (b = dotted_name_rule(p)) // dotted_name && - (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 531)) // token='import' && (c = import_from_targets_rule(p)) // import_from_targets ) @@ -3323,11 +3323,11 @@ import_from_rule(Parser *p) asdl_seq * a; asdl_alias_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 514)) // token='from' + (_keyword = _PyPegen_expect_token(p, 569)) // token='from' && (a = _loop1_25_rule(p)) // (('.' | '...'))+ && - (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 531)) // token='import' && (b = import_from_targets_rule(p)) // import_from_targets ) @@ -4051,7 +4051,7 @@ class_def_raw_rule(Parser *p) void *b; asdl_stmt_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 515)) // token='class' + (_keyword = _PyPegen_expect_token(p, 633)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4211,7 +4211,7 @@ function_def_raw_rule(Parser *p) void *params; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 516)) // token='def' + (_keyword = _PyPegen_expect_token(p, 632)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4271,7 +4271,7 @@ function_def_raw_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 516)) // token='def' + (_keyword = _PyPegen_expect_token(p, 632)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -5319,7 +5319,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5364,7 +5364,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5457,7 +5457,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 517)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 626)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -5502,7 +5502,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 517)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 626)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -5581,7 +5581,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 518)) // token='else' + (_keyword = _PyPegen_expect_token(p, 627)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -5658,7 +5658,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 512)) // token='while' + (_keyword = _PyPegen_expect_token(p, 629)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -5756,11 +5756,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='in' && (_cut_var = 1) && @@ -5820,11 +5820,11 @@ for_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='in' && (_cut_var = 1) && @@ -5950,7 +5950,7 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -5999,7 +5999,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (a = (asdl_withitem_seq*)_gather_52_rule(p)) // ','.with_item+ && @@ -6050,7 +6050,7 @@ with_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6102,7 +6102,7 @@ with_stmt_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (a = (asdl_withitem_seq*)_gather_56_rule(p)) // ','.with_item+ && @@ -6186,7 +6186,7 @@ with_item_rule(Parser *p) if ( (e = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (t = star_target_rule(p)) // star_target && @@ -6308,7 +6308,7 @@ try_stmt_rule(Parser *p) asdl_stmt_seq* b; asdl_stmt_seq* f; if ( - (_keyword = _PyPegen_expect_token(p, 511)) // token='try' + (_keyword = _PyPegen_expect_token(p, 609)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6352,7 +6352,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 511)) // token='try' + (_keyword = _PyPegen_expect_token(p, 609)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6448,7 +6448,7 @@ except_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 523)) // token='except' + (_keyword = _PyPegen_expect_token(p, 620)) // token='except' && (e = expression_rule(p)) // expression && @@ -6491,7 +6491,7 @@ except_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 523)) // token='except' + (_keyword = _PyPegen_expect_token(p, 620)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -6585,7 +6585,7 @@ finally_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 524)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 617)) // token='finally' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6885,7 +6885,7 @@ guard_rule(Parser *p) Token * _keyword; expr_ty guard; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (guard = named_expression_rule(p)) // named_expression ) @@ -7074,7 +7074,7 @@ as_pattern_rule(Parser *p) if ( (pattern = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (target = pattern_capture_target_rule(p)) // pattern_capture_target ) @@ -7497,7 +7497,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 525)) // token='None' + (_keyword = _PyPegen_expect_token(p, 595)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -7530,7 +7530,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 526)) // token='True' + (_keyword = _PyPegen_expect_token(p, 594)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -7563,7 +7563,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 527)) // token='False' + (_keyword = _PyPegen_expect_token(p, 596)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -7687,7 +7687,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 525)) // token='None' + (_keyword = _PyPegen_expect_token(p, 595)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -7720,7 +7720,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 526)) // token='True' + (_keyword = _PyPegen_expect_token(p, 594)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -7753,7 +7753,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 527)) // token='False' + (_keyword = _PyPegen_expect_token(p, 596)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -9776,11 +9776,11 @@ expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 627)) // token='else' && (c = expression_rule(p)) // expression ) @@ -9882,9 +9882,9 @@ yield_expr_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 504)) // token='yield' + (_keyword = _PyPegen_expect_token(p, 570)) // token='yield' && - (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from' + (_keyword_1 = _PyPegen_expect_token(p, 569)) // token='from' && (a = expression_rule(p)) // expression ) @@ -9920,7 +9920,7 @@ yield_expr_rule(Parser *p) Token * _keyword; void *a; if ( - (_keyword = _PyPegen_expect_token(p, 504)) // token='yield' + (_keyword = _PyPegen_expect_token(p, 570)) // token='yield' && (a = star_expressions_rule(p), 1) // star_expressions? ) @@ -10642,7 +10642,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 528)) // token='not' + (_keyword = _PyPegen_expect_token(p, 578)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -11278,9 +11278,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 528)) // token='not' + (_keyword = _PyPegen_expect_token(p, 578)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -11324,7 +11324,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword = _PyPegen_expect_token(p, 631)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -11369,9 +11369,9 @@ isnot_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 529)) // token='is' + (_keyword = _PyPegen_expect_token(p, 579)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 528)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 578)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -11415,7 +11415,7 @@ is_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 529)) // token='is' + (_keyword = _PyPegen_expect_token(p, 579)) // token='is' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -13196,7 +13196,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 526)) // token='True' + (_keyword = _PyPegen_expect_token(p, 594)) // token='True' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -13229,7 +13229,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 527)) // token='False' + (_keyword = _PyPegen_expect_token(p, 596)) // token='False' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -13262,7 +13262,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 525)) // token='None' + (_keyword = _PyPegen_expect_token(p, 595)) // token='None' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -13526,7 +13526,7 @@ lambdef_rule(Parser *p) void *a; expr_ty b; if ( - (_keyword = _PyPegen_expect_token(p, 530)) // token='lambda' + (_keyword = _PyPegen_expect_token(p, 583)) // token='lambda' && (a = lambda_params_rule(p), 1) // lambda_params? && @@ -14958,11 +14958,11 @@ for_if_clause_rule(Parser *p) if ( (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC' && - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='in' && (_cut_var = 1) && @@ -15001,11 +15001,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='in' && (_cut_var = 1) && @@ -18085,11 +18085,11 @@ expression_without_invalid_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 627)) // token='else' && (c = expression_rule(p)) // expression ) @@ -18280,7 +18280,7 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (b = disjunction_rule(p)) // disjunction && @@ -18736,7 +18736,7 @@ invalid_del_stmt_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 503)) // token='del' + (_keyword = _PyPegen_expect_token(p, 597)) // token='del' && (a = star_expressions_rule(p)) // star_expressions ) @@ -19386,7 +19386,7 @@ invalid_with_item_rule(Parser *p) if ( (expression_var = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (a = expression_rule(p)) // expression && @@ -19436,7 +19436,7 @@ invalid_for_target_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -19614,7 +19614,7 @@ invalid_with_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (_gather_162_var = _gather_162_rule(p)) // ','.(expression ['as' star_target])+ && @@ -19647,7 +19647,7 @@ invalid_with_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -19702,7 +19702,7 @@ invalid_with_stmt_indent_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (a = _PyPegen_expect_token(p, 521)) // token='with' + (a = _PyPegen_expect_token(p, 606)) // token='with' && (_gather_166_var = _gather_166_rule(p)) // ','.(expression ['as' star_target])+ && @@ -19745,7 +19745,7 @@ invalid_with_stmt_indent_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (a = _PyPegen_expect_token(p, 521)) // token='with' + (a = _PyPegen_expect_token(p, 606)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -19802,7 +19802,7 @@ invalid_try_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 511)) // token='try' + (a = _PyPegen_expect_token(p, 609)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -19834,7 +19834,7 @@ invalid_try_stmt_rule(Parser *p) Token * _literal; asdl_stmt_seq* block_var; if ( - (_keyword = _PyPegen_expect_token(p, 511)) // token='try' + (_keyword = _PyPegen_expect_token(p, 609)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -19890,7 +19890,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 523)) // token='except' + (_keyword = _PyPegen_expect_token(p, 620)) // token='except' && (a = expression_rule(p)) // expression && @@ -19928,7 +19928,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 523)) // token='except' + (a = _PyPegen_expect_token(p, 620)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -19959,7 +19959,7 @@ invalid_except_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 523)) // token='except' + (a = _PyPegen_expect_token(p, 620)) // token='except' && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -20004,7 +20004,7 @@ invalid_finally_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 524)) // token='finally' + (a = _PyPegen_expect_token(p, 617)) // token='finally' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20058,7 +20058,7 @@ invalid_except_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 523)) // token='except' + (a = _PyPegen_expect_token(p, 620)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -20094,7 +20094,7 @@ invalid_except_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 523)) // token='except' + (a = _PyPegen_expect_token(p, 620)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20319,7 +20319,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' ) @@ -20349,7 +20349,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && _PyPegen_lookahead_with_name(0, _PyPegen_name_token, p) && @@ -20497,7 +20497,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -20528,7 +20528,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty a_1; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 510)) // token='if' + (a = _PyPegen_expect_token(p, 624)) // token='if' && (a_1 = named_expression_rule(p)) // named_expression && @@ -20581,7 +20581,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 517)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 626)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -20612,7 +20612,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 517)) // token='elif' + (a = _PyPegen_expect_token(p, 626)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -20663,7 +20663,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 518)) // token='else' + (a = _PyPegen_expect_token(p, 627)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20714,7 +20714,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 512)) // token='while' + (_keyword = _PyPegen_expect_token(p, 629)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -20745,7 +20745,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 512)) // token='while' + (a = _PyPegen_expect_token(p, 629)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -20803,11 +20803,11 @@ invalid_for_stmt_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (a = _PyPegen_expect_token(p, 519)) // token='for' + (a = _PyPegen_expect_token(p, 630)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 520)) // token='in' + (_keyword = _PyPegen_expect_token(p, 631)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -20870,7 +20870,7 @@ invalid_def_raw_rule(Parser *p) if ( (_opt_var = _PyPegen_expect_token(p, ASYNC), 1) // ASYNC? && - (a = _PyPegen_expect_token(p, 516)) // token='def' + (a = _PyPegen_expect_token(p, 632)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -20932,7 +20932,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 515)) // token='class' + (a = _PyPegen_expect_token(p, 633)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -21510,7 +21510,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 513)) // token='import' + (_keyword = _PyPegen_expect_token(p, 531)) // token='import' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); @@ -21529,7 +21529,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 514)) // token='from' + (_keyword = _PyPegen_expect_token(p, 569)) // token='from' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); @@ -21565,7 +21565,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 516)) // token='def' + (_keyword = _PyPegen_expect_token(p, 632)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -21639,7 +21639,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 515)) // token='class' + (_keyword = _PyPegen_expect_token(p, 633)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -21694,7 +21694,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 521)) // token='with' + (_keyword = _PyPegen_expect_token(p, 606)) // token='with' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); @@ -21749,7 +21749,7 @@ _tmp_10_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 519)) // token='for' + (_keyword = _PyPegen_expect_token(p, 630)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_10[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -22140,7 +22140,7 @@ _tmp_17_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 514)) // token='from' + (_keyword = _PyPegen_expect_token(p, 569)) // token='from' && (z = expression_rule(p)) // expression ) @@ -22762,7 +22762,7 @@ _tmp_28_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -22920,7 +22920,7 @@ _tmp_31_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -24730,7 +24730,7 @@ _tmp_60_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -29791,7 +29791,7 @@ _tmp_144_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 627)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); @@ -29958,7 +29958,7 @@ _tmp_146_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 594)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -29977,7 +29977,7 @@ _tmp_146_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 595)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -29996,7 +29996,7 @@ _tmp_146_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 596)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -31444,7 +31444,7 @@ _tmp_170_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 620)) // token='except' ) { D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); @@ -31463,7 +31463,7 @@ _tmp_170_rule(Parser *p) 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' + (_keyword = _PyPegen_expect_token(p, 617)) // token='finally' ) { D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); @@ -31500,7 +31500,7 @@ _tmp_171_rule(Parser *p) Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) @@ -31539,7 +31539,7 @@ _tmp_172_rule(Parser *p) Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) @@ -31578,7 +31578,7 @@ _tmp_173_rule(Parser *p) Token * _keyword; expr_ty name_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (name_var = _PyPegen_name_token(p)) // NAME ) @@ -32196,7 +32196,7 @@ _tmp_186_rule(Parser *p) Token * _keyword; expr_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 531)) // token='or' + (_keyword = _PyPegen_expect_token(p, 571)) // token='or' && (c = conjunction_rule(p)) // conjunction ) @@ -32240,7 +32240,7 @@ _tmp_187_rule(Parser *p) Token * _keyword; expr_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 532)) // token='and' + (_keyword = _PyPegen_expect_token(p, 572)) // token='and' && (c = inversion_rule(p)) // inversion ) @@ -32284,7 +32284,7 @@ _tmp_188_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (z = disjunction_rule(p)) // disjunction ) @@ -32328,7 +32328,7 @@ _tmp_189_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 510)) // token='if' + (_keyword = _PyPegen_expect_token(p, 624)) // token='if' && (z = disjunction_rule(p)) // disjunction ) @@ -32922,7 +32922,7 @@ _tmp_202_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) @@ -32961,7 +32961,7 @@ _tmp_203_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) @@ -33000,7 +33000,7 @@ _tmp_204_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) @@ -33039,7 +33039,7 @@ _tmp_205_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 522)) // token='as' + (_keyword = _PyPegen_expect_token(p, 622)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) diff --git a/Tools/peg_generator/pegen/__main__.py b/Tools/peg_generator/pegen/__main__.py index a12fe787f427d..2910d6ccf1c69 100755 --- a/Tools/peg_generator/pegen/__main__.py +++ b/Tools/peg_generator/pegen/__main__.py @@ -10,10 +10,9 @@ import time import token import traceback - from typing import Tuple -from pegen.build import Grammar, Parser, Tokenizer, ParserGenerator +from pegen.build import Grammar, Parser, ParserGenerator, Tokenizer from pegen.validator import validate_grammar diff --git a/Tools/peg_generator/pegen/build.py b/Tools/peg_generator/pegen/build.py index 6f0a091ff47bd..bf01078ff0b4a 100644 --- a/Tools/peg_generator/pegen/build.py +++ b/Tools/peg_generator/pegen/build.py @@ -1,11 +1,10 @@ +import itertools import pathlib import shutil -import tokenize import sysconfig import tempfile -import itertools - -from typing import Optional, Tuple, List, IO, Set, Dict +import tokenize +from typing import IO, Dict, List, Optional, Set, Tuple from pegen.c_generator import CParserGenerator from pegen.grammar import Grammar @@ -45,9 +44,9 @@ def compile_c_extension( of distutils (this is useful in case you want to use a temporary directory). """ import distutils.log - from distutils.core import Distribution, Extension - from distutils.command.clean import clean # type: ignore from distutils.command.build_ext import build_ext # type: ignore + from distutils.command.clean import clean # type: ignore + from distutils.core import Distribution, Extension from distutils.tests.support import fixup_build_ext # type: ignore if verbose: diff --git a/Tools/peg_generator/pegen/c_generator.py b/Tools/peg_generator/pegen/c_generator.py index e928fd3de1704..d15e91098dfe9 100644 --- a/Tools/peg_generator/pegen/c_generator.py +++ b/Tools/peg_generator/pegen/c_generator.py @@ -1,8 +1,8 @@ import ast -from dataclasses import field, dataclass import re -from typing import Any, Dict, IO, Optional, List, Text, Tuple, Set +from dataclasses import dataclass, field from enum import Enum +from typing import IO, Any, Dict, List, Optional, Set, Text, Tuple from pegen import grammar from pegen.grammar import ( @@ -27,7 +27,6 @@ ) from pegen.parser_generator import ParserGenerator - EXTENSION_PREFIX = """\ #include "pegen.h" @@ -120,23 +119,18 @@ def __init__( self.exact_tokens = exact_tokens self.non_exact_tokens = non_exact_tokens self.cache: Dict[Any, FunctionCall] = {} - self.keyword_cache: Dict[str, int] = {} - self.soft_keywords: Set[str] = set() def keyword_helper(self, keyword: str) -> FunctionCall: - if keyword not in self.keyword_cache: - self.keyword_cache[keyword] = self.gen.keyword_type() return FunctionCall( assigned_variable="_keyword", function="_PyPegen_expect_token", - arguments=["p", self.keyword_cache[keyword]], + arguments=["p", self.gen.keywords[keyword]], return_type="Token *", nodetype=NodeTypes.KEYWORD, comment=f"token='{keyword}'", ) def soft_keyword_helper(self, value: str) -> FunctionCall: - self.soft_keywords.add(value.replace('"', "")) return FunctionCall( assigned_variable="_keyword", function="_PyPegen_expect_soft_keyword", @@ -200,20 +194,12 @@ def visit_StringLeaf(self, node: StringLeaf) -> FunctionCall: ) def visit_Rhs(self, node: Rhs) -> FunctionCall: - def can_we_inline(node: Rhs) -> int: - if len(node.alts) != 1 or len(node.alts[0].items) != 1: - return False - # If the alternative has an action we cannot inline - if getattr(node.alts[0], "action", None) is not None: - return False - return True - if node in self.cache: return self.cache[node] - if can_we_inline(node): + if node.can_be_inlined: self.cache[node] = self.generate_call(node.alts[0].items[0]) else: - name = self.gen.name_node(node) + name = self.gen.artifical_rule_from_rhs(node) self.cache[node] = FunctionCall( assigned_variable=f"{name}_var", function=f"{name}_rule", @@ -306,7 +292,7 @@ def visit_Opt(self, node: Opt) -> FunctionCall: def visit_Repeat0(self, node: Repeat0) -> FunctionCall: if node in self.cache: return self.cache[node] - name = self.gen.name_loop(node.node, False) + name = self.gen.artificial_rule_from_repeat(node.node, False) self.cache[node] = FunctionCall( assigned_variable=f"{name}_var", function=f"{name}_rule", @@ -319,7 +305,7 @@ def visit_Repeat0(self, node: Repeat0) -> FunctionCall: def visit_Repeat1(self, node: Repeat1) -> FunctionCall: if node in self.cache: return self.cache[node] - name = self.gen.name_loop(node.node, True) + name = self.gen.artificial_rule_from_repeat(node.node, True) self.cache[node] = FunctionCall( assigned_variable=f"{name}_var", function=f"{name}_rule", @@ -332,7 +318,7 @@ def visit_Repeat1(self, node: Repeat1) -> FunctionCall: def visit_Gather(self, node: Gather) -> FunctionCall: if node in self.cache: return self.cache[node] - name = self.gen.name_gather(node) + name = self.gen.artifical_rule_from_gather(node) self.cache[node] = FunctionCall( assigned_variable=f"{name}_var", function=f"{name}_rule", @@ -429,7 +415,7 @@ def out_of_memory_goto(self, expr: str, goto_target: str) -> None: self.print(f"}}") def generate(self, filename: str) -> None: - self.collect_todo() + self.collect_rules() self.print(f"// @generated by pegen from {filename}") header = self.grammar.metas.get("header", EXTENSION_PREFIX) if header: @@ -439,11 +425,11 @@ def generate(self, filename: str) -> None: self.print(subheader) self._setup_keywords() self._setup_soft_keywords() - for i, (rulename, rule) in enumerate(self.todo.items(), 1000): + for i, (rulename, rule) in enumerate(self.all_rules.items(), 1000): comment = " // Left-recursive" if rule.left_recursive else "" self.print(f"#define {rulename}_type {i}{comment}") self.print() - for rulename, rule in self.todo.items(): + for rulename, rule in self.all_rules.items(): if rule.is_loop() or rule.is_gather(): type = "asdl_seq *" elif rule.type: @@ -452,13 +438,11 @@ def generate(self, filename: str) -> None: type = "void *" self.print(f"static {type}{rulename}_rule(Parser *p);") self.print() - while self.todo: - for rulename, rule in list(self.todo.items()): - del self.todo[rulename] - self.print() - if rule.left_recursive: - self.print("// Left-recursive") - self.visit(rule) + for rulename, rule in list(self.all_rules.items()): + self.print() + if rule.left_recursive: + self.print("// Left-recursive") + self.visit(rule) if self.skip_actions: mode = 0 else: @@ -472,7 +456,7 @@ def generate(self, filename: str) -> None: def _group_keywords_by_length(self) -> Dict[int, List[Tuple[str, int]]]: groups: Dict[int, List[Tuple[str, int]]] = {} - for keyword_str, keyword_type in self.callmakervisitor.keyword_cache.items(): + for keyword_str, keyword_type in self.keywords.items(): length = len(keyword_str) if length in groups: groups[length].append((keyword_str, keyword_type)) @@ -481,9 +465,8 @@ def _group_keywords_by_length(self) -> Dict[int, List[Tuple[str, int]]]: return groups def _setup_keywords(self) -> None: - keyword_cache = self.callmakervisitor.keyword_cache n_keyword_lists = ( - len(max(keyword_cache.keys(), key=len)) + 1 if len(keyword_cache) > 0 else 0 + len(max(self.keywords.keys(), key=len)) + 1 if len(self.keywords) > 0 else 0 ) self.print(f"static const int n_keyword_lists = {n_keyword_lists};") groups = self._group_keywords_by_length() @@ -503,7 +486,7 @@ def _setup_keywords(self) -> None: self.print("};") def _setup_soft_keywords(self) -> None: - soft_keywords = sorted(self.callmakervisitor.soft_keywords) + soft_keywords = sorted(self.soft_keywords) self.print("static char *soft_keywords[] = {") with self.indent(): for keyword in soft_keywords: diff --git a/Tools/peg_generator/pegen/first_sets.py b/Tools/peg_generator/pegen/first_sets.py index 50ced22c2a5cf..611ef514d09bd 100755 --- a/Tools/peg_generator/pegen/first_sets.py +++ b/Tools/peg_generator/pegen/first_sets.py @@ -3,30 +3,27 @@ import argparse import pprint import sys -from typing import Set, Dict +from typing import Dict, Set from pegen.build import build_parser from pegen.grammar import ( Alt, Cut, Gather, - Grammar, GrammarVisitor, Group, - Leaf, Lookahead, NamedItem, NameLeaf, NegativeLookahead, Opt, - Repeat, Repeat0, Repeat1, Rhs, Rule, StringLeaf, - PositiveLookahead, ) +from pegen.parser_generator import compute_nullables argparser = argparse.ArgumentParser( prog="calculate_first_sets", @@ -38,8 +35,7 @@ class FirstSetCalculator(GrammarVisitor): def __init__(self, rules: Dict[str, Rule]) -> None: self.rules = rules - for rule in rules.values(): - rule.nullable_visit(rules) + self.nullables = compute_nullables(rules) self.first_sets: Dict[str, Set[str]] = dict() self.in_process: Set[str] = set() @@ -129,7 +125,7 @@ def visit_Rule(self, item: Rule) -> Set[str]: elif item.name not in self.first_sets: self.in_process.add(item.name) terminals = self.visit(item.rhs) - if item.nullable: + if item in self.nullables: terminals.add("") self.first_sets[item.name] = terminals self.in_process.remove(item.name) diff --git a/Tools/peg_generator/pegen/grammar.py b/Tools/peg_generator/pegen/grammar.py index 66fd5b329a513..fa47b98201c0f 100644 --- a/Tools/peg_generator/pegen/grammar.py +++ b/Tools/peg_generator/pegen/grammar.py @@ -2,6 +2,7 @@ from abc import abstractmethod from typing import ( + TYPE_CHECKING, AbstractSet, Any, Dict, @@ -11,11 +12,9 @@ Optional, Set, Tuple, - TYPE_CHECKING, Union, ) - if TYPE_CHECKING: from pegen.parser_generator import ParserGenerator @@ -31,7 +30,7 @@ def visit(self, node: Any, *args: Any, **kwargs: Any) -> Any: visitor = getattr(self, method, self.generic_visit) return visitor(node, *args, **kwargs) - def generic_visit(self, node: Iterable[Any], *args: Any, **kwargs: Any) -> None: + def generic_visit(self, node: Iterable[Any], *args: Any, **kwargs: Any) -> Any: """Called if no explicit visitor function exists for a node.""" for value in node: if isinstance(value, list): @@ -73,8 +72,6 @@ def __init__(self, name: str, type: Optional[str], rhs: Rhs, memo: Optional[obje self.type = type self.rhs = rhs self.memo = bool(memo) - self.visited = False - self.nullable = False self.left_recursive = False self.leader = False @@ -101,17 +98,6 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[Rhs]: yield self.rhs - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - if self.visited: - # A left-recursive rule is considered non-nullable. - return False - self.visited = True - self.nullable = self.rhs.nullable_visit(rules) - return self.nullable - - def initial_names(self) -> AbstractSet[str]: - return self.rhs.initial_names() - def flatten(self) -> Rhs: # If it's a single parenthesized group, flatten it. rhs = self.rhs @@ -124,10 +110,6 @@ def flatten(self) -> Rhs: rhs = rhs.alts[0].items[0].item.rhs return rhs - def collect_todo(self, gen: ParserGenerator) -> None: - rhs = self.flatten() - rhs.collect_todo(gen) - class Leaf: def __init__(self, value: str): @@ -140,14 +122,6 @@ def __iter__(self) -> Iterable[str]: if False: yield - @abstractmethod - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - raise NotImplementedError - - @abstractmethod - def initial_names(self) -> AbstractSet[str]: - raise NotImplementedError - class NameLeaf(Leaf): """The value is the name.""" @@ -160,15 +134,6 @@ def __str__(self) -> str: def __repr__(self) -> str: return f"NameLeaf({self.value!r})" - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - if self.value in rules: - return rules[self.value].nullable_visit(rules) - # Token or unknown; never empty. - return False - - def initial_names(self) -> AbstractSet[str]: - return {self.value} - class StringLeaf(Leaf): """The value is a string literal, including quotes.""" @@ -176,13 +141,6 @@ class StringLeaf(Leaf): def __repr__(self) -> str: return f"StringLeaf({self.value!r})" - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - # The string token '' is considered empty. - return not self.value - - def initial_names(self) -> AbstractSet[str]: - return set() - class Rhs: def __init__(self, alts: List[Alt]): @@ -198,21 +156,14 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[List[Alt]]: yield self.alts - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - for alt in self.alts: - if alt.nullable_visit(rules): - return True - return False - - def initial_names(self) -> AbstractSet[str]: - names: Set[str] = set() - for alt in self.alts: - names |= alt.initial_names() - return names - - def collect_todo(self, gen: ParserGenerator) -> None: - for alt in self.alts: - alt.collect_todo(gen) + @property + def can_be_inlined(self) -> bool: + if len(self.alts) != 1 or len(self.alts[0].items) != 1: + return False + # If the alternative has an action we cannot inline + if getattr(self.alts[0], "action", None) is not None: + return False + return True class Alt: @@ -239,31 +190,12 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[List[NamedItem]]: yield self.items - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - for item in self.items: - if not item.nullable_visit(rules): - return False - return True - - def initial_names(self) -> AbstractSet[str]: - names: Set[str] = set() - for item in self.items: - names |= item.initial_names() - if not item.nullable: - break - return names - - def collect_todo(self, gen: ParserGenerator) -> None: - for item in self.items: - item.collect_todo(gen) - class NamedItem: def __init__(self, name: Optional[str], item: Item, type: Optional[str] = None): self.name = name self.item = item self.type = type - self.nullable = False def __str__(self) -> str: if not SIMPLE_STR and self.name: @@ -277,16 +209,6 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[Item]: yield self.item - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - self.nullable = self.item.nullable_visit(rules) - return self.nullable - - def initial_names(self) -> AbstractSet[str]: - return self.item.initial_names() - - def collect_todo(self, gen: ParserGenerator) -> None: - gen.callmakervisitor.visit(self.item) - class Forced: def __init__(self, node: Plain): @@ -298,12 +220,6 @@ def __str__(self) -> str: def __iter__(self) -> Iterator[Plain]: yield self.node - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return True - - def initial_names(self) -> AbstractSet[str]: - return set() - class Lookahead: def __init__(self, node: Plain, sign: str): @@ -316,12 +232,6 @@ def __str__(self) -> str: def __iter__(self) -> Iterator[Plain]: yield self.node - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return True - - def initial_names(self) -> AbstractSet[str]: - return set() - class PositiveLookahead(Lookahead): def __init__(self, node: Plain): @@ -357,12 +267,6 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[Item]: yield self.node - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return True - - def initial_names(self) -> AbstractSet[str]: - return self.node.initial_names() - class Repeat: """Shared base class for x* and x+.""" @@ -371,16 +275,9 @@ def __init__(self, node: Plain): self.node = node self.memo: Optional[Tuple[Optional[str], str]] = None - @abstractmethod - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - raise NotImplementedError - def __iter__(self) -> Iterator[Plain]: yield self.node - def initial_names(self) -> AbstractSet[str]: - return self.node.initial_names() - class Repeat0(Repeat): def __str__(self) -> str: @@ -394,9 +291,6 @@ def __str__(self) -> str: def __repr__(self) -> str: return f"Repeat0({self.node!r})" - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return True - class Repeat1(Repeat): def __str__(self) -> str: @@ -410,9 +304,6 @@ def __str__(self) -> str: def __repr__(self) -> str: return f"Repeat1({self.node!r})" - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return False - class Gather(Repeat): def __init__(self, separator: Plain, node: Plain): @@ -425,9 +316,6 @@ def __str__(self) -> str: def __repr__(self) -> str: return f"Gather({self.separator!r}, {self.node!r})" - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return False - class Group: def __init__(self, rhs: Rhs): @@ -442,12 +330,6 @@ def __repr__(self) -> str: def __iter__(self) -> Iterator[Rhs]: yield self.rhs - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return self.rhs.nullable_visit(rules) - - def initial_names(self) -> AbstractSet[str]: - return self.rhs.initial_names() - class Cut: def __init__(self) -> None: @@ -468,9 +350,6 @@ def __eq__(self, other: object) -> bool: return NotImplemented return True - def nullable_visit(self, rules: Dict[str, Rule]) -> bool: - return True - def initial_names(self) -> AbstractSet[str]: return set() diff --git a/Tools/peg_generator/pegen/grammar_visualizer.py b/Tools/peg_generator/pegen/grammar_visualizer.py index 7362ec5fa0f4d..ab5c6364f6390 100644 --- a/Tools/peg_generator/pegen/grammar_visualizer.py +++ b/Tools/peg_generator/pegen/grammar_visualizer.py @@ -1,7 +1,6 @@ import argparse import sys - -from typing import Any, Iterator, Callable +from typing import Any, Callable, Iterator from pegen.build import build_parser from pegen.grammar import Grammar, Rule diff --git a/Tools/peg_generator/pegen/keywordgen.py b/Tools/peg_generator/pegen/keywordgen.py index 6a07f6e8b7bfe..35a5e1a229cde 100644 --- a/Tools/peg_generator/pegen/keywordgen.py +++ b/Tools/peg_generator/pegen/keywordgen.py @@ -59,11 +59,11 @@ def main() -> None: with args.tokens_file as tok_file: all_tokens, exact_tok, non_exact_tok = generate_token_definitions(tok_file) gen = CParserGenerator(grammar, all_tokens, exact_tok, non_exact_tok, file=None) - gen.collect_todo() + gen.collect_rules() with args.keyword_file as thefile: - all_keywords = sorted(list(gen.callmakervisitor.keyword_cache.keys()) + EXTRA_KEYWORDS) - all_soft_keywords = sorted(gen.callmakervisitor.soft_keywords) + all_keywords = sorted(list(gen.keywords.keys()) + EXTRA_KEYWORDS) + all_soft_keywords = sorted(gen.soft_keywords) keywords = "" if not all_keywords else " " + ",\n ".join(map(repr, all_keywords)) soft_keywords = ( diff --git a/Tools/peg_generator/pegen/parser_generator.py b/Tools/peg_generator/pegen/parser_generator.py index 33ecee1ed441f..f2105d8faa273 100644 --- a/Tools/peg_generator/pegen/parser_generator.py +++ b/Tools/peg_generator/pegen/parser_generator.py @@ -1,22 +1,76 @@ +import ast import contextlib +import re from abc import abstractmethod -from typing import IO, AbstractSet, Dict, Iterator, List, Optional, Set, Text, Tuple +from typing import ( + IO, + AbstractSet, + Any, + Dict, + Iterable, + Iterator, + List, + Optional, + Set, + Text, + Tuple, + Union, +) from pegen import sccutils from pegen.grammar import ( Alt, + Cut, + Forced, Gather, Grammar, GrammarError, GrammarVisitor, + Group, + Lookahead, NamedItem, NameLeaf, + Opt, Plain, + Repeat0, + Repeat1, Rhs, Rule, + StringLeaf, ) +class RuleCollectorVisitor(GrammarVisitor): + """Visitor that invokes a provieded callmaker visitor with just the NamedItem nodes""" + + def __init__(self, rules: Dict[str, Rule], callmakervisitor: GrammarVisitor) -> None: + self.rulses = rules + self.callmaker = callmakervisitor + + def visit_Rule(self, rule: Rule) -> None: + self.visit(rule.flatten()) + + def visit_NamedItem(self, item: NamedItem) -> None: + self.callmaker.visit(item) + + +class KeywordCollectorVisitor(GrammarVisitor): + """Visitor that collects all the keywods and soft keywords in the Grammar""" + + def __init__(self, gen: "ParserGenerator", keywords: Dict[str, int], soft_keywords: Set[str]): + self.generator = gen + self.keywords = keywords + self.soft_keywords = soft_keywords + + def visit_StringLeaf(self, node: StringLeaf) -> None: + val = ast.literal_eval(node.value) + if re.match(r"[a-zA-Z_]\w*\Z", val): # This is a keyword + if node.value.endswith("'") and node.value not in self.keywords: + self.keywords[val] = self.generator.keyword_type() + else: + return self.soft_keywords.add(node.value.replace('"', "")) + + class RuleCheckingVisitor(GrammarVisitor): def __init__(self, rules: Dict[str, Rule], tokens: Set[str]): self.rules = rules @@ -39,6 +93,8 @@ class ParserGenerator: def __init__(self, grammar: Grammar, tokens: Set[str], file: Optional[IO[Text]]): self.grammar = grammar self.tokens = tokens + self.keywords: Dict[str, int] = {} + self.soft_keywords: Set[str] = set() self.rules = grammar.rules self.validate_rule_names() if "trailer" not in grammar.metas and "start" not in self.rules: @@ -48,12 +104,10 @@ def __init__(self, grammar: Grammar, tokens: Set[str], file: Optional[IO[Text]]) checker.visit(rule) self.file = file self.level = 0 - compute_nullables(self.rules) self.first_graph, self.first_sccs = compute_left_recursives(self.rules) - self.todo = self.rules.copy() # Rules to generate self.counter = 0 # For name_rule()/name_loop() self.keyword_counter = 499 # For keyword_type() - self.all_rules: Dict[str, Rule] = {} # Rules + temporal rules + self.all_rules: Dict[str, Rule] = self.rules.copy() # Rules + temporal rules self._local_variable_stack: List[List[str]] = [] def validate_rule_names(self) -> None: @@ -94,39 +148,43 @@ def printblock(self, lines: str) -> None: for line in lines.splitlines(): self.print(line) - def collect_todo(self) -> None: + def collect_rules(self) -> None: + keyword_collector = KeywordCollectorVisitor(self, self.keywords, self.soft_keywords) + for rule in self.all_rules.values(): + keyword_collector.visit(rule) + + rule_collector = RuleCollectorVisitor(self.rules, self.callmakervisitor) done: Set[str] = set() while True: - alltodo = list(self.todo) - self.all_rules.update(self.todo) - todo = [i for i in alltodo if i not in done] + computed_rules = list(self.all_rules) + todo = [i for i in computed_rules if i not in done] if not todo: break + done = set(self.all_rules) for rulename in todo: - self.todo[rulename].collect_todo(self) - done = set(alltodo) + rule_collector.visit(self.all_rules[rulename]) def keyword_type(self) -> int: self.keyword_counter += 1 return self.keyword_counter - def name_node(self, rhs: Rhs) -> str: + def artifical_rule_from_rhs(self, rhs: Rhs) -> str: self.counter += 1 name = f"_tmp_{self.counter}" # TODO: Pick a nicer name. - self.todo[name] = Rule(name, None, rhs) + self.all_rules[name] = Rule(name, None, rhs) return name - def name_loop(self, node: Plain, is_repeat1: bool) -> str: + def artificial_rule_from_repeat(self, node: Plain, is_repeat1: bool) -> str: self.counter += 1 if is_repeat1: prefix = "_loop1_" else: prefix = "_loop0_" - name = f"{prefix}{self.counter}" # TODO: It's ugly to signal via the name. - self.todo[name] = Rule(name, None, Rhs([Alt([NamedItem(None, node)])])) + name = f"{prefix}{self.counter}" + self.all_rules[name] = Rule(name, None, Rhs([Alt([NamedItem(None, node)])])) return name - def name_gather(self, node: Gather) -> str: + def artifical_rule_from_gather(self, node: Gather) -> str: self.counter += 1 name = f"_gather_{self.counter}" self.counter += 1 @@ -135,7 +193,7 @@ def name_gather(self, node: Gather) -> str: [NamedItem(None, node.separator), NamedItem("elem", node.node)], action="elem", ) - self.todo[extra_function_name] = Rule( + self.all_rules[extra_function_name] = Rule( extra_function_name, None, Rhs([extra_function_alt]), @@ -143,7 +201,7 @@ def name_gather(self, node: Gather) -> str: alt = Alt( [NamedItem("elem", node.node), NamedItem("seq", NameLeaf(extra_function_name))], ) - self.todo[name] = Rule( + self.all_rules[name] = Rule( name, None, Rhs([alt]), @@ -160,13 +218,120 @@ def dedupe(self, name: str) -> str: return name -def compute_nullables(rules: Dict[str, Rule]) -> None: +class NullableVisitor(GrammarVisitor): + def __init__(self, rules: Dict[str, Rule]) -> None: + self.rules = rules + self.visited: Set[Any] = set() + self.nullables: Set[Union[Rule, NamedItem]] = set() + + def visit_Rule(self, rule: Rule) -> bool: + if rule in self.visited: + return False + self.visited.add(rule) + if self.visit(rule.rhs): + self.nullables.add(rule) + return rule in self.nullables + + def visit_Rhs(self, rhs: Rhs) -> bool: + for alt in rhs.alts: + if self.visit(alt): + return True + return False + + def visit_Alt(self, alt: Alt) -> bool: + for item in alt.items: + if not self.visit(item): + return False + return True + + def visit_Forced(self, force: Forced) -> bool: + return True + + def visit_LookAhead(self, lookahead: Lookahead) -> bool: + return True + + def visit_Opt(self, opt: Opt) -> bool: + return True + + def visit_Repeat0(self, repeat: Repeat0) -> bool: + return True + + def visit_Repeat1(self, repeat: Repeat1) -> bool: + return False + + def visit_Gather(self, gather: Gather) -> bool: + return False + + def visit_Cut(self, cut: Cut) -> bool: + return False + + def visit_Group(self, group: Group) -> bool: + return self.visit(group.rhs) + + def visit_NamedItem(self, item: NamedItem) -> bool: + if self.visit(item.item): + self.nullables.add(item) + return item in self.nullables + + def visit_NameLeaf(self, node: NameLeaf) -> bool: + if node.value in self.rules: + return self.visit(self.rules[node.value]) + # Token or unknown; never empty. + return False + + def visit_StringLeaf(self, node: StringLeaf) -> bool: + # The string token '' is considered empty. + return not node.value + + +def compute_nullables(rules: Dict[str, Rule]) -> Set[Any]: """Compute which rules in a grammar are nullable. Thanks to TatSu (tatsu/leftrec.py) for inspiration. """ + nullable_visitor = NullableVisitor(rules) for rule in rules.values(): - rule.nullable_visit(rules) + nullable_visitor.visit(rule) + return nullable_visitor.nullables + + +class InitialNamesVisitor(GrammarVisitor): + def __init__(self, rules: Dict[str, Rule]) -> None: + self.rules = rules + self.nullables = compute_nullables(rules) + + def generic_visit(self, node: Iterable[Any], *args: Any, **kwargs: Any) -> Set[Any]: + names: Set[str] = set() + for value in node: + if isinstance(value, list): + for item in value: + names |= self.visit(item, *args, **kwargs) + else: + names |= self.visit(value, *args, **kwargs) + return names + + def visit_Alt(self, alt: Alt) -> Set[Any]: + names: Set[str] = set() + for item in alt.items: + names |= self.visit(item) + if item not in self.nullables: + break + return names + + def visit_Forced(self, force: Forced) -> Set[Any]: + return set() + + def visit_LookAhead(self, lookahead: Lookahead) -> Set[Any]: + return set() + + def visit_Cut(self, cut: Cut) -> Set[Any]: + return set() + + def visit_NameLeaf(self, node: NameLeaf) -> Set[Any]: + return {node.value} + + def visit_StringLeaf(self, node: StringLeaf) -> Set[Any]: + return set() def compute_left_recursives( @@ -207,10 +372,11 @@ def make_first_graph(rules: Dict[str, Rule]) -> Dict[str, AbstractSet[str]]: Note that this requires the nullable flags to have been computed. """ + initial_name_visitor = InitialNamesVisitor(rules) graph = {} vertices: Set[str] = set() for rulename, rhs in rules.items(): - graph[rulename] = names = rhs.initial_names() + graph[rulename] = names = initial_name_visitor.visit(rhs) vertices |= names for vertex in vertices: graph.setdefault(vertex, set()) diff --git a/Tools/peg_generator/pegen/python_generator.py b/Tools/peg_generator/pegen/python_generator.py index 201bf2baa805f..7aa730ae1c953 100644 --- a/Tools/peg_generator/pegen/python_generator.py +++ b/Tools/peg_generator/pegen/python_generator.py @@ -95,8 +95,6 @@ class PythonCallMakerVisitor(GrammarVisitor): def __init__(self, parser_generator: ParserGenerator): self.gen = parser_generator self.cache: Dict[Any, Any] = {} - self.keywords: Set[str] = set() - self.soft_keywords: Set[str] = set() def visit_NameLeaf(self, node: NameLeaf) -> Tuple[Optional[str], str]: name = node.value @@ -111,12 +109,6 @@ def visit_NameLeaf(self, node: NameLeaf) -> Tuple[Optional[str], str]: return name, f"self.{name}()" def visit_StringLeaf(self, node: StringLeaf) -> Tuple[str, str]: - val = ast.literal_eval(node.value) - if re.match(r"[a-zA-Z_]\w*\Z", val): # This is a keyword - if node.value.endswith("'"): - self.keywords.add(val) - else: - self.soft_keywords.add(val) return "literal", f"self.expect({node.value})" def visit_Rhs(self, node: Rhs) -> Tuple[Optional[str], str]: @@ -125,7 +117,7 @@ def visit_Rhs(self, node: Rhs) -> Tuple[Optional[str], str]: if len(node.alts) == 1 and len(node.alts[0].items) == 1: self.cache[node] = self.visit(node.alts[0].items[0]) else: - name = self.gen.name_node(node) + name = self.gen.artifical_rule_from_rhs(node) self.cache[node] = name, f"self.{name}()" return self.cache[node] @@ -163,21 +155,21 @@ def visit_Opt(self, node: Opt) -> Tuple[str, str]: def visit_Repeat0(self, node: Repeat0) -> Tuple[str, str]: if node in self.cache: return self.cache[node] - name = self.gen.name_loop(node.node, False) + name = self.gen.artificial_rule_from_repeat(node.node, False) self.cache[node] = name, f"self.{name}()," # Also a trailing comma! return self.cache[node] def visit_Repeat1(self, node: Repeat1) -> Tuple[str, str]: if node in self.cache: return self.cache[node] - name = self.gen.name_loop(node.node, True) + name = self.gen.artificial_rule_from_repeat(node.node, True) self.cache[node] = name, f"self.{name}()" # But no trailing comma here! return self.cache[node] def visit_Gather(self, node: Gather) -> Tuple[str, str]: if node in self.cache: return self.cache[node] - name = self.gen.name_gather(node) + name = self.gen.artifical_rule_from_gather(node) self.cache[node] = name, f"self.{name}()" # No trailing comma here either! return self.cache[node] @@ -219,6 +211,7 @@ def __init__( ) def generate(self, filename: str) -> None: + self.collect_rules() header = self.grammar.metas.get("header", MODULE_PREFIX) if header is not None: self.print(header.rstrip("\n").format(filename=filename)) @@ -228,17 +221,15 @@ def generate(self, filename: str) -> None: cls_name = self.grammar.metas.get("class", "GeneratedParser") self.print("# Keywords and soft keywords are listed at the end of the parser definition.") self.print(f"class {cls_name}(Parser):") - while self.todo: - for rulename, rule in list(self.todo.items()): - del self.todo[rulename] - self.print() - with self.indent(): - self.visit(rule) + for rule in self.all_rules.values(): + self.print() + with self.indent(): + self.visit(rule) self.print() with self.indent(): - self.print(f"KEYWORDS = {tuple(self.callmakervisitor.keywords)}") - self.print(f"SOFT_KEYWORDS = {tuple(self.callmakervisitor.soft_keywords)}") + self.print(f"KEYWORDS = {tuple(self.keywords)}") + self.print(f"SOFT_KEYWORDS = {tuple(self.soft_keywords)}") trailer = self.grammar.metas.get("trailer", MODULE_SUFFIX.format(class_name=cls_name)) if trailer is not None: @@ -270,8 +261,6 @@ def visit_Rule(self, node: Rule) -> None: self.print(f"def {node.name}(self) -> Optional[{node_type}]:") with self.indent(): self.print(f"# {node.name}: {rhs}") - if node.nullable: - self.print(f"# nullable={node.nullable}") self.print("mark = self._mark()") if self.alts_uses_locations(node.rhs.alts): self.print("tok = self._tokenizer.peek()") diff --git a/Tools/peg_generator/pegen/testutil.py b/Tools/peg_generator/pegen/testutil.py index e0928a4af701d..8e5dbc5cdbb33 100644 --- a/Tools/peg_generator/pegen/testutil.py +++ b/Tools/peg_generator/pegen/testutil.py @@ -4,10 +4,9 @@ import pathlib import sys import textwrap -import tokenize import token - -from typing import Any, cast, Dict, IO, Type, Final +import tokenize +from typing import IO, Any, Dict, Final, Type, cast from pegen.build import compile_c_extension from pegen.c_generator import CParserGenerator diff --git a/Tools/peg_generator/pegen/validator.py b/Tools/peg_generator/pegen/validator.py index e7d6980d8b2dd..c48a01eedf5d5 100644 --- a/Tools/peg_generator/pegen/validator.py +++ b/Tools/peg_generator/pegen/validator.py @@ -1,12 +1,7 @@ from typing import Optional from pegen import grammar -from pegen.grammar import ( - Alt, - GrammarVisitor, - Rule, - Rhs, -) +from pegen.grammar import Alt, GrammarVisitor, Rhs, Rule class ValidationError(Exception): From webhook-mailer at python.org Sun Sep 5 10:02:00 2021 From: webhook-mailer at python.org (pablogsal) Date: Sun, 05 Sep 2021 14:02:00 -0000 Subject: [Python-checkins] Check that 'configure' is generated by GNU Autoconf 2.69 (GH-28152) (GH-28155) Message-ID: https://github.com/python/cpython/commit/8bb4912d94a17ad9d57aad8b8a37ce3a159fa1e0 commit: 8bb4912d94a17ad9d57aad8b8a37ce3a159fa1e0 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: pablogsal date: 2021-09-05T15:01:56+01:00 summary: Check that 'configure' is generated by GNU Autoconf 2.69 (GH-28152) (GH-28155) (cherry picked from commit 6beaf2ffaecd92955c5b3c579f184cbecc222636) files: M .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7b6ec726b651ea..2ccd351d8682e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,6 +105,8 @@ jobs: run: make smelly - name: Check limited ABI symbols run: make check-limited-abi + - name: Check Autoconf version 2.69 + run: grep "Generated by GNU Autoconf 2.69" configure build_win32: name: 'Windows (x86)' From webhook-mailer at python.org Sun Sep 5 11:54:28 2021 From: webhook-mailer at python.org (serhiy-storchaka) Date: Sun, 05 Sep 2021 15:54:28 -0000 Subject: [Python-checkins] bpo-41031: Match C and Python code formatting of unprintable exceptions and exceptions in the __main__ module. (GH-28139) Message-ID: https://github.com/python/cpython/commit/9e31b3952f6101ef71ec029481b972169ab0e0f1 commit: 9e31b3952f6101ef71ec029481b972169ab0e0f1 branch: main author: Irit Katriel <1055913+iritkatriel at users.noreply.github.com> committer: serhiy-storchaka date: 2021-09-05T18:54:13+03:00 summary: bpo-41031: Match C and Python code formatting of unprintable exceptions and exceptions in the __main__ module. (GH-28139) files: A Misc/NEWS.d/next/Core and Builtins/2021-09-03-12-35-17.bpo-41031.yPSJEs.rst M Lib/test/test_sys.py M Lib/test/test_traceback.py M Lib/traceback.py M Python/errors.c M Python/pythonrun.c diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py index 12305ca95d0a0d..e98803b48f6ac0 100644 --- a/Lib/test/test_sys.py +++ b/Lib/test/test_sys.py @@ -1071,19 +1071,29 @@ def __del__(self): self.assertTrue(report.endswith("\n")) def test_original_unraisablehook_exception_qualname(self): + # See bpo-41031, bpo-45083. + # Check that the exception is printed with its qualified name + # rather than just classname, and the module names appears + # unless it is one of the hard-coded exclusions. class A: class B: class X(Exception): pass - with test.support.captured_stderr() as stderr, \ - test.support.swap_attr(sys, 'unraisablehook', - sys.__unraisablehook__): - expected = self.write_unraisable_exc( - A.B.X(), "msg", "obj"); - report = stderr.getvalue() - testName = 'test_original_unraisablehook_exception_qualname' - self.assertIn(f"{testName}..A.B.X", report) + for moduleName in 'builtins', '__main__', 'some_module': + with self.subTest(moduleName=moduleName): + A.B.X.__module__ = moduleName + with test.support.captured_stderr() as stderr, \ + test.support.swap_attr(sys, 'unraisablehook', + sys.__unraisablehook__): + expected = self.write_unraisable_exc( + A.B.X(), "msg", "obj"); + report = stderr.getvalue() + self.assertIn(A.B.X.__qualname__, report) + if moduleName in ['builtins', '__main__']: + self.assertNotIn(moduleName + '.', report) + else: + self.assertIn(moduleName + '.', report) def test_original_unraisablehook_wrong_type(self): exc = ValueError(42) diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 949adefd76faac..363165d06ef834 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -172,7 +172,7 @@ def __str__(self): 1/0 err = traceback.format_exception_only(X, X()) self.assertEqual(len(err), 1) - str_value = '' % X.__name__ + str_value = '' if X.__module__ in ('__main__', 'builtins'): str_name = X.__qualname__ else: @@ -1171,19 +1171,45 @@ def test_syntax_error_various_offsets(self): exp = "\n".join(expected) self.assertEqual(exp, err) - def test_format_exception_only_qualname(self): + def test_exception_qualname(self): class A: class B: class X(Exception): def __str__(self): return "I am X" - pass + err = self.get_report(A.B.X()) str_value = 'I am X' str_name = '.'.join([A.B.X.__module__, A.B.X.__qualname__]) exp = "%s: %s\n" % (str_name, str_value) self.assertEqual(exp, err) + def test_exception_modulename(self): + class X(Exception): + def __str__(self): + return "I am X" + + for modulename in '__main__', 'builtins', 'some_module': + X.__module__ = modulename + with self.subTest(modulename=modulename): + err = self.get_report(X()) + str_value = 'I am X' + if modulename in ['builtins', '__main__']: + str_name = X.__qualname__ + else: + str_name = '.'.join([X.__module__, X.__qualname__]) + exp = "%s: %s\n" % (str_name, str_value) + self.assertEqual(exp, err) + + def test_exception_bad__str__(self): + class X(Exception): + def __str__(self): + 1/0 + err = self.get_report(X()) + str_value = '' + str_name = '.'.join([X.__module__, X.__qualname__]) + self.assertEqual(err, f"{str_name}: {str_value}\n") + class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase): # diff --git a/Lib/traceback.py b/Lib/traceback.py index d51c2010005b76..1b537dc5a91142 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -169,7 +169,7 @@ def _some_str(value): try: return str(value) except: - return '' % type(value).__name__ + return '' # -- diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-03-12-35-17.bpo-41031.yPSJEs.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-03-12-35-17.bpo-41031.yPSJEs.rst new file mode 100644 index 00000000000000..5dcfaa0046c65c --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-03-12-35-17.bpo-41031.yPSJEs.rst @@ -0,0 +1 @@ +Match C and Python code formatting of unprintable exceptions and exceptions in the :mod:`__main__` module. \ No newline at end of file diff --git a/Python/errors.c b/Python/errors.c index 15ca21b68400f2..b2030f728a7ebd 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -25,6 +25,7 @@ extern char *strerror(int); extern "C" { #endif +_Py_IDENTIFIER(__main__); _Py_IDENTIFIER(__module__); _Py_IDENTIFIER(builtins); _Py_IDENTIFIER(stderr); @@ -1297,7 +1298,8 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type, } } else { - if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) { + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins) && + !_PyUnicode_EqualToASCIIId(modulename, &PyId___main__)) { if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) { Py_DECREF(modulename); return -1; diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 3d07f43b5256d1..0e0262c0e8c69f 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -35,6 +35,7 @@ #endif +_Py_IDENTIFIER(__main__); _Py_IDENTIFIER(builtins); _Py_IDENTIFIER(excepthook); _Py_IDENTIFIER(flush); @@ -974,7 +975,8 @@ print_exception(PyObject *f, PyObject *value) err = PyFile_WriteString("", f); } else { - if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) + if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins) && + !_PyUnicode_EqualToASCIIId(modulename, &PyId___main__)) { err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW); err += PyFile_WriteString(".", f); From webhook-mailer at python.org Sun Sep 5 13:37:06 2021 From: webhook-mailer at python.org (rhettinger) Date: Sun, 05 Sep 2021 17:37:06 -0000 Subject: [Python-checkins] More useful OrderedDict LRU recipes (GH-28164) Message-ID: https://github.com/python/cpython/commit/c860d30fa055ada336c75157b488c7baafb5bdad commit: c860d30fa055ada336c75157b488c7baafb5bdad branch: main author: Raymond Hettinger committer: rhettinger date: 2021-09-05T12:37:02-05:00 summary: More useful OrderedDict LRU recipes (GH-28164) files: M Doc/library/collections.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index b1779a5b2382e..4ba197e11e97b 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -1175,41 +1175,98 @@ variants of :func:`functools.lru_cache`: .. testcode:: - class LRU: + from time import time - def __init__(self, func, maxsize=128): + class TimeBoundedLRU: + "LRU Cache that invalidates and refreshes old entries." + + def __init__(self, func, maxsize=128, maxage=30): + self.cache = OrderedDict() # { args : (timestamp, result)} self.func = func self.maxsize = maxsize - self.cache = OrderedDict() + self.maxage = maxage + + def __call__(self, *args): + if args in self.cache: + self.cache.move_to_end(args) + timestamp, result = self.cache[args] + if time() - timestamp <= self.maxage: + return result + result = self.func(*args) + self.cache[args] = time(), result + if len(self.cache) > self.maxsize: + self.cache.popitem(0) + return result + + +.. testcode:: + + class MultiHitLRUCache: + """ LRU cache that defers caching a result until + it has been requested multiple times. + + To avoid flushing the LRU cache with one-time requests, + we don't cache until a request has been made more than once. + + """ + + def __init__(self, func, maxsize=128, maxrequests=4096, cache_after=1): + self.requests = OrderedDict() # { uncached_key : request_count } + self.cache = OrderedDict() # { cached_key : function_result } + self.func = func + self.maxrequests = maxrequests # max number of uncached requests + self.maxsize = maxsize # max number of stored return values + self.cache_after = cache_after 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 + return self.cache[args] + result = self.func(*args) + self.requests[args] = self.requests.get(args, 0) + 1 + if self.requests[args] <= self.cache_after: + self.requests.move_to_end(args) + if len(self.requests) > self.maxrequests: + self.requests.popitem(0) + else: + self.requests.pop(args, None) + self.cache[args] = result + if len(self.cache) > self.maxsize: + self.cache.popitem(0) + return result .. doctest:: :hide: >>> def square(x): - ... return x ** 2 + ... return x * x ... - >>> 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 + >>> f = MultiHitLRUCache(square, maxsize=4, maxrequests=6) + >>> list(map(f, range(10))) # First requests, don't cache + [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] + >>> f(4) # Cache the second request + 16 + >>> f(6) # Cache the second request + 36 + >>> f(2) # The first request aged out, so don't cache + 4 + >>> f(6) # Cache hit + 36 + >>> f(4) # Cache hit and move to front + 16 + >>> list(f.cache.values()) + [36, 16] + >>> set(f.requests).isdisjoint(f.cache) True - >>> actual = list(s.cache.items()) - >>> expected = [((x,), x**2) for x in range(15, 20)] - >>> actual == expected + >>> list(map(f, [9, 8, 7])) # Cache these second requests + [81, 64, 49] + >>> list(map(f, [7, 9])) # Cache hits + [49, 81] + >>> list(f.cache.values()) + [16, 64, 49, 81] + >>> set(f.requests).isdisjoint(f.cache) True - :class:`UserDict` objects ------------------------- From webhook-mailer at python.org Sun Sep 5 13:57:37 2021 From: webhook-mailer at python.org (miss-islington) Date: Sun, 05 Sep 2021 17:57:37 -0000 Subject: [Python-checkins] More useful OrderedDict LRU recipes (GH-28164) Message-ID: https://github.com/python/cpython/commit/d5feb2b1f12a15c1a9bac094a8f6f77d0cfcbdc2 commit: d5feb2b1f12a15c1a9bac094a8f6f77d0cfcbdc2 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-09-05T10:57:32-07:00 summary: More useful OrderedDict LRU recipes (GH-28164) (cherry picked from commit c860d30fa055ada336c75157b488c7baafb5bdad) Co-authored-by: Raymond Hettinger files: M Doc/library/collections.rst diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index b1779a5b2382e5..4ba197e11e97bd 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -1175,41 +1175,98 @@ variants of :func:`functools.lru_cache`: .. testcode:: - class LRU: + from time import time - def __init__(self, func, maxsize=128): + class TimeBoundedLRU: + "LRU Cache that invalidates and refreshes old entries." + + def __init__(self, func, maxsize=128, maxage=30): + self.cache = OrderedDict() # { args : (timestamp, result)} self.func = func self.maxsize = maxsize - self.cache = OrderedDict() + self.maxage = maxage + + def __call__(self, *args): + if args in self.cache: + self.cache.move_to_end(args) + timestamp, result = self.cache[args] + if time() - timestamp <= self.maxage: + return result + result = self.func(*args) + self.cache[args] = time(), result + if len(self.cache) > self.maxsize: + self.cache.popitem(0) + return result + + +.. testcode:: + + class MultiHitLRUCache: + """ LRU cache that defers caching a result until + it has been requested multiple times. + + To avoid flushing the LRU cache with one-time requests, + we don't cache until a request has been made more than once. + + """ + + def __init__(self, func, maxsize=128, maxrequests=4096, cache_after=1): + self.requests = OrderedDict() # { uncached_key : request_count } + self.cache = OrderedDict() # { cached_key : function_result } + self.func = func + self.maxrequests = maxrequests # max number of uncached requests + self.maxsize = maxsize # max number of stored return values + self.cache_after = cache_after 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 + return self.cache[args] + result = self.func(*args) + self.requests[args] = self.requests.get(args, 0) + 1 + if self.requests[args] <= self.cache_after: + self.requests.move_to_end(args) + if len(self.requests) > self.maxrequests: + self.requests.popitem(0) + else: + self.requests.pop(args, None) + self.cache[args] = result + if len(self.cache) > self.maxsize: + self.cache.popitem(0) + return result .. doctest:: :hide: >>> def square(x): - ... return x ** 2 + ... return x * x ... - >>> 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 + >>> f = MultiHitLRUCache(square, maxsize=4, maxrequests=6) + >>> list(map(f, range(10))) # First requests, don't cache + [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] + >>> f(4) # Cache the second request + 16 + >>> f(6) # Cache the second request + 36 + >>> f(2) # The first request aged out, so don't cache + 4 + >>> f(6) # Cache hit + 36 + >>> f(4) # Cache hit and move to front + 16 + >>> list(f.cache.values()) + [36, 16] + >>> set(f.requests).isdisjoint(f.cache) True - >>> actual = list(s.cache.items()) - >>> expected = [((x,), x**2) for x in range(15, 20)] - >>> actual == expected + >>> list(map(f, [9, 8, 7])) # Cache these second requests + [81, 64, 49] + >>> list(map(f, [7, 9])) # Cache hits + [49, 81] + >>> list(f.cache.values()) + [16, 64, 49, 81] + >>> set(f.requests).isdisjoint(f.cache) True - :class:`UserDict` objects ------------------------- From webhook-mailer at python.org Sun Sep 5 15:54:50 2021 From: webhook-mailer at python.org (ned-deily) Date: Sun, 05 Sep 2021 19:54:50 -0000 Subject: [Python-checkins] bpo-44848: Update macOS installer to use SQLite 3.36.0 (GH-27621) Message-ID: https://github.com/python/cpython/commit/5024dc1c6e08247693aea6ad6e225ec5dcaf0721 commit: 5024dc1c6e08247693aea6ad6e225ec5dcaf0721 branch: main author: Erlend Egeberg Aasland committer: ned-deily date: 2021-09-05T15:54:39-04:00 summary: bpo-44848: Update macOS installer to use SQLite 3.36.0 (GH-27621) files: A Misc/NEWS.d/next/macOS/2021-08-06-10-08-41.bpo-44848.0uYXsE.rst M Mac/BuildScript/build-installer.py diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py index e89b1c1a421006..529060d8a1303b 100755 --- a/Mac/BuildScript/build-installer.py +++ b/Mac/BuildScript/build-installer.py @@ -359,9 +359,9 @@ def library_recipes(): ), ), dict( - name="SQLite 3.35.5", - url="https://sqlite.org/2021/sqlite-autoconf-3350500.tar.gz", - checksum='d1d1aba394c8e0443077dc9f1a681bb8', + name="SQLite 3.36.0", + url="https://sqlite.org/2021/sqlite-autoconf-3360000.tar.gz", + checksum='f5752052fc5b8e1b539af86a3671eac7', extra_cflags=('-Os ' '-DSQLITE_ENABLE_FTS5 ' '-DSQLITE_ENABLE_FTS4 ' diff --git a/Misc/NEWS.d/next/macOS/2021-08-06-10-08-41.bpo-44848.0uYXsE.rst b/Misc/NEWS.d/next/macOS/2021-08-06-10-08-41.bpo-44848.0uYXsE.rst new file mode 100644 index 00000000000000..7e9c41a8e9a480 --- /dev/null +++ b/Misc/NEWS.d/next/macOS/2021-08-06-10-08-41.bpo-44848.0uYXsE.rst @@ -0,0 +1 @@ +Update macOS installer to use SQLite 3.36.0. From webhook-mailer at python.org Mon Sep 6 02:50:58 2021 From: webhook-mailer at python.org (JulienPalard) Date: Mon, 06 Sep 2021 06:50:58 -0000 Subject: [Python-checkins] bpo-42238: [doc] remove unused, and deduplicate, suspicious ignore rules. (GH-28137) Message-ID: https://github.com/python/cpython/commit/37272f5800ee1e9fcb2da4a1766366519b9b3d94 commit: 37272f5800ee1e9fcb2da4a1766366519b9b3d94 branch: main author: Julien Palard committer: JulienPalard date: 2021-09-06T08:50:48+02:00 summary: bpo-42238: [doc] remove unused, and deduplicate, suspicious ignore rules. (GH-28137) files: M Doc/tools/extensions/suspicious.py M Doc/tools/susp-ignored.csv diff --git a/Doc/tools/extensions/suspicious.py b/Doc/tools/extensions/suspicious.py index 9e814fb94d2b56..c3de4d79c83f87 100644 --- a/Doc/tools/extensions/suspicious.py +++ b/Doc/tools/extensions/suspicious.py @@ -118,7 +118,7 @@ def finish(self): self.logger.warning( 'Found %s/%s unused rules: %s' % ( len(unused_rules), len(self.rules), - ''.join(repr(rule) for rule in unused_rules), + '\n'.join(repr(rule) for rule in unused_rules), ) ) return diff --git a/Doc/tools/susp-ignored.csv b/Doc/tools/susp-ignored.csv index f9b76bfe64220c..b70e1ffced4e3d 100644 --- a/Doc/tools/susp-ignored.csv +++ b/Doc/tools/susp-ignored.csv @@ -234,12 +234,6 @@ library/tarfile,,:xz,'r:xz' library/tarfile,,:xz,'w:xz' library/time,,:mm, library/time,,:ss, -library/tkinter,294,::,ttk::frame .frm -padding 10 -library/tkinter,294,::,"grid [ttk::label .frm.lbl -text ""Hello World!""] -column 0 -row 0" -library/tkinter,294,::,"grid [ttk::button .frm.btn -text ""Quit"" -command ""destroy .""] -column 1 -row 0" -library/tkinter,304,::,ttk::frame -library/tkinter,402,::,ttk::button -library/tkinter,410,::,ttk::widget library/tracemalloc,,:limit,"for index, stat in enumerate(top_stats[:limit], 1):" library/turtle,,::,Example:: library/unittest,,:foo,"self.assertEqual(cm.output, ['INFO:foo:first message'," @@ -376,17 +370,13 @@ library/importlib.metadata,,:main,"EntryPoint(name='wheel', value='wheel.cli:mai library/importlib.metadata,,`,loading the metadata for packages for the indicated ``context``. library/re,,`,"`" using/configure,84,:db2,=db1:db2:... -library/typing,1004,`,# Type of ``val`` is narrowed to ``str`` -library/typing,1004,`,"# Else, type of ``val`` is narrowed to ``float``." -library/typing,1004,`,# Type of ``val`` is narrowed to ``List[str]``. -library/typing,1004,`,# Type of ``val`` remains as ``List[object]``. -library/tkinter,312,::,ttk::frame .frm -padding 10 -library/tkinter,312,::,"grid [ttk::label .frm.lbl -text ""Hello World!""] -column 0 -row 0" -library/tkinter,312,::,"grid [ttk::button .frm.btn -text ""Quit"" -command ""destroy .""] -column 1 -row 0" -library/tkinter,322,::,ttk::frame -library/tkinter,420,::,ttk::button -library/tkinter,428,::,ttk::widget -library/typing,1011,`,# Type of ``val`` is narrowed to ``str`` -library/typing,1011,`,"# Else, type of ``val`` is narrowed to ``float``." -library/typing,1011,`,# Type of ``val`` is narrowed to ``List[str]``. -library/typing,1011,`,# Type of ``val`` remains as ``List[object]``. +library/typing,,`,# Type of ``val`` is narrowed to ``str`` +library/typing,,`,"# Else, type of ``val`` is narrowed to ``float``." +library/typing,,`,# Type of ``val`` is narrowed to ``List[str]``. +library/typing,,`,# Type of ``val`` remains as ``List[object]``. +library/tkinter,,::,ttk::frame .frm -padding 10 +library/tkinter,,::,"grid [ttk::label .frm.lbl -text ""Hello World!""] -column 0 -row 0" +library/tkinter,,::,"grid [ttk::button .frm.btn -text ""Quit"" -command ""destroy .""] -column 1 -row 0" +library/tkinter,,::,ttk::frame +library/tkinter,,::,ttk::button +library/tkinter,,::,ttk::widget From webhook-mailer at python.org Mon Sep 6 12:55:42 2021 From: webhook-mailer at python.org (zooba) Date: Mon, 06 Sep 2021 16:55:42 -0000 Subject: [Python-checkins] bpo-45052: Unskips a failing `test_shared_memory_basics` test (GH-28182) Message-ID: https://github.com/python/cpython/commit/19871fce3b74fc3f37e334a999e00d0ef65a8f1e commit: 19871fce3b74fc3f37e334a999e00d0ef65a8f1e branch: main author: Nikita Sobolev committer: zooba date: 2021-09-06T17:55:34+01:00 summary: bpo-45052: Unskips a failing `test_shared_memory_basics` test (GH-28182) files: A Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst M Lib/test/_test_multiprocessing.py diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index 0f4e4fd910ba3..8ebcd0d64dfaa 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3773,7 +3773,6 @@ def _attach_existing_shmem_then_write(shmem_name_or_obj, binary_data): local_sms.buf[:len(binary_data)] = binary_data local_sms.close() - @unittest.skipIf(sys.platform == "win32", "test is broken on Windows") def test_shared_memory_basics(self): sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512) self.addCleanup(sms.unlink) @@ -3792,7 +3791,6 @@ def test_shared_memory_basics(self): pickled_sms = pickle.dumps(sms) sms2 = pickle.loads(pickled_sms) self.assertEqual(sms.name, sms2.name) - self.assertEqual(sms.size, sms2.size) self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle') # Modify contents of shared memory segment through memoryview. diff --git a/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst b/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst new file mode 100644 index 0000000000000..5c2e4f3e0e67b --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst @@ -0,0 +1,7 @@ +``WithProcessesTestSharedMemory.test_shared_memory_basics`` test was +ignored, because ``self.assertEqual(sms.size, sms2.size)`` line was failing. +It is now removed and test is unskipped. + +The main motivation for this line to be removed from the test is that the +``size`` of ``SharedMemory`` is not ever guaranteed to be the same. It is +decided by the platform. From webhook-mailer at python.org Mon Sep 6 13:16:52 2021 From: webhook-mailer at python.org (miss-islington) Date: Mon, 06 Sep 2021 17:16:52 -0000 Subject: [Python-checkins] bpo-45052: Unskips a failing `test_shared_memory_basics` test (GH-28182) Message-ID: https://github.com/python/cpython/commit/6b5aea2dc1bf7e117d40d6c9035d5c13124fd968 commit: 6b5aea2dc1bf7e117d40d6c9035d5c13124fd968 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-09-06T10:16:44-07:00 summary: bpo-45052: Unskips a failing `test_shared_memory_basics` test (GH-28182) (cherry picked from commit 19871fce3b74fc3f37e334a999e00d0ef65a8f1e) Co-authored-by: Nikita Sobolev files: A Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst M Lib/test/_test_multiprocessing.py diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index a7cc1e5d09ca54..087ab70f66d644 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -3771,7 +3771,6 @@ def _attach_existing_shmem_then_write(shmem_name_or_obj, binary_data): local_sms.buf[:len(binary_data)] = binary_data local_sms.close() - @unittest.skipIf(sys.platform == "win32", "test is broken on Windows") def test_shared_memory_basics(self): sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512) self.addCleanup(sms.unlink) @@ -3790,7 +3789,6 @@ def test_shared_memory_basics(self): pickled_sms = pickle.dumps(sms) sms2 = pickle.loads(pickled_sms) self.assertEqual(sms.name, sms2.name) - self.assertEqual(sms.size, sms2.size) self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle') # Modify contents of shared memory segment through memoryview. diff --git a/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst b/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst new file mode 100644 index 00000000000000..5c2e4f3e0e67bc --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2021-09-06-19-00-29.bpo-45052.yrOK3J.rst @@ -0,0 +1,7 @@ +``WithProcessesTestSharedMemory.test_shared_memory_basics`` test was +ignored, because ``self.assertEqual(sms.size, sms2.size)`` line was failing. +It is now removed and test is unskipped. + +The main motivation for this line to be removed from the test is that the +``size`` of ``SharedMemory`` is not ever guaranteed to be the same. It is +decided by the platform. From webhook-mailer at python.org Mon Sep 6 13:54:51 2021 From: webhook-mailer at python.org (tim-one) Date: Mon, 06 Sep 2021 17:54:51 -0000 Subject: [Python-checkins] bpo-34561: Switch to Munro & Wild "powersort" merge strategy. (#28108) Message-ID: https://github.com/python/cpython/commit/5cb4c672d855033592f0e05162f887def236c00a commit: 5cb4c672d855033592f0e05162f887def236c00a branch: main author: Tim Peters committer: tim-one date: 2021-09-06T12:54:41-05:00 summary: bpo-34561: Switch to Munro & Wild "powersort" merge strategy. (#28108) For list.sort(), replace our ad hoc merge ordering strategy with the principled, elegant, and provably near-optimal one from Munro and Wild's "powersort". files: A Misc/NEWS.d/next/Core and Builtins/2021-09-01-19-21-48.bpo-34561.uMAVA-.rst M Objects/listobject.c M Objects/listsort.txt diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-09-01-19-21-48.bpo-34561.uMAVA-.rst b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-19-21-48.bpo-34561.uMAVA-.rst new file mode 100644 index 0000000000000..7c48cb39df1c5 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-09-01-19-21-48.bpo-34561.uMAVA-.rst @@ -0,0 +1 @@ +List sorting now uses the merge-ordering strategy from Munro and Wild's ``powersort()``. Unlike the former strategy, this is provably near-optimal in the entropy of the distribution of run lengths. Most uses of ``list.sort()`` probably won't see a significant time difference, but may see significant improvements in cases where the former strategy was exceptionally poor. However, as these are all fast linear-time approximations to a problem that's inherently at best quadratic-time to solve truly optimally, it's also possible to contrive cases where the former strategy did better. \ No newline at end of file diff --git a/Objects/listobject.c b/Objects/listobject.c index 898cbc20c5f81..565c11e7f384f 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -1139,12 +1139,11 @@ sortslice_advance(sortslice *slice, Py_ssize_t n) if (k) /* The maximum number of entries in a MergeState's pending-runs stack. - * This is enough to sort arrays of size up to about - * 32 * phi ** MAX_MERGE_PENDING - * where phi ~= 1.618. 85 is ridiculouslylarge enough, good for an array - * with 2**64 elements. + * For a list with n elements, this needs at most floor(log2(n)) + 1 entries + * even if we didn't force runs to a minimal length. So the number of bits + * in a Py_ssize_t is plenty large enough for all cases. */ -#define MAX_MERGE_PENDING 85 +#define MAX_MERGE_PENDING (SIZEOF_SIZE_T * 8) /* When we get into galloping mode, we stay there until both runs win less * often than MIN_GALLOP consecutive times. See listsort.txt for more info. @@ -1159,7 +1158,8 @@ sortslice_advance(sortslice *slice, Py_ssize_t n) */ struct s_slice { sortslice base; - Py_ssize_t len; + Py_ssize_t len; /* length of run */ + int power; /* node "level" for powersort merge strategy */ }; typedef struct s_MergeState MergeState; @@ -1170,6 +1170,9 @@ struct s_MergeState { */ Py_ssize_t min_gallop; + Py_ssize_t listlen; /* len(input_list) - read only */ + PyObject **basekeys; /* base address of keys array - read only */ + /* 'a' is temp storage to help with merges. It contains room for * alloced entries. */ @@ -1513,7 +1516,8 @@ gallop_right(MergeState *ms, PyObject *key, PyObject **a, Py_ssize_t n, Py_ssize /* Conceptually a MergeState's constructor. */ static void -merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc) +merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc, + sortslice *lo) { assert(ms != NULL); if (has_keyfunc) { @@ -1538,6 +1542,8 @@ merge_init(MergeState *ms, Py_ssize_t list_size, int has_keyfunc) ms->a.keys = ms->temparray; ms->n = 0; ms->min_gallop = MIN_GALLOP; + ms->listlen = list_size; + ms->basekeys = lo->keys; } /* Free all the temp memory owned by the MergeState. This must be called @@ -1920,37 +1926,74 @@ merge_at(MergeState *ms, Py_ssize_t i) return merge_hi(ms, ssa, na, ssb, nb); } -/* Examine the stack of runs waiting to be merged, merging adjacent runs - * until the stack invariants are re-established: - * - * 1. len[-3] > len[-2] + len[-1] - * 2. len[-2] > len[-1] +/* Two adjacent runs begin at index s1. The first run has length n1, and + * the second run (starting at index s1+n1) has length n2. The list has total + * length n. + * Compute the "power" of the first run. See listsort.txt for details. + */ +static int +powerloop(Py_ssize_t s1, Py_ssize_t n1, Py_ssize_t n2, Py_ssize_t n) +{ + int result = 0; + assert(s1 >= 0); + assert(n1 > 0 && n2 > 0); + assert(s1 + n1 + n2 <= n); + /* midpoints a and b: + * a = s1 + n1/2 + * b = s1 + n1 + n2/2 = a + (n1 + n2)/2 + * + * Those may not be integers, though, because of the "/2". So we work with + * 2*a and 2*b instead, which are necessarily integers. It makes no + * difference to the outcome, since the bits in the expansion of (2*i)/n + * are merely shifted one position from those of i/n. + */ + Py_ssize_t a = 2 * s1 + n1; /* 2*a */ + Py_ssize_t b = a + n1 + n2; /* 2*b */ + /* Emulate a/n and b/n one bit a time, until bits differ. */ + for (;;) { + ++result; + if (a >= n) { /* both quotient bits are 1 */ + assert(b >= a); + a -= n; + b -= n; + } + else if (b >= n) { /* a/n bit is 0, b/n bit is 1 */ + break; + } /* else both quotient bits are 0 */ + assert(a < b && b < n); + a <<= 1; + b <<= 1; + } + return result; +} + +/* The next run has been identified, of length n2. + * If there's already a run on the stack, apply the "powersort" merge strategy: + * compute the topmost run's "power" (depth in a conceptual binary merge tree) + * and merge adjacent runs on the stack with greater power. See listsort.txt + * for more info. * - * See listsort.txt for more info. + * It's the caller's responsibilty to push the new run on the stack when this + * returns. * * Returns 0 on success, -1 on error. */ static int -merge_collapse(MergeState *ms) +found_new_run(MergeState *ms, Py_ssize_t n2) { - struct s_slice *p = ms->pending; - assert(ms); - while (ms->n > 1) { - Py_ssize_t n = ms->n - 2; - if ((n > 0 && p[n-1].len <= p[n].len + p[n+1].len) || - (n > 1 && p[n-2].len <= p[n-1].len + p[n].len)) { - if (p[n-1].len < p[n+1].len) - --n; - if (merge_at(ms, n) < 0) + if (ms->n) { + assert(ms->n > 0); + struct s_slice *p = ms->pending; + Py_ssize_t s1 = p[ms->n - 1].base.keys - ms->basekeys; /* start index */ + Py_ssize_t n1 = p[ms->n - 1].len; + int power = powerloop(s1, n1, n2, ms->listlen); + while (ms->n > 1 && p[ms->n - 2].power > power) { + if (merge_at(ms, ms->n - 2) < 0) return -1; } - else if (p[n].len <= p[n+1].len) { - if (merge_at(ms, n) < 0) - return -1; - } - else - break; + assert(ms->n < 2 || p[ms->n - 2].power < power); + p[ms->n - 1].power = power; } return 0; } @@ -2357,7 +2400,7 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) } /* End of pre-sort check: ms is now set properly! */ - merge_init(&ms, saved_ob_size, keys != NULL); + merge_init(&ms, saved_ob_size, keys != NULL, &lo); nremaining = saved_ob_size; if (nremaining < 2) @@ -2393,13 +2436,16 @@ list_sort_impl(PyListObject *self, PyObject *keyfunc, int reverse) goto fail; n = force; } - /* Push run onto pending-runs stack, and maybe merge. */ + /* Maybe merge pending runs. */ + assert(ms.n == 0 || ms.pending[ms.n -1].base.keys + + ms.pending[ms.n-1].len == lo.keys); + if (found_new_run(&ms, n) < 0) + goto fail; + /* Push new run on stack. */ assert(ms.n < MAX_MERGE_PENDING); ms.pending[ms.n].base = lo; ms.pending[ms.n].len = n; ++ms.n; - if (merge_collapse(&ms) < 0) - goto fail; /* Advance to find next run. */ sortslice_advance(&lo, n); nremaining -= n; diff --git a/Objects/listsort.txt b/Objects/listsort.txt index 174777a2658dc..306e5e44d2ecf 100644 --- a/Objects/listsort.txt +++ b/Objects/listsort.txt @@ -318,65 +318,104 @@ merging must be done as (A+B)+C or A+(B+C) instead. So merging is always done on two consecutive runs at a time, and in-place, although this may require some temp memory (more on that later). -When a run is identified, its base address and length are pushed on a stack -in the MergeState struct. merge_collapse() is then called to potentially -merge runs on that stack. We would like to delay merging as long as possible -in order to exploit patterns that may come up later, but we like even more to -do merging as soon as possible to exploit that the run just found is still -high in the memory hierarchy. We also can't delay merging "too long" because -it consumes memory to remember the runs that are still unmerged, and the -stack has a fixed size. - -What turned out to be a good compromise maintains two invariants on the -stack entries, where A, B and C are the lengths of the three rightmost not-yet -merged slices: - -1. A > B+C -2. B > C - -Note that, by induction, #2 implies the lengths of pending runs form a -decreasing sequence. #1 implies that, reading the lengths right to left, -the pending-run lengths grow at least as fast as the Fibonacci numbers. -Therefore the stack can never grow larger than about log_base_phi(N) entries, -where phi = (1+sqrt(5))/2 ~= 1.618. Thus a small # of stack slots suffice -for very large arrays. - -If A <= B+C, the smaller of A and C is merged with B (ties favor C, for the -freshness-in-cache reason), and the new run replaces the A,B or B,C entries; -e.g., if the last 3 entries are - - A:30 B:20 C:10 - -then B is merged with C, leaving - - A:30 BC:30 - -on the stack. Or if they were - - A:500 B:400: C:1000 - -then A is merged with B, leaving - - AB:900 C:1000 - -on the stack. - -In both examples, the stack configuration after the merge still violates -invariant #2, and merge_collapse() goes on to continue merging runs until -both invariants are satisfied. As an extreme case, suppose we didn't do the -minrun gimmick, and natural runs were of lengths 128, 64, 32, 16, 8, 4, 2, -and 2. Nothing would get merged until the final 2 was seen, and that would -trigger 7 perfectly balanced merges. - -The thrust of these rules when they trigger merging is to balance the run -lengths as closely as possible, while keeping a low bound on the number of -runs we have to remember. This is maximally effective for random data, -where all runs are likely to be of (artificially forced) length minrun, and -then we get a sequence of perfectly balanced merges (with, perhaps, some -oddballs at the end). - -OTOH, one reason this sort is so good for partly ordered data has to do -with wildly unbalanced run lengths. +When a run is identified, its length is passed to found_new_run() to +potentially merge runs on a stack of pending runs. We would like to delay +merging as long as possible in order to exploit patterns that may come up +later, but we like even more to do merging as soon as possible to exploit +that the run just found is still high in the memory hierarchy. We also can't +delay merging "too long" because it consumes memory to remember the runs that +are still unmerged, and the stack has a fixed size. + +The original version of this code used the first thing I made up that didn't +obviously suck ;-) It was loosely based on invariants involving the Fibonacci +sequence. + +It worked OK, but it was hard to reason about, and was subtle enough that the +intended invariants weren't actually preserved. Researchers discovered that +when trying to complete a computer-generated correctness proof. That was +easily-enough repaired, but the discovery spurred quite a bit of academic +interest in truly good ways to manage incremental merging on the fly. + +At least a dozen different approaches were developed, some provably having +near-optimal worst case behavior with respect to the entropy of the +distribution of run lengths. Some details can be found in bpo-34561. + +The code now uses the "powersort" merge strategy from: + + "Nearly-Optimal Mergesorts: Fast, Practical Sorting Methods + That Optimally Adapt to Existing Runs" + J. Ian Munro and Sebastian Wild + +The code is pretty simple, but the justification is quite involved, as it's +based on fast approximations to optimal binary search trees, which are +substantial topics on their own. + +Here we'll just cover some pragmatic details: + +The `powerloop()` function computes a run's "power". Say two adjacent runs +begin at index s1. The first run has length n1, and the second run (starting +at index s1+n1, called "s2" below) has length n2. The list has total length n. +The "power" of the first run is a small integer, the depth of the node +connecting the two runs in an ideal binary merge tree, where power 1 is the +root node, and the power increases by 1 for each level deeper in the tree. + +The power is the least integer L such that the "midpoint interval" contains +a rational number of the form J/2**L. The midpoint interval is the semi- +closed interval: + + ((s1 + n1/2)/n, (s2 + n2/2)/n] + +Yes, that's brain-busting at first ;-) Concretely, if (s1 + n1/2)/n and +(s2 + n2/2)/n are computed to infinite precision in binary, the power L is +the first position at which the 2**-L bit differs between the expansions. +Since the left end of the interval is less than the right end, the first +differing bit must be a 0 bit in the left quotient and a 1 bit in the right +quotient. + +`powerloop()` emulates these divisions, 1 bit at a time, using comparisons, +subtractions, and shifts in a loop. + +You'll notice the paper uses an O(1) method instead, but that relies on two +things we don't have: + +- An O(1) "count leading zeroes" primitive. We can find such a thing as a C + extension on most platforms, but not all, and there's no uniform spelling + on the platforms that support it. + +- Integer divison on an integer type twice as wide as needed to hold the + list length. But the latter is Py_ssize_t for us, and is typically the + widest native signed integer type the platform supports. + +But since runs in our algorithm are almost never very short, the once-per-run +overhead of `powerloop()` seems lost in the noise. + +Detail: why is Py_ssize_t "wide enough" in `powerloop()`? We do, after all, +shift integers of that width left by 1. How do we know that won't spill into +the sign bit? The trick is that we have some slop. `n` (the total list +length) is the number of list elements, which is at most 4 times (on a 32-box, +with 4-byte pointers) smaller than than the largest size_t. So at least the +leading two bits of the integers we're using are clear. + +Since we can't compute a run's power before seeing the run that follows it, +the most-recently identified run is never merged by `found_new_run()`. +Instead a new run is only used to compute the 2nd-most-recent run's power. +Then adjacent runs are merged so long as their saved power (tree depth) is +greater than that newly computed power. When found_new_run() returns, only +then is a new run pushed on to the stack of pending runs. + +A key invariant is that powers on the run stack are strictly decreasing +(starting from the run at the top of the stack). + +Note that even powersort's strategy isn't always truly optimal. It can't be. +Computing an optimal merge sequence can be done in time quadratic in the +number of runs, which is very much slower, and also requires finding & +remembering _all_ the runs' lengths (of which there may be billions) in +advance. It's remarkable, though, how close to optimal this strategy gets. + +Curious factoid: of all the alternatives I've seen in the literature, +powersort's is the only one that's always truly optimal for a collection of 3 +run lengths (for three lengths A B C, it's always optimal to first merge the +shorter of A and C with B). Merge Memory From webhook-mailer at python.org Mon Sep 6 17:35:15 2021 From: webhook-mailer at python.org (ned-deily) Date: Mon, 06 Sep 2021 21:35:15 -0000 Subject: [Python-checkins] Fix typo in a comment in Modules/_ssl.c: s/validata/validate/ (GH-27993) (GH-27997) Message-ID: https://github.com/python/cpython/commit/e5f259e575e474626b1e314b8d4f0a8cd61832e1 commit: e5f259e575e474626b1e314b8d4f0a8cd61832e1 branch: 3.10 author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com> committer: ned-deily date: 2021-09-06T17:35:07-04:00 summary: Fix typo in a comment in Modules/_ssl.c: s/validata/validate/ (GH-27993) (GH-27997) (cherry picked from commit 28db1f61f20352c02e4ae1518e5aeb6505df3045) files: M Modules/_ssl.c diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 84cc3697b0706..6c63301b2a7d8 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -4047,7 +4047,7 @@ _ssl__SSLContext_load_verify_locations_impl(PySSLContext *self, goto error; } - /* validata cadata type and load cadata */ + /* validate cadata type and load cadata */ if (cadata) { if (PyUnicode_Check(cadata)) { PyObject *cadata_ascii = PyUnicode_AsASCIIString(cadata); From webhook-mailer at python.org Tue Sep 7 00:05:03 2021 From: webhook-mailer at python.org (terryjreedy) Date: Tue, 07 Sep 2021 04:05:03 -0000 Subject: [Python-checkins] Update idlelib/help.html to include idle.rst spelling fix (GH-28191) Message-ID: https://github.com/python/cpython/commit/f05ad9202896f21ca9717f5c9f4b933b7f5b6550 commit: f05ad9202896f21ca9717f5c9f4b933b7f5b6550 branch: main author: Terry Jan Reedy committer: terryjreedy date: 2021-09-07T00:04:54-04:00 summary: Update idlelib/help.html to include idle.rst spelling fix (GH-28191) The idle.rst fix was GH-27903 two weeks ago. files: M Lib/idlelib/help.html diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html index 2b1c2afff08a5..2468afa7148b9 100644 --- a/Lib/idlelib/help.html +++ b/Lib/idlelib/help.html @@ -24,7 +24,7 @@ - + @@ -59,7 +59,7 @@

Navigation

modules |
  • - next |
  • Automatic indentation -

    Completion boxes intially exclude names beginning with ?_? or, for +

    Completion boxes initially exclude names beginning with ?_? or, for modules, not included in ?__all__?. The hidden names can be accessed by typing ?_? after ?.?, either before or after the box is opened.

    @@ -937,8 +937,8 @@

    Previous topic

    tkinter.tix ? Extension widgets for Tk

    Next topic

    -

    Other Graphical User Interface Packages

    +

    Development Tools

    This Page

    @@ -937,8 +937,8 @@

    Previous topic

    tkinter.tix ? Extension widgets for Tk

    Next topic

    -

    Other Graphical User Interface Packages

    +

    Development Tools

    This Page

    @@ -932,8 +932,8 @@

    Previous topic

    tkinter.tix ? Extension widgets for Tk

    Next topic

    -

    Other Graphical User Interface Packages

    +

    Development Tools

    This Page

      @@ -959,7 +959,7 @@

      Navigation

      modules |
    • - next |
    • Navigation